知识点:
1.在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议2.安装arm-linux-gcc:
1).将gcc压缩包解压到系统根目录
解压到根目录指令:tar xvzf arm-linux-gcc-4.3.2.tgz -C /
2).修改环境变量
vim /root/.bashrc
在.bashrc 文件中添加 export PATH=$PATH:/usr/local/arm/4.3.2/bin
保存重启配置 source /root/.bashrc
3.交叉编译工具
1).编译 arm-linux-gcc -g -c led.s
2).链接 arm-linux-ld -Tled.lds -o led.elf led.o main.o
3).读elf文件 arm-linux-readelf -a led.elf
4).反汇编 arm-linux-objdump -D -S hello >dump
5).elf文件转换成二进制 arm-linux-objcopy -O binary led.elf led.bin
4.Makefile
1).规则
targets : prerequisites
command
目标 依赖 命令
注意: 命令需要tab键 空格
例如:
led.bin: led.o
arm-linux-ld -Tled.lds -o led.elf led.o
2).当makefile 文件中有多条规则时,可用使用make xx(xx指某条规则的目标) 生成单个目标
3).变量的使用
使用变量前:
app1: app1.o func1.o func2.o
gcc app1.o func1.o func2.o -o app1
使用变量后:
obj=func1.o func2.o
app1: app1.o $(obj)
gcc app1.o $(obj) -o app1
-> 系统已经定义好的默认变量
$^: 代表所有依赖文件
$@: 代表目标
$<: 代表第一个依赖文件
使用前:
led.o : led.s
arm-linux-gcc -g -o led.o -c led.s
使用后:
led.o : led.s
arm-linux-gcc -g -o $@ -c $^
4).去掉回显
在命令前加@
5).指定文件进行make编译
make -f xx(文件名)
5.连接器脚本
1).例子说明
SECTIONS {
. = 0x30000000; // 起始位置地址
. = ALIGN(4); // 代码段对齐
.text :
{
*(.text)
}
. = ALIGN(4) // 对齐
.data :
{
*(.data)
}
. = ALIGN(4) // 对齐
bss_start = . 100; // 定义变量,bss起始地址为bss当前位置
.bss :
{
*(.bss)
}
}