原创 RTOS基本原理概述

    嵌入式實時操作系統英文爲EmbedReal Time OperatingSystem,簡稱RTOS。與PC機上的通用的操作系統Windows或是Linux相比,RTOS精簡,實時性強。不同的RTOS根據性能特點適應於航天航空、生

原创 linux Phy 設備驅動

MDIO/MII 介紹 MII是Medium Independent Interface的縮寫,是一種標準接口,該接口主要應用於MAC層和PHY層之間的以太網數據傳輸。 MII接口的類型有很多,常用的有MII、RMII、SMII、SSMI

原创 YSJ_FSM狀態機軟件框架分析

基於狀態機的軟件框架好處 1. 有較好的代碼框架 2. 相對與一般的操作系統,佔用內存比較少,因爲傳統的操作系統每個任務必須給夠棧,一般都要3K左右。而FSM始終用一個棧。 3. 避免了由於資源競爭引發的問題 FSM的最基本思想: 當前狀

原创 openwrt目錄與編譯

一、目錄 1. package目錄 這個目錄裏面的文件主要是makefile。我覺得openwrt更加像是一個shell + Makefile編譯代

原创 swconfig結構框架

OpenWrt的swconfig結構框架 swconfig命令模式 swconfig dev <dev> [port <port>|vlan <vlan>|csmap <index>] (help|set <key> <value>|ge

原创 實現flash延長寫壽命算法

    flash的擦寫次數是有限的,NAND flash中每個塊的最大擦寫次數爲100萬次,而NOR是10W次,flash單個存儲單元bit只能從

原创 FOS時間管理

FOS時間管理包括軟定時器、延時函數兩者管理(目前是這兩者對象,後面會補充各種對象的timeout)。通過一條鏈表連接對象,由style標識特定對象。 /*time manage*/ typedef structTICK_STR{    

原创 FOS調度算法

FOS調度算法是基於優先級任務調度的,對於優先級任務支持FIFO策略。應該說所有真實時的操作系統都支持基於優先級任務調度。 調度算法的作用是找出可調度優先級最高的的任務。 FOS 採用一個unsignedint類型的變量task_prio

原创 搭建一個多任務調度環境

目標實現一個多任務環境。 1. 系統可以多任務執行; 2. 任務可以模塊化編程; 3. 沒有調度算法, 調度點由用戶決定。 操作系統描述的是多任務處理。多任務的意思是在宏觀上多個任務是同時在運行的,但是微觀上,任何一個時刻只有一個任務在

原创 Protothread調度分析

Protothread存在於contiki、uip中,作者是Dunkels, Adam。 官網介紹prothread  Protothreads is a mixture of the event-driven and the mult

原创 FOS中斷管理

一、FOS中斷管理 中斷管理分軟硬件。 硬件分兩種類型中斷,一是中斷向量表存放地址,一種是存放指令。 在處理中斷之前要初始化其棧指針 二、軟件上設計:中斷髮生,PC跳轉到中斷向量表,然後我們要做的事情如下: 保存被中斷的任務的上下文;

原创 驅動設備管理

設備管理作用 設備管理接口使用 設備管理實現 設備管理作用 一個操作系統往往集成很多設備的驅動,比如led燈,按鍵,PWM,ADC,SD等等設備。如何管理 這些設備,使得應用層可以使用統一的方式去操作這些設備,類似linux操作

原创 自由讀書會第一集總結

軟件測試框架 程序最重要的是穩定性,而不是花銷的算法,或是性能,或是節省空間多少。 如何保證程序的穩定性? 代碼規模越大,越容易產生bug,這裏的bug分兩種, 一是邏輯上的bug,二是程序掛掉。通常避免系統的bug辦法是做單元測試

原创 自由讀書會第一集總結

2016年6月1號,我召集小夥伴們一起到深圳灣公園進行第一次讀書分享會,我們讀書會的團體叫"自由讀書會", 主要倡導思想自由,不要因爲各種束縛限制思想交流。分享讀書的內容可以是自己的讀書感悟,也可以是生活小經驗分享。每次讀書會都會有個主題

原创 FOS的消息隊列管理

什麼是消息隊列 消息隊列的使用 消息隊列的設計 什麼消息隊列 想象一個場景,線程a斷斷續續的向線程b發送數據,線程b要根據接送到的數據去解析做邏輯處理,但是b線程是優先級比較低的任務,不會去實時處理數據,造成丟數據。如何解決這種問