我想使用 avr 的flash 在程序运行中保存一些参数。而不是下载应用应用程序。但是程序运行不正常。原来timer中断也进不去,while循环也不对,总是跳到回main()的起始处运行。我这只是个测试程序。子flash放一个0x1122这个数。软件模拟运行时候i能返回0x22这个值,但是出现上述不正常的情况。下载到板子后。i的值从led灯的指示上看是0x1f。请诸位高手参照一下程序给个 建议。谢谢啦!
//loader 子程序
loader(BOOTLOADER_SECTION)
{ unsigned char a;
unsigned int h;
h=0x1122;
boot_page_erase(card_data);
do{}while(boot_spm_busy());
boot_page_fill(card_data,h);
boot_page_write (card_data);
do{}while(boot_spm_busy());
}
const prog_uchar card_data[500][5]={{0x1f,0x2f,0x3f,0x4f,0x30},{0xaf,0xbf,0xcf,0xdf,0xe0}//...............};
main(()
{
//.................................................
//....................................................
loader();//调用loader程序
i=pgm_read_byte(&card_data[0][0]);
while(1)
{
set_out_1(i);//通过他led指示i里面的值,也就是flash中的值
// BUZZER_ON;
} |