原创 複習下st的NVIC

NVIC全稱Nested vectored interrupt controller,即嵌套向量中斷控制器,用來決定中斷的優先級。 NVIC在 ARM Conrtex-M 內核中,用一個 8 位的寄存器來配置,總共可以配置2^8=256級

原创 關於RTT項目開發過程中的排坑記

1、scatter file(分散)文件,rtt官網給出的其實是一個腳本文件有什麼作用?? 如下圖:  這是keil官網給出的語法解釋: 從中可以看出link.sct文件,意思就是鏈接時,擴展出了SRAM2的內存地址 。   2、st

原创 RTThread項目之寫在前面的話

總覺這一年半來沒做什麼項目,只是忙於給別人做測試,出方案,還有就是些雜七雜八的事。什麼原因呢?其實是源自於內心的驕傲與不踏實。總覺得這簡單,那簡單,實際真做起來,問題還是蠻多的。真正實現一個功能,以後對自己做項目,就可以直接拿來用。所以,

原创 Rt-Thread之內核移植(官網+任務切換總結)

啓動流程就不必再說了。詳情就看熊譜翔的書吧。這裏只是說一下對自己來說比較新鮮的地方及所得。 自動初始化機制: 只要在函數定義處通過宏定義的方式進行聲明,就會在系統啓動過程中被執行。這裏當宏理解成開關就可以了,還有其用法,是放在了函數定義處

原创 MDK實用功能

對MDK功能,沒重視過,一直是拿來就用,也倒是沒什麼問題,但偶然看老鐵們發的,還挺有意思。準備試用一下。 先進入設置界面: 1.編碼格式、tab空格設置、自動保存 編寫代碼時通常會寫中文註釋,但是在Keil MDK的默認編碼格式中,中文

原创 關於加入stm32l4XX_flash.c出錯的問題

在新建模板工程時,只要加進flash.c文件就會出這個問題?並且在CubeMX自動生成的工程就沒這個問題。如下: 經過與CubeMX生成的工程的比較,發現此項未勾選  勾上後,問題解決!!! 另外,勾選ARM編譯器6會自動選擇C99.

原创 RTT之ENV工具

對RTT,還是處於累積的階段,站在巨人的肩膀上,多看資料,多看源碼! ENV在《關於Kconfig語法在linux中的應用》已經作了番瞭解,其實linux也是這麼做的。但顯然ENV除裁減外還有其他作用? 1、構建工程,自動將源碼添加到工程

原创 網絡原理考點之差錯編碼

如題2019年4月 又如2019年10月 其實這些考點都是很有用的,代表了網絡的思想。  還是那句話,這些詞看着挺熟悉,但具體什麼意思,還真一時想不起來……。 檢錯重發:典型差錯控制方式,發送端對發送數據進行差錯編碼,傳輸後,接收端利

原创 網絡原理考點之幀結構IEEE

如題:2018年4月  答:IEEE802.3是什麼來??? 單憑書上的P210簡單的介紹,此題是無法得到正確答案的。 IEEE802.3是電氣和電子工程師協會 (IEEE)工作組制定的物理層和數據鏈路層的有線以太網標準,即局域網的協議

原创 RTT之內存管理器

內存管理器分爲動態內存堆管理和靜態內存池管理。 內存堆管理算法: 小內存管理算法:包含一個12字節的數據頭。 slab算法:多內存池管理快速算法,系統資源比較豐富 memheap:多內存堆的管理算法。多個地址不連續的內存堆。 使用內存前

原创 RTT之定時與中斷理解

定時管理這部分看過一遍了,只是再總結一下要點: 兩類定時機制:單次觸發和週期性觸發。 超時函數所執行的環境:分爲中斷環境與線程環境。默認是中斷環境。 RTT定時器工作機制: 1、系統經過的tick 2、定時器鏈表rt_timer_list

原创 RTT之理解線程

線程與任務等同。 可見,每個線程切換時都會將上下文保存到自己的棧中。 另外從編程手冊的timeslice_sample.c這個例子來看,不同的線程調用同一個入口函數,實際上就是將函數的參數及局部變量複製到不同線程的堆棧中,這樣就可以實現

原创 RTT之通訊和同步

同步的方式: 1、信號量: 工作機制: 包括兩個部分: 信號量的值: 對象實例數目、資源數目。 線程等待隊列:申請該信號量的線程。 可以看到信號量的相關管理操作最後都是調用了RTM_EXPORT(rt_sem_create);開頭的函數?

原创 RTT之FinSH組件添加(含啓動流程分析)

FinSH,類似於linux的shell,對於調試階段還是很有用的,可以在完成整個程序時再關上,就是了。 常用的就是msh()模式,即shell模式,另一個C-Style模式,類似於調用C函數名的方式,不常用。 Fish的執行過程: 1

原创 RTT之內核對象模型要點

雖然也操作的串口設備,但要整體寫這個項目程序,還是感到無從下手,既然要把RTT掌握,那麼系統看一遍編程手冊,還是挺有必要的。之前也看過幾個部分,但沒有記錄,發現遺忘的特別快!