色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個嵌入式通用軟件包:ToolKit

strongerHuang ? 來源:github ? 2023-04-17 09:32 ? 次閱讀

這里給大家分享一個嵌入式通用軟件包:ToolKit.

1、介紹

ToolKit是一套應(yīng)用于嵌入式系統(tǒng)的通用工具包,可靈活應(yīng)用到有無RTOS的程序中,采用C語言面向?qū)ο蟮乃悸穼崿F(xiàn)各個功能,盡可能最大化的復(fù)用代碼,目前為止工具包包含:循環(huán)隊列、軟件定時器、事件集。

  • ?Queue循環(huán)隊列

  1. 1. 支持動態(tài)、靜態(tài)方式進(jìn)行隊列的創(chuàng)建與刪除。

  2. 2. 可獨立配置緩沖區(qū)大小。

  3. 3.支持?jǐn)?shù)據(jù)最新保持功能,當(dāng)配置此模式并且緩沖區(qū)已滿,若有新的數(shù)據(jù)存入,將會移除最早數(shù)據(jù),并保持緩沖區(qū)已滿。

  • ?Timer軟件定時器

  1. 1. 支持動態(tài)、靜態(tài)方式進(jìn)行定時器的創(chuàng)建與刪除。

  2. 2.支持循環(huán)、單次模式。

  3. 3. 可配置有無超時回調(diào)函數(shù)。

  4. 4.可配置定時器工作在周期間隔模式。

  5. 5. 使用雙向鏈表,超時統(tǒng)一管理,不會因為增加定時器而增加超時判斷代碼。

  • ?Event事件集

  1. 1. 支持動態(tài)、靜態(tài)方式進(jìn)行事件集的創(chuàng)建與刪除。

  2. 2.每個事件最大支持32個標(biāo)志位。

  3. 3.事件的觸發(fā)可配置為“標(biāo)志與”“標(biāo)志或”

2 、文件目錄

toolkit
├──include//包含文件目錄
|├──toolkit.h//toolkit頭文件
|└──toolkit_cfg.h//toolkit配置文件
├──src//toolkit源碼目錄
|├──tk_queue.c//循環(huán)隊列源碼
|├──tk_timer.c//軟件定時器源碼
|└──tk_event.c//事件集源碼
├──samples//例子
|├──tk_queue_samples.c//循環(huán)隊列使用例程源碼
|├──tk_timer_samples.c//軟件定時器使用例程源碼
|└──tk_event_samples.c//事件集使用例程源碼
└──README.md//說明文檔

3 、函數(shù)定義

3.1 配置文件


  • ?ToolKit配置項

    宏定義 描述
    TOOLKIT_USING_ASSERT ToolKit使用斷言功能
    TOOLKIT_USING_QUEUE ToolKit使用循環(huán)隊列功能
    TOOLKIT_USING_TIMER ToolKit使用軟件定時器功能
    TOOLKIT_USING_EVENT ToolKit使用事件集功能
  • ?Queue 循環(huán)隊列配置項

    宏定義 描述
    TK_QUEUE_USING_CREATE Queue 循環(huán)隊列使用動態(tài)創(chuàng)建和刪除
  • ?Timer 軟件定時器配置項

    宏定義 描述
    TK_TIMER_USING_CREATE Timer 軟件定時器使用動態(tài)創(chuàng)建和刪除
    TK_TIMER_USING_INTERVAL Timer 軟件定時器使用間隔模式
    TK_TIMER_USING_TIMEOUT_CALLBACK Timer 軟件定時器使用超時回調(diào)函數(shù)
  • ?Event 事件集配置項

    宏定義 描述
    TK_EVENT_USING_CREATE Event 事件集使用動態(tài)創(chuàng)建和刪除

說明:當(dāng)配置TOOLKIT_USING_ASSERT后,所有功能都將會啟動參數(shù)檢查。

3.2 Queue 循環(huán)隊列API函數(shù)


以下為詳細(xì)API說明及簡要示例程序,綜合demo可查看tk_queue_samples.c示例。

3.2.1 動態(tài)創(chuàng)建隊列

注意:當(dāng)配置TOOLKIT_USING_QUEUE后,才能使用此函數(shù)。此函數(shù)需要用到malloc

structtk_queue*tk_queue_create(uint16_tqueue_size,uint16_tmax_queues,boolkeep_fresh);
參數(shù) 描述
queue_size 緩存區(qū)大小(單位字節(jié))
max_queues 最大隊列個數(shù)
keep_fresh 是否為保持最新模式,true:保持最新;false:默認(rèn)(存滿不能再存)
返回值 創(chuàng)建的隊列對象(NULL為創(chuàng)建失敗)

隊列創(chuàng)建示例:

intmain(intargc,char*argv[])
{
/*動態(tài)方式創(chuàng)建一個循環(huán)隊"queue",緩沖區(qū)大小50字節(jié),不保持最新*/
structtk_queue*queue=tk_queue_create(50,1,false);
if(queue==NULL){
printf("隊列創(chuàng)建失敗!
");
}
/*...*/
/*Youcanaddyourcodeunderhere.*/
return0;
}

3.2.2動態(tài)刪除隊列

注意:當(dāng)配置TOOLKIT_USING_QUEUE后,才能使用此函數(shù)。此函數(shù)需要用到free。必須為動態(tài)方式創(chuàng)建的隊列對象。

booltk_queue_delete(structtk_queue*queue);
參數(shù) 描述
queue 要刪除的隊列對象
返回值 true:刪除成功;false:刪除失敗

3.2.3靜態(tài)初始化隊列

booltk_queue_init(structtk_queue*queue,void*queuepool,uint16_tpool_size,uint16_tqueue_size,boolkeep_fresh);
參數(shù) 描述
queue 要初始化的隊列對象
*queuepool 隊列緩存區(qū)
pool_size 緩存區(qū)大小(單位字節(jié))
queue_size 隊列元素大小(單位字節(jié))
keep_fresh 是否為保持最新模式,true:保持最新;false:默認(rèn)(存滿不能再存)
返回值 true:初始化成功;false:初始化失敗

隊列創(chuàng)建示例:

intmain(intargc,char*argv[])
{
/*定義一個循環(huán)隊列*/
structtk_queuequeue;
/*定義循環(huán)隊列緩沖區(qū)*/
uint8_tqueue_pool[100];
/*靜態(tài)方式創(chuàng)建一個循環(huán)隊列"queue",緩存區(qū)為queue_pool,大小為queue_pool的大小,模式為保持最新*/
if(tk_queue_init(&queue,queue_pool,sizeof(queue_pool),
sizeof(queue_pool[0]),true)==false){
printf("隊列創(chuàng)建失敗!
");
}
/*...*/
/*Youcanaddyourcodeunderhere.*/
}

3.2.4 靜態(tài)脫離隊列

注意: 會使緩存區(qū)脫離與隊列的關(guān)聯(lián)。必須為靜態(tài)方式創(chuàng)建的隊列對象。

booltk_queue_detach(structtk_queue*queue);
參數(shù) 描述
queue 要脫離的隊列對象
返回值 true:脫離成功;false:脫離失敗

3.2.5 清空隊列

booltk_queue_clean(structtk_queue*queue);
參數(shù) 描述
queue 要清空的隊列對象
返回值 true:清除成功;false:清除失敗

3.2.6 判斷隊列是否為空

booltk_queue_empty(structtk_queue*queue);
參數(shù) 描述
queue 要查詢的隊列對象
返回值 true:空;false:不為空

3.2.7 判斷隊列是否已滿

booltk_queue_full(structtk_queue*queue);
參數(shù) 描述
queue 要查詢的隊列對象
返回值 true:滿;false:不為滿

3.2.8 從隊列中讀取一個元素(不從隊列中刪除)

booltk_queue_peep(structtk_queue*queue,void*pval);
參數(shù) 描述
queue 隊列對象
*pval 讀取值地址
返回值 true:讀取成功;false:讀取失敗

3.2.9 移除一個元素

booltk_queue_remove(structtk_queue*queue);
參數(shù) 描述
queue 要移除元素的對象
返回值 true:移除成功;false:移除失敗

3.2.10 向隊列壓入(入隊)1個元素數(shù)據(jù)

booltk_queue_push(structtk_queue*queue,void*val);
參數(shù) 描述
queue 要壓入的隊列對象
*val 壓入值
返回值 true:成功;false:失敗

3.2.11 從隊列彈出(出隊)1個元素數(shù)據(jù)

booltk_queue_pop(structtk_queue*queue,void*pval);
參數(shù) 描述
queue 要彈出的隊列對象
*pval 彈出值
返回值 true:成功;false:失敗

3.2.12 查詢隊列當(dāng)前數(shù)據(jù)長度

uint16_ttk_queue_curr_len(structtk_queue*queue);
參數(shù) 描述
queue 要查詢的隊列對象
返回值 隊列數(shù)據(jù)當(dāng)前長度

3.2.13 向隊列壓入(入隊)多個元素數(shù)據(jù)

uint16_ttk_queue_push_multi(structtk_queue*queue,void*pval,uint16_tlen);
參數(shù) 描述
queue 要壓入的隊列對象
*pval 壓入數(shù)據(jù)首地址
len 壓入元素個數(shù)
返回值 實際壓入個數(shù)

3.2.14 從隊列彈出(出隊)多個元素數(shù)據(jù)

uint16_ttk_queue_pop_multi(structtk_queue*queue,void*pval,uint16_tlen);
參數(shù) 描述
queue 要彈出的隊列對象
*pval 存放彈出數(shù)據(jù)的首地址
len 希望彈出的數(shù)據(jù)個數(shù)
返回值 實際彈出個數(shù)

3.3 Timer 軟件定時器API函數(shù)


以下為詳細(xì)API說明及簡要示例程序,綜合demo可查看tk_timer_samples.c示例。

3.3.1 軟件定時器功能初始化

注意:此函數(shù)在使用定時器功能最初調(diào)用,目的是創(chuàng)建定時器列表頭結(jié)點,和配置tick獲取回調(diào)函數(shù)。

booltk_timer_func_init(uint32_t(*get_tick_func)(void));
參數(shù) 描述
get_tick_func 獲取系統(tǒng)tick回調(diào)函數(shù)
返回值 true:初始化成功;false:初始化失敗

3.3.2 動態(tài)創(chuàng)建定時器

注意:當(dāng)配置TOOLKIT_USING_TIMER后,才能使用此函數(shù)。此函數(shù)需要用到malloc。

structtk_timer*tk_timer_create(void(*timeout_callback)(structtk_timer*timer));
參數(shù) 描述
timeout_callback 定時器超時回調(diào)函數(shù),不使用可配置為NULL
返回值 創(chuàng)建的定時器對象(NULL為創(chuàng)建失敗)

定時器創(chuàng)建示例:

/*定義獲取系統(tǒng)tick回調(diào)函數(shù)*/
uint32_tget_sys_tick(void)
{
returntick;
}

/*定時器超時回調(diào)函數(shù)*/
voidtimer_timeout_callback(structtk_timer*timer)
{
printf("timeout_callback:timertimeout:%ld
",get_sys_tick());
}

intmain(intargc,char*argv[])
{
/*初始化軟件定時器功能,并配置tick獲取回調(diào)函數(shù)*/
tk_timer_func_init(get_sys_tick);

/*定義定時器指針*/
tk_timer_ttimer=NULL;
/*動態(tài)方式創(chuàng)建timer,并配置定時器超時回調(diào)函數(shù)*/
timer=tk_timer_create((tk_timer_timeout_callback*)timer_timeout_callback);
if(timer==NULL)
{
printf("定時器創(chuàng)建失敗!
");
return0;
}
/*...*/
/*Youcanaddyourcodeunderhere.*/
return0;
}

3.3.3 動態(tài)刪除定時器

當(dāng)配置TOOLKIT_USING_TIMER后,才能使用此函數(shù)。此函數(shù)需要用到free。必須為動態(tài)方式創(chuàng)建的定時器對象。

booltk_timer_delete(structtk_timer*timer);
參數(shù) 描述
timer 要刪除的定時器對象
返回值 true:刪除成功;false:刪除失敗

3.3.4 靜態(tài)初始化定時器

booltk_timer_init(structtk_timer*timer,void(*timeout_callback)(structtk_timer*timer));
參數(shù) 描述
timer 要初始化的定時器對象
timeout_callback 定時器超時回調(diào)函數(shù),不使用可配置為NULL
返回值 true:創(chuàng)建成功;false:創(chuàng)建失敗

隊列創(chuàng)建示例:

/*定義獲取系統(tǒng)tick回調(diào)函數(shù)*/
uint32_tget_sys_tick(void)
{
returntick;
}

/*定時器超時回調(diào)函數(shù)*/
voidtimer_timeout_callback(structtk_timer*timer)
{
printf("timeout_callback:timertimeout:%ld
",get_sys_tick());
}

intmain(intargc,char*argv[])
{
/*定義定時器timer*/
structtk_timertimer;
boolresult=tk_timer_init(&timer,(tk_timer_timeout_callback*)timer_timeout_callback);
if(result==NULL)
{
printf("定時器創(chuàng)建失敗!
");
return0;
}
/*...*/
/*Youcanaddyourcodeunderhere.*/
return0;
}

3.3.5 靜態(tài)脫離定時器

注意: 會將timer從定時器鏈表中移除。必須為靜態(tài)方式創(chuàng)建的定時器對象。

booltk_timer_detach(structtk_timer*timer);
參數(shù) 描述
timer 要脫離的定時器對象
返回值 true:脫離成功;false:脫離失敗

3.3.6 定時器啟動

booltk_timer_start(structtk_timer*timer,tk_timer_modemode,uint32_tdelay_tick);
參數(shù) 描述
timer 要啟動的定時器對象
mode 工作模式,單次:TIMER_MODE_SINGLE循環(huán):TIMER_MODE_LOOP
delay_tick 定時器時長(單位tick)
返回值 true:啟動成功;false:啟動失敗

3.3.7 定時器停止

booltk_timer_stop(structtk_timer*timer);
參數(shù) 描述
timer 要停止的定時器對象
返回值 true:停止成功;false:停止失敗

3.3.8 定時器繼續(xù)

booltk_timer_continue(structtk_timer*timer);
參數(shù) 描述
timer 要繼續(xù)的定時器對象
返回值 true:繼續(xù)成功;false:繼續(xù)失敗

3.3.9 定時器重啟

注意:重啟時長為最后一次啟動定時器時配置的時長。

booltk_timer_restart(structtk_timer*timer);
參數(shù) 描述
timer 要重啟的定時器對象
返回值 true:重啟成功;false:重啟失敗

3.3.10 獲取定時器模式

tk_timer_modetk_timer_get_mode(structtk_timer*timer);
參數(shù) 描述
timer 要獲取的定時器對象
返回值 定時器模式
定時器模式 描述
TIMER_MODE_SINGLE 單次模式
TIMER_MODE_LOOP 循環(huán)模式

3.3.11 獲取定時器狀態(tài)

tk_timer_statetk_timer_get_state(structtk_timer*timer);
參數(shù) 描述
timer 要獲取的定時器對象
返回值 定時器狀態(tài)
定時器模式 描述
TIMER_STATE_RUNNING 運行狀態(tài)
TIMER_STATE_STOP 停止?fàn)顟B(tài)
TIMER_STATE_TIMEOUT 超時狀態(tài)

3.3.12 定時器處理

booltk_timer_loop_handler(void);
參數(shù) 描述
返回值 true:正常;false:異常,在調(diào)用此函數(shù)前,未初始化定時器功能“tk_timer_func_init

注意:tk_timer_loop_handler函數(shù)要不斷的循環(huán)調(diào)用。

3.3.13 超時回調(diào)函數(shù)

函數(shù)原型

typedefvoid(*timeout_callback)(structtk_timer*timer);

說明:超時回調(diào)函數(shù)可定義多個,即一個定時器對應(yīng)一個回調(diào)函數(shù),也可多個定時器對應(yīng)一個回調(diào)函數(shù)。

一對一

/*定義兩個回調(diào)函數(shù),對應(yīng)定時器timer1和timer2*/
voidtimer1_timeout_callback(structtk_timer*timer){
printf("定時器1超時!
");
}
voidtimer2_timeout_callback(structtk_timer*timer){
printf("定時器2超時!
");
}
/*創(chuàng)建兩個定時器,配置單獨超時回調(diào)函數(shù)*/
timer1=tk_timer_create((timeout_callback*)timer1_timeout_callback);
timer2=tk_timer_create((timeout_callback*)timer2_timeout_callback);

多對一

/*定時器timer1和timer2共用一個回調(diào)函數(shù),在回調(diào)函數(shù)做區(qū)分*/
voidtimer_timeout_callback(structtk_timer*timer){
if(timer==timer1)
printf("定時器1超時!
");
elseif(timer==timer2)
printf("定時器2超時!
");
}
/*創(chuàng)建兩個定時器,使用相同的超時回調(diào)函數(shù)*/
timer1=tk_timer_create((timeout_callback*)timer_timeout_callback);
timer2=tk_timer_create((timeout_callback*)timer_timeout_callback);

3.4 Event 事件集API函數(shù)


以下為詳細(xì)API說明及簡要示例程序,綜合demo可查看tk_event_samples.c示例。

3.4.1 動態(tài)創(chuàng)建一個事件

注意:當(dāng)配置TOOLKIT_USING_EVENT后,才能使用此函數(shù)。此函數(shù)需要用到malloc。

structtk_event*tk_event_create(void);
參數(shù) 描述
返回值 創(chuàng)建的事件對象(NULL為創(chuàng)建失敗)

3.4.2 動態(tài)刪除一個事件

當(dāng)配置TOOLKIT_USING_TIMER后,才能使用此函數(shù)。此函數(shù)需要用到free。必須為動態(tài)方式創(chuàng)建的事件對象。

booltk_event_delete(structtk_event*event);
參數(shù) 描述
event 要刪除的事件對象
返回值 true:刪除成功;false:刪除失敗

3.4.3 靜態(tài)初始化一個事件

booltk_event_init(structtk_event*event);
參數(shù) 描述
event 要初始化的事件對象
返回值 true:創(chuàng)建成功;false:創(chuàng)建失敗

3.4.4 發(fā)送事件標(biāo)志

booltk_event_send(structtk_event*event,uint32_tevent_set);
參數(shù) 描述
event 發(fā)送目標(biāo)事件對象
event_set 事件標(biāo)志,每個標(biāo)志占1Bit,發(fā)送多個標(biāo)志可“|”
返回值 true:發(fā)送成功;false:發(fā)送失敗

3.4.5 接收事件

booltk_event_recv(structtk_event*event,uint32_tevent_set,uint8_toption,uint32_t*recved);
參數(shù) 描述
event 接收目標(biāo)事件對象
event_set 感興趣的標(biāo)志,每個標(biāo)志占1Bit,多個標(biāo)志可“|”
option 操作,標(biāo)志與:TK_EVENT_OPTION_AND;標(biāo)志或:TK_EVENT_OPTION_OR;清除標(biāo)志:TK_EVENT_OPTION_CLEAR
返回值 true:發(fā)送成功;false:發(fā)送失敗
來源:https://github.com/cproape/toolkit
審核編輯 :李倩
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5085

    文章

    19138

    瀏覽量

    305682
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7605

    瀏覽量

    136993
  • 軟件包
    +關(guān)注

    關(guān)注

    0

    文章

    104

    瀏覽量

    11608

原文標(biāo)題:一個嵌入式通用軟件包

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Openwrt開發(fā)指南 第12章 添加OpenWrt軟件包

    OpenWrt是比較完善的嵌入式Linux開發(fā)平臺,在無線路由器應(yīng)用上已有4000多個軟件包。我們可以在其基礎(chǔ)上增加軟件包,以擴(kuò)大其應(yīng)用
    的頭像 發(fā)表于 06-29 09:09 ?8951次閱讀

    嵌入式系統(tǒng)的軟件部分

    都可以實現(xiàn)用戶界面  2)通用軟件系統(tǒng)無疑是以操作系統(tǒng)為核心,不可或缺,但是嵌入式系統(tǒng)具有功能專用性,有些情況下可以不使用操作系統(tǒng),特別是低端嵌入式系統(tǒng)功能單,使用循環(huán)程序作為主控程
    發(fā)表于 06-20 15:51

    什么是嵌入式組態(tài)軟件系統(tǒng)?

    嵌入式系統(tǒng)的主要作用是什么嵌入式組態(tài)軟件包的組態(tài)環(huán)境包括什么MCGS嵌入式組態(tài)軟件提供什么功能?
    發(fā)表于 04-22 07:09

    嵌入式am3352系統(tǒng)中移植python3及opkg

    前言O(shè)pkg 是輕量快速的套件管理系統(tǒng),已成為 Opensource 界嵌入式系統(tǒng)標(biāo)準(zhǔn)。常用于路由、交換機(jī)等嵌入式設(shè)備中,用來管理軟件包
    發(fā)表于 12-21 07:48

    通用裝備嵌入式軟件測試工具怎么樣

    系統(tǒng)裝備軟件的研發(fā)與生產(chǎn)質(zhì)量,解決具有復(fù)雜交聯(lián)環(huán)境裝備嵌入式軟件測試環(huán)境搭建和測試開發(fā)的難題;還可以提高測試人員在承擔(dān)軟件測試任務(wù)的標(biāo)準(zhǔn)化、規(guī)范化與自動化水平。
    發(fā)表于 12-24 06:22

    為何無法在嵌入式軟件包管理器 (M1 Pro) 中安裝軟件包?

    環(huán)境:STM32Cube IDE 版本 1.8.0/1.9.0MacBook Pro 14" 2021(Apple M1 Pro / macOS Monterey 12.3)重現(xiàn):幫助 > 管理嵌入式軟件包無法選擇要安裝的任何項目
    發(fā)表于 12-12 07:29

    模擬I2C總線多主通信的通用軟件包

    本文給出軟件模擬I2C總線應(yīng)用在多主機(jī)系統(tǒng)中的解決方案。分析多主競爭出現(xiàn)的原因及其時段,結(jié)合時序圖和流程圖闡述競爭仲裁的原理及實現(xiàn)方法,并提供通用軟件包,用戶可將
    發(fā)表于 04-15 11:45 ?40次下載

    模擬I2C總線多主通信的通用軟件包

    本文給出軟件模擬I2C總線應(yīng)用在多主機(jī)系統(tǒng)中的解決方案。分析多主競爭出現(xiàn)的原因及其時段,結(jié)合時序圖和流程圖闡述競爭仲裁的原理及實現(xiàn)方法,并提供通用軟件包,用戶可將
    發(fā)表于 05-15 15:34 ?34次下載

    XDC和XDC軟件包的詳細(xì)資料概述

    Express DSP組件(XDC,發(fā)音為EXE DEE)是提供優(yōu)化的可重用軟件組件的標(biāo)準(zhǔn)實時嵌入式系統(tǒng)。 本文檔是基于XDC的軟件包
    發(fā)表于 04-25 09:09 ?4次下載
    XDC和XDC<b class='flag-5'>軟件包</b>的詳細(xì)資料概述

    RT-Thread 軟件包介紹

    :JerryScript:超輕量級的 JavaScript 引擎;MicroPython:針對嵌入式領(lǐng)域的 Python 語言實現(xiàn)軟件包。這塊也是 RT-Thread 最近直在熱推的技術(shù),只要是支持
    發(fā)表于 05-21 19:38 ?5562次閱讀

    RT-Thread軟件包定義和使用

    RT-Thread軟件包是運行于RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)平臺上,面向不同應(yīng)用領(lǐng)域的通用軟件組件 。RT-Thread 同時提供了開放的軟件包平臺,為開發(fā)者提供了眾多可重用軟件包
    的頭像 發(fā)表于 05-21 11:29 ?1w次閱讀
    RT-Thread<b class='flag-5'>軟件包</b>定義和使用

    嵌入式軟件是什么意思_嵌入式軟件的分類有哪些

    本文首先闡述了嵌入式軟件的概念,其次介紹了嵌入式軟件的特征,最后介紹了嵌入式軟件的分類。
    發(fā)表于 08-31 15:54 ?1.6w次閱讀

    ToolKit套應(yīng)用于嵌入式系統(tǒng)的通用工具包

    ToolKit套應(yīng)用于嵌入式系統(tǒng)的通用工具包,可靈活應(yīng)用到有無RTOS的程序中,采用C語言面向?qū)ο蟮乃悸穼崿F(xiàn)各個功能,盡可能最大化的復(fù)用代碼,目前為止工具包包含:循環(huán)隊列、
    的頭像 發(fā)表于 04-17 10:04 ?2904次閱讀

    搭建套優(yōu)秀的嵌入式軟件框架必備的通用工具包

    ToolKit套應(yīng)用于嵌入式系統(tǒng)的通用工具包,可靈活應(yīng)用到有無RTOS的程序中,采用C語言面向?qū)ο蟮乃悸穼崿F(xiàn)各個功能,盡可能最大化的復(fù)用代碼,目前為止工具包包含:循環(huán)隊列、
    的頭像 發(fā)表于 04-18 09:34 ?998次閱讀

    基于Toolkit嵌入式軟件框架搭建方法

    ToolKit套應(yīng)用于嵌入式系統(tǒng)的通用工具包,可靈活應(yīng)用到有無RTOS的程序中,采用C語言面向?qū)ο蟮乃悸穼崿F(xiàn)各個功能,盡可能最大化的復(fù)用代碼,目前為止工具包包含:循環(huán)隊列、
    發(fā)表于 04-25 14:29 ?386次閱讀
    主站蜘蛛池模板: 国产人妻午夜无码AV天堂| 吸奶舔下面| 试看做受120秒免费午夜剧场| 性生生活大片又黄又| 777米奇影院第七色色| 国产精品视频第一区二区三区| 毛片免费在线| 久久精品熟女亚洲AV国产| 皮皮在线精品亚洲| 亚洲午夜精品A片久久不卡蜜桃| 变形金刚7免费观看完整| 久久国产高清视频| 爽爽窝窝午夜精品一区二区| 2019在秋霞理论| 国产偷啪自怕网| 日本xxx护士与黑人| 一色屋精品亚洲香蕉网站| 干丝袜美女| 年轻的朋友4在线看中文字幕| 亚洲九九视频| 高清国产在线观看| 暖暖 免费 日本 高清 在线1| 亚洲熟少妇在线播放999| 纯肉合集(高H)| 蜜桃日本免费观看MV| 亚洲精品无码久久久久A片| 成人免费视频一区| 美女扒开腿让男生桶爽免费APP| 亚洲精品青青草原avav久久qv| 丁香美女社区| 欧美国产一区二区三区激情无套| 亚洲视频区| 国产乱码一区二区三区| 日本精品无码久久久久APP| 2022年国产精品久久久久| 韩国污动漫无遮掩无删减电脑版| 色多多污污在线播放免费| av在线观看地址| 老头狠狠挺进小莹体内视频| 一抽一出BGM免费50分动漫| 国产午夜高潮熟女精品AV|