嵌入式开发者社区

标题: 【分享】重新编译SYS-BIOS详细步骤(让SYS-BIOS支持中文长文件... [打印本页]

作者: lushidegreen    时间: 2016-1-26 13:50
标题: 【分享】重新编译SYS-BIOS详细步骤(让SYS-BIOS支持中文长文件...
由于最近开发项目的需求,要求FATFS支持中文长文件名,而原始安装的SYS/BIOS库文件的FATFS是支持日文的。所以必须对SYS/BIOS中的FATFS源码进行修改,然后重编译已获得该特性。

注:以下步骤参考Bios_User_Guide.pdf文件Rebuilding SYS/BIOS章节。根据以下步骤重编译后,不会覆盖原有的SYS/BIOS和库。


作者: lushidegreen    时间: 2016-1-26 13:50
本帖最后由 lushidegreen 于 2016-1-26 13:52 编辑

Step1.安装SYS/BIOS和XDCtools组件
我的SYS/BIOS安装路径为C:\ti\bios_6_37_03_30
XDCtools安装路径为C:\ti\xdctools_3_25_03_72
注意:XDCtools版本必须兼容SYS/BIOS。查看兼容版本,见C:\ti\bios_6_37_03_30Release Notes Dependencies(相关性)”章节。
bios_6_37_03_30XDCtools版本必须是3.24.06.63或更新的版本。
[attach]606[/attach]



作者: lushidegreen    时间: 2016-1-26 13:54
Step2.安装类Unix shell软件Cygwin
Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件。Cygwin是个不到100M的软件,到网上下载即可。
安装后桌面图标为如下图:
[attach]609[/attach]


作者: lushidegreen    时间: 2016-1-26 13:56
Step3.拷贝一份SYS/BIOS用于重编译
拷贝后,将文件夹重命名为copybios_6_37_03_30。
其路径即为C:\ti\copybios_6_37_03_30。
如果需要节省空间,可将C:\ti\copybios_6_37_03_30中的docs文件夹删除,里面装的是SYS/BIOS的说明文件。

[attach]611[/attach]

作者: lushidegreen    时间: 2016-1-26 13:57
Step4.添加gmake工具路径到Windows环境变量
XDCtools提供了gmake工具,路径为C:\ti\xdctools_3_25_03_72
[attach]612[/attach]




作者: lushidegreen    时间: 2016-1-26 13:58
本帖最后由 lushidegreen 于 2016-1-26 13:59 编辑

在桌面“我的电脑”图标点击右键,选择“属性”,并切换到“高级”选项卡。
[attach]613[/attach]
点“环境变量”按钮,在“用户环境变量”区域点“新建”。
[attach]614[/attach]
变量名输入PATH,变量值输入gmake.exe工具的存储路径,如下图。
如果之前已经有xdctools的路径,则将其修改为最新版xdctools的路径。
[attach]615[/attach]



作者: lushidegreen    时间: 2016-1-26 13:59
本帖最后由 lushidegreen 于 2016-1-26 14:01 编辑

Step5.修改Makefile文件
用文本编辑器或软件开发IDE打开C:\ti\copybios_6_37_03_30目录下的bios.mak文件。
将XDC_INSTALL_DIR定义的值改为XDCtools的安装路径
改为XDC_INSTALL_DIR ?= C:/ti/xdctools_3_25_03_72
注意“/”的方向,如果此处写成“\”,Cygwin可能无法识别该路径。

添加目标的对应的编译器(compiler)路径
因为我的目标是ti.targets.elf.C674,因此值要填写该行的编译器路径。
[attach]616[/attach]


作者: lushidegreen    时间: 2016-1-26 14:01
要查看自己的工程目标类型,可在CCS工程的属性框的General->RTSC选项卡查看,如下图
[attach]617[/attach]
如果要求最终创建的SYS/BIOS库支持其他目标,则在对应的行填写响应的编译器路径。
如要支持C2000系列DSP,则将路径C:\ti\ccsv5\tools\compiler\c2000_6.2.0添加到以下两行代码后面:
ti.targets.C28_large ?=
ti.targets.C28_float ?=


作者: lushidegreen    时间: 2016-1-26 14:02
Step6.修改FATFS源代码
修改C:\ti\copybios_6_37_03_30\packages\ti\sysbios\fatfs中ffconf.h对FATFS的配置。
a.将#define _CODE_PAGE      932  改为  #define _CODE_PAGE      936
b.将#define _USE_STRFUNC    0     改为  #define _USE_STRFUNC    2
c.将#define _USE_LFN        0           改为  #define _USE_LFN        3

作者: lushidegreen    时间: 2016-1-26 14:03
本帖最后由 lushidegreen 于 2016-1-26 14:04 编辑

Step7.重编译SYS/BIOS
双击Cygwin桌面图标,运行Cygwin。
输入cd c:/ti/copybios_6_37_03_30回车。
输入gmake -f bios.mak clean回车,清除c:/ti/copybios_6_37_03_30原来的SYS/BIOS库。
输入gmake -f bios.mak回车,重新编译SYS/BIOS。
[attach]618[/attach]
大概5-6分钟编译完成。
[attach]619[/attach]
可输入exit回车退出Cygwin,或者点右上角的X



作者: lushidegreen    时间: 2016-1-26 14:04
Step8.使用重编译的SYS/BIOS库
在自己的SYS/BIOS工程中,点右键,打开弹出的“Properties”菜单。在CCS General属性对话框中,选择RTSC选项卡。在Products and Repositories选项卡中,取消所有SYS/BIOS(包括DSP/BIOS)选择框。这就确保没有任何版本被选中。但要保持SYS/BIOS选项被选中,如下图:
[attach]620[/attach]

作者: lushidegreen    时间: 2016-1-26 14:05
点Products and Repositories选项卡中的Add按钮。
选择Select repository from file-system,然后点Browse浏览重建的SYS/BIOS的“packages”目录。我的是C:\ti\copybios_6_37_03_30\packages。
[attach]621[/attach]
OK确认退出,重新编译工程。这样就可以使用自己重编译的SYS/BIOS库了。
在该工程的代码#include <ti/sysbios/xxx.h>上按Ctrl+左键,即可打开
C:\ti\copybios_6_37_03_30\packages\ti\sysbios\xxx.h文件。



作者: lushidegreen    时间: 2016-1-26 14:08
本帖最后由 lushidegreen 于 2016-1-26 14:21 编辑

以上方法重编译的库,本人已亲自验证,可正常使用。
但要注意的是,支持中文长文件名需要cc936.c源文件的支持。
如有任何错误,请参考Bios_User_Guide.pdf文件Rebuilding SYS/BIOS章节作为指导。



作者: 希望缄默    时间: 2016-1-27 20:02
lushidegreen 发表于 2016-1-26 14:08
以上方法重编译的库,本人已亲自验证,可正常使用。
但要注意的是,支持中文长文件名需要cc936.c源文件的支 ...


长文件名是微软的一个专利 所以默认 SYS/BIOS 不支持长文件名

多谢分享 你发了三篇比较有价值的分享 所以我建议公司给你发点奖励 不知道有没有同事联系你?
作者: lushidegreen    时间: 2016-1-28 15:04
希望缄默 发表于 2016-1-27 20:02

长文件名是微软的一个专利 所以默认 SYS/BIOS 不支持长文件名

还未见有人联系
作者: liyulin    时间: 2016-9-29 14:21
好贴 要顶 希望多交流
作者: franki    时间: 2016-11-16 22:49
谢谢楼主的分享 !
作者: utada08    时间: 2017-7-11 17:51
感谢分享,我自己只是想做一个英文和数字的长文件名,终于搞定了。英文手册看得头疼。
我遇到一些别的问题,#define _CODE_PAGE      932 改为437,在没有添加cc936.c的时候还是会报错,这个文件比较大一些,我只把ff_convert 和ff_wtoupper保留了,并且把函数的内容都注释,就不报错了。




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4