AIR32F103(二) Linux环境和LibOpenCM3项目模板
目录
- AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告
- AIR32F103(二) Linux环境和LibOpenCM3项目模板
- AIR32F103(三) Linux环境基于标准外设库的项目模板
- AIR32F103(四) 27倍频216MHz,CoreMark跑分测试
- AIR32F103(五) FreeRTOSv202112核心库的集成和示例代码
- AIR32F103(六) ADC,I2S,DMA和ADPCM实现的录音播放功能
- AIR32F103(七) AIR32F103CBT6/CCT6启用96K内存
- AIR32F103(八) 集成Helix MP3解码库播放MP3
- AIR32F103(九) CAN总线的通信和ID过滤机制及实例
- AIR32F103(十) 在无系统环境和FreeRTOS环境集成LVGL
- AIR32F103(十一) 在AIR32F103上移植微雪墨水屏驱动
- AIR32F103(十二) 搭载 AIR32F103CBT6 的Bluepill核心板
Linux 开发环境
在Linux下和STM32F1xx的开发环境是一样的, 可以使用 gcc-arm 编译, 用 st-flash 烧录. 开发库可以使用 SPL, 或者 Libopencm3.
安装 st-flash
首先检查一下系统中是否有st-flash和st-info命令, 没有的话需要安装
安装步骤
git clone https://github.com/stlink-org/stlink.git
cd stlink/
make
# 如果报 libusb 错误, 就安装一下 libusb-1.0-0-dev, 再make
sudo apt install libusb-1.0-0-dev
make clean
make
cd build/Release/
sudo make install
如果运行 st-info 出现下面的错误
st-info: error while loading shared libraries: libstlink.so.1: cannot open shared object file: No such file or directory
运行一下sudo ldconfig
可以解决问题
将 AIR32F103 通过 stlink 接上PC后, 可以通过 st-info 查看信息, 似乎并不能正确识别, 但是无所谓, 能检测到就可以了
~$ st-info --probe
Failed to parse flash type or unrecognized flash type
Found 1 stlink programmers
version: V2J37S7
serial: 56FF6B064966485627461667
flash: 131072 (pagesize: 1024)
sram: 20480
chipid: 0x410
dev-type: STM32F1xx_MD
Update 2022-07-23: 检测同一型号贴在bluepill核心板上的 MH32F103ACBT6 识别的结果和 AIR32F103 还不一样, 输出是这样的
$ st-info --probe
Failed to parse flash type or unrecognized flash type
Found 1 stlink programmers
version: V2J37S7
serial: 56FF6B064966485627461667
flash: 262144 (pagesize: 2048)
sram: 65536
chipid: 0x414
dev-type: F1xx_HD
Libopencm3 项目模板
项目模板: https://github.com/IOsetting/libopencm3-freertos-template
- 安装 GCC ARM
在GCC ARM网站下载工具链接https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads, 然后解压到合适的目录
tar xvf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
cd /opt/gcc-arm/
sudo mv ~/Backup/linux/gcc-arm-none-eabi-10.3-2021.10/ .
sudo chown -R root:root gcc-arm-none-eabi-10.3-2021.10/
检查版本
/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc --version
- 导出项目
git clone --recurse-submodules https://github.com/IOsetting/libopencm3-freertos-template.git your-project
如果导出子模块过程中出错了, 可以在项目目录下运行下面的命令修复
git submodule update --init
因为AIR32F103CBT6配置比C8T6高一规格, 需要修改下Makefile, 将 DEVICE 设成 stm32f103cbt6
DEVICE = stm32f103cbt6
- 编译 Libopencm3
cd your-project
PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- make -C libopencm3
- 编译项目
PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- make -C user
FreeRTOS例子的编译
如果编译带 FreeRTOS 的例子, 会提示错误fatal error: FreeRTOSConfig.h: No such file or directory
,
编译需要带上选项FREERTOS=1
PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- FREERTOS=1 make -C user
- 烧录
st-flash --reset write user/app.bin 0x8000000
正常烧录的输出
st-flash 1.7.0-201-g254a525
Failed to parse flash type or unrecognized flash type
2022-07-23T09:05:17 INFO common.c: STM32F1xx_MD: 20 KiB SRAM, 128 KiB flash in at least 1 KiB pages.
file user/app.bin md5 checksum: 1e3bc73ae2b3cc6a26876b261f6ef48, stlink checksum: 0x0002486f
2022-07-23T09:05:17 INFO common_flash.c: Attempting to write 1808 (0x710) bytes to stm32 address: 134217728 (0x8000000)
-> Flash page at 0x8000000 erased (size: 0x400)
-> Flash page at 0x8000400 erased (size: 0x400)
2022-07-23T09:05:17 INFO flashloader.c: Starting Flash write for VL/F0/F3/F1_XL
2022-07-23T09:05:17 INFO flash_loader.c: Successfully loaded flash loader in sram
2022-07-23T09:05:17 INFO flash_loader.c: Clear DFSR
2/ 2 pages written
2022-07-23T09:05:17 INFO common_flash.c: Starting verification of write complete
2022-07-23T09:05:17 INFO common_flash.c: Flash written and verified! jolly good!
2022-07-23T09:05:17 WARN common.c: NRST is not connected
* Terminal will be reused by tasks, press any key to close it.
AIR32F103(二) Linux环境和LibOpenCM3项目模板的更多相关文章
- AIR32F103(三) Linux环境基于标准外设库的项目模板
目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...
- Linux04 /创建虚拟环境、在linux环境运行Python项目
Linux04 /创建虚拟环境.在linux环境运行Python项目 目录 Linux04 /创建虚拟环境.在linux环境运行Python项目 1. 大体流程 2. linux环境安装python3 ...
- 从零构建vue项目(一)--搭建node环境,拉取项目模板
本文是基于vuecli2搭建的项目. 1. 下载安装nodejs 地址:https://nodejs.org/en/download/ 选择安装版windows .msi, 不要选择压缩版 下 ...
- Linux环境配置与项目部署
简介: Linux是一类Unix计算机操作系统的统称.Linux操作系统的内核的名字也是“Linux”.Linux操作系统也是自由软件和开放源代码发展中最著名的例子.严格来讲,Linux这个词本身只表 ...
- Linux环境搭建及项目部署
一. VMWare安装图解 1.点击下一步 2.接受条款,下一步 3.选择安装目录,不建议有中文目录和空格目录.下一步 4.下一步 5.这两个选项根据可以爱好习惯选择,下一步 6.安装 7.完成 9. ...
- linux环境运行java项目并有外部引用jar
eclipse目录结构: linux目录结构: lib目录结构: 其中除了IMT_ENCODING_DSP.jar其余的都是外部引用的jar IMT_ENCODING_DSP.jar是java项目打包 ...
- Linux环境下部署项目时的步骤和一些要注意的点
SQL的导出和导入 sql的导出 首先选中要导出的数据库 然后点击左下角的administration选项,进入导出界面. 点击Data Export 然后勾选图中的几个选项即可导出一个sql,如果需 ...
- Linux环境下发布项目(Tomcat重新启动)
在Linux系统下,重启Tomcat 首先,进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 使用Tomcat关闭命令 ./shutdown.sh 查看Tomcat是否 ...
- Linux环境搭建多项目SVN
1.安装SVN #yum install subversion 2.创建版本库文件夹 #mkdir -p /var/svn/repos/pro1 (/var/svn/repos是根路径,pro1是项目 ...
- linux环境启动django项目
BBS部署步骤 安装python3.6(如已安装无需重复) install python3.6 把BBS项目传上来 rz 选择文件 BBS.tar 解压文件 tar -xvf BBS.tar 安装my ...
随机推荐
- UPF - Power Intent Basic
Mainstream Low Power techniques Low Vth - 阈值电压比较低,翻转时间小,漏电流比较大,功耗大,速度快 High Vth - 阈值电压比较高,翻转时间长,漏电流比 ...
- 海思Hi35xx 通过uboot查看flash指定地址的数据
前言 在实际应用中有遇到过设备放置一段时间后设备不能启动的问题,uboot 完全没有响应,类似于flash中的数据被擦洗掉一样. 网上有介绍说是nandflash 不稳定,高温或是静电会导致nan ...
- 银河麒麟在线升级新版本docker
银河麒麟在线升级新版本docker 卸载 学习来自: https://cloud.tencent.com/developer/article/1491742 yum remove docker \ d ...
- [转帖]Kafka中offsets.retention.minutes和log.retention.minutes之间的区别
https://www.cnblogs.com/lestatzhang/p/10771115.html 前言 在Kafka中,我们可能会发现两个与retention相关的配置: log.retenti ...
- [转帖]Linux—vi/vim全局替换
https://www.jianshu.com/p/4daa5dbc7dd5 vim全局替换 在linux系统中编辑文件或者配置时,常常会用到全局替换功能. 语法格式 :%s/oldWords/n ...
- [转贴]细说:Unicode, UTF-8, UTF-16, UTF-32, UCS-2, UCS-4
细说:Unicode, UTF-8, UTF-16, UTF-32, UCS-2, UCS-4 https://www.cnblogs.com/malecrab/p/5300503.html 1. U ...
- Nacos集群启动注意事项
简介 Nacos是阿里巴巴开源的一套服务注册发现的应用 使用简单灵活, 是spring Cloud Alibaba的组成部分 现在拆分微服务的部署情况下,极大的需求nacos服务作为支撑 单点情况下存 ...
- 一个简单的监控java进程获取日志的办法
公司里面一个长时间运行的环境会出现问题, 这边简单写了一个脚本自动获取日志信息 脚本如下 注意 我的path 其实就是复用的 我们应用里面的jdk 剩下的就非常简单了. 每个日志都自动打包 并且移除 ...
- Linux挂载新磁盘到根目录
1.添加磁盘到需要挂载的机器上2.lsblk查看硬盘挂载情况,sdb,sdc为我新挂载的磁盘 3.fdisk -l查看挂载之前的分区情况, 4.为新硬盘创建分区 fdisk /dev/sdb,终端会提 ...
- vs不同版本支持的c++版本和PlatformToolset,及在vs中切换c++版本
找c++资料从网上找确实更快速,但要想深入地理解vc++建议看msdn文档. vs不同版本支持的c++版本 C++17: vs2017基本支持,vs2015部分支持. C++14: vs2017就可以 ...