嵌入式Linux裸机开发

一、FTP、NFS、SSH

FTP,即 File Transfer Protocol,文件传输协议。在开发过程中,Ubuntu作为FTP服务器,Windows作为FTP客户端,使用FileZilla直接可以实现Ubuntu和Windows文件互传。
NFS,即 Network File System,网络文件系统。在进行Linux驱动开发的时候需要NFS启动,通过网络将Ubuntu中的文件直接作为启动文件。
SSH,即Secure Shell,安全Shell。用于在Windows下使用终端软件安全远程登录Ubuntu。

二、交叉编译器

Ubuntu自带的GCC编译器是针对 X86架构的,我们开发的是ARM架构的,用的是Linaro公司提供的适用于Cortex-A7内核的GCC交叉编译工具链arm-linux-gnueabihf。
具体步骤是,从Linaro公司官网根据芯片型号选择自己想要的GCC交叉编译工具链的压缩包并下载,然后解压就得到了交叉编译工具链。最后将交叉编译器的路径添加到系统的环境变量中,以便在终端中可以直接使用。

三、汇编语言点亮LED灯

  • 编译文件 led.c -> led.o
arm-linux-gnueabihf-gcc -g -c led.s -o led.o
  • 链接文件 led.o -> led.elf
arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.elf
  • 格式转换 led.elf -> led.bin
arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin
  • 反汇编 led.elf -> led.dis
arm-linux-gnueabihf-objdump -D led.elf > led.dis
  • Makefile
led.bin:led.s 
	arm-linux-gnueabihf-gcc -g -c led.s -o led.o 
	arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.elf 
	arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin 
	arm-linux-gnueabihf-objdump -D led.elf > led.dis 
clean:
	rm -rf *.o led.bin led.elf led.dis
  • 使用 imxdownload软件向 SD卡烧写 led.bin文件
./imxdownload led.bin /dev/sdd

四、I.MX6U启动方式的启动模式、启动设备类型和镜像烧写过程

  • 启动方式(BOOT方式)

I.MX6U有四个 BOOT模式,这四个 BOOT模式由 BOOT_MODE[1:0]来控制。
常用的两个启动模式:
1. 串行下载(USB/UART)
2. 内部boot模式(bootROM)

  • 内部boot模式的启动设备选择

通过GPIO选择启动设备

  • 镜像烧写

.bin文件需要添加头部信息才能变成可烧写文件。
程序组成: IVT+Boot data+DCD+.bin

五、C语言点亮LED灯

  • 使用链接脚本文件链接文件
arm-linux-gnueabihf-ld -Timx6ul.lds -o ledc.elf $^
  • 链接脚本文件
SECTIONS{ 
	. = 0X87800000; 
	.text : 
	{ 
		start.o 
		main.o 
		*(.text) 
	} 
	.rodata ALIGN(4) : {*(.rodata*)} 
	.data ALIGN(4) : { *(.data) } 
	__bss_start = .; 
	.bss ALIGN(4) : { *(.bss) *(COMMON) } 
	__bss_end = .; 
}

六、I.MX6ULL官方SDK

SDK包里面 NXP已经编写好了寄存器定义文件、例程文件等。
从官网下载SDK_2.2_MCIM6ULL_RFP_Win.exe并安装,安装完成后是一个文件夹。

  • 需要用到的寄存器定义头文件
    fsl_common.h
    fsl_iomuxc.h
    MCIMX6Y2.h
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值