版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
案例列 案例一、板NandFlash程序设计与内核加 案例目 硬件设 软件环 案例内容与要 案例实 1、在s工程的基础上添加nand实验代码 2、编译代码,排除编译错误,生成 3、连接好开发板连线,启动开发板,并生成的armboot.bin到开发板运 4、查看程序运行结 将本案例提供的Linux内核镜像烧写到开发板的闪存(nandflash)中。76、继续完善代码并完成Linux内核引导功 7、修改连接文件中,连接地址为 8、编译代码,排除编译错误,生成 9、生成的armboot.bin到开发板、并测试bootlinux命 案例一、板NandFlash程序设计与内核加S5PV210NANDS5PV210NANDPC机(X86兼容机S5PV210LinuxGNUARM相关工具软件(串口,网络U-boot1、在nand案例实验的基础上继续编写nand函数21、在s工程的基础上添加nand实验代码intnand_page_read(char*mem_addr,int{intpage_no;inti;intintnand_page_read(char*mem_addr,int{intpage_no;inti;intpage_no=nand_addr/NAND_PAGE_SIZE;NFCMMD=0;NFADDR=NFADDR=NFADDR=(page_no&0xff);NFADDR=((page_no>>8)&0xff);NFADDR=((page_no>>16)&0xff);NFCMMD=ptr=for(i=0;i<NAND_PAGE_SIZE/4;{ptr[i]=}return}<2>、修改 中的nand.h文件,添加nand_page_read函数代码nand.hNF_EXNF_EXvoid在其后面一行添加代码 <3>、编辑 中的cmd.c,代码如下在cmd_nandid函数后面添加nand_page_read函数(从nandflash中一页数据),代 cmd_nandread{intcharunsignedint*ptr=(unsignedint;nand_page_read((char*)ptr,uart_puts("\nnandreaddata:\nfor(i=0;i<256;{if(!(i%{}itoa(itoa_buffer,ptr[i]);uart_puts("");}}<4>、修改cmd.c文件中的constcmd_tcmd_list[]constconstcmd_tcmd_list[]{{"ledon",{"ledoff",{"nandid",{"nandread",2make直接编译我们编写好的代码,如果有错误请根据错误提示排除错误,直到最后能生成armboot.bin。3、连接好开发板连线,启动开发板,并生成的armboot.bin到开发板运PCPC开发板上的u-boot启动后可以通过网络或串口将armboot.bin到开发板的内存(地址为0x ),然后使用u-boot的go命令(go0x 板上的armboot.bin程序。程序正确编译,到开发板上运行后,在s中输入“nandread”来测试nandflahs数据是否正确5Linux内核镜像烧写到开发板的闪存(nandflash)板闪存(nandflash)的0x600000地址处。为后续编写Linux内核加载程序做准备。本例在windows环境下使用网络方式、烧写,启动tftpd服务软件,将Image文件到d:\tftpboot(tftpd32软件的服务器),开启开发板进入u-boot命令行在u-boot终端中输入print命令查看网络相关的环境变量设置是否正确,然后 看看网络是否通一切ok后我们使用tftp命令将Image到开发板内存的0x我们看到传输了0xb69ec0字节接下来我们使用u-boot的nand命令将到内存的0x600000<1>u-boot <2>将内存地址 处的内容写入闪存0x600000处,写入长度为 Image已经成功被写入到了闪存中,接下来我们就可以编写代码6Linux编辑armboot 函数,在这个函数后面添加cmd_boot_linux函数,代码如下:intint{intchar*ptr=(char; void(*linux_start)(inta0, a1,unsignedinta2)=(void(*)(inta0,inta1,unsigned;unsignedintnand_addr=uart_puts("loadinglinuxkernelwaitfor(i=0;i<0xC00000/NAND_PAGE_SIZE;{nand_page_read(ptr,nand_addr);ptr+=NAND_PAGE_SIZE;nand_addr+=}uart_puts("\nbootlinux\n");linux_start(0,2456,0);}constconstcmd_tcmd_list[]{{"ledon",{"ledoff",{"nandid",{"nandread",{"bootlinux",cmd_boot_linux,7、修改连接文件中,连接地址为修改armboot.lds文件,将其中.=0x 改为. { ; {start.o} {} {}}注意:“.”后面的空格和“:”前的空格;圆括号()和花括号{}8make直接编译我们编写好的代码,如果有错误请根据错误提示排除错误,直到最后能生成armboot.bin。注意此处地址改为 ,运行需要使用 命令开发板上的u-boot启动后,可以通过网络或串口将armboot.bin到开发板的内存中(地址为0x ),然后使用u-boot的go命令运行刚刚到开发板上的armboot.bin程序。armboot.bin在开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安踏集团秋招面试题及答案
- 图书馆阅读推广专业培训考核大纲
- 立体停车场可行性报告
- 泰兴能耗双控工作方案
- 论高质量发展背景下教育决策现代化的循证选择
- 阅读教学设计笔记
- 是全民国家安全教育日
- 地震安全知识培训
- 初三趣味古诗测试题及答案
- 血透患者高磷血症护理查房
- 高中生法制教育
- 运动解剖学课件12 下肢骨连结学习资料
- 湘潭大学模电期末考试试题库
- 幼儿园开学食堂安全培训
- 白内障手术前后护理
- GB/T 4706.23-2024家用和类似用途电器的安全第23部分:室内加热器的特殊要求
- 干式螺杆真空泵培训
- 《功能性食品开发与应用》课程标准
- 咯血患者的护理查房课件
- 复旦大学《755卫生管理综合》历年考研真题汇编
- 二次函数的区间最值问题
评论
0/150
提交评论