1. 程式人生 > >STM32與S3C2440的區別(9月3日草稿)

STM32與S3C2440的區別(9月3日草稿)

在學習嵌入式的路上,我們可能會接觸到這兩個比較典型的MCU。其中最大的區別就是S3C2440能跑linux作業系統,常常作為學習嵌入式linux的硬體平臺。可能大家會問既然S3C2440能跑linux作業系統,似乎比stm32厲害多了,為什麼不直接去學習S3C2440呢?
下面我就大概解釋一下大家遇到的困惑:

1.先來說說stm32
stm32是ST公司推出的基於Cortex-M3核心的MCU,stm32最高工作主頻為72M,STM32憑藉其產品的多樣化、極高的價效比、簡單易用的開發方式,迅速在Cortex-M3核心MCU中脫穎而出,佔領了絕大部分中高階MCU市場。

先說第一個,這區別大了,mcu架構不同完完全不相同.stm32沒有mmu只能跑uclinux之類的.
嵌入式大體可以分三大部分,硬體電路,驅動程式,應用開發.電路不用說了基本就是元件pcb焊接,驅動程式處於中間部分是最難的,和硬體直接相關,核心級除錯也是難點.一般的你買個開發板著兩個部分都已經包括了,別人都給你做好了,其實這裡面的門道大著哩.
有了驅動程式應用程式面對的就是作業系統級程式設計了,這部分和你在pc上用gcc差別不大.不然要作業系統做什麼呢.
對了還有一個核心移植,其實就是把所有的核心程式碼按你的定製重新編譯成能在你的U上執行的核心…
追問
我對你的回答很滿意,還有一個問題,希望你給我解答解答。是不是說S3C2440要比STM32功能要強?如果是這樣是不是STM32能做的S3C2440也都能實現。如果我現在學好了微控制器,是不是直接可以買個S3C2440開發板學習嵌入式呢!謝謝
追答
另外還有一個誤區就是cpu快了就什麼功能都能實現了,其實這是不對的.帶mmu的可以虛擬記憶體,更適合多道程式執行多工處理,但很遺憾不是用在哪裡都合適的。
舉個例子:嵌入式往往針對某一特殊需求而設計,比如你要設計製作一臺高速儲存示波器,那麼前端的模擬放大和ad轉換是很關鍵的部分,假設你希望有1G的輸入頻寬,沒有哪個cpu會有如此高的AD取樣速度(片上能到10M已經不容易了),只有使用單獨的高速AD專用晶片再加上模電的一些小技巧才能實現。這個系統裡cpu做什麼呢,基本上就是維護介面和儲存,介面不會太複雜,能在液晶上畫圖顯示幾個數就行了,基本不需要window視窗什麼什麼的,多工也不需要。儲存的部分你可能會想我的系統記憶體多能派上用場,錯了,假設你希望儲存10分鐘的原始資料你可以算算這個資料量非常龐大,記憶體根本用不上,最好的辦法就是通過dma直寫高速sd卡。最後還剩下什麼事情可做呢就是驅動幾個按鍵和lcd,頂多再加個通訊什麼的,這時候你會選哪個cpu呢,當然是能完成設計有最便宜最簡單的哪個。