最近在玩一些硬件相关的玩具,需要在 linux 下使用工具链编译 目前我已经完成了 arm-none-eabi-gcc 和 openocd 的安装 我个人比较倾向于这样的工程目录
├── stm_project
│ ├── inc
│ ├── libs
│ └── src
在根目录及每个子目录下写 makefile,src 目录下存放c文件, libs 目录下存放 stm32 官方库文件, inc 下放头文件,工程目录中还有什么需要补充的文件和文件夹,每个子目录下需不需要在细分文件夹,求各位大神指点,谢谢 stm32f103 的官方库在什么地方下载,我在意法半导体官网上没有找到 还有就是每个 makefile 文件和链接脚本这个很蛋疼,有没有人能带我飞,谢谢
1
cnnblike 2016-05-29 22:32:57 +08:00 1
现在都用 STM32CubeMX 了,官方附件库已经不维护了
|
2
kokutou 2016-05-30 02:27:16 +08:00 via Android 1
atom + platformio 看看有没有你的板子。。。
arduino 表示很爽,但是启动好慢。。。 |
3
hanliumaozhi 2016-05-30 03:17:28 +08:00 1
查看 https://leanpub.com/mastering-stm32 讲了在 linux 搭建开发环境的 不过撸单片机代码还是在 win 上好。。。
|
4
eamars 2016-05-30 07:30:59 +08:00 via iPhone 2
如果官方支持的话可以用 mbed ,官方提供了 online compiler
|
5
MikeFish OP |
6
eamars 2016-05-30 13:09:04 +08:00 2
@MikeFish
这里是支持列表: https://developer.mbed.org/platforms/ mbed 为很多设备和模块提供了抽象的硬件驱动。意味着如果你需要管理一个数字输入接口,你可以直接使用 DigitalIn inputDevice 这样的硬件无关的操作 而且 mbed 支持在线编辑器和在线编译器,自带版本管理,发布,一键导入驱动,导出为各种工程文件等等。在线编译器需要配合本地的 st-link 使用。不少 stm 的开发板,比如 nucleo 系列自带 st-link ,使用起来挺方便的。 |
8
SunZhiwei 2016-05-30 15:45:24 +08:00
|
9
SunZhiwei 2016-05-30 15:47:23 +08:00
哦 好像就是 stm32f103 吧 不过也许可能达不到你的要求
|
11
SunZhiwei 2016-05-30 20:06:24 +08:00
@MikeFish 我那个 stm32 里面应该就是你需要的吧 不过也许不全 毕竟当时做的东西比较简陋,(而且对硬件不是很熟 23333
|
14
SunZhiwei 2016-05-30 20:48:29 +08:00
@MikeFish 谈不上玩吧 而且也是磕磕碰碰过来的, 一般都在 ```win``` 下面弄得吧 (没有 懒得维护 23333
大致就是先组织结构 把需要的文件整理好 然后写了个 ```Makefile``` 之后就开始写东西了 在 linux 下 ```arm-none-eabi-gcc``` 和 ```stlink``` 应该就行了 |
15
but0n 2016-05-31 20:22:22 +08:00 1
|
19
but0n 2016-06-02 15:46:58 +08:00 1
@MikeFish
stm32flash: https://github.com/ARMinARM/stm32flash clone 到本地然后编译 串口烧写还需要安装 USB 转串口的驱动,这个在网上能找到 https://github.com/but0n/stm32_development_on_Mac 我用的 Mac |
21
bugeye 2016-06-04 07:06:04 +08:00
用 chibios(chibios.org)好了,本身是个实时操作系统,大量底层实现细节隐藏起来,不用你管,功能比官方库多得多,而且适合 stm 全系列单片机。
openocd 毛病也多,最好用 st-link 调试和烧写,如果你有淘宝卖的山寨 st-link https://github.com/texane/stlink |
22
bugeye 2016-06-04 07:07:49 +08:00
如果你用 ChibiOS 的话,只要下载了最新版,然后编译 testhal 下面随便一个例子就可以 测试工具链,然后 makefile 什么的都是相同格式化的东西,只需要按你的工程增加 src.
|