:

STC32G12K1284K EDATA,ǳʹRTOS,ʵĿ, ʹRTOSԸķCPUԴ, кܴ.

UCOSII - STC32G12K128öʱ4жģжPendSvл,ռһжϺ, ͨ׵лʹжϺ.(ĵos_cpu.h)


ʹע:

1.Ŀѡȫ "Generate reentrant functions", ѡһҪѡ

2.ջС, һҪڵ128ֽ. ûпMSP(жרöջ), ÿ࿪һжȼ,ÿջ󶼽. 

3.ںڶֲʱҪǿָ洢,硰xdataֻedadaԶ;ֲ루CֲҪʹxdata, OSԴڴһƬڴ棬ͷ

4.OSǰܿEA, ״νʱOSԶEA. ûʹٽʱرEA, ɳڹEA, OSչ.

5.ƼOSTaskCreateExt(), Թ۲ջʹ, CPUʹռ, Ŀǳ.

6.V1.05,֧ٽл,Ҫע:ٽл,жǹص. (ʱӹҲ.׷,Ǹ߶Ҫ.˲Ƽٽл,˵ҲҪô ).


Ҫ:
PendSvжϺ
1. ĵ"main.c"޸ĳʼprvPortPendSvInit()Ĵ
2. ĵ"os_cpu.h"޸PendSvжΪغ궨


ʹж
1. ĵ"os_isr_251.h"жϺŶӦĺ궨, : #define OS_ISR4_USE_MSP_EN 1u	//UART1
2. ĵ"app_isr_hooks.c"джϴ  :
void UART1_ISR_Handler_Hook (void)    
{
    //жϴ
}



251ںʵMSP(жרöջ) ר
:
STC32G12K128 ں4K EDATA, ֲUCOSII, ȥ1500ֽҹ̶, ʵʣ2500ֽڿ.
ûMSP(жרöջ)ǰ, жϷĸ, ĸĶջ. ʵжջܴ. ˵: жڵú, ǼĴȫջ, Լ38ֽ, 4ȼǶ3 38*3=114ֽ.
ʹMSP(жרöջ), ÿɽʡ 114ֽ, 8+2ϵͳ(, ͳ),  ʡ114*10=1140ֽ,  ⶼ2500һ, ˵ܷҲ.

ʵԭ:
״νжʱ,ǰPSP,򱣴PSPָ,лMSP,˳жʱ෴.
Ƕжʱ,ʹMSP,лջ.

ʹ:
ÿжϿԵǷʹMSP, ͷļ"os_isr_251.h"ú. ˶Ӧĺ, "os_isr_251.c"дӦжϻƤ
ƤѰ"ջл" "OSIntNesting++" "OSIntExit()", ʣµ,ûֻҪڹӺԼжϴ뼴. ʵ.

ûпMSPܵж, ȡõķʽ, жϷʱ, ܵǰMSPPSP, õǰʹõĶջ.


ʹMSPʱ, ùؼinterruptжϺ, MSPǿѡ.


Ӧþ: (ʱ3ж)

1. жʹMSP: ʹܺOS_ISR19_USE_MSP_EN. жϴڹӺ, кõжϴ.
   ˵; ʹܺ"OS_ISR19_USE_MSP_EN"Ժ, Ҫùؼ interrupt жϺTimer3_Handler(), "os_isr_251.c".

#define OS_ISR19_USE_MSP_EN      1u   /*ʹжϺ19, ʹMSP*/

void Timer3_ISR_Handler_Hook (void)	// жϺ19		
{
     P27 = ~P27;	//жϴ
     abc();			//жϴ
}




2. жϷʽ: ʹܺOS_ISR19_USE_MSP_EN. жϴûʹúʱ(ԱຯOS). ñܼټĴջ, жûжĶ,Чߵ.

#define OS_ISR19_USE_MSP_EN      0u   /*ʹжϺ19, ʹMSP*/

void Timer3_ISR_Handler() interrupt 19
{
	//OSʱԲ OSIntNesting++;     
    P27 = ~P27;	//жϴ
	//ͬʱҲҪ OSIntExit(); 
}

ʹüʾ: жϴûеκOS,ͬʱȡʹ䣺OSIntNesting++; OSIntExit(); жƵرߵ,Щ뼴ɴϵͳܸ.

