求助 怎么在 linux 下搭建 stm32 的开发环境 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MikeFish
V2EX    硬件

求助 怎么在 linux 下搭建 stm32 的开发环境

  •  
  •   MikeFish 2016-05-29 21:28:14 +08:00 5003 次点击
    这是一个创建于 3426 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在玩一些硬件相关的玩具,需要在 linux 下使用工具链编译 目前我已经完成了 arm-none-eabi-gcc 和 openocd 的安装 我个人比较倾向于这样的工程目录

    ├── stm_project

    │ ├── inc

    │ ├── libs

    │ └── src

    在根目录及每个子目录下写 makefile,src 目录下存放c文件, lib 目录下存放 stm32 官方库文件, inc 下放头文件,工程目录中还有什么需要补充的文件和文件夹,每个子目录下需不需要在细分文件夹,求各位大神指点,谢谢 stm32f103 的官方库在什么地方下载,我在意法半导体官网上没有找到 还有就是每个 makefile 文件和链接脚本这个很蛋疼,有没有人能带我飞,谢谢

    23 条回复    2017-08-31 18:45:25 +08:00
    cnnblike
        1
    cnnblike  
       2016-05-29 22:32:57 +08:00   1
    现在都用 STM32CubeMX 了,官方附件库已经不维护了
    kokutou
        2
    kokutou  
       2016-05-30 02:27:16 +08:00 via Android   1
    atom + platformio 看看有没有你的板子。。。
    arduino 表示很爽,但是启动好慢。。。
    hanliumaozhi
        3
    hanliumaozhi  
       2016-05-30 03:17:28 +08:00   1
    查看 https://leanpub.com/mastering-stm32 讲了在 linux 搭建开发环境的 不过撸单片机代码还是在 win 上好。。。
    eamars
        4
    eamars  
       2016-05-30 07:30:59 +08:00 via iPhone   2
    如果官方支持的话可以用 mbed ,官方提供了 online compiler
    MikeFish
        5
    MikeFish  
    OP
       2016-05-30 12:55:51 +08:00   1
    @cnnblike STM32CubeMX 有合适的资料么
    @hanliumaozhi 感觉好像很简单 环境搭建只有两页
    @eamars mbed 是什么东西
    谢谢大家的回复,上完课刚刚回来看见
    eamars
        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 ,使用起来挺方便的。
    cnnblike
        7
    cnnblike  
       2016-05-30 13:26:34 +08:00 via iPhone   1
    @MikeFish st.com 自己查
    SunZhiwei
        8
    SunZhiwei  
       2016-05-30 15:45:24 +08:00
    前端时间有写过之类 不过很挫
    用的 arm-gcc 和 stlink, 另外板子型号好像忘记了 23333
    你可以去看看: https://github.com/ZhiweiSun/stm32
    SunZhiwei
        9
    SunZhiwei  
       2016-05-30 15:47:23 +08:00
    哦 好像就是 stm32f103 吧 不过也许可能达不到你的要求
    MikeFish
        10
    MikeFish  
    OP
       2016-05-30 19:12:45 +08:00
    @SunZhiwei 我的也是 stm32f103 因为不想折腾寄存器 官方库又下不到
    SunZhiwei
        11
    SunZhiwei  
       2016-05-30 20:06:24 +08:00
    @MikeFish 我那个 stm32 里面应该就是你需要的吧 不过也许不全 毕竟当时做的东西比较简陋,(而且对硬件不是很熟 23333
    MikeFish
        12
    MikeFish  
    OP
       2016-05-30 20:10:23 +08:00
    @SunZhiwei 但是具体到 linux 下还是有很多问题,可以谈谈你是怎么玩的么
    MikeFish
        13
    MikeFish  
    OP
       2016-05-30 20:10:54 +08:00
    @SunZhiwei 你有博客之类的么
    SunZhiwei
        14
    SunZhiwei  
       2016-05-30 20:48:29 +08:00
    @MikeFish 谈不上玩吧 而且也是磕磕碰碰过来的, 一般都在 ```win``` 下面弄得吧 (没有 懒得维护 23333
    大致就是先组织结构 把需要的文件整理好 然后写了个 ```Makefile``` 之后就开始写东西了
    在 linux 下 ```arm-none-eabi-gcc``` 和 ```stlink``` 应该就行了
    but0n
        15
    but0n  
       2016-05-31 20:22:22 +08:00   1
    MikeFish
        16
    MikeFish  
    OP
       2016-06-01 17:24:42 +08:00
    @but0n 现在我已经找到了这个工程 但是 openocd -f openocd.cfg 连不上我的单片机
    but0n
        17
    but0n  
       2016-06-01 19:36:03 +08:00 via iPhone
    @MikeFish 我用的 stm32flash 串口烧写
    MikeFish
        18
    MikeFish  
    OP
       2016-06-02 12:58:28 +08:00
    这个怎么弄 老司机指条明路 @but0n
    but0n
        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
    MikeFish
        20
    MikeFish  
    OP
       2016-06-03 19:14:00 +08:00
    @but0n 谢谢
    bugeye
        21
    bugeye  
       2016-06-04 07:06:04 +08:00
    用 chibios(chibios.org)好了,本身是个实时操作系统,大量底层实现细节隐藏起来,不用你管,功能比官方库多得多,而且适合 stm 全系列单片机。

    openocd 毛病也多,最好用 st-link 调试和烧写,如果你有淘宝卖的山寨 st-link
    https://github.com/texane/stlink
    bugeye
        22
    bugeye  
       2016-06-04 07:07:49 +08:00
    如果你用 ChibiOS 的话,只要下载了最新版,然后编译 testhal 下面随便一个例子就可以 测试工具链,然后 makefile 什么的都是相同格式化的东西,只需要按你的工程增加 src.
    jarell
        23
    jarell  
       2017-08-31 18:45:25 +08:00
    @bugeye 有系统性的 ChibiOS 的资料么, 入门 构架什么的。我想只用它的 hal 模块
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5906 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 02:01 PVG 10:01 LAX 19:01 JFK 22:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86