红联Linux门户
Linux帮助

keil mdk

发布时间:2011-03-06 21:47:20来源:红联作者:txgc_wm
需求一些资源,如果大伙有的话,请帮忙发一下给我或者给个链接,谢谢!

编写一个arm的程序(使用的是c),需要如何的配置keil的开发环境?

用usb转串口,可以将hex文件烧录到nand flash中吗?是否需要相关的配置?


请高手不吝赐教!
文章评论

共有 6 条评论

  1. txgc_wm 于 2011-03-07 18:55:56发表:

    http://www.itsky2010.cn/embedded-eda/keil-c51/2010/1023/5487.html 详细参考该链接!

    注:在第三个run#1处设置!

  2. txgc_wm 于 2011-03-07 18:54:05发表:

    3# deepwhite


    只是起先的时候,没有找到解决措施。在网上找了一大圈,试了也没通过。结果是发现某些东西设置错了!解决了,就自己回复了一下自己。

  3. txgc_wm 于 2011-03-07 18:49:42发表:

    一方面因为,Hex2bin程序对hex大小有限制(我的200k的hex就不能转换)
    另一方面既然做的是arm那就应该使用纯正的arm格式, hex转bin总有些不伦不类,
    至少我一直都认为bin和elf才是arm的正统文件,
    只需做如下简单配置即可将axf这个elf文件直接转换为bin文件,
    选择"Options for Target" ==> "User" ==> "Run User Programs After Build/Rebuild"将
    选中Run#1和Run#2,分别输入:
    Run#1输入 D:\keil\ARM\BIN31\fromelf.exe --bin -o net_gliethttp.bin objects\net_gliethttp.axf
    Run#2输入 D:\keil\ARM\BIN31\fromelf.exe -z objects\net_gliethttp.axf
    Project==>Clean Target
    但不知道为什么,将.o全部清空之后,执行多次Rebuild All,每次结果都不一样,生成的hex也都不一样,
    第一次编译生成的.bin文件比较大,以后再编译数据大小就正常了,奇怪![luther.gliethttp]
    然后Rebuild All
    第1次编译bin结果为Code=50916,RW=220所以最后bin文件大小50916+220=51136
    第2次编译bin结果为Code=36076,RW=220所以最后bin文件大小36076+220=36296
    第3次编译bin结果为Code=35860,RW=220所以最后bin文件大小35860+220=36080
    第4次编译bin结果为Code=35896,RW=220所以最后bin文件大小35896+220=36116
    第4次编译bin结果为Code=35888,RW=220所以最后bin文件大小35888+220=36108
    第5次编译bin结果为Code=35896,RW=220所以最后bin文件大小35896+220=36116
    第6次编译bin结果为Code=35888,RW=220所以最后bin文件大小35888+220=36108
    第7次编译bin结果为Code=35896,RW=220所以最后bin文件大小35896+220=36116
    第8次编译bin结果为Code=35888,RW=220所以最后bin文件大小35888+220=36108
    所以从这里看到keil编译出来的大小每次都不一样,挺怪的,但是我们也可以看到规律,
    前3次执行Rebuild All出来的结果不可用,从第4次开始出现交替结果[luther.gliethttp]

    优化选项,进一步深入缩减bin代码空间:
    Options for Target
    1. Output==> Create Executable将
    x Debug Information 去掉
    x Create Hex file 去掉--对于arm的bin文件hex一点用也没有
    x Browse Information去掉
    2. C/C++ ==> Language/Code Generation ==> Optimization选择Level 3(-O3)

    附录:
    http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0382ac/BABBDAAH.html
    fromelf 命令行语法如下:
    fromelf [build-options] [debug-options] [diagnostic-options] [help-options] [image-content-options] [license-option] [output-options] [privacy-options] [project-template-options] input_file

    build-options
    使用下列选项控制生成属性的输出格式:
    *--decode_build_attributes
    *--dump_build_attributes
    *--extract_build_attributes
    debug-options
    使用下列选项控制输出文件中的调试信息:
    *--[no_]debug
    *--debugonly
    diagnostic-options
    使用下列选项控制输出文件中的诊断信息:
    *--diag_style={arm"ide|gnu}
    *--diag_suppress=tag[,tag,...]
    *--compare=option[,option,...]
    *--continue_on_error
    * --ignore_section=option[,option,...]
    * --ignore_symbol=option[,option,...]
    * --relax_section=option[,option,...]
    * --relax_symbol=option[,option,...]
    * --show_cmdline
    help-options
    使用下列选项显示编译器的主命令行选项和版本号:
    *--help
    *--vsn
    image-content-options
    使用以下选项可控制影响映像内容的其他因素:
    *--base [[object_file::]load_region_ID=]num
    *--cad
    *--cadcombined
    *--cpu=list
    *--cpu=name
    *--device=list
    * --device=name
    *--disassemble
    *--emit=option[,option,...]
    *--expandarrays
    *--fieldoffsets
    *--fpu=list
    *--fpu=name
    *--globalize=option[,option,...]
    *--hide=option[,option,...]
    *--hide_and_localize=option[,option,...]

  4. pallana 于 2011-03-07 10:24:43发表:

    有点意思了

  5. deepwhite 于 2011-03-07 08:57:07发表:

    自问自答?

  6. txgc_wm 于 2011-03-06 23:31:31发表:

    用usb转串口,可以将hex文件烧录到nand flash中吗?
    可以!

    是否需要相关的配置?

    确实需要一些实际的配置,明天发出具体的配置!