《痞子衡嵌入式半月刊》 第 103 期

来源:https://www.cnblogs.com/henjay724/p/18279067
-Advertisement-
Play Games

痞子衡嵌入式半月刊: 第 103 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回 ...


痞子衡嵌入式半月刊: 第 103 期

這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。

本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。

上期回顧《痞子衡嵌入式半月刊: 第 102 期》

嘮兩句

歷史上的今天:2012年7月1日,全球增加一秒,出現7:59:60

本期共 5 個項目,希望對你有幫助!

項目類

1、CherryUSB - 小而美的嵌入式USB主從協議棧

CherryUSB 是一個小而美的、可移植性高的、用於嵌入式系統(帶 USB IP)的 USB 主從協議棧。

為了方便用戶學習 USB 基本知識、枚舉、驅動載入、IP 驅動,因此 CherryUSB 代碼具備以下優點:

- 代碼精簡,邏輯簡單,無複雜 C 語言語法
- 樹狀化編程,代碼層層遞進
- Class 驅動和 porting 驅動模板化、精簡化
- API 分類清晰(從機:初始化、註冊類、命令回調類、數據收發類;主機:初始化、查找類、數據收發類)

為了方便用戶使用 USB 介面,考慮到用戶學習過 uart 和 dma,因此 CherryUSB 設計的數據收發類介面具備以下優點:

- 等價於使用 uart tx dma/uart rx dma
- 收髮長度沒有限制,用戶不需要關心 USB 分包過程(porting 驅動做分包過程)

考慮到 USB 性能問題,儘量達到 USB 硬體理論帶寬,因此 CherryUSB 設計的數據收發類介面具備以下優點:

- Porting 驅動直接對接寄存器,無抽象層封裝
- Memory zero copy
- IP 如果帶 DMA 則使用 DMA 模式(DMA 帶硬體分包功能)
- 長度無限制,方便對接硬體 DMA 並且發揮 DMA 的優勢
- 分包功能在中斷中處理

2、tslib - 嵌入式中使用最廣泛的電阻觸摸屏校正演算法庫

tslib 是嵌入式系統里用得最多的觸摸屏校正演算法庫,其充分利用了矩陣的平移,旋轉和縮放等運算。tslib 常用於對電阻觸摸屏的功能調試,能夠為觸摸屏驅動獲得的採樣提供諸如濾波、去抖、校準等功能,通常作為觸摸屏驅動的適配層,為上層的應用提供了一個統一的介面。

3、cotParam - 基於C語言的輕量級參數管理框架

cotParam 是一個參數管理框架代碼,其功能就是統一管理軟體中的各類系統數據參數。該參數管理並不涉及數據是如何儲存的。因為有些系統數據並不需要儲存起來,只需要進行管理而已。

cotParam 主要特點有:

1. 採用表驅動方式統一管理所有參數,包括預設值、最小值和最大值等
2. 採用巨集定義快速註冊和添加參數進行管理
3. 支持基本類型參數和字元串參數
4. 支持序列化和反序列化,便於保存和讀取校驗
5. 可通過串口協議或其他協議調用介面修改參數

4、cotMenu - 輕量級多級菜單控制框架程式

cotMenu 是一個降低了耦合性,完全獨立的菜單框架,菜單顯示風格和顯示平臺完全由自己根據需求設計,而菜單操作統一由菜單模塊處理即可,提高程式的移植性。

cotMenu 主要特點有:

1. 採用鏈表方式實現多級菜單(通過配置選擇採用動態分配或者數組實現)
2. 菜單框架作為獨立模塊,拒絕和按鍵模塊、顯示模塊進行耦合
3. 在十分獨立的情況下,也保證不受菜單的顯示風格和顯示平臺影響,可自由選擇設計顯示風格和顯示平臺
4. 快捷菜單操作等
5. 可以採用表驅動的方式初始化菜單,提高代碼的可讀性

5、cotLed - 輕量級LED控制模塊

cotLed 是一個輕量級的LED控制軟體框架,可以十分方便地控制LED的各種狀態,甚至多個LED組合控制,如跑馬燈等。

cotLed 主要特點有:

1. 移植方便,無需修改,只需要初始化提供讀取相關IO 狀態寫入函數即可
2. 豐富的介面實現,
   -- 可以實現單個LED亮滅、翻轉、閃爍、呼吸燈、自定義(如多少秒快閃幾次等)等多種要求的功能
   -- 可以實現多個LED組合跑馬燈、流水燈等功能
   -- 同時支持上述模式的次數設置等
3. 代碼量少,且代碼註釋豐富,風格統一,便於閱讀和使用
4. 如果設置某個LED為呼吸燈模式,則需要保證 cotLed_Ctrl調用周期為1毫秒(優先順序需要最高,或者定時器調度效果最好)
5. 非阻塞任務,因此裸機和操作系統都適用(操作系統下非線程安全,最好可以使用讀寫鎖,如果沒有讀寫鎖則至少使用互斥鎖)

歡迎訂閱

文章會同時發佈到我的 博客園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

微信搜索"痞子衡嵌入式"或者掃描下麵二維碼,就可以在手機上第一時間看了哦。

  最後歡迎關註痞子衡個人微信公眾號【痞子衡嵌入式】,一個專註嵌入式技術的公眾號,跟著痞子衡一起玩轉嵌入式。

痞子衡嵌入式-微信二維碼 痞子衡嵌入式-微信收款二維碼 痞子衡嵌入式-支付寶收款二維碼

  衡傑(痞子衡),目前就職於某全球頂級半導體原廠MCU系統部門,擔任高級嵌入式系統應用工程師。

  專欄內所有文章的轉載請註明出處:http://www.cnblogs.com/henjay724/

  與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]

  可以關註痞子衡的Github主頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。

  關於專欄文章有任何疑問請直接在博客下麵留言,痞子衡會及時回覆免費(劃重點)答疑。

  痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在以前我做程式的時候,一般在登錄視窗裡面顯示程式名稱,登錄視窗一般設置一張背景圖片,由於程式的名稱一般都是確定的,所以也不存在太大的問題,不過如果客戶定製不同的系統的時候,需要使用Photoshop修改下圖層的文字,再生成圖片,然後替換一下也可以了。不過本著減少客戶使用繁瑣性,也可以使用空白名稱的通... ...
  • .Net 中提供了一系列的管理對象集合的類型,數組、可變列表、字典等。從類型安全上集合分為兩類,泛型集合 和 非泛型集合,傳統的非泛型集合存儲為Object,需要類型轉。而泛型集合提供了更好的性能、編譯時類型安全,推薦使用。 ...
  • 今天在技術群里,石頭哥向大家提了個問題:"如何在一個以System身份運行的.NET程式(Windows Services)中,以其它活動的用戶身份啟動可互動式進程(桌面應用程式、控制台程式、等帶有UI和互動式體驗的程式)"? 我以前有過類似的需求,是在GitLab流水線中運行帶有UI的自動化測試程 ...
  • OPC基金會提供了OPC UA .NET標準庫以及示常式序,但官方文檔過於簡單,光看官方文檔和示常式序很難弄懂OPC UA .NET標準庫怎麼用,花了不少時間摸索才略微弄懂如何使用,以下記錄如何從一個控制台程式開發一個OPC UA伺服器。 安裝Nuget包 安裝OPCFoundation.NetSt ...
  • 前言 隨著 DEV24.1.3 的發佈,XAF Blazor 中的屬性編輯器(PropertyEditor)也進行了很大的改動,在使用體驗上也更接近 WinForm 了,由於進行了大量的封裝,理解上沒有 WinForm 直觀,所以本文通過對屬性編輯器的原理進行解析,並對比新舊版本中的變化,使大家能夠 ...
  • 由於.NET Framework 4.0 是比較古老的版本,只有New Relic 7.0以下的版本才會支持.NET Framework 4.0的引用程式。 Technical support for .NET Framework 4.0 or lower 你可以參考這個官方Install New ...
  • 功能說明 使用ListView時,希望可以在單元格顯示圖片或其他控制項,發現原生的ListView不支持,於是通過拓展,實現ListView可以顯示任意控制項的功能,效果如下: 實現方法 本來想著在單元格裡面實現控制項的自繪的,但是沒找到辦法,最後是通過在單元格的錶面顯示對應控制項的,浮於錶面達到目的。 實 ...
  • 一:背景 1. 講故事 前些天有位朋友找到我,說他們的程式會偶發性的卡死一段時間,然後又好了,讓我幫忙看下怎麼回事?窗體類的程式解決起來相對來說比較簡單,讓朋友用procdump自動抓一個卡死時的dump,拿到dump之後,上 windbg 說話。 二:WinDbg 分析 1. 主線程在做什麼 要想 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...