⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pmoninit.htm

📁 mips架构的bootloader,99左右的版本 但源代码现在没人更新了
💻 HTM
字号:
			<title>PMON Initialization</title>			<h1 align=center>PMON Initialization</h1><!--INDEX "PMON Initialization" -->Here is a brief description of what happens when PMONboots (jal is a subroutine call).<p>Execution starts at 0xbfc00000 (0xa0c00000 on the LR64360). At this address there is a jump to _start  (usually at 0xbfc00274).<p><!--INDEX cpuInit mips.s cpdata clrbss getHostType --><h2>_start: (<a href="../pmon/mips.s">pmon/mips.s</a>)</h2><dl><dd>  <dl><dt><b>  jal <a href="../lib/cpuinit.s">cpuInit</a></b><dd>	This calls getHostType and then sets up the RAM and returns	a pointer to the correct cache flush routine, and the CPU	type.<dt><b>  jalr s0</b><dd>	Calls the correct flush routine to flush the Dcache. It calls	indirect via register s0, which was set by cpuInit.  	<dt><b>  jal <a href="../lib/cpdata.s">cpdata</a></b><dd>	Copies the .data section from the PROM to the RAM.<dt><b>  jal <a href="../lib/clrbss.s">clrbss</a></b><dd>	Clears the .bss section in RAM.<dt><b>  jal <a href="../pmon/mips.s">copyHandler</a></b><dd>	Copies the exception handler to the exception vector in RAM.<dt><b>  jal <a href="../pmon/mips.s">copyHandler</a></b><dd>	Copies the exception handler to the exception vector in RAM.<dt><b>  jalr s0</b><dd>	Calls the correct flush routine to flush the Dcache. It calls	indirect via register s0, which was set by cpuInit.  	<dt><b>  jalr s0</b><dd>	Calls the correct flush routine to flush the Icache. It calls	indirect via register s0, which was set by cpuInit.  	<dt><b>  jal <a href="../pmon/main.c">pmoninit</a></b><dd>	Calls pmoninit, this is the first piece of C. At this point	   PMON switches to kseg0 addresses (assuming that PMON was linked	   at a kseg0 address).	</dl><!--INDEX pmoninit hostInit main.c --></dl><h2>pmoninit() (<a href="../pmon/main.c">pmon/main.c</a>)</h2><dl><dd>  <dl><dt><b>  jal <a href="../lib/cp0supp.s">mfc0</a></b><dd>	Uses mfc0() to read the Status register (C0_SR).	This is the first time that RAM is assumed to be working.	If RAM is not working, control will not return from this	call.<dt><b>  jal <a href="../lib/hostinit.c">hostInit(8)</a></b><dd>	Initialize the DUART. This calls 	<a href="../lib/termio.c">addDevice</a>, which calls the OP_INIT 	section of the driver.<dt><b>  jal <a href="../mon/cli.c">moninit</a></b><dd>	Initializes the core Monitor.<dt><b>  jal <a href="../mon/cli.c">addCmdRec</a></b><dd>	Called several times. Adds PMON-specific commands to the Monitor.	<dt><b>  jal <a href="../mon/set.c">addEnvRec</a></b><dd>	Called several times. Adds PMON-specific environment variables 	to the Monitor.  <dt><b>  jal sprintf -- do_cmd</b><dd>	This pair of functions is called three times. They set two	environment variables and define the symbol Pmon.	<dt><b>  jal <a href="../mon/regs.c">addGpRegs</a> </b><dd>	Add the Gp registers to the list of registers.	<dt><b>  jal <a href="../lib/hostinit.c">hostInit</a> </b><dd>	Perform additional initialization.	</dl>  jal printf </b><dd>	Print the first part of the banner.	</dl></dl><p><hr><b>Navigation:</b> <a href="index.htm">Document Home</a> | <a href="doctoc.htm">Document Contents</a> | <a href="docindex.htm">Document Index</a> <p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -