草庐IT

EMBEDDED

全部标签

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

在应用程序中编译需要哪些软件Qt/QML片段才能调试/分析QML?我当前的应用程序是使用cmake构建的,并在嵌入式设备上运行。此外,我开始使用Qt4.8.3(直到现在是4.7.0)。我想使用这些奇特/酷的功能(对于嵌入式开发人员):http://doc.qt.digia.com/qtcreator/creator-qml-performance-monitor.html我搜索了qt-project寻求帮助,但我不清楚当您想要使用自定义构建环境调试/分析远程应用程序时需要执行哪些步骤。所以,我想知道是否需要执行以下任何步骤,在肯定的情况下,实际上需要什么代码。Qt库./configur

c++ - 如何调试 STL/C++ 的 GCC/LD 链接过程

我正在使用C++开发裸机cortex-M3,以获取乐趣和利润。我使用STL库是因为我需要一些容器。我认为通过简单地提供我的分配器它不会向最终的二进制文件添加太多代码,因为你只得到你使用的东西。实际上我什至没想到有任何与STL的链接过程(给我的分配器),因为我认为这都是模板代码。顺便说一下,我正在使用-fno-exception进行编译。不幸的是,我的二进制文件中添加了大约600KB或更多。我用nm查看了最终二进制文件中包含的符号,这对我来说似乎是个笑话。列表太长了,我不会尝试跳过它。虽然有一些弱符号。我还查看了链接器生成的.map文件,我什至找到了scanf符号.text0x00015

c++ - C和C++中的编译器优化和临时分配

请查看以下在C和C++中有效的代码:externintoutput;externintinput;externinterror_flag;voidfunc(void){if(0!=error_flag){output=-1;}else{output=input;}}是否允许编译器以与下面类似的方式编译上面的代码?externintoutput;externintinput;externinterror_flag;voidfunc(void){output=-1;if(0==error_flag){output=input;}}换句话说,是否允许编译器生成(从第一个片段开始)始终向out

c++ - 如何处理程序版本更新时不断变化的数据结构?

我做嵌入式软件,但这并不是真正的嵌入式问题,我猜。我不(由于技术原因不能)使用像MySQL这样的数据库,只使用C或C++结构。是否有关于如何处理程序版本之间这些结构的布局变化的通用哲学?让我们拿一个地址簿。从程序版本x到x+1,如果:一个字段被删除(看起来很简单)或添加(如果所有人都可以使用一些新的默认值)?字符串变长还是变短?int从8位变为16位有符号/无符号?也许我结合姓氏/名字,或将名字分成两个字段?这些只是一些简单的例子;我不是在寻找这些问题的答案,而是寻找一个通用的解决方案。显然,我需要一些硬编码逻辑来处理每个更改。如果有人没有从版本x升级到x+1,而是等待x+2怎么办?我

c++ - 模拟动态加载程序以修复共享库偏移量

我在工作中遇到了一个有趣的情况,我正试图为其找到一个好的解决方案。我们有在多核MIPS裸机(无内核)上运行的代码。我们需要与一些需要升级的第三方代码集成。我正在考虑将第3方代码编译为PIC,然后在下载此代码时更改代码/数据符号的GOT(我可以控制代码所在的位置)。此外,假设进入第3方代码的接口(interface)没有改变,因此没有新的PLT/GOT条目。这行得通吗?我还应该考虑哪些其他事项? 最佳答案 正确答案是否比“嵌入动态链接器/加载器”长?您的问题似乎与ld.so等解决的问题相同。描述动态链接器/加载器必须考虑的所有事情是书

c++ - 如何提高小值的定点平方根

我正在使用DrDobb的文章“OptimizingMath-IntensiveApplicationswithFixed-PointArithmetic”中描述的AnthonyWilliams的定点库来使用RhumbLinemethod计算两个地理点之间的距离。当点之间的距离很大(大于几公里)时,此方法效果很好,但在较小的距离时效果很差。最坏的情况是当两点相等或接近相等时,结果是194米的距离,而我需要在距离>=1米时至少有1米的精度。通过与double浮点实现的比较,我将问题定位到fixed::sqrt()函数,该函数在小值时表现不佳:xstd::sqrt(x)fixed::sqrt

windows - 如何在 Windows XP 中为 USB 串行加密狗获得稳定的 COM 端口?

我开发嵌入式系统,需要串口通讯。在WindowsXP中,USB串行端口软件狗的数字一直在移动,这使得它很难在脚本或makefile中使用(例如,通过内置引导加载程序对NXPController进行闪存编程,或控制一个目标和两个实验室设备)。有没有办法为这样的加密狗修复COM端口?在Linux中,我可以通过udev通过匹配FTDI加密狗的序列号来完成此操作(在搜索此问题的答案时请参阅thisanswerIjustgave)。 最佳答案 FTDI驱动程序会根据所连接设备的序列号将串行端口分配给相同的COM端口。因此,无论USB端口如何,

解决报错 Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource c

解决报错FailedtoconfigureaDataSource:‘url’attributeisnotspecifiedandnoembeddeddatasourcecouldbeconfigured.的三种办法目录解决报错FailedtoconfigureaDataSource:'url'attributeisnotspecifiedandnoembeddeddatasourcecouldbeconfigured.的三种办法一、问题描述二、问题的原因三、解决办法3.1第一种解决办法3.2第二种解决办法3.3第三种解决办法:一、问题描述在初次完成项目的构建后,启动项目时出错,提示信息“Fai

windows - 如何使自定义 USB 设备在 Windows 中显示为 COM 端口?

我开发了一个USB设备,它通过一个简单但专有的接口(interface)和一些自定义Linux驱动程序与Linux通信。我的目标是在不编写Windows驱动程序的情况下将其移植到Windows。我想做的是为Windows找到一个开源或内置的类驱动程序,它看起来像Windows中的COM端口。然后我会定制嵌入式软件以匹配虚拟COM端口期望看到的任何协议(protocol)和描述符。我的想法是,我可以将我的设备插入Windows机器,然后会出现一个相对高速的COM端口,而我不必为它开发Windows驱动程序。我一直在查看USBCDC(通信设备类)文档,它看起来很有前途,但我不知道最好使用哪

windows - 设备被误检测为串行鼠标

我正在开发一种通过(虚拟)串行端口与PC通信的设备。问题是我们发送的数据偶尔会被Windows错误地识别为总线鼠标,之后加载“MicrosoftSerialBallpoint”驱动程序,鼠标指针开始在屏幕上跳来跳去并随机点击东西。谷歌搜索显示这是串行设备的一个古老且众所周知的问题,通常的解决方法是对注册表进行一些黑客攻击以禁用有问题的驱动程序。然而,这对我们的用户提出了很多要求,我不想让我们的应用程序弄乱用户的注册表。尤其是当修复依赖于Windows版本并且用户很可能使用总线鼠标时。相反,我想通过更改我们的协议(protocol)以不发送任何可能使我们被误认为是鼠标的数据来避免该问题。