embedded相关内容

STM32 SPI 慢速计算

我正在使用 STM32F4 及其 SPI 与本教程中的 74HC595 通信.区别在于初学者我使用非 DMA 版本为简单起见.我用STMCubeMX配置SPI和GPIO 问题是:我没有获得闩锁 PIN,我将其设置为 PA8,以便在传输过程中足够快地切换. 我正在使用的代码: spiTxBuf[0] = 0b00000010;HAL_GPIO_WritePin(GPIOA, GPIO ..
发布时间:2022-01-25 12:12:25 其他开发

小尺寸微控制器上的 C++

在我看来,人们似乎一直在回避,或者更确切地说,强烈反对在微控制器上使用 C++,但我终其一生都无法弄清楚原因.如果您远离大型 C++ 库(例如 STL)并且不尝试使用 RTTI 或异常处理等复杂功能,那么 C 与 C++ 之间真的有任何明显的区别吗?虚拟继承对复杂性或占用空间有巨大影响吗?我认为这将是一个额外的内存,但大部分复杂性将由编译器处理,但话又说回来,我对那个黑魔法知之甚少.我只是不明白为 ..
发布时间:2022-01-25 12:11:11 C/C++开发

如何在 Stellaris 中的程序之间跳转

我正在为 Stellaris LM3S1607 芯片开发引导加载程序.我正在使用 Keil MicroVision4 C 编译器.这个想法是创建 2 个独立的固件,一个将更新另一个.在固件 1 中,我下载了固件 2 文件并将其写入地址 0x3200 的闪存.直到这里它正在工作.我还验证了数据是否正确写入闪存.现在我有两个应用程序.一个是我的 uip 引导加载程序,而 seoncd 一个是我的主要项 ..
发布时间:2022-01-25 12:10:03 其他开发

将 ASM 转换为 C(不是逆向工程)

我在谷歌上搜索,发现大量轻率的回答基本上是在嘲笑提问者提出这样的问题. Microchip 免费提供了一些源代码(我不想在这里发布,以防万一.基本上,谷歌 AN937,点击第一个链接,有一个“源代码"链接,它是压缩的文件).它在 ASM 中,当我看到它时,我开始对视.我想将其转换为类似于 c 类型语言的东西,以便我可以跟进.因为像这样的行: GLOBAL _24_bit_submovf B ..
发布时间:2022-01-25 12:09:54 其他开发

嵌入式 C++:是否使用 STL?

我一直是嵌入式软件工程师,但通常在 OSI 堆栈的第 3 层或第 2 层.我不是一个真正的硬件人.我一般一直做电信产品,通常是手机/手机,这通常意味着类似 ARM 7 处理器的东西. 现在我发现自己处于一个更通用的嵌入式世界,在一家小型初创公司中,我可能会转向“不那么强大"的处理器(这是主观的一点)——我无法预测是哪个. 我已经阅读了很多关于在嵌入式系统中使用 C++ 中的 STL 的 ..
发布时间:2022-01-25 12:07:59 C/C++开发

如何随时暂停 pthread?

最近我开始着手将 ucos-ii 移植到 Ubuntu PC. 我们知道,在 ucos-ii 中通过简单地在 pthread 的回调函数中的“while"循环中添加一个标志来执行暂停和恢复是不可能的(如下面的解决方案).因为ucos-ii中的“进程"可以随时暂停或恢复! 如何休眠或暂停 PThreadLinux 上的 c 语言 我在下面的网站上找到了一种解决方案,但由于它已过时而 ..
发布时间:2022-01-25 12:07:27 服务器开发

Flash 中的循环缓冲区

我需要将不同长度的项目存储在闪存芯片的循环队列中.每个项目都有它的封装,所以我可以弄清楚它有多大以及下一个项目从哪里开始.当缓冲区中有足够的项目时,它会自动换行. 在闪存芯片中存储循环队列的好方法是什么? 我想存储数以万计的物品的可能性.所以从头开始读取到缓冲区的末尾并不理想,因为搜索到末尾需要时间. 另外,因为它是循环的,我需要能够区分第一个项目和最后一个项目. 最后一个 ..
发布时间:2022-01-21 11:57:14 其他开发

SIGTRAP 尽管没有设置断点;隐藏硬件断点?

我正在为 STM32 嵌入式系统调试这个软件.在其中一个函数中,我的程序不断遇到某种断点: SIGTRAP,跟踪/断点陷阱 但是,在 GDB 中,当我执行 info breakpoints 时,我会得到 No breakpoints or watchpoints.断点实际上对应于我很久以前在另一个版本的可执行文件中设置的断点.当我设置断点时,GDB 告诉我在只读内存上自动使用硬件断点( ..
发布时间:2022-01-20 20:41:08 其他开发

您如何使用“目标远程"在 gdb 中重新开始运行程序?

当您在同一台计算机上对可执行文件执行常规 gdb 会话时,您可以发出运行命令,它会重新启动程序. 当您在嵌入式系统上运行 gdb 时,如使用命令 target localhost:3210,如何在不退出并重新启动 gdb 会话的情况下重新启动程序? 解决方案 您正在寻找 gdbserver 的多进程模式 和 设置远程执行文件文件名 ..
发布时间:2022-01-20 20:41:00 其他开发

如何 Qt - Qml 调试和/或分析?

需要在应用程序中编译哪些软件 Qt/QML 片段才能调试/分析 QML? 我当前的应用是使用 cmake 构建的,并在嵌入式设备上运行.此外,我开始使用 Qt 4.8.3(直到现在 4.7.0). 我想使用这些花哨/酷炫的功能(适用于嵌入式开发人员): http://doc.qt.digia.com/qtcreator/creator-qml-performance-monito ..
发布时间:2022-01-19 23:02:19 C/C++开发

我们如何解决在生产中停止的长期运行的 NETMF 程序?

情况 我有一个 FEZ Cobra II NET 运行测试代码.它每秒向 LAN 上的服务器发送数据.服务器将数据写入文本文件.在 27 小时和 97,200 次成功发送后,Cobra 停止发送.显然,我不会在 27 小时内进行调试,而且我不知道如何排除故障,因为标准的软件故障排除方法不适用. 问题 如果我要写信记录 Cobra 上的错误,我将如何访问它们? NETMF 有应用 ..
发布时间:2022-01-19 16:27:13 C#/.NET

C 代码中 MAC 地址的表示

我经常在 C 代码中看到这样的 MAC 地址表示: struct mac_addr {无符号字符字节[6];} 为什么需要在结构中放置一个数组,为什么不只是一个数组?这有什么好处? 谢谢. 解决方案 你不能在 C 中分配一个数组,但是你可以分配一个结构体. ..
发布时间:2022-01-19 16:23:24 其他开发

在 SPI 问题中初始化 SD 卡

我看过 Stack Overflow 问题使用 SPI 接口初始化 microSD 卡 并没有看到任何与我的问题相匹配的答案(也就是说,我还没有尝试过的事情). 我有一个类似的问题,我试图通过微控制器的 SPI 接口(特别是 HC908).我已经尝试遵循物理层简化规范 v2.00 中的流程图,它似乎在 Transcend 1 GB & 上正确初始化2 GB 和 AE&C 1 GB 卡.但是我 ..
发布时间:2022-01-18 23:46:57 其他开发