搜索
bottom↓
回复: 16

如何把原来的应用程序和Bootloader联系起来

[复制链接]

出0入0汤圆

发表于 2009-3-25 06:00:53 | 显示全部楼层 |阅读模式
我是新手,用ATMEGA161学习C编程,请大家帮忙:

写好了应用程序,编译和工作正常。我想加入Bootloader增加远程升级功能,从“新手快速入门”里下载了Bootloader范例,根据ATMEGA161修改后编译成功。但 把应用程序和Bootloader放在同一工程里编译时会出错,因为两个C文件里都有main(),把Bootloader里的main()改名也出错。不知道如何把原来的应用程序和Bootloader联系起来,用一个HEX文件写进FLASH。 请指教我应该怎样做,谢谢。

我的开发环境是:
AVR Studio        4.14.589  
AVR GCC  
ATMEGA161

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2009-3-25 09:58:05 | 显示全部楼层
关注

出0入0汤圆

发表于 2009-3-25 10:14:30 | 显示全部楼层
分开编译,然后写bootloader,通过bootloader写主程序

出0入0汤圆

 楼主| 发表于 2009-3-25 10:20:29 | 显示全部楼层
我想用一个HEX文件写进FLASH。

出0入0汤圆

发表于 2009-3-25 12:57:49 | 显示全部楼层
重点关注

出0入0汤圆

发表于 2009-3-25 16:25:20 | 显示全部楼层
两个程序,分别下载,注意BOOTLOADER的地址要设置好

出0入0汤圆

发表于 2009-3-25 16:27:35 | 显示全部楼层
guanzhu

出0入0汤圆

发表于 2009-7-22 01:41:31 | 显示全部楼层
很简单
在avr studio里project->configuration->memory settings添加下flash .bootloader 0x1c00(取决于实际情况),然后程序这么写
void boot(void) __attribute__((section(".bootloader")));

int main(void)
{
//app code
}


void boot(void)
{
//bootloader code
}

出0入0汤圆

发表于 2009-7-22 11:50:29 | 显示全部楼层
楼上的思路很清晰

出0入0汤圆

发表于 2009-7-22 13:43:30 | 显示全部楼层
如果bootloader和app有交叉调用的话死的很惨。这不叫思路清晰,到时候思路混乱。

出0入0汤圆

发表于 2009-7-22 14:29:10 | 显示全部楼层
关注

出0入0汤圆

发表于 2013-6-20 17:07:00 | 显示全部楼层
thrive 发表于 2009-3-25 16:25
两个程序,分别下载,注意BOOTLOADER的地址要设置好

先下载bootloader中的程序在下载应用区的程序会把bootloader中的程序刷掉。下载器上面的芯片擦出钩钩已经去掉了。怎么解决

出0入0汤圆

发表于 2013-6-29 22:16:47 | 显示全部楼层
haolei432370 发表于 2013-6-20 17:07
先下载bootloader中的程序在下载应用区的程序会把bootloader中的程序刷掉。下载器上面的芯片擦出钩钩已经 ...

不同编译环境的操作会有不同;
bootloader程序需要下载到boot区(Flash高地值端),然后通过串口,用Xmodem协议将应用程序更新;

我也试过-----将应用程序App.Hex的最后一行删掉,然后将 Boot.Hex的内容全部拷到App.Hex剩余内容的下面,然后保存;将这个文件写入AVR,引导程序和应用程序运行也都是正确的;

另:我现在遇到问题了,环境用IAR,但是我不知道如何修改 *.xcl 文件,来修改程序在Flash的起始地址 及 中断映射地址; 结果就是我的Boot程序总是烧写在应用区,写不到BOOT区里;

有谁知道方法 或 相关资料的麻烦告诉我,谢谢。

出0入0汤圆

发表于 2013-6-30 10:14:07 | 显示全部楼层
Free_Bird 发表于 2013-6-29 22:16
不同编译环境的操作会有不同;
bootloader程序需要下载到boot区(Flash高地值端),然后通过串口,用Xmod ...

额  没用过IAR 。一直在用AVR了。现在在考虑如何在bootloader校验程序下载是否正确

出0入0汤圆

发表于 2013-6-30 10:25:10 | 显示全部楼层
原来的肯定不行,要改的

出0入0汤圆

发表于 2013-6-30 12:20:21 | 显示全部楼层
Bootloader是引导程序,要分开来烧写吧。

出0入0汤圆

发表于 2013-6-30 12:31:15 | 显示全部楼层
先建立bootloader,再利用bootloader来写app
不应该一起编译,也没必要互相调用
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 22:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表