5857|5

51

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【Nucleo心得】STM32L053 Nucleo mbed离线编译(keil) [复制链接]

入手stm32L053R8 nucleo开发板接近一个多月了,用ST的库测试了板子的性能,感觉这板子还可以(当初39元团购的,现在听说要90+),上个月ST研讨会送了好多nucleo板子,可惜运气不好一块都没拿到.......最近在网上找到了mbed的源码,也闲来无事移植了一下mbed,直接KEIL离线编译(可以调试哦!)。移植过程如下:
1使用mbed在线编译器导出一个mbed工程到keil,mbed在线编译器网址:http://developer.mbed.org/,注册一个账号,然后选择你的板子型号

2.由于我自己的板子是L053的就选择这一块,然后点击右上角 mbed的在线编译器如下图所示

3.点击左上角的NEW,会出现下图所示的列表,这是编译器自带的几个例子,随便选择一个就够了,比如我选择了一个“display a message on pc using uart”,然后输入工程名字xxx,最后点确定。

4.在左上角工程出点右键会出下图列表,选择“导出工程”,会出现一个对话框,目前支持keil编译器的离线导出

到此mbed的离线工程 的导出完毕(这个keil工程可以编译下载调试,但是看不到一些底层代码),现在要加如mbed的源代码使其能查看底层代码即F12的功能

5.先下载附件中的mbed的源代码,移植时需要用。然后将上一步导出的工程解压出来会出现如下图所示的几个文件及文件夹,可以删除.hg文件夹 .hgignre和mbed.bld文件,然后新建USER文件夹(根据个人而定,我喜欢将工程文件及main文件放到USER下,不喜欢太乱了......),然后将几个剩余文件剪切到USER中

主目录下只剩下两个文件夹,等下编译后会自动生成一个build文件夹,删除mbed文件夹下所有文件
6.解压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文件夹下的与内核相关的文件,删除下图中红色框框内的文件夹
cmsis目录下删除文件夹                                                      cmsis\TARGET_STM目录下删除文件夹  

hal目录下删除文件夹                                                       hal\TARGET_STM目录下删除文件夹  

6.打开keil目录下的工程文件在添加4个group,然后向每个group中添加相应文件夹下的.c和.cpp文件,注意core组下的两个文件是在mbed\targets\cmsis\TARGET_STM\TARGET_NUCLEO_L053R8\TOOLCHAIN_ARM_MICRO目录下的sys.cpp和startup_stm32l053xx.s,添加文件完成后点确定

7.在include path下添加.h文件所在的目录,删除之前的路径,添加好后如图所示

8.将Linker下的Scatter file链接到mbed\targets\cmsis\TARGET_STM\TARGET_NUCLEO_L053R8\TOOLCHAIN_ARM_MICRO下的stm32l053r8.sct文件然后删除
Misc controls里面的所有链接,配置和如图所示

9.最后就可以执行编译了(编译的过程有点长),一个完整的离线mbed工程就完成了,可以执行调试、下载等功能,最简便的是可以直接复制一个build文件夹下的xxx.bin文件到虚拟出的磁盘,程序就可以在开发板上运行了!!!

这个工程先比官方的mbed工程优点是可以查看底层代码,缺点是编译速度太慢,如果有人能优化一下,可以告诉我!!
mbed源码https://bbs.eeworld.com.cn/forum.php?mod=attachment&aid=MTc0ODIxfDQzYjdmOGM2YTY1ZWU0YjRhYTY2ZmJmZjczNGRjMzgyfDE3NDA0NzM2NDk%3D&request=yes&_f=.zip
keil工程https://bbs.eeworld.com.cn/forum.php?mod=attachment&aid=MTc0ODIyfDM2MzBjYmQ3MjMxMzM2NjZlZjJlMzM2NTM0Y2I3OWUxfDE3NDA0NzM2NDk%3D&request=yes&_f=.zip
查看本帖全部内容,请登录或者注册

13.jpg (29.75 KB, 下载次数: 0)

13.jpg
此帖出自stm32/stm8论坛

最新回复

主要是可以调试了,还可以看源代码,在线无法调试,  详情 回复 发表于 2014-10-23 10:00
点赞 关注(2)
 

回复
举报

524

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
mark一下,也许哪天用到。不过感觉离线后mbed的优势就不怎么明显了,跟其他的常见IDE差不多了
此帖出自stm32/stm8论坛

点评

mbed有离线版的IDE叫做SMeshStdio,目前还不支持nucleo,所以才用的keil做IDE。  详情 回复 发表于 2014-10-17 09:12
 
 

回复

51

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
770781327 发表于 2014-10-17 09:09
mark一下,也许哪天用到。不过感觉离线后mbed的优势就不怎么明显了,跟其他的常见IDE差不多了

mbed有离线版的IDE叫做SMeshStdio,目前还不支持nucleo,所以才用的keil做IDE。
此帖出自stm32/stm8论坛
 
 

回复

5

帖子

1

TA的资源

一粒金砂(初级)

4
 
mark
此帖出自stm32/stm8论坛
 
 
 

回复

114

帖子

0

TA的资源

一粒金砂(高级)

5
 
mark
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
主要是可以调试了,还可以看源代码,在线无法调试,
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表