搜索
bottom↓
回复: 38

在WinAVR+ATmega8 上 调试心艺的 BootLoader OK了!

[复制链接]

出0入0汤圆

发表于 2006-5-22 19:55:34 | 显示全部楼层 |阅读模式
首先说一下我对 BootLoader 的理解:



1。ATmega8 的8kFlash 分为 boot 区和 用户区(用户区在前,BOOT区在后)



2。boot 程序是作为一个单独的程序来编译,执行的,



3。通过在Makefile中找到这一段,

      #---------------- Linker Options ----------------

      #  -Wl,...:     tell GCC to pass this to linker.

      #    -Map:      create map file

      #    --cref:    add cross reference to  map file

      LDFLAGS = -Wl,-Map=$(TARGET).map,--cref

      LDFLAGS += $(EXTMEMOPTS)

      LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)

  

在该段的后面添加一行:

     DFLAGS += -Wl,--section-start=.text=0x1800



  表示将程序启动起始地址:设置到boot区



4。用slisp 设置熔丝位,如下图所示:

   里面标错了,是1K的BOOT区





  这样用 下载线或其他的烧写BOOT程序进ATmega8后,

  单片机重新上电,复位就是从BOOT 区开始执行了。

出0入0汤圆

 楼主| 发表于 2006-5-22 20:05:03 | 显示全部楼层
在实验该例子之前,必须要完成 串口通信的 实例。



心艺的BOOT 程序下来后,不能立即使用,需要做一点修改。



1.单片机程序,是从PDF文件上搬下来的,但是在Uart_Getc,Uart_Putc的地方需要

   加一点延时,否则不能正常进行通讯。我的系统是xp



2.pc端程序,原先能正常通讯,ACK 那个信号能够响应.但是将程序烧进去后,不能够

  执行,后来才发现,他使用的BIN文件,而我则是修改了*.HEX,写了HEX文件。



这个HEX文件格式(以记录方式保存)与BIN的不同,

单片机使用的就是BIN文件(完全的代码)



所以在里面添加了HEX 转 BIN 的程序。



所以现在可以直接用PC端程序把 WINAVR 烧写的程序 写进 单片机了!



点击此处下载armok01118270.rar


-----此内容被ainet于2006-05-22,20:06:24编辑过

出0入0汤圆

 楼主| 发表于 2006-5-22 20:10:01 | 显示全部楼层
运行环境:WinAVR2005 + VC 6.0 +  ATmega8 + 4M 外部晶振



通过串口下载了跑马灯的HEX文件执行成功。



注意:用ISP等烧写的其他的程序后,会将BOOT覆盖,必须重新烧写BOOT程序。

出0入0汤圆

发表于 2006-5-22 20:38:14 | 显示全部楼层
很好,不过你的PC端程序运行不了。

出0入0汤圆

 楼主| 发表于 2006-5-22 20:55:17 | 显示全部楼层
这个是vc的debug 版本的!

换release版本的,如果还不能运行,则需要mfc42.dll

点击此处下载armok01118271.rar

出0入0汤圆

发表于 2008-9-10 15:59:57 | 显示全部楼层
我也调试不通,校验失败。。

出0入0汤圆

发表于 2008-9-10 20:40:31 | 显示全部楼层
做个标记,明天试试

出0入0汤圆

发表于 2008-9-11 08:10:14 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-9-13 17:31:29 | 显示全部楼层
记下了,谢谢先.

出0入0汤圆

发表于 2009-6-10 10:35:04 | 显示全部楼层
支持!

出0入0汤圆

发表于 2009-7-20 14:48:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-9 00:25:06 | 显示全部楼层
我想问一下,那个0x1800是怎么得到的????

出0入0汤圆

发表于 2009-9-15 22:39:10 | 显示全部楼层
atmega8的数据手册中,使用1K的bootloader空间,则bootloader的起始地址为0xC00,用字节来计算就是0x1800

出0入0汤圆

发表于 2009-9-16 04:50:58 | 显示全部楼层

出0入0汤圆

发表于 2009-9-20 14:25:34 | 显示全部楼层
m

出0入0汤圆

发表于 2009-10-6 23:19:43 | 显示全部楼层
记号,试一下

出0入0汤圆

发表于 2009-11-17 16:49:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-17 17:15:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-29 17:45:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-16 01:23:31 | 显示全部楼层
顶一下,非常好用!!谢谢楼主·

出0入0汤圆

发表于 2009-12-16 01:45:39 | 显示全部楼层
发现一个问题,就是第一次用BL上位机写入程序,点运行之后。下次再写入时提示“未发现器件”,不能写入,这时要重新复位一下单片机才能写入。

出0入0汤圆

发表于 2009-12-16 08:55:45 | 显示全部楼层
顶~~

出0入0汤圆

发表于 2009-12-16 19:44:47 | 显示全部楼层
?????不懂?倒要标记!

出0入0汤圆

发表于 2010-2-3 23:55:44 | 显示全部楼层
谢谢,学习中

出0入0汤圆

发表于 2011-5-9 13:18:07 | 显示全部楼层
谢谢,看看。

出0入0汤圆

发表于 2011-5-9 16:09:24 | 显示全部楼层
请教各位,为什么下面这句页 地址要左移6呢,谢谢?

boot_page_erase(g_wPageIndex << 6)?

出0入0汤圆

发表于 2011-5-15 11:54:36 | 显示全部楼层
几下

出0入0汤圆

发表于 2011-5-16 19:03:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-17 00:28:02 | 显示全部楼层
make

出0入0汤圆

发表于 2011-6-7 19:42:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-29 08:18:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-26 00:23:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-26 09:17:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-29 18:49:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-30 20:46:04 | 显示全部楼层
bootloader

出0入0汤圆

发表于 2011-10-30 21:31:45 | 显示全部楼层
学习中

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-7 12:46

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

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