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

📄 os_cpu_c.src

📁 ucos-II 在英飞凌xc164的移植
💻 SRC
📖 第 1 页 / 共 5 页
字号:

	OSTaskSwHook  PROC  FAR
	PUBLIC  OSTaskSwHook
; FUNCTION OSTaskSwHook (BEGIN  RMASK = @0x8000)
; line 182: {
; line 183: }
	RETS	
; FUNCTION OSTaskSwHook (END    RMASK = @0x8000)
	OSTaskSwHook  ENDP
; line 184: 
; line 185: /*
; line 186: *********************************************************************************************************
; line 187: *                                           STATISTIC TASK HOOK
; line 188: *
; line 189: * Description: This function is called every second by uC/OS-II's statistics task.  This allows your
; line 190: *              application to add functionality to the statistics task.
; line 191: *
; line 192: * Arguments  : none
; line 193: *********************************************************************************************************
; line 194: */
; line 195: void OSTaskStatHook (void)

	OSTaskStatHook  PROC  FAR
	PUBLIC  OSTaskStatHook
; FUNCTION OSTaskStatHook (BEGIN  RMASK = @0x8000)
; line 196: {
; line 197: }
	RETS	
; FUNCTION OSTaskStatHook (END    RMASK = @0x8000)
	OSTaskStatHook  ENDP
; line 198: 
; line 199: /*
; line 200: *********************************************************************************************************
; line 201: *                                               TICK HOOK
; line 202: *
; line 203: * Description: This function is called every tick.
; line 204: *
; line 205: * Arguments  : none
; line 206: *
; line 207: * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
; line 208: *********************************************************************************************************
; line 209: */
; line 210: void OSTimeTickHook (void)

	OSTimeTickHook  PROC  FAR
	PUBLIC  OSTimeTickHook
; FUNCTION OSTimeTickHook (BEGIN  RMASK = @0x8000)
; line 211: {}
	RETS	
; FUNCTION OSTimeTickHook (END    RMASK = @0x8000)
	OSTimeTickHook  ENDP
; line 212: 
; line 213: /*
; line 214: *********************************************************************************************************
; line 215: *
; line 216: *Description :Those function is added by donghegang
; line 217: *
; line 218: *Notes       :There are not those function at  the  version before 200.
; line 219: *
; line 220: *********************************************************************************************************
; line 221: */
; line 222: 
; line 223: void OSInitHookBegin(void)

	OSInitHookBegin  PROC  FAR
	PUBLIC  OSInitHookBegin
; FUNCTION OSInitHookBegin (BEGIN  RMASK = @0x8000)
; line 224: {}
	RETS	
; FUNCTION OSInitHookBegin (END    RMASK = @0x8000)
	OSInitHookBegin  ENDP
; line 225: 
; line 226: void OSInitHookEnd(void)

	OSInitHookEnd  PROC  FAR
	PUBLIC  OSInitHookEnd
; FUNCTION OSInitHookEnd (BEGIN  RMASK = @0x8000)
; line 227: {}
	RETS	
; FUNCTION OSInitHookEnd (END    RMASK = @0x8000)
	OSInitHookEnd  ENDP
; line 228: 
; line 229: void OSTaskIdleHook(void)

	OSTaskIdleHook  PROC  FAR
	PUBLIC  OSTaskIdleHook
; FUNCTION OSTaskIdleHook (BEGIN  RMASK = @0x8000)
; line 230: {}
	RETS	
; FUNCTION OSTaskIdleHook (END    RMASK = @0x8000)
	OSTaskIdleHook  ENDP
; line 231: 
; line 232: void OSTCBInitHook(OS_TCB *ptcb)

	OSTCBInitHook  PROC  FAR
	PUBLIC  OSTCBInitHook
; FUNCTION OSTCBInitHook (BEGIN  RMASK = @0x8000)
;---- Variable 'ptcb' assigned to Register 'R8/R9' ----
; line 233: {
; line 234:  ptcb=ptcb;
; line 235: }
	RETS	
; FUNCTION OSTCBInitHook (END    RMASK = @0x8000)
	OSTCBInitHook  ENDP
; line 236: 
; line 237: 
; line 238: #endif
; line 239: 
; line 240: /*
; line 241: *********************************************************************************************************
; line 242: *                                        BUILD A TASK'S STACK AREA
; line 243: *
; line 244: * Description: This function is called by OSTaskStkInit to initialise the
; line 245: *              stack frame of the task being created.
; line 246: *
; line 247: * Arguments  : page          is a pointer to the current task user stack page.
; line 248: *
; line 249: *              offset        is a pointer to the current task user stack offset.
; line 250: *
; line 251: *              datapag       is a pointer to a user supplied data area page when the task first executes.
; line 252: *
; line 253: *              datapof       is a pointer to a user supplied data area offset when the task first executes.
; line 254: *
; line 255: *                                                TASK STACK AREA                              (High Memory)
; line 256: *                                             0
; line 257: *                                           -02  R[1 ..15] General Purpose registers of task
; line 258: *                                           -20  CP     Context pointer of task
; line 259: *                                           -22  DPP3   Data page pointer 3 of task
; line 260: *                                           -24  DPP2   Data page pointer 1 of task
; line 261: *                                           -26  DPP0   Data page pointer 0 of task
; line 262: *                                           -28  MDC    Multiply/Divide Control of task
; line 263: *                                           -2A  MDH    Multiply/Divide High register of task
; line 264: *                                           -2C  MDL    Multiply/Divide Low register of task  (Low Memory)
; line 265: *                                           -2E  PSW    OF the interrupting task to preserve the MULIP flag
; line 266: *
; line 267: * Returns    : None
; line 268: *********************************************************************************************************
; line 269: */
; line 270: void OSTaskBuildStk (INT16U page, INT16U offset, INT16U datapag, INT16U datapof)

	OSTaskBuildStk  PROC  FAR
	PUBLIC  OSTaskBuildStk
; FUNCTION OSTaskBuildStk (BEGIN  RMASK = @0x8000)
;---- Variable 'datapof' assigned to Register 'R11' ----
;---- Variable 'datapag' assigned to Register 'R10' ----
;---- Variable 'offset' assigned to Register 'R9' ----
;---- Variable 'page' assigned to Register 'R8' ----
; line 271: {
; line 272:     page=page;                              // The compiler assign page to R8
; line 273:     offset=offset;                          // The compiler assign offset to R9
; line 274:     datapag=datapag;                        // The compiler assign datapag to R10
; line 275:     datapof=datapof;                        // The compiler assign datapof to R11
; line 276: 
; line 277: #pragma asm
; line 278:                                             ; SAVE USED REGISTERS
	; SAVE USED REGISTERS
; line 279:     PUSH   R1
	PUSH   R1
; line 280:     PUSH   R2
	PUSH   R2
; line 281:     PUSH   R3
	PUSH   R3
; line 282:     PUSH   R4
	PUSH   R4
; line 283:     PUSH   R10
	PUSH   R10
; line 284:     PUSH   R11
	PUSH   R11
; line 285:     PUSH   R12
	PUSH   R12
; line 286: 
; line 287:                                             ; LOAD INITIAL TASK STACK.
	; LOAD INITIAL TASK STACK.
; line 288:     MOV    R4,R9                            ; Get pointer to Task Stack
	MOV    R4,R9                            ; Get pointer to Task Stack
; line 289: 
; line 290:     MOV    R2,R10                           ; Page pointer to passed parameter
	MOV    R2,R10                           ; Page pointer to passed parameter
; line 291:     MOV    R3,R11                           ; Offset pointer to passed parameter
	MOV    R3,R11                           ; Offset pointer to passed parameter
; line 292: 
; line 293:                                             ; ADJUST THE TASK USER OFFSET POINTER
	; ADJUST THE TASK USER OFFSET POINTER
; line 294:     EXTP   R8,#1
	EXTP   R8,#1
; line 295:     MOV    R1,[R4+#0x0A]                    ; Get initial user offset pointer
	MOV    R1,[R4+#0x0A]                    ; Get initial user offset pointer
; line 296:     SUB    R1,#0x2E                         ; adjust user offset pointer to save task registers
	SUB    R1,#0x2E                         ; adjust user offset pointer to save task registers
; line 297:     EXTP   R8,#1
	EXTP   R8,#1
; line 298:     MOV    [R4+#0x0A],R1                     ; Save true user offset pointer
	MOV    [R4+#0x0A],R1                     ; Save true user offset pointer
; line 299: 
; line 300:                                             ; INITIALISE REGISTER VALUES
	; INITIALISE REGISTER VALUES
; line 301:     MOV    R9 ,#0x1111                      ; R1 initialised to 1111
	MOV    R9 ,#0x1111                      ; R1 initialised to 1111
; line 302:     MOV    R10,#0x2222                      ; R2 initialised to 2222
	MOV    R10,#0x2222                      ; R2 initialised to 2222
; line 303:     MOV    R11,#0x3333                      ; R3 initialised to 3333
	MOV    R11,#0x3333                      ; R3 initialised to 3333
; line 304:     MOV    R12,#0x4444                      ; R4 initialised to 4444
	MOV    R12,#0x4444                      ; R4 initialised to 4444
; line 305:     EXTP   R8,#4
	EXTP   R8,#4
; line 306:     MOV    [-R4],R9
	MOV    [-R4],R9
; line 307:     MOV    [-R4],R10
	MOV    [-R4],R10
; line 308:     MOV    [-R4],R11
	MOV    [-R4],R11
; line 309:     MOV    [-R4],R12
	MOV    [-R4],R12
; line 310: 
; line 311:     MOV    R9, #0x5555                      ; R5 initialised to 5555
	MOV    R9, #0x5555                      ; R5 initialised to 5555
; line 312:     MOV    R10,#0x6666                      ; R6 initialised to 6666
	MOV    R10,#0x6666                      ; R6 initialised to 6666
; line 313:     MOV    R11,#0x7777                      ; R7 initialised to 7777
	MOV    R11,#0x7777                      ; R7 initialised to 7777
; line 314:     MOV    R12,R3                           ; R8 initialised to point @ POF of pdata
	MOV    R12,R3                           ; R8 initialised to point @ POF of pdata
; line 315:     EXTP   R8,#4
	EXTP   R8,#4
; line 316:     MOV    [-R4],R9
	MOV    [-R4],R9
; line 317:     MOV    [-R4],R10
	MOV    [-R4],R10
; line 318:     MOV    [-R4],R11
	MOV    [-R4],R11
; line 319:     MOV    [-R4],R12
	MOV    [-R4],R12
; line 320: 
; line 321:     MOV    R9 ,R2                           ; R9  initialised to point @ PAG of pdata
	MOV    R9 ,R2                           ; R9  initialised to point @ PAG of pdata
; line 322:     MOV    R10,#0xAAAA                      ; R10 initialised to AAAA
	MOV    R10,#0xAAAA                      ; R10 initialised to AAAA
; line 323:     MOV    R11,#0xBBBB                      ; R11 initialised to BBBB
	MOV    R11,#0xBBBB                      ; R11 initialised to BBBB
; line 324:     MOV    R12,#0xCCCC                      ; R12 initialised to CCCC
	MOV    R12,#0xCCCC                      ; R12 initialised to CCCC
; line 325:     EXTP   R8,#4
	EXTP   R8,#4
; line 326:     MOV    [-R4],R9
	MOV    [-R4],R9
; line 327:     MOV    [-R4],R10
	MOV    [-R4],R10
; line 328:     MOV    [-R4],R11
	MOV    [-R4],R11
; line 329:     MOV    [-R4],R12
	MOV    [-R4],R12
; line 330: 
; line 331:     MOV    R9 ,#0xDDDD                      ; R13 initialised to DDDD
	MOV    R9 ,#0xDDDD                      ; R13 initialised to DDDD
; line 332:     MOV    R10,#0xEEEE                      ; R14 initialised to EEEE
	MOV    R10,#0xEEEE                      ; R14 initialised to EEEE
; line 333:     MOV    R11,#0xFFFF                      ; R15 initialised to FFFF
	MOV    R11,#0xFFFF                      ; R15 initialised to FFFF
; line 334:     MOV    R12,CP                           ; Get the Context Pointer (CP)
	MOV    R12,CP                           ; Get the Context Pointer (CP)
; line 335:     EXTP   R8,#4
	EXTP   R8,#4
; line 336:     MOV    [-R4],R9
	MOV    [-R4],R9
; line 337:     MOV    [-R4],R10
	MOV    [-R4],R10
; line 338:     MOV    [-R4],R11
	MOV    [-R4],R11
; line 339:     MOV    [-R4],R12
	MOV    [-R4],R12
; line 340: 
; line 341:     MOV    R9 ,DPP3                         ; Get Data Page Pointer 3 (DPP3)
	MOV    R9 ,DPP3                         ; Get Data Page Pointer 3 (DPP3)
; line 342:     MOV    R10,DPP2                         ; Get Data Page Pointer 2 (DPP2)
	MOV    R10,DPP2                         ; Get Data Page Pointer 2 (DPP2)
; line 343:     MOV    R11,DPP0                         ; Get Data Page Pointer 0 (DPP0)
	MOV    R11,DPP0                         ; Get Data Page Pointer 0 (DPP0)
; line 344:     EXTP   R8,#3
	EXTP   R8,#3
; line 345:     MOV    [-R4],R9                         ; Put it on the user stack
	MOV    [-R4],R9                         ; Put it on the user stack
; line 346:     MOV    [-R4],R10                        ; Put it on the user stack
	MOV    [-R4],R10                        ; Put it on the user stack
; line 347:     MOV    [-R4],R11                        ; Put it on the user stack
	MOV    [-R4],R11                        ; Put it on the user stack
; line 348: 
; line 349:     MOV    R9,#0x00                         ; R10 initialised to 0
	MOV    R9,#0x00                         ; R10 initialised to 0
; line 350:     EXTP   R8,#4
	EXTP   R8,#4
; line 351:     MOV    [-R4],R9                         ; Set Multiply/Divide Control (MDC)
	MOV    [-R4],R9                         ; Set Multiply/Divide Control (MDC)
; line 352:     MOV    [-R4],R9                         ; Set Multiply/Divide High (MDH)
	MOV    [-R4],R9                         ; Set Multiply/Divide High (MDH)
; line 353:     MOV    [-R4],R9                         ; Set Multiply/Divide Low (MDL)
	MOV    [-R4],R9                         ; Set Multiply/Divide Low (MDL)
; line 354:     MOV    [-R4],R9                         ; Set Temporary PSW (Cleared)
	MOV    [-R4],R9                         ; Set Temporary PSW (Cleared)
; line 355: 
; line 356:                                             ; RESTORE USED REGISTERS
	; RESTORE USED REGISTERS
; line 357:     POP    R12
	POP    R12
; line 358:     POP    R11
	POP    R11
; line 359:     POP    R10
	POP    R10
; line 360:     POP    R4
	POP    R4
; line 361:     POP    R3
	POP    R3
; line 362:     POP    R2
	POP    R2
; line 363:     POP    R1
	POP    R1
; line 364:  #pragma endasm
; line 365: }
	RETS	
; FUNCTION OSTaskBuildStk (END    RMASK = @0x8000)
	OSTaskBuildStk  ENDP
; line 366: 
; line 367: /*$PAGE*/
; line 368: /*
; line 369: *********************************************************************************************************
; line 370: *                                       INITIALIZE SYSTEM TICK
; line 371: *
; line 372: * Description: This function is called to initialize and configure the system interrupt tick.
; line 373: *
; line 374: * Arguments  : none
; line 375: *********************************************************************************************************
; line 376: */
; line 377: void  OSTickISRInit (void)

	OSTickISRInit  PROC  FAR
	PUBLIC  OSTickISRInit
; FUNCTION OSTickISRInit (BEGIN  RMASK = @0x8000)
; line 378: {
; line 379:   
; line 380:  
; line 381: 
; line 382:   ///  -----------------------------------------------------------------------
; line 383:   ///  Configuration of Timer Block Prescaler 1:
; line 384:   ///  -----------------------------------------------------------------------
; line 385:   ///  - prescaler for timer block 1 is 8
; line 386: 
; line 387: 
; line 388:   ///  -----------------------------------------------------------------------
; line 389:   ///  Configuration of the GPT1 Core Timer 3:
; line 390:   ///  ----------------------------------------

⌨️ 快捷键说明

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