linux环境下stm32f103,Linux下使用STM32F103C8

本文详细介绍了在Ubuntu 18.04系统中安装JLink驱动,配置STM32F103C8T6处理器,并使用JLinkExe进行程序烧写的过程,包括loadbin与savebin命令的使用技巧。重点在于解决驱动安装、目标处理器设置及烧写验证的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ubuntu18.04.1(x64) 使用STM32F103C8

1.板子使用JLINK烧写程序,需要先安装JLINK驱动(V9)

b890dc9f5f9a8e2b3ddab191fced6e40.png

JLinkExe会用到libreadline库,所以得把libreadline库装上。http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html 中Current Status选择下载,并安装,如下所示:

1

2

3

4tar -zxvf readline-6.2.tar.gz

./configure

make

make install

2.Jlink安装好啦,找到 /opt目录下/opt/SEGGER/JLink,说明驱动已经安装

573cbb14707b6d6c8dbd757f0963a665.png

3.执行./JLinkExe 进入JLink命令行模式,出现下图

b45fb7b00da6c987401859f8864583fa.png

4.输入cconnect,如果设备显示 Unspecified,要先设置目标处理器,否则无法正常烧写,我的型号是STM32F103C8T6,这里只能输入

1J-Link>exec device=STM32F103C8

97978d4f50173c61758fd4308f40c609.png

4.下载loadbin

loadbin用于将二进制文件下载到目标存储器,语法如下:

1Syntax: loadbin , //Load binary file into target memory

有个麻烦,下载完没有明显提示成功与否,可以通过这样解决:在PC通过命令xxd查看待下载文件,下载进去通过JLink命令mem查看,判断这两者是否一样(只比较前面若干字节即可),若一样,则表示烧写成功。举个例子,把/bin/cp文件烧到板子:

1

2

3

4

5

6

7

8

9

10

11

12

13J-Link>loadbin /bin/xxx.bin 0x08000000

Loading binary file... [/bin/cp]

Writing bin data into target memory @ 0x08000000.

J-Link>mem 0x08000000,3f

08000000 = 7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00

08000010 = 02 00 03 00 01 00 00 00 40 A1 04 08 34 00 00 00

08000020 = 04 73 01 00 00 00 00 00 34 00 20 00 09 00 28 00

08000030 = 1D 00 1C 00 06 00 00 00 34 00 00 00 34 80 04

root@tiger:~$ xxd /bin/xxx.bin | more

0000000: 7f45 4c46 0101 0100 0000 0000 0000 0000 .ELF............

0000010: 0200 0300 0100 0000 40a1 0408 3400 0000 ........@...4...

0000020: 0473 0100 0000 0000 3400 2000 0900 2800 .s......4. ...(.

0000030: 1d00 1c00 0600 0000 3400 0000 3480 0408 ........4...4...

3.2 保存savebin

1Syntax: savebin , , //Saves target memory into binary file

这里值得一提的是,参数是十六进制,比如指定10,保存的是16个字节。

命令mem的也是十六进制的。

### STM32嵌入式开发板使用指南 #### 配置与初始化 STM32CubeMX 是 ST 官方提供的图形化配置工具,能够帮助开发者快速配置 STM32 的硬件特性并生成初始化代码[^2]。通过该工具的 `Pinout & Configuration` 功能模块,用户可以方便地配置引脚分配和外设参数;而 `Project` 模块则用于管理项目设置,比如选择 IDE、中间件及其版本等。 对于具体的芯片操作,如基于野火 STM32 开发板利用 EEPROM 存储小数的情况,《使用 STM32F103 和 AT24C02 存储小数的详细教程》提供了详尽的操作流程以及注意事项介绍[^1]。这不仅有助于理解如何读写外部存储器的数据,还涵盖了更多关于这两款器件的应用技巧。 #### 编程环境搭建 为了简化编程工作流,在完成上述硬件配置之后,可以通过 STM32CubeMX 自动生成所需的启动代码框架,并将其导出到所选集成开发环境中继续编写应用程序逻辑部分。此外,针对特定系列的产品(例如 STM32G431),官方发布的数据手册也是不可或缺的学习资源之一,其中包含了大量实用的技术细节和支持信息[^3]。 #### 文件系统支持 当涉及到更复杂的操作系统级应用时,则可能需要用到预构建好的根文件系统镜像来加速开发进程。例如 st-image-bootfs-openstlinux-weston-stm32mp1.tar.xz 就是一个适用于某些型号处理器的标准 Linux 发行版映像包[^4]。 ```bash tar xf st-image-bootfs-openstlinux-weston-stm32mp1.tar.xz -C /path/to/target/ ``` 此命令可用于解压并部署目标平台上的基础运行环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值