飞思卡尔i.mx6交叉编译工具链BUG

最近在用飞思卡尔的i.mx6平台做一个项目,编写完代码在i.mx6上测试的时候发现有一个函数的返回值判断一直不正确,

我一个函数的返回值类型为 "char" 错误返回值是 ‘-2’,并且用其返回值与 ‘0’值比大小来进入不同处理分支,但是测试的

时候发现,程序始终无法进入错误分支,最后经反复测试才找到问题,因为返回‘-2’的时候系统把他当做254来处理了。

后来我在char前边加一个signed修饰,就能正确返回‘-2’了。

就是说i.mx6的编译工具把 ‘char’型默认为‘unsigned char’,和其他编译器默认为‘signed char’不一致。

这也算是一个不大不小的bug吧,记录一下以防再出错。

时间: 2024-10-11 10:09:54

飞思卡尔i.mx6交叉编译工具链BUG的相关文章

Linux下获取arm的交叉编译工具链

转载请注明文章:Linux下获取arm的交叉编译工具链 出处:多客博图 这里介绍,Linux下获取arm的交叉编译工具链,比如arm-linux-gnueabihf-gcc.arm-linux-gneabihf-gcc等. 前言 这里有一个专门的说法: “arm-linux-gnueabihf-gcc是由 Linaro 公司基于GCC推出的的ARM交叉编译工具.可用于交叉编译ARM系统中所有环节的代码,包括裸机程序.u-boot.Linux kernel.filesystem和App应用程序.使

交叉编译工具链介绍《Building Embedded Linux Systems》

1.前言 配置和编译一个合适的GNU工具链是相对复杂的并且需要很精细的操作,包括你需要对不同软件库之间的依赖关系.它们的各自的任务,不同软件库版本情况都有比较好的了解,编译工具链是一个乏味的工作. 2.制作之前需要了解的一些术语与名称 1)build:你编译你的工具链时所使用的编译系统. 2)host:交叉编译工具链运行在的主机系统. 3)target:你的交叉编译工具链所生成的可执行文件所要运行的目标系统. 在一些通用非嵌入式的使用,以上三个必须是一样的.但是大部分嵌入式开发中,build跟h

ARM交叉编译工具链分类说明

转载整理自:http://www.veryarm.com/cross-tools 从授权上,ARM交叉编译工具链分为免费授权版和付费授权版. 免费版目前有三大主流工具商提供,第一是GNU(提供源码,自行编译制作),第二是 Codesourcery,第三是Linora. 收费版有ARM原厂提供的armcc.IAR提供的编译器等等,因为这些价格都比较昂贵,不适合学习用户使用,所以不做讲述. ·        arm-none-linux-gnueabi-gcc:是 Codesourcery 公司(目

64位的ubuntu14.04 LTS安装 Linux交叉编译工具链及32位“ia32-libs”依赖库

ubuntu又迎来了其新一代的长期支持版本 14.04 LTS,其带来了许多令人期待的新特新,遂决定进行升级. 装好了64位版本及安装 Linux交叉编译工具链 运行GCC,${CROSS_COMPILE}gcc -v 依然会提示那经典的“没有那个文件或目录”提示. 根据以往的经验,对于64位版本ubuntu我们需要安装“ia32-libs”依赖库. 遂输入: sudo apt-get install ia32-lib 却提示查无此货? ubuntu 14.04强制安装ia32-libs 参考u

Android开发实践:Android交叉编译工具链的使用

前面2篇文章分别介绍了Android NDK编译的命令行参数,以及如何在任意目录使用Android.mk来编译本地c/c++代码,Andriod.mk和ndk-build只不过是Android官方提供了一套封装过的Android交叉编译环境而已,其实,你可以不用它,而直接通过传统的Makefile文件来编译你的c/c++代码的,本文即介绍如何直接通过传统的Makefile文件来编译可用于Android平台的库文件. 经常搞嵌入式开发的朋友对于交叉编译环境应该并不陌生,说白了,就是一组运行在x86

交叉编译工具链

1.嵌入式开发模型-交叉开发 在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译.链接嵌入式软件的计算机:目标机是运行嵌入式软件的硬件平台. 在宿主机执行编译的流程如下: 2.交叉编译工具链详解 参考: http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html 3.制作交叉编译工具 参考: http://www.crifan.com/files/doc/docbook/c

arm嵌入式交叉编译工具链

1.arm-linux-gcc 常用的参数:-o[制定输出文件名] -c[只到编译停止,不连接] -g[键入调试信息] -xO[优化级别] -w/W(警告等级) arm-linux-gcc -o dest source,直接编译出可执行文件elf格式 arm-linux-gcc -o dest source -c 只编译不连接,生成.o格式的库文件,用来提供给连接器连接成elf 其他的参数可以在GCC的手册中了解所有信息. 2.arm-linux-ld 如果GCC中使用的-c,需要arm-lin

【转】ARM交叉编译工具链

原文网址:http://www.veryarm.com/cross-tools 为什么要用交叉编译器? 交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放到ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统. 交叉编译工具链是一个由编译器.连接器和解释器组成的综合开发环境,交叉编译工具链主要由binutils.gc

树莓派学习笔记——交叉编译工具链

0.前言 [1]为什么要使用交叉编译 交叉编译工具较快开发的速度.树莓派中已经安装了gcc工具链,可在树莓派中直接编译源代码生成可执行文件.于此同时,PC机上也可使用gcc工具链生成可执行代码,但是和树莓派上的gcc工具不同,PC机上的gcc工具生成intel或amd芯片上可执行的代码,但树莓派却是arm系列的芯片,显然存在不小的差异.那么使用交叉工具链便可在PC机上开发树莓派中可执行程序. 虽然树莓派的主频可达700MHz远高于一般的嵌入式系统,但相比于PC机其性能还是差些,使用交叉工具链可节