扫描二维码
随时随地手机看文章
https://gitee.com/kerndev/kliteKLite的作者是jiangxiaogang。我们之前分享的?实用 | 手头上无LCD却又急着开发UI?LCD模拟器了解一下中介绍的模拟器也是这位大佬的作品。
void cpu_sys_init(void);
这个函数被kernel_init调用,为用户提供一个接口,用于实现那些必须在系统初始化之前的准备工作,例如初始化CPU的时钟,设置FLASH等。
void cpu_sys_idle(uint32_t time);
这个函数被kernel_idle调用,为用户提供一个接口,用于实现系统休眠.例如调用WFI指令,或者什么都不做。
void SysTick_Handler(void);
这个函数是平台相关的滴答时钟中断函数,需要在滴答时钟中断中调用kernel_tick(n),n表示一次中断的毫秒数。
3、在main函数里面添加初始化代码
main函数的推荐写法如下:
//只需要包含这一个头文件即可
#include "kernel.h"
//用于初始化应用程序的线程
void init(void *arg)
{
}
//空闲线程,只需调用kernel_idle即可
void idle(void *arg)
{
kernel_idle();
}
//C语言程序入口
void main(void)
{
static uint8_t heap[HEAP_SIZE];
kernel_init((uint32_t)heap, HEAP_SIZE);
thread_create(init, 0, 0);
thread_create(idle, 0, 0);
kernel_start();
}
说明:
-
kernel_init 用于初始化内核;
-
thread_create 创建主线程init和idle;
-
kernel_start 用于启动内核;
-
init是一个线程函数,在该函数中实现你的其它初始化代码.
-
更多函数参数说明请参考API文档。
往期推荐:
嵌入式设计模式:有限状态自动机的C语言实现
不修车了!转行做单片机开发
在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总。
点击阅读原文,查看更多分享