ubuntu搭建基于arm-none-eabi-gcc,jlink驱动的平台,并实现stm32f407zgt6程序的编译链接和烧写
整个过程可以参考这个链接的内容,https://blog.csdn.net/c1599179/article/details/100827322?spm=1001.2014.3001.5501
不同之处包括:
1、固件库文件要换成stm32f407zgt6的
2、makeile文件改为:
TARGET = projectexport CC = arm-none-eabi-gcc
export AS = arm-none-eabi-as
export LD = arm-none-eabi-ld
export OBJCOPY = arm-none-eabi-objcopyTOP=$(shell pwd)INC_FLAGS= -I $(TOP)/stm32f407zgt6/inc \-I $(TOP)/stm32f407zgt6/lib/inc \-I $(TOP)CFLAGS = -W -Wall -g -mcpu=cortex-m4 -mthumb -D STM32F40_41xxx -D USE_STDPERIPH_DRIVER $(INC_FLAGS) -O0 -std=gnu11
C_SRC=$(shell find ./ -name '*.c')
C_OBJ=$(C_SRC:%.c=%.o) ASFLAGS= -W -Wall -g -Wall -mcpu=cortex-m4 -mthumb
ASM_SRC=$(shell find ./ -name '*.s')
ASM_OBJ=$(ASM_SRC:%.s=%.o)all:$(C_OBJ) $(ASM_OBJ)$(CC) $(C_OBJ) $(ASM_OBJ) -T stm32_flash.ld -o $(TARGET).elf -mthumb -mcpu=cortex-m4 -Wl,--start-group -lc -lm -Wl,--end-group -specs=nano.specs -specs=nosys.specs -static -Wl,-cref,-u,Reset_Handler -Wl,-Map=Project.map -Wl,--gc-sections -Wl,--defsym=malloc_getpagesize_P=0x80 $(OBJCOPY) $(TARGET).elf $(TARGET).bin -Obinary $(OBJCOPY) $(TARGET).elf $(TARGET).hex -Oihex$(C_OBJ):%.o:%.c$(CC) -c $(CFLAGS) -o $@ $<$(ASM_OBJ):%.o:%.s$(AS) -c $(ASFLAGS) -o $@ $<.PHONY: all clean update clean:rm -f $(shell find ./ -name '*.o')rm -f $(shell find ./ -name '*.d')rm -f $(shell find ./ -name '*.map')rm -f $(shell find ./ -name '*.elf')rm -f $(shell find ./ -name '*.bin')rm -f $(shell find ./ -name '*.hex') rm -f $(shell find ./ -name '*.cdep')
3、删除stm32f407_fmc.c和对应的.h文件,这是stm32标准库里的文件,有它会显示很多错误,一般也不会用到,直接删掉就不会有相应的错误了。
ubuntu搭建基于arm-none-eabi-gcc,jlink驱动的平台,并实现stm32f407zgt6程序的编译链接和烧写相关推荐
- ubuntu搭建基于arm-none-eabi-gcc,jlink驱动的平台,并实现stm32f103c8t6程序的编译链接和烧写
ubuntu搭建基于arm-none-eabi-gcc,jlink驱动的环境,并实现stm32f103c8t6程序的编译链接和烧写 说明: 本文内容基于VMware上的ubuntu虚拟机,vmware ...
- 跟光磊学Java-macOS版Java8开发环境搭建(基于ARM 64-bit)
日常办公和软件开发除了可以使用Windows系统以外,还可以使用macOS系统,至于具体使用什么系统取决于你入职公司之后公司给你发的什么电脑,如果是MacBookPro那么就使用macOS开发项目,因 ...
- 关于使用gcc在Linux系统中进行c语言程序的编译
目录 1.可执行文件的组装 学习使用gcc生成静态库和动态库 静态库生成 动态库生成 使用实例 静态库使用 动态库使用 2.gcc编译的各种工具 关于gcc编译器下的工具 Binutils c运行库 ...
- arm平台下linux c语言编程,简单分析针对ARM平台的C语言程序的编译问题
我们知道在C语言编译时,有那么几个常用的优化编译选项,分别是-O0,-O1,-O2,-O3以及-Os.之前一直觉得既然是优化选项,顶多是优化一下逻辑,提高一些效率或者减少一下程序大小而已.很少会觉得它 ...
- armgcc交叉编译的文件无法运行_从0开始搭建基于ARM GCC的软件系统02——使用ARM GCC编译SDK
本文以STM32L4VGT6为例,因为手上只有这么一块开发板.其它IC处理方法应该类似. 一.准备工作 1.打开官网https://www.st.com/content/st_com/en.html, ...
- Linux(ubuntu)搭建基于nginx-http-flv-module的视频推拉流服务器
前言 上篇说到基于MacOS的服务器搭建,是自己在本地电脑上的小尝试,真正用的时候还是要上linuxOS 的,下面来看下ubuntu系统的搭建过程. 正文 环境准备 操作系统: Ubuntu 16.0 ...
- C语言——程序的编译+链接(linux+gcc实现过程)
文章目录 前言 一.预处理 1.预处理阶段的操作: 1.预处理过程实现: 二.编译 1.编译阶段的操作: 2.编译过程的实现: 三.汇编 1.汇编阶段的操作: 2.汇编过程的实现: 四.链接 1.链接 ...
- 【ARM】在NUC977上搭建基于boa的嵌入式web服务器
一.实验目的 搭建基于arm开发板的web服务端程序,通过网页控制开发板LED状态 二.boa简介 Boa服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的.适合于 ...
- 基于ARM的Qt Creator嵌入式开发环境搭建
平台:ubnutu10.04 交叉编译器:arm-linux-gcc-3.4.1 第一步,准备相关文件 在Qt官方网站可以下载qt-everywhere-opensource-src-4.8.1.ta ...
最新文章
- SQL代码-创建DeskInfo表
- Chrome浏览器插件OneTab标签聚合插件
- JavaScript时间事件:setTimeout和setInterval
- android 6.0适应的机型,提升用户体验 可升Android 6.0机型盘点
- golang new与make的一点区别理解
- 通用easyui查询页面组件
- 【问题解决】解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused”的问题
- win10屏蔽自动更新方法
- 标准正态分布的积分怎么求?
- ViewDidLoad运行多次的问题
- 网络通讯协议——TCP/IP协议
- mysql 优化面试题
- DNS解析出错导致网站在部分地区无法打开
- css3 cale()属性介绍以及自适应布局使用方法
- 腾讯地图实现微信小程序地图定位教程
- linux主板上的网卡不显示,linux服务器更换主板后无法识别网卡解决办法
- Jitsi视频会议部署(三):让电话打进来!
- 【小贴士】合肥工业大学本科毕业答辩tips
- 常用SQL注入语句大全
- nginx: [emerg] “location“ directive is not allowed here