V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MikeFish
V2EX  ›  硬件

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

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

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

    ├── stm_project

    │ ├── inc

    │ ├── libs

    │ └── src

    在根目录及每个子目录下写 makefile,src 目录下存放c文件, libs 目录下存放 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   ·   实用小工具   ·   1443 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 92ms · UTC 23:53 · PVG 07:53 · LAX 15:53 · JFK 18:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.