教如何清析的管理keil工程目录,希望对新手有所帮助(原...
自己逛论坛也有一段时间了,这里给大家提供一个非常开放的技术交流区,我也从这里学到了不少的东西,在这里大家都很乐意分享自己的代码,所以这是一个很好的地方,对于一些初学者,对代码的keil的工程管理并不是很清析,所以我想讲讲我自己平时是如何管理keil工程目录的,我也是一个半桶水,希望前辈能够指正,当然也更希望对初学者有一个抛砖的功能。
Keil是一个非常强大的代码编辑和编译工具,…….费话不说了!
第一次发贴有不对还请大家指正啊!
新建一个keil工程,初学者一般都会新建一个文件夹(下面用我的一个1602的测试程序做为实例),然后将每个涉及到的 .c.h文件,还有keil的输出文件都一下放在这个文件夹里,如下图:
图标为 Ch 的,就是我们自己建立的.c.h文件,那些没有图标的就是keil输出的一些文件,当然也包括我们要的.hex文件,这样看起来就会感觉乱乱的。再看下面:
分别建立了以下文件夹 include用来存放我们头文件.h output用来存放keill输出的一些文件source 用来存放.c的一些源码,utility 是用来存放一些通用的工具,比如 将hex转为 bin二进制文件其他的是一些工程文件。(这里的hex,bin文件是通过utility里面的一些工具生成,将在后面讲解)和上一个图比起来是不是稍微有点层次感,清析一点了,(这两个比较并不是很明显,是因为这个工程是比较小的,如果是再多一点的话我相信肯定是很明显的)。
其实这样做是很简单而且很实用的,下面就讲一下具体的步骤:第一步:为当前的工程建立一个文件夹,比如,用来保存我们这个1602工程的,所用的所有文件。
第二步:在1602这个目录下分别建个sourceinclude output utility 四个文件夹(当然也可以在建立工程的时候,临时建立)。
第三步:打开keil 新建一个工程名为1602工程,将我们的.c 文件保存到source里面,.h文件保存在include里面。将.c文件都加到工程。
第四步:指定keil的输出文件夹,如下图:
第五步:指定.h头文件的所在目录,这一步是很重要的,其实我们不指定也是可以的,但是在包含头文件的时候要麻烦一点
如图
用这个的格式,什么意思呢? “.”一个点是指的当前目录,也就是在包含当前目录下的include文件夹下的lcd1602.h,这样虽然可以实现,很明显有一点麻烦,并不是我们想要的,其实在keil中也是可以指定的,如下图
这样指定之后在包含头文件的时候我们就可以像以前那样简练啦,如下图,
到目前为止,我们已经完成了keil的层次管理,是不是很简单呢!
第六步:应该聪明的你会发现utility里面的东西我们并没有说到。其实这里存放的是些通用的附加的功能,很方便很实用的。
首先,我们指定了output文件夹为了输出keil编译时的输出文件,hex文件也是输出文件,也就在这里面了,但是由于keil编译时的中间输出文件还是蛮多的,要到里面找hex文件还是有点小麻烦的,怎么办呢,这时utility下的小工具 就派上用场了。这是一个批处理文件(其实就是一个记事本保存成.bat格式)
我们用记事本打开你会发现很简单的。如下:copy .\output\1602.hex 1602.hex
意思就是 将.\目录下output文件夹里面的1602.hex文件复制到.\目录下,这样我们就可以在工程目录下一眼就看到hex文件啦。
怎么执行这个批处理文件呢!这个还是要我们去指定的,如下图
点击 3 处选择批处理文件。然后在编译过后再点击旁边的“LOAD”按钮,就可以了!
下面的编译窗口会有提示
一个文件已经复制,就可以在工程目录下有.hex文件啦,就不用再去output里面去找了,是不是很方便呢!
当然还有的人说了,我想要bin二进制文件怎么办呢,其实这个也很简单!
这个要我们有一个hex2bin.exe的小工具的支持,(附件稍后上传),
把这个小工具放在utility这个文件夹下,然后的在批处理文件中去调用这个小工具就ok啦!
在调用这个小工具之前要把以前生的1602.bin文件删除!
所以批处理文件这样写
copy .\ouput\1602.hex 1602.hex
del 1602.bin
".\Utility\hex2bin" 1602.hex 1602.bin"
然后再执行LOAD可以啦,当然如你要的工程名不一样,只需进入这个批处理文件,然后修改对应的名字就可以啦,这样就可以产生bin二进制文件,这样是不是很方便啊!
楼主的方法不错,对程序员尤其是新手比较实用 该帖要给精华
楼主辛苦了! 辛苦了,受益了 不错不错 讲得非常好! {:smile:}新手学习了,谢谢。 小工程、测试代码,一直用.bat单文件编译、拷贝 很实用的总结 不错,LZ很有心。
谢谢! 可以借鉴,谢谢啦 应该给楼主一个酷帖奖励~~ 感谢楼主,学到了些东西。
要是批处理文件把output下的*.hex都复制过来就好了,不用每次修改输出的hex名字后还要修改批处理文件
很好的方法 借鉴了 总结得不错啊 学习一下{:smile:} 很好很强大的楼主啊 很好啊,谢谢楼主
很好,谢谢楼主{:handshake:}
mark mark 学习了,谢谢 mysunmax 发表于 2013-1-27 08:55 static/image/common/back.gif
mark
感谢楼主的分享。确实很好,到实际会重复编译更改,个人感觉缺少灵活性。 gdmgb520 发表于 2012-10-19 17:50 static/image/common/back.gif
感谢楼主,学到了些东西。
要是批处理文件把output下的*.hex都复制过来就好了,不用每次修改输出的hex名字 ...
可以这样写bat嘛
copy .\path\*.hex *.hex
hex文件是用通配符*匹配的 mark,keil的文件管理 非常感谢。 amfan 发表于 2013-1-28 08:27 static/image/common/back.gif
可以这样写bat嘛
copy .\path\*.hex *.hex
是的,这些都是可以修改的,因为他只产生一个HEX文件,甚至.\Utility\hex2bin" 1602.hex 1602.bin
这个也是可以修改的,
但是 del 1602.bin 不宜改为del *.bin
因为很可能你想在这里备份很多.bin文件,如
1602_1.bin
1602_2.bin
....
这个.bat可以大家改改试试!
谢谢支持啊! andirong23 发表于 2013-1-28 06:26 static/image/common/back.gif
感谢楼主的分享。确实很好,到实际会重复编译更改,个人感觉缺少灵活性。 ...
您好,
您所提到的“到实际会重复编译更改,个人感觉缺少灵活性。”
是的,他的灵活性是有限的,不知道你所说的“重复编译更改”是指的?
不过,这个完全可以随便更改重新编译,随便复制工程文件夹,
只要工程名不变其他的都可以不用更改的。 {:handshake:}{:handshake:}{:handshake:}{:handshake:}{:handshake:}{:handshake:}{:handshake:}{:handshake:} 谢谢lz 留着看 很实用的总结 谢谢lz 留个记号 有一定的帮助 一般都小程序,直接一个source+mdk两个文件夹,学习下楼主的 学习楼主的经验~ 谢谢楼主,学习了 不错,很实用! 学习{:shy:} 谢谢分享 新手学习了 很好的管理方式,学习了 有种设置可以九级优化程序,让程序编译后更小 {:lol:}非常有用,lz这么有心!! good!
学习了!
管理keil工程目录!! 现在用的跟LZ的也差不多~ 顶起来~~~~ {:victory:}{:victory:} 不错收下 收藏 学习了~~~~ 谢谢楼主分享!! 学习了不错的方法啊{:tongue:} 学习了。~mark。~~~~~~{:biggrin:} 对新手,很有帮助啊! 楼主辛苦了! 很好啊对我很有帮助,辛苦了 mark,留着回去以后看 Mark,thanks 难得LZ这么有耐心,知道这个方法的人很多,写出来分享的人却很少。顶楼主! 后面几步学习了,感谢 比较清晰了,以前就是一个文件夹。好混乱 以后可以试试。。。 好方法很受用 这个习惯很好,必须的。 作为新手首先要学会一个好习惯谢谢楼主 讲得非常好!
mark,学习了 挺好的,长见识了,,,, 学习一下.... 这种方式挺好的...留个记号 这个方法不错啊。我一直在用笨办法,虽然也不麻烦。看来可以改进一下了。 马克,楼主写的很好,图文并冒啊 mark,学习下 {:lol:}终于解决了我一直纠结的问题,楼主太牛了…… {:lol:}{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}
mark 。 学习了
{:handshake:} 收下了,真的很不错 这方面新手必须学习 批文件可以这样的G:\无标题.jpg 学习了,谢谢! MARK 感谢楼主分享经验 这样管理自己还不错,但是如果打开了别人的程序,而打开的不是这样设置的。不会有问题么 keil还可以执行外部文件哈,
谢谢分享。。。 先mark下来,有空再慢慢看“管理keil工程目录” 不错,楼主辛苦了! 这样清楚多了
谢谢昂, 后面一部 不错不错 学习了 哈哈 学习了,谢谢楼主 不错!很受益!感谢 楼主好人 楼主辛苦了。 标记一下,我以前也是所有文件都在一个目录下面。 表示受教,回复一下,平时一定要养成勤于整理的好习惯,要不要找什么文件的时候到处找不到烦死了 总结得挺好的,学习了。以前一直没太重视,一直把.h和.c放在一个目录里面 太赞了!围观学习中 不错,前几天还在纠结这个问题呢~~~ 收藏下来学习一下
页:
[1]
2