回覆列表
  • 1 # 橋的那邊

    我認為應該學習一下51和STM32,但是僅限於學習它的原理並瞭解它的應用,不用用來做太複雜的東西。利用51和STM32鞏固自己的C基礎、資料結構、計算機組成原理等基礎。

    階段一

    《The C Programming Language》【美】Brian W. Kernighan David M. Rithie;

    《UNIX 環境高階程式設計》(沒必要一口氣看完當字典使也是不錯的);

    《UNIX 網路程式設計》(同上);

    以上兩本書重點:程序,執行緒,IPC以及基於socket的網路程式設計章節是重點,要掌握基於select/poll/epoll的高併發伺服器模型;

    看完這兩本之後寫一些小軟體玩玩,天氣預報,計算器(逆波蘭),網路聊天室之類的,此外看一些開源庫,推薦libevent(對於初學者來說難度很大,不過這不是不看的理由),以此強化C語言,加深對網路程式設計和執行緒相關概念的理解及應用。

    階段二

    此時,題主可以買個STM32的開發板玩玩(基於庫開發和暫存器開發都要會),一定要熟讀datasheet以及STM32參考手冊,這期間一定要將常見的介面與匯流排搞明白了,如:串列埠,IIC,SPI,CAN,乙太網介面,SD和SDIO等,然後題主可以用其做一些小玩意,如:體溫計,平衡車,小四軸等等;

    一定要多動手,多練,多動手,多練,多讀晶片datasheet,別做伸手黨……

    然後嵌一個uCOS或者FreeRTOS玩玩,瞭解一下這些輕量級作業系統的原理,網上有一些電子書籍,題主可以自行查詢,推薦邵貝貝的書。

    階段三

    這一階段題主需要買一個ARM開發板了,可以選擇ARM+FPGA或者ARM+DSP,題主可以自行上網瞭解一下具體買哪一個

    這時需要的書籍如下:

    《鳥哥的linux私房菜》(linux平臺下的各種命令一定要熟爛於心啊);

    《Linux與Unix Shell程式設計指南》(此書已絕版可以買二手,影印或者下電子版);

    《ARM體系結構與程式設計》(杜春雷著,一定要配合UBOOT看);

    《Linux裝置驅動開發》(LDD);

    《Linux裝置驅動開發詳解》(宋寶華);

    《深入理解Linux核心》;

    《Linux核心原始碼情景分析》(毛德操著);

    還有一些只要是程式設計就需要掌握的理論基礎:

    《演算法導論》;

    《資料結構與演算法分析》;

    《深入理解計算機系統》;

    《作業系統:精髓與設計原理》;

    《編譯原理》;

    為了紮實C語言還有如下不錯的書:

    《C和指標》;

    《高質量C++/C程式設計

  • 2 # 電子汪內心獨白

    如果是linux下的嵌入式開發,可以用vim或者visual studio code進行開發,也可以用sourceinsight在windows下寫完再複製到linux下編譯。總之,sourceinsight還是非常不錯的一款看程式碼和寫程式碼的軟體,結構非常明確,即使是一份陌生的程式碼,也能很快縷清頭緒!希望可以幫到您!

  • 3 # 長風凌空

    瀏覽到這個問題,覺得自己確實有建議可以分享一下。前提是51、STM32、Nordic的電路設計算嵌入式設計。

    1、寫程式碼建議MDK

    我最先使用的微控制器是STC89C51微控制器,剛開始接觸的時候使用的彙編,後來發現改這個程式碼太麻煩,當然也是水平不足的原因。偶然間使用了C語言,然後用MDK編譯一下,然後直接燒寫到微控制器就能跑起來。

    當然爽呆了,別說彙編改寫了,修改定時器的中斷時間連所謂的暫存器都沒好好看過,但是程式能跑就行。所以在入門的時候使用MDK寫程式和編譯最方便。

    現在工作中使用比較多的是STM32,這個基於ARM的MCU使用起來比C8051核的51微控制器確實複雜一些。就簡單的使用一個GPIO的輸出,就得設定時鐘,設定頻率,設定為輸出,一大堆流程。

    不過ST終究是一家有同情心的公司,人家提供了基於MDK的SDK呀,咱們呼叫初始化函式就OK。然後再照葫蘆畫瓢就能進行自己的設定了。而且,J-link的下載都在MDK中完成了,多舒服。

    2、閱讀程式碼可以選擇Visual Studio Code

    我是個菜鳥工程師,混日子的那種,所以在不會的時候會選擇向論壇的大佬求救。比如使用Nordic的晶片時,需要驅動音訊,驅動音訊的方案不少,但是基本是基於STM32和ESP的。

    大佬給的例子程式也是基於他們的,這裡就有一個問題那就是IIS匯流排的使用還是有很大的區別。光是抄寫已經不能解決問題,就需要自己根據datasheet和大佬的例子自己寫程式碼了。

    有一點大家都很清楚,既然是幫忙,總不能發給你一個完整的程式,自己編譯就能用吧。能給一個c檔案和h檔案已經是慷慨了,這個時候自己看看程式碼,按照datasheet寫點底層驅動時候就不用MDK了,一是已經使用MDK在編寫程式了,二是咱們辦公室的電腦配置也就那樣,開啟慢。

    這個時候使用一款介面看起來舒服,支援檔案編寫的就行,按照這個需要可以考慮Visual Studio Code。哈哈,不要覺得這個軟體只能看,人家也是有真本事的。

    很多具有一定開源性質的專案就使用的這個,上次參加論壇的 GD32 DE mcu試用活動,因為編譯需要安裝了PlatformIO外掛,是可以編譯程式的。而且這裡的程式構建,採用的是Makefile的形式。

    就推薦這兩款了,軟體的使用見仁見智,最終還是得選擇最適合自己操作習慣的那款。

  • 4 # KINGE

    嵌入式針對平臺而言,單純的控制寫裸板程式碼的話:ARM和51系列的板子,推薦Keil MDK 和Keil C51,或者使用IAR,更或者是晶片平臺推薦的IDE,Code::Blocks對嵌入式程式設計支援也挺好的。

    寫基於各種嵌入式平臺的應用軟體,標準作業系統平臺,比如Android和Linux,那麼Qt跨平臺GUI,Android下的Android Studio,Linux下的各種程式碼編輯軟體都可以。其他的嵌入式系統比如ucos,rtos,也是推薦Keil和IAR等。

    看程式碼軟體就很多了,VSCode,Vim/Vi

    ,Atom這些支援程式碼語法和高亮的都可以,亦或者直接使用IDE檢視程式碼。

  • 5 # 搖椅小琦

    以前一直用ue(UltraEdit)的,ue操作簡單,可以列模式操作,又能比較,空間佔的也少,現在用vscode,這個工具實在太強大了

  • 6 # louis0752

    取決於開發平臺。首選晶片支援的工具,比如可以選擇stm32cubeide ,其次用notepat++也很不錯

  • 7 # Shaka0723

    如果是stm32,那麼stm32cubemx生成初始化程式碼,vscode寫程式碼,keil除錯。如果是51,那就keil了,vscode寫程式碼和讀程式碼都是非常好的選擇。外掛多

  • 中秋節和大豐收的關聯?
  • 和鄰居同時建房同一塊地交接的牆怎樣隔開?