嵌入式学习笔记教程.docx

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

nand 启动时 bank0 失效,即用不了NOP FLASH nand 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/**/ 设置返回地址: bl main /*bl指令会跳转到main函数,并且把返回地址保存在LR寄存器里面。*/ /*bl 指令会把返回地址存在lr寄存器里面。*/ #define GPFCON (*(volatile unsigned long *)0 /* volatile让编译器不要优化变量*/ #define GPF4_out (1(4*2)) #define GPF5_out (1(5*2)) #define GPF6_out (1(6*2)) #define GPF7_out (1(7*2)) GPFCON |= GPF4_out|GPF5_out|GPF6_out; // 将LED1-3对应的GPF4/5/6三个引脚设为输出 按位操作: 想要清零 : 按位与 /*例如清bit3 则 a=~(13)*/ 想要置“1” : 按位或 /*例如置bit3 则 a|= (13)*/ SRAM在芯片手册里面称为 steppingstone CPU通过存储管理器才知道怎么访问外部的设备 例如 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中去,然后继续执行(在SD

文档评论(0)

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

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

1亿VIP精品文档

相关文档