专栏中心

EEPW首页 > 专栏 > AVR studio(AVR GCC)下编译ATmega128 bootloader若干问题说明

AVR studio(AVR GCC)下编译ATmega128 bootloader若干问题说明

发布人:0750long 时间:2009-07-10 来源:工程师 发布文章
AVR studio(AVR GCC)下编译ATmega128 bootloader若干问题说明

 

AVR studio(AVR GCC)下编译ATmega128 bootloader若干问题说明
1. 首先需要在 Memory Settings中Add: Flash .text=0xF000(使用4K).
   因为GCC不像ICC那样可以自动设置,所以此步必须写入.
2. 许多人(我也是)都是按照马老师那本书上的例程来做的内部flash的操作函数, 但是我试过多遍之后发现在GCC下这个不能使用,需要使用"avr/boot.h"下声明的几个库函数, 具体如下:
 boot_spm_busy_wait 等待flash操作完成
 boot_page_erase  擦除一个flash页
 boot_page_fill  写入数据到flash buffer
 flash_page_prog  将buffer数据写入flash
   有个这几个函数就可以对flash进行写入操作了. 具体为何要这样作我还不太清楚, 希望大家可以指教.
3. 程序下载完毕后如要启动, 需要调用如下函数:
 boot_rww_enable
   否则无法正常启动APP程序.
4. GCC对数据的处理也不太与ICC一样, 比如再读校验和的时候在ICC下进行如下操作:
 CheckSum = getch() << 8;   // 读校验和
 CheckSum|= getch();
   则可以正确执行, 8位16位之间的自动转换也正常, 但是在GCC下取有错误, 不得已写成了如下格式:
 CheckSum = ((uint16)getch()&0xFF) << 8;  // 读校验和
 CheckSum|= ((uint16)getch()&0xFF);

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

尼得科仪器发售AC伺服“S-FLAG DYNAMIC MOTION TM”MB系列电机

Intersil公司2010年路演武汉站讲座6--无线基础设施应用解决方案

视频 2011-10-18

芯向未来,2025英飞凌消费、计算与通讯创新大会成功举办

电源与新能源 2025-03-17

Intersil公司2010年路演武汉站讲座1--通信电源解决方案

视频 2011-10-18

Intersil公司2010年路演武汉站讲座7--车载信息娱乐系统

视频 2011-10-18

铠侠参展CFMS 2025:布局下一代先进存储,持续助力高能AI

Intersil公司2010年路演武汉站讲座4--用于仪器及工业应用的高性能模拟信号链产品

视频 2011-10-18

DeepSeek技术路线如何改写AI烧钱游戏规则

英特尔新官上任三把火!CEO计划重组代工、AI业务并裁员 重回“世界级代工厂”

意法半导体推出创新型卫星导航接收器,推动汽车及工业应用领域精准定位技术普及化

USB求助

tjjack 2005-05-12

Intersil公司2010年路演武汉站讲座5--离线式LED照明驱动方案

TDK推出edgeRX:工业机器健康监测的未来

基于TI MSPM0G3507多功能GPS测速仪系统开发设计

中国铁塔继续深化\"一体两翼\"发展战略

国际视野 2025-03-17

美媒:从巴西到南非,物美价廉中国车一路狂飙

更多 培训课堂
更多 焦点
更多 视频

技术专区