生成可燒寫的文件
如果您有S3C2440或其他單片機(jī)的學(xué)習(xí)經(jīng)驗(yàn)抠刺,可以知道程序的二進(jìn)制版本,比如lcd.bin可以直接燒寫到Flash上摘昌。它們是自啟動的速妖,什么意思?比如一上電聪黎,運(yùn)行的是lcd.bin前面的代碼罕容,它會初始化內(nèi)存,把自己從Flash上復(fù)制到內(nèi)存里去執(zhí)行。請記咨庇:自己把自己復(fù)制到內(nèi)存。
但是對于IMX6ULL湘纵,燒寫在EMMC脂崔、SD/TF卡上的程序,并不能“自己復(fù)制自己”梧喷,是“別人把它復(fù)制到內(nèi)存里”砌左。一上電首先運(yùn)行的是boot ROM上的程序,它從EMMC铺敌、SD/TF卡上把程序復(fù)制進(jìn)內(nèi)存里汇歹。
- 生成鏡像文件
image.png
# 安裝mkimage,安裝出錯,多試幾次
sudo apt install u-boot-tools
sudp apt-get update
# 復(fù)制imximage偿凭、imx6ull.lds(后續(xù)C用的著)到虛擬機(jī)中去
git clone https://e.coding.net/weidongshan/noos/doc_and_source_for_mcu_mpu.git
doc_and_source_for_mcu_mpu\IMX6ULL\source\02_錄制視頻時現(xiàn)場編寫的源碼\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字節(jié),在其前面寫入1K字節(jié)的空數(shù)據(jù)
# 使用命令得到1K空字節(jié)的文件弯囊。dd命令是用指定大小的塊拷貝一個文件痰哨,并在拷貝的同時進(jìn)行指定的轉(zhuǎn)換。
# 首先if=/dev/zero表示輸入文件為/dev/zero
# /dev/zero匾嘱,是一個輸入設(shè)備斤斧,你可你用它來初始化文件,該設(shè)備無窮盡地提供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