当前位置:首页 > 公众号精选 > 嵌入式大杂烩
[导读]关注「Linux大陆」,一起进步!大家好,我是ZhengN。现在,嵌入式操作系统已经越来越多了,如大家都熟知的uCOS、FreeRTOS、RT-Thread等。这些操作系统都各有各的特点,具体可阅读:?盘点一些嵌入式实时系统,你用过哪些?。本篇笔记再来给大家介绍一个简洁易用的嵌入...



大家好,我是ZhengN。


现在,嵌入式操作系统已经越来越多了,如大家都熟知的uCOS、FreeRTOS、RT-Thread等。这些操作系统都各有各的特点,具体可阅读:?盘点一些嵌入式实时系统,你用过哪些?。本篇笔记再来给大家介绍一个简洁易用的嵌入式操作系统内核 —— KLite。


KLite源码

源码链接:


https://gitee.com/kerndev/klite


KLite的作者是jiangxiaogang。我们之前分享的?实用 | 手头上无LCD却又急着开发UI?LCD模拟器了解一下中介绍的模拟器也是这位大佬的作品。


KLite简介

KLite以MIT协议开放源代码。它是一款入门级的小型抢占式操作系统内核,以简洁易用为设计目标,旨在降低学习嵌入式操作系统编程和入门的难度。


简洁的API风格,简洁的调用方式,简单的移植方法,可能是目前最简单易用的嵌入式操作系统内核。


  • 支持优先级抢占
  • 支持相同优先级的线程
  • 支持线程同步互斥
  • 支持动态内存管理
  • 支持多编译器GCC, IAR, MDK

KLite移植

KLite目前已经为ARM Cortex-M0/M3/M4做好了底层适配,如果你的CPU平台是基于以上平台的,如STM32,GD32,NRF51,NRF52,Freescale K40等系列单片机,那么可以直接使用预编译的库文件进行开发。


只需要修改template.c里面几个简单的函数即可开始编程。否则可能需要自行移植CPU底层的汇编代码。


KLite使用

1、KLite编译

在build目录下面有预设的工程文件,选择你要使用的编译器和目标CPU平台,  编译完成后,会生成kernel.lib文件,将kernel.lib,kernel.h,emplate.c复制到你的项目源码中,使用lib文件可以减少重复编译时间,当然你也可以选择把全部源码添加到你的工程中。


2、修改template.c

根据目标CPU的编程手册,实现template.c里面的2个空函数。


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 ,可查看文章汇总。



点击阅读原文,查看更多分享



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

U-Boot,全称Universal Boot Loader,是遵循GPL条款的从FADSROM、8xxROM、PPCBOOT逐步发展演化而来的 开放源码项目。U-boot,是一个主要用于嵌入式系统的引导加载程序,可以支...

关键字: U-Boot GPL 嵌入式操作系统

北京2022年10月11日 /美通社/ -- 在四川大凉山深处,有一只"凉山黑鹰"少年篮球队:队员平均年龄12岁,平均身高1米3,球队刚成立时,连个像样的球场都没有。然而,凭着一腔热情和惊人天赋,这只...

关键字: 网络 BSP 内核 腾讯

ARM的全称为Advanced RISC Machines,直译为高级精简指令集处理器;RISC即为精简指令集,那么对应的就存在CISC,其为复杂指令集。

关键字: ARM 内核 SoC

上海2022年9月8日 /美通社/ -- 中国家居人齐聚沪上,点亮行业高质量发展之光。9月6日,家居行业盛事——家居产业高质量发展大会暨"月星之夜"在上海月星国际家居生活MALL举行,数百位...

关键字: BSP HID 内核 大赛

上海2022年8月25日 /美通社/ -- 新茶饮下半场,从价格战、产品战、渠道战上升至品牌内核的竞争,打动年轻消费者更需要在审美和品牌价值上做文章。新一代年轻人的...

关键字: 美团 IP MIDDOT 内核

一直以来,CPU中央处理器都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来CPU的相关介绍,详细内容请看下文。

关键字: CPU 中央处理器 内核

南京2022年8月8日 /美通社/ -- 2022年8月5日,BSiEE本涩于"2022联商网大会"荣获"2021年度高成长连锁品牌"奖项,为品牌发展再赋成长印记。正值契...

关键字: 美的 IP 数字化 内核

上海2022年8月5日 /美通社/ -- 日本院线级精准护肤品牌TAKAMI强势布局中国,品牌天猫官方旗舰店于7月1日重磅亮相,以便捷的线上购买渠道为中国消费者提供更丰富、沉浸的购物体验,持续传递品牌的美肌哲学。这是TA...

关键字: OS OTA 内核 大数据

广州2022年7月27日 /美通社/ -- 7月24日晚11:08,功能性护肤品牌溪木源官宣朴树为品牌代言人。品牌卡点朴树生日11·08官宣,心意满满。以官宣为契机,溪木源也迎来品牌升级,以全新品牌理念、全...

关键字: HEART 内核 创始人 大众

(全球TMT2022年6月9日讯)作为全球第二的服务器厂商,浪潮信息宣布加入Arm SystemReady™ 计划,并通过了Arm®最高级SystemReady SR认证,为行业树立新标杆。 浪潮...

关键字: ARM SYSTEM AD 内核

嵌入式大杂烩

461 篇文章

关注

发布文章

编辑精选

技术子站

关闭