当前位置: 首页 > Web前端 > CSS

嵌入式Linux学习笔记

时间:2023-03-30 15:25:07 CSS

学习正点原子《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》个人笔记常用操作&相关知识压缩解压decompression.tar.bz2tar-vxjflinux-imx-4.1.15-2.1.0-g8a006db.tar.bz2compression.tar.bz2tar-vcjfalienek_uboot.tar.bz2alienek_uboothttps://www.doc88.com/p-91399...编译将之前编译好的led.o文件链接到地址0X87800000,使用如下命令:arm-linux-gnueabihf-ld-Ttext0X87800000led.o-oled.elf上面命令-Ttext是指定链接地址,“-o”选项指定链接生成的elf文件的名称,这里我们命名为led.elf。上述命令执行后,工程目录下会多出一个led.elf文件。led.elf文件并不是我们要烧录到SD卡中的可执行文件,而是我们要烧录的.bin文件。.elf文件转为.bin文件,这里需要用到工具arm-linux-gnueabihf-objcopy。arm-linux-gnueabihf-objcopy更像是一个格式转换工具,我们需要用它来将led.elf文件转换成led.bin文件,命令如下:arm-linux-gnueabihf-objcopy-Obinary-S-gled.elf上面led.bin命令中,“-O”选项指定输出什么格式,后面的“binary”表示以二进制格式输出,选项“-S”表示不复制重定位源文件中的信息和符号信息,“-g”表示不复制源文件中的调试信息。在大多数情况下,我们用C语言编写测试例程。有时我们需要查看它的汇编代码来调试代码,所以需要反汇编。一般我们可以反汇编elf文件,比如如下命令:arm-linux-gnueabihf-objdump-Dled.elf>led.dis上面代码中的“-D”选项表示反汇编所有段。反汇编完成后,当前目录下会出现一个名为led.dis的文件,用于打开led。看一下dis文件,看是不是汇编代码。从图中可以看到led.dis包含汇编代码,也可以看到内存分配情况。0X87800000是全局标签_start,这是程序开始的地方。通过led.dis反汇编文件可以看出,我们的代码已经链接到了0X87800000开头的区域。makefileobjs:=start.omain.ohttps://www.doc88.com/p-91399...ledc.bin:$(objs)arm-linux-gnueabihf-ld-Timx6ul.lds-oledc.elf$^arm-linux-gnueabihf-objcopy-O二进制-Sledc.elf$@arm-linux-gnueabihf-objdump-D-marmledc.elf>ledc.dis%.o:%.sarm-linux-gnueabihf-gcc-Wall-nostdlib-c-O2-o$@$<%.o:%.Sarm-linux-gnueabihf-gcc-Wall-nostdlib-c-O2-o$@$<%.o:%.carm-linux-gnueabihf-gcc-Wall-nostdlib-c-O2-o$@$