裸机烧写

生成可烧写的文件

如果您有S3C2440或其他单片机的学习经验,可以知道程序的二进制版本,比如lcd.bin可以直接烧写到Flash上。它们是自启动的,什么意思?比如一上电,运行的是lcd.bin前面的代码,它会初始化内存,把自己从Flash上复制到内存里去执行。请记住:自己把自己复制到内存。

但是对于IMX6ULL,烧写在EMMC、SD/TF卡上的程序,并不能“自己复制自己”,是“别人把它复制到内存里”。一上电首先运行的是boot ROM上的程序,它从EMMC、SD/TF卡上把程序复制进内存里。

  • 生成镜像文件
image.png
# 安装mkimage,安装出错,多试几次
sudo apt install u-boot-tools
sudp apt-get update

# 复制imximage、imx6ull.lds(后续C用的着)到虚拟机中去
git clone https://e.coding.net/weidongshan/noos/doc_and_source_for_mcu_mpu.git
doc_and_source_for_mcu_mpu\IMX6ULL\source\02_录制视频时现场编写的源码\03_led_s\tools

# 得到了一个led.imx文件
mkimage -T imximage -n ./imximage.cfg.cfgtmp -e 0x80100000 -d led.bin led.imx
cat 1k.bin led.imx > led.img

# led.imx不可以烧录,还需要让led.imx偏移1K字节,在其前面写入1K字节的空数据
# 使用命令得到1K空字节的文件。dd命令是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
# 首先if=/dev/zero表示输入文件为/dev/zero
# /dev/zero,是一个输入设备,你可你用它来初始化文件,该设备无穷尽地提供0
dd if=/dev/zero of=1k.bin bs=1024 count=1

# 合并为led.img文件
cat 1k.bin led.imx > led.img
image.png

USB烧写

image.png

image.png

image.png
image.png

image.png

image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容