社区
嵌入开发(WinCE)
帖子详情
同一段纯C程序在Linux下和ARM下结构不同
devildi
2015-11-05 04:09:44
我这里有一段纯C写的程序,在Linux和ARM均编译通过生成可执行文件,然后在linux下的结果正确无误,但是在ARM下却结果有误,不知道为什么,按理说纯C写的程序是可移植的啊~~~~~~~~求大神们指导!!!!
...全文
392
10
打赏
收藏
同一段纯C程序在Linux下和ARM下结构不同
我这里有一段纯C写的程序,在Linux和ARM均编译通过生成可执行文件,然后在linux下的结果正确无误,但是在ARM下却结果有误,不知道为什么,按理说纯C写的程序是可移植的啊~~~~~~~~求大神们指导!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fly 100%
2015-11-25
打赏
举报
回复
涉及到内存地址等都有可能不一样啊 寻址能力大小端也有可能
dengchonglin
2015-11-25
打赏
举报
回复
太笼统了,把CODE贴出来大家一起看看,问题一下就可以解决了
rlini
2015-11-23
打赏
举报
回复
我发帖为什么老是说系统维护??
zhujinqiang
2015-11-21
打赏
举报
回复
使程序可移植的本质非常简单:如果做某些事情有一种既简单又标准的方法,就按这种方法做。 使程序可移植的第一步就是使用标准库函数,并且把它们和ANSI/ISO C标准中定义的头文件放在一起使用。 第二步是尽可能使所写的程序适用于所有的编译程序,而不是仅仅适用于你现在所使用的编译程序。如果你的手册提醒你某种功能或某个函数是你的编译程序或某些编译程序所特有的。你就应该谨慎地使用它。有许多关于c语言编程的好书中都提出了一些关于如何保持良好的可移植性的建议。特别地,当你不清楚某个东西是否会起作用时,不要马上写一个测试程序来看看你的编译程序是否会接受它,因为即使这个版本的编译程序接受它,也不能说明这个程序就有很好的可移植性(C++程序员比c程序员应该更重视这个问题)。此外,小的测试程序很可能会漏掉要测试的性能或问题的某些方面。 第三步是把不可移植的代码分离出来。如果你无法确定某段程序是否可移植,你就应该尽快注释出这一点。如果有一些大的程序段(整个函数或更多)依赖于它们的运行环境或编译方式,你就应该把其中不可移植的代码分离到一些独立的“.c”文件中。如果只在一些小的程序段中存在可移植性问题,你可以使用#ifdef预处理指令。
默寞
2015-11-18
打赏
举报
回复
在ARM上跑编译器 要用 arm-linux-gcc
handkerchief
2015-11-17
打赏
举报
回复
很难想像玩linux和arm的人会问这种级别的问题,先打好基础再玩吧。
handkerchief
2015-11-17
打赏
举报
回复
编译器不一样,硬件平台不一样,运行结果不一样很正常。
91program
2015-11-05
打赏
举报
回复
调试,看看是什么代码错误了 然后针对错误进行修改
whysoft
2015-11-05
打赏
举报
回复
明白了 就是没处理好CPU的差异造成和移植问题 修改程序即可。
别以为你站在珠峰就能看到全世界
2015-11-05
打赏
举报
回复
看到这种问题很无语,提问请站在回答者的角度读读自己的问题。
C语言嵌入式
linux
编程
C语言到底学到什么程度,才能胜任
Linux
内核、驱动或嵌入式系统的开发?一般来讲,
不同
的软件开发职位,对C语言的要求是
不同
的。嵌入式开发,对C语言的要求相比其它职位,相对很高。不仅要求学员掌握C语言的基本语法,还要对 1)计算机基本原理及系统
结构
、
ARM
汇编、指令集与微架构 2)
程序
的编译、链接、重定位、安装、加载运行原理 3)C
程序
运行的堆栈管理、内存泄露、栈溢出 4)C标准、C编译器对C标准的扩展、
Linux
内核的C扩展语法 5)指针的深刻掌握、数据存储 6)系统的模块化编程、软件封层、代码复用、框架迭代 7)
Linux
内核的面向对象思想 8)CPU和操作系统入门 有一个更深的理解和掌握。 本套餐课程为一线芯片原厂嵌入式驱动工程师,根据多年学习经历和工作经验,针对嵌入式学员专业背景
不同
,基础知识理论差异较大,精心打造的一条全新的嵌入式C语言进阶课程路线,无论是嵌入式新学员还是工作1~3年的职场新兵,学完本课程能够帮助您为构建整个嵌入式知识体系框架打下良好的基础,为后续的进阶学习和职场发展提供助力。
ARM
实验-C语言主
程序
调用
ARM
子
程序
与内联汇编
不同
,嵌入式汇编具有真实汇编的所有特性,数据交换符合 ATPCS 标准,同时支持
ARM
和Thumb,所以它可以对目标处理器进行不受限制的低级访问。所谓内联汇编
程序
,就是在 C
程序
中直接编写汇编
程序
段而形成一个语句块,这个语句块可以使用除了 BX 和 BLX之外的全部
ARM
指令来编写,从而可以使
程序
实现一些不能从C获得的底层功能。(1)C语言调用
ARM
子
程序
时,在输入参数多余4个(比如是6个)的情况下前四个参数通过R0-R3传递,后面多余的参数会按照从右向左的顺序压栈。
在
Linux
下简单编写、编译并执行一个C语言
程序
本文面向第一次在
linux
尝试写C语言
程序
的新人。有经验的请绕行。 C语言用法不是本文介绍的关键,本文只是引入如何第一次在
linux
系统下编写、编译和执行一个简单的c
程序
。学会后请自行深入。 = 前提基础 =
Linux
系统的路径写法有两种,一种是相对路径一种是绝对路径。 绝对路径都是以“/”开头的,比如/usr/bin/vi或者/home/zorro/,代表从根目录"
嵌入式
linux
、
arm
嵌入式
linux
、
arm
嵌入式操作系统嵌入式系统应用领域嵌入式系统特点嵌入式实时系统嵌入式系统组成
ARM
相关知识
arm
寻址方式
ARM
微处理器的工作状态、工作模式
ARM
寄存器
linux
系统
linux
开发工具链异常处理
linux
内核裁剪与移植GCC命令基本用法系统调用与中断进程间通信接口中断驱动
程序
引导
程序
C语言与汇编语言 嵌入式操作系统 嵌入式系统应用领域 嵌入式系统应用领域:只能交通,智能家居,智能手表,机器人,智慧医疗,智能汽车,智能电网 嵌入式系统是以应用为中心,以计算机技术为基础,并且软/硬
Linux
操作系统
ARM
体系
结构
处理器机制原理与实现
和三星相同的其他和
arm
合作的各大厂商通常会把它的CPU和各类外围IP都放到一起,然后自己拿着图纸去流片,生产出来的也是一个正方形,下面有很多引脚,这个东西不仅包含了CPU,还包含了其他的控制器,这个东西就叫做SOC(system on chip)。这是一个新的IP核,针对高性能的嵌入式信号处理应用而设计的,v8架构是在32位
ARM
架构上进行开发的,将被首先用于对扩展虚拟地址和64位数据处理技术有更高要求的产品领域,如企业应用、高档消费电子产品。其中左侧的就是架构,右侧的是处理器,也可以叫核。
嵌入开发(WinCE)
19,502
社区成员
41,568
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章