中文字幕 日本 在线 高清,久久精品国产99精品国,超碰人人香蕉,一区二区三区无码高清视频

入門簡單、輕量好用,原來嵌入式開發(fā)大神們都這樣玩(嵌入式開發(fā)快速入門)

入門簡單、輕量好用,原來嵌入式開發(fā)大神們都這樣玩(嵌入式開發(fā)快速入門)入門簡單、輕量好用,原來嵌入式開發(fā)大神們都這樣玩(嵌入式開發(fā)快速入門)

從現(xiàn)實生活來看,使用嵌入式的產(chǎn)品比比皆是。譬如常使用的手機(jī)、平板電腦、智能家居、智能汽車、物聯(lián)網(wǎng)以及航天航空設(shè)備等??梢哉f,嵌入式系統(tǒng)的市場前景是相當(dāng)巨大的。 尤其是當(dāng)前隨著物聯(lián)網(wǎng)上升為國家戰(zhàn)略后,造芯片成為各類科技企業(yè)發(fā)展必修課之后,作為芯片的底層技術(shù)————嵌入式系統(tǒng)也漸漸從后臺走到前臺。

實際上,目前存在多種嵌入式系統(tǒng)的定義,但是從比較廣泛且官方的說法來看:

“嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成 本、體積、功耗有嚴(yán)格要求的專用計算機(jī)系統(tǒng)?!?/span>

縱觀嵌入式系統(tǒng)的發(fā)展,至今已有30余年的歷史,但是這項系統(tǒng)并不只是包括為了解決特定問題而設(shè)計的硬件系統(tǒng),同時也有控制系統(tǒng)的軟件。從而,這對于嵌入式系統(tǒng)的開發(fā)人員而言,增添了新的挑戰(zhàn)。

首先對于嵌入式軟件的開發(fā)而言,主要的挑戰(zhàn)源自于嵌入式開發(fā)需要掌握底層「硬件」領(lǐng)域的知識,一旦硬件的更改將會對軟件開發(fā)帶來重大影響。

此外,對于嵌入式的開發(fā)者而言,搞嵌入式系統(tǒng)的入門門檻較高,畢竟擁有軟硬結(jié)合的能力,遠(yuǎn)遠(yuǎn)比單純掌握某種程序開發(fā)語言更為艱難。

雖然入門困難,但是目前越來越多的開發(fā)者主動將自己的嵌入式軟件開發(fā)開源出來了,分享給更多需要學(xué)習(xí)嵌入式的開發(fā)者們,從自己玩到大家一塊玩,既能讓更多的人使用開發(fā)者的開源軟件,了解學(xué)習(xí)并交流嵌入式開發(fā),從自己玩到大家一塊玩,同時還將軟件的價值最大化。

今天,我們就給大家介紹幾款入門簡單、輕量好用的嵌入式開源軟件開發(fā),讓大家共同學(xué)習(xí)、交流,一起豐富嵌入式開發(fā)的生態(tài)環(huán)境。


01 eventos-nano

開源許可證: MIT

項目作者: EventOS( EventOS 是一個 RTOS 項目)

項目地址: eventos-nano

項目地址: https://gitee.com/event-os/eventos-nano

推薦原因: eventos-nano 是一個企業(yè)級的嵌入式開發(fā)框架。之所以叫 Nano ,是因為它真的非常輕量。最低占用 ROM 1.5KB,RAM 172 字節(jié)。核心技術(shù)是事件總線,支持 Reactor 和狀態(tài)機(jī)兩種模式,協(xié)作式內(nèi)核,極度可靠??缮疃炔眉?,移植方便。

項目啟動代碼: 除源碼外,只需要實現(xiàn)三個代碼,就可以使用EventOS Nano來編寫程序。

1. main.c main 函數(shù),初始化和啟動 EventOS Nano 。

/* include ------------------------------------------------------------------ */#include "eventos.h" // EventOS Nano頭文件#include "event_def.h" // 事件主題的枚舉#include "eos_led.h" // LED燈閃爍狀態(tài)機(jī)/* define ------------------------------------------------------------------- */static eos_u32_t eos_sub_table[Event_Max]; // 訂閱表數(shù)據(jù)空間static eos_u8_t eos_heap_memory[1024]; // 事件池空間/* main function ------------------------------------------------------------ */int main(void){ // EventOS Nano的初始化 eos_init(); // EventOS初始化 eos_sub_init(eos_sub_table); // 訂閱表初始化 eos_event_pool_init(eos_heap_memory, 1024); // 事件池初始化 // 狀態(tài)機(jī)模塊的初始化 eos_led_init(); // LED狀態(tài)機(jī)初始化 // 啟動EventOS Nano。 eos_run(); // EventOS啟動并運行 return 0;}

2. eos_port.c 如 EventOS 在特定平臺上的接口實現(xiàn),也就是 EventOS Nano 移植的相關(guān)代碼。

可前往在《 UM-02-002 EventOS Nano 移植文檔》查看詳細(xì)說明。

3. .ceos_led.c LED 的閃爍狀態(tài)機(jī)。LED燈閃爍,就是單片機(jī)界的 Hello World 。

/* include ------------------------------------------------------------------ */#include "eos_led.h" // 模塊頭文件#include "eventos.h" // EventOS頭文件#include "event_def.h" // 事件定義頭文件#include <stdio.h> // 標(biāo)準(zhǔn)輸入輸出庫/* data structure ----------------------------------------------------------- */typedef struct eos_led_tag { // LED類 eos_sm_t super; eos_bool_t status;} eos_led_t;static eos_led_t led; // led對象,單例模式/* static state function ---------------------------------------------------- */// 初始狀態(tài)static eos_ret_t state_init(eos_led_t * const me, eos_event_t const * const e);// Led的ON狀態(tài)static eos_ret_t state_on(eos_led_t * const me, eos_event_t const * const e);// Led的Off狀態(tài)static eos_ret_t state_off(eos_led_t * const me, eos_event_t const * const e);/* api ---------------------------------------------------- */void eos_led_init(void){ static eos_u32_t queue[32]; // 事件隊列 eos_sm_init(&led.super, 1, queue, 32); // 狀態(tài)機(jī)初始化 // 狀態(tài)機(jī)啟動,以state_init作為初始狀態(tài)。 eos_sm_start(&led.super, EOS_STATE_CAST(state_init)); led.status = 0;}/* static state function ---------------------------------------------------- */static eos_ret_t state_init(eos_led_t * const me, eos_event_t const * const e){ // 訂閱事件Event_Time_500ms EOS_EVENT_SUB(Event_Time_500ms); // 使事件Event_Time_500ms,每隔500ms就被發(fā)送一次。 eos_event_pub_period(Event_Time_500ms, 500); return EOS_TRAN(state_off);}static eos_ret_t state_on(eos_led_t * const me, eos_event_t const * const e){ switch (e->topic) { case Event_Enter: // 狀態(tài)state_on的進(jìn)入事件 printf("State On!n"); me->status = 1; return EOS_Ret_Handled; case Event_Time_500ms: // 收到Event_Time_500ms,跳轉(zhuǎn)到state_off return EOS_TRAN(state_off); default: return EOS_SUPER(eos_state_top); }}static eos_ret_t state_off(eos_led_t * const me, eos_event_t const * const e){ switch (e->topic) { case Event_Enter: // 狀態(tài)state_on的進(jìn)入事件 printf("State Off!n"); me->status = 0; return EOS_Ret_Handled; case Event_Time_500ms: // 收到Event_Time_500ms,跳轉(zhuǎn)到state_on return EOS_TRAN(state_on); default: return EOS_SUPER(eos_state_top); }}

02 Klite

開源許可證: MIT

項目作者: jiangxiaogang

項目地址: https://gitee.com/kerndev/klite

項目簡介: KLite 的定位是一款入門級的嵌入式實時操作系統(tǒng)內(nèi)核,以簡潔易用為設(shè)計目標(biāo),旨在降低嵌入式 RTOS 的入門難度。

項目操作準(zhǔn)備:

//只需要包含這一個頭文件#include "kernel.h"//用于初始化應(yīng)用程序的線程void init(void *arg){ //在這里完成外設(shè)和驅(qū)動初始化 //并創(chuàng)建更多線程實現(xiàn)不同的功能 //thread_create(...)}//空閑線程,只需調(diào)用kernel_idle即可void idle(void *arg){ kernel_idle();}//C語言程序入口void main(void){ static uint8_t heap[HEAP_SIZE]; /* 定義堆內(nèi)存 */ kernel_init(heap, sizeof(heap)); /* 系統(tǒng)初始化 */ thread_create(idle, 0, 0); /* 創(chuàng)建idle線程 */ thread_create(init, 0, 0); /* 創(chuàng)建init線程 */ kernel_start(); /* 啟動系統(tǒng) */}

03 GuiLite

開源許可證: Apache-2.0

項目作者: idea4good

項目地址: https://gitee.com/idea4good/GuiLite

推薦原因: GuiLite 是一款能運行在“ Docker ”上的輕量嵌入式UI框架,僅 4 千行 C 代碼, 0 依賴,單一頭文件庫( GuiLite.h ),單片機(jī)上也能流暢運行。

項目圖層管理:

入門簡單、輕量好用,原來嵌入式開發(fā)大神們都這樣玩(嵌入式開發(fā)快速入門)入門簡單、輕量好用,原來嵌入式開發(fā)大神們都這樣玩(嵌入式開發(fā)快速入門)

04 python-simple-http-server

開源許可證: MIT

項目作者: keijack

項目地址: https://gitee.com/keijack/python-simple-http-server

推薦原因: python-simple-http-server 是一個超輕量級的 HTTP Server,支持嵌入到 WSGI 標(biāo)準(zhǔn)中。

如何啟動服務(wù)器:

import simple_http_server.server as server# 如果你的控制器代碼(處理請求的函數(shù))放在別的文件中,那么在你的 main.py 中,你必須將他都 import 進(jìn)來。import my_test_ctrldef main(*args): # 除了 import 外,還可以通過 scan 方法批量加載 controller 文件。 server.scan("my_ctr_pkg", r".*controller.*") server.start()if __name__ == "__main__": main()

05 xboot

開源許可證: MIT

項目作者: xboot

項目地址: https://gitee.com/xboot/xboot

推薦原因: xboot 是一款功能強大、可移植性強、代碼復(fù)用率高的嵌入式系統(tǒng) bootloader ,只需編寫一次,即可在任何地方運行。

項目演示:

入門簡單、輕量好用,原來嵌入式開發(fā)大神們都這樣玩(嵌入式開發(fā)快速入門)

06 nutzboot

開源許可證: Apache-2.0

項目作者: Nutz

項目地址: https://gitee.com/nutz/nutzboot

推薦原因: nutzboot 是一款開放的企業(yè)級微服務(wù)框架,提供自動配置,嵌入式web服務(wù)。

項目演示:

入門簡單、輕量好用,原來嵌入式開發(fā)大神們都這樣玩(嵌入式開發(fā)快速入門)

入門簡單、輕量好用,原來嵌入式開發(fā)大神們都這樣玩(嵌入式開發(fā)快速入門)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2023年3月18日 上午9:47
下一篇 2023年3月18日 上午10:03

相關(guān)推薦

  • 營銷管理 系統(tǒng)(營銷管理系統(tǒng)軟件)

    營銷管理系統(tǒng)軟件:企業(yè)營銷的利器 隨著現(xiàn)代企業(yè)競爭的不斷加劇,企業(yè)營銷管理也越來越重要。然而,傳統(tǒng)的管理方式已經(jīng)無法滿足現(xiàn)代企業(yè)的需求,因此,營銷管理系統(tǒng)軟件成為了現(xiàn)代企業(yè)營銷管理…

    科研百科 2024年8月30日
    4
  • 中國農(nóng)業(yè)發(fā)展銀行高碑店市支行自律評估報告(農(nóng)發(fā)行自我評價怎么寫)

    根據(jù)《河北省金融市場協(xié)會行業(yè)自律評估實施辦法(試行)》有關(guān)要求,現(xiàn)將我行自律評估情況匯報如下: 一、自律機(jī)構(gòu)設(shè)置情況: 自評估單位:中國農(nóng)業(yè)發(fā)展銀行高碑店市支行 結(jié)合我行實際,成立…

    科研百科 2024年2月5日
    137
  • httpskjxm.cdk

    人工智能的發(fā)展,讓人們的生活和工作都變得更加高效和便捷。其中,人工智能技術(shù)在醫(yī)療領(lǐng)域中的應(yīng)用也越來越廣泛。 人工智能在醫(yī)療領(lǐng)域的應(yīng)用,可以幫助醫(yī)生更加準(zhǔn)確地診斷疾病,提高治療的準(zhǔn)確…

    科研百科 2024年10月4日
    2
  • 年薪58W以上PMO和項目經(jīng)理必備的6個思維模型工具

    近期熱文: 百萬年薪PMO&項目經(jīng)理職場影響力是如何煉成的?【精華筆記】 PMO&項目經(jīng)理如何高效解決問題看這篇文章就夠了 一圖掌握項目管理的核心工具WBS工作分解…

    2022年7月7日
    432
  • 科研項目需求方案

    科研項目需求方案 隨著科技的不斷發(fā)展,科研項目的需求方案已經(jīng)成為了項目管理中不可或缺的一部分。一個好的需求方案不僅可以幫助項目團(tuán)隊更好地理解項目目標(biāo),而且還可以提高項目的效率和質(zhì)量…

    科研百科 2025年2月4日
    3
  • 企業(yè)項目管理軟件有哪些

    企業(yè)項目管理軟件有哪些 企業(yè)項目管理軟件是一種用于管理企業(yè)項目的工具,可以幫助企業(yè)更好地組織、計劃和管理項目。隨著數(shù)字化技術(shù)的發(fā)展,越來越多的企業(yè)開始采用項目管理軟件來提高效率和質(zhì)…

    科研百科 2024年8月16日
    3
  • 科研項目陜西省科技廳評審科研項目陜西省科技廳評審

    科研項目陜西省科技廳評審 近年來,隨著科技的快速發(fā)展,科研項目的評審也越來越重要。作為陜西省科技廳的重要工作之一,科研項目的評審工作對于推動科技創(chuàng)新和促進(jìn)經(jīng)濟(jì)發(fā)展具有重要的意義。 …

    科研百科 2024年6月12日
    31
  • 2023年基金業(yè)績冰火兩重天,新能源慘淡,納指QDII、黃金賺嗨了(2021年基金新能源)

    2023年基金業(yè)績冰火兩重天,新能源慘淡,納指QDII、黃金賺嗨了(2021年基金新能源) 界面新聞記者 | 紀(jì)瑤 界面新聞編輯 | 現(xiàn)已進(jìn)入2023年收官月的最后一旬。 年內(nèi),海…

    科研百科 2024年3月22日
    141
  • 注重科研項目支撐

    注重科研項目支撐 隨著科技的不斷發(fā)展,科研項目作為推動科技進(jìn)步的重要力量,越來越受到人們的關(guān)注??蒲许椖康某晒εc否,不僅關(guān)系到研究者的成果,更關(guān)系到整個社會的發(fā)展。因此,注重科研項…

    科研百科 2025年2月13日
    1
  • FTA軟件

    FTA軟件:輕松下載電影和電視節(jié)目的利器 近年來,隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的人開始使用數(shù)字媒體播放器來觀看電影和電視節(jié)目。然而,對于一些人來說,下載數(shù)字媒體文件可能是一個麻煩的事…

    科研百科 2024年10月5日
    5