ARM
文章平均质量分 79
乌笨兔
这个作者很懒,什么都没留下…
展开
-
ARM MMU工作原理剖析
MMU,全称Memory Manage Unit, 中文名——存储器管理单元。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片段。覆盖块0首先运行,结束转载 2010-12-14 22:31:00 · 663 阅读 · 0 评论 -
Linux Porting Guide
<br />Linux Porting Guide<br />By Rajesh Palani, Embedded Systems Programming<br />Feb 26 2001 (16:50 PM)<br />URL: http://www.embedded.com/showArticle.jhtml?articleID=9900048<br /><br />Why pay someone to port Linux for you? Here's one Linux how-to no emb转载 2010-12-26 23:16:00 · 1226 阅读 · 0 评论 -
ARM启动代码设计参考
ARM启动代码设计参考基于ARM的芯片多数为复杂的片上系统,这种复杂系统里的多数硬件模块都是可配置的,需要由软件来设置其需要的工作状态。因此在用户的应用程序之前,需要由专门的一段代码来完成对系统的初始化。由于这类代码直接面对处理器内核和硬件控制器进行编程,一般都是用汇编语言。一般通用的内容包括: 中断向量表初始化存储器系统初始化堆栈初始化有特殊要求的端口,设备初始化用户程序执行环境改变处理器模式呼叫主应用程序 1. 中断向量表ARM要求中断向量表必须放置在从0地址开始,连续8X4字节的空间内。每当一个中断发转载 2010-11-07 13:54:00 · 510 阅读 · 0 评论 -
正式学习bootloader,基于u-boot1.1.4(启动流程框架)
<br /> 先分析一下u-boot启动的两个阶段,分别对应start.S和board.c这两个文件。带着两个目的:一是分析一下启动的流程,二是熟悉一下汇编。 转载请注明出处,有误的地方请指正。源码基于u-boot1.1.4版本。 先看board/smsk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序。<br />OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm","elf32-littlearm")<br />/*O转载 2010-11-07 14:04:00 · 396 阅读 · 0 评论 -
正式学习bootloader,基于u-boot1.1.4(启动流程框架)
<br /> 先分析一下u-boot启动的两个阶段,分别对应start.S和board.c这两个文件。带着两个目的:一是分析一下启动的流程,二是熟悉一下汇编。 转载请注明出处,有误的地方请指正。源码基于u-boot1.1.4版本。 先看board/smsk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序。<br />OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm","elf32-littlearm")<br />/*O转载 2010-11-07 14:05:00 · 479 阅读 · 0 评论 -
u-boot 移植步骤详解
<br />1 U-Boot简介<br />U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ART转载 2010-11-07 18:14:00 · 866 阅读 · 1 评论 -
ARM920T的MMU与Cache
<br /><br />Cache是高性能CPU解决总线访问速度瓶颈的方法,然而它的使用却是需要权衡的,因为缓存本身的动作,如块拷贝和替换等,也是很消耗CPU时间的。MMU的重要性勿庸置疑,ARM920T(和ARM720T)集成了MMU是其最大的卖点;有了MMU,高级的操作系统(虚拟地址空间,平面地址,进程保护等)才得以实现。二者都挺复杂,并且在920T中又高度耦合,相互配合操作,所以需要结合起来研究。同时,二者的操作对象都是内存,内存的使用是使用MMU/Cache的关键。另外,MMU和Cache的控制寄存转载 2010-11-12 20:45:00 · 663 阅读 · 0 评论 -
Eclipse+Jlink gdbSever调试mini6410 uboot
Eclipse+Jlink gdbSever调试mini6410 uboot由于mini6410出厂时硬件上不支持仿真器,需要进行修改,具体请看RVDS2.2 + jlink v8调试 mini6410(http://www.towoo.net/forum.php?mod=viewthread&tid=245&page=1&extra=#pid267)对于Eclipse图形化方法调试,网上已经有很多的文章,本文也是从中得到很多,只是把调试用到6410上而已. 把软件清单列一下:1、 Ec转载 2010-11-19 13:53:00 · 2300 阅读 · 0 评论 -
ARM编译的一些感悟
<br />这所谓的编译器就是将c语言代码编译为机器代码的,先将C编译为汇编代码,再由汇编器将汇编代码编译为机器代码,CPU执行的是机器代码突然发觉好像很多书都这么说,很多人也这么说,于是很自然的记住了,但是,我突然想起了,这可是隐藏着一些道理。 1,C编译为汇编,对于这个过程,应该是平台无关的,具体是怎么实现的?这个是由C编译器开发商来处理,总之,如果我用IAR ARM的话,那么同样的main函数,编译出来应该是得到 ARM 格式的汇编代码,也就是说,使用的是 ARM 指令集,同样道理,如果是 GCC,也转载 2010-11-26 22:52:00 · 641 阅读 · 0 评论