原创 RT-Thread移植到S5P4418(一)

S5P4418,Cortex-A9系列。 結合了 RT-Thread內核實現(六):時間片 和 S5P4418裸機開發(十四):TIMER 的代碼。 SysTick & PendSV RT-Thread實現線程調度兩個比較核心的中斷。

原创 imxq Freescale Yocto Project編譯記錄

參考: IMX6Q環境搭建、安裝Yocto包和編譯 編譯內核 配置menuconfig指令: bitbake -c menuconfig -v linux-imx 單獨編譯kernel、模塊、設備樹 bitbake -c comp

原创 opencv3 C/C++不同接口

類型 C C++ 頭文件 #include <opencv/cv.h>#include <opencv/highgui.h>… #include <opencv2/opencv.hpp>#include <opencv2

原创 RT-Thread內核實現(六):時間片

整體思想 假如A、B兩個線程優先級相同,A先啓動,只要A不主動讓出CPU,線程B就沒機會執行。 時間片就是爲了解決相同優先級下多線程的併發問題。 線程控制塊 添加rt_ubase_t init_tick屬性,remaining_

原创 RT-Thread內核實現(五):定時器

整體思想 前幾章的線程延時是通過線程的remaining_tick屬性來記錄延時時間,在 SysTick 中斷中掃描並更新每個線程的remaining_tick,如果remaining_tick等於0,將該線程就緒,時間複雜度O(n

原创 RT-Thread內核實現(四):多優先級

整體思想: 前幾章並不支持多優先級,都是手動切換指定的線程來運行。支持優先級後,調度器只會找當前最高優先級的線程來運行。RT-Thread屬於搶佔式實時操作系統,CPU會被當前最高優先級線程搶佔,除非最高優先級線程主動放棄,比如調

原创 VSCode 返回上一個光標 (上一個瀏覽位置)

Ctrl + 鼠標左擊跳到定義. 返回 Windows: Alt + ← ;或者 鼠標側鍵 Linux: Ctrl + Alt + - ;貌似數字鍵盤的減號沒效果 Mac: Ctrl + -

原创 漲姿勢系列:花裏胡哨調試信息

#include <stdio.h> #define logD(fmt, ...) \ fprintf(stdout, "[\e[34m debug \e[0m] %s:%02d --> ", __FILE__,

原创 RT-Thread內核實現(三):空閒線程與阻塞延時的實現

空閒函數 idle 如果沒有其它線程可以運行, RTOS 都會爲 CPU 創建一個空閒線程,這個時候 CPU 就運行空閒線程。 在 RTThread 中,空閒線程是系統在初始化的時候創建的優先級最低的線程,空閒線程主體主要是做一些系

原创 RT-Thread內核實現(二):臨界區,對象容器

臨界區(Critical Section) 保證在某一時刻只有一個線程能訪問數據的簡便辦法。在任意時刻只允許一個線程對共享資源進行訪問。 RT-Thread 對臨界段的保護就處理的很乾脆,直接把中斷全部關了, NMI FAULT 和

原创 RT-Thread內核實現(一):線程與調度

線程是一個獨立的、無限循環且不能返回的函數。 系統爲了順利的調度線程,爲每個線程都額外定義了一個線程控制塊,這個線程控制塊就相當於線程的身份證,裏面存有線程的所有信息,比如線程的棧指針,線程名稱, 線程的形參等。 rtdef.

原创 RT-Thread內核實現(零):開啓RTOS之旅

學習資料: [野火®]《RT-Thread 內核實現與應用開發實戰—基於STM32》.pdf Cortex M3權威指南(中文).pdf 2.1 爲什麼要學習 RTOS 當我們進入嵌入式這個領域的時候, 往往首先接觸的都是單片機編程

原创 S5P4418裸機開發(十六):ache & MMU

Cache cache 分爲指令cache (Instruction cache)和數據cache (Data cache)。 開啓MMU後才能使用數據cache。 三種映射方式:直接映射,全相聯映射,組相聯映射 使用write b

原创 Ubuntu 16.04下,vsftpd匿名用戶修改默認目錄後不能上傳、下載等

只針對匿名用戶,本地用戶未測試。 修改sudo vim /etc/vsftpd.conf anonymous_enable=YES local_enable=YES write_enable=YES anon_upload_en

原创 按層次序列創建二叉樹

給定層次序列字符串,以’ ,’ 分隔,’#’ 表示無節點,創建二叉樹後以先序方式打印二叉樹。 // // Created by 91241 on 2018-10-28. // #include <iostream> #include