极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14193|回复: 4

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

[复制链接]
发表于 2012-5-22 23:32:30 | 显示全部楼层 |阅读模式
各位好{:soso_e102:}

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

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

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

谢谢。
回复

使用道具 举报

 楼主| 发表于 2012-5-23 22:43:08 | 显示全部楼层
没有人指点一下啊
回复 支持 反对

使用道具 举报

发表于 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高地址
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-5-23 23:37:11 | 显示全部楼层
谢谢2位,heaven。
确实帮助很大。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-4 01:02 , Processed in 0.046372 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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