课程列表

基本问题

开源资源

好好学习天天向上

联大大纲—通信电子 ;教师介绍; 单片机课程学习经验- 学习路线图; 1.概述 -应用 -定义 -特点 -构成; 2.嵌入式处理器 —DIY CPU处理器ARM处理器Cortex-A8S5PV210讨论; 3.汇编语言 -作业 4.Bootloader -作业 5.Linux内核移植 6.嵌入式Linux程序设计 7.图形用户接口QT 8.其他框架介绍; 9.嵌入式物联网应用系统设计

汇编器 Assembler

用途:编译工具

(1)版本:GNU编译器(GCC)提供对ARM架构的ARM Linux增强支持,支持ARM Cortex-A8处理器。本书所用GCC版本为arm-linux-gcc-4.5.1。

(2)编译工具:GNU为ARM Linux平台提供了丰富的编译工具,主要包括:
 arm-linux-gcc(编译器)
 arm-linux-ld(连接器)
 arm-linux- objcopy(二进制转换工具)
 arm-linux-objdump (反汇编工具)
 

lds文件(linker概念)

1 用途:GNU编译器可以通过连接脚本文件(lds文件)了解用户程序所定义的段结构和它们的链接地址。

2 段定义:ARM汇编语言以段为单位来组织汇编语言程序。

3 段的类型:代码段(.text)、初始化数据段(.data)、未初始化数据段(.bss),程序中使用上述保留字对段的类型进行声明。

4 段定义语法格式:
.section <section_name> {,‘<flags>’} @定义一个新的代码或数据段。

5 定义程序入口点
汇编程序缺省入口地址由start标号指定,用户也可以在连接脚本文件中用ENTRY标号指明其它入口。
6 文件示例
示例:\6 应用例程\1 No OS(裸机程序)\src\12 .uart_putchar\BL2\uart.lds

SECTIONS /*声明段 */
{ . = 0x23E00000; /*定义段首链接地址 */
.text : { /*首先定义代码段接位置 */
  start.o /*代码段首先链接start.o文件*/
  * (.text)} /* start.S文件中必须定义有start标号*/
.bss : { /*定义bss段接位置,跟在text段之后*/
  * (.bss)}
.data : { /*定义data段接位置,跟在bss段之后*/
  * (.data)}
}

 

makefile文件

1 编译命令:make make命令实际是在运行和解析一个文件,这个文件就是makefile

 

2 makefile文件:GNU规定了makefile文件书写过程的语法规则。依照这个规则,可以指定文件编译过程依赖的规则,我们需要自行编写makefile文件。

编译器在利用makefile进行编译工程中,并非完全按照makefile文件中的行号顺序来执行,具体执行顺序后续章节将有详细介绍。