最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

一個(gè)面向MCU的小型前后臺(tái)系統(tǒng)

2023-09-02 14:22 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿

JxOS簡介

JxOS面向MCU的小型前后臺(tái)系統(tǒng),提供消息、事件等服務(wù),以及軟件定時(shí)器,低功耗管理,按鍵,led等常用功能模塊。

gitee倉庫地址為(復(fù)制到瀏覽器打開):

在此基礎(chǔ)上實(shí)現(xiàn)了基于433的簡單無線網(wǎng)絡(luò)功能。

此項(xiàng)目的設(shè)計(jì)思想是:功能模塊與硬件高度解耦,提高代碼模塊的可復(fù)用性;不使用復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和語法以提高不同硬件平臺(tái)和編譯器之間的兼容性,實(shí)現(xiàn)工程在不同MCU之間的快速移植;提供實(shí)用穩(wěn)定常用的功能模塊,實(shí)現(xiàn)項(xiàng)目的快速開發(fā);定義標(biāo)準(zhǔn)應(yīng)用開發(fā)框架,減輕應(yīng)用開發(fā)的工作量和難度。

已使用此系統(tǒng)用于開發(fā)項(xiàng)目的硬件平臺(tái)有:N76E003、STM8S103K、PC、KF8TS2716

Software Architecture

  1. kernel ? ? ? ?提供系統(tǒng)內(nèi)核功能:任務(wù)、事件、消息、公告板、郵箱、管道、注冊、內(nèi)存分配……

  2. driver ? ? ? ?使用 靜態(tài) 初始化的功能代碼模塊,使用config.h文件進(jìn)行配置;此目錄下的代碼大部分與硬件相關(guān),如:傳感器、按鍵掃描、屏幕…… (driver 與 lib 有時(shí)并沒有清晰的界限,如driver:led_blink 就有可能抽象成 lib:sw_pwm)

  3. lib ? ? ? ? ? 使用 動(dòng)態(tài) 初始化的功能代碼模塊,使用初始化函數(shù)進(jìn)行配置;此目錄下的模代碼大部分與硬件無關(guān),如:環(huán)形緩沖區(qū)、crc16、棧、軟件定時(shí)器……

  4. sys_service ? 基于任務(wù)實(shí)現(xiàn)的系統(tǒng)服務(wù),如:低功耗管理、軟件定時(shí)器、打印輸出……(只有對外接口,不發(fā)出對外消息)

  5. std_app ? ? ? 基于任務(wù)實(shí)現(xiàn)的常用標(biāo)準(zhǔn)應(yīng)用,如獨(dú)立按鍵掃描、按鍵多次點(diǎn)擊、指示燈閃爍…… (此類模塊和user app屬于同一級別,只不過已經(jīng)標(biāo)準(zhǔn)化;此類模塊發(fā)出對外消息,也有對外接口,用于兼容不能支持消息功能的硬件平臺(tái))

  6. platform ? ? ? ? ? 基于 jxos 實(shí)現(xiàn)的,使用不同平臺(tái)硬件的具體項(xiàng)目

  7. 在某些編譯器環(huán)境下可能出現(xiàn)以某些限制(不支持函數(shù)指針,不支持中斷處理函數(shù)中調(diào)用其他函數(shù),不支持函數(shù)指針帶參數(shù),不支持結(jié)構(gòu)體),因此 std_app 提供的消息可能無法使用,作為補(bǔ)充std_app 也會(huì)同時(shí)提供全局變量來傳出信息和函數(shù)接口來傳入信息

  8. 為提高代碼的兼容性;盡量不要使用函數(shù)指針

  9. 為提高代碼的可復(fù)用性,std_app 中的功能盡量在 driver 和 lib 中實(shí)現(xiàn),std_app 中的代碼僅作為提供系統(tǒng)tick和統(tǒng)一對外接口的功能

  10. 模塊和 std_app 可以提供多個(gè)不同實(shí)現(xiàn)方法的文件,但保持對外接口的統(tǒng)一

  11. 對外提供兩套接口方案 jxos_public.h 提供高級接口(消息 事件等),jxos_public_lite.h 提供低級接口(全局變量, 函數(shù))

【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個(gè)人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實(shí)戰(zhàn)項(xiàng)目及代碼)? ??



Instructions

  1. 導(dǎo)入 jxos_public.h 即可調(diào)用系統(tǒng)所有的對外接口

  2. 每個(gè)項(xiàng)目通過 jxos_init_config.c 和 jxos_config.h 對系統(tǒng)進(jìn)行配置,即每個(gè)項(xiàng)目有獨(dú)立配置文件

  3. 在 jxos_init_config.c 實(shí)現(xiàn)需要硬件支持的系統(tǒng)模塊硬件初始化,以及用戶任務(wù)的初始化順序

  4. 在 jxos_config.h 配置系統(tǒng)模塊的參數(shù)和使能

  5. event 用于任務(wù)內(nèi)部的信號(hào)同步,主要是將中斷信號(hào)傳遞到任務(wù)

  6. msg 用于任務(wù)之間的消息傳遞,使用 jxos_msg_get_handle 可通過消息名(字符串)獲取消息句柄



原文作者:【一起學(xué)嵌入式





一個(gè)面向MCU的小型前后臺(tái)系統(tǒng)的評論 (共 條)

分享到微博請遵守國家法律
巫山县| 淮滨县| 娄烦县| 吴忠市| 保康县| 长宁区| 金门县| 曲沃县| 临猗县| 合阳县| 平安县| 广昌县| 台南县| 崇礼县| 达孜县| 济阳县| 定兴县| 县级市| 麻阳| 玉环县| 甘泉县| 新密市| 永昌县| 苍山县| 高尔夫| 灵武市| 长春市| 台前县| 奉节县| 临夏市| 城口县| 望城县| 保德县| 临海市| 汝阳县| 萨迦县| 信宜市| 南靖县| 平和县| 钟祥市| 鄂州市|