TrueFFS文件系统在VxWorks系统中支持非2的整数次幂容量的修改方法

        TrueFFS文件系统在VxWorks系统中本身是不支持非2的n次幂容量的,比如只支持16MB、32MB、64MB等容量。对于非2的整数次幂容量,官方驱动提供了一个bootSize的参数,可以保留一部分空间,但只能从低地址空间预留。但对于powerPC架构CPU的很多应用场景中,更常见的是从高地址空间部分预留,此时只能通过修改VxWorks内核源码才能实现,下面介绍修改方法。

        以下是我的应用场景:

        系统:VxWorks 6.9

        CPU: NXP P2020(powerPC架构)

        编译器:PPC32e500v2gnu

        内核源码修改位置:

        经检查内核源码后发现,是在执行地址映射(物理地址单元映射成逻辑地址单元)的时候做了地址限定,故具体修改方法如下:

        打开InstallDir\vxworks-6.9\target\src\tffs\flsocket.c文件,其中InstallDir为vxWorks安装目录(例如我的安装目录为E:\WindRiver69),找到flMap函数,将:

return addToFarPointer(vol.window.base,address & (vol.window.size - 1));

        修改为:

return addToFarPointer(vol.window.base,address);

        修改完成后,需要重新编译内核库文件才能生效,编译方法如下:

        1) 打开 VxWorks Development Shell命令行工具;

         2) 执行如下命令进入需要生成系统库的源码目录:

                cd vxworks-6.9\target\src\tffs

         3) 执行如下命令进行编译:

                make CPU=PPC32 TOOL=e500v2gnu

        如下图所示:

        

        编译成功后,会在"InstallDir\vxworks-6.9\target\lib\ppc\PPC32\e500v2common"目录下生成新的libtffs.a库文件。 

        最后再重新编译自己的vxWorks镜像即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mzgj376008300

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值