Probelms about TFFS of VxWorks
1.我在User's Guide中看到这么一句:“For example, if the only flash device included on your target were a flash array implemented on AMD 29F040 flash, a NOR-based technology, you would define INCLUDE_TL_FTL and undefine INCLUDE_TL_SSFDC and INCLUDE_TL_NFTL. 所以,我定义了 INCLUDE_TL_FTL 。 2.我在User's Guide中看到这么一句:“For example, if the only flash device included on your target was an 8-bit flash array implemented on AMD 29F040 flash, you could safely undefine all the MTD defines other than INCLUDE_MTD_AMD.” 所以,我定义了 INCLUDE_MTD_AMD。 3.Socket层该怎么配置? 各位,请帮个忙吧!谢谢!
对应文档, socket应该是最低一层, 控制flash芯片 对应\target\src\drv\tffs\sockets\下的systffs.c, 下面有对应各主板的systffs.c, 需要将适应自己硬件的systffs.c添加到工程, 里面的宏定义 INCLUDE_TL_FTL和INCLUDE_MTD_AMD确定是否包括库中对应的目标文件 bootconfig.c中的加载过程为 bootload -> tffsload -> tffsDrv:dosFsInit:usrTffsConfig -> pBootDev = tffsDevCreate (drive, removable) dosFsDevInit (bootDir, pBootDev, NULL) 你提到不是用bootrom, 而是创建bootable工程 也就是你不是用TFFS启动的, 而是用网络启动的 所以你可能没包括上面这样初始化过程 你在shell中需确保有初始化过程 tffsDrv dosFsInit pBootDev = tffsDevCreate (drive, 0) //?drive决定于socket注册的顺序 dosFsDevInit ("tffs", pBootDev, NULL) 关键要挂结上文件系统后才能用devs看见tffs设备 我没实际作过, 这只是理论经验:-)
amine说的bootConfig.c中的加载过程只有在从TFFS设备中下载vxworks时才用, 我建议一开始先不要走这一步,可以先从别的途径把vxworks启动好,然后再把TFFS 配起来.AM29F040好像是vxworks直接支持的,不用自己编写MTD代码,好福气:-) 1. sysLib.c的sysPhysMemDesc[]中定义这块Flash的地址空间了没? 属性应该是 VM_STATE_WRITABLE和VM_STATE_CACHEABLE_NOT; 另外在sysTffs.c里还要定义相应的 FLASH_BASE_ADRS和FLASH_SIZE; 2. 在sysTffs.c里,除了你提到的那两个宏之外,还要: #define INCLUDE_SOCKET_SIMM /* Socket Layer */ #undef INCLUDE_TFFS_BOOT_IMAGE /* 整片Flash都用于Tffs,故不需要 */ #undef其它关于Translation Layer、MTD Layer和Socket Layer的宏定义. 将sysTffsFormat()函数中对params{}结构的初始化改为: tffsDevFormatParams params = { {0x0L, 99, 1, 0x10000L, NULL, {0,0,0,0}, NULL, 2, 0, NULL}, FTL_FORMAT_IF_NEEDED }; 这是因为整片Flash都用于Tffs,故不需要设置供Boot Image使用的offset。 3.在usrTffsConfig之前得先Format! sysTffsFormat或tffsDevFormat 0,0
1.Build a Bootrom without TFFS support. 2.Boot the target from networks. 3.Modified: (1)Makefile Add the MACH_EXTRA=sysTffs.o (2)Config.h #define INCLUDE_TFFS #define INCLUDE_FLASH (3)sysTffs.c #defien INCLUDE_TL_FTL #define INCLUDE_MTD_AMD 4.Build a bootable project and result a vxworks image 5.Reboot the target and download the vxworks image 6.Shell command line: ->tffsDrv value = 0 = 0x0 -> dosFsInit(20) value = 0 = 0x0 -> pBootDev=tffsDevCreate(8,0) new symbol "pBootDev" added to symbol table. pBootDev = 0x194d34: value = 0 = 0x0 -> dosFsDevInit("tffs",pBootDev,NULL) undefined symbol: NULL -> dosFsDevInit("tffs",pBootDev,0) value = 0 = 0x0 串口显示 dosFsLibInit failed! ->devs 显示没有Tffs -> tffsDevFormat 0,0 value = -1 = 0xffffffff -> usrTffsConfig("/tffs/",0,0) value = -1 = 0xffffffff -> usrTffsConfig("/tffs/",8,0) value = -1 = 0xffffffff 是什么问题呢?
回复
有奖活动 | |
---|---|
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! |
打赏帖 | |
---|---|
【换取手持数字示波器】+AT89C2051串口接收数据显示到LCD1602上被打赏50分 | |
【分享评测,赢取加热台】+AT89C2051控制NRF24L01收发数据被打赏50分 | |
【分享评测,赢取加热台】迪文屏设计实战技巧被打赏40分 | |
“DFRobot盖革计数器模块评测”基础模型搭建被打赏50分 | |
【换取手持数字示波器】+角点检测----Harris被打赏40分 | |
【换取手持数字示波器】常见音频指标被打赏20分 | |
【分享评测,赢取加热台】从零配置MCX-N947——PWM(SCtimer)被打赏50分 | |
【分享评测,赢取加热台】实际测试MCX-N947——PWM(Ctimer)被打赏50分 | |
【换取手持数字示波器】红外触摸框及各类红外设备的工作原理被打赏20分 | |
【换取手持数字示波器】+精英板驱动两相四线步进电机被打赏10分 |