嵌入式学习笔记.doc

嵌入式学习笔记.doc

ID:55582078

大小:181.50 KB

页数:114页

时间:2020-05-18

嵌入式学习笔记.doc_第1页
嵌入式学习笔记.doc_第2页
嵌入式学习笔记.doc_第3页
嵌入式学习笔记.doc_第4页
嵌入式学习笔记.doc_第5页
资源描述:

《嵌入式学习笔记.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、nand启动时bank0失效,即用不了NOPFLASHnandflash前4K被强制复制到片内SRAM4K内存中,然后CPU会从零地址(SRAM)开始执行。nor启动时norflash零地址在norflashcpu从零地址执行。norflash特征是可以像内存一样读数据,但是不能像内存一样直接写数据,要通过命令先擦除后才能写数据。GPIO实验:main没什么特别的,一样要被别人调用,执行往也要返回。启动文件:调用main,调用完之后要返回,所以要设置返回地址。最后要进行一些清理工作。软件初始化:设置栈/*设置栈就是把栈指针SP指向某个内存,假如指

2、向SDRAM则要先初始化SDRAM才能设置栈*/设置返回地址/*bl指令会跳转到main函数,并且把返回地址保存在LR寄存器里面。*/调用main清理工作硬件初始化:关看门狗/*上电时候看门狗启动,会倒数计时三秒内没有关闭就会重启系统。所以要关掉*/初始化时钟/*想要跑的更快要初始化时钟*/初始化SDRAM/**/设置返回地址:blmain/*bl指令会跳转到main函数,并且把返回地址保存在LR寄存器里面。*//*bl指令会把返回地址存在lr寄存器里面。*/#defineGPFCON(*(volatileunsignedlong*)0x)/*v

3、olatile让编译器不要优化变量*/#defineGPF4_out(1<<(4*2))#defineGPF5_out(1<<(5*2))#defineGPF6_out(1<<(6*2))#defineGPF7_out(1<<(7*2))GPFCON

4、=GPF4_out

5、GPF5_out

6、GPF6_out;//将LED1-3对应的GPF4/5/6三个引脚设为输出按位操作:想要清零:按位与/*例如清bit3则a&=~(1<<3)*/想要置“1”:按位或/*例如置bit3则a

7、=(1<<3)*/SRAM在芯片手册里面称为steppingstoneCP

8、U通过存储管理器才知道怎么访问外部的设备例如SDRAMDM9000网卡等想访问一个芯片,需要哪些条件1:地址线(例如SDRAM行地址13位,列地址9位)看芯片手册2:数据线/*8/16/32位数据宽度例如SDRAM位宽32位SDRAM32位,所以ADDR0,ADDR1就不需要使用。*/看原理图3:时钟/频率(刷新周期8192/64ms即刷新8192次需要64ms)看芯片手册4:芯片相关:例如SDRAM(行地址,列地址,Bank)看芯片手册SDRAM32位,所以ADDR0,ADDR1就不需要使用。因为2440的地址的单位是byte(8位),所以CP

9、U发出的0,1,2,3这四个地址都是访问到SDRAM地址中的同一个单元。返回都是返回同一个四字节(32位)的数据。假如访问的芯片去16位的,则ADDR0就不需要使用。想要访问某个芯片(如SDRAM)先要配置存储管理器(位宽,行列地址,刷新周期)。所谓配置也就是设置寄存器。2440可以接8个外设(SDRAM,DM9000网卡,NORFLASH等等),因为有8个Bank,有8条片选信号(CS信号)。Bank0~5都是一样的结构。Bank6~7比较特别,它们可以接SDRAM。内存可以分为SRAM,SDRAM,DDR等等。SRAM很快但是比较贵,使用方法

10、简单,直接发地址信号就可以了。SDRAM比较便宜且访问比较复杂,它的地址还分为Bank地址,行地址,列地址。还要不断的刷新SDRAM(REFRESH寄存器就是用来设置刷新周期的),不刷新数据就会丢失。网卡,NORFLASH它们的接口跟根SRAM的接口是一样的,术语上称为RAMlike。每个Bank可以外接128M的东西,寻址空间是128M。bank7/bank6可以组(128M/128M,64M/64M,32M/32M等)大程序启动过程:1:一上电nandflash前4K被拷贝到SRAM中。2:程序会先关看门狗,初始化存储管理寄存器,SDRAM。

11、3:拷贝到SRAM中的4K代码再把nandflash中的代码拷贝到SDRAM中去,然后继续执行(在SDRAM中运行)。arm-linux-ld-Ttext0x-gled_on.o-oled_on_elf(Ttext0x是链接地址)所谓链接地址就是说,运行时程序“应该”位于哪里。所以head.s就应该从片内SRAM拷到SDRAM中去。当前PC值=当前指令的地址+8//pc=当前指令地址+8MMU:权限管理,地址映射。使用MMU时,使用CPU发出的地址是虚拟地址。或者是真实的物理地址。CPU发出的是物理地址还是虚拟地址CPU是不在乎的,CPU没有虚拟

12、地址和物理地址概念。写程序的时候,我们说的地址例如链接地址,也没有虚拟地址,物理地址概念。就是一个单纯的地址。地址只是从CPU角度看到的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。