关于LPCbootloader及map
来源:互联网 发布:剑三优化版客户端 编辑:程序博客网 时间:2024/05/22 03:51
重看了一遍LPC说明文档,配合Startup.s参考百度大虾“苏琦”后有很多关于bootloader和map的感想:
1、 以ARM7内核为核心外围扩展了茫茫多的外设,但是每个外设都是有地址的,向相应的地址写数据,其实是先选中这个外设再给它数据,这样这个外设就有值了,能够处理数据了哈
2、 在进入main函数前有Startup.s文件,它是启动代码:
1)当LPC一上电,首先运行0地址,当然在它下面的地址里还有中断向量,但是这些地址处也必须有跳转指令才能找到相应的处理函数,所以要向量表初始化
2)后面是配置启动代码了如:VPBDIV,PLL,MAM等,在后面是栈分配给各个模式,完了转向main函数了
3、关于存储器映射还不清楚,不知道什么时候用?
答:后来看了百度博客“苏琦”后有了点感想。原来也有网友说:
“曾经有网友对Philips在LPC2000系列处理器中引入这个可选的Remap功能提出质疑:LPC2000系列处理器片内的Flash块被分割成了两组,每组都配备了相互独立的128位宽度的读取缓冲,在绝大多数情况下,CPU从Flash块的访问是全速进行的,不存在有等待的状况;另一方面,一般应用LPC2000的嵌入式系统并不需要动态地改变异常向量表。因此,对片内SRAM进行Remap后,并不能提高处理器对异常的响应能力,实际意义不大。”
但是这位大虾说:
“事实上,LPC2000系列处理器引入SRAM的Remap功能对于IAP操作具有重要的意义。相对于其它基于ARM7DMI内核的处理器而言,LPC2000系列处理器有一个独具特色的功能—IAP。在IAP擦除/写入操作时,片上Flash块,包括该块上的异常向量部分,是无法被访问读取的,为了在IAP擦除/写入操作时有效地响应异常,必须在调用IAP擦除/写入操作之前,将SRAM中的异常向量部分提前映射到系统的异常向量表地址空间上。”
最重要的一句话是最后一句,对Flash不能访问时,又要相应中断,所以需要把SRAM中的异常向量部分提前映射到系统的异常向量表地址空间上,这样再中断时,比如swi中断吧,flash虽然不能用了,但是ram映射到了这个空间了,所以在ram中可以根据向量表找到中断函数。
4、Memory Map-〉Remap-〉Boot-〉Remap,最后一个Remap过程是用户可选的:
1)LPC上电后,先进行Memory Map,这个映射主要是划分三大快:SRAM,FLASH,EXTRAM以及外围扩张等。
2)Remap:bootload子快被重新映射到0x7FFFE000—0x7FFFFFFF,而它的中断向量表部分(64字节)映射到0地址。
3)boot:这时执行的是飞利浦公司的程序,看看门狗是否复位来判断是从0地址执行还是isp下载
4)remap:是用户可选择的了3中也分析了哈
其实我主要在“苏琦”大虾的博客看了后,总结的,在此谢谢了
http://hi.baidu.com/suqiniat/blog/item/eb8ee7a9fd4f45f91f17a25f.html
- 关于LPCbootloader及map
- 关于map向前台传值与及显示
- 关于MAP
- 关于map
- 关于Map
- 关于map
- 关于Map
- 关于map
- 关于map
- 关于map
- 关于map
- 关于map
- 关于百度map和高德map,关于map坐标系
- 关于百度map和高德map,关于map坐标系
- 关于map的用法
- 关于map的遍历
- 关于Inline Parameter Map
- 关于map 和set
- 多线程 Pipeline 的改进
- 使用信号实现超时
- 在C#应用中,设计自己的配置文件
- 压力测试工具导读(WAS)
- 简述如何编译开发板的网卡驱动程序
- 关于LPCbootloader及map
- 08年6月PMP(京沪)开课及试听通知
- 关于dos下使用ghost找不到镜像文件
- java.util.Arrays类
- System.Web.HttpException: 服务器太忙 处理方法
- pkgadd或者pkgrm时出现错误
- 过该点作一条射线,然后判断该射线与三条边的相交情况
- 再订购点计划(Reorder Point Planning)概览
- 小心使用编码格式