你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【Nucleo心得】STM32L053 Nucleo mbed离线编译(keil)  

[复制链接]
晓枫VS枯叶 发布时间:2014-11-1 12:10
入手stm32L053R8 nucleo开发板一个多月了,用ST的库测试了板子的性能,感觉这板子还可以(当初39元团购的,现在听说要90+),上个月ST研讨会送了好多nucleo板子,可惜运气不好一块都没拿到.......最近在网上找到了mbed的源码,也闲来无事移植了一下mbed,直接KEIL离线编译(可以调试哦!)。移植过程如下:, Q& H1 O! J& m# y) M1 C' P+ j$ E( P
1使用mbed在线编译器导出一个mbed工程到keil,mbed在线编译器网址:http://developer.mbed.org/,注册一个账号,然后选择你的板子型号
. o; n* |, v  k ; |" v" f' r; K7 b. F
2.由于我自己的板子是L053的就选择这一块,然后点击右上角 mbed的在线编译器如下图所示* p/ m) ~" _6 E' ?/ N! b

+ t9 N  K1 f1 x% |3.点击左上角的NEW,会出现下图所示的列表,这是编译器自带的几个例子,随便选择一个就够了,比如我选择了一个“display a message on pc using uart”,然后输入工程名字xxx,最后点确定。
% j$ V! H' l0 C) c$ u" L
4 i: D& l' [, V) a" H4.在左上角工程出点右键会出下图列表,选择“导出工程”,会出现一个对话框,目前支持keil编译器的离线导出
0 U8 `  W- }7 J4 D
/ v) I- c. T0 S0 e到此mbed的离线工程 的导出完毕(这个keil工程可以编译下载调试,但是看不到一些底层代码),现在要加如mbed的源代码使其能查看底层代码即F12的功能, K3 A+ f+ H9 Q6 o: ^
/ D- _3 E% N* R: p4 \7 S9 K: Q2 ~
5.先下载附件中的mbed的源代码,移植时需要用。然后将上一步导出的工程解压出来会出现如下图所示的几个文件及文件夹,可以删除.hg文件夹 .hgignre和mbed.bld文件,然后新建USER文件夹(根据个人而定,我喜欢将工程文件及main文件放到USER下,不喜欢太乱了......),然后将几个剩余文件剪切到USER中
8 `  i" d) G/ c . e& r2 l. z9 R0 E$ Z: D  o! ~& L( X
主目录下只剩下两个文件夹,等下编译后会自动生成一个build文件夹,删除mbed文件夹下所有文件
( K$ I6 q. c* Q+ m- u9 f4 `# I$ T6.解压mbed源码文件,拷贝xxx\mbed-master\libraries\mbed目录下的api、common、hal、targets 文件夹到之前工程中的mbed目录。targets目录里有两个文件夹cmsis和hal,这两个文件夹里面的内容有选择的保留,比如说我的板子是L053的只保留cmsis\TARGET_STM\TARGET_NUCLEO_L053R8和hal\TARGET_STM\TARGET_NUCLEO_L053R8,还有保留cmsis文件夹下的与内核相关的文件,删除下图中红色框框内的文件夹& T7 o  b: ~# `: r
cmsis目录下删除文件夹                                                      cmsis\TARGET_STM目录下删除文件夹  
, n" v4 I( p" Y  X9 b/ ]! m6 ` 2 F# X# q3 V, t$ E
hal目录下删除文件夹                                                       hal\TARGET_STM目录下删除文件夹  $ y. |7 V9 b# G) M0 T! [4 q

' M1 e  L: O* V/ J6.打开keil目录下的工程文件在添加4个group,然后向每个group中添加相应文件夹下的.c和.cpp文件,注意core组下的两个文件是在mbed\targets\cmsis\TARGET_STM\TARGET_NUCLEO_L053R8\TOOLCHAIN_ARM_MICRO目录下的sys.cpp和startup_stm32l053xx.s,添加文件完成后点确定. o7 U$ {3 U* L6 U4 B( g% ~
[url=][/url]
4 i+ j4 c+ _6 R5 \) D% J& q/ H/ r
3 |& S0 [. K) o7.在include path下添加.h文件所在的目录,删除之前的路径,添加好后如图所示" C, }, p/ C, y

, n* j0 e) H) @8.将Linker下的Scatter file链接到mbed\targets\cmsis\TARGET_STM\TARGET_NUCLEO_L053R8\TOOLCHAIN_ARM_MICRO下的stm32l053r8.sct文件然后删除( i/ J5 {" b; C- V
Misc controls里面的所有链接,配置和如图所示' ]/ Z8 @6 Z3 _( D

7 ^! f& G3 o2 {2 I9.最后就可以执行编译了(编译的过程有点长),一个完整的离线mbed工程就完成了,可以执行调试、下载等功能,最简便的是可以直接复制一个build文件夹下的xxx.bin文件到虚拟出的磁盘,程序就可以在开发板上运行了!!!
, E# k& ]2 C1 ^8 m  L - f# H4 N' w2 V- P! R3 x
这个工程先比官方的mbed工程优点是可以查看底层代码,缺点是编译速度太慢,如果有人能优化一下,可以告诉我!!: e# n2 j7 F; b) F$ L& B( @
mbed源码:https://pan.baidu.com/s/1gdelmZT(由于附件大小限制现附上百度云链接)6 d7 Y' ~. B9 y7 A
keil工程 LCD5110.zip (755.22 KB, 下载次数: 279)

$ u4 z/ q6 E. K) p# A2 {0 D$ A/ g" C# j/ m6 {
6 E- M# v) l- e: i/ L% r! s

2 |& V, h- J/ B& t2 {+ s1 p
赞 收藏 8 评论20 发布时间:2014-11-1 12:10

举报

20个回答
wofei1314 回答时间:2017-9-5 11:24:41
晓枫VS枯叶 发表于 2015-1-1 12:20
7 a& l; y! ], g; l1 o; J3 }http://github.com/mbedmicro/mbed,这个是他们放源码的网址,更新比较频繁,你可以下载看看,如果不想记 ...

! q( L0 f9 |+ T  P5 [1 z. F5 j这个好啊,貌似是全部的都有,在Device文件夹里找到的...! S0 o- w, U# N

. f& _& i6 A' U0 V) H就是还不太会用,等会用了确实是好东西
idodoyo 回答时间:2014-11-10 09:14:05
  好教程啊,  我就是希望能直接在keil里面建立 MBED 的离线工程,  自己能够随便设置CPU型号,这样开发就达达加快了,   mbed 的关键词 我很喜欢
晓枫VS枯叶 回答时间:2015-1-1 12:20:28
http://github.com/mbedmicro/mbed,这个是他们放源码的网址,更新比较频繁,你可以下载看看,如果不想记网址直接百度搜索mebd github就会出现!
霹雳之火 回答时间:2014-11-3 16:24:28
谢谢分享,好贴啊
沐紫 回答时间:2014-11-6 09:51:48
非常感谢!
晓枫VS枯叶 回答时间:2014-11-6 10:01:22
多谢沐紫老师的大力支持,不知道沐紫老师对keil编译器的优化设置有什么看法,我这个工程第一次编译的时间超长1分多钟吧,感觉不是很完善吧!
chaplin1999-262 回答时间:2014-11-10 14:07:25
mbed  试过还不错,只是没有keil 用的顺手
dixin01 回答时间:2014-11-27 21:18:19
试了出现一堆错误,编译通不过
dvd1478 回答时间:2015-1-1 10:56:23
你好,我有个问题想问 你的mbed源码 的官方地址是在哪里下载的?
wyxy163@126.com 回答时间:2015-1-4 09:08:17
提示: 作者被禁止或删除 内容自动屏蔽
wamcncn 回答时间:2015-1-4 09:59:21
非常详细,有板的可以体验下,请问楼主的宽带是多大的
晓枫VS枯叶 回答时间:2015-1-4 11:51:55
不懂,怎么突然问我带宽多大?公司的网谁谁知道带宽......
鹏果果 回答时间:2015-2-14 11:20:53
怎样从官方上下载mbed os?
759611 回答时间:2015-2-14 12:33:37
不错,不过mbed好像封装的太严重了……不太了解
倾成 回答时间:2015-4-24 11:50:05
怎么没有看到内核源码呢,是不是只用了底层封装设计。
12下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版