树莓派开发(一)

romcode串口输出使能

Posted by 婷 on July 21, 2024 本文总阅读量

简介

开始raspi4b的开发,先测试串口模块连线是否正常,串口功能是否正常

过程

实物图

实物图如下,这里用的是usb_to_ttl的串口模块

image-20240721132709591

image-20240721132726731

跟硬件原理图对应的管脚如下

image-20240721132848049

sd卡配置

首先要将sd卡格式化为fat32的格式,可以使用windows下的工具SDFormatter工具

image-20240720132817617

image-20240720132835563

格式化后,往sd卡添加如下五个文件,文件的链接

image-20240721135403387

这里主要列举下config.txt的配置,kernel_address=0x8000表示需要执行的内存地址,这个地址就是裸机程序在链接时的入口地址

arm_64bit=1
kernel_address=0x80000
uart_2ndstage=1
enable_uart=1
kernel=kernel8.img

因为这次主要是为了通过查看romcode是否能正常打印来检查串口功能是否正常,所以kernel8.img就随便自己dd一个文件即可

cmdline.txt暂时还没搞清楚它的用法,不过在这次测试中并没有什么作用

console=serial10

启动

验证成功,串口功能正常,串口波特率是115200

image-20240721133452564

配置文件解析

首先要先知道raspi4b的启动逻辑,bootrom先读取放在内部的SPI连接的EEPROM(4MBits / 512KB)里面的代码,我理解为second_stage_bootlaoderbootromsecond_stage_bootlaoder放到128K大小的二级缓存(L2 Cache)中,并执行这段代码

second_stage_bootlaoder初始化ram,加载start4.elf,读取config.txt文件。这里second_stage_bootlaoder应该是内部实现了识别fat32文件系统的代码,才能找得到sd卡中的start4.elf文件跟config.txt文件

start4.elf文件是用来启动GPU的固件,file查看是32bitelf文件

image-20240720212229437

下一步计划

接下来主要还是先往裸机开发的方向做下去,下一步就是jtag配置,裸机cpu启动,裸机串口输出。以后还会移植ubootkernel,自己实现一遍bringup的流程。

参考链接