『壹』 為什麼稱FreeRTOS為輕量級OS,和linux相比,有哪些具體的區別
簡單地說,Linux是一套免費使用和自由傳播的類Unix操作系統,它主要用於基於x86系列CPU的計算機上。這個系統是由世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟體的版權制約的、全世界都能自由使用的Unix兼容產品。其最大的缺點就是開源! Mac系統是蘋果機專用系統,是基於Unix內核的圖形化操作系統,一般情況下在普通pc上無法安裝的操作系統。 Microsoft開發的Windows是目前世界上用戶最多、且兼容性最強的操作系統。 Windows、Linux和Mac的編譯程序比較,這些操作系統所使用的文件系統各不相同且差異極大。它們使用的磁碟、目錄、文件和路徑表示方式也完全不同。
Windows、Linux和Mac平台上的桌面(圖形用戶界面)程序、控制台(「DOS外觀」,字元用戶界面)程序或伺服器(或後台)應用程序(無界面)大不同。
Mac OS X操作系統中採用的BSD核心被人們稱作Darwin(達爾文)。它是一個完全獨立的組件。Darwin軟體本身來自於NeXT公司開發的NextStep操作系統的BSD層。NeXT公司是史蒂夫?喬布斯在80年代離開蘋果公司之後創建的。從技術上說,Mac OS X操作系統是以FreeBSD內核為基礎的。OS X 10.3是以FreeBSD 5.x為基礎的。然而,Mac OS X已經超出了基本的BSD代碼,完全是個性化設計的。Mac OS X的關鍵優勢在於其Aqua GUI(圖形用戶界面)。這個圖形界面能夠讓OS X系統像原來的Mac OS X操作系統一樣運行,但是同時具有一個高效率的BSD內核的全部優點和靈活性。
與Windows操作系統和Mac OS X操作系統不同的是,Linux操作系統擁有兩套主要的圖形介面。兩種介面表現為不同的項目如控制面板,將剪切與粘貼操作復雜化,並要求程序員必須知道他們所用的各種成分如對話框或者下拉菜單是以什麼作為基礎的。 盡管三種操作系統各有特點,但一些特點比其他特點更重要一些。微軟之所以成為操作系統之王的原因是,它明白「成本為王」這一道理,它的操作系統能夠在任意數量的PC上使用,因此成本低於Mac OS。Linux沒有受到成本的影響,因此,盡管Mac OS目前是第二大台式機操作系統,但Linux一定能夠取而代之,時間也許就在2年內。但在超越Mac OS之前,Linux需要擁有一個「易於使用而且與Windows沒有差別的」圖形用戶界面,考慮到市場規模,這一點一定能夠實現。 我的電腦裝了windows XP和 Linux Ubuntu10.04雙系統!
『貳』 freertos和ucos哪個更適合於學習
個人認為uCOS更適合作為學習RTOS的。它提供了完整的C源代碼,在多種CPU上移植的常式,完整的講義。這些都是學習必須的。
『叄』 如何將linux下的程序,移植到freertos中
方法/步驟
嵌入式操作系統有分時操作系統和實時操作系統,如果操作系統能夠使計算機系統及時響應外部事件請求,並能控制所有實時設備和實時任務協調運行,且能在一個規定的時間內完成對事件的處理,怎麼這種系統稱為實時操作系統。
如果系統必須在極其嚴格的時間內完成的任務叫做硬體的實時操作系統,如果不是很嚴格的話就是軟體的實時操作系統。
『肆』 Cube FreeRTOS操作系統Task優先順序與中斷優先順序的關系是怎樣的
這個不應該吧,基本的FreeRTOS怎麼可能佔32K,是你的keil沒有許可碼吧,32K絕對是裝的下的,應該FreeRTOS只有十幾K(我只用用過RTT,FreeRTOS是官方自帶的我編譯過沒有那麼大);Flash選64或者128的就夠了。」嵌入式系統「和」操作系統「不是一個概念。如果你說的是操作系統,可以的。一般微控制器用在工業控制領域,需要對外界事件快速做出反應,一般安裝的是實時操作系統。常見的有VxWorks(NASA的航天設備用的)uClinux(有些路由器裡面的),FreeRTOS,uC/OS等。
『伍』 freertos可不可以鏈接c++編譯的庫
單個動態庫可以有兩個同名函數,但是不能同時導出來,不然會出錯,不同動態庫可以有同名函數,運行時載入不會有問題,編譯時指定會有想不到的運行結果。
單個靜態庫可以有同名函數,但是某些編譯器不支持,不同靜態庫之間也可以有同名函數,但如果函數簽名也一致,使用的時候會編譯錯。
『陸』 FreeRTOS 的編譯器是否可以使用gcc++, 是否支持C++11
# rpm -qa|grep gcc
gcc-c++-3.4.6-3
compat-gcc-32-3.2.3-47.3
libgcc-3.4.6-3
gcc-3.4.6-3
gcc-g77-3.4.6-3
compat-libgcc-296-2.96-132.7.2
compat-gcc-32-c++-3.2.3-47.3
...
用命令 rpm -qa | grep gcc查看。
然後用gcc -v 查看版本號,
便可知道是否已經安裝。
『柒』 stm32 跑 FreeRTOS 要多大的Flash比較好
這個不應該吧,基本的FreeRTOS怎麼可能佔32K,是你的keil沒有許可碼吧,32K絕對是裝的下的, 應該FreeRTOS只有十幾K(我只用 用過RTT,FreeRTOS是官方自帶的我編譯過沒有那麼大);Flash選64或者128的就夠了。
『捌』 stm32中跑freertos,請問在該板子上能運用fopen()之類的C庫函數嗎
先看看是不是你任務棧空間設置太小,溢出了? 不是的話,你可以在HardFalut下斷點,停下後看函數調用堆棧,看在產生HardFalut之前都調了什麼函數。
『玖』 freertos源碼包vs常式用什麼打開
你想調用你的模型,最簡單的法是看examples/cpp_classification裡面的cpp文件,那是教你如何調用caffe獲取分類結果的(你沒接觸過caffe的話,建議你直接按照這個文件來操作可能會比較簡單,下面我的代碼我也不知道沒接觸過caffe的人看起來難度會有多大)不過那個代碼我看著不太習慣,所以之前自己稍微寫了一個簡易的版本,不知道怎麼上傳附件,懶人一個就直接把代碼貼在最後了。先簡單解釋一下如何使用,把這個代碼復制到一個頭文件中,然後放在examples裡面一個自己創建的文件夾裡面,然後寫一個main函數調用這個類就可以了,比如:復制,保存到caffe/examples/myproject/net_operator.hpp,然後同目錄下寫一個main.cpp,在main函數裡面#include"net_operator.hpp",就可以使用這個類了:conststringnet_prototxt="";//你的網路的prototxt文件,用絕對路徑,下面同理conststringpre_trained_file="";//你訓練好的.caffemodel文件conststringimg_path="";//你要測試的圖片路徑//創建NetOperator對象NetOperatornet_operator(net_prototxt,pre_trained_file);Blob*blob=net_operator.processImage(img_path);//blob就得到了最後一層的輸出結果,至於blob裡面是怎麼存放數據的,你需要去看看官網對它的定義寫完main.cpp之後,到caffe目錄下,make,然後它會編譯你寫的文件,對應生成的可執行文件。比如按我上面寫的那樣,make之後就會在caffe/build/examples/myproject文件夾裡面生成一個main.bin,執行這個文件就可以了。因為生成的可執行文件並不是直接在代碼目錄下,所以前面我建議你寫的路徑用絕對路徑另外如果你要獲取的不是最後一層的輸出,你需要修改一下processImage函數的返回值,通過NetOperator的成員變數net_來獲取你需要的blob,比如有個blob名稱為"label",你想獲取這個blob,可以通過net_->blob_by_name("label")來獲取,當然獲取到的是shared_ptr>類型的,搜一下boostshared_ptr就知道跟普通指針有什麼不同了
『拾』 如何在stm32上移植Freertos
1.前言
【1】其實說不上移植筆記,FreeRTOS已經移植至眾多平台(MCU),包括MSP430,STM32等,這份筆記完全建立在官方代碼的基礎之上,簡單的說就是修改一些設置從而完成一個呼吸燈實驗。
【2】雖然有官方移植代碼,但是官方移植版本為STM32的V2.X庫,與現在流行的V3.5有比較大的區別。本筆記也是總結網上幾篇學習筆記,主要說明如果使用V3.5庫,需要做哪些修改。
【3】編譯軟體為IAR EWARM 6.5。
【相關博文】
【FreeRTOS學習筆記——任務間使用隊列同步數據】——如何使用FreeRTOS隊列。
【如何在FreeRTOS下實現低功耗——MSP430F5438平台】——如何通過空任務實現系統低功耗。
2.FreeRTOS需要哪些文件
FreeRTOS的文件結構非常簡單,移植或者版本升級替換也非常方便。
1)與FreeRTOS內核有關的文件數量僅為3個,分別是list.c queue.c tasks.c
該文件位於FreeRTOS\Source
2)與內存分配有關的文件共有4個,分別是heap_1.c,heap_2.c,heap_3.c,heap_4.c。4個文件只需選擇其中的1個,STM32選擇heap_2.c。
該文件位於FreeRTOS\Source\portable\MemMang
3)與移植相關的代碼包括port.c,portasm.s,portmacro.h。這些代碼不但和編譯器有關還和平台(MCU)有關。FreeRTOS先以編譯器為大類,然後再以平台(MCU)為小類。在這里選擇IAR編譯器,平台為ARM_CM3。
該文件位於FreeRTOS\Source\portable\IAR\ARM_CM3
4)除了上述內容之外,還包括FreeRTOS內核相關的頭文件。
該文件FreeRTOS\Source\include
3.必要的工程設置
開始之前需要引入V3.5庫相關頭文件,啟動代碼和CMSIS庫。
在IAR中設置相關頭文件的路徑(應根據實際情況修改)
$PROJ_DIR$\CMSIS
$PROJ_DIR$\StdPeriph_Driver\inc
$PROJ_DIR$\User
$PROJ_DIR$\FreeRTOS\Source\include
$PROJ_DIR$\FreeRTOS\Source\portable\IAR\ARM_CM3
當然頭文件的路徑並不是絕對的,只要明確頭文件在哪,設置正確路徑即可。
除了設置C代碼的相關頭文件之外,還需要設置匯編代碼的頭文件路徑,由於很少設置匯編代碼頭文件路徑,往往初次移植FreeRTOS會在此處遇到一些「困難」。