iTop-4412 裸机程序(二)- 烧录程序,从点亮一颗LED灯开始

目录

  • 烧录前的准备工作(Windows环境)
  • 从 GitHub 上下载代码
  • 代码编译
  • 烧录 led.bin
  • 实验现象
  • FAQ

烧录前的准备工作(Windows环境)

  1. Linux 编译服务器(我的是Ubuntu20.04版本)
  2. 虚拟机(我用的是VMware Workstation)
  3. 安装好 iTop-4412 的交叉编译工具链,可以参考《ubuntu16.04 64bit安装arm-none-linux-gnueabi交叉编译工具链》
  4. 安装好 TortoiseGit 和 Git,可以参考《TortoiseGit 使用教程》

从 GitHub 上下载代码

路径:https://github.com/Kilento/4412NoOS

代码编译

root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# ls
link.lds  Makefile  mkbl1.c  s3c4412_gpio.h  start.S
root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# 
root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# make Q=
arm-none-linux-gnueabi-gcc -o start.o start.S -c
arm-none-linux-gnueabi-ld -T link.lds -o led.elf start.o
arm-none-linux-gnueabi-objcopy -O binary led.elf led.bin
arm-none-linux-gnueabi-objdump -D led.elf > led.dis
root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# 
root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# ls
led.bin  led.dis  led.elf  link.lds  Makefile  mkbl1.c  s3c4412_gpio.h  start.o  start.S
root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# make clean
rm -rf *.o *.elf *.bin *.dis mkbl1

通过 make 命令编译生成了 led.bin 文件,这是我们的目标裸机程序文件。

烧录 led.bin

首先要把 TF 接入到虚拟机下,通过如图的按钮可以选择设备连接到主机还是接到虚拟机
iTop-4412 裸机程序(二)- 烧录程序,从点亮一颗LED灯开始_第1张图片

root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5 
root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb
  • 当TF卡接入到虚拟机时,可以看到在 /dev 目录下多了一个 /dev/sdb 文件。接下来我们就可以烧录程序到 TF 卡中。建议在烧录前先格式化TF卡(先卸载,后格式化):
root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# umount /dev/sdb
root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# mkfs.vfat -F 32 /dev/sdb
  • 格式化之后重新连接TF卡或者使用mount命令挂载 /dev/sdb
  • 烧写 led.bin 到 TF 卡中
root@ubuntu:~/4412NoOS/led/1.0_点亮一颗led# make && make install
The checksum is 0x000025bd for 124 bytes [0x10 ~ 0x8b]
16+0 records in
16+0 records out
8192 bytes (8.2 kB, 8.0 KiB) copied, 0.105586 s, 77.6 kB/s
0+1 records in
0+1 records out
140 bytes copied, 0.00452114 s, 31.0 kB/s

提示如上信息就代表烧录成功了。

实验现象

将 TF 卡 插入到 iTop-4412中,将启动模式选择为 TF 卡启动。打开开关,如果看到 LED2 亮起,则说明程序烧录成功。

FAQ

Q:接入 TF 卡后设备文件名称不是 /dev/sdb,烧写失败。
A:make install 默认安装路径是 /dev/sdb, 使用 make install LOCATION=/dev/sdb 安装到实际路径下,其中 LOCATION=/dev/sdb 为实际设备文件名称。关于本makefile的意思,后面的博文会介绍。

2021年8月17日

Kilento

你可能感兴趣的:(Exynos4412,嵌入式,exynos)