ANSIC程序到KeilC51的移植心得】的更多相关文章

摘要:本文讲述了将ANSIC程序移植到KeilC51上应该注意的事项.文章讲述了存储类型.指针类型.重入函数.根据目标系统RAM的分布的段定位和仿真栈设置.函数指针.NULL指针问题.字节顺序.交叉汇编等移植时需要注意的事项.对存储类型.指针类型.重入函数对程序的效率的影响进行了分析.最后文章以将ucosii移植到KeilC51的小模式下为实例,讲述了移植的一般步骤. 1 引言C语言是应用很广泛的计算机语言.因为它具有很强的移植性等优点,在编写单片机程序时,有时系统的可读性.易维护性往往比程序的…
将低版本gcc编译过的程序移植到高版本GCC时, 可能会出现一些兼容性问题. 原因是, 为了适应新的标准,一些旧的语法规则被废弃了. 关于这方面的一些具体资料可从该处查询. 这里只是自己遇到的其中一个问题. 错误提示: In instantiation of ‘int t(T) [with T = int]’ required from here error: ‘f’ was not declared in this scope, and no declarations were found b…
方法很简单就是将需要的代码 复制到 新系统中就可以了,方法就是 把相关文件添加到现有的系统中,并特别注意以下问题 \如果原设计中用到了菜单或是其它资源,相应的资源要在新的菜单中,手动添加. 目前没有发现其它好办法 \如果有些资源名称重复的话,还需要少量的修改 源代码 \对于无法识别到新的资源文件,可以在 源文件中添加 #include "resource.h" \对于新系统中,需要添加 源代码对应的 头文件 \在新系统中,添加一个 Custom Control 控件,并将控件的Clas…
移植UCOS之前,你首先应该做好三件事: 1.弄懂UCOS,这是谁都知道的哦 ^_^ 2. 弄懂你想要移植到的硬件平台 3. 清楚你使用的编译器是如何处理函数的局部变量和怎么样处理函数间的参数传递 这里多废话几句第三点:在UCOS里面,所有函数都要求具有重入性(除了OSSTAR()外,只有这个函数我觉得是不需要的,它仅仅使用了一次):重入性是多任务的基础,而所谓重入性从函数而言就是它的变量的保存问题,在中断这个函数的执行时它使用的变量需要得到保存,以便返回后的执行是正确的,就我使用的编译器而言,…
首先在解决方式下加入现有项: libCocosStudio.vcxproj E$uVS5Sbv! WL:0n"BExtensions.vcxproj libGUI.vcxproj 然后在project里面引用这些库: 勾选上面的三个库: 选中project属性: 在C/C++的常规项的附加包括文件夹中加入(根文件夹): $(EngineRoot)cocos\editor-support\cocostudio ; $(EngineRoot)cocos\editor-support\ ; $(Eng…
前言 最近接了个任务,需要把代码移植到armv7平台,搜寻相关方法,了解到可以利用交叉编译工具如:gcc-linaro-arm-linux-gnueabihf.把自己依赖的第三方库代码和自己代码分别编译就好.后来公司买了个树莓派,我直接在树莓派上编代码了,过程中没有很大的问题,记录下. 1.确定第三方依赖库是否可以移植 我代码确实依赖了不可移植的如mkl库,这是intel相关的,所以移植到arm肯定不行,于是换kaldi支持的另一种库,openblas.先替换然后让代码正常调用openblas.…
1.前言 今天 ,发现我的饭卡不见了....悲催 ,看了一下学校的微信小程序,查了下我这饭卡的流水记录,嗯...最后出现的地方在洗澡房... 好吧,扯远了,虽然没找到,可是突发奇想 ,小程序挺方便的,我能不能做一个? ..... 事实上,充钱就行!!! 百度搜了一下关于微信小程序的开发教程...显示的基本上是广告,都是小程序外包...我有钱还自己开发?笑话!!!贫穷使我自力更生!!! ..... 直接去博客找资料,总有那么几个前辈把路给我们铺好了,只是有些是桥,有些是泥巴路,喀喀喀,总比没有好.…
http://blog.csdn.net/eastmoon502136/article/details/7850157 http://forum.cubietech.com/forum.php?mod=viewthread&tid=3473…
今天尝试把Qt程序移植到各种虚拟机中测试,由于Qt的依赖库报告往往不能显示出全部依赖库.结果频频出现问题,好不容易全部解决了,这里给出一些套路. 首先对于Qt版本,我用过很多,最终表示现阶段推荐MingGW的版本(此版自带MingGW) 安装时要注意勾选上MinGW ,如果你没有的话.此版本可以在WindowsXP下运行. 之后我要介绍一个工具:Process Explorer v16.01 这款工具可以查看依赖库.第一次使用要先设置一下如图: 之后,你就能在左边找到你每一个正在运行的程序的依赖…
中国本地化包简直就是一块鸡肋, 但对于某些朋友来说还真离不了: 可惜中国本地化包的推出一直滞后, 在最新版软件出来后1年多, 本地化还不一定能够出来, 即使出来了, 也只能是购买了速博服务的用户才能得到. 在2017版的本地化包中, 包含了一些2009版的VBA源代码, 虽然不全, 没有包含本地化包的所有功能, 但对于想学习使用VBA进行Civil 3D二次开发的朋友来说, 作为样例文件,还是不错的选择. 下面就以AlignSectionDataPortTool.dvb为例, 演示一下如何让这些…
前言 上节实现远程更新是更新的STM32F103C8T6的单片机 GPRS网络(Air202/SIM800)升级STM32: 测试STM32远程乒乓升级,基于(GPRS模块AT指令TCP透传方式),定时访问升级 这节将告诉大家如何移植到其它型号的单片机. 这一节以 STM32F103RET6 (512KB Flash 64KB RAM) 为例 我使用我的这块板子 大家测试的时候可以按照下面的方式接到自己的GPRS模块(Air202 / SIM800) 单片机串口1 接到GPRS的AT指令配置串口…
转自:http://www.cnblogs.com/yaotong/p/3622430.html 用C++语言开发Android程序 配置开发环境   如果你是一个C++语言的死忠,你喜欢C++语言到了偏执的状态,如果不想学习Java语言,或者你很讨厌Java语言,如果你认为Java虚拟机的内存占用太多和执行低效.如果你过度关注Andoird程序的执行效率,对Android程序的执行速度过于敏感,喜欢自己用手动档来控制程序的内存和线程等资源,如果你在其他平台下用C++语言开发了一个程序,想要移植…
由于很多程序是用makefile编译linux应用程序的,如果移植到android就要重新写Android.mk,对于不熟悉这个的人来说,特别麻烦,所以这里介绍只修改makefile就能移植到android板子上面.还有试过这种方式,今天就试试. 首先设置export PATH=~/rowboat-android/wl18xx-snq/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:$P…
一.MYSQL储存过程简介(技术文): 储存过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数据库中的存储过程可以看做是对编程中面向对象方法的模拟.它允许控制数据的访问方式.存储过程通常有以下优点: 1)存储过程能实现较快的执行速度. 如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多.因为存储过程是预编…
近两年,微软越来越拥抱开源支持跨平台,win10搭载Linux子系统,开源VSCode作为跨平台编辑器,VS2017官方支持了Linux和嵌入式开发功能. ST也是,近两年开发的软件工具基本都是跨平台(基于Java)的,比如STM32CubeMX,MCUFinder,STM32CubeProgrammer等.17年年底收购了truestudio的开发公司-Atollic.这个公司的IDE就是基于Eclipse使用GNU套装的. 官方都支持了,那我们有必要了解一下.要是好用,说不定就可以淘汰老旧的…
*************************************************************************************************************************** 作者:EasyWave                                                                             时间:2014.10.31 类别:Linux应用-MP4视频录制库MP4V2…
分享一下最近做程序优化的一点小心得:在写高并发交易代码时要谨慎使用strncpy和sprintf. 下面详细介绍一下这样说的原因及建议实践: 1 慎用strncpy因为它的副作用极大 我们平时使用strncpy防止字符串拷贝时溢出,常常这样写 ] = {}; ] = "hello"; strncpy(buf, sizefo(buf), str); 这样写当然没问题,但有些人不知道的是:strncpy一行代码执行时是往buf写了sizeof(buf) = 1024个字节,而不是直观以为的…
嵌入式操作系统是嵌入式应用的基础和核心.随着应用系统的不断复杂化和系统实时性需求的不断提高,对相应软件的逻辑结构.稳定性.实时性也提出了更高的要求,以传统的前后台编程模式编制软件将更加困难,而且容易出错,因此,嵌入式实时操作系统(简称RTOS)就成为一个比较好的解决方法.使用RTOS作为应用程序的运行平台,它将应用程序分解为多个任务,负责各个任务调度.资源管理.任务通信等,可使系统更加稳定可靠,程序易于扩展.移植和维护.[1] μC/OS-Ⅱ是一个源码公开的.非商业用途时免费的嵌入式实时操作系统…
转载:http://www.embeddedlinux.org.cn/html/jishuzixun/201304/14-2538.html 对于嵌入式 Linux 系统来说,有各种体系结构的处理器和硬件平台,并且用户需要根据需求自己定制硬件板.只要是硬件平台有些变化,即使非常小,可能也需要做一些移植工作.内核移植是嵌入式Linux系统中最常见的一项工作. 内核移植工作主要是修改跟硬件平台相关的代码,一般不涉及 Linux 内核通用的程序. 移植的难度也取决于两种硬件平台的差异.Linux 对于…
tslib1.4移植 下载tslib1.4后 1.cp tslib-1.4.tar.bz2 /home/gec 2.tar jxvf tslib-1.4.tar.bz2 3.sudo -s 4.cd tslib-1.4/ 5../configure --host=arm-linux --prefix=/usr/local/arm ac_cv_func_malloc_0_nonnull=yes 6.make 7.make install 修改tslib安装目录下的/etc/ts.conf文件去掉#…
1.前言 HBase是云计算环境下最重要的NOSQL数据库,提供了基于Hadoop的数据存储.索引.查询,其最大的优点就是可以通过硬件的扩展从而几乎无限的扩展其存储和检索能力.但是HBase与传统的基于SQL语言的关系数据库无论从理念还是使用方式上都相去甚远,以至于要将基于SQL的项目移植到HBase时往往需要重写整个项目. 为了解决这个问题,很多开源项目提供了HBase的类SQL中间件,意即提供一种在HBase上使用的类SQL语言,使得程序员能够像使用关系数据库一样使用HBase,Apache…
通过这几年的实践,对simotion的程序结构规划有了一些新的理解.工程师在面对项目时,经常有几个问题比较困惑. 目前面对的问题 1)如何理解其他人编写的程序 2)如何从程序中找到可以移植的部分 传统的程序结构 --- d_HMI_VAR --- d_Global_VAR (global variable of different module) --- d_IO_VAR --- p_module01 --- p_module02 优点:便于区分变量是否需要连接HMI 问题:不利于module的…
终于到(十)了~~~ 503页 ES:DI       指向未更新且未打开的FCB的指针 注释:该功能最初用来从命令行中析取文件,并以正确的格式来保存此文件 以便打开FCB.为了实现这个目的,可首先将指针指向文件名字符串,并接着 将另一个指针指向打算使用的FCB.没有必要采用任何种类的格式来保存 FCB,单用内存块就能十分有效地保存好它. 在所有版本中,分隔符无非就是如下几种:句号(.).冒号(:).分号(:),等 号(=).加号(+).标记和空格.在DOS版本1中,还有以下几种符号也可用 作分…
第8章磁           盘       学习编程语言,常常是从基本的输入和输出入手的(正如第5.6和第7章曾介绍的一 样).到目前为止,我们不仅学习了怎样输入和输出数据,还学习了如何进行数据操作.     在开始编写重要程序之前,需要先了解文件(第9章是有关“目录和文件”的介绍),因 为大多数程序都与不同的类型的文件一起工作.有些则直接与磁盘和目录结构一起工 作.要预先了解第9章的一些基本原理,让我们先看看磁盘.       首先要了解基本磁盘技术的工作方式.软盘和硬盘的容量虽不同,但通过…
下载代码 stm32 标准外设库是 stm32 全系列芯片的外设驱动,有了它能够大大加速我们 开发 stm32. 首先从 st 公司的站点下载最新的 stm32 标准外设库,写本文时最新的版本号是 V3.5.0. 解压该 zip 文件.得到例如以下目录和文件 STM32F10x_StdPeriph_Lib_V3.5.0\  _htmresc  Libraries  Project  Utilities  Release_Notes.html  stm32f10x_stdperiph_lib_um…
Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板 开发板:mini2440(2011.04.21)环境:ubuntu9.10 为方便的将文件上传到开发板,采用vsftpd,移植过程如下: 1.       获取源码,地址:ftp://vsftpd.beasts.org/users/cevans/ 2.       修改Makefile文件,按实际情况填写,请仔细查看路径,我的是 CC =     /opt/FriendlyARM/toolschain/4.4.3/bi…
可以使用DataBase Configuration Assistant来创建一个心得数据库.Database Configuration Assistant简称是DBCA,是创建.配置以及管理数据库的一个工具. 一.创建数据库的一个具体的步骤: 1. 点击"开始"-"所有程序"-"Oracle"-"配置和移植工具"-"Database Configuration Assistant" 或者  运行-'cm…
最近看了一些Android驱动开发前需要知道的资料,收获很多,接下来就谈谈我自己的一些心得体会. Android在近几年时间发展迅速,已经成为智能手机操作系统的老大.不过,因为Android原生的代码支持的设备并不多,所以我们要想在自己的设备上完美地运行Android就需要另外地开发一些程序,从而可以让Android识别相应设备的硬件,这个过程就成为Android移植. Android移植可以分为两部分:应用移植和系统移植.其中,应用移植是指将Android系统架构的第四层应用程序移植到某一个特…
malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存.原型为extern void *malloc(unsigned int num_bytes). 1函数简介 原型 extern void *malloc(unsigned int num_bytes); 头文件 在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),而在Vi…
原文:oracl使用DataBase Configuration Assistant创建.删除数据库 可以使用DataBase Configuration Assistant来创建一个心得数据库.Database Configuration Assistant简称是DBCA,是创建.配置以及管理数据库的一个工具. 一.创建数据库的一个具体的步骤: 1. 点击"开始"-"所有程序"-"Oracle"-"配置和移植工具"-&quo…