A. STM32上能跑Android嗎對存儲器有什麼要求呢
不能。
Android系統需要百兆以上的處理器和數十兆的RAM空間。標准Linux需要處理器具有MMU(存儲器管理單元)。STM32滿足不了這兩點要求,所以STM32上是無法跑Android的。
STM32是M系列,屬於低成本設計,不帶MMU控制器,不可能運行Linuxuc,μClinux不算Linux的。因此基於STM平台且滿足實時控制要求操作系統,只有以下5種可供移植選擇。分別為μClinux、μC/OS-II、eCos、FreeRTOS和rt-thread。
(1)stm32存儲多個應用程序擴展閱讀:
STM32L 系列產品基於超低功耗的 ARM Cortex-M4處理器內核,採用意法半導體獨有的兩大節能技術:130nm 專用低泄漏電流製造工藝和優化的節能架構,提供業界領先的節能性能。
該系列屬於意法半導體陣容強大的 32 位 STM32 微控制器產品家族,該產品家族共有 200餘款產品,全系列產品共用大部分引腳、軟體和外設,優異的兼容性為開發人員帶來最大的設計靈活性。
STM32F0 系列產品基於超低功耗的 ARM Cortex-M0 處理器內核,整合增強的技術和功能,瞄準超低成本預算的應用。該系列微控制器縮短了採用 8 位和 16 位微控制器的設備與採用 32 位微控制器的設備之間的性能差距,能夠在經濟型用戶終端產品上實現先進且復雜的功能。
B. 在同一個stm32晶元中怎樣存儲多套程序
所謂的一個地址通常是指位元組地址,能存8位數據。如果是字地址,STM32字長32位,意味著CPU一次性從RAM或ROM中存取的數據是32位的。因此,STM32的地址必須是32位對齊的。
C. stm32的一款晶元說明「程序存儲器大小64 KB 數據 RAM 大小20 KB」這兩個存儲有什麼區別分別什麼異同
程序存儲器是flash,斷電後不會丟,ram是sram,斷電後會丟,sram的速度比flash要高一個數量級。通常放數據。程序一般放在flash中。
D. 一片STM32單片機能裝幾個具有main()程序
開啟一個定時器,在程序當前行和下一行代碼上打上斷點,調試,運行至代碼處,查看定時器計數寄存器值,再運行,繼續查看定時器寄存器值,計算出時間差。
看程序被編譯的匯編代碼,通過匯編代碼執行周期數計算時間。
E. stm32跟普通的51單片機在程序編寫方面有什麼區別
1、庫函數不同。由ST廠商推出的STM32系列單片機,ST廠商給了豐富的函數庫,可以直接使用庫函數,所以比起普通的51單片機在程序編寫方面要更加的省時。
2、運行速度不同。普通的51單片機運行速度較慢,特別是雙數據指針,而STM32系列單片機最高工作頻率可達72MHz。
3、便利程度不同。51單片機的任何器件只需要配置寄存器打開就可以進行編程,而STM32系列單片機則需要先打開對應的時鍾,包括開啟後打開外部時鍾(晶振)才開始工作。
4、資源不同。STM32的內部資源(寄存器和外設功能)較普通的51單片機都要多,基本上接近於計算機的CPU了,所以在程序編寫上能有更多的選擇。
5、編程語言選擇不同。STM32基本不會選擇匯編語言了,因為工程量巨大,寄存器太多了,位數也多,而51單片機則多使用匯編語言。至於C語言編程方面的區別就不大了。
參考資料來源:網路-stm32
參考資料來源:網路-51單片機
F. STM32單片機快閃記憶體存儲器里存儲的是哪些內容
先看rom也就是flash(0x0800 0000-0x0807 ffff)512k,這個空間就是用戶存放程序的地方,用戶以後自己寫boot loader的時候,也是存放在這個空間里的,system memory這個空間是2k大小,是st公司在生產完片子的時候,就固化好的isp代碼,用戶之所以能用上位機軟體燒程序就是靠這部分的代碼,用戶更改不了這個區域,想了解這個區域就看AN2606文檔,option bytes這個區域是16個位元組,是控制flash區域的寄存器,想了解這些寄存器看STM32F10xxx快閃記憶體編程參考手冊,SRAM這個區域的其實地址始終是0x2000 0000,終止地址就得根據你的SRAM的大小來進行計算了,這個區域就是程序運行時的臨時變數區,什麼堆棧都在這裡面
G. STM32最大能裝多大的程序
取決於晶元的類型
一般晶元全名為STM32F103VET6。。。
如果是VET就是512K,VDT是384K,VGT就是1024K,VCT就是256K,現在最大就是1024K
H. STM32怎麼把程序存儲在外部存儲器執行
你這是把STM32當ARM9用呀,你可以看看ARM9,a8,a9的啟動過程呀,你看看STM32有哪些功能么?就不要想這些,就算能那速度慢成渣了,本來主頻就慢,還在外部執行,又浪費一些匯流排周期。之前我也想過,要在外部執行都是需要初始化外部存儲器的,以模擬ARM9,A8,A9的啟動過程,首先從STM32內部flash啟動,裡面寫個Uboot,出初始化STM32的FMC或者FSMC介面上的norflash或者SRAM或者SDRAM,如果程序存在nandflash上,還要初始化nand,然後把nand拷貝到SDRAM或者norflash或者SRAM;然後uboot跳到拷貝程序的地方執行;STM32還要設置MPU,讓匯流排可以訪問到FMC或者FSMC的地址空間;這還是理論,更本沒法實施,所有的地址控制都要自己手動操作,我想著都頭痛了,而且自己又不對cortex-M3或者cortex-M4了解的很透徹,中間遇見的問題可想而知,你有足夠的時間可以想想,但是那樣還不如直接用cortexA系列,別人硬體就支持這些外部啟動。。。