- 博客(21)
- 资源 (8)
- 收藏
- 关注
原创 ARM CORTEX M系列中ROM TABLE原理分析
最近因为工作需要,在研究CORTEX M系列的MCU内部ROM TABLE工作方式,之前对这个ROM TABLE的理解有些模糊,经过查询一些文档加上自己的理解,现在比较清晰了,在此总结以下。目前参考到的文档有以下:1.ARM® Debug Interface Architecture Specification ADIv5.0 to ADIv5.22.ARMv6-M Architect
2017-08-08 10:13:19 8025 4
原创 ARM CMSIS DAP源码分析(一)
结合ARM文档ADIv5,分析一下ARM提供的CMSIS DAP的开源代码,写点个人心得。1.USB的整个传输有2个全局变量二维数组用作缓冲区,如下:static uint8_t USB_Request [DAP_PACKET_COUNT][DAP_PACKET_SIZE]; // Request Bufferstatic uint8_t USB_Res
2015-09-29 17:44:55 13920
原创 ARM CMSIS DAP源码分析(二)
今天分析的是RDDI_DAP_GetARMRegs(DWORD *regs, DWORD *rfpu, ULONG64 mask)和RDDI_DAP_SetARMRegs(DWORD *regs, DWORD *rfpu, ULONG64 mask)这两个函数。 以RDDI_DAP_GetARMRegs(DWORD *regs, DWORD *rfpu, ULONG64 mask)为例,代码如下:
2015-08-14 16:28:08 7665 1
原创 CSerialport用于多串口烧录MCU时丢失数据的分析与解决办法
最近在做用于GD32MCU 多串口烧录的一个项目。目标芯片就是GD32MCU,当然肯定也兼容STM32F1系列的所有芯片。整体的连接情况如下:主机(PC端):多串口烧录上位机软件,从机(GD32MCU,进入system boot),连接线采用USB转串口线。因为对于MCU的量产烧录,很多厂家都有需求,并且量产脱机烧录或者在线编程器好像都很贵,具体价格没有了解过。所以目前来看,这个多串口软件
2014-08-05 22:17:19 1595
原创 Windows驱动开发遇到的问题(二)
今天工作遇到的问题:1.我是从WDF框架开始学习驱动,编译环境也是VS2012+WDK8的组合,驱动工程完成以后,生成的驱动文件只有VISTA,WIN7和WIN8的版本,虽然说微软已经停止了XP系统的维护,但是还是有大量的用户在使用XP系统,所以还要继续开发XP系统的驱动文件。我原来的方法是采用重新安装WDK7,然后再编译出XP系统驱动文件的方法,这个方法实在是太过麻烦,今天发现了张佩发表
2014-03-19 10:01:38 1723
原创 WDK7编译WDF相关的驱动程序错误解决办法
在编译WDF类型的驱动程序时,我采用的是VisualDDK+VS2008的编译环境,出现了很多编译环境的问题,总结如下:1.在实际编译的时候,出现了类似于下面的编译错误:C:\Program Files\Microsoft Visual Studio 9.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing '
2014-03-13 14:33:57 1712
原创 WinDbg调试中遇到的问题(一)
当使用WinDbg调试系统内核代码时,如果出现了BugCheckAnalysis的提示之后,接下来会出现如下两行提示信息:Use !Analyze -v to get detailed debugging information.BugCheck C000021A, {e1c52ce0, c0000034, 0, 0}其中,C000021A为停止码(Stop Code),表示系统进程
2014-02-24 15:37:44 1158
原创 BUS HOUND调试USB驱动遇到的错误代码解析
在使用BUS HOUND调试USB驱动时,在Capture页面会遇到抓取的错误信息,错误代码会在data字段显示,根据不同的显示,含义如下:顺便记录用于以后代码分析。ValueCodeMeaningUSBD_STATUS_CRC0xC0000001CRC error (defined for backward compatibil
2014-02-19 13:29:01 5285
原创 USB驱动调用停止响应的问题
今天实现了USB驱动的GetState,ClearStatus等函数,但是在应用程序调用这几个函数时,总是会出现未响应的问题,后来才发现,在DeviceIoControl函数中,第7个参数表示函数调用返回的字节数,当传入参数为NULL时,就会导致未响应的问题。正确的做法应该是,定义一个DWORD类型的变量,然后把该变量的地址传入该函数,即解决该问题。
2014-02-13 17:13:18 777
原创 Windows驱动开发遇到的问题(一)
今天工作遇到两个问题:1.编译好的驱动程序在安装后,显示“错误39"(具体的描述记不清楚了),这个问题的原因有两点,一个是编译的驱动程序为WIN7驱动,安装在XP系统上,就会出现这个问题;另一个原因是WdfCoInstallerX.dll这个文件的版本不对,对于不同的操作系统,这个文件有对应的版本,应当选择正确。2.第二个问题就是通过VS2012生成的USB KMDF模板代码,编译竟然不通
2014-02-11 15:51:47 781
原创 MFC应用程序修改图标后,改变图标大小又变回原始图标的解决办法
在工程的res文件夹中,删除原始的ico图标文件,然后选择重新生成。这样新生成的exe文件,改变尺寸后,也不会因为尺寸变大,图标又变回原始的MFC的图标了
2014-01-06 16:50:59 2962
原创 自定义VC控件CListCtrlEx中进度条闪烁解决办法
在使用CListCtrlEx类控件时,能够在list control中添加进度条,这个功能非常好用。但是在实际应用中会出现修改进度条进度时,进度条不断闪烁的问题,查找了很多资料后,解决办法如下:在控件的SetExtendedStyle()函数中,增加LVS_EX_DOUBLEBUFFER双缓冲风格,就可以解决这个问题了。CListCtrl_Info.SetExtendedStyle(
2013-12-30 14:02:49 1031
原创 VS2012开发.net程序,release版本不能使用Reportviewer的解决办法
最近用.net开发了一个桌面应用程序,编译出release版本以后,在安装了.net 4.0的客户机上,Reportviewer总是不能成功运行,网上的解决办法多是Reportviewer 9.0版本的办法,还大多是复制粘贴的。我的版本是11.0,在尝试了多种方法后,解决办法如下: 打开开始菜单中的运行,输入:c:\WINDOWS\ASSEMBLY\GAC_MSIL
2013-12-10 13:30:12 1584
原创 Libusb中的dll引用方法
看到这篇文章,大家应该都知道Libusb的用途了,我就直接进入正题。、因为在libusb-win32-bin-1.2.6.0\lib下有多个文件夹,刚开始我没弄明白应该用哪个lib文件来对应libusb0_x86.dll。后来经测试,在msvc文件夹下的lib文件可以用于对应dll文件,同时,dll文件应该修改名称为libusb0.dll。只要在项目中把lib文件加入引用,包括头文件l
2013-11-06 14:23:45 2249
原创 VS2008/VS2010/VS2012 不能创建新项目解决办法
对于VS的IDE,如果出现创建任何项目都无法成功时,首先要取得电脑管理员权限。我们公司的电脑只给开放了一部分权限,很是无奈~~~~得到管理员权限以后,在开始菜单,依次选择 “开始菜单 > Microsoft Visual Studio 2012 > Visual Studio Tools > Visual Studio 命令提示(2012)”,右键以管理员身份运行,然后再输入 regsvr
2013-09-29 14:42:58 1959
Windows设备驱动程序WDF开发
2013-08-27
[高质量程序设计指南.C++/C语言(第三版)高清扫描
2013-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人