- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统原理及应用教程第8章00研讨
阶段1 1.关WATCH DOG (disable watch dog timer) 上电后,WATCH DOG默认是开着的 2.禁止所有中断 (disable all interrupts) vivi中不会用到中断,中断是系统的事,bootloader可不能去干这事的(不过这段代码实在多余,上电后中断默认是关闭的) 3.初始化系统时钟启动MPLL,FCLK=200MHz,HCLK=100MHz,PCLK=50MHz,“CPU bus mode”改为“Asynchronous bus mode”。 4.初始化内存控制寄存器(memsetup):S3c2440共有15个寄存器,在此开始初始化13个寄存器。 5.检查是否从掉电模式唤醒(Check if this is a wake-up from sleep)若是,则调用WakeupStart函数进行处理。 6.点亮所有LED (All LED on)点一下灯,通知外面的同志,告诉他们有情况发生。 7.初始化UART0 (set GPIO for UART InitUART) (1)设置GPIO,选择UART0使用的引脚 (2)初始化UART0,设置工作方式(使用FIFO)、波特率115200 8N1、无流控等。这可是使用串口与s3c2440通信的条件啊,在终端也要如此设置。 8.跳到内存测试函数 9.如果定义了以Nand flash方式启动,则此时要将vivi所有代码(包括阶段1和阶段2)从Nand flash复制到SDRAM中 (1)设置nand flash控制寄存器 (2)设置堆栈指针 (3)设置即将调用的函数nand_read_ll的参数 (4)调用nand_read_ll进行复制 10.跳到bootloader的阶段2运行,亦即调用init/main.c中的main函数(get read to call C functions) (1)重新设置堆栈 (2)设置main函数的参数 (3)调用main函数 阶段2 从init/main.c中的main函数开始,终于步入C语言的世界了。Main函数总共有5步 1、Step 1:reset_handler() 2、Step 2:board_init() board_init调用2个函数用于初始化定时器和设置各GPIO引脚功能 3、Step 3:建立页表和启动MMU mem_map_init函数用于建立页表 mmu_init()函数用于启动MMU 4、Step 4:heap_init()??? 第4步调用了heap_init(void)函数,并返回值。该值是函数heap_init()调用的mmalloc_init()函数的返回值。其实,这步就是申请一块内存区域。 5、Step 5:mtd_dev_init()? 在linux系统中,我们通常会用到不同的存储设备,特别是FLASH设备。为了在使用新的存储设备时,我们能更简便地提供它的驱动程序,在上层应用和硬件驱动的中间,抽象出MTD设备层。驱动层不必关心存储的数据格式如何,比如是FAT32、ETX2还是FFS2或其它。它仅仅提供一些简单的接口,比如读写、擦除及查询。如何组织数据,则是上层应用的事情。MTD层将驱动层提供的函数封装起来,向上层提供统一的接口。这样,上层即可专注于文件系统的实现,而不必关心存储设备的具体操作。 第8章 嵌入式系统Boot Loader技术 嵌入式系统软件开发 信息与电气工程学院 电子信息工程 杨健 第8章 嵌入式系统Boot Loader技术 第8章 嵌入式系统Boot Loader技术 第8章 嵌入式系统Boot Loader技术 第8章 嵌入式系统Boot Loader技术 第8章 嵌入式系统Boot Loader技术 第8章 嵌入式系统Boot Loader技术 第8章 嵌入式系统Boot Loader技术 第8章 嵌入式系统Boot Loader技术 第8章 嵌入式系统Boot Loader技术 主讲内容 第8章 嵌入式系统Boot Loader技术 第9章 嵌入式Linux操作系统移植 第10章 嵌入式Linux设备驱动程序开发 第11章 嵌入式Linux应用程序设计 BootLoader(vivi)的代码分析 8.2 Boot Loader的基本概念 8.1 8.1?Boot Loader的基本概念 Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 8.1.1 Boot Loader的相关
您可能关注的文档
最近下载
- 2024年新修订《公司法》解读课件.pptx
- 电网企业数字化转型的路径与策略.docx VIP
- 危险化学安全卡—航空煤油.doc VIP
- 碱金属K和Na对配合煤炼焦特性及捣固焦炭质量影响的研究-化学工程与技术专业论文.docx VIP
- 小学美术教育在跨学科教学中的融合与应用教学研究课题报告.docx
- 2025至2030中国建筑工程承包行业市场占有率及有效策略与实施路径评估报告.docx VIP
- 2024红太阳光伏组件用户使用手册.docx VIP
- 2025年梦想启航未来可期班会.pptx VIP
- 职业技术学校《机床电气控制技术》课程标准.doc VIP
- 人教版六年级上册美术教案(全册).pdf VIP
原创力文档


文档评论(0)