版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1史先强史先强南京博芯电子技术有限公司南京博芯电子技术有限公司2Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.SEP4020地址空间分配地址空间分配CSFCSE(SDRAM)CSB、CSC、CSDCSA(NorFlash)IOESRAM0 x0400 00000 x1000 00000 x2000 00000 x3000 0000MACLCDCDMAEMIGPIOPMCINTCNand_
2、Data(0 x11000200)04G3Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent. 什么是启动?什么是启动? 从从CPU内核行为看,启动就是从零地址取第一条指令并内核行为看,启动就是从零地址取第一条指令并执行执行 系统零地址映射系统零地址映射 硬件设定硬件设定 EMI配置配置4Copyright 2007 Prochip Electronics Co,ltd. All Rights
3、 Reserved. Not to be reproduced by any means without prior written consent.SEP4020启动方式介绍启动方式介绍 SEP4020启动方式启动方式 SystemSetup2:0参数设置参数设置000: NOR启动启动001: NAND启动启动 3级地址,级地址,512byte010: NAND 4级地址级地址 512byte011: NAND 4级地址级地址 2Kbyte100: NAND 5级地址级地址 2Kbyte UB4020MB_LiteV1.1) SystemSetup0=0 SystemSetup1=J501
4、(ON:NorFlash启动,启动, OFF(接高接高=1):NandFlash启动启动) SystemSetup2=05Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NorFlash启动启动 NorFlash读写特性读写特性(一般用作一般用作ROM,要写需先擦除所有内要写需先擦除所有内容容) 读:可以实现字节寻址读:可以实现字节寻址 写:不能字节寻址,须按页或块写入写:不能字节寻址,须
5、按页或块写入 UB4020EVB上上NorFlash地址地址 起始地址:起始地址:CSA,0 x20000000开始开始 结束地址:结束地址:2MB, 0 x202000006Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.解决存储与速度的矛盾:解决存储与速度的矛盾:BootLoader将工程文件将工程文件copy到到SDRAM中中NorFlash0 x0,0 x200000000 x30
6、000000SDRAMPCBootLoaderProject Image7Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NorFlash启动启动 NorFlash启动一:配置系统环境启动一:配置系统环境 配置配置PMU (时钟及功耗等时钟及功耗等)PMU_PCSR、PMU_PMDRPMU_PLTR、PMU_PMCR 配置配置EMI (SDRAM的地址等的地址等,行列复用的行列复用的,行列
7、地址位数不行列地址位数不一样一样)EMI_CSACONF、EMI_CSECONFEMI_SDCONF1、 EMI_SDCONF28Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NorFlash启动启动 NorFlash启动二:将代码拷贝到启动二:将代码拷贝到SDRAM NorFlash启动三:将启动三:将SDRAM映射到零地址映射到零地址 NorFlash启动四:程序跳转启动四:程序跳转
8、9Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NorFlash启动启动 关于地址重映射-Remap0 x00000080/0 x20000080: ldr pc, =0 x200000880 x00000084/0 x20000084: movr0, r00 x00000088/0 x20000088: movr0, r00 x0000008C/0 x2000008C: movr0,
9、r0 0 x00000090/0 x20000090: movr0, r0REMAP0 x00000094/0 x20000094: ldrr1, =0 x11000020 0 x00000098/0 x20000098: ldrr2, =0 x0000000b0 x0000009C/0 x2000009C: strr2, r1 0 x200000A0: ldr pc, =0 x0Where is 0 x000000A0?如果不对如果不对PC做重映像做重映像,到,到9C处,左边的地处,左边的地址会跑到址会跑到SDRAM中中NorFlash0 x00000000/0 x30000000: mov
10、 r1, #0 x110000000 x00000004/0 x30000004: mov r0, #0 x1000 0 x00000008/0 x30000008: add r0, r1, r00 x0000000C/0 x3000000C: mov r2, #0 x2000 x00000010/0 x30000010: add r1, r2, r10 x00000014/0 x30000014: str r1, r0 0 x00000018/0 x30000018: mov r1, #0 x300000000 x0000001C/0 x3000001C: mov r2, #0 x1000
11、0 x00000020/0 x30000020: nop 。0 x00000094/0 x30000094: mov r1, #0 x2100000 x00000098/0 x30000098: mov r2, #0 x24000 x0000009C/0 x3000009C: nop0 x000000A0/0 x300000A0: add r1, r1, r20 x000000A4/0 x300000A4: add r1, r1, #0 x9b0 x000000A8/0 x300000A8: str r1, r0,#0 xcSDRAMIts here!10Copyright 2007 Proc
12、hip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash读写特性读写特性 读:不能字节寻址,须通过命令按页读读:不能字节寻址,须通过命令按页读 写:不能字节寻址,须按页或块写入写:不能字节寻址,须按页或块写入 SEP4020的的NandFlash控制器控制器 FIFO地址:地址:0 x1100 0200 FIFO结构:结构:32bit宽宽1个字),个字),4级深度级深度 (先进先出,读出后
13、数据去丢失,只能顺序读,不能跳转)(先进先出,读出后数据去丢失,只能顺序读,不能跳转) FIFL(先进后出先进后出)11Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动时的硬件设置启动时的硬件设置 SystemSetup2:0000: NOR启动启动001: NAND启动启动 3级地址,级地址,512byte010: NAND 4级地址级地
14、址 512byte011: NAND 4级地址级地址 2Kbyte100: NAND 5级地址级地址 2Kbyte 系统零地址映射系统零地址映射NandFlash控制器控制器FIFO:0 x1100 020012Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动过程启动过程 上电后,上电后,NandFlash控制器向控制器向NandFlash
15、发出读命令,发出读命令,读取第一页数据读取第一页数据内核从内核从NandFlash控制器的控制器的FIFO取指,由于是高位取指,由于是高位地址选通,低位地址变化不会影响取指地址选通,低位地址变化不会影响取指(CPU从中取指从中取指) FIFO读空后,读空后,NandFlash控制控制器再从控制控制器再从NandFlash中中读取个字的数据读取个字的数据16BYTE) 第一页数据读取并执行完毕,程序控制第一页数据读取并执行完毕,程序控制PC跳转跳转13Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be
16、 reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动方式的制约启动方式的制约(NandFlash下最好不要用下最好不要用LDR指令指令) 不可以使用类似不可以使用类似LDRR0, 0 x12345678的伪指令,须的伪指令,须用用mov指令代替指令代替例如:例如: MOV R0, #0 x12000000 ADD R0, R0, #0 x00340000 ADD R0, R0, #0 x00005600 ADD R0, R0, #0 x0000007814Copyright 2007 P
17、rochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动方式的制约启动方式的制约 不可以在启动代码中使用类似不可以在启动代码中使用类似B的跳转指令的跳转指令 (NorFlash中可以使用,中可以使用,FIFO特性制约不允许向前跳特性制约不允许向前跳) 不可以在启动代码中执行不可以在启动代码中执行Remap操作操作 启动代码长度必须达到启动代码长度必须达到512+16BYTE(OO
18、B区区)(以(以512B/页为例)页为例) 16BYTE(OOB区区) 前前8Byte用作校验,后用作校验,后8Byte留给程序留给程序员。员。 PC跳转必须放在启动代码的最后一条跳转必须放在启动代码的最后一条15Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动未配置启动未配置PMU) NandFlash启动一:启动一: 配置配置EMI: EMI_CSECONF:0
19、x8CFFFFF1 EMI_SDCONF1:0 x1D004177 EMI_SDCONF2:0 x8000186016Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动二:启动二: 配置配置NAND控制器控制器(配置完未做任何操作配置完未做任何操作) NAND_ADDR1:0 x00000200 (512,第,第2页地址页地址) NAND_C
20、ONF1:0 x06302857 NAND_CONF2:0 x0011435317Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动三:启动三: 配置配置DMAC DMAC_C0SRCADDR:0 x11000200;写;写DMA源地址;源地址; DMAC_C0DSTADDR:0 x30001000 ;写;写DMA目的地址目的地址 搬运时,源
21、地址不变搬运时,源地址不变(FIFO方式搬运方式搬运),目的地址会自增,目的地址会自增 DMAC_C0CONTROL:0 x0021249B DMAC_C0CONFIGRATION:0 x31D18Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动四:启动四: 配置必要的寄存器配置必要的寄存器 R10:0 x11000104 NandFlas
22、h的控制命令寄存器的值的控制命令寄存器的值 R11:0 x80000000;触发位;触发位 R9:0 x100;循环判断;循环判断 R8:0 x30001000;第;第2页地址页地址19Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动五:启动五: 写入条指令到写入条指令到0 x30000000 0 x30000000: mov r11, r
23、10 0 x30000004: A subs r9, r9, #0 x1 0 x30000008: bne A 0 x3000000c: mov pc, r8;控制;控制PC跳转跳转20Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动六:启动六: 程序指针程序指针PC跳转跳转 用用NOP填满一页填满一页(528)(132条指令条指令),最后
24、一条指令跳转,最后一条指令跳转到到0 x30000000去执行上一步写好的去执行上一步写好的4条指令条指令21Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动七:启动七: 启动启动NandFlash传输传输 0 x30000000: mov r11, r10 ;r11内容写到内容写到r10指指向的地址向的地址 将将0 x80000000写入
25、写入0 x11000104,即:启动,即:启动NandFlash读读 通过通过DMA将将NandFlash第二页数据第二页数据(主程序代码,或主程序代码,或BOOT第二部分第二部分)搬运到:搬运到:0 x3000100022Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动八:启动八: 等待等待NandFlash传输完成传输完成 0 x300
26、00004: A subs r9, r9, #0 x1 0 x30000008: bne A 空循环,延时,等待空循环,延时,等待DMA传输完毕传输完毕23Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.NandFlash启动启动 NandFlash启动九:启动九: 程序跳转程序跳转 0 x3000000c: mov pc, r8 此时此时DMA已经将主程序搬运到已经将主程序搬运到0 x3
27、0001000,跳转到该地,跳转到该地址址(第第2页起始地址,由页起始地址,由CPU开始执行第页程序开始执行第页程序) 第页的功能:将第页数据搬到第页的功能:将第页数据搬到0 x30001000处,并使处,并使pc指向第页开始位置,由指向第页开始位置,由CPU开始执行第页程序一开始执行第页程序一般仍需要做后继的搬运工作)般仍需要做后继的搬运工作) 第页代码非常难写,个第页代码非常难写,个str指令需要由个指令需要由个mov 加加3个个add指令实现指令实现24Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not
28、to be reproduced by any means without prior written consent.Stick Out Until Success24 NandFlash启动完成后内存数据:启动完成后内存数据:NandFlash启动启动25Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.U-BOOT移植与原理移植与原理 U-BOOT简介简介UBoot ,全称,全称Uni
29、versalBootLoader,是由,是由德国德国DENX小组的开发,并遵循小组的开发,并遵循GPL条款的开放源码项条款的开放源码项目。它的主要功能是完成硬件设备的初始化、操作系统目。它的主要功能是完成硬件设备的初始化、操作系统代码的搬运,并提供一个控制台及一个命令集在操作系代码的搬运,并提供一个控制台及一个命令集在操作系统运行前操控硬件设备。统运行前操控硬件设备。26Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior w
30、ritten consent.U-BOOT支持的处理器与操作系统支持的处理器与操作系统 处理器: PowerPc、MIPs、xs6、ARM、NIOs、Xsca 操作系统: OpenBSD,NetBSD,FreeBSD,Linux,SVR4,Esix,SolariS,Irix,SCO,Dell,NcR,vxworks,1,ynxos,pSOS,QNX,RTEMS,ARTOS27Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior
31、 written consent.U-BOOT简介简介 常用的常用的U-BOOT命令命令 bootm、cmp、cp、erase、flinfo、mw、md、printenv、setenv、save、reset、tftp、nand、tftp、ping28Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.U-BOOT启动代码分析启动代码分析 系统启动流程系统启动流程NorFlash启动)启动) 1
32、cpu/sep4020/start.S执行汇编指令,初始化执行汇编指令,初始化CPU 2lib_arm/board.cstart_armboot 是是U-Boot 执行的第一个执行的第一个C 语语言函数,完成系统初始化工作,进入主循环,处理用户言函数,完成系统初始化工作,进入主循环,处理用户输入的命令。输入的命令。 3init_sequenceinit_sequence数组保存着基本的初始化函数组保存着基本的初始化函数指针。数指针。29Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reprod
33、uced by any means without prior written consent.U-BOOT启动代码分析启动代码分析 系统启动后内存分配图系统启动后内存分配图30Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.U-BOOT引导操作系统分析引导操作系统分析 U-BOOT格式的内核映像格式的内核映像 mkimage -n Kernel 2.4.18 -A arm(arch) -
34、O linux -T kernel -C none(-C是否压缩是否压缩) -a 30007fc0(-a与与-e之间的之间的64B是头信息是头信息) -e 30008000(入口地址入口地址) -d 4020.bin(源内核文件源内核文件) vmlinux-2.4.18.img (生成的映像文件生成的映像文件)31Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.U-BOOT引导操作系统分析
35、:引导操作系统分析:bootm命令的实现命令的实现 读取Image头部信息,通过Magic number判断Image,通过CRC信息较验内核,获得内核实际入口地址 函数指针与绝对地址跳转 theKernel = (void (*)(int, int, uint)ntohl(hdr-ih_ep); theKernel (0, bd-bi_arch_number, bd-bi_boot_params);转成函数转成函数指针指针即即30008000地址地址CPU 号号32Copyright 2007 Prochip Electronics Co,ltd. All Rights Reserved. Not to be reproduced by any means without prior written consent.U-BOOT引导操作系统分析:传参方法引导操作系统分析:传参方法 用用TAG传递更多引导信息传递更多引导信息 struct tag struct tag_header hdr;union struct tag_core c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡村别墅地产租赁合约三篇
- 2024年标准担保公司过桥贷款服务协议范本版B版
- 2024年度知识产权专利布局与预警服务合同3篇
- 大学体育运动会开幕致辞
- 工艺品销售工作总结
- 语文高考押题专题四:诗歌鉴赏
- 汕头语文二模试题
- 物流成本课程设计
- 游泳馆教练教学课程设计
- 描写七夕节风俗随笔
- 2019MATLAB-Simulink电力系统建模与仿真第2版
- 绘本故事:睡睡镇
- BMW销售流程培训教材课件
- 煤炭入股合伙人协议书
- 普通铣床操作规程
- 导尿管相关尿路感染防控措施实施情况督查表
- 三甲医院评审护理院感组专家现场访谈问题梳理(护士)
- 家庭、私有制和国家的起源
- 中职《数学》课程思政教学案例(一等奖)
- 水库移民安置档案分类大纲与编号方案
- GA 1802.2-2022生物安全领域反恐怖防范要求第2部分:病原微生物菌(毒)种保藏中心
评论
0/150
提交评论