① 在PIC單片機中,如何利用匯編程序改寫為C語言程序,方便於閱讀和移植
這個你要先了謹遲解匯編的語法搜晌圓,你將匯編世塌程序按照C的形式改過來試試.如果程序可以用,那麼再修改C程序,方便閱讀.
② 怎麼把程序導入單片機中
如何將已編好的程序塊導入源文件,有兩種方法:
1.打開所要導入源文件的功能塊,在LAD/STL/FBD編輯窗口中選擇菜單FILE-->Generate Source...,輸入源文件名,選擇要導入的塊,點擊OK.後就可以在工程管理器裡面的SOURCE項下找到剛才生成的源文件.打開即可
2.首先在工程管理器裡面的SOURCE項建立一個源文件(打開SOURCE項,菜單:INSERT-->S7 SOFTWARE-->STL SOURCE).打開,菜單:INSERT-->BLOCK,在打開的界面選擇需要導入的塊.結果同上
③ 何謂操作系統的可移植性怎樣才能方便移植_如何實現程序的可移植性
是否需要修改代碼。
是否需要修改配置。
是否需要重新編譯。
是否能夠運行。
運行的結果是否正確。
「超過xx%代碼由C語言編寫,只有xx個函數是匯編,移植時只有xx個函數需要修改」。他們所關注的不外乎是操作系統本身從一個硬體平台移植到另一個硬體平台的難易度,這根顫凱櫻本就是捨本逐末的提法。試問,一個含嵌入式系統的產品中,操作系統重要還是應用程序重要?我們說嵌入式操作系統是嵌入式產業的核心,是針對整個產業來說的,畢竟,操作系統的裝機量遠大於任何一個運行於操作系統的應用程序。而對具體產品來說,則應用程序無論從哪個方面講都遠比操作系統重要。對一個企業來說,尤其如此,企業可能有非常多的衍生產品,他們同同一份操作系統拷貝,或者有許多產品系列,系列之間的操作系統也只是稍有不同。他們花在移植操作系統上的時間,遠小於應用程序的工作量,甚至可以忽略不孫此計。因此,操作系統茄叢的可移植性,應該把重點放在協助應用程序移植上,那才是可移植性的精髓所在。
djyos在這方面是非常出色的,舉個例子,如果某企業有兩個相似產品,產品L不需要顯示界面,產品H需要顯示界面,其他功能相同,在的djyos下,你可以輕易做到:
1、把軟體分成兩大塊,一塊是顯示部分代碼,稱為模塊A,另一塊是顯示無關代碼,顯示無關代碼完成產品的整體功能,調用顯示部分的功能實現界面顯示,稱為模塊B。
2、如果是si模式,AB一起編譯就是產品H,單獨編譯B就是產品L。編譯產品L時連模塊B中跟調用顯示功能的代碼都無需修改。
3、如果在dlsp模式下,則把模塊A編譯成A.out,模塊B編譯成B.out,把A.out和B.out一起到autorun目錄下就成了產品H,單獨B.out就成立產品L。
djyos的各模塊設置,無不是圍繞方便應用程序移植來設計,多事件調度器、泛設備組件、非同步信號同步功能、事件和事件類型同步、應用程序模塊載入器等,都為此做了許多考慮。今天很累了,暫不細說,在接下來的一段時間里,我將系列化發帖,講述djyos中如何協助應用程序可移植,以及軟體可移植性與可靠性之間的關系。
④ 如何把51程序移植到arm
一、准備
busybox 1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib 1.4
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
構建一個新的根文件系統目錄,路徑為
/root/rootfs
二、具體步驟:
1、編譯安裝busybox
在官網下載最新版。可以參考如下幾處要修改的地方:
Busybox Settings ---> Build Options ---> (arm-linux-)Cross Compiler prefix
Busybox Settings ---> Installation Options --->[]Dont't use /usr
Busybox Settings ---> Installation Options --->(/root/rootfs) BusyBox installation prefix
Busybox Settings --->Busybox Library Tuning --->[*] Fancy Shell prompts
輸入如下巧拆命令,編譯並安裝。
# make;make install
2、編譯安裝tslib
# ./孝晌棗autogen.sh
# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make;make install
安裝目錄指明為 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
謹歷主要是為了在編譯QTE時,不用指定tslib的頭文件和庫文件,方便以後程序開發。
注意:在做這一步前,需要做一個目錄鏈接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目錄下
# ln -s ../../usr/include ./
3、編譯安裝QTE
1)、最基本的配置
# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
-prefix /usr 使用這個配置,編譯後的QTE庫文件即可放在目標文件系統的/usr/lib下,而不是默認/usr/local/Trolltech/QtEmbedded-4.5.1 這個很深的目錄
2)、編譯
# make
# cp lib/* /root/rootfs/usr/lib -rd 將QTE庫文件拷貝到根文件系統的目錄
# cp plugins /root/rootfs/usr -rd 將QTE插件目錄拷貝到根文件系統的目錄
4、根文件系統的設置
1)、這時/root/rootfs/usr下應該有 bin etc include lib sbin目錄
tslib生成的etc目錄,包含一個tslib的配置文件 nf,編輯此文件,去掉mole_raw input前的注釋
# mv etc ../ 移動到rootfs的根目錄
2)、進行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so
3)、編輯etc/profile,添加以下內容
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/nf
export TSLIB_PLUGINDIR=/usr/lib/ts
最後,通過mkyaffs2image 製作鏡像,燒寫鏡像,啟動ts_calibrate校驗觸屏即可。
⑤ 如何將程序導入單片機
剛學51單片機,不知道怎麼把程序導入單片機,需要哪些器材,又如何連接?
這個得需要USB轉串口晶元,我建議你還是在淘寶上買一個能下載程序的最小系統板,也就幾十塊錢,或者直接花一百多塊錢買一塊開發板吧。當然,如果你喜歡動手的話,也可以自己做一個,可是做起來不是那麼好用,主要的晶元就是PL2303,還需要一鏈鉛個USB介面。
個人認為還是買個現成的吧,也就50元左右,不容易壞。望採納!!!!!
大家都是怎麼把程序導入單片機中的
Keil 與 protues 不需要有什麼連接的在 protues 裡面 畫好系統圖 後 只要 載入 你的 .hex 文件給 單片機 就可以了方法為 點單片機 右鍵 (編輯屬性)載入 找到.hex 文件 確定 就可以了。晌野
怎麼從電腦上把程序導入51單片機
把HEX文件燒寫到單片機內。
不同的單片機型號有不同的燒寫器。
如何將已寫好的程序導入89C51單片機中
使用串口線接到電腦的9針串口,然後使用STC軟體可以將HEX文件下載到單片機中去。
如果你的程序只是源代碼,那麼必須用keil編譯成HEX文件,才能使用STC軟體。
51單片機導入程序,如何接線
用pl2303u *** 轉串口,下載安裝好pl2303驅動,注意電腦系統的位數,pl2303正負極與單片機對應相連,TXD與RXD相連,RXD與TXD相連,用ISP工具,設置好hex文件,埠號,波特率,先拔掉電源,點下載程序,待電腦提示上電,插上電源,等待下載成功
如何把程序裝到單片機里?
以stc的單片機為例:
1、用keil編程軟體寫好程序,編譯輸出為hex和二進制文件
2、用串口電平轉換板(常用MAX232晶元來做),把電腦後面的口和單片機的(Rxd、Dxd引腳)相連,單片機還要接晶振和電源。
3、在電腦運行stc公司提供的STC-ISP軟體,把前面編譯好的hex文件裝到單片機里。
提到的軟體都可從網上下載獲得,電平轉換部分可以自己做也可以買編程器。
編輯好C語言程序,如何導入單片機
先要編譯,沒有錯誤就會生成一個「XXX.hex"的文件,這個文件就可以用燒錄軟體下載到單片機ROM。
單片機怎麼把程序寫進去啊
用單片機燒錄器,寫程序,51的單片機一部分AT89S51/52,STC用串口就可以寫程序。
單片機宴喚喊的Keil程序導入ISIS怎麼導啊
首先你得在KEIL中選中生成HEX文件。在protues中的雙擊單片機晶元 有一個選擇路徑的地方 把你的HEX文件選中導入就行了
⑥ 如何把8051單片機程序移植到arm上
這問題一看就是新手啊,新手直接用arm太快了。只能自己改,無法直接移植
⑦ 怎樣把單片機中的程序給拷貝出來
第一看單片機的型號,第二看加密的程度,你像在出廠時就已固化程序的晶元,是不能讀出的。一般的51系列,在烤程序後如果沒有選擇最高級別的加密,用相應的編程器是能讀出的,但讀出的只是二進制或十六進制的代碼,不管你的目的是什麼,但一定要尊重原程序員的勞動成果。
⑧ STC單片機的c代碼可以移植到stm32上嗎,要不要做什麼修改
換晶元,改電路,底層肯定要重寫的。
寫程序有個好習慣還是很重要的。下面說一下移植方面的習慣,
提高移植性,最重要的手段就是隱藏硬體實現的細節,把邏輯與底層分開。
舉個例子,LED閃一下亮一下,P1_0=0;在51上就鉛態李是一句話的事。就這一句,就有三個地方涉及硬體,(1)硬體上是P1.0接LED,(2)硬體上低電平亮,相應的是高電平滅,(3)硬體是用的51,用了51獨有的位操作。
換個電路,或者換個晶元,這些都要重新改寫。假設程序裡面有十個地方需要亮燈,移植時就要改十個地方。把亮燈這件事定義成一個函數,或者叫方法,或者叫操作,把具體的操作細節隱藏起來,只表示出做了一件什麼事情--亮燈。像這樣,voidLED_ON(void);在主程序裡面,或者說在應用層的程序中調用LED_ON();就是亮燈,具體怎麼亮燈,應用程序不管,也不能管,而是由單獨的底層程序來做,也就是LED_ON這個函數的內容,是放在單獨的一個文件中。用51,就寫一個51下的底層,要移植,要用CM3就寫一個CM3的底層,主程序可以不用改動,至少是盡量少改動。
為了提高移植性,盡量用標準的C寫代碼,涉及不同編譯系統的實現細節,也要注意隱藏細節,前面的槐遲硬體細節,這個算是軟體的細節吧。
比如sfr,sbit,interrupt這些,都是51獨有的,換到不同的系統上,都需要重寫。處理辦法也是一樣的,隱藏起來,放到單獨的底層文件中。
基本上,做到這兩步,程序的移植性會提高很多。
再舉個小例子吧:
//app.c
#include"bsp.h"//注意這里不要包含硬體有關的頭文件,比如"reg51.h",不要包含在這里。
voidmain(void)
{
while(1)
{
if(hasKey())
{
led_on();
delay(100);
led_off();
}
}
//bsp.h
typedefunsignedshortuint16_t;
typedefbitbool;
voidled_on(void);
voidled_off(void);
voiddelay(uint16_tms);
boolhasKey(void);
//bsp_for_51.c
#include"bsp.h"
#include"reg51.h"
sbitled=P1^0;
#defineON(0)
voidled_on(void)
{
led=ON;
}
voidled_off(void)
{
led=!ON;
}
voiddelay(uint16_tms)
{
inti;
while(ms--)
for(i=0;i<100;i++);
}
boolhasKey(void)
{
return(P0!=0xFF);//測試是否有按鍵?
}
這個是51的系統,換成STM32,簡閉慎單重寫一下bsp.c,不需要改app.c,系統就可以移植過來。
⑨ 如何把程序拷入單片機中
你必須要明白一點:VC6.0中寫的程序是絕對不可能使用在單片機中的!
對於單片機的程序編寫,需要專為單片機設計的編譯器,自然就有位單片機准備的編程語言:匯編、BASIC、C等等,絕對不會用VC來寫。
把寫好的程序編譯之後,通過專用的工具——下載線、編程器或者JTAG介面線等等——和專用的燒寫軟體把程序寫入單片機,注意,不是拷貝啊!這時這個單片機程序就像操作系統一樣支配單片機的運行了。
⑩ 通過一個單片機將程序下載到另一個單片機上
這得看你的你的開發板與你另外一塊的單片機的型號、管腳是否兼容。
如果兼容,那當然是可以的。銀讓納
如果,不兼容,恐怕就得看該單片機的數據手冊另外鋒沒想辦法了。
我舉個簡單的例子,我平時常用的51單片機,有AT89C51和STC89C51兩種。他們燒程序的方式就不同,AT89C51不支持ISP編程,只能用串口編程器燒寫,而STC89C51通過串口下滑汪載,接著還得上電。
一般來說,不同的晶元公司,為了商業保密,會特意設置一些東西與其他廠家相區別。