TQ2440学习笔记(1): 工欲善其事-必先利其器

知识点:
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)
  }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值