文章目录
  1. 1. 1.uvprojx文件与PACK目录相关问题
  2. 2. 2.个性化设置的问题
  3. 3. 3.Keil编辑一个文件,总是自动更改回车换行。

Keil与其它IDE环境相比各有优缺点,但对团队开发来说,Keil的确是短板。其它常用的IDE如IAR,Eclipse,Code Composer Studio,Visual Studio都还好,各有自已的解决方法,大体上安装目录的问题可以用环境变量解决(不管是系统的还是IDE内部的环境变量);个性化设置可以放到单独的文件里等。但Keil从uVsion2起,项目文件组织一直存在这样的问题。Keil5项目文件有了大的变化,但这块仍然没有改观。可以说Keil不是个团队开发友好的IDE环境。有些问题能解决,有些问题搞不定。后来又因为其它原因,放弃使用Keil,改用IAR开发STM32。本文整理了以前发现的问题和部分折腾出来解决方案共享出来。

1.uvprojx文件与PACK目录相关问题

Keil5.x引入了PACK来管理函数包,给安装和开发带来一定便利。但uvprojx文件引用Pack里的文件用的是绝对路径,如果团队里Keil安装目录各不相同,那就麻烦了。
例如我们团队里,A安装在缺省C:\Keil_v5,B安装在d:\Keil_v5,C安装在C:\EDA\Keil_v5。
看一下B的uvprojx文件与A不同的地方:
uvprojx里的文件目录.png
每个人的uvprojx这块都不一样,很是烦人。

尝试自己用环境变量替换PACK的路径不成功。直接改项目文件用环境变量不认;在对话框里修改,保存的还是绝对路径。

解决方案:
方案一:强制所有人的安装到相同的目录。以缺省的C:\Keil_v5为准。管理比较严格的团队可以这样。
方案二:对实在不想装到C盘,或者已经安装到其它目录的,可以将其中Pack目录用mklink命令链接到C:\Keil_v5\ARM\PACK,并修改\Keil_v5\TOOLS.INI对应项。
以下是批处理命令示例,先建个C:\Keil_v5\ARM空目录,然后建一个软链接PACK到d:\Keil_v5\ARM\PACK:

LinkKeil5Pack.cmd
1
2
3
4
mkdir C:\Keil_v5
mkdir C:\Keil_v5\ARM
mklink /D C:\Keil_v5\ARM\PACK D:\Keil_v5\ARM\PACK
pause

Keil_v5实际安装目录下的TOOLS.INI也要相应修改:

Keil_v5\TOOLS.INI
1
2
3
[UV2]
。。。
RTEPATH="C:\Keil_v5\ARM\PACK"

这样虽然B的PACK目录实际安装在D盘,也可以通过软链接C:\Keil_v5\ARM\PACK访问到,不影响编译。

2.个性化设置的问题

keil有时将个性化设置放到uvoptx文件里。有哪些设置以前没有整理,后来不用它了也懒得整理了。试过uvoptx不加入版本库,但当增减项目文件时也会出问题。有时没办法就删掉uvoptx文件让keil自已重建。

3.Keil编辑一个文件,总是自动更改回车换行。

文本文件换行有不同的规范,通常有两个符号:CR回车 LF换行,十六进制分别为0D,0A。
Windows/Dos CRLF \r\n
Linux/Unix LF \n
MacOS CR \r
我印像中通常的编辑器打开编辑一个文件,要么按照原文件的换行规范处理新的行,要么只碰修改的行,其它行不变。而keil是只要它编辑的文件,换行统一转换成CRLF。
如果用git版本管理,可以设置autocrlf为true。详情自行搜索。实际用起来还是有点问题,没仔细折腾。

文章目录
  1. 1. 1.uvprojx文件与PACK目录相关问题
  2. 2. 2.个性化设置的问题
  3. 3. 3.Keil编辑一个文件,总是自动更改回车换行。