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.
We have been moving our design from 8051 to ARM Cortex. I am seeing an error complaining that the return type does not match.
error: #120: return value type does not match the function type
static char *func(void);
In this function we may return a pointer to a const *char or *char. I can cast my way out of this but is this a good way of fixing the problem? We did not see this error with the Keil 8051 compiler only with the Keil ARM compiler. Not that it is a compiler problem. I don't want to run into a compilation problem with a version change.
Yes, a non-const variable can always be made stricter by making it const. What the compiler gets very upset about is the reverse - trying to strip the const protection.
It's a bit similar to playing with char, short int, int, long int. You can assign a char to an int or a long int. But better compilers will warn if you do the reverse, since a char is too small to fit the full content of a long in a char. The compiler just doesn't like variables being "downgraded".
Since the GBA and the STR9 both use an ARM processor, would it be possible to natively run instructions from ROMs, with a wrapper that handles graphics, sound, and such? If so, would this have to be done without an OS, or can it done from within RTX?
I am interested in leveraging the technology to provide my system with an advantage over our competitors by allowing it to do more than just what has been dictated by the specification.
How well abstracted are those functions? How familiar are you with the coding of those functions?