PEEDI 9 DaVinci DM355 Linux核调试和NAND闪存编程 案例.doc

上传人:汽*** 文档编号:561950693 上传时间:2022-12-27 格式:DOC 页数:6 大小:50.50KB
返回 下载 相关 举报
PEEDI 9 DaVinci DM355 Linux核调试和NAND闪存编程 案例.doc_第1页
第1页 / 共6页
PEEDI 9 DaVinci DM355 Linux核调试和NAND闪存编程 案例.doc_第2页
第2页 / 共6页
PEEDI 9 DaVinci DM355 Linux核调试和NAND闪存编程 案例.doc_第3页
第3页 / 共6页
PEEDI 9 DaVinci DM355 Linux核调试和NAND闪存编程 案例.doc_第4页
第4页 / 共6页
PEEDI 9 DaVinci DM355 Linux核调试和NAND闪存编程 案例.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《PEEDI 9 DaVinci DM355 Linux核调试和NAND闪存编程 案例.doc》由会员分享,可在线阅读,更多相关《PEEDI 9 DaVinci DM355 Linux核调试和NAND闪存编程 案例.doc(6页珍藏版)》请在金锄头文库上搜索。

1、DaVinci DM355 Linux核调试和NAND闪存编程关键词:DM355 Linux核调试,PEEDI,FTP服务器,CFG文件;1、概述这个案例向你演示Linux核调试和用PEEDI来对DM365 EVM板的编程。这种方法可以重建板上的程序,同时终止了继续对它编程,首先演示如何手动操作,然后看如何通过简单的设置PEEDI达到这个效果。2、硬件要求-一块PEEDI -一块DM365板- UBL, U-BOOT, KERNEL and 数据输入系统-一个运行FTP服务器的主机3、设置PEEDI和放弃YAFFS首先你需要准备一个CFG的文件,如果你以前的CFG文件比较复杂,可以从这里下载一

2、个http:/download.ronetix.info/peedi/cfg_examples/arm9/tms320dm355-DM355EVM.cfg 下面的都是关于FLASH设置的描述。如果你想编写四个不同的模块(UBL, U-BOOT, Linux核 和根文件系统),你需要在CFG里面定义四个FLASH图。你要设定CORE0_PATH参数指向文件的所在目录。这种FLASH的概述或者你需要的指令仅仅是文件的名字,不是整个路径。然后,你想用PEEDI单机模式的时候,你可以拷贝这个文件到MMC/SD卡里,你仅需要该改变CORE0_PATH。现在我设置这个参数直接指向你的TFTP服务器根目录。

3、PLATFORM_ARMCORE0_FLASH0 = NAND_UBLCORE0_FLASH1 = NAND_UBOOTCORE0_FLASH2 = NAND_KERNELCORE0_FLASH3 = NAND_ROOTFSCORE0_PATH = ftp:/user:password192.168.1.1/NAND_UBLCPU = TMS320DM355CHIP = NAND_FLASHDATA_BASE = 0x02000000 ; dataCMD_BASE = 0x02000010 ; commands (CLE)ADDR_BASE = 0x0200000A ; addresses (

4、ALE)FILE = ubl.bin, BIN, 64*2048OOB_INFO = DAVINCI_ECC_HW10_512BURST_MODE = YESDAVINCI_UBL_DESC_TYPE = 0DAVINCI_UBL_DESCRIPTOR_MAGIC = 0xA1ACED00DAVINCI_UBL_DESCRIPTOR_ENTRY_POINT = 0x20DAVINCI_UBL_DESCRIPTOR_LOAD_ADDR = 0DAVINCI_UBL_MAX_IMAGE_SIZE = 28*1024NAND_UBOOTCPU = TMS320DM355CHIP = NAND_FLA

5、SHDATA_BASE = 0x02000000 ; dataCMD_BASE = 0x02000010 ; commands (CLE)ADDR_BASE = 0x0200000A ; addresses (ALE)FILE = u-boot-DM355.bin, BIN, 8*64*2048 ; 64 pages per block;FILE = u-boot-DM355.bin, BIN, 8*128*2048; 128 pages per blockOOB_INFO = DAVINCI_ECC_HW10_512BURST_MODE = YESDAVINCI_UBL_DESC_TYPE

6、= 1DAVINCI_UBL_DESCRIPTOR_MAGIC = 0xB1ACED22DAVINCI_UBL_DESCRIPTOR_ENTRY_POINT = 0x81080000DAVINCI_UBL_DESCRIPTOR_LOAD_ADDR = 0x81080000DAVINCI_UBL_MAX_IMAGE_SIZE = 1024*1024NAND_KERNELCPU = TMS320DM355CHIP = NAND_FLASHDATA_BASE = 0x02000000 ; dataCMD_BASE = 0x02000010 ; commands (CLE)ADDR_BASE = 0x

7、0200000A ; addresses (ALE)FILE = uImage, BIN, 0x00400000OOB_INFO = DAVINCI_ECC_HW10_512BURST_MODE = YESNAND_ROOTFSCPU = TMS320DM355CHIP = NAND_FLASHDATA_BASE = 0x02004000 ; dataCMD_BASE = 0x02004010 ; commands (CLE)ADDR_BASE = 0x0200400A ; addresses (ALE)FILE = rootfs.bin, BIN, 0x20800000OOB_INFO =

8、YAFFSBURST_MODE = YES 如果你能够看到前两行的概述PEEDI可以根据用户给定的信息自动编写程序指令符。我的板是2GBNAND 的集成电路。这个装置实际上是每个集成里有2x1GB NAND的装置,所以从硬件的角度来说它有两个NAND的集成,并且各自有自己的部分。然而这个Linux NAND把这两个部分和在一个2GB的装置里面。但是对于PEEDI来说它仍然是具有2x1GB的装置。在这个例子里,ROOTFS被安排在第二个装置的位置上。对于Linux 来说,地址是0x60800000,但是对于PEEDI来说,它需要从第二块装置的一开始就要计算出地址来,所以你一定要用0x208000

9、00 (0x60800000 1GB)。你也可以注意到它用来驱动第二块集成装置,另外的NAND指令,地址和数据地址的时候都要用得到。“CPU = TMS320DM355”这个参数告诉PEEDI去检测不良块,如果没有发现,让它产生在最近的好的模块。PEEDI同时也产生镜像的BBT。现在需要编写进NAND模块UBL, U-BOOT和KERNEL使系统运行,然后从以太网装载YAFFS。用flash set 指令,你可以选择你想要用的FLASH,然后 flash program 指令对NAND进行编写:peedi flash set 0peedi flash erasepeedi flash prog

10、rampeedi flash set 1peedi flash programpeedi flash set 2peedi flash program 现在把板从PEEDI分离并且复位它,它会正常运行。请看这个链接如何编写YAFFS的根文件系统:http:/ 程序给DM355 CPU(如果用 HW ECC 将会产生很多问题) ,你可以把 YAFFS程序从NAND里面删除,以后用它来做快速修复,或者手工的编程。用flash set 3 和 flash query PEEDI指令检测坏的模块,确定YAFFS NANE区域里没有了坏的模块:peedi flash set 3peedi flash q

11、uery 首先你要检测出YAFFS区的结尾在哪里,你可以放弃整个分区,但是如果这个分区没有满,放弃很多FF将没有意义。首先得计算出在tarball里所有文件的大小的和,然后在地址(就是partition里的基地址)里读取NAND (这个分区的基地址)乘于这个文件的大小,用来确定有一个数据在地址里面。在写有YAFFS 数据的分区里找到最好的NAND页,用flash read指令,确定在0x2B900000页的地址全部是FF,即它是空的。peedi flash read 0x2B800000 考虑到系统是从0x20800000开始的,这意味这你将要放弃0xB000000字节。现在你可以放弃这块地址

12、,但是YAFFS程序文件包含OOB数据,这个OOB数据不包括在NAND记忆空间里,事实上你需要放弃更多一点的数据用来纠正从2048到2112的页数。peedi flash dump 0x20800000 0xB000000/2048*2112 rootfs.bin 确定一切都ok了,你可以核实刚才放弃的程序:peedi flash verify rootfs.bin 0x20800000 4、对板的编写你现在准备完成烧写,下次你想修复你的板或者只想对一部分进行编程,你可以跳过这个当前的整个部分,直接指向编程的那个部分:peedi flash set 0peedi flash erasepeed

13、i flash programpeedi flash set 1peedi flash programpeedi flash set 2peedi flash programpeedi flash set 4peedi flash erasepeedi flash program 将板分离,确定它运行正常,跟得上根文件系统。你可以把所有的指令放在一起使它能够自动执行:prog_allflash set 0flash eraseflash programflash set 1flash programflash set 2flash programflash set 4flash erasefl

14、ash program 把这个指令放到ACTIONS目录下,用PEEDI的按钮它就会开始运行了:ACTIONS ; user defined scripts;AUTORUN = 1 ; executed on every target connect1 = prog_all 这个脚本可以通过三个方法启动:通过 PEEDI 的run $prog_all指令通过选择和开始脚本1,用PEEDI的前按钮如果AUTORUN = 1没有描述这个脚本,它将会每次启动这个板连接到PEEDI。The way 1 is useful for a board restore. Ways 2 and 3 are us

15、eful for production programming since non-qualified personnel can easily be instructed on how to work with PEEDI. 第1种方法是用来复位板的。第2、3种方法,如果人工不能掌握的话,通过production programming很快就可以知道怎么用PEEDI了。5、Linux核的调试你想调试Linux核,你需要一个带调试程序和最佳的开关的ELF核。这个板设置成装入和启动这个核,不仅仅是NAND,任何一个都可以。调试的话,最好通过以太网来装载,这个方法你不需要一个一个编写,你一旦把核建立好,找出vmlinux文件(它可能在Linux核的工程目录下)和用nm工具找出start_kernel函数所在目录,像这

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号