【PMON 研究】【03】PMON 代码执行流程
心映真的空间苦心励志 技术强国
让我们面对现实 让我们忠于理想
欢迎来到唐刚的首页
PMON 代码执行流程
龙芯相关 » PMON 研究 » PMON 代码执行流程
PMON 代码执行流程如下图所示
当整个板子起电后,CPU将从 0xBFC00000 取指令开始执行,而ROM在系统中的地址就是从该地址开始的。所以,其中的第一条指令就是整个过程中 CPU 要执行的第一个指令。
[*]初始化CPU内的寄存器,清TLB.
[*]初始化一些北桥的基本配置,以确保uart能够正常工作.
[*]初始化uart,主要是设置波特率.
[*]初始化内存(主要通过I2C协议从内存的EEPROM读取内存参数来进行设置).
[*]初始化cache.
[*]拷贝pmon的代码到内存,然后通过
la v0, initmips
jalr v0
nop
从此代码便到内存中间去了,从这开始因为可以读写内存,所以有了栈,故可以用C的代码了,所以以后的程序便是C代码了.
咨询下楼主,像龙芯1C这样的CPU,CPU上电复位的时候从存储PMON的SPI-FLash中直接寻址。这时,CPU会从SPI-Flash中拷贝多少数据到内存呢? 帖子是转的,你的问题很抱歉,我无法回答。 一起研究下呗,我感觉龙芯的资料还不够清晰。不像三星2440那样很明确的告诉你,是拷贝4K数据。 PMON也需要更多人的关注。 yzwguet 发表于 2017-4-6 15:26
咨询下楼主,像龙芯1C这样的CPU,CPU上电复位的时候从存储PMON的SPI-FLash中直接寻址。这时,CPU会从SPI-Fla ...
参考帖子 http://www.openloongson.org/forum.php?mod=viewthread&tid=203&extra=page%3D1&page=2
的17,18,19,20楼,在初始化sdram后,就拷贝nor flash中的到内存了。
pmon源码
Targets\LS1X\ls1x\tgt_machdep.c中,函数tgt_mapenv()
页:
[1]