AVR Bootloader编程
来源:互联网 发布:mac air 增加内存 编辑:程序博客网 时间:2024/05/20 20:48
AVR之Bootloader
AVR系列单片机有一个很强大的功能,那就是Bootloader,这里的bootloader和嵌入式的不同,嵌入式中的bootloader是MCU引导操作系统的,AVR所谓的Bootloader是进行整个flash(包括Bootloader本身)的擦写操作,可以进行MCU程序的升级,这对于需要连接到PC机的设备来说,其中的重大意义不言而喻。
这里以ATmega168为例。
1.首先,理解168的Flash存储结构:
整个flash有两种区分方法:
1>应用程序区和Bootloader区:两个区的空间大小由BOOTSZ熔丝位来配置,具体设置可参考168的Datasheet;
2>RWW区与NRWW区: 所谓RWW,即同时读写(Read-While-Write)。具体区域大小参见Datasheet.
在对RWW区和NRWW区进行操作需要明白:
对RWW区内的页进行擦除和写操作时,可以读NRWW区;
对NRWW区内的页进行擦除和写操作时,CPU停止。
2.理解如何进行SPM指令的操作:
这就涉及到 程序存储控制器和状态寄存器---SPMCSR 和 Z指针,其中Z指针就是用于SPM指令的寻址。
一开始看到SPM指令的时候,容易和其它的汇编指令联系在以前,以为会带个参数什么的,其实spm指令不带任何参数,但是它可
以进行4种操作:
1>RWW区读使能操作;
2>Boot区锁定位设置;
3>页写入;
4>页擦除;
但是一个spm指令如何进行区分,到底该执行哪种操作呢?这就需要结合SPMCSR寄存器了,在这个寄存器里,以上几种操作都有
相应的使能位,如果相应的使能位和SPMEN位置位了,那接下来的四个指令周期,就会执行相应的操作。操作所需要的地址就是Z指
针的事了。
3.相应的步骤:
- AVR Bootloader编程
- AVR bootloader
- AVR通用Bootloader
- AVR bootloader 详解
- AVR之BOOTLOADER技术详解
- AVR之BOOTLOADER技术详解
- AVR BOOTLOADER 实例开发笔记
- AVR之BOOTLOADER技术详解(转的)
- AVR单片机GCC编程
- AVR universal Bootloader 在Atemga32 中的应用(一)
- AVR单片机状态与编程
- 使用AVR Studio 4.0编程进行AVR外部中断学习
- AVR
- STM32 IAP的bootloader编程
- STM32的bootloader IAP编程
- STM32的bootloader IAP编程
- STM32的bootloader IAP编程
- STM32的bootloader IAP编程
- 终身成就奖 lifetime achievement
- 2.5 罗马不是一夜建成的——从简单URL请求到整张地图
- 希望不是空欢喜——又进到google偷偷写了些东西
- 常见的三种职业教育投资
- MSG_NOSIGNAL
- AVR Bootloader编程
- wince下用DirectShow播放音频和视频
- 忆龙2009:CAMS做EAD在进行安全认证时出错“补丁检查失败” 的解决方法
- 指针实现找PE OEP
- FLEX module的使用
- 好好编程
- 学习新知识的顺序
- A*算法大揭秘
- 2009年12月16日