打印
[工具下载]

基于新唐M0516的MDK+GCC的编译环境建立与LOOK应用开发

[复制链接]
1714|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小狗爱吃骨头|  楼主 | 2015-12-16 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一,下载安装MDK+GCC编译环境
1,从KEIL主页上下载MDK471A的:http://www.keil.com/fid/edz9p7w1y9wj1wdx6b11rtc2z139r1a9qvmud1/files/eval/mdk471a.exe
并且默认安装到C盘的:C:\Keil,自行和谐处理。
2,从https://sourcery.mentor.com/GNUToolchain/release2449上面下载Sourcery CodeBench Lite Edition for ARM EABI
https://sourcery.mentor.com/GNUToolchain/package11445/public/arm-none-eabi/arm-2013.05-23-arm-none-eabi.exe
并且默认安装到C:\Program Files\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_EABI
修改XP下的系统环境变量最前添加:C:\Program Files\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_EABI\bin;

3,在新唐主页上下载安装NU-LINK驱动和ICP软件,并安装到C:\Keil里面。
4,在新唐主页上下载数据手册,BSP包文件。
二,建立“Keil uVision4”工程项目
1,在“D:\works\9G-CM0\”下建立“9G-LOOK”目录,再在“9G-LOOK”目录下建立“look”“src”“inc”“prj”目录;
在“prj”下再建立“debug\obj”“debug\lst”“release\obj”“release\lst”目录;

2,打开桌面的“Keil uVision4”,点开“project”->“New uVision project”选择路径到“D:\works\9G-CM0\9G-LOOK\prj”
建立“9g-look”工程;

沙发
小狗爱吃骨头|  楼主 | 2015-12-16 20:00 | 只看该作者
3,在接着的“select a CPU Data Base File”上选择“NuMicro Cortex M0 Database”数据库;在里面的“Nuvoton”下拉中选择
器件中选择“M0516LBN”后点击OK并选择“否”禁止拷贝启动代码文件;

4,在“Keil uVision4”窗口的左面的“project”窗口里的“Target 1”改成成“debug”,下面的“Source Group 1”改名成“look”;
并且在“project”窗口里的“debug”上右击“Add Group”建立一个空文件夹,并改名成“src”;

5,点击“Keil uVision4”窗口菜单的“Targets Options”,打开项目配置窗口的“Output”,点开“Select Folder for Objects...”
选择到“D:\works\9G-CM0\9G-LOOK\prj\debug\obj\”并勾选上“Create HEX File”;
6, 打开项目配置窗口的“Listing”,点开“Select Folder for Listing...”选择到“D:\works\9G-CM0\9G-LOOK\prj\debug\lst\”;并且
    把下面的所有选项全部勾上;

使用特权

评论回复
板凳
小狗爱吃骨头|  楼主 | 2015-12-16 20:01 | 只看该作者
7,在项目配置窗口的“User”窗口的编译成功能运行的命令第一行,第二行勾选并分别填入命令:
“arm-none-eabi-objcopy.exe -O binary -j .text .\debug\obj\!L.elf  .\debug\obj\!L.bin”
“arm-none-eabi-size.exe  !L.elf”
8,在项目配置窗口“CC”窗口,填上宏定义define:“SEMIHOSTING”,包含路径“..\src;..\inc;..\look\include”
去掉“enable APCS...”和 “Support Calls Between ....”选择项并勾选上“Compile Thumb code”和真入编译器编译控制参数
“-pipe -ffunction-sections -fdata-sections -gstrict-dwarf -finline-limit=100000000”


9,在项目配置窗口的“Linker”窗口里,勾选择上不用标准启动文件和库文件,填入连接脚本:“.\m051.ld”,LOOK的路径
“..\look\lib” 和连接控制参数“-Wl,--relax -Wl,--gc-sections -Wl,-z -Wl,max-page-size=0”

使用特权

评论回复
地板
小狗爱吃骨头|  楼主 | 2015-12-16 20:01 | 只看该作者
10,在项目配置窗口的“Debug”和“Utilities”窗口里都选择上仿真下载器“Nuvoton Nu-Link Debugger”并勾选择上“Run to main{}”
和“Update Target Before Debugging”。
11,在“project”->“Manage”->“Compoments...”的“Folders..”里面选择GCC做编译器前缀是“arm-none-eabi-”
编译器的路径为:“C:\Program Files\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_EABI\”
12,在“project”->“Manage”->“Compoments...”的“Project...”里面增加一个“release”版本的工程,在这个工程“Targets Options”的
“Output”和“Listing”指定目录到“release\obj”“release\lst”目录;“CC”里的宏定义“SEMIHOSTING”去掉;
13,右击在“Keil uVision4”窗口的左面的“project”下的“src”文件夹,选择“options”里的“CC”添加上编译选项
“-std=c++11 -fno-rtti -fno-exceptions -Wno-pmf-conversions”
三,组织“Keil uVision4”工程项目
1,把[url=mailto:“j.y.lee@yeah.net]“j.y.lee@yeah.net[/url]”老师的“look”里的“include”“lib”“look-rm.chm”全部复制到“D:\works\9G-CM0\9G-LOOK\look” 目录;
把“.\m051.ld”复制到“D:\works\9G-CM0\9G-LOOK\prj”下,把“numicro”放到“INC”目录;
2,把“idle.cpp”“idle.h”“init.cpp”“scheduler.cpp”“systick.cpp”“vector.cpp”“semi.cpp”“semi.h”全部复制到
“D:\works\9G-CM0\9G-LOOK\src”目录;

使用特权

评论回复
5
小狗爱吃骨头|  楼主 | 2015-12-16 20:02 | 只看该作者
3,把文件“look.h”和“m0516lan.h”放到目录“D:\works\9G-CM0\9G-LOOK\inc”中,并且把上面的CPP文件添加到工程“Project”
下面的“Debug”下的“src”中,把“look.h”“attribute.h”“sfr”“m0516lan.h”放到“D:\works\9G-CM0\9G-LOOK\inc”中。

4,把“redapricot”和“utils”文件夹及“sfr”文件复制到“D:\works\9G-CM0\9G-LOOK\inc”中;在D:\works\9G-CM0\9G-LOOK\src
建立“led.h”和“led.cpp”文件,编写LED闪烁代码并添加到项目工程的src中。

四,编译及运行工程项目
1,按“F7”进去项目工程的编译,“CTRL+F5”进行DEBUG下载;“F5”全速运行项目即可看到LED在秒闪烁。
2,项目工程源码程序

使用特权

评论回复
6
mwang| | 2015-12-17 10:41 | 只看该作者
既然用ARM GCC了,可以考虑不用KEIL做IDE的

使用特权

评论回复
7
_寒寒_| | 2016-1-21 14:08 | 只看该作者
用eclipse,不过还没搞定gcc下面的启动汇编和链接脚本

使用特权

评论回复
8
huangcunxiake| | 2016-8-6 08:37 | 只看该作者
用GCC免费,用Keil的还要花钱。

使用特权

评论回复
9
zhuotuzi| | 2016-8-6 13:50 | 只看该作者
如何输出BIN文件呢,这个好像BIN的烧录更方便吧

使用特权

评论回复
10
zhuomuniao110| | 2016-8-6 22:25 | 只看该作者
来学习一下GCC的开发方法。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

286

帖子

0

粉丝