• AVR或PIC开始对单片机进行编程? [关闭]
    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。                                                                                                                             7年前关闭。 我应该开始学习哪个家庭? (从未在微...
  • 设备被误检测为串行鼠标
    我正在使用通过(虚拟)串行端口与PC通信的设备。问题在于Windows偶尔会错误地将我们发送的数据识别为总线鼠标,然后加载“ Microsoft Serial Ballpoint”驱动程序,并且鼠标指针开始在屏幕上四处跳动并随机单击。 一点点谷歌搜索发现这是串行设备的一个古老而众所周知的问题,通常的解决方法是一些注册表入侵,以禁用有问题的驱动程序。但是我们的用户有很多需求,我宁愿我们的应用程序不搞乱用户的注册表。尤其是当修复程序依赖于Windows版本且用户可能正在使用总线鼠标时,则不是如此。 相反,我想通...
  • 在家学习内核黑客和嵌入式开发? [关闭]
    关闭。这个问题是题外话。它当前不接受答案。                                                                                                                                                                                                                                           ...
  • 如何在Raspberry Pi上没有操作系统的情况下运行C程序?
    我想尝试将Raspberry Pi用于一些不同的底层嵌入式应用程序。唯一的问题是,与可用的AVR和PIC微控制器板不同,Raspberry Pi通常运行一个OS(如Raspbian),该OS在所有正在运行的程序中分配CPU时间,这对于某些实时应用程序来说是不切实际的。 我最近了解到,假设您已安装了GRUB之类的引导程序,则在x86上以内核形式运行C程序(以内核形式)只需很少的实际设置,只需一个汇编程序即可调用主函数和实际的C代码。 有没有办法用Raspberry Pi实现这一目标? 这是学习低级ARM编程的...
  • 嵌入式项目的C / C ++ HTTP客户端库[关闭]
    关闭。这个问题是题外话。它当前不接受答案。                                                                                                                                                                                                                                           ...
  • 第一次使用嵌入式系统编程器使用哪个微控制器有关系吗?
    我在进行桌面和Web编程方面有多年经验。我想继续进行一些嵌入式系统编程。问完最初的问题后,我想知道应该从哪个硬件/软件IDE开始... Arduino + Arduino IDE? Atmel AVR + AVR Studio 4? 飞思卡尔HCS12或Coldfire + CodeWarrior? Microchip PIC + MPLAB? ARM Cortex-M3 + ARM RealView / WinARM 还是...没关系? 哪个开发平台最容易学习和编程(考虑到IDE的可用性)? 如果出...
  • 除了在C / C ++中使用%(模数)之外,还有其他选择吗?
    我曾在某处读到,模运算符在小型嵌入式设备(如没有整数除法指令的8位微控制器)上效率低下。也许有人可以证实这一点,但我认为这种差异比整数除法慢5-10倍。 除了保持计数器变量并在mod点手动溢出为0之外,还有其他方法吗? const int FIZZ = 6; for(int x = 0; x < MAXCOUNT; x++) { if(!(x % FIZZ)) print("Fizz\n"); // slow on some systems } vs: 我目前的做法: const int FIZZ...
  • 编译器按位不运算的优化
    I have a simple function testing if two arrays are each others inverse. They are seemingly identical, except for a tmp variable. One works the other doesn't. I can't for the life of me figure out why the compiler would optimize this out - if it indeed is a...
  • 堆栈大小估计
    在多线程嵌入式软件(用C或C ++编写)中,必须为线程提供足够的堆栈空间,以使其能够完成其操作而不会溢出。在某些实时嵌入式环境中,正确调整堆栈大小至关重要,因为(至少在我使用过的某些系统中),操作系统将无法为您检测到此问题。 通常,新线程(主线程除外)的堆栈大小是在创建线程时指定的(即在pthread_create()的参数等中)。通常,这些堆栈大小被硬编码为在最初编写或测试代码时已知良好的值。 但是,将来对代码的更改通常会打破硬编码堆栈大小所基于的假设,并且有朝一日,您的线程会进入其调用图的更深层分支之一...
  • 在嵌入式环境中使用html渲染器
    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。                                                                                                                             7年前关闭。 我正在一个项目中,我将为嵌入式设备设...
  • Beagleboard裸机编程
    我刚拿到BeagleBoard-Xm,我想知道是否有详细的分步教程,介绍如何获取在硬件上运行的非常简单的裸机软件? 我问的原因是我想深入了解硬件体系结构的工作原理,包括引导加载程序,链接器,中断,异常,MMU等。我认为最好的方法是在beagleboard xm上执行一个简单的hello world程序,而无需一个操作系统。没什么大不了的,只需启动开发板并在屏幕上获得“ hello world”输出即可。而已! 下一步将是运行一个微型操作系统,该操作系统可以安排一些非常简单的任务。不需要文件系统,只需了解操作...
  • 为什么我会考虑为嵌入式项目使用RTOS?
    首先是背景,我的问题的具体内容如下: 在我使用平台的公司中,当前使用MPLAB IDE作为开发环境的Microchip PIC32系列。以前,我们还为同一应用程序编写了Microchip dsPIC和TI MSP系列的固件。 固件非常简单,将代码分为三个主要模块:设备控制,数据采样和用户通信(通常是用户PC)。通过GPIO总线和至少一部分需要SPI或I2C控制的组合来实现设备控制。数据采样通过使用定时器模块的中断驱动来保持采样频率,并使用更多的SPI / I2C和GPIO总线来控制采样硬件(例如ADC)。当...
  • Linux 2.6的“实时性”如何?
    我正在考虑将产品从RTOS迁移到嵌入式Linux。我没有很多实时要求,而我有几个RT要求大约是10毫秒。 有人可以给我指出一个参考,该参考可以告诉我当前版本的Linux如何实时吗? 从转向商业RTOS到Linux还有其他陷阱吗? 最佳答案 您可以从Real Time Linux Wiki和FAQ中获得大部分答案。 库存的2.6 linux内核的实时功能是什么?      传统上,Linux内核仅在某些情况下才允许一个进程抢占另一个进程:         当CPU运行用户模式代码时   当内核代码从系统...
  • 如何使用“目标远程”在gdb中重新开始运行程序?
    在同一台计算机上的可执行文件上执行常规gdb会话时,可以给出run命令,它将再次重新启动程序。 当您在嵌入式系统上运行gdb时,如命令target localhost:3210'一样,如何在不退出并重新启动gdb会话的情况下重新启动该程序? 最佳答案 You are looking for Multi-Process Mode for gdbserver and set remote exec-file filename
  • 在不使用标准功能的情况下,在C中生成正弦信号
    我想在C中生成正弦信号而不使用标准函数sin()来触发LED亮度的正弦形变化。我的基本想法是使用40点和插值的查找表。 这是我的第一种方法: const int sine_table[40] = {0, 5125, 10125, 14876, 19260, 23170, 26509, 29196, 31163, 32364, 32767, 32364, 31163, 29196, 26509, 23170, 19260, 14876, 10125, 5125, 0, -5126, -10126,-1487...
  • ARM Assembly和x86 Assembly之间的差异
    关闭。这个问题需要更加集中。它当前不接受答案。                                                                                                                                                                                                                                         ...
  • 不使用动态内存分配的Pimpl习惯用法
    我们想在项目的某些部分使用pimpl惯用语。项目的这些部分也恰好是禁止动态内存分配的部分,并且该决定不受我们控制。 所以我要问的是,有没有干净的好方法在没有动态内存分配的情况下实现pimpl习惯用法? 编辑 还有其他一些限制:嵌入式平台,标准C ++ 98,没有外部库,没有模板。 最佳答案 警告:此处的代码仅展示存储方面,它是框架,没有考虑动态方面(构造,复制,移动,破坏)。 I would suggest an approach using the C++0x new class aligned_s...
  • 通过/ dev / mem驱动Beaglebone GPIO
    我试图编写一个C程序来使Beaglebone上的LED闪烁。我知道我可以使用sysfs方式...但是我想看看是否有可能获得与/ dev / mem映射物理地址空间相同的结果。 我有一个头文件beaglebone gpio.h,内容如下: #ifndef _BEAGLEBONE_GPIO_H_ #define _BEAGLEBONE_GPIO_H_ #define GPIO1_START_ADDR 0x4804C000 #define GPIO1_END_ADDR 0x4804DFFF #define GP...
  • 从C代码设置ALSA主音量
    我一直在寻找一个简单的C代码示例来设置ALSA混音器的主音量,但对于此所谓的常见操作找不到任何简单的东西。 我完全不熟悉ALSA,因此,我自己做一个最小的例子将需要一些时间。如果有人可以提供,我将很高兴。 最佳答案 以下对我有用。参数量应在[0,100]范围内。当心,没有错误处理! void SetAlsaMasterVolume(long volume) { long min, max; snd_mixer_t *handle; snd_mixer_selem_id_t *s...
公众号
关注公众号订阅更多技术干货!