Slickedit 实现MDK4编译

转载 2013年12月06日 08:56:35

    原地址:http://blog.csdn.net/xuzhenglim/article/details/7232157

 Slickedit 是一款编程效率很高的编辑器,它能实现很多功能,自带的vsbuild工具在编译程序自动寻错等方面真的是很优秀,并且自带的ecmas\vim\vs等等常用的编程环境,遗憾的是它只是一款编辑器,并不针对嵌入式,对硬件方面支持严重不足,无法直接利用自带的debugger调试硬件。

      相比较之下,eclipse在工程管理和硬件支持上要比slickedit好得多,但是不得不承认,靠组件搭建起来的环境那个效率跟速度实在是不敢恭维,eclipse下搭建GCC环境+GNUARM+CDT+slickedi,虽然也可以实现硬件调试,对C支持完全视乎环境而定,而且搭配GNU ARM组件后,对arm-eabi环境配置达到一个十分方便的地步,基本可以实现可视化配置,但是,遗憾的是,arm eabi环境的编译速度太慢了,CDT搭建的调试的界面也不能跟真正的IARMDK相比,在耗费了一个星期将lpc1788移植到GCC并且搭建完一个理想的环境后,还是放弃不用了, 重新跑回MDK的怀抱。

       其实MDK环境的调试还是很不错的,至少跟eclipses相比好的不是那么一两点,更重要的是,MDK的编译速度比arm eabi的编译速度要好的多,也稳定的多,但是在代码自动完成、美化、布局、编程环境等方面还是不如slickedit,这也是很多IDE的通病,要是连这个都做得完美,那就没其他编辑器的事了。

       于是我也想利用slickeditgcc搭配的原理实现slickeditMDK的编译功能。

这个想法其实从09年开始接触过mdkslickedit的时候就有过了, 但是当时对两着完成没有任何认知,结果在努力好几个月晚后还是放弃了,还是老样子,slickedit编辑,保存切换到mdk编译。

       这样子很繁琐,一个是两个编辑器编写与显示风格不同,一个是编写的跟编译的定位不一致,带来了很多麻烦,虽然后面又努力几下,实现了slickedit编译iar,slickedit有了更深入的了解,但是还是不足以搞定mdk.

       网上虽然有人修改了keilv2v3的宏定义,可以直接放到slickedit运行,但是MDK4突然改变工程文件格式,至今没有个搞出来,也有人说用via文件,可以直接从mdk编译选项拷贝保存成txt文件用via跑。这个方法可行,但是繁琐,基本每次工程都要修改很多via,加个文件也要修改,太繁琐了,所以这个方法也摈弃了。

       最后,只能自己来了。当然结果你们也知道了。

       废话不说, 开始,首先需要了解的是slickeditvsbuild的几个变量:

       %rp工程路径

       %rn 工程名

       %rw 当前工作目录

       %n文件名(不带文件路径和类型后缀)

       %f文件名(类型后缀)

       %bd 配置文件夹(比如debug\release

       %(环境变量名)这个很重要,很多环境都是这样掉用的

       %i 工程包含的所有路径,会自动扩展成 -I path1 -I path2

       %defd 工程的所有宏定义变量 

       %libs 所有工程定义的库

       1.要想slickedit完成搭配MDK建立的工程,首先有一个是必须的,就是先建立MDK工程,配置好工程目标,工程文件以及生成文件的路径,这里强制要求将objlist都生成在工程文件所在文件夹的debug目录。

       2.在系统环境变量增加3个变量

       A.MDK ARMBIN4.所在路径,命名MDKARM

       b.MDK UV4的路径 命名MDKUV4

       C.MDKARM连接所需要的必要lib所在的路径,命名MDKARM_LIB_PATH

       D.MDKARM_PATH 编译用到的系统库的文件路径

       我的4个路径分别如下, 这个不必一样,只是参考,个人习惯所有工具放d盘,因为大部分程序都是属于绿色或者直接调用的,重装系统也没问题。

       MDKARM D:\for_tesy\keil\ARM\BIN40

       MDKUV4 D:\for_tesy\keil\ARM\RV31\LIB

       MDKARM_LIB_PATH  D:\for_tesy\keil\ARM\RV31\LIB

       MDKARM_PATH  D:\for_tesy\keil\ARM

    3.建立下个新的slickeditg工程在MDK工程当前目录下,注意名字一定是要一样的。

新建工程类型,命名随便,类型otherc\c++,在接下来的工程配置界面里面,点configurations,删除release配置,因为用不到时,留着也是碍眼。接着在工程编译工具tool里,分别设置工具如下

Complier:

       %(MDKARM)\armcc.exe -c --cpu Cortex-M3 -g  -O2 --apcs=interwork %i %defd -o "%bd%n.o" --omf_browse "%bd%n.crf" --depend "%bd%n.d" "%f"

       (注意我这里是用的优化等级-O2,可以改成-O0,一般默认的都是-O0,%bd会新建一个配置文件夹,比如debug就会新建debug文件夹,所以才强制要求mdk将生成文件都放这里面)

       *.s:

       %(MDKARM)\armasm.exe --cpu Cortex-M3 -g --apcs=interwork %i --list "%bd%n.lst" --xref -o "%bd%n.o" --depend "%bd%n.d" "%f"

       Link:

       %(MDKARM)\armlink.exe -o "%bd%rn.axf" %f  %libs --cpu Cortex-M3 --strict --scatter %bd%rn.sct --summary_stderr --info summarysizes --map --xref --callgraph --symbols --info sizes --info totals --verbose --info unused --info veneers --list "%bd%rn.map" --libpath=%(MDKARM_LIB_PATH)

       (这里要注意的是,%f会自动的把.o文件输给armlink,%libs也是,而最后的--libpath=%(MDKARM_LIB_PATH)是重点,一般MDK的变量自己设置,所以我们并不知道是这样的,但是实际上是,MDKlinker编译是需要调用到armlib的,但是armlink并不知道它在哪,所以需要假如这个路径,当你碰到L6310W警告的时侯一般都是因为找不到armlib,所以要指明路径给它,嗯?问我怎么知道的,看MDK的用户手册啊白痴。)

       上面的命令并不是不变的, 视乎你自己的要求而定,但是这个就需要你好好的看下MDK的手册的。里面写的很详细,唯一不足的是,都是英语,还有例程不多。

       接着,如果你要生成hex,简单,直接在build页下面

       Post build commands:

       下面增加下面的语句就可以,%(MDRARM)\fromelf.exe --i32 --OUTPUT %bd%rn.hex %bd%rn.axf

       当然,也可以生成其他格式的,比如bin,具体的mdk手册上都有介绍。

       最后就是要注意的是buildrebuild都不要去动。保存。

       选中这个工程类型建立工程,在directories下,将需要的路径包含进去,在complie\link里面将宏定义更需要包含的库写进入。

       添加跟MDK工程一样的文件, 编译下看。。

       当然,会有例程给你们的。

       至于图片,太麻烦了, 还是省省吧,太家可以自己弄下。

       此外还有几个命令可以给你们用、

       %(MDKUV4)\uv4.exe -d %rn.uvproj调用MDK并直接进入调试页面。

       %(MDKUV4)\Uv4.exe -f %rn.uvproj调用MDK下载程序

       这些命令的特点是使用的时候会开启MDk,但是功能执行完后,MDK也会自动关闭,非常方便,当然。怎么用是看你们的了。

       在此,郑重声明,全文都是原创的,转载请注明出处。

       例程地址:

       http://download.csdn.net/download/xuzhenglim/4043462 

       此外,感谢以前在网上发关于slickeditMDKeclipseGNU相关文章的朋友们,这个成果都是从你们的基础上得来的,没有你们先前的辛苦付出,就不会有现在的这篇文章。谢谢。

       当然,作为答谢,例程是不会索分的。我的分够多了,都用不完,所以也请各位枪手发扬下良好品格不要用这个骗分。

用SlickEdit 编译 MDK4 项目

首席说明一下,这里说的 “编译 MDK4”
  • abeldeng
  • abeldeng
  • 2014年05月16日 16:07
  • 3430

SlickEdit C/C++开发的利器

 个人使用最熟悉,感觉也最好的C/C++ IDE环境是VC6+Visual Assist的组合,非常稳定,速度快,快捷键简单实用,界面简洁大方,几乎不需要使用鼠标进行任何操作,源代码直接的跳转也很舒服...
  • ilovevc
  • ilovevc
  • 2006年07月30日 12:30
  • 13103

编辑器王者SlickEdit使用_设置篇

SlickEdit使用_设置篇 字体: Tools->Options->Font 个人觉得最好看的是FixedSys。 显示改动过的行标记: Tools->Options->File Ext...
  • wqc02
  • wqc02
  • 2012年07月23日 15:28
  • 3703

用Slickedit建立一个linux嵌入式调试系统

文章所采用的系统为fedora14系统,slickedit为15.0.1.3  GDB为7.4 (一)  建立NFS连接 # vi /etc/exports 编辑文件把需要共享的目录加入到里面 ...
  • exicyu
  • exicyu
  • 2012年03月16日 15:33
  • 1377

Windows下用Cygwin + Slickedit 开发

1:安装cygwin   到官网 http://www.cygwin.com/     下载 setup.exe 之后本地安装      搜索安装gcc,make,swig等你需要的即可 ...
  • albertbanda
  • albertbanda
  • 2014年07月07日 08:29
  • 457

使用slickedit调试开源代码

slickedit linux下的神器啊! 阅读代码堪比 source insight,调试代码堪比 visual studio。 nginx优秀的web服务器。 因为其具有多进程、后台进程的特点,因...
  • maxzero
  • maxzero
  • 2017年12月06日 11:36
  • 190

Ubuntu下slickedit的安装与配置

因为总觉得把代码传到虚拟机中很麻烦,于是最近装了一个编辑器slickedit,用起来堪称是linux下的sourceinsight,希望借此可以提升开发效率….. 系统环境为64位Ubuntu14....
  • qq_28992301
  • qq_28992301
  • 2016年07月30日 17:01
  • 1363

介绍一款最强大的跨平台的集成开发工具SlickEdit2013

linux下虽然有几个著名的IDE,可是用的都
  • monster877
  • monster877
  • 2014年04月12日 11:50
  • 3218

SlickEdit中的UTF-8中文显示设置

SlickEdit在Windows或者其他平台均有UTF-8编码无法正常显示的问题 默认配置可能会出现乱码 可以配置下面这几项来解决 1. 配置文件加载的时候使用UTF-8 ...
  • sy373466062
  • sy373466062
  • 2015年11月26日 07:36
  • 2357

SlickEdit 一些使用技巧

SlickEdit 使用了几天以后,发现不仅仅是自动提示,代码浏览,它提供的编辑功能也非常强大。如果说 SourceInsight 和 SlickEdit  在浏览代码上面各有所长,那么编辑这方面 S...
  • ilovevc
  • ilovevc
  • 2006年08月05日 12:13
  • 20094
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Slickedit 实现MDK4编译
举报原因:
原因补充:

(最多只允许输入30个字)