嵌入式开发(四):ARM-LINUX嵌入式开发环境

姓名:王芷若    学号:19020100180

学院:电子工程学院

转载自:https://blog.csdn.net/weixin_44039347/article/details/91606727?utm_source=app&app_version=4.13.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

【嵌牛导读】:本篇文章整理Linux知识点—arm-Linux嵌入式开发环境。

【嵌牛鼻子】:交叉开发模式,开发工具用法

【嵌牛提问】:Linux嵌入式开发环境是什么模式?编译工具链与交叉编译工具链有何异同?

【嵌牛内容】

ARM-LINUX嵌入式开发环境

一、交叉开发模式

1、组成结构

(1)宿主机:开发主机,一般由PC、发行版linux系统、开发工具(本地及交叉编译)(代码编辑器Vi,编译器GCC、调试器GDB、工程管理器MAKE、NFS等)组成;

(2)目标机:嵌入式系统,一般由ARM硬件、BOOTLOADER、内核、根文件系统构成;

(3)连接工具:串口线、网线、USB线等。

2、理解编译工具链与交叉编译工具链的异同

(1)相同点:

① 用于支持的语言的编译、链接与调试,编译器用法相同;

② 通常都有编译器、链接器、调试器、库及其他二进制工具构成。

(2)不同点:

① 编译工具链一般用于本机编译、本机执行的开发模式;

② 交叉编译工具链用于宿主机编译,目标机运行的交叉开发模式;

③ 编译器一般Linux发行版都配备,直接调用gcc命令即可;

④ 交叉编译器一般需根据宿主机软硬件环境,进行gcc、相关库、工具进行有针对性的定制。

⑤ 实验室使用的OK6410开发板定制的编译器为32位的,其交叉编译工具链主要arm-linux-gcc,arm-linux-g++arm-linux-gdb等构成。

二、开发工具的用法

1、Vi的工作模式及其切换-掌握使用Vi完成源代码编辑、保存及退出的常见按键操作;

2、GCC:GNU Compiler Collection,GUN编译器套件,特点:

① 支持绝大多数高级语言的编译,既支持传统的C/C++,Fortan,Objective-C ,也支持java,python,go等语言;

② 支持汇编语言;

③ 支持绝大多数的主流处理器平台;

④ 便于构建交叉编译工具链。

3、gcc/arm-linux-gcc用法:

① 基本用法:gcc hello.c;arm-linux-gcc hello.c;输出a.out

② 推荐用法:gcc hello.c -o hello/arm-linux-gcc hello.c -o hello ,可以指定输出文件名称;

③ 主要的编译参数

-Wall 打印全部警告信息;

-O{0-3,s} 支持代码优化,0无优化;

-g 支持gdb调试;

-lpthread 支持多线程。


4、make及Makefile

(1)make:工程管理器,利用执行Makefile文件实现工程管理(编译、链接、生成工程镜像、安装、清理、卸载等);

(2)make用法:编写Makefile,在终端下执行make命令即可。

(3)Makefile文件编写示例:

一个工程,2个源文件testa.c ,testb.c,一个头文件testb.h,编译器为arm-linux-gcc,生成的可执行文件为test,需支持代码优化、打印警告信息,支持gdb调试等编译选项,其Makefile文件如下:

SRC=testa.testb b.c testb.h

EXEC=test

CC=arm-linux-gcc

CFLAGS=-Wall -O2 -g

( E X E C ) : (EXEC):(EXEC):(SRC)

$(CC) $(SRC) -o $(EXEC) $(CFLAGS)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。