SAY 发表于 2024-5-8 20:30:41

关于avrgcc bootloader的问题

我想使用 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={{0x1f,0x2f,0x3f,0x4f,0x30},{0xaf,0xbf,0xcf,0xdf,0xe0}//...............};
main(()
{
//.................................................
//....................................................
loader();//调用loader程序
i=pgm_read_byte(&card_data);
while(1)

{


   set_out_1(i);//通过他led指示i里面的值,也就是flash中的值
// BUZZER_ON;

}
页: [1]
查看完整版本: 关于avrgcc bootloader的问题