文章目录
- 前言
- 1. 怎么生成keil下可以使用的文件和gcc下编译使用的makefile
- 2. STM32的时钟树
- 3.怎么查看keil5下的编译工具链用的是哪个
- 4. Arm编译工具链和GCC编译工具链有什么区别吗?
- 5. 怎么查看Linux虚拟机是x86的还是aarch64
- 6. 怎么下载gcc-arm的编译工具链
- 7.怎么修改keil5通过jlink进行下载
- 8. Keil下编译后的hex文件在哪里?
- 9. STM32L451和STM32L431的区别
- 10. STM32怎么样可以做到不使用Keil进行下载
前言
记录下在使用STM32L4系列芯片进行开发时,碰到的各种问题。
比较杂。
1. 怎么生成keil下可以使用的文件和gcc下编译使用的makefile
1.选中MDK-ARM生成Keil5下的工程文件
2.选中makefile生成该项目对应的make文件
2. STM32的时钟树
参考我另外一篇文章:STM32的时钟介绍
3.怎么查看keil5下的编译工具链用的是哪个
KEIL -> Project -> Manage -> Manage Project Items -> Folders/Extensions 目录下查找,我们用的应该是这个armCC
参考资料链接: Windows中使用GCC编译STM32CubeMx生成的Makefile文件
4. Arm编译工具链和GCC编译工具链有什么区别吗?
交叉编译工具链的命名规范是:
arch [-vendor] [-os] [-(gnu)eabi]
arch : 架构的意思,如ARM ,MIPS
vendor: 工具链的提供厂商
os: 支持的操作系统
eabi:嵌入式应用二进制接口(Embedded Application Binary Interface)
arm gcc还分为 是否支持操作系统
ABI是计算机上的,EABI是嵌入式平台上(如ARM,MIPS等)。
-
支持操作系统: arm-none-linux-eabi-gcc
主要用于基于ARM架构的Linux系统,可用于编译 ARM 架构的 u-boot、Linux内核、linux应用等。arm-none-linux-gnueabi基于GCC,使用Glibc库,经过 Codesourcery 公司优化过推出的编译器。
-
不支持操作系统:arm-none-eabi-gcc
用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux 应用 Application),一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密切的函数。
参考资料
arm 交叉编译器各种gcc 傻傻分不清楚:gnueabi,gnueabhf,none-eaib
深入理解工具链-自己搭建STM32编程IDE
arm-gnu编译工具链下载地址
5. 怎么查看Linux虚拟机是x86的还是aarch64
uname -m查看
6. 怎么下载gcc-arm的编译工具链
下载地址:https://blog.csdn.net/ybhuangfugui/article/details/98136988
7.怎么修改keil5通过jlink进行下载
这里通过Jlink下载的时候移植提示出错,其实就是因为我没有下载到自己芯片锁对应的Pack包,导致flash下载的时候选不到正确的芯片。
https://www.keil.arm.com/packs/
到上面的地址去下载STM32的pack包
参考链接:
KEIL5安装STM32的芯片支持包
keil的flash down列表中找不到所需要的flash芯片
Flash Download failed - “Cortex-M3“解决方法
8. Keil下编译后的hex文件在哪里?
在MDK-ARM的那个目录下
9. STM32L451和STM32L431的区别
参考链接:
https://www.stmcu.com.cn/Product/pro_detail/STM32L4/product
10. STM32怎么样可以做到不使用Keil进行下载
参考链接:
STM32下载编程工具 | ST-LINK Utility介绍、下载、安装和使用教程
J-LINK J-FLASH 下载STM32单片机程序使用教程