yummo 发表于 2012-10-19 14:14:53

教如何清析的管理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二进制文件,这样是不是很方便啊!

lgg88 发表于 2012-10-19 14:20:31

楼主的方法不错,对程序员尤其是新手比较实用

jingwaner 发表于 2012-10-19 14:24:06

该帖要给精华

楼主辛苦了!

wzhscj 发表于 2012-10-19 14:45:55

辛苦了,受益了

tangaoo 发表于 2012-10-19 14:49:36

不错不错

bmagui 发表于 2012-10-19 15:03:36

讲得非常好!

qxianjin 发表于 2012-10-19 15:58:04

{:smile:}新手学习了,谢谢。

devcang 发表于 2012-10-19 16:19:54

小工程、测试代码,一直用.bat单文件编译、拷贝

wpnx 发表于 2012-10-19 16:25:36

很实用的总结

techbaby 发表于 2012-10-19 16:28:44

不错,LZ很有心。

谢谢!

chuy 发表于 2012-10-19 17:10:37

可以借鉴,谢谢啦

erxun 发表于 2012-10-19 17:23:52

应该给楼主一个酷帖奖励~~

gdmgb520 发表于 2012-10-19 17:50:00

感谢楼主,学到了些东西。

要是批处理文件把output下的*.hex都复制过来就好了,不用每次修改输出的hex名字后还要修改批处理文件

hwdemtv 发表于 2012-10-20 18:32:42

很好的方法 借鉴了

fythsg 发表于 2012-10-21 10:29:50

总结得不错啊

aworker 发表于 2012-10-23 10:01:53

学习一下{:smile:}

贪狼 发表于 2012-12-23 17:37:52

很好很强大的楼主啊

wtiechen1969 发表于 2012-12-23 21:26:45

很好啊,谢谢楼主

asong14437546 发表于 2013-1-26 23:52:52

很好,谢谢楼主{:handshake:}

moouse 发表于 2013-1-27 08:47:15

mark                                 

mysunmax 发表于 2013-1-27 08:55:09

mark         

yangbing2020 发表于 2013-1-27 09:33:25

学习了,谢谢

andirong23 发表于 2013-1-28 06:26:02

mysunmax 发表于 2013-1-27 08:55 static/image/common/back.gif
mark

感谢楼主的分享。确实很好,到实际会重复编译更改,个人感觉缺少灵活性。

amfan 发表于 2013-1-28 08:27:57

gdmgb520 发表于 2012-10-19 17:50 static/image/common/back.gif
感谢楼主,学到了些东西。

要是批处理文件把output下的*.hex都复制过来就好了,不用每次修改输出的hex名字 ...

可以这样写bat嘛

copy .\path\*.hex    *.hex

hex文件是用通配符*匹配的

hongyancl 发表于 2013-1-28 10:19:05

mark,keil的文件管理

xieyue1975 发表于 2013-1-29 10:28:13

非常感谢。

yummo 发表于 2013-1-30 16:14:05

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可以大家改改试试!

谢谢支持啊!

yummo 发表于 2013-1-30 16:21:02

andirong23 发表于 2013-1-28 06:26 static/image/common/back.gif
感谢楼主的分享。确实很好,到实际会重复编译更改,个人感觉缺少灵活性。 ...

您好,
您所提到的“到实际会重复编译更改,个人感觉缺少灵活性。”
是的,他的灵活性是有限的,不知道你所说的“重复编译更改”是指的?
不过,这个完全可以随便更改重新编译,随便复制工程文件夹,
只要工程名不变其他的都可以不用更改的。

longkkknnn 发表于 2013-1-31 15:31:49

{:handshake:}{:handshake:}{:handshake:}{:handshake:}{:handshake:}{:handshake:}{:handshake:}{:handshake:}

songjie 发表于 2013-2-21 22:47:12

谢谢lz 留着看

zenghl 发表于 2013-2-21 23:05:30

很实用的总结

asong14437546 发表于 2013-2-26 15:32:58

谢谢lz 留个记号

mcujack 发表于 2013-2-26 15:42:03

有一定的帮助

404710520 发表于 2013-2-26 16:30:07

一般都小程序,直接一个source+mdk两个文件夹,学习下楼主的

tianming 发表于 2013-2-26 17:21:25

学习楼主的经验~

cnjimchen 发表于 2013-2-27 11:45:21

谢谢楼主,学习了

angler12 发表于 2013-2-27 21:52:52

不错,很实用!

biqi 发表于 2013-3-21 16:39:17

学习{:shy:}

hamipeter 发表于 2013-3-27 09:46:23

谢谢分享

mo_fish 发表于 2013-3-27 10:18:35

新手学习了

jhxmzx 发表于 2013-3-28 11:29:20

很好的管理方式,学习了

男小北 发表于 2013-3-28 11:56:36

有种设置可以九级优化程序,让程序编译后更小

jobs_start 发表于 2013-3-28 12:00:56

{:lol:}非常有用,lz这么有心!!

yuqilala 发表于 2013-3-28 22:54:45

good!
学习了!
管理keil工程目录!!

YS126 发表于 2013-3-28 22:58:33

现在用的跟LZ的也差不多~

mysunmax 发表于 2013-3-28 23:01:34

顶起来~~~~

dcp1989 发表于 2013-3-28 23:24:55

{:victory:}{:victory:}

miller8708 发表于 2013-4-6 22:38:04

不错收下

pangfen 发表于 2013-4-6 23:01:35

收藏               

zy0818 发表于 2013-4-7 01:16:36

学习了~~~~

fayuanye 发表于 2013-4-7 08:44:49

谢谢楼主分享!!

自由 发表于 2013-4-7 10:11:11

学习了不错的方法啊{:tongue:}

nixiu520 发表于 2013-4-12 16:44:02

学习了。~mark。~~~~~~{:biggrin:}

yuhuwyh 发表于 2013-4-12 20:07:49

对新手,很有帮助啊!

风吹李大叔 发表于 2013-4-12 20:54:27

楼主辛苦了!

hou3 发表于 2013-4-13 18:27:47

很好啊对我很有帮助,辛苦了

飞跃时间 发表于 2013-4-13 20:55:48

mark,留着回去以后看

newidea 发表于 2013-4-13 22:39:02

Mark,thanks

绿茶山人 发表于 2013-4-16 11:02:28

难得LZ这么有耐心,知道这个方法的人很多,写出来分享的人却很少。顶楼主!

clarkewayne 发表于 2013-4-16 19:15:14

后面几步学习了,感谢

hanweng2012 发表于 2013-5-6 10:10:24

比较清晰了,以前就是一个文件夹。好混乱

zjk 发表于 2013-5-6 11:09:42

以后可以试试。。。

benqme 发表于 2013-5-6 11:39:40

好方法很受用

Hunter 发表于 2013-5-6 11:45:39

这个习惯很好,必须的。

chenqi4332103 发表于 2013-5-6 16:10:37

作为新手首先要学会一个好习惯谢谢楼主

zndz410 发表于 2013-5-6 16:24:35

讲得非常好!

a794001114 发表于 2013-5-6 17:20:49

mark,学习了

喜羊羊 发表于 2013-5-9 11:42:32

挺好的,长见识了,,,,

jz701209李 发表于 2013-5-14 10:22:06

学习一下....

277955973 发表于 2013-5-14 12:57:34

这种方式挺好的...留个记号

zjczm 发表于 2013-5-16 14:22:30

这个方法不错啊。我一直在用笨办法,虽然也不麻烦。看来可以改进一下了。

Delko 发表于 2013-5-16 14:49:57

马克,楼主写的很好,图文并冒啊

tomhe168 发表于 2013-5-20 22:35:32

mark,学习下

zhongshan9 发表于 2013-5-20 23:08:29

{:lol:}终于解决了我一直纠结的问题,楼主太牛了……

Making 发表于 2013-5-21 09:20:39

{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}

求实者 发表于 2013-5-21 09:49:08


mark    。

unnormal 发表于 2013-7-18 13:56:18

学习了
{:handshake:}

07071624 发表于 2013-7-18 16:41:20

收下了,真的很不错

rejoice818 发表于 2013-7-18 18:24:27

这方面新手必须学习

vvi 发表于 2013-7-19 12:37:47

批文件可以这样的G:\无标题.jpg

11mashengligong 发表于 2013-7-20 11:44:49

学习了,谢谢!

sqqdjian 发表于 2013-7-24 08:48:23

MARK                     

gamep 发表于 2013-7-24 09:03:20

感谢楼主分享经验

wt418995874 发表于 2013-7-24 15:06:20

这样管理自己还不错,但是如果打开了别人的程序,而打开的不是这样设置的。不会有问题么

GNMXD 发表于 2013-7-24 15:19:16

keil还可以执行外部文件哈,
谢谢分享。。。

a794001114 发表于 2013-7-24 17:43:43

先mark下来,有空再慢慢看“管理keil工程目录”

hgjdwjz699 发表于 2013-7-25 15:22:40

不错,楼主辛苦了!

wanyou132 发表于 2013-7-25 23:05:52

这样清楚多了
谢谢昂,

banyan_city 发表于 2013-7-25 23:16:45

后面一部               

a20084666 发表于 2013-7-30 14:05:11

不错不错 学习了 哈哈

cxhy 发表于 2013-8-9 17:17:32

学习了,谢谢楼主

龙AAA 发表于 2013-8-10 10:36:23

不错!很受益!感谢

glllglll 发表于 2013-8-10 12:40:51

楼主好人

zlpvch 发表于 2013-8-12 00:22:56

楼主辛苦了。      

shawn_bu 发表于 2013-11-7 17:10:27

标记一下,我以前也是所有文件都在一个目录下面。

啥都不懂小白痴 发表于 2013-11-7 18:33:50

表示受教,回复一下,平时一定要养成勤于整理的好习惯,要不要找什么文件的时候到处找不到烦死了

danju 发表于 2013-11-7 19:04:17

总结得挺好的,学习了。以前一直没太重视,一直把.h和.c放在一个目录里面

xckhmf 发表于 2013-11-25 04:24:46

太赞了!围观学习中

afcy003 发表于 2013-11-25 16:23:55

不错,前几天还在纠结这个问题呢~~~

Eric321 发表于 2013-11-26 13:32:17

收藏下来学习一下
页: [1] 2
查看完整版本: 教如何清析的管理keil工程目录,希望对新手有所帮助(原...