aolilyf 发表于 2012-10-13 23:48:35

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

请哪位高手帮我看看通用 bootloader on mega328P的问题:
链接:
http://www.amobbs.com/thread-5501032-1-1.html
使用外部晶振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 设置



    untitled.JPG (11.45 KB, 下载次数: 0)

    Fuse 设置

    Fuse 设置

    未命名.jpg (47.88 KB, 下载次数: 0)

    信息

    信息

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