ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
358493
incognito (01.10.2012 16:19, просмотров: 4026)
что-то странное при записи в INFO камушек F149 (на 133 все то же), при выполнении следующего кода (находится в составе большого проекта) __disable_interrupt(); erase_flash(0x1000); unsigned int addr; unsigned char i; for (i = 0; i < 255; i++) { addr = 0x1000 + i; write_flash_b(addr, i); } __enable_interrupt(); void write_flash_b(unsigned int addr, unsigned char data) { FCTL3 = FWKEY; // Clear LOCK FCTL1 = FWKEY + WRT; // Enable write *(unsigned char*)addr = data; // Write data FCTL1 = FWKEY; // Done. Clear WRT FCTL3 = FWKEY + LOCK; // Set LOCK } получаем в INFO не то что ожидали (см. картинку), причем если в структуре поменять на dat[5] то в INFO будут записано еще 2 байта больше - 0x12, 0x13 struct t_MySystem { unsigned char Device_Address[4]; unsigned int wakeup_period; unsigned char config_done; unsigned char dat[3]; }; кстати, если после кода __enable_interrupt(); поставить точку останова или шагать то все INFO пишется правильно !!! где копать-то ?
image