第01课 环境搭建及工具、概念介绍

2019-07-13 01:58发布

第1课 嵌入式Linux开发环境搭建及使用,嵌入式变成基础知识 1. 安装ubuntu 按教程来安装:书、配套的开发板光盘使用手册都有说明 使用光盘上已经制作好的ubuntu9.10   2. 安装Windows下的配套开发工具 源码编辑查看源码工具Source Insight 远程登录/串口工具SecureCRT 文件传输工具CuteFTP tftp服务器程序tftpboot: uboot上的tft   3. Linux操作示例 启动终端、远程登录 vi.gedit: vi的使用可以在google上搜 ifconfig 查看ip配置 sudo ifconfig eth1 192.168.1.3 //设置网卡 sudo ifconfig eth1 up //设置网卡 ping windows ip,ping 192.168.1.7   find、grep 查找名为a.c的文件:find -name “a.c” 在当前目录下搜含有abc字样的文件:grep “abc” * -nR   cd change dir改变目录 cd /到根目录 cd / rm删除命令 rm ab.c删除文件 rm -rf dir_name删除目录 mkdir abcd穿件目录 ls 列出当前目录所有文件及目录 rm -rf abcd递归删除强制删除所有目录及目录下所有子目录     gcc -o hello hello.c a.c ./hello ./指的是在当前目录下执行   SECTIONS {         . = 0x00; //当前地址为零,从零地址开始排放,排放代码段,只读数据段,data,bss         .text          :   { *(.text) }         .rodata ALIGN(4) : {*(.rodata)}         .data ALIGN(4) : { *(.data) }         .bss ALIGN(4)  : { *(.bss)  *(COMMON) } } lds文件指定了链接脚本,但是没指定链接顺序,Makedfile里制定链接顺序   *表示所有文件,这里说的所有文件是指在当前目录的源文件 CFLAGS  := -Wall -Wstrict-prototypes -g -fomit-frame-pointer -ffreestanding all : crt0.S  leds.c         arm-linux-gcc $(CFLAGS) -c -o crt0.o crt0.S         arm-linux-gcc $(CFLAGS) -c -o leds.o leds.c         arm-linux-ld -Tleds.lds  crt0.o leds.o -o leds_elf  //制定链接顺序 先crt0后leds.0         arm-linux-objcopy -O binary -S leds_elf leds.bin         arm-linux-objdump -D -m arm  leds_elf > leds.dis clean:         rm -f   leds.dis leds.bin leds_elf *.o   所以先排放crt0的text再排放leds的text依次排放。     理解设么是Makefile Windows 编译 按钮 Linux 命令行,为了方便,这些命令写入一个文件,然后执行这些文件,Makefile   Makefile 规则 目标:依赖1 依赖2 。。。。 TAB 命令     hello:hello.c a.c             gcc -o hello hello.c a.c     Makefile命令能被执行的条件
  1. 目标不存在  hello:hello.c a.c
  2. 依赖已更新  gcc -o hello hello.c a.c
  hello 没有这个文件 hello.c或者a.c更新了或被修改了   vi Makefile编辑 Makefile make执行Makefile   改良Makefile 使编译和链接分离 hello : hello.o a.o   //想生成hello,但是没有hello.o也没有a.o, 查找关于hello.o 和 a.o的规则             gcc -o hello hello.o a.o   hello.o : hello.c             gcc -o hello.o -c hello.c // -c 编译不链接             a.o : a.c             gcc -o a.o -c a.c   这种情况下哪个文件改变了就编译哪个文件,节省编译时间。   Makefile 还可以改进写成通配符   hello : hello.o a.o             gcc -o $@ $^   %.o : %.c             gcc -o $@ -c $<   clean :             rm *.o hello   make clean可以删除相关的所有的东西 介绍gcc命令选项 -c 编译不链接 ld, arm-linux-ld