wince6.0下用户程序访问物理地址
应用程序直接访问物理地址可以极大的方便硬件驱动开发.如直接访问LCD控制器,可以很直接的对各种参数进行微调,不必一次次的编译打包,下载运行.wince6.0之前可以通过MmMapIoSpace将物理地址映射到程序空间.MmMapIoSpace内部实现就是常见的VirtualAlloc+VirtualCopy.Wince6.0对内核模式也用户模式做了相当大的改动,具体如何还不是很明了,清楚的是用户态程序调用VirtualCopy物理地址时会返回失败,导致MmMapIoSpace返回0.绕过去的思路就是加载部分代码到内核模式,在这部分代码中完成地址映射.有两种实现的方法,一个是通过ActivateDevice加载一个
GSM07-10(multiplexer protocol)笔记
multiplexer protocol(以下简称MUX) 简单一点就是多路复用,将原有的一条物理通道虚拟成几条可并发的逻辑通道,同网络协议中的物理链路,逻辑链路有点类似.实现上也类似,将逻辑通道上的数据打包,加上包头包尾,再发到物理通道上.上图为建立逻辑通道,发送数据的例子.其中AT+CMUX=0是物理通道上的数据,告诉GSM MODEM(以下简称猫)我要进到MUX模式了,猫响应OK.主机依次发送SAMB0,1,2,3,建立编号为0~3的逻辑通道.猫响应UA表示同意.然后主机就可以使用逻辑通道发命令了,如上图的UIH(1,"ATrn"),猫也在该通道(地址为1)上响应UIH包,数据同物理
ucgui 字体相关实现
ucgui支持等宽字体和变宽字体,支持不同编码格式字符集如ascii,unicode,shift-jis 字体定义为 typedef struct { GUI_DISPCHAR* pfDispChar; GUI_GETCHARDISTX* pfGetCharDistX; GUI_GETFONTINFO* pfGetFontInfo; GUI_ISINFONT* pfIsInFont; tGUI_ENC_APIList* pafEncode; U8 YSize; U8 YDist; U8 XMag; U8 YMag; union { void *pFontData; const GUI_FONT_MONO* pMono; const GUI_FONT_PROP* pProp; } p; U8 Baseline; } GUI_FONT; 不同字体对应的显示方式可能有差异
Error: failed PB timebomb check
据说我的pb5是正版,怎么出来个timebomb懒得重装,弄了个脚本(好像有点笨),放到path下面,没碰到炸弹了,只是不能直接makeimg了for /f "useback" %%i in (`"@date /t"`) do @set rdate=%%i @rem 2007-08-08是炸弹最后日期 date 2007-08-08 makeimg date %rdate% [@more@]
wince5.0 下OEMIoControl
最近移植S3C2440 wince5.0的BSP,编译完成后调试口始终出现 OEMIoControl:Unsupported Code 0x1010024稍微看了一下相关实现首先找到 OEMIoControl 是在那里实现的,打开kern.map,发现0001:00062990 OEMIoControl 00073990 f oal_ioctl_s3c2440a:ioctl.obj顺藤摸瓜,oal_ioctl_s3c2440a 的 ioctl来自 PLATFORM/COMMON/SRC/COMMON/IOCTL/ioctl.cUnsupported就是在该文件打印出来,原因是 g_oalIoCtlTable 中没有定义该 codeg_oalIoCtlTable 在哪里?又回到kern.map0001:00028b00 g_oalIoCtlTable 00039b00 oal:ioctl.obj找到文件 PLATFORM/S
VC6模拟LCD屏
嵌入式开发工具越来越强大,但目前还是比不上VC方便,至少需要下载,所以很多嵌入式开发工具都提供PC机上模拟的功能。在console程序上实现lcd模拟也很简单,本文实现了对framebuffer的模拟,当然,因为简单,所以粗糙#ifdef BS_LCD_SUPPORT#define fb_w 320#define fb_h 240#define fb_s (fb_w*fb_h*2)HDC g_hDC;void * g_pFrameBuffer = NULL;//thread to simulator LCDDWORD SimLCD(void){DWORD dwInfos[300]={0};BITMAPINFOHEADER * pMapHeader = (BITMAPINFOHEADER *)dwInfos;BYTE paaPixel[fb_s];g_pFrameBuffer = paaPixel;LibPrint
wince平台加载网卡驱动后联机异常
在pxa270和s3c2440的开发板(wince4.2或wince5.0)上发现activesync的一个问题,就是加载网卡驱动后,平台同主机通过usb连接正常,可以浏览、操作文件,但evc远程工具等无法连接开发板原因应该是加载网卡驱动后,开发板端activesync会通过网络来transport解决办法1 禁用开发板网卡(不是好方法) 或2 在platform manager中配置Device,将Transport选择为TCP/IP Transport for Window CE,并将Host IP选择为Configure automatically over serila 或3 用网线连接开发板和主机,在platform manager中配置Device,将Transport选择为TCP/IP Tra