001:
概述:裸机程序:单一的顺序执行代码结构----------缺点:实时性不能保证;CPU利用率不高
RTOS:通用任务管理框架,用于控制任务的运行和任务
1.07:内核编程实践
异常中断触发
main.c
typedef struct _BlockType_t
{
unsigned long *stackPtr;
}BlockType_t;
BlockType_t *blockPtr;
#define NVIC_INT_CTRL 0xE000ED04
#define NVIC_PENDSVSET 0x10000000
#define NVIC_SYSPRI2 0xE000ED22
#define NVIC_PENDSV_PRI 0x000000FF
#define MEM32(addr) *(volatile unsigned long *)(addr)
#define MEM8(addr) *(volatile unsigned char *)(addr)
void triggerPendSVC(void)
{
MEM8(NVIC_SYSPRI2) = NVIC_PENDSV_PRI; //
MEM32(NVIC_INT_CTRL) = NVIC_PENDSVSET; //触发
}
void delay(int count)
{
while(--count > 0);
}
int flag;
unsigned long stackBuffer[1024];
BlockType_t block;
int main()
{
block.stackPtr