導航:首頁 > 操作系統 > 單片機移植

單片機移植

發布時間:2022-03-01 13:09:47

㈠ μC/OS在51單片機移植

我剛移植成功,你要的話我給你資料。發我郵箱詢問。
[email protected]

㈡ 如何把程序移植到單片機里,萌新要自己動手做的話有哪些方法,具體點呢謝謝

如果是STC單片機的話因為有ISP功能,下載STC_ISP軟體從串口下載到單片機。如果是普通的單片機,需要用編程器燒錄到單片機。

㈢ 在51單片機完成μC/OS-II的移植

網上自己找找資料,自己搞吧,你知道系統移植的工作量有多大嗎?

㈣ 程序能不能在各種單片機之間互相移植,比如三個32位單片機

單片機是指將cpu、存儲器、外圍介面集中在一片晶元上,所以ARM也是單片機的一我覺得應該不是了,算是處理器了 很明確地告訴你,是的。而ARM的功能

㈤ 單片機程序移植

「如果我把晶元接到開發板上,利用開發板上的硬體調試完程序後,取下晶元直接連接電路就能正常工作了嗎?需不需要連接其他的電路(比如晶振電路)?」

當然不可能。至少還需要電源電路、復位電路和時鍾振盪電路(可選),並且這幾個部分稍有差池也是會導致晶元不能正常工作的。

「我開發板上的單片機介面是32針腳的,如果我的單片機不是32針腳的能接上去下載、調試程序嗎?」

請查閱你的開發板手冊。有些開發板是可以支持的,例如雖然留雙列32腳插座,但是同廠家同系列的24腳單片機也可以插上進行調試開發。

㈥ 51單片機程序移植問題

1.12和89還是有很多差別的,尤其是LCD1602中的相關延遲函數,12跑的快,89跑的慢,移植的時候要考慮,機器周期的不同,要不就會顯示錯誤。你改一下相關延時就可以用了

㈦ 有關單片機移植操作系統。

操作系統,是個龐然大物,但是大家都很喜歡,因為他能幫你做很多你不願意麵對的事。他能提供很好的底部的支持。就說樓上舉的QQ的例子吧,QQ就是一款軟體,你往對話框里寫字,然後通過網路傳到另一台用戶端。如果你有操作系統,你跟操作系統說,我要個窗戶,他就給你窗戶,我要聯網,改一改IP你就能上網了。中間的網路協議也不要你管了,什麼TCP IP也不用你看的吐血了。
要是沒有操作系統,你要生成一個對話框?只有你自己一條一條代碼的寫了,對話框寫進去的字,你自己想辦法變成文件,自己想辦法打包,使之符合網路協議,自己做網孔,自己通信吧。
那感覺就是你要生火,一個人說(操作系統),我有打火機,你自己用。另一個說(沒有操作系統),我這有鐵礦,還有天然氣礦,都給你了,你想做什麼打火機都可以。

說到這里,兩者的差別就很好說了。
1.操作系統是很方便,提供打火機耶!前提是你要開個小賣部,你才有打火機提供你丫。小賣部很佔地方的!這里就會無情的佔用你單片機少的可憐的地方,一般單片機可以存儲的程序不會超過1M(外接存儲設備的除外),而一個未裁剪的linux系統,200M,即使裁剪了,大小可能遠遠大於你能承受的范圍,再者為了買一個打火機,你建一小賣部,不是吃多了么!
2.單片機提供的東西很少,只有原始材料,如果你要生火,做個打火機,的確困難了點。轉木取火這時候就比較現實了。至少比建個小賣部好吧!

說這么多,看問題。
1.裝上了操作系統(比如linux、uc/os-2、winCE等),與不裝操作系統最大的區別是什麼?
裝了,你就是建了小賣部,占的地方大,如果你需要的功能很小,完全是白費力,還不如轉木取火。
沒裝,你就是轉木取火,佔地少,找個角落一蹲,默默操作去吧。

2.也就是說,裝上了系統,能實現什麼更多的功能?
這是當然的,小賣部,絕對不止賣打火機,什麼時候你要醬油了,跟老闆說聲,老闆馬上進貨,
你要是單片機,孩子,火生好了,自己找個配方,自己配醬油去。

3.如果說完成了一個項目,如果這個項目以後的功能需要擴展,裝上了系統的單片機對於不裝系統的單片機來說有什麼優勢?
小賣部有了,最開始賣打火機,後來又賣醬油,以後你萬一再要什麼(功能擴展),跟老闆說一句就好了。
要是單片機,醬油配好了,我還想要白糖呢。你給我種甘蔗去。

總結:如果是一個巨大的項目,操作系統是必備的,他能提供很多支持,做很多基層的工作,方便以後的升級。但是他的維護和他所消耗的資源(空間),也成為了它在單片機領域推廣的致命傷。所以相反的如果你只要某個功能(生火),不裝操作系統明顯方便,而且易於維護(木頭棒子壞了,再找一根唄!),如果你要這要那,我的天,我寧願造個小賣部。

㈧ 把51單片機的程序移植到STM32中。感覺好難移啊,哪位能幫幫我木。。

如果是用C語言寫的話,任何單片機之間都很好移植,不同的只是不同晶元的寄存器和自帶的硬體而已,一般只需改初始化的部分,工作部分幾乎不用變。

㈨ STC單片機的c代碼可以移植到stm32上嗎,要不要做什麼修改

換晶元,改電路,底層肯定要重寫的。
寫程序有個好習慣還是很重要的。下面說一下移植方面的習慣,
提高移植性,最重要的手段就是隱藏硬體實現的細節,把邏輯與底層分開。
舉個例子,LED閃一下亮一下,P1_0 = 0; 在51上就是一句話的事。就這一句,就有三個地方涉及硬體,(1)硬體上是P1.0接LED,(2)硬體上低電平亮,相應的是高電平滅,(3)硬體是用的51,用了51獨有的位操作。
換個電路,或者換個晶元,這些都要重新改寫。假設程序裡面有十個地方需要亮燈,移植時就要改十個地方。把亮燈這件事定義成一個函數,或者叫方法,或者叫操作,把具體的操作細節隱藏起來,只表示出做了一件什麼事情--亮燈。像這樣,void LED_ON( void );在主程序裡面,或者說在應用層的程序中調用LED_ON();就是亮燈,具體怎麼亮燈,應用程序不管,也不能管,而是由單獨的底層程序來做,也就是LED_ON這個函數的內容,是放在單獨的一個文件中。用51,就寫一個51下的底層,要移植,要用CM3就寫一個CM3的底層,主程序可以不用改動,至少是盡量少改動。
為了提高移植性,盡量用標準的C寫代碼,涉及不同編譯系統的實現細節,也要注意隱藏細節,前面的硬體細節,這個算是軟體的細節吧。
比如sfr, sbit,interrupt這些,都是51獨有的,換到不同的系統上,都需要重寫。處理辦法也是一樣的,隱藏起來,放到單獨的底層文件中。
基本上,做到這兩步,程序的移植性會提高很多。
再舉個小例子吧:

// app.c
#include "bsp.h" // 注意這里不要包含硬體有關的頭文件,比如"reg51.h",不要包含在這里。
void main( void )
{
while(1)
{
if ( hasKey())
{
led_on();
delay(100);
led_off();
}
}

// bsp.h
typedef unsigned short uint16_t;
typedef bit bool;
void led_on( void );
void led_off( void );
void delay( uint16_t ms );
bool hasKey( void );
// bsp_for_51.c
#include "bsp.h"
#include "reg51.h"
sbit led = P1^0;
#define ON (0)
void led_on( void )
{
led = ON;
}

void led_off( void )
{
led = !ON;
}

void delay( uint16_t ms )
{
int i;
while( ms-- )
for( i=0; i<100; i++);
}
bool hasKey( void )
{
return ( P0 != 0xFF); // 測試是否有按鍵?
}

這個是51的系統,換成STM32,簡單重寫一下bsp.c,不需要改app.c,系統就可以移植過來。

㈩ 51單片機能移植操作系統么

嚴格的說,51不能移植操作系統。但實際上51可以一直一個叫「多任務系統」的類似於操作系統的系統(這個我親自試過),其它的能移植的就不知道了。ucosII是不能移植到51上的。在多任務系統中:用戶程序是和系統一起載入到ROM的。51單片機P0口可做硬體地址匯流排連接片外ROM,這個了解匯編的應該清楚。還有就是有一種燒寫叫ISP,這種方法可以先吧程序存到SD卡中,再寫個引導程序,讓單片機自己給自己下程序,這個方法實際應用與ARM9,51理論上也可以。51升級版(如STC12C5A)有較大的ROM,可省去片外ROM。但即使這樣,也難以保證操作系統的需要。關於第三個問題:我只能說應用目的和功能差不多,實際有非常大差別,無論是通信協議還是使用方法還是速度都有差別。
最後要說的是,要用操作系統首先要了解操作系統,知道為什麼用操作系統,用操作系統為了「趕時髦」只能是自己給自己添堵。。。根據我的經驗,程序源代碼少於30K,RAM 少於5K的一般沒必要用操作系統,用中斷、DMA、單片機自帶的各種硬體功能完全可以實現。以51的硬體能力上操作系統本人目前沒發現有什麼實用價值。

閱讀全文

與單片機移植相關的資料

熱點內容
並行編譯技術的發展 瀏覽:538
阿里雲伺服器安裝管理 瀏覽:548
java手機開發教程 瀏覽:672
我的世界怎麼刪除伺服器數據 瀏覽:669
linux內存子系統 瀏覽:970
加密思維幣 瀏覽:689
魅族訪客文件夾 瀏覽:50
添加的文件夾怎麼找 瀏覽:616
程序員涉黃 瀏覽:699
maven編譯resources下的js 瀏覽:520
ubuntu文件移動命令 瀏覽:228
安卓i怎麼查找蘋果手機 瀏覽:949
雲伺服器宕機概率 瀏覽:232
在線買葯用什麼app知乎 瀏覽:815
ubuntu解壓xz文件 瀏覽:676
宏傑加密時電腦關機 瀏覽:390
自己寫單片機編譯器 瀏覽:600
單片機按鍵閃爍 瀏覽:382
為什麼icloud總是顯連接伺服器失敗 瀏覽:890
如何設置域控伺服器 瀏覽:740