ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
397858 Топик полностью
rezident (28.03.2013 15:26 - 15:29, просмотров: 174) ответил SciFi на Враки. Вы даже не попробовали мой вариант.
Попробовал. Определения типов #pragma pack(2) typedef struct channelDef_t { uint16_t level0; uint16_t border0; uint16_t level1; uint16_t border1; } channelDef_t; #pragma pack() #pragma pack(2) typedef struct flashA_t { channelDef_t ch[CHIN_MAXNUM]; uint32_t adcFactor[CHIN_MAXNUM]; uint32_t debounce[CHIN_MAXNUM]; } flashA_t; #pragma pack() В Файле main_info.c extern const flashA_t segINFOA; #pragma required=segINFOA #pragma location=0x1000 const flashA_t segINFOA= {//L0 | D0 | L1 | D1 1372, 205, 4002, 600, 1372, 205, 4002, 600, 1372, 205, 4002, 600, 1372, 205, 4002, 600, //factor [16.16] ((2UL<<16UL)+14082UL), ((2UL<<16UL)+14082UL), ((2UL<<16UL)+14082UL), ((2UL<<16UL)+14082UL), //debounce time [ms] 200UL, 200UL, 200UL, 200UL }; В main.c хоть так extern flashA_t segINFOA; flashA_t volatile* pINFOA = (flashA_t volatile*)&segINFOA; хоть так extern const flashA_t segINFOA; flashA_t volatile* pINFOA = (flashA_t volatile*)&segINFOA; Результат идентичный.
IAR Universal Linker V5.3.2.26 Copyright 1987-2012 IAR Systems AB. Error[e46]: Undefined external "segINFOA" referred in main ( D:\MIC-A4D12\Debug\Obj\main.r43 )