ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
7 июля
212191 Топик полностью
mandigit (22.09.2010 15:37, просмотров: 73) ответил mandigit на инициализация глобальных переменных в связке си+асм?
Все оказалось не просто: необходимо положить значения, которыми должна инициализироваться переменная во флеш память и дать компилятору знать, что требуется инициализация, если в си коде нигде такая инициализация не применялась. В результате, работающий код выглядит так: RSEG NEAR_I REQUIRE `?<Segment init: NEAR_I>` ms20_use DS8 1 REQUIRE `?<Initializer for ms20_use>` RSEG NEAR_ID `?<Initializer for ms20_use>`: DB 0xFF EXTERN ?need_segment_init RSEG INITTAB:CODE:NOROOT(0) `?<Segment init: NEAR_I>`: DW SFE(NEAR_I) - SFB(NEAR_I) DW SFB(NEAR_I) DW SFB(NEAR_ID) REQUIRE ?need_segment_init