mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-09-01 11:53:53 -04:00
Add FreeRTOS-Plus directory.
This commit is contained in:
parent
7bd5f21ad5
commit
f508a5f653
6798 changed files with 134949 additions and 19 deletions
|
@ -0,0 +1,94 @@
|
|||
/*------------------------------------------------------------------------
|
||||
|
|
||||
FILE : start.asm |
|
||||
DATE : Wed, Aug 25, 2010 |
|
||||
DESCRIPTION : Reset Program |
|
||||
CPU TYPE : Other |
|
||||
|
|
||||
This file is generated by KPIT GNU Project Generator (Ver.4.5). |
|
||||
|
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
|
||||
/*Start.asm*/
|
||||
|
||||
.list
|
||||
.section .text
|
||||
.global _start /*global Start routine */
|
||||
|
||||
#ifdef CPPAPP
|
||||
___dso_handle:
|
||||
.global ___dso_handle
|
||||
#endif
|
||||
|
||||
.extern _hw_initialise /*external Sub-routine to initialise Hardware*/
|
||||
.extern _data
|
||||
.extern _mdata
|
||||
.extern _ebss
|
||||
.extern _bss
|
||||
.extern _edata
|
||||
.extern _main
|
||||
.extern _ustack
|
||||
.extern _istack
|
||||
.extern _rvectors
|
||||
#if DEBUG
|
||||
.extern _exit
|
||||
#endif
|
||||
|
||||
|
||||
_start:
|
||||
/* initialise user stack pointer */
|
||||
mvtc #_ustack,USP
|
||||
|
||||
/* initialise interrupt stack pointer */
|
||||
mvtc #_istack,ISP
|
||||
|
||||
/* setup intb */
|
||||
mvtc #_rvectors_start, intb /* INTERRUPT VECTOR ADDRESS definition */
|
||||
|
||||
/* setup FPSW */
|
||||
mvtc #100h, fpsw
|
||||
|
||||
/* load data section from ROM to RAM */
|
||||
|
||||
mov #_mdata,r2 /* src ROM address of data section in R2 */
|
||||
mov #_data,r1 /* dest start RAM address of data section in R1 */
|
||||
mov #_edata,r3 /* end RAM address of data section in R3 */
|
||||
sub r1,r3 /* size of data section in R3 (R3=R3-R1) */
|
||||
smovf /* block copy R3 bytes from R2 to R1 */
|
||||
|
||||
/* bss initialisation : zero out bss */
|
||||
|
||||
mov #00h,r2 /* load R2 reg with zero */
|
||||
mov #_ebss, r3 /* store the end address of bss in R3 */
|
||||
mov #_bss, r1 /* store the start address of bss in R1 */
|
||||
sub r1,r3 /* size of bss section in R3 (R3=R3-R1) */
|
||||
sstr.b
|
||||
|
||||
/* call the hardware initialiser */
|
||||
bsr.a _hw_initialise
|
||||
nop
|
||||
|
||||
/* setup PSW */
|
||||
// mvtc #10000h, psw /* Set Ubit & Ibit for PSW */
|
||||
|
||||
/* change PSW PM to user-mode */
|
||||
// MVFC PSW,R1
|
||||
// OR #00100000h,R1
|
||||
// PUSH.L R1
|
||||
// MVFC PC,R1
|
||||
// ADD #10,R1
|
||||
// PUSH.L R1
|
||||
// RTE
|
||||
// NOP
|
||||
// NOP
|
||||
|
||||
/* start user program */
|
||||
bsr.a _main
|
||||
|
||||
/* call to exit*/
|
||||
_exit:
|
||||
bsr.a _exit
|
||||
|
||||
.end
|
Loading…
Add table
Add a link
Reference in a new issue