Loading...
 

SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32


Defining a Macro to Return the Number of Elements in an Array

I have figured out why the compiler does not accept this. The array is global. Its size and initialization is done in a .c file other than the one this error appears in. It is not sufficient that a header be used to externally declare it. The size and initialization would have to be done in the header, but doing that has caused other problems. I am giving up on doing it this way. I am going to have to define a size variable in the .c file in the next line after the array is defined. For example:

int arr[] = { 1, 2, 3, 4, 5 };
size_t arr_N = sizeof(arr)/sizeof(*arr);

This is the only way to be sure the compiler knows the size of the array in advance of using the sizeof operator.

There is no advantage to using the above NUMSIZE macro over the sizeof operator. That NUMSIZE macro will work only where the sizeof operator works.

In my application I am not going to need the overload checking your COUNT_OF(x) macro provides because I am working only in C, not C++. I can see how it can be useful in C++ though.