原创 基於gnu arm eclipse環境與stm32移植freertos 10.1.1

關於如何搭建stm32的gnu eclipse環境,請參考前述博文。 本文主要描述如何在gnu eclipse環境上移植freertos的步驟,具體原理請參考網文。本文移植兩種芯片stm32f103及smt32f030。 下面是freer

原创 gnu arm eclipse+jlink環境構建

  GNU MCU Eclipse是一款基於gnu工具鏈的eclipse插件,可以開發arm與risc-v處理器平臺軟件,重要是這是一款免費軟件,可以開發衆多系統平臺軟件,同時可以採用eclipse亮麗的代碼風格及增強可用性。下面就講一下

原创 vxWorks 串口輸出進度效果

vxWorks有個tffs0格式化時輸出格式化進度條: 其實這個比較簡單實現,在使用printf時加上一個\r即可。 如下面代碼: STATUS br() { int i = 0; while(i<100) { printf("%

原创 cyclone v hwlib使用問題

從demo工程開始 我使用的是quartus 17.1,在直接使用demo工程時會存在編譯問題。如果其它版本有問題,可以根據提示進行同樣的修改。 example工程在這個路徑下: intelFPGA\17.1\embedded\ex

原创 cyclone v cache原理、結構與使用

arm cortex a9 cache原理、結構與使用cache的概念與結構cache工作原理直接映射組相聯arm cortex a9結構cache無效與清除 cache的概念與結構 cache是CPU核內一塊小而快速的sram。cp

原创 cyclone v yocto開發環境搭建

工具下載 下載poky 下載poky,git clone git://git.yoctoproject.org/poky。 使用git remote -r 查看遠程分支: 可以看到poky有許多分支,我們使用rocko分支,使用

原创 如何寫註釋

寫註釋的關鍵指導原則就是儘量幫助讀者瞭解跟作者一樣多。 1、不必要的註釋 如果能從代碼本身看出的事實寫註釋。 這樣註釋完全多餘,從代碼本身就可以看出代碼的意思。 也不能使用跟代碼一樣的意思重複註釋,比如: //Find a Node w

原创 基於vxWorks的並行應用與設計筆記

1、多核應用 SMP AMP BAREMETAL hypervisor SMP:在多個核上跑一個操作系統。 優點:核間負載平衡, 性能線性提升, 缺點: 應用程序的競爭條件,應用需要重新設計以利用多核能力,實時性不如AMP AMP:在多

原创 vxWorks smp架構下互斥與同步

UP中關中斷,掛起任務等對臨界區保護的做法,在SMP中不再適用,因爲它阻礙了同時執行理念,降低了CPU利用率。主要不同是在taskLock與intLock上。SMP提供四中同步與互斥鎖: 任務與中斷級的spinLock 任務與中斷級CPU

原创 C語言中: va_list 解決變參問題

 VA_LIST 是在C語言中解決變參問題的一組宏,所在頭文件:#include <stdarg.h>,用於獲取不確定個數的參數  ——摘自百度百科 va_list 是一個字符指針,在代碼中可以理解爲指向當前參數的一個指針,這裏有幾個與 

原创 代碼要有美感

  使用好的留白,對齊及順序可以上代碼更加養眼。有以下三個原則可以參考: 使用一致的佈局,讓讀者很快就習慣這種風格。 讓相似的代碼看上去相似。 把相關的代碼分組,形成代碼塊。 1、使用一致性風格 編代碼過程中要做過代碼風格一致,而如果是

原创 不要使用容易被誤解的名字

編碼過程中要主動找到誤解點,多問自己幾遍該名字是否會被誤解成別的意思。 比如filter這個詞,大家可以理解成過濾,但是就比較不清楚,過濾是剔除還是保留呢? 1、推薦使用maxg與min來包含極限 編程時,經常爲用到最大值最小值宏的定義

原创 vxWorks SMP架構

1、vxWorks SMP架構硬件要求及特性 首先vxworks SMP要求兩個以上對稱處理器,可以是多核處理器,也可以多處理器。 其次要求處理器是可標識的,並且CPUS可以平等使用內存,外設。也就是說使用UMA架構。 如上圖所示: 每

原创 vxWorks SMP程序調度及親和性

vxWorks smp環境下,可以同時調度N個最高優先級任務。 1、CPU親和性 cpu affinity就是分配指定的中斷或者任務給指定CPU,分爲任務親和性與中斷親和性。在SMP環境下,任務可以執行在任務一個CPU,這樣通常能夠很好的

原创 vxworks 6.9下CANIO對SMP支持與CAN庫編譯問題

cyclone v SOC使用的bosch d can,vxworks6.9下有ti dcan驅動可以支持該IP。但是vxworks 6.9只支持UP架構的CAN驅動,對於SMP不支持。不支持的原因是CAN DEVIO中沒有增加對SMP支