aolilyf 发表于 2012-10-12 13:09:44

通用 bootloader 无法在 mega328P自我烧录程序

请哪位高手帮我看看通用 bootloader on mega328P的问题:
使用外部晶振1.3824MHZ ,现在用的波特率是9600,boot size 2K.
AVR 通用 Bootloader V4.5 在MEGA168PA 都正常,在mega328P下,无法通过xmodem更新程序。

Bootloader 可以执行起来,但是烧录flash的时候无法烧录进去,更新一个flash页函数调用的是AVR libc的函数看起来也没什么问题,熔丝位设置也没错


//更新一个flash页函数

void write_one_page(unsigned char *buf)

{

boot_page_erase(FlashAddr);                  //擦除一个flash页

boot_spm_busy_wait();

for(pagptr = 0; pagptr < SPM_PAGESIZE; pagptr += 2) //数据填入flash缓存区

{

    boot_page_fill(pagptr, buf | (buf << 8));

}

boot_page_write(FlashAddr);                  //缓冲区数据写入flash页

boot_spm_busy_wait();                        //等待页编程完成

}

Fuse 设置



aolilyf 发表于 2012-10-12 21:55:23

{:mad:}{:mad:}{:mad:}{:mad:}{:mad:}{:mad:}
页: [1]
查看完整版本: 通用 bootloader 无法在 mega328P自我烧录程序