Полностью ли переносим C-код, написанный для разных семейств 16LX и FR?
Ответ:
[Вернуться в категорию "Микроконтроллеры серий MB90Fxxx и MB91Fxxx Fujitsu"]
Принципиальным отличием архитектур F2MC и FR, с точки зрения компилятора, является порядок расположения байт в памяти при хранении многобайтовых операндов (short, long).
F2MC: |
старший байт операнда располагается в памяти по старшему адресу. |
FR: |
старший байт операнда располагается в памяти по младшему адресу. |
(long)0x12345678 |
Addr |
F2MC |
FR |
x00 |
0x78 |
0x12 |
x01 |
0x56 |
0x34 |
x02 |
0x34 |
0x56 |
x03 |
0x12 |
0x78 |
Про операции через указатель (с размерностью, отличной от типа хранящихся данных) придется забыть... {
...
long test = 0x12345678;
char *p = &test;
...
(F2MC) *p == 0x78
(FR) *p == 0x12
...
} [Микроконтроллеры серий MB90Fxxx и MB91Fxxx Fujitsu]
|