1、前言
(1)最近使用韦东山老师的D1S板子学习RISC-V架构知识,我是结合《RISC-V体系结构编程与实践》这本书的进行学习,其中韦东山老师对书中的代码做了部分移植,到MMU模块就没有在移植书中代码;
(2)前面章节移植的代码都是下载到D1S芯片内置的IRAM中运行,后续实验需要将代码搬运至内存中,IRAM大小已经不够了;
(3)最初我是想剥离出初始化DDR的代码并添加到工程里,后来发现数据手册里根本没有关于DDR部分的描述。初始化DDR的代码在xfel工具的源码和sdk中spl部分的源码里有,但是剥离出来工作量不小;好在发现了xfel工具已经支持初始化D1S芯片的ddr并下载程序,于是后续调试代码,我都是使用xfel工具来初始化ddr并下载代码;
补充:xfel工具源码:https://github.com/xboot/xfel;
2、利用xfel下载程序到内存的步骤
3、 在内存运行代码需要修改的地方
3.1、内存地址空间
虽然使用xfel工具可以实现初始化ddr并下载程序,但是在调试程序的时候,需要修改相应的链接地址,主要是修改涉及到的绝对地址部分。(M模式跳转到S模式使用的绝对地址,这里要修改)
3.2、笨叔代码适配D1S芯片需要修改的地方