脑供血不足中医叫什么| 颈椎轻度退行性变是什么意思| 如如不动什么意思| 防晒霜什么牌子好| 聪明如你什么意思| 脑脊液白细胞高是什么原因| 李世民属什么生肖| 胆汁反流是什么意思| 大陆去台湾需要什么手续| 垫背是什么意思| 马六甲板材是什么木材| 牡丹和芍药有什么区别| c1e驾照能开什么车| 阴晴不定是什么意思| 空字五行属什么| 什么心什么肺| 什么车| 打了麻药有什么副作用| 2028什么年| 十一点是什么时辰| 佩戴沉香有什么好处| 字母圈是什么| 牙痛挂什么科| 曼秀雷敦属于什么档次| 阳痿早泄是什么意思| 相见恨晚是什么意思| 长情是什么意思| 太子龙男装什么档次| 早上10点是什么时辰| 阿魏酸是什么| 1953属什么生肖| 高等院校是什么意思| 喉咙痛感冒吃什么药| l是什么单位| 胃胀是什么感觉| 摩什么接什么| 大保健什么意思| 中国防御系统叫什么| 弟弟的孩子叫什么| 牙周炎吃什么药最有效| 皮下囊肿挂什么科| 精神什么意思| 家里进蛇有什么预兆| aep是什么意思| 痰湿体质吃什么食物好| 肌酐高是什么问题| 栋字五行属什么| 为什么一热身上就痒| 大暑是什么意思| 梦见给死人烧纸钱是什么意思| 孽缘什么意思| 92年的属什么| 用纸盒能做什么手工| 摄政王是什么意思| 七匹狼男装是什么档次| 屁多不臭是什么原因| 5月5号什么星座| 血脂稠吃什么食物好| 为什么听力会下降| 怀孕什么不能吃| 腿走路没劲发软是什么原因| marisfrolg是什么牌子| 传染病八项包括什么| 大校相当于地方什么级别| oder是什么意思| 中将相当于什么级别| 拉黑粑粑是什么原因啊| 827是什么意思| 什么牌子的钙片好| 快走对身体有什么好处| 百分比是什么意思| 令堂是什么意思| 移动电源和充电宝有什么区别| 大道无为是什么意思| 斑鸠吃什么| 小腹胀胀的是什么原因| 射手是什么象星座| 一什么秋千| 口淡无味是什么原因| 弈字五行属什么| 急性扁桃体化脓是什么原因引起的| 激素高是什么原因| 大暑是什么意思啊| 仙灵脾又叫什么| 黑色的猫是什么品种| 生殖疱疹用什么药效果好| 尿酸520属于什么水平| 一日清闲一日仙是什么生肖| 物以类聚什么意思| 挑染是什么意思| 19时是什么时辰| 为什么不能摸猫的肚子| 四月十六是什么星座| 扁平疣是什么病| 肠粉是用什么粉做的| esim卡是什么| 3个火读什么| 拔牙后吃什么| 抑菌液有什么作用| 什么人容易得癌症| 什么的肥料| 午夜梦回是什么意思| 掉钱了是什么预兆| 不能生育的女人有什么特征| 父亲节出什么生肖| 黄精吃了有什么好处| 西洋参吃了有什么好处| 事业编制是什么意思| 什么的飞机| 肺气囊是什么病| 神经衰弱有什么症状| 肾积水是什么原因| 耳朵发烧是什么原因| 汗多是什么原因| 今年为什么闰六月| 什么的山野| 什么运动瘦脸| 微信密码是什么| 什么是区块链技术| 路由器坏了有什么症状| 妈妈的妈妈叫什么| 什么男什么女的成语| 浅褐色是什么颜色| 八拜之交是什么生肖| 三竖一横念什么| 猫咪来家里是什么寓意| kimi是什么意思| 沙僧的武器是什么| 诡异是什么意思| 肚子胀是什么原因引起的| 宝宝喜欢趴着睡觉是什么原因| 煸是什么意思| 河南南阳产什么玉| hj是什么意思| 喝酒前吃什么不容易醉又不伤胃| 帮凶是什么意思| 肠胃不好吃什么调理| 两点水的字和什么有关| 派出所传唤是什么意思| 老鹰的绝症是什么| 奋不顾身的顾是什么意思| 孕妇做唐筛是检查什么| 骨折移位有什么感觉| 五十岁是什么之年| ysl属于什么档次| 二龙戏珠是什么意思| 什么叫低钾血症| 清心寡欲下一句是什么| 什么时候敷面膜是最佳时间| 什么的风儿| 洋葱配什么菜炒好吃| 补办手机卡需要什么| 高血脂是什么原因造成的| 盲点是什么意思| 白带有血丝是什么情况| iq是什么意思| 自白是什么意思| 38线是什么意思| 怀孕1个月有什么症状| 7.11是什么日子| 蛋白尿是什么原因引起的| 精神衰弱吃什么药| 为什么不| 暑假是什么时候放假| 埋怨是什么意思| 查肝功能能查出什么病| 腺病毒阳性是什么意思| 狮子座上升星座是什么| 为什么人会衰老| 有情人终成眷属是什么意思| 坐骨神经痛是什么原因引起的| 胃有息肉的症状是什么| 嘴巴周围长痘痘是什么原因引起的| sandisk是什么牌子| 人生最大的幸福是什么| 医生为什么喜欢开地塞米松| 臭屁多是什么原因| 外痔用什么药| 鸡男配什么属相最好| 龟裂是什么意思| 支气管发炎是什么原因引起的| 新生儿白细胞高是什么原因| 剖腹产第三天可以吃什么| 糖类抗原CA125高是什么意思| ng是什么单位| 什么是思维| 甲沟炎属于什么科| 胯骨疼挂什么科| 做肠镜前一天可以吃什么| 眼皮肿痛什么原因| 子宫回声欠均匀是什么意思| 止汗药什么最好| 男人少一个睾丸有什么影响| 藏风聚气是什么意思| 披萨用什么面粉| bq是什么意思啊| 胸前骨头疼是什么原因| 7月初7是什么日子| 鸡内金是什么东西| leu是什么氨基酸| 6月9号什么星座| 月经期后是什么期| 三白眼是什么意思| 什么食物含锌| 为什么老是打喷嚏| 牙龈出血是什么病征兆| 血管瘤有什么危害吗| ab型rh阳性是什么意思| 矿泉水敷脸有什么作用| 血友病是什么遗传方式| 抗甲状腺球蛋白抗体高是什么原因| 未来的未多一横念什么| 什么东西倒立后会增加一半| 法令纹用什么填充效果最好| 蛞蝓是什么| 鳄鱼是什么动物| 对应是什么意思| 精血是什么| 后背筋膜炎吃什么药| 母亲节送什么花| absorb什么意思| 农历七月二十什么日子| 复方氨酚烷胺胶囊是什么药| 膜性肾病什么意思| 舌头短是什么原因| 荔枝有什么作用与功效| 娃娃鱼用什么呼吸| 生蚝补什么| 太原为什么叫龙城| beast什么意思| yy什么意思| 丧门是什么意思| 凶狠的反义词是什么| 发财树用什么肥料最好| 唇炎是什么原因引起的| 蜈蚣进家有什么预兆| 喇叭裤配什么鞋子好看| 小腿浮肿吃什么药最好| 女性尿路感染吃什么药| 乳腺术后吃什么最好| 经常看手机有什么危害| 8023是什么意思啊| 黑京念什么| 家里为什么会有壁虎| 白领是什么职业| 甲基苯丙胺是什么| 蕊字五行属什么| 烟雾病是什么原因引起的| 猪砂是什么东西| 北上广是什么意思| 皮肤瘙痒用什么药膏| 花生和什么不能一起吃| 会考没过有什么影响| 尿酸高是什么原因引起的| 高血脂是什么意思| 鸟屎掉手上有什么预兆| 看见黑猫代表什么预兆| 量化是什么意思| 睡午觉有什么好处| gr什么意思| 妇科凝胶排出的是什么| 牛和什么属相相冲| c14检查前需要注意什么| 带资进组什么意思| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? MCU ? vxworks nandflash tffs 移植的相关问题求教!

共3条 1/1 1 跳转至

vxworks nandflash tffs 移植的相关问题求教!

菜鸟
2025-08-04 14:29:56     打赏
百度 民建联立法会议员葛珮帆批评,港独分子明显与境外势力勾结,壮大声势,意图破坏香港及国家的形象,及破坏港人珍惜的一国两制。

 

各位好!

    小弟最近在学习vxworks的nandflash文件系统tffs移植。

    使用的是at91rm9200挂接三星的k9f1208  64M*byte的nand(4096 block *[32 page/block]*[512byte/page] = 64M*byte),目前开发板已经做好了norflash的tffs,我想不使用norflash而在nandflash上移植好tffs! 经过近一段时间的调试,遇到的问题如下:

    编译完成好vxworks镜像之后下载到开发板之后,运行 tffsShowAll 提示:

TFFS Version 2.0
0: socket=RFA: type=0xec76, unitSize=0x4000, mediaSize=0x4000000

目前来看是能够读取到ID的;

    但是在运行格式化tffsDevFormat(0,0) 时提示输出:

value = -1 = 0xffffffff
    上网查了很多资料,只是找到了许多类似的问题并没有找到比较系统的全面点的解决办法,或许是我比较笨,还望大家多指点!!

 

下面我将我所修改的文件信息列出来供各位大虾查看:

     1.对文件sysTffs.c文件的修改:
   添加了定义nandflash基地址及大小的宏
   #define ND_FLASH_BASE_ADRS      0x40000000   /* K9F1208U0C的基地址 512Mbit */
   #define ND_FLASH_SIZE           0x04000000   /* 64M */
  
   由于是采用的norflash的对应文件,我将 INCLUDE_TL_FTL #undef 掉了并同时打开了
   INCLUDE_TL_NFTL /* NFTL translation layer */ 的宏即:
   #define INCLUDE_TL_NFTL   /* NFTL translation layer */
      #undef INCLUDE_TL_FTL   /* FTL translation layer modify by wanbo 2013.04.10  */
 对于格式化时所调用的 &params我给出了如下参数
 tffsDevFormatParams params=
    {
       /*#undef HALF_FORMAT        lower 0.5MB for bootimage,upper 1.5MB for TFFS */
       /*
    #ifdef HALF_FORMAT
          {0x800001,99,1,0x100001,NULL,{0,0,0,0},NULL,2,0,NULL},
       #else          
          {0x000000000l,99,1,0x100001,NULL,{0,0,0,0},NULL,2,0,NULL},
    */
          {0x00080000l, 99, 1, 0x10000l, NULL, {0,0,0,0}, NULL, 2, 0, NULL},
  /*
  0x000000000l 表示该nandflash文件系统中前面我不打算留出bootimage的空间
               即整体全部做成文件系统 不知是否有问题!?
  */
      /* #endif  HALF_FORMAT */
    };
 
 对于rfaRegister 做了如下修改:
 if  (noOfDrives == 0)
     vol.window.baseAddress = ND_FLASH_BASE_ADRS >> 12;
    /*
 else if(noOfDrives == 1)
  vol.window.baseAddress = FLASH_BOOT_ADRS >> 12;
 */
 noOfDrives++;
 对于rfaSetWindow 做了如下修改:
 /* Physical base as a 4K page */
    if     (vol.serialNo == 0){
     vol.window.baseAddress = ND_FLASH_BASE_ADRS >> 12;
     flSetWindowSize (&vol, ND_FLASH_SIZE >> 12);
 上面两处的修改 主要是改成了nandflash的基地址跟大小!!
 其实这中间还有个概念基本不太懂  就是关于window 如若能指明方向我会去深入查看下的!
 
 以上就是sysTffs.c中的修改,不知是否有未考虑到的或是修改错误的地方,望指教!
 
 2.tffsConfig.c文件的修改:
 增加了
 FLStatus nandMTDIdentify(FLFlash vol); /* add by mhf 2013.3.26 */
 及在 MTD Tables 表中增加了
 #ifdef INCLUDE_MTD_NAND  /* add by mhf 2013.3.29 */
 nandMTDIdentify,
 #endif
 而对宏 INCLUDE_MTD_NAND 的控制我则直接放到了 config.h 中!
 不知上述文件修改是否有问题!
 
 3.sysLib.c文件修改:
 sysPhysMemDesc 表中增加了
 {
    (void *) 0x40000000,
    (void *) 0x40000000,
    ROUND_UP (0x08000000, PAGE_SIZE),
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
#ifdef INCLUDE_FLASH
    /* needs to be writable */

    VM_STATE_VALID | VM_STATE_WRITABLE  | VM_STATE_CACHEABLE_NOT
#else
    VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT
#endif
    },
 而原来的norflash的内容保留如下:
 {
    (void *) ROM_BASE_ADRS,
    (void *) ROM_BASE_ADRS,
    ROUND_UP (ROM_SIZE_TOTAL*2, PAGE_SIZE),
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
#ifdef INCLUDE_FLASH
    /* needs to be writable */

    VM_STATE_VALID | VM_STATE_WRITABLE  | VM_STATE_CACHEABLE_NOT
#else
    VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT
#endif
    },
 此处修改是地址映射需要用到的(不知是否正确!),未修改此处
 之前输入 tffsShowAll 始终无法输出正确!!! 修改之后能够打印
 出正确信息了。
 
 4.再然后就是添加了  nandMTD.c及k9f1208.c .h文件 后面我会附带传上去!
 
 在nandMTD.c文件中,主要有nandMTDIdentify的定义 定义如下:
 FLStatus nandMTDIdentify(FLFlash vol)
 {
 #ifdef DEBUG_PRINT
   DEBUG_PRINT("Debug: Entering K9F1208 identification routine\n");
 #endif

   flSetWindowBusWidth(vol.socket,8);/* use 16-bits */
   flSetWindowSpeed(vol.socket,120);  /* 120 nsec. */
   flSetWindowSize(vol.socket,2); /* 4 KBytes */

   vol.mtdVars = &mtdVars[flSocketNoOf(vol.socket)];
   /* get pointer to buffer (we assume SINGLE_BUFFER is not defined) */
   thisVars->buffer = flBufferOf(flSocketNoOf(vol.socket));

   vol.interleaving = 1;
   vol.noOfChips = 1;  /* 以1为起始 */
  
   if(readFlashID(&vol, vol.noOfChips) != TRUE )
   {
   #ifdef DEBUG_PRINT
  DEBUG_PRINT("Debug: did not identify K9F1208 flash media.\n");
   #endif
  return flUnknownMedia;
   }
  
   /* Register our flash handlers
   vol.write = nand_write_page;*/    /*modify by wanbo 2013.04.19
   vol.erase = nand_erase_block;
   vol.read = nandMTDRead;*/
   //vol.map = nandMTDMap;

   vol.write = nandMTDWrite;
   vol.erase = nandMTDErase;
   /*vol.read = nandMTDRead;*/
   vol.map = nandMTDMap;
  
   vol.flags |= SUSPEND_FOR_WRITE|NFTL_ENABLED;/*支持nand flash传输层*/

 #ifdef DEBUG_PRINT
   DEBUG_PRINT("Debug: Identified K9F1208.\n");
 #endif

   return flOK;
 }
 其中的
 /* Register our flash handlers
   vol.write = nand_write_page;*/    /*modify by wanbo 2013.04.19
   vol.erase = nand_erase_block;
   vol.read = nandMTDRead;*/
   //vol.map = nandMTDMap;

   vol.write = nandMTDWrite;
   vol.erase = nandMTDErase;
   /*vol.read = nandMTDRead;*/
   vol.map = nandMTDMap;
   不知是否有问题
   而nand_write_page nand_erase_block等函数的定义是在k9f1208.c中实现的,
   之前已经裸机测试过了读、写、擦出都是没问题的!
  
   最后,还是烦请各位大虾多多指点为谢!!!
 
 
 




关键词: vxworks nand tffs    

菜鸟
2025-08-04 15:56:09     打赏
2楼
怎么没人回复额!  自己顶个,高手、大虾们快点来啊

菜鸟
2025-08-04 18:19:06     打赏
3楼
不能让自己的帖子沉下去了  再顶起  ~~  期待高手的解答

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
蜂蜜的波美度是什么意思 今天属相是什么生肖 56年属什么 咖啡喝多了有什么危害 扑街是什么意思
棉花什么时候传入中国 腾蛇是什么意思 什么颜色可以调成紫色 尿道感染是什么原因引起 拉肚子发烧是什么原因
此起彼落是什么意思 丙肝吃什么药 痰培养是检查什么的 容易感冒是什么原因 向内求什么意思
蝴蝶兰什么时候开花 摸头杀是什么意思 眼睛总是干涩是什么原因 什么布剪不断 大汗淋漓是什么意思
皮卡丘什么意思hcv8jop2ns7r.cn 什么叫轻度脂肪肝tiangongnft.com 真菌感染是什么hcv8jop3ns1r.cn 积食发烧吃什么药zhiyanzhang.com 曹操为什么要杀华佗96micro.com
杯葛是什么意思96micro.com 马齿苋长什么样hcv8jop2ns5r.cn 什么掌不能拍hcv9jop2ns5r.cn 汗为什么是咸的hcv9jop3ns7r.cn 诺如病毒感染吃什么药hcv7jop5ns6r.cn
喝酒后胃不舒服吃什么药hcv9jop7ns1r.cn 甲是什么生肖hcv9jop7ns5r.cn 人为什么会困hcv8jop4ns4r.cn abr是什么检查hcv9jop4ns7r.cn vcr是什么hcv8jop4ns4r.cn
长期喝蜂蜜水有什么好处hcv8jop4ns5r.cn 什么是tct检查hcv7jop7ns4r.cn 睡觉脚抽筋是什么原因引起的hcv7jop5ns4r.cn 四月初八是什么节日hcv8jop1ns8r.cn 珙桐属于什么植物sanhestory.com
百度