embedded相关内容

嵌入式C - 太多的参数功能(指针)

我想调用下面的宏在我的.cpp文件: 的#define IAP_ROM_LOCATION 0x1FFF1FF1UL 的#define IAP_EXECUTE_CMD(A,B)((无效(*)())(IAP_ROM_LOCATION))(A,B) 然而,当我打电话说,像这样的功能: IAP_EXECUTE_CMD(0,0); 我得到一个错误说太多参数指定?这怎么样?我想AP preciate ..
发布时间:2016-08-18 14:55:01 C/C++

C指针,相较于直接结构成员访问

说我有类似下面的结构... typedef结构{ INT WheelCount; 双MAXSPEED; }车辆; ...我有这种类型的全局变量(我很清楚全局的缺陷,这是一个嵌入式系统,这是我没有设计,以及他们是不幸的,但必要之恶。)是否有更快的直接或通过指针访问结构的成员?即双LocalSpeed​​ = MyGlobal.MaxSpeed​​; 或双LocalSpeed​​ ..
发布时间:2016-08-18 14:36:46 C/C++

冲洗到零行为浮点运算

虽然,据我记得,IEEE 754只字未提刷新到零的方式来处理正规化数的速度更快,某些架构提供这种模式(如的http:// docs.sun.com/source/806-3568/ncg_lib.html )。 在此技术文档的特定情况下,非正规数的标准处理是默认的,并刷新到零,必须明确激活。在默认模式下,非正规数也在软件,这是较慢的处理。 我的静态分析仪嵌入式C它试图predict正确的工作( ..
发布时间:2016-08-18 14:24:25 C/C++

快速斜边算法嵌入式处理器?

是否有确定的角度的斜边一个聪明/高效的算法(即的sqrt(A²+称b²)),使用无硬件的嵌入式处理器上定点数学乘? 解决方案 除非你这样做是在> 1kHz时,在MCU甚至成倍没有硬件 MUL ISN“ Ť可怕。更糟糕的是多少开方。我会尝试修改我的应用程序,因此并不需要在所有的计算。 标准库很可能是最好的,如果你真的需要它,但你可以看看使用牛顿方法作为可能的选择。这将需要数乘法/除法周期不 ..
发布时间:2016-08-18 14:22:10 C/C++

测试code为嵌入式应用

背景: 我正在开发使用爱特梅尔AVR atmega2560一个相当大的项目。这个项目包含了大量的基于硬件功能(7 SPI器件,2 I2C,2个RS485 MODBUS口,大量的模拟和数字I / O的)。我所研制的“驱动程序”为所有这些设备提供了哪些主要应用循环与访问所需数据的接口。 问: 我开发该项目最终将必须符合SIL标准。 我想是能够测试code和提供code覆盖一个良好的水平。但是我 ..
发布时间:2016-08-18 14:22:07 C/C++

查找表VS用C嵌入式软件开关

在另一个线程,有人告诉我,一个开关可能比在速度和紧凑性方面具有的查找表的更好。 所以我想明白这之间的区别: 查找表 静态无效func1的(){} 静态无效FUNC2(){}的typedef枚举 { FUNC1, FUNC2, FUNC_COUNT } state_e;无效的typedef(* func_t)(无效);常量func_t LookupTable中[FUNC ..
发布时间:2016-08-18 14:20:31 C/C++

最小/快速实现(S)printf进行嵌入式

我工作的一个嵌入式DSP在速度是至关重要的,而内存是非常短的。 目前,sprintf的是我的code最大(迄今为止)的功能,我用它来格式化一些简单的文字:%D,%E,%F,%S ,只能自认倒霉precision或异国情调的操作。 有一个现有的重新实施(S)的printf的有限子集,这将是更适合我的使用情况? 无precision符或一些不起眼的功能(零填充比如)一个版本将是完美的。 我没有 ..
发布时间:2016-08-18 14:16:40 C/C++

在一行中的多个作业

我刚刚碰到的声明在嵌入式C(dsPIC33系列) SAMPLE1 = SAMPLE2 = 0; 请问这意味着 SAMPLE1 = 0;SAMPLE2 = 0; 为什么他们键入这样说?这究竟是好还是坏的编码? 解决方案 请记住,分配做从右到左,他们是正常的前pressions。因此,从编译器的角度行 SAMPLE1 = SAMPLE2 = 0; 是相同的 SAMPLE1 =(SA ..
发布时间:2016-08-18 14:10:42 C/C++

是否有一个嵌入式C项目一个很好的微小的XML解析器?

对于嵌入式项目一个很小的XML解析器后我。它需要编译下至10-15k,并不需要验证,并且需要以简单,便于携带。 解决方案 我能够调整对C以下XML解析器库的编译标志,并减少它们的大小超过50%的我的Ubuntu的机器上。迷你XML是唯一一个接近你的要求是什么: 的Mini-XML (36K) 外籍(124K) RXP (184K) 有一个很好的讨论,在这里: ..
发布时间:2016-08-18 14:07:24 C/C++

GUI库微控制器

我想创建一个图形用户界面微控制器驱动的应用程序(爱特梅尔XMEGA )被连接到一个128×64点图形的LCD( EA DOGL128-6 的)和4个按钮用于导航 控制显示器本身(如绘制像素和字符)的否的问题,但以prevent我从重新发明轮子,我使用Google的一个GUI库/ -Toolkit即用C语言编写,包括它的源$ C ​​$ C,将一个32 MHz的8位微控制器上运行,并至少提供以下控 ..
发布时间:2016-08-18 13:51:54 C/C++

c + +前端仅有的编译器(转换成C ++到C)

我目前正在管理的多个平台上从单一的源代码树的(Win32,Linux和Verifone的CC端子,MBED甚至任天堂GBA / DS)中运行一些C ++ code。不过,我需要(仅C)建立在一个嵌入式平台,其中有没有C ++编译器为对象的应用程序。我remmber,很多早期的C ++编译器只是前端stitting现有的C编译器(铁琴如使用MSC)。是否有任何使用这种“前端”C ++编译器今天将生成 ..
发布时间:2016-08-18 13:51:10 C/C++开发

测试自动化与嵌入式硬件

任何人都有成功直接在嵌入式硬件自动化测试? 具体来说,我想到的自动化单元测试硬件层模块的电池。我们需要在我们的硬件层code更大的信心。我们的很多项目都使用中断驱动定时器,模数转换器,串行IO,串行SPI设备(闪存)等。 这甚至值得努力? 我们通常的目标: 处理器:8或16位微控制器(DSP的一些东西) 语言:C(有时是C ++)。 解决方案 当然。在汽车行业,我们用$ 10 ..
发布时间:2016-08-18 13:49:04 C/C++开发

嵌入式系统上的C XML库

我正在为该公司使用XML将数据传输到了系统的嵌入式系统的项目。我不想让XML处理下放成一堆生成使用的snprintf() / 的strcat()XML字符串位和朋友或通过计算分析XML“< ”和“> 。”字符 我已经发现了几个XML库,一对夫妇,其中甚至可能是足够小,但他们来为C最接近的是C ++,这是不是在卡这个系统。我希望我能找到符合以下限制的XML库: C源$ C ​​$ ..
发布时间:2016-08-18 12:55:12 C/C++

不透明数据类型的静态分配

很多时候的malloc()编程的嵌入式系统时是绝对不允许的。大部分时间我pretty能够解决这个问题,但有一件事让我恼火:它让我使用所谓的“不透明类型”,以使数据隐藏。通常,我会做这样的事情: //在module.h中的文件 typedef结构为handle_t为handle_t;为handle_t * create_handle(); 无效operation_on_handle(为handl ..
发布时间:2016-08-18 12:54:56 C/C++

如何实现在C类?

假设我要使用C(没有C ++或面向对象的编译器),我没有动态内存分配,都有些什么技术,我可以用它来实现一个类或一类的一个很好的近似?是否总是一个好主意,“阶级”隔离到一个单独的文件?假设我们可以preallocate存储器通过假设实例的固定数量,或者甚至限定为恒定之前编译时间的参考的每个对象。随意作出假设哪些OOP概念,我需要实现(它将不同),并建议最好的方法为每个 限制: 我要使用C和不 ..
发布时间:2016-08-18 12:44:15 C/C++

有没有办法从UTF8转换为ISO-8859-1?

我的软件也越来越UTF8中一些字符串比我需要转换为ISO 8859 1.我知道UTF8域比ISO 8859.大,但在UTF8数据已$ P $从ISO pviously上变频,所以我应该不会错过任何东西。 我想知道是否有从UTF8转换为ISO-8859-1一个简单/直接的方式。 感谢 解决方案 下面是你可能会发现有用的函数: utf8_to_latin9()。它转换成 ISO-8859- ..
发布时间:2016-08-17 23:33:19 服务器开发

@符号在C变量声明

我发现通过pic1250.h的名称PIC单片机这个头文件,我无法得到它使用的一些语法的窍门。 该文件的来源是: / * *为Microchip的头文件 * PIC芯片12c508 * PIC芯片12c509 *基线微控制器 * /静态挥发unsigned char型RTCC @ 0×01; 静态挥发unsigned char型TMR0 @ 0×01; 静态挥发unsigned ch ..
发布时间:2016-08-17 23:20:57 C/C++

堆栈大小估计

在多线程嵌入式软件(用C或C ++),线程必须以允许它完成它的操作不会溢出给予足够的堆栈空间。堆栈的正确尺寸,在一些实时嵌入式环境至关重要,因为(至少在一些系统中我使用过),操作系统将不会检测这个给你。 通常,对于一个新的线程的堆栈大小(比主线程其他)在该线程被创建时指定(即,在一个参数给pthread_create()等)。通常,这些堆栈大小是硬coded到已知要善于在code最初是书面或测试 ..
发布时间:2016-08-17 23:05:51 C/C++开发

什么是跳表?

有人能解释一个跳转表的机制和为什么会在嵌入式系统需要? 解决方案 一个跳转表可以是一个指针数组功能或机器code跳转指令的数组。如果你有一个相对静态的功能集(比如系统呼叫或一类的虚函数),那么你可以创建这个表一次,并使用一个简单的索引数组调用的函数。这将意味着检索指针和调用功能或根据所用表的类型跳跃到机器code 在嵌入式编程这样做的好处是: 指数比机器code或指针存取效率更高, ..
发布时间:2016-08-17 22:43:18 C/C++开发