We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
The Release_Notes.htm file in the ARM compiler gives an overview of changes made between MDK-ARM versions, but is there somewhere I can find out exactly what bug fixes/improvements have been made to the RealView compiler itself?
The behaviour of the compiler has changed between MDK-ARM versions 4.03a and 4.10, which is not surprising since the compiler is a new version in this release. However, this has resulted in some code developed on 4.10 (which compiles with no warnings) to fail with an error during compilation on 4.03a. Specifically I have a function which accepts a pointer to void, and am passing a function pointer to it.
I can make the code compile on both versions with some casting, but I would like to be able to see if this issue is known and if there are other issues we should be wary of.
(Initializing unions always initializes using the first member-type)
As of C99, not necessarily. Among the things they added on top of C90 were named designators and non-default union initialization. So instead of this:
layout_elements_t g_main_elements_table[] = { // Standard Elements { "Text", (void_fptr_t)sys_process_text }, { "Table", (void_fptr_t)sys_process_table }, { "Title", (void_fptr_t)sys_process_title }, };
you could now do
layout_elements_t g_main_elements_table[] = { // Standard Elements { "Text", {.text = sys_process_text} }, { "Table", {.table = sys_process_table } }, { "Title", {.text = sys_process_title } }, };