uboot 启动自编写程序的方式

emasi / 2024-10-05 / 原文

uboot 启动自编写程序的方式

[怎么想写好这么难呢...]

uboot 存在 boot 命令。

自己最初在尝试撰写串口程序时,选择了使用汇编来完成。

在这段时间,自己使用 go 命令来尝试载入程序

先是在 Ubuntu 上搭建 tftp 目录

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/emasi/Documents/WORKSPACE/asm_test/build"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
~                                                                                                                              
~                                                                                                                                                                                                                                                               
"/etc/default/tftpd-hpa" [readonly] 6L, 168B  

安装使用了 tftpd-hpa 程序来管理该 tftp 路径

随后在 Uboot 的终端界面手动键入命令配置 tftp 服务器 ip 地址,下载生成的 .bin 文件

image

随后直接使用 go 就立即执行了

这在汇编下是一个比较顺利的事情,但是当开始编写 baremetal C 时就遇到问题了,这时如果仍然是直接 go 下载文件的起始地址,那么uboot会返回异常,程序没有被正确执行。

这问题来源与 C 下的执行入口问题。

c_work 状态

如果从反汇编的视角查看示例程序

在我起初编写 链接脚本的时候,