请教arduino程序装载和启动过程
各位好{:soso_e102:}我想了解一下arduino的启动过程。
我理解的是,上电之后,cpu的程序计数器指向一个固定的位置,然后开始执行放在这个位置的程序。
我有几个问题:
1. arduino有没有BIOS之类的固件程序?
2. arduino应该是有bootloader的吧,这个引导程序放在什么地方呢。系统启动时引导程序是怎么加载到内存的呢?
3. 上电后cpu的程序计数器指向的位置在flash还是ram呢?
4. 采用arduino IDE开发程序后,通过USB上传程序完成后,这时候程序放在什么位置?
此刻arduino的存储器处于什么状态,比如bootloader,程序等在存储器中的布局是什么样的?
对arduino的启动过程不了解,问题可能问的不沾边,麻烦各路大虾帮忙梳理一下,讲讲arduino的程序装载和启动过程。
谢谢。 没有人指点一下啊 1.bootloader就是固件引导程序
2.bootloader存储在flash的boot区中
3.flash和ram是两个区域,,没懂你意思
4.用户程序储存在flash的app区 转载heaven大大在群里的回复
1. arduino有没有BIOS之类的固件程序?
没有,这是PC专利
2. arduino应该是有bootloader的吧,这个引导程序放在什么地方呢。系统启动时引导程序是怎么加载到内存的呢?
位于FLASH末端,AVR是哈弗结构,没有加载的概念,直接运行
3. 上电后cpu的程序计数器指向的位置在flash还是ram呢?
指向RESET中断向量,默认是程序地址空间的0x0,设置了bootloader后是末尾的某个地址
4. 采用arduino IDE开发程序后,通过USB上传程序完成后,这时候程序放在什么位置?
从flash0地址开始
此刻arduino的存储器处于什么状态,比如bootloader,程序等在存储器中的布局是什么样的?
建议看下哈弗处理器构架的背景知识,bootloader和程序的关系看AVR手册,bootloader位于flash高地址 谢谢2位,heaven。
确实帮助很大。
页:
[1]