iron 发表于 2012-5-22 23:32:30

请教arduino程序装载和启动过程

各位好{:soso_e102:}

我想了解一下arduino的启动过程。
我理解的是,上电之后,cpu的程序计数器指向一个固定的位置,然后开始执行放在这个位置的程序。

我有几个问题:
1. arduino有没有BIOS之类的固件程序?
2. arduino应该是有bootloader的吧,这个引导程序放在什么地方呢。系统启动时引导程序是怎么加载到内存的呢?
3. 上电后cpu的程序计数器指向的位置在flash还是ram呢?
4. 采用arduino IDE开发程序后,通过USB上传程序完成后,这时候程序放在什么位置?
    此刻arduino的存储器处于什么状态,比如bootloader,程序等在存储器中的布局是什么样的?

对arduino的启动过程不了解,问题可能问的不沾边,麻烦各路大虾帮忙梳理一下,讲讲arduino的程序装载和启动过程。

谢谢。

iron 发表于 2012-5-23 22:43:08

没有人指点一下啊

奈何col 发表于 2012-5-23 23:09:49

1.bootloader就是固件引导程序
2.bootloader存储在flash的boot区中
3.flash和ram是两个区域,,没懂你意思
4.用户程序储存在flash的app区

弘毅 发表于 2012-5-23 23:15:48

转载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高地址

iron 发表于 2012-5-23 23:37:11

谢谢2位,heaven。
确实帮助很大。
页: [1]
查看完整版本: 请教arduino程序装载和启动过程