导航:首页 > 操作系统 > 单片机程序如何做到方便移植

单片机程序如何做到方便移植

发布时间:2023-05-12 00:04:49

① 在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通过串口下滑汪载,接着还得上电。
一般来说,不同的芯片公司,为了商业保密,会特意设置一些东西与其他厂家相区别。

阅读全文

与单片机程序如何做到方便移植相关的资料

热点内容
苹果手机头条app怎么没有tv 浏览:563
电脑qq文件夹怎么发不出去 浏览:613
解压小游戏测试钻石剑的硬度 浏览:962
java结束函数 浏览:622
打开远程桌面的命令 浏览:836
树莓派如何搭建mqtt服务器 浏览:587
怎么加密w8文件 浏览:609
linuxprogram 浏览:708
php接口编程思想 浏览:92
如何下载电话软件app 浏览:906
java命令行解析 浏览:572
云服务器白嫖 浏览:917
程序员小清新 浏览:989
编译器地址8字节对齐 浏览:464
三菱plc编程win1064 浏览:258
高中英语单词pdf 浏览:425
编译原理词法分析常见问题 浏览:197
车小艺app怎么更新 浏览:77
手机app被管控如何移除 浏览:753
51单片机温湿度检测 浏览:575