embedded相关内容
我写一些C嵌入式code和需要使用rand()函数。不幸的是,兰特(),在控制器的库不支持。我需要一个简单的实现,是快速的,但更重要的是有一点空间开销,产生相对高质量的随机数。有谁知道要使用的算法或样品code? 编辑:这是图像处理,所以“质量相对较高”是指体面的周期长度和良好的均匀性。 解决方案 看看这个
..
在一个嵌入式C应用程序,我有我想用90度旋转大图像。目前我使用众所周知的简单算法来做到这一点。然而,这种算法需要我,使图像的另一个副本。我想,以避免拷贝分配内存,我宁愿原地旋转。由于图像不是方形,这是棘手的。有谁知道一个合适的算法? 编辑补充澄清,因为人们都在问: 我的图像存储在通常的格式: //图像16 BPP 结构图像{ INT宽度; INT高度; uint16
..
我一直在寻找一个简单的C code例如设置ALSA混音的主音量,但无法找到任何简单的为这个所谓常见的操作。 我和ALSA人生地不熟,所以使我自己的小例子,需要时间。我会很高兴,如果有人可以提供一个。 解决方案 我下面的作品。参数体积是在范围[0,100]来进行说明。当心,有没有错误处理! 无效SetAlsaMasterVolume(长卷) { 长最小值,最大值; snd
..
问题 我有我的硬件C ++和C89 两个编译 我在考虑使用C ++使用类,但没有多态性(以避免虚函数表)。 我想用C ++的主要原因是: I preFER使用“内联”的功能,而不是宏定义。 我想我prefixes杂波code使用的命名空间。 我看到C ++位类型更安全,主要是因为模板和详细的铸造。 我真的很喜欢重载函数和构造函数(用于自动铸造)。 做非常有限的硬件(RAM的
..
我读一次的地方,取模运算符是在小型嵌入式设备,例如8位万分之一没有整数除法运算符效率低下。也许有人可以证实这一点,但我觉得不同的是5-10的时间比整数除法运算速度较慢。 有另一种方式比保持计数器变量并手动溢出到0的MOD点要做到这一点其他? const int的FIZZ = 6; 对于(INT X = 0; X< MAXCOUNT; X ++) { 如果打印(“菲斯\\
..
有关嵌入式应用中,常常需要访问固定存储器位置为外设寄存器。我发现这样做的标准方式是类似如下: //访问寄存器'foo_reg“,这是位于地址为0x100 #定义foo_reg *为(int *)为0x100foo_reg = 1; //写foo_reg INT X = foo_reg; //从foo_reg阅读 我知道如何工作的,但我不明白的是foo_reg空间如何分配(即是什么让把从另一
..
如果我们声明一个变量挥发性每一个新鲜值更新时间结果 如果一个变量声明为常量那么该变量的值不会改变。 然后 const的挥发INT温度; 结果 有什么用声明变量温度如上?结果的 如果我们声明为会发生什么 const int的温度? 解决方案 这是对象标记为 const的挥发将不会被允许由code更改(一个错误会因提高到常量预选赛) - 至少在那个特定的名称/指针 的挥发性预选赛的一
..
我曾在嵌入式系统上今年夏天写的直线C.这是现有的项目,该公司为我接管工作。我已经很习惯了使用JUnit用Java编写单元测试,但在亏损,以编写现有code单元测试(这需要重构),以及新的code的最佳方式添加到系统 有没有在外面,使得单元测试普通的C code容易,因为单元测试Java code使用JUnit的项目?这将专门适用于嵌入式开发任何见解(交叉编译为arm-linux平台)将大大AP
..
我们使用C ++来开发的Windows CE 4在嵌入式系统上运行的应用程序。 我们的一个约束是,通过应用程序使用的所有内存应在启动仅的分配。我们写了很多容器和算法只使用preallocated内存而不是分配新的之一。 你是否认为这是我们能够使用Boost库,而不是我们自己的容器中,这些条件? 任何意见和/或建议,欢迎! 非常感谢, 尼克 解决方案 您可以编写自己的容器,它从一个
..
我在里面有一个嵌入式Linux环境中使用C ++ GCC版本2.95 。 我只是不能提取使用bcp 的boost :: shared_ptr的文件,它仅仅是太重了。 我想这将是一个简单的智能指针执行的boost :: shared_ptr的,但没有全部升压开销(如果它是可能的...)。 我可以拿出我自己的版本的阅读刺激源,但我生怕漏掉一个或多个点,似乎容易使出现故障的智能指针,我不能有一个越
..
我可以为了引脚P3.3和P3.4沟通上使用MSP-UART EXP430F5529LP从Energia公司(Rx和Tx分别)? 我已经使用的UART为了通过USB我的PC进行通信。要做到这一点,我用Serial.println()和等。现在,一个UART取,我该如何配置和使用第二个UART去这些引脚?或者,它会更好重新布线我的蓝牙芯片(蓝兆WT32)一些其他引脚? 配置不谈,串行似乎并没有允许
..
我布线,测试了一套开路或短路的电线的方案。该程序,它运行在一个AVR,驱动测试矢量(步行'1')上的电线和接收结果回来。它的这种合成向量与已经存储在SD卡或外部EEPROM预期的数据进行比较。 下面是一个例子,假设我们有一组8根线的所有这一切都是直通,即他们没有结。因此,如果我们开车0b00000010我们应该接受0b00000010。 假设我们收到0b11000010。这意味着有丝7,8-和
..
我试着写几个简单的宏来简化这应该是一个简单的任务设置和清除位的任务,但是我似乎无法让他们正常工作。 的#define SET_BIT(P,N)((P)| =(1 的#define CLR_BIT(P,N)((对)及=(〜(1) - ;≤(n))的) 解决方案 尝试的#define CLR_BIT(P,N)((P)及=〜((1) - ;<(N))) 不过,对于一般的宏观邪恶的,我
..
我只能用我的嵌入式设备的通信方式是串行端口。默认情况下,嵌入式Linux使用此端口作为终端。如何禁用该终端,并使用串行链路来传输二进制数据?我听说像RX和TX的命令,但我无法找到他们。 我想我可以只读取()和write()的东西到/ dev / tty的,但我想,以确保没有任何乱用我的数据流中的错误信息或 解决方案 您可以使用应用程序像XMODEM超过任何终端传输文件。是你讲了一个终端的
..
我的工作,只有具有busybox的(灰?),不支持bash的设备上。不过,我需要在其上运行下面的bash脚本。是否有可能或busybox的根本不支持脚本? #!/斌/庆典域=“mydomain.com” 记录=“11019653” API_KEY =“key1234”IP =“$(卷曲http://ipecho.net/plain)”回声内容=“$(卷曲\\ -k \\ -H“授
..
我在做与嵌入式计算机模块,EXM32入门工具包一个项目,我想模拟8个音符钢琴。操作系统是Linux,我在Python编程。我的问题是Python版本是2.4没有'pygame的'库同时播放两个声音。在我现在用python中“使用os.system('aplay ./Do.wav')”的发挥,从Linux控制台,声音。 该simplificated的问题是:我可以用另一个库做一样的: SND1
..
在一个嵌入式(Windows CE的)C ++项目,我不得不重新取样任意采样率下(或向上),以44100赫兹。 有一个免费和可移植的C / C ++库的音频采样? 解决方案 这页列出一堆选项。
..
我使用的MPLAB C18编译器与 PIC18F87J11 ,我试图保存一些值到闪存,采用内嵌汇编,这是C和汇编code的组合。 它看起来像我能够尽快编写和正确读取闪存,但我动力循环我的照片,然后试图读什么,我从一个特定的地址保存previous,我没有得到相同的值。我节省了×09 到 0xB22A 地址。就像我说的,如果我保存该值然后立即读取它,一切都正确,但在重新设置PIC我得到 0×00
..
我使用的MPLAB C18提供了一个内部汇编,以便从C项目调用汇编函数。我下面就如何使用内联汇编的规则,我怀疑一些关于“全文助记符必须用于表读/写”在我的建设项目导致语法错误消息。 内部汇编MPASM汇编器的差别如下:不支持伪指令注释必须使用C或C ++符号 全文助记符必须用于表读/写操作。即, TBLRD TBLRDPOSTDEC TBLRDPOSTINC TBLRD preINC TBL
..
我试图使用贝尔托斯了德州仪器的Stellaris Cortex-M3的。我的工作环境是IAR。有很多的小的改动,以适应IAR和具体的uC我使用,但我有一个,我似乎无法来解决......坦白说有点在我头上。 code的该位: 1无效NAKED lm3s_busyWait(无符号长迭代) 2 { 3注册uint32_t的__N __asm(“R0”)=迭代; 4 5 __asm挥发性(
..