草庐IT

usb-debugging

全部标签

debugging - 在 GDB 中,如何找出谁在堆上分配了地址?

我在GDB中有一个指针,我怎样才能找到它在堆上的第一次分配位置?在WinDBG中,开启!heap-p-a后可以通过gflags/i+ust来完成既然Valgrind可以告诉我内存分配在哪里(当它检测到一些泄漏时),我想这也是可能的?(这与观察点无关。这是考虑到我随机闯入GDB中的应用程序的情况,查看指针并想知道“谁创建了这block内存”?)在GDB中使用反向调试是一种非常新颖的方法,并且可能是解决此问题的正确方法。我在使用GDB7.1时遇到了一些问题——最新的稳定版本。反向调试是GDB中一个相当新的功能,所以我需要查看HEAD(7.2)来修复它。它可能说明了GDB方法的成熟度,但我认

debugging - 在 GDB 中,如何找出谁在堆上分配了地址?

我在GDB中有一个指针,我怎样才能找到它在堆上的第一次分配位置?在WinDBG中,开启!heap-p-a后可以通过gflags/i+ust来完成既然Valgrind可以告诉我内存分配在哪里(当它检测到一些泄漏时),我想这也是可能的?(这与观察点无关。这是考虑到我随机闯入GDB中的应用程序的情况,查看指针并想知道“谁创建了这block内存”?)在GDB中使用反向调试是一种非常新颖的方法,并且可能是解决此问题的正确方法。我在使用GDB7.1时遇到了一些问题——最新的稳定版本。反向调试是GDB中一个相当新的功能,所以我需要查看HEAD(7.2)来修复它。它可能说明了GDB方法的成熟度,但我认

debugging - 如何可视化 AVR 程序的内存 (SRAM) 使用情况?

我在AVR微Controller(ATMega328P)上运行的C程序中遇到了问题。我相信这是由于堆栈/堆冲突,但我希望能够确认这一点。有什么方法可以可视化堆栈和堆的SRAM使用情况?注意:程序用avr-gcc编译,使用avr-libc。更新:我遇到的实际问题是malloc实现失败(返回NULL)。所有malloc发生在启动时,所有free发生在应用程序结束时(实际上从来没有,因为应用程序的主要部分处于无限循环中).所以我确信碎片化不是问题。 最佳答案 您可以使用avr-size实用程序检查RAM静态使用情况,如中所述http://

debugging - 如何可视化 AVR 程序的内存 (SRAM) 使用情况?

我在AVR微Controller(ATMega328P)上运行的C程序中遇到了问题。我相信这是由于堆栈/堆冲突,但我希望能够确认这一点。有什么方法可以可视化堆栈和堆的SRAM使用情况?注意:程序用avr-gcc编译,使用avr-libc。更新:我遇到的实际问题是malloc实现失败(返回NULL)。所有malloc发生在启动时,所有free发生在应用程序结束时(实际上从来没有,因为应用程序的主要部分处于无限循环中).所以我确信碎片化不是问题。 最佳答案 您可以使用avr-size实用程序检查RAM静态使用情况,如中所述http://

STM32利用USB的HID与QT上位机通信

 之前使用kingst的逻辑分析仪,打开上位机软件,插上带usb的硬件就可以通信,也不需要打开串口什么的,感觉很方便,于是借用一个周末研究下这个技术。本文主要是用于记录自己学习的过程,顺便分享下学习感悟。首先初略说下大体是怎么回事,就是单片机使用hid功能需要配置VIDPID,这两个相当于设备地址,配置好之后上位机根据这两个地址找到你的单片机,就可以通信了,就这么简单。1.通过CUBEMX配置stm32的usb功能 图1  图2 2.填写HID报告描述符,USB_DEVICE/App/下打开usbd_custom_hid_if.c文件中。这个地方有很多要说的,先直接上单片机配置的代码。__AL

STM32F103实现USB虚拟串口

    今天分享一下STM32F103如何实现虚拟串口,目标是让新手也能上手,如果谁没看懂或者照着做功能没有实现可以私信我,只要我看到一定回复。新建STM32CubeMX工程    本次使用的是STM32F103C8T6核心板,按以下步骤新建一个STM32CubeMX工程。    步骤一:先输入MCU型号搜索芯片,软件支持模糊搜索,然后在右侧选中正确的MCU后,点击“next”到下一步;    步骤二:输入工程名称,尽量不要含中文和特殊字符,其他保持默认设置就行,直接点“finish”按钮到下一步,此步骤很简单就不配图了;    步骤三:进入工程配置界面我们首先点开SystemCore找到RC

STM32 —— USB 转 TTL(CH340)

STM32——USB转TTL(CH340)在使用USB转TTL模块之前,我们需要了解TTL协议串口TTL什么是TTLTTL一般是从单片机或者芯片中发出的电平,高电平为5V(51单片机)或者3.3V(stm32)TTL接口属于并行方式传输数据的接口,采用这种接口时,不必在液晶显示器的驱动板端和液晶面板端使用专用的接口电路,而是由驱动板主控芯片输出的TTL数据信号经电缆线直接传送到液晶面板的输入接口TTL电平TTL电平信号应用广泛,是因为其数据表示采用二进制规定,即:逻辑高电平==0==VCC==3.3V或5V逻辑低电平==0==0V==0V数字电路中,由TTL电子元器件组成电路的电平是个电压范围

STM32 —— USB 转 TTL(CH340)

STM32——USB转TTL(CH340)在使用USB转TTL模块之前,我们需要了解TTL协议串口TTL什么是TTLTTL一般是从单片机或者芯片中发出的电平,高电平为5V(51单片机)或者3.3V(stm32)TTL接口属于并行方式传输数据的接口,采用这种接口时,不必在液晶显示器的驱动板端和液晶面板端使用专用的接口电路,而是由驱动板主控芯片输出的TTL数据信号经电缆线直接传送到液晶面板的输入接口TTL电平TTL电平信号应用广泛,是因为其数据表示采用二进制规定,即:逻辑高电平==0==VCC==3.3V或5V逻辑低电平==0==0V==0V数字电路中,由TTL电子元器件组成电路的电平是个电压范围

c++ - 在 Windows 上与 USB HID 设备进行通信的最佳 USB 库是什么?

图书馆应该;易于使用,几行客户端代码就能完成很多工作尽可能独立于平台。(以防将来移植到其他平台)拥有C++绑定(bind)。成熟稳重我还希望通过回调获得大多数HID事件的通知。我考虑过以下替代方案:libhid-(很遗憾?)这是GPL,不能在我的应用程序中使用。WDK-对我来说似乎有点低级。我不需要那种控制。atusbhid-这具有适当的抽象级别,但它与Windows消息传递循环紧密相关还有其他选择吗? 最佳答案 看看hidapi:它是C,它回答了C++绑定(bind)问题(有效:)),是跨平台的,并且具有非常宽松的许可证。它似乎没

c++ - 在 Windows 上与 USB HID 设备进行通信的最佳 USB 库是什么?

图书馆应该;易于使用,几行客户端代码就能完成很多工作尽可能独立于平台。(以防将来移植到其他平台)拥有C++绑定(bind)。成熟稳重我还希望通过回调获得大多数HID事件的通知。我考虑过以下替代方案:libhid-(很遗憾?)这是GPL,不能在我的应用程序中使用。WDK-对我来说似乎有点低级。我不需要那种控制。atusbhid-这具有适当的抽象级别,但它与Windows消息传递循环紧密相关还有其他选择吗? 最佳答案 看看hidapi:它是C,它回答了C++绑定(bind)问题(有效:)),是跨平台的,并且具有非常宽松的许可证。它似乎没