芯片资源
芯片启动
大佬说明
rom启动会去加载fip.bin里面的bl2到sram里面,然后bl2运行并初始化完ddr,会先把rtos放到内存某个地址先让小核跑起来,再把opensbi , uboot 拷贝到ddr上,去跑大核的opensbi
个人理解
fsbl 相当与bl2,需要使用fsbl 将zephy 给启动起来
不是很清楚,相关函数作用
理解相关问题
https://blog.csdn.net/zhaoxinfan/article/details/54958641
https://zhuanlan.zhihu.com/p/430922284
https://www.cnblogs.com/mkh2000/p/15811708.html
https://github.com/carlosedp/riscv-bringup/blob/master/unleashed/Readme.md
代码解读启动流程
测试fsbl 执行步骤
说明
- fsbl 执行完成之后复位了?相关cpu 指针,串口后面打印没有输出
- fsbl 之后执行了拉起 cpu2 freertos 的操作,从某块起始地址?
- freertos 的移植需要先使能串口(寄存器手段),方便调试
- 如何将freertos 的地址在ddr 上定义出来?
freertos 启动流程
串口驱动移植
总体框图
寄存器解读
波特率计算
freertos 代码使能
芯片地址划分以及相关工具说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
+--------------------------+
| |
| DRAM |
| (0x80000000) |
| |
+--------------------------+
| FreeRTOS |
| (FREERTOS_ADDR) |
| |
+--------------------------+
| Monitor |
| (MONITOR_ADDR) |
| |
+--------------------------+
| OpenSBI |
| (OPENSBI_FDT_ADDR) |
| |
+--------------------------+
| Kernel |
| (KERNEL_MEMORY_ADDR) |
| |
+--------------------------+
| ION Buffer |
| (ION_ADDR) |
| |
+--------------------------+
| H26X Bitstream |
| (H26X_BITSTREAM_ADDR) |
| |
+--------------------------+
| ... |
| |
+--------------------------+
| U-Boot Image |
| (UIMAG_ADDR) |
| |
+--------------------------+