• stm32linux下开发(一) 2018-03-08 17:28:12
    说到STM32,大家不陌生,mdk环境+开发板+jlink即可搞定,但对于mdk开发环境,大部分人并不能说清楚。对于一个工程的编译,链接,烧写,调试过程完完全全集成在一个软件里,一键即可实现,这当然方便开发,但我们想要...

           说到STM32,大家不陌生,mdk环境+开发板+jlink即可搞定,但对于mdk开发环境,大部分人并不能说清楚。对于一个工程的编译,链接,烧写,调试过程完完全全集成在一个软件里,一键即可实现,这当然方便开发,但我们想要了解的编译、链接规则,调试原理等,却一无所知,所以当MDK出现一些奇怪的BUG时无从下手,明明是软件问题我们却查找代码错误。本文介绍一种原始的stm32开发方式,在linux操作系统下,所有的编译,链接,调试工作都是由你自己去决定完成,包括makefile的编写,以后对于高级嵌入式开发有需求的开发者可以先用stm32这种易上手的系统试试水,了解这种linux下的嵌入式开发的一般流程,这样,以后不管遇到任何平台的任何芯片,都有一个大体开发思路可以遵循,不至于一头雾水。进入正题,直接开始操作吧。

    一.linux系统安装

        建议安装ubuntu虚拟机,教程百度。

    二.gcc-arm-none-eabi交叉编译器的安装

        对于交叉编译这一概念,很多人陌生,在windows下几乎没有这一概念(实际就是交叉编译),所谓交叉即为pc端编译好的工程拿去嵌入式端直接运行,因为嵌入式系统资源有限,没有能力自己编译自己的工程再运行,试想以下MDK不就是这样吗,实际上MDK也用类似的编译器,功能完全一样。ps:pc端编译pc端运行的程序叫做本机编译,例如vs,vc等工具。所以,让我们先在linux下安装交叉编译工具链吧。

        打开下载页面 https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads/5-2016-q3-update

    这是一个嵌入式交叉编译开发者项目团队的官网,如下有几个下载链接


    顾名思义,我们选linux下的download(Source为工具链的源码,需要经过编译后才能生成交叉编译工具链,捋一捋关系),而我们选择下载现成工具链,有兴趣的可以查阅相关资料自己编译Source生成工具链。

    下载到Windows上之后我们可以将其拷贝到linux下的/opt/gcc-arm-none-eabi/下(自建文件夹),解压。

    进入bin:       cd  /opt/gcc-arm-none-eabi/gcc-arm-none-eabi-5_4-2016q3/bin/

    可以看到我们已经安装的工具了。其中后缀为gcc的为C编译器,后缀为g++的为c++编译器,ld为链接器,gdb为debug等

    设置环境变量:export PATH=$PATH:/opt/gcc-arm-none-eabi/gcc-arm-none-eabi-5_4-2016q3/bin  

    这样你只需要以后键入gcc-arm然后按Tab键系统就会按照此路径寻找到bin下的各个工具,然后自动补齐为

    gcc-arm-none-eabi-

    到此我们的交叉编译工具链已经安装好(包括编译器和链接器)。

    三.openocd安装

       openecd是一个集成了stlink,ulink,jlink等多种协议的调试软件,相当于mdk的烧写和debug功能,因此不用问为什么,想要烧程序,必须安装。

    下载地址:https://sourceforge.net/projects/openocd/

    同样下载完成后拷贝至linux下,路径随意,我的是/opt/openocd/

    解压,进入openocd-0.10.0,cd  /opt/openocd/openocd-0.10.0/

    因为下载的是源码工程,所以要先后经过配置(主要配置调试器的类型),编译,安装流程

    配置之前安装两个包:sudo  apt-get  install  libusb++-dev  libusb-1.0.0-dev

    配置:  ./configure

    稍等片刻即可列出调试器,如果你想要的调试器处于关闭状态,比如我这里想要配置jlink,则重新配置加上参数:  

    ./configure --enable-jlink

    稍等片刻即可,如图:

    可以看到已经配置好了segger的jlink

    编译:   make

    安装:   make install

    至此调试器安装完成,默认安装路径是/usr/local/share下的openocd

    四.调试器的驱动安装(jlink)

    我使用的是jlink,所以介绍jlink的安装,其他调试器可以自行查找资料。

    下载jlink驱动的官网地址:http://www.segger.com/cms/jlink-software.html

    选择downloadJ-Link Software and Documentation pack for Linux, TGZ archive, 32-bit

    拷贝至linux下的/opt/jlink_driver/

    解压,进入文件夹后执行 cat README.txt查看安装说明,按照要求执行命令后重启系统。

    然后执行以下命令:

    cp libjlinkarm.so.* /usr/lib

    cp JLinkGDBServer* /usr/bin/

    cp JLinkExe /usr/bin/

    usermod -a -G plugdev <Username>

    至此jlink的驱动安装完毕。


    所有准备工作以完成,下一节开始应用实践。


    展开全文
  • 嵌入式linux与51/430/STM32的嵌入式开发的区别与关联 总结: 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)  主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,...
  • STM32LINUX概念 2017-12-15 23:58:02
    STM32是一块单片机,LINUX是操作系统。 STM32不能跑LINUX系统。 两种操作系统:用MMU不用MMU。 用MMU的可以跑:LINUX,android,windowns,MaxOS. 不带MMU的可以跑:FreeRTOS,VxWorks,ucOS. CPU分两种: 带MMU的...
  • 作者:知乎用户 ...来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。   谢邀。...基于STM32的开发属于微控制器开发领域,主要开发工具是keil或IAR,这种开发更准确...
  • STM32和Linux(转载) 2014-04-06 01:02:34
    Linux和stm32 一个是软件平台一个是硬件平台,完全不一样的(记住,是平台!)。这样说吧,既然你喜欢单片机,就先学stm32,把硬件基础打牢,尤其是各种总线(usb、iic、spi...)、各种外设模块(红外、温湿、mpu...
  • STM32和Linux 2019-07-29 09:19:03
    Linux和stm32一个是软件平台一个是硬件平台,完全不一样的(记住,是平台!)。这样说吧,既然你喜欢单片机,就先学stm32,把硬件基础打牢,尤其是各种总线(usb、iic、spi...)、各种外设模块(红外、温湿、mpu6050....
  • 01话 题经常有大学生同学纠结:我到底是学STM32还是学嵌入式linux。这个问题很多人都会有自己的看法,今天我试着从多个角度,把我了解到的事实讲一下,希望对大家有所启发。02STM3...
  • STM32是否可以跑linux 2013-11-09 22:20:30
    操作系统有两种 用MMU的 不用MMU的 用MMU的是Windows MacOS Linux Android 不用MMU的是FreeRTOS VxWorks ucOS... CPU有两种 带MMU的 不带MMU的 ...带MMU的有 Cortex-A系列 ...STM32是M系列...不可能运行Linux
  • Linux和stm32 一个是软件平台一个是硬件平台,完全不一样的(记住,是平台!)。这样说吧,既然你喜欢单片机,就先学stm32,把硬件基础打牢,尤其是各种总线(usb、iic、spi...)、各种外设模块(红外、温湿、mpu...
  • STM32遇到Linux = STM32MP1 2019-05-17 02:13:36
    本文转自公众号:AI电堂STM32MP1系列是ST今年2月重磅推出的最新多核微处理器产品(MPU),集成两颗主频 650MHz 的 Arm®Cortex-A7 应用处理...
  • STM32F750成功运行Linux 2019-04-01 16:28:42
    前段时间ST推出了Value Line的STM32F750H750两个系列,看了一下选型表,F750有LQFP144封装,正好适合我的STM32 linux板子。 于是,双十一买了几片。同时,我对我的linux板做了小幅改版:将SPI Flash容量扩大到32...
  • STM32MP1 linux 编译 2020-01-09 22:41:56
    STM32MP1 linux 编译0 - 相关文章1 - linux准备2 - 解压3 - defconfig4 - make uImage5 - make dtbs5 - 烧写固件测试5.1 - 确认SD卡在/dev/下设备名5.2 - 对SD卡进行分区5.3 - 写入fsbl15.4 - 写入fsbl25.5 - 写入...
  • 不知道各位朋友有没有发现,公众号改版了,现在的推送规则已经不一定是按照时间顺序了,有一些小伙伴甚至几天收不到消息,要点进去公众号主页才能看到。所以,为了账号不会从您的订阅表里面消失,请各...
  • 先来回顾一下,前两篇Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译和Linux下开发stm32(二) | 使用openocd下载与调试中,我们介绍了如何创建一个空的裸机工程(只有启动文件main文件),并编译工程...
  • STM32 开发环境 for Linux 2020-07-01 11:09:38
    linux系统下的stm32开发环境的模板,主要内容来自一位大神的博客
  • Linux下安装stm32开发环境 2019-06-19 11:46:58
    Linux环境下安装stm32运行环境 在Linux下搭建stm32开发环境 使用JAVA运行环境+stm32cubemx+sw4stm32 JAVA运行环境使用jre,先下载jre安装(Oracle官网下载Linux版本),需要注册,因为stm32cubemx+sw4stm32这两个...
  • 本人笔记本太渣,使用keil编译时CPU占用率竟然能到%90,实在忍受不了,就想着将stm32 keil的工程port到linux上用makefile来控制(嗯,服务器配置相当豪华)。使用gdb+jlink server的方式进行调试。惊喜的发现jlink...
  • 初始配置: STM32CubeMX (HAL库) IDE: TrueSTUDIO 串口工具: CuteCOM 初始配置 打开STM32CubeMX -&amp;amp;amp;gt; New Project -&amp;amp;amp;gt; 选择NUCLEO-F767, 开发板图片双击: 弹出对话框选NO: OK:...
  • STM32 移植Linux内核 2019-08-22 22:36:44
    Install arm toolchain:arm-2010q1-189-arm-uclinuxeabi-i686-pc …. uncompress first and move the directory to /usr/bin ...tar jxvf arm-2010q1-189-arm-uclinuxeabi-i686-pc-linux-gnu.tar.bz2 mv arm-20...
  • 携手STM32CubeMX玩转STM32 2019-04-23 17:18:45
    本课程教大家如何利用STM32CubeMX玩转STM32STM32CubeMX支持的所有型号MCU都适用于本课程)。课程内容分为基础内容扩展内容,例如:讲解串口时会扩展开讲Xmodem通信协议,讲解ADC/DAC时会扩展讲傅里叶计算,讲解...
1 2 3 4 5 ... 20
收藏数 13,370
精华内容 5,348