HTML/CSS
从我所看到的,我的问题的解决方案是使用中断,但是如果我们正确理解它,我不能在中断所调用的例程中使用延迟。我有一个很大的按钮 LED 切换。我想让它在空闲的时候有一个心跳,但一旦被推送,保持绿色并执行代码。 我可以打破 heartbeat() 如果我按下足够的时间(我假设在正确的时间获得状态更改,因为它完成了心跳的循环),但是我被困在如何使它的第一次点击工作。有没有办法做我想尝试的东西?
..
在没有操作系统的嵌入式系统中,有没有什么好的资源(书籍,网站)可以很好的比较有限状态机(FSM)的不同调度算法? 我正在设计一个没有操作系统的简单嵌入式Web服务器。我想知道用于安排系统中发生的不同事件处理的各种方法是什么。 例如,如果两个事件相同时间事件如何优先?如果我为事件分配不同的优先级,那我该如何确保优先级较高的事件先被处理?如果在处理事件时出现了更高优先级的事件,那么如何确保
..
我在嵌入式系统中听说过,我们应该使用一些预先分配的固定大小的内存块(比如好友内存系统?)。有人可以给我详细解释为什么吗 谢谢, 解决方案 在嵌入式系统中,内存非常有限。因此,如果你偶尔只丢失一个字节的内存(因为你分配了它,但是你不会释放它),这会很快地占用系统内存(1 GB的RAM,泄漏率为1 /小时将占用它时间,如果你有4kB的RAM,不要那么长) 本质上避免动态内存的行为是避免
..
我正在从三轴加速度计计算角度,但是我的编译器没有atan或atan2功能。它有一个保留的内存插槽,但它调用了我找不到任何文件的功能。 我的编译器是KeilμVision4运行ARMCC编译器。 编译器具有文件math.h,但该函数是extern并且不存在: extern _ARMABI double atan2(double / * y * /,double / * x * /);
..
我已经明白,当涉及到通过GPIO的SPI / I2C时,bit bit是可怕的做法。为什么会这样? 解决方案 Bit-banging携带一个消耗CPU循环的软件开销为其他目的。这可能会对系统对其他事件的响应性产生明显的影响,而在硬实时系统中,可能会对系统的实时期限遇到影响。 如果bit-banged接口不会对实时性能产生不利影响,那么它必须被赋予低优先级,所以在数据吞吐量和延迟方面本
..
我很熟悉C ++(不是C),最近购买了一款基于Symbian的手机。 这给了我开始学习如何编程这个野兽的理由。 我已经搜索了Symbian编程教程,但是有很多知识,很难为了启动而选择最佳。 所以我要求提供关于嵌入式/ Symbian编程学习在哪里的提示,这将给我一个启发;特别是如果你自己有这个知识。 谢谢。 解决方案 我只会指出当我开始成为Symbian开发人员的旅程时
..
由于上电,我对有关复位有疑问: 1.我知道微控制器是硬连线的,可以从某些特定的内存位置开始说0000H的电源向上。在0000h,中断服务程序是否被写入复位(堆栈指针和程序计数器等的初始化)或复位地址在0000h(例如7000),以便微控制器跳转到7000地址,堆栈和PC的初始化被写入。 2.写这个重置服务程序?是微控制器芯片(英特尔还是微芯片等)的制造商,还是任何程序员都可以改变这个复
..
我正在使用安装在/ home / user / Software的猎鹰板上的安卓工具链来编译qt 4.7.4。 我收到的错误是: / corelib / arch / qatomic_arm .h:131:错误:没有这样的指令:`swpb%al,%dl,[%esi]' 我的qmake。 conf文件如下: # #使用arm-none-linux-gnueabi-g ++构建
..
我正在为Stellaris LM3S1607芯片开发一个引导加载程序。 我正在使用Keil MicroVision4 C编译器。 想法是创建2个独立的固件,一个会更新另一个固件。 在firmware1中,我下载了firmware2文件,并将其写入0x3200的闪存。直到这里它正在工作。我也验证了数据正在写入闪存正确。 现在我有两个应用程序的闪存。一个是我的uip启动加载程序,而seoncd
..
我想知道有没有办法通过包含或头文件或类似的东西加载外部二进制文件作为C中的变量。 例如,在我目前正在开展的一个项目中,我正在使用一个嵌入式系统,该系统具有使用ASCII数据和命令执行文本和小图形(框,线等)的图形显示。但是,它也将显示单色位图。所以我有一系列用于用户界面的静态显示,以及几个用于启动屏幕的位图。 现在我提到它是一个嵌入式系统是没有文件系统从只有RAM和程序存储器加载数据,
..
当我给Keil编译器“-callgraph”选项 时,它静态地计算出我的确切的“最大堆栈使用率”。 今天它给了我一个“最大堆栈使用率= 284字节+未知(无堆栈大小的功能)”消息,以及“没有堆栈信息的函数”列表。 Nigel Jones表示递归在嵌入式系统中是一个非常糟糕的想法 (”计算你的堆栈大小“ 2009), 所以我一直小心不要在这段代码中做任何相互递归的函数。 另外
..
背景 我的电路板包含一个 STM32 微控制器,带有 SD / MMC卡,一个href =“http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus”rel =“nofollow noreferrer”> SPI ,并以48 ksamples / s采样模拟数据。我正在使用Keil Real-Time Library RTX内
..
是否有一个聪明/有效的算法用于确定角度的斜边(即 sqrt(a²+b²)),在没有硬件的嵌入式处理器上使用固定点数学乘法? 解决方案 除非你在> 1kHz这样做,甚至在没有硬件的MCU上乘以 MUL 并不可怕更糟的是 sqrt 。我会尝试修改我的应用程序,所以它根本不需要计算。 标准库可能是最好的,如果你真的需要它,但你可以看使用牛顿法作为一种可能的替代方法。然而,需要执行多个乘法/
..
我有一个 Arduino Uno (很棒的设备!)。它有两个中断;我们称之为 0 和 1 。我使用 attachInterrupt(): http://www.arduino.cc/en/Reference/AttachInterrupt 。 中断 0 被触发,它调用它的处理程序,它执行一些数字处理。如果中断 0 的处理程序在中断 1 被触发时仍然执行,会发生什么? 将中断 1 中断中
..
我正在寻找替代编程语言(从汇编,C,C ++和基本)到嵌入式(微控制器)编程。 有可能,例如,程序微控制器在C#或Java?也许Ruby或Python? 如果可能的话,请发布开发工具和使用的硬件。 解决方案 还有Lua。请参阅 eLua 。
..
我在Google中找到了一些文章,但无法确定一个非常实用的实用指南。 p> DO-178b 禁止动态内存分配,但是如何管理内存呢?提前分配所有内容,并发送指向需要分配的每个功能的指针?在堆栈上分配?使用全局静态分配器(但是它非常类似于动态分配)? 答案可以是常规答案,参考资源或参考资料开源嵌入式系统例如。 澄清:这里的问题不在于内存管理是否可用于嵌入式系统。但是嵌入式系统的优秀设
..
微控制器通常需要读取寄存器才能清除某些状态。在C中是否有便携式方法,以确保如果不使用数据,则读取不会被优化?指向内存映射寄存器的指针是否被声明为volatile?换句话说,以下是否符合标准的编译器? void func(void) { volatile unsigned int * REGISTER =(volatile unsigned int *)0x12345678; *
..
我正在通过(虚拟)串行端口与PC进行通信。问题是我们偶尔发送的数据被Windows作为总线鼠标错误地标识,之后加载了“Microsoft Serial Ballpoint”驱动程序,鼠标指针开始在屏幕上跳动并随机点击事物。 一些Google搜索引擎显示,这是串行设备的一个老旧且众所周知的问题,通常的解决方法是一些注册表黑客来禁用违规驱动程序。然而,我们的用户要求很多,我宁可不用将用户的注册表
..
在编写 PIC18 时,如何创建并行运行的线程?不是操作系统? 解决方案 不要使用线程,使用事件循环。 PIC18是一个小型处理器,基于事件循环的风格意味着您不必保留许多深层堆叠。您需要根据事件循环编写代码,但这可能是合理的。 如果您有一些长期运行的任务,则使用定时器是不同的中断优先级以允许更高优先级的事件循环抢占较低优先级的事件循环,并将适当类型的工作放入适当的事件队列中。
..
我们正在努力在我们的嵌入式平台上支持Java环境(700 MHz MIPS 74K ,128-256 MB内存)。在阅读了这个文章并进行谷歌搜索后,我想出了一个简短的列表: / p> 来自Sun的Java ME Kaffe Jbed Perc HP Chai VM PhoneME - 似乎最有希望的一个 IBM WEME (感谢ThorbjørnRavn Andersen) A
..