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

📄 romloader.s

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 S
字号:
;/************************************************************************************************
;代码加载部分,包括 初始化堆栈,初始化 CPU,加载代码.
;07-09-17,huangsl,每个阶段的代码加载由模块本身来完成,以减少代码交叉情况。
;									增加 KERNEL 各个段的起始和大小,以便 C 代码引用.
;071025,huangsl,增加初始状态和寄存器的初始化.
;/************************************************************************************************

;/************************************************************************************************

		IMPORT		||Load$$CACHE_SRAM$$Base||
		IMPORT		||Image$$CACHE_SRAM$$Base||
		IMPORT		||Image$$CACHE_SRAM$$Limit||
		
		IMPORT		||Image$$CACHE_SRAM$$ZI$$Base||
		IMPORT		||Image$$CACHE_SRAM$$ZI$$Limit||
		
		IMPORT		||Image$$CODE_SDRAM$$ZI$$Base||			;for ZI init
		IMPORT		||Image$$CODE_SDRAM$$ZI$$Limit||		 
					
		IMPORT		InitStacks		
;		IMPORT		Cpu_Init			
		IMPORT		LoadCodeSection
    IMPORT		memset
    
    IMPORT		LowLevelInit
    
;/************************************************************************************************
    EXPORT  	RomLoader
;    EXPORT  	baseSetupEntry
;/************************************************************************************************
		INCLUDE CONDEFINE.s
		
		CODE32
		AREA   LOADER, CODE, READONLY

RomLoader
			MSR	CPSR_c,#SVCMODE|NOINT  ; No interrupts,SVC MODE.
						
			BL			InitStacks	;首先设置堆栈.
			

				LDR     R0, =||Load$$CACHE_SRAM$$Base||			;源
        LDR     R1, =||Image$$CACHE_SRAM$$Base||			;目标
        LDR     R2, =||Image$$CACHE_SRAM$$Limit||		;长度
        BL			LoadCodeSection
				
				LDR	R0,=||Image$$CACHE_SRAM$$ZI$$Base||
				LDR	R1,=||Image$$CACHE_SRAM$$ZI$$Limit||
				SUB	R2,R1,R0
				MOV	R1,#0
				
				;BL			ZeroZISection
				BL		memset
    		
    		;为了支持外部扩展存储器或者 与 CPU 紧密相关设备,调用外部接口初始化.
  			BL		LowLevelInit   ; CPU 的一些初始化代码,包含 C 代码.	
  			
    		LDR	R0,=||Image$$CODE_SDRAM$$ZI$$Base||
				LDR	R1,=||Image$$CODE_SDRAM$$ZI$$Limit||
				SUB	R2,R1,R0
				MOV	R1,#0
				;BL			ZeroZISection
				BL		memset
				
			MOV			R4,#0
			MOV			R5,R4
			MOV			R6,R4
			STMFD   SP, {R4-R6}
			LDMDB   SP, {R7-R9}
		  LDMDB   SP, {R10-R12}	
  							
    	;REMAP ,然后跳到 CACHE_SRAM 的入口(0地址)    
			ldr	pc, =||Image$$CACHE_SRAM$$Base||   				; Jump to SRAM CODE

    END
;/*********************************************************************************************************
;**                            End Of File
;********************************************************************************************************/

⌨️ 快捷键说明

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