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

📄 startup.s

📁 一份对nandflash ks9f1208读写操作的源代码 本人已经测试通过
💻 S
📖 第 1 页 / 共 2 页
字号:
;** Created by: 黄绍斌
;** Created Date: 2005-12-31 
;**-------------------------------------------------------------------------------------------------------
;** Modified by: 
;** Modified Date: 
;**------------------------------------------------------------------------------------------------------
;**********************************禁止mmu**********************************************************************/
DisableMMU
        MRC     p15,0,R0,c1,c0,0
        BIC     R0,R0,#(1<<0)
        MCR     p15,0,R0,c1,c0,0
        MOV     PC, LR
        
        

;/*********************************************************************************************************
;** Function name: EnableICache
;** Descriptions: 使能指令CACHE
;** Input: 无
;** Output: 无
;** Created by: 黄绍斌
;** Created Date: 2005-12-31 
;**-------------------------------------------------------------------------------------------------------
;** Modified by: 
;** Modified Date: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
EnableICache        
        MRC     p15,0,R0,c1,c0,0
        ORR     r0,R0,#(1<<12)
        MCR     p15,0,R0,c1,c0,0
        MOV     PC, LR
        


;/*********************************************************************************************************
;** Function name: DisableICache
;** Descriptions: 禁止指令CACHE
;** Input: 无
;** Output: 无
;** Created by: 黄绍斌
;** Created Date: 2005-12-31 
;**-------------------------------------------------------------------------------------------------------
;** Modified by: 
;** Modified Date: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
DisableICache       
        MRC     p15,0,R0,c1,c0,0
        BIC     R0,R0,#(1<<12)
        MCR     p15,0,R0,c1,c0,0
        MOV     PC, LR
   
   
   
;/*********************************************************************************************************
;** Function name: EnableDCache
;** Descriptions: 使能数据CACHE
;** Input: 无
;** Output: 无
;** Created by: 黄绍斌
;** Created Date: 2005-12-31 
;**-------------------------------------------------------------------------------------------------------
;** Modified by: 
;** Modified Date: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
EnableDCache        
        MRC     p15,0,R0,c1,c0,0
        ORR     R0,R0,#(1<<2)
        MCR     p15,0,R0,c1,c0,0
        MOV     PC, LR



;/*********************************************************************************************************
;** Function name: DisableDCache
;** Descriptions: 禁止数据CACHE
;** Input: 无
;** Output: 无
;** Created by: 黄绍斌
;** Created Date: 2005-12-31 
;**-------------------------------------------------------------------------------------------------------
;** Modified by: 
;** Modified Date: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
DisableDCache       
        MRC     p15,0,R0,c1,c0,0
        BIC     R0,R0,#(1<<2)
        MCR     p15,0,R0,c1,c0,0
        MOV     PC,LR


	    															   
;/*********************************************************************************************************
;** Function name: InitStack
;** Descriptions: 初始化堆栈
;** Input: 无
;** Output: 无
;** Created by: 陈明计
;** Created Date: 2004-02-02
;**-------------------------------------------------------------------------------------------------------
;** Modified by: 黄绍斌
;** Modified Date: 2005-12-31 
;** Note: 给CPSR_c赋值采用宏的方式
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/



;/*****************************注意进入的时候是svc,出来的时候是系统模式***********************************************/
InitStack    
        MOV     R0, LR

; /* 设置管理模式堆栈 */
        MSR     CPSR_c, #(Mode_SVC | I_BIT | F_BIT) 	; 0xd3
        LDR     SP, StackSvc
; /* 设置中断模式堆栈 */
        MSR     CPSR_c, #(Mode_IRQ | I_BIT | F_BIT)		; 0xd2
        LDR     SP, StackIrq
; /* 设置快速中断模式堆栈 */
        MSR     CPSR_c, #(Mode_FIQ | I_BIT | F_BIT)		; 0xd1
        LDR     SP, StackFiq
; /* 设置中止模式堆栈 */
        MSR     CPSR_c, #(Mode_ABT | I_BIT | F_BIT)		; 0xd7
        LDR     SP, StackAbt
; /* 设置未定义模式堆栈 */
        MSR     CPSR_c, #(Mode_UND | I_BIT | F_BIT)		; 0xdb
        LDR     SP, StackUnd
; /* 设置系统模式堆栈 */
        MSR     CPSR_c, #(Mode_SYS | I_BIT | F_BIT)		; 0xdf
        LDR     SP, StackUsr

        MOV     PC, R0

StackUsr           DCD     UsrStackSpace + (USR_STACK_LEGTH - 1) * 4
StackSvc           DCD     SvcStackSpace + (SVC_STACK_LEGTH - 1)* 4
StackIrq           DCD     IrqStackSpace + (IRQ_STACK_LEGTH - 1)* 4
StackFiq           DCD     FiqStackSpace + (FIQ_STACK_LEGTH - 1)* 4
StackAbt           DCD     AbtStackSpace + (ABT_STACK_LEGTH - 1)* 4
StackUnd           DCD     UndtStackSpace + (UND_STACK_LEGTH - 1)* 4


	
;/*********************************************************************************************************
;** Function name: __user_initial_stackheap
;** Descriptions: 库函数初始化堆和栈,不能删除
;** Input: 参考库函数手册
;** Output: 参考库函数手册
;** Created by: 陈明计
;** Created Date: 2004-02-02
;**-------------------------------------------------------------------------------------------------------
;** Modified by: 
;** Modified Date: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
__user_initial_stackheap    
    LDR   r0,=bottom_of_heap
    MOV   pc,lr



;/*********************************************************************************************************
;** Function name: __rt_div0
;** Descriptions: 整数除法除数为0错误处理函数,替代原始的__rt_div0减少目标代码大小
;** Input: 参考库函数手册
;** Output: 无
;** Created by: 陈明计
;** Created Date: 2004-02-02
;**-------------------------------------------------------------------------------------------------------
;** Modified by: 
;** Modified Date: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
__rt_div0
        B       __rt_div0
        
        


; /* 分配堆空间 */
        AREA    Myheap, DATA, NOINIT, ALIGN=2
bottom_of_heap     SPACE   256  				;库函数的堆空间			


; /* 分配堆栈空间 */
        AREA    MyStacks, DATA, NOINIT, ALIGN=2
UsrStackSpace      SPACE   USR_STACK_LEGTH * 4  ;用户(系统)模式堆栈空间
SvcStackSpace      SPACE   SVC_STACK_LEGTH * 4  ;管理模式堆栈空间
IrqStackSpace      SPACE   IRQ_STACK_LEGTH * 4  ;中断模式堆栈空间
FiqStackSpace      SPACE   FIQ_STACK_LEGTH * 4  ;快速中断模式堆栈空间
AbtStackSpace      SPACE   ABT_STACK_LEGTH * 4  ;中止义模式堆栈空间
UndtStackSpace     SPACE   UND_STACK_LEGTH * 4  ;未定义模式堆栈

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

⌨️ 快捷键说明

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