嵌入式学习笔记..docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式学习笔记.

nand 启动时 bank0 失效,即用不了NOP FLASHnand flash 前4K被强制复制到片内 SRAM 4K内存中,然后CPU会从零地址(SRAM)开始执行。nor 启动时nor flash 零地址在nor flash cpu从零地址执行。nor flash特征是可以像内存一样读数据,但是不能像内存一样直接写数据, 要通过命令先擦除后才能写数据。 GPIO实验:main 没什么特别的,一样要被别人调用,执行往也要返回。启动文件: 调用 main,调用完之后要返回,所以要设置返回地址。最后要进行一些清理工作。软件初始化:设置栈 /*设置栈就是把栈指针SP指向某个内存,假如指向SDRAM则要先初始化SDRAM才能设置栈 */设置返回地址 /*bl指令会跳转到main函数,并且把返回地址保存在LR寄存器里面。*/调用main清理工作硬件初始化:关看门狗 /*上电时候看门狗启动,会倒数计时三秒内没有关闭就会重启系统。所以要关掉*/初始化时钟 /*想要跑的更快要初始化时钟*/初始化SDRAM/**/设置返回地址:blmain /*bl指令会跳转到main函数,并且把返回地址保存在LR寄存器里面。*/ /*bl 指令会把返回地址存在lr寄存器里面。*/#defineGPFCON (*(volatile unsigned long *)0 /* volatile让编译器不要优化变量*/#defineGPF4_out(1(4*2))#defineGPF5_out(1(5*2))#defineGPF6_out(1(6*2))#defineGPF7_out(1(7*2)) GPFCON |= GPF4_out|GPF5_out|GPF6_out;// 将LED1-3对应的GPF4/5/6三个引脚设为输出按位操作:想要清零 : 按位与 /*例如清bit3 则 a=~(13)*/想要置“1” : 按位或 /*例如置bit3 则 a|= (13)*/SRAM在芯片手册里面称为 steppingstoneCPU通过存储管理器才知道怎么访问外部的设备 例如 SDRAM DM9000网卡等想访问一个芯片,需要哪些条件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位),所以CPU发出的0,1,2,3这四个地址都是访问到SDRAM地址中的同一个单元。返回都是返回同一个四字节(32位)的数据。假如访问的芯片去16位的,则ADDR0 就不需要使用。想要访问某个芯片(如SDRAM)先要配置存储管理器(位宽,行列地址,刷新周期)。所谓配置也就是设置寄存器。2440可以接8个外设(SDRAM,DM9000网卡,NOR FLASH等等),因为有8个Bank,有8条片选信号(CS信号)。 Bank0~5都是一样的结构。Bank6~7比较特别,它们可以接SDRAM。 内存可以分为SRAM,SDRAM,DDR等等。SRAM很快但是比较贵,使用方法简单,直接发地址信号就可以了。SDRAM比较便宜且访问比较复杂,它的地址还分为Bank地址,行地址,列地址。还要不断的刷新SDRAM(REFRESH寄存器就是用来设置刷新周期的),不刷新数据就会丢失。网卡,NOR FLASH它们的接口跟根SRAM的接口是一样的,术语上称为 RAM like。每个Bank可以外接128M的东西,寻址空间是128M。bank7/bank6可以组(128M/128M,64M/64M,32M/32M等)大程序启动过程:1:一上电nand flash前4K被拷贝到SRAM中。2:程序会先关看门狗,初始化存储管理寄存器,SDRAM。3:拷贝到SRAM中的4K代码再把nand flash中的代码拷贝到SDRAM中去,然后继续执行(在SDRAM中运行)。arm-linux-ld -Ttext 0x3000000 -g led_on.o -o led_on_elf (Ttext 0x3000000 是链接地址)所谓链接地址就是说,运行时程序“应该”位于哪里。所以head.s 就应该从片内SRAM拷到SDRAM中去。当前PC值 = 当前指令的地址 + 8 // pc = 当前指令地址 + 8MMU:权限

文档评论(0)

dsf80fhg0j + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档