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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |