WinCE中的RAM-Based Registry与HIVE-Based Registry
基于WinCE的OPC数据采集系统设计与实现

CN4321258/TP ISSN10072130X 计算机工程与科学COMPU TER EN GIN EERIN G&SCIENCE2007年第29卷第6期 Vol129,No16,2007 文章编号:10072130X(2007)0620124204基于WinCE的O PC数据采集系统设计与实现3 Design and Implementatio n of aWinCE2Based O PC Data Collecting System尤 枫,邵俊军,赵恒永YOU Feng,SHAO Jun2jun,ZHAO H eng2yong(北京化工大学信息科学与技术学院,北京100029)(School of Inform ation Science and T echnology,B eijing U niversity of Chemical T echnology,B eijing100029,China)摘 要:本文分析了现阶段OPC数据采集方法在工业控制中存在的问题,并根据WinCE系统和OPC技术的特点提出并实现了基于WinCE的嵌入式OPC数据采集方案。
该方案是工业数据采集的一种新的实现方法,具有很好的应用前景。
Abstract:According to the characteristics of WinCE and OPC,a WinCE2based OPC data collection method is proposed after analyzing the problems existing in the current industrial control.It is a new way of data collection,and has a great ap2 plication prospect.关键词:OPC;WinCE;数据采集;嵌入式系统K ey w ords:OPC;WinCE;data collecting;embedded system中图分类号:TP311文献标识码:A1 引言OPC(OL E for Process Control,简称OPC)是OPC基金会制定的一套过程控制软件的互操作性规范,它的出现极大地提高了工业现场过程控制系统和企业上层应用系统之间的互操作性,使工业控制朝着标准化、统一化的方向发展。
Windows+CE+操作系统裁剪

网络应用程序驱动 Core OS →Windows CE devices →Communication Services and Networking →Networking Features →Network Utilities(IpConfig , Ping , Route) 添加网络中常用命令 (添加)
MFC特性驱动 Core OS →Windows CE devices →Applications and Services Development →Microsoft Foundation Classes(MFC) 添加MFC微软基础类,可编译运行MFC制作 的应用程序 添加
蓝牙无线传输OBEX(Object Exchange)协议 Core OS →Windows CE devices →Applications and Services Development →Object Exchange Protocol(OBEX) →OBEX Server →OBEX File Browser/OBEX Inbox 蓝牙的交换对象协议 可选,建议不添加
DOS命令窗口驱动 Core OS →Windows CE devices →Shell and User Interface →Shell and User Interface →Shell →Command Shell →Command Processor/Console Window 相当于Windows的窗口命令 添加
Media player播放器驱动 Core OS →Windows CE devices →Graphics and Multimedia Technologies →Media →Windows Media Player →Windows Media Player MP3/WMA文件驱动 Core OS →Windows CE devices →Graphics and Multimedia Technologies →Media →WMA and MP3 Local Playback/WMA and MP3 Streaming MPEG-1播放驱动 Core OS →Windows CE devices →Graphics and Multimedia Technologies →Media →Video Codecs and Renderers →MPEG1 Video Codec 视频音频解码驱动 Core OS →Windows CE devices →Graphics and Multimedia Technologies →Media →Audio Codecs and Renderers →MPEG1 Layer 1 and 2 Audio Codec 可选建议不添加
基于Windows CE的嵌入式GPS数据采集系统设计

2o11 1 .o
l s 00| o tT S& So uto l in
0 引言
G S全 球 卫 星 定 位 导 航 系 统 ( lbl o io ig P G o a P s inn t
卫星导航 的基带处理 ,而 DS P主要完成可见 卫星 的预 测 , 载波环 和码环 的环路 控制 以及后续 的导航 定位解 算等功 能 。本文 采用 Gami 司 GP 5 r n公 S 1 L型接 收机 ,它遵 循 N MA一 1 3标 准协 议 。GP E 08 S接 收机 将 收到 的原 始信 息
,
a a ds ly. sd s i sg oo m n—m a h n iply i efc I me t t e rq ie n st a a s ly t e d t ipa Bei e , tdei sa g d hu a n c i e d s a nt r e t a esh e u rme t h ti c n d p a t i h
串 口类 创 建 好之 后 ,我 们 需要 对 G S接 收 的 数据 P
23用E C . V 实现对GP 数据 的处理 和显示 S
231串口通信 ..
G S 收机 被 设计 成 标 准 串 口设 备 ,G S接 收模 P接 P
块将 接收到 的信 息通过 串 口发 送给处 理器 ,我们 只需 以 WiA I n P 的方式 打开 串 口接收 串 口信息 。在 Wid ws n o 下
.
bae i do sCE m be d d o r tn y tm s d on W n w e d e pea g sse i
.
I r c i e h r i a f r a o o t e stl t s g t e GP t e ev s e o g n i o m t n f m ae ieu i S t i l n i r h l n h
TCC89xx 91xx 92xx WinCE BSP Development Guide

TCC8900/9100/9200 WinCE BSP Driver Modification GuideSeptember, 2009TelechipsWinCE BSP TeamCONTENTS1.How to set CPU and BUS clocks on TCC8900 WinCE BSP1)Overview2)F_CPU: Available CPU Clock3)F_MBUS: Available Memory BUS(DDR2) Clock, clock change4)F_VBUS, F_VCOD2.Touch Driver3.Backlight Control Example Guide-Out Guide5.Serial Driver6.DRAM Control1)ODT(On Die Termination)2)DRAM Type Selection7.How to configure VFP (Vector Floating Point) on BSP8.Hive-based Registry Setup•Overview–TCC8900 have 4 PLL sources, each PLL is asserted to each BUS and peripheral –Below figure shows overview of clock settingsName DescriptionF_CPU CPU Clock FrequencyF_MBUS CPU Interface and Memory Bus ClockF_DBUS Bus Clock for Display Device (Video In/Out + Display Related Hardwares)F_GBUS Bus Clock for Graphic DeviceF_VBUS Bus Clock for Video Processing (Video Codec)F_VCOD Core Clock for Video Codec (Moving Video Only)F_IOBUS Bus Clock for I/O Interface DevicesF_SMUBus Clock for System Management UnitPLL0Nominal: 540MHz High: 800MHz PLL1Nominal: 560MHz High: 660MHzPLL2468MHz PLL3528MHzF_CPU F_MBUS F_DBUSF_GBUS F_VBUS F_VCOD F_SMU ADC LCD LVDSSDMMC USB Host1.1Nominal voltage High voltage 600MHz 280MHz 264MHz 264MHz330MHz F_IOBUS common176MHz 156MHz 176MHz156MHz 117MHz 264MHz 234MHz234MHz 39MHz UART 52MHz 156MHz 132MHz 48MHz132MHzCore Voltage 506MHz•F_CPU: Available CPU Clock–Below table shows available clock values of CPU.–You can change F_CPU in application layer by IOCTL. Refer below example60000005062500486000047250004556250438750042525004050000394875037800003712500364500035100003375000324000030375002970000283500027000002632500243000023625002227500216000020250001890000182250017500001687500162000014850001417500135000012150001015000945000810000675000607500540000405000Core Freq.(100Hz)-Application Example CodepCKCIOCTL.ioctlcode = IOCTL_CKC_SET_CHANGECPU ;pCKCIOCTL.cpuvalue = 5062500;KernelIoControl(IOCTL_HAL_TCCCKC , &, &pCKCIOCTL pCKCIOCTL pCKCIOCTL, , , sizeof(stckcioctl sizeof(stckcioctl sizeof(stckcioctl), &), &), &pCKCINFO pCKCINFO pCKCINFO, , sizeof(stckcinfo sizeof(stckcinfo), &), &), &returnedbyte returnedbyte returnedbyte););•F_MBUS: Available Memory BUS(DDR2) Clock–Below table shows available clock values of BUS.–You can change F_MBUS in application layer by IOCTL. Refer below exampleCaution:MEM_BUS = Source/(divisor+1)The divisor should not be “Even Number”or “ZERO”.If divisor is even number, system would be unstable.330000032000003120000300000029000002800000270600026060002500000240000023000002200000210000020000001900000180000017000001600000150000014500001410000Fmbus Unit (100hz)-Application Example CodepCKCIOCTL.ioctlcode = IOCTL_CKC_SET_CHANGEMEM ; // ; // IOCtrl IOCtrl Name Name --Update Update ioctl_code.h ioctl_code.h pCKCIOCTL.busvalue pCKCIOCTL.busvalue= 3200000; // 2640000;= 3200000; // 2640000;KernelIoControl(IOCTL_HAL_TCCCKC , &, &pCKCIOCTL pCKCIOCTL pCKCIOCTL, , , sizeof(stckcioctl sizeof(stckcioctl sizeof(stckcioctl), ), &pCKCINFO,sizeof(stckcinfo pCKCINFO,sizeof(stckcinfo), &), &), &returnedbyte returnedbyte returnedbyte););•F_xBUS: Available Clock–Below table shows available clock values of F_xBUS.–You can change F_xBUS in application layer by IOCTL. Refer below example2340000264000015600001760000117000013200009360001056000780000880000668600754300585000660000520000586700468000528000425500480000390000440000360000406200334300377100312000352000292500330000Fxbus Unit(100Hz)-Application Example CodepCKCIOCTL.ioctlcode = IOCTL_CKC_SET_CHANGEFBUS ; // ; // IOCtrl IOCtrl Name Name --Update Update ioctl_code.h ioctl_code.h pCKCIOCTL.pckcname = CLKCTRL5; // = CLKCTRL5; // Fvbus Fvbus pCKCIOCTL.pckcfreq = 2640000; // 2640000;KernelIoControl(IOCTL_HAL_TCCCKC , &, &pCKCIOCTL pCKCIOCTL pCKCIOCTL, , , sizeof(stckcioctl sizeof(stckcioctl sizeof(stckcioctl), &), &), &pCKCINFO pCKCINFO pCKCINFO, , sizeof(stckcinfo sizeof(stckcinfo), &), &), &returnedbyte returnedbyte returnedbyte););•F_MBUS–Before changing clock of DDR2, DDR2 should be paused.–Refer below flow chart.–Currently, changing clock of DDR2 is only supported on bootloader.1. Location of source code-Src\LIB\SOC\DDR\TCC89x\init_MEM.c 2. Function to be referred-volatile void init_bootddr(void)-void init_copybootddr(voidCopy init_bootddr() from DDR2 to SRAMPause DDR2Change Clock of DDR2Turn on DLL volatile void init_bootddr(void){…//PLL1 is assigned for clock of DDR2*(volatile unsigned long *)0xF0400024= 0x0000fa03; // pll pwr offif(lpll1 == 660) // to use 660, clock voltage should be increased{*(volatile unsigned long *)0xF0400024= 0x00006E02; // pms-pllout_660M *(volatile unsigned long *)0xF0400024= 0x80006E02; // pll pwr on }else if(lpll1 == 560){*(volatile unsigned long *)0xF0400024= 0x00008c03; // pms-pllout_560M *(volatile unsigned long *)0xF0400024= 0x80008c03; // pll pwr on }else{*(volatile unsigned long *)0xF0400024= 0x00008c03; // pms-pllout_560M *(volatile unsigned long *)0xF0400024= 0x80008c03; // pll pwr on }…// Set clock of DDR2*(volatile unsigned long *)0xF0400008 = (0x00200000 | ((lmem_div-1) << 4)|lmem_source); // CKC-CLKCTRL2 -Mem…}Turn off DLLGo DDR2Caution:MEM_BUS = Source/(divisor+1) // The divisor should not be “Even Number”or “ZERO”In case of above code, value of lmem_div should be “Even number”•F_MBUS–Compile procedureTouch Driver•You should modify MIN_X, MAX_X, MIN_Y, MAX_Y according to version of EVB.1.#ifdef _USING_GPIO_MODE_2.#define MAX_X 38043.#define MIN_X 2254.#define MAX_Y 36905.#define MIN_Y 4006.#else7.#if _OLD_BOARD_8.#define MAX_X 31009.#define MIN_X 105010.#define MAX_Y 268011.#define MIN_Y 136012.#else13.#define MAX_X 315014.#define MIN_X 97015.#define MAX_Y 269016.#define MIN_Y 134017.#endif 18.#endifFile Location: \Magellan \Src \DRIVERS \Touch2H/W Ver.: TCC89/91/9200_MAIN V0.1H/W Ver.: TCC89/91/9200_MAIN V1.0/1.1Backlight Control Example Guide•To control brightness of LCD backlight, modify value of “vTimerAddr->TMREF3”–Maximum value of that variable is BKL_LEVEL_MAXexamplevoid tca_bkl_init(unsigned int tmr_vaddr, unsigned int gpio_vaddr){PTIMER vTimerAddr= (PTIMER) tmr_vaddr;PGPIO vGpioAddr= (PGPIO) gpio_vaddr;vTimerAddr->TCFG3 = 0x124;vTimerAddr->TREF3 = BKL_LEVEL_MAX;vTimerAddr->TCFG3 = 0x125;BITCSET(vGpioAddr->GPAFN0, Hw32-Hw28, Hw29);BITSET(vGpioAddr->GPAEN,Hw7);BITSET(vGpioAddr->GPADAT,Hw7);}•IOCTLs–IOCTL_BLK_SETPOWER : set backlight 0 ~ 100–IOCTL_BLK_GETPOWER : get backlight valueWinCE BSP TV-Out Guide •Check Catalog Item –TvOut DriverSet TV Output FormatEnable TV-OutDisable TV-OutLCD OutputTV OutputSwitching: LCD-OutChanging: TV-Out FormatSwitching: TV-Out •Overview: Switching LCD/TV Output & Change TV-Out Format•Set TV Output Format–Synopsis•DeviceIoControl(handle, IOCTL_TVOUT_TYPE,&mode, sizeof(mode), NULL, NULL, NULL, NULL);–Parameters:•IOCTL_TVOUT_TYPE–IOCTL code for setting TV output format.–Refer to: ‘IOCTL Code Definition for TV-Out’•handle: TVOUT device handle.•mode : TV output format code–Data-type: unsigned int (4 bytes)–Value: Refer to‘Supported TV Output Format’•Enable TV-Out–Synopsis•DeviceIoControl(handle, IOCTL_TVOUT_OPEN,NULL, NULL, NULL, NULL, NULL, NULL);–Parameters:•IOCTL_TVOUT_OPEN–IOCTL code for enable TV-out.–Refer to: ‘IOCTL Code Definition for TV-Out’•handle: TVOUT device handle.•Disable TV-Out (Enabled LCD-Out)–Synopsis•DeviceIoControl(handle, IOCTL_TVOUT_CLOSE,NULL, NULL, NULL, NULL, NULL, NULL);–Parameters:•IOCTL_TVOUT_CLOSE–IOCTL code for disable TV-Out.–Refer to: ‘IOCTL Code Definition for TV-Out’•handle: TVOUT device handle.•Connect LCDC–Synopsis•DeviceIoControl(handle, IOCTL_TVOUT_CONNECT_LCDC, &id, sizeof(id), NULL, NULL, NULL, NULL);–Parameters:•IOCTL_TVOUT_CONNECT_LCDC–IOCTL code for connect LCDC0 or LCDC1–Default: Connected with LCDC1.•handle: TVOUT device handle.•id : LCDC Index–Data-type: unsigned int(4 bytes)–0: LCDC0, 1: LCDC1•API: Supported TV Output Format Definition/* Supported TV Output Format Code Definition*/#define NTSC_M0x0000#define NTSC_M_J0x0001#define NTSC_N0x0010#define NTSC_N_J0x0011#define NTSC_4430x0020#define PAL_M0x0100#define PAL_N0x0110#define PAL_B0x0120#define PAL_G0x0130#define PAL_H0x0140#define PAL_I0x0150#define PSEUDO_NTSC 0x1000#define PSEUDO_PAL0x1010•API: IOCTL Code Definition for TV-Out/* IOCTL Code for TV-Out */#define IOCTL_TVOUT_TYPE TCC_IOCTLCode(1200, METHOD_BUFFERED) #define IOCTL_TVOUT_OPEN TCC_IOCTLCode(1201, METHOD_BUFFERED) #define IOCTL_TVOUT_CLOSE TCC_IOCTLCode(1202, METHOD_BUFFERED) #define IOCTL_TVOUT_CONNECT_LCDC TCC_IOCTLCode(1203, METHOD_BUFFERED)int lcd_tvout(int mode_idx){int handle;unsigned int mode;switch(mode_idx){case 1 : mode = NTSC_M; break;case 2 : mode = NTSC_M_J; break;case 3 : mode = NTSC_N; break;case 4 : mode = NTSC_N_J; break;case 5 : mode = NTSC_443; break;case 6 : mode = PAL_M; break;case 7 : mode = PAL_N; break;case 8 : mode = PAL_B; break;case 9 : mode = PAL_G; break;case 10 : mode = PAL_H; break;case 11 : mode = PAL_I; break;case 12 : mode = PSEUDO_NTSC; break;case 13 : mode = PSEUDO_PAL; break;case 0 :default :mode = 0xFFFF;break;}handle = CreateFile(L"TVO1:", GENERIC_WRITE, NULL, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);if ( handle == INVALID_HANDLE_VALUE)return -1;if(mode== 0xFFFF){DeviceIoControl(handle, IOCTL_TVOUT_CLOSE,NULL, NULL, NULL, NULL, NULL, NULL);}else{DeviceIoControl(handle, IOCTL_TVOUT_TYPE,&mode, sizeof(mode), NULL, NULL, NULL, NULL);ioctl(fd, TCC_LCD_FB_IOCTL_TVOUT_TYPE, &mode);DeviceIoControl(handle, IOCTL_TVOUT_CLOSE,NULL, NULL, NULL, NULL, NULL, NULL);}CloseHandle(handle);return 0;}•Example•TV-OUT Demo: Using TCDiagnostics application1.Run TCDiagnostics application2.Select [TV-Out]tab.3.Select TVOUT format•Using [Tv Type]combo box•NTSC_M, PAL_M, …4.Display to TV.•Using [TV Output]button5.Display to LCD.•Using [LCD Output]button•Channel and Port–Channel: TCC8900 provides 6 number of channels, UART 0~5•refer datasheet of TCC8900–Port: Port 0~5–In TCC8900 BSP, basically channel number and port number same•Channel and port of UART driver on TCC8900 Evaluation Board–Bluetooth: Port1 –GPS: Port5•GDMA–UART channel 0~3 only can use GDMA, other channel can not use GDMA1-1 (TX)1-0 (RX) 11COM23-1 (Reserved)3-0 (TX) 53COM1GDMAPort Channel•BOOL CPddUart::Init(DWORD nComNumber)(pddserial.cpp)//DMA TX UsagebUsingDMA=TRUE;// Set GDMA Number to be usedPTV_DMA(3,&pVirtualDmaAddr); // using DMA ch3// Set GDMAx Channel to be usedm_DmaNumber= 0;// Configure Buffer for GDMA ChannelTXBUFFADDR=(DWORD*)ptVtSysparam->DMA3.CH0_BUFFER; TXBUFFADDR_PHY=(DWORD*)ptPhySysparam->DMA3.CH0_BUFFER;// register DMA ISRSetupDmaISR(m_ComNumber, true);// Initialize interruptKernelIoControl(IOCTL_HAL_REQUEST_SYSINTR…..);m_DMATxEvent= CreateEvent(0,FALSE,FALSE,NULL); InterruptInitialize(m_dwSysIntrDMATx,m_DMATxEvent,0,0);//DMA RX UsageRXIntrusing=TRUE;//Set GDMA Number to be usedPTV_DMA(1,&pVirtualDmaAddr); // using DMA ch1// Set GDMAx Channel to be usedm_RXDmaNumber= 1;// Configure Buffer for GDMA ChannelRXBUFFADDR=(DWORD*)ptVtSysparam->DMA1.CH1_BUFFER; RXBUFFADDR_PHY=(DWORD*)ptPhySysparam->DMA1.CH1_BUFFER;// register DMA ISRSetupDmaISR(m_ComNumber, false);// Initialize interruptKernelIoControl(IOCTL_HAL_REQUEST_SYSINTR…..);m_DMATxEvent= CreateEvent(0,FALSE,FALSE,NULL); InterruptInitialize(m_dwSysIntrDMARx,m_DMARxEvent,0,0);TX Configuration of UART RX Configuration of UART•Change Port and change (COM1 COM2)Original Setting; Physical COM1;(GPS ch: 3, GPIO port: 5)[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial1] "COM_ChNum"=dword:3"COM_PortNum"=dword:5; Physical COM2; (BT ch: 1, GPIO port: 1)[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2] "COM_ChNum"=dword:1"COM_PortNum"=dword:1Modified Setting; Physical COM1;(GPS ch: 3, GPIO port: 5)[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial1] "COM_ChNum"=dword:1"COM_PortNum"=dword:1; Physical COM2; (BT ch: 1, GPIO port: 1)[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2] "COM_ChNum"=dword:3"COM_PortNum"=dword:5DRAM Control•ODT(On-Die-Termination) Enable/Disable–ODT is enabled normally.–Location of source:•Src\LIB\SOC\DDR\TCC89x\init_MEM.c–Function to refer•InitRoutine_Start(void) / init_bootdr(void), tag: //ZQCTRLHow to configure VFP (Vector Floating Point) on BSP•To use VFP on BSP, just check VFP option on catalog.-VFP option on OS design Wizard-VFP option on Catalog Items ViewHive-based Registry Setup •To use the hive-based registry–Add the “Hive-based Registry”catalog item.–Verify the following registry settingsin the “platform.reg”file; @CESYSGEN IF FILESYS_FSREGHIVE; HIVE BOOT SECTION[HKEY_LOCAL_MACHINE\init\BootVars]"SYSTEMHIVE"="Documents and Settings\\system.hv""PROFILEDIR"="Documents and Settings""Flags"=dword:3 ;"RegistryFlags"=dword:1 ;; END HIVE BOOT SECTION; @CESYSGEN ENDIF FILESYS_FSREGHIVE –Set the profile for the file sytem driver registry, “Nand.reg”; HIVE BOOT SECTION[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\nand]"Dll"="nand.dll""Prefix"="DSK""Index"=dword:1"Profile"="Nand""IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}""Order"=dword:1"Flags"=dword:1000…[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\Nand] "MountFlags"=dword:0"MountAsBootable"=dword:1"MountAsRoot"=dword:1[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]"MountFlags"=dword:0; END HIVE BOOT SECTIONThank You。
ARM嵌入式WINCE实践教程_图文.

ARM 嵌入式WINDOWS CE实践教程ARM 嵌入式WINDOWS CE实践教程 CVT-PXA270华中科技大学国家电工电子教学基地武汉创维特信息技术有限公司ARM 嵌入式WINDOWS CE实践教程前言《ARM 嵌入式WINDOWS CE实践教程》是ARM 嵌入式技术系列教程之一。
该教程教材采用华中科技大学和武汉创维特信息技术有限公司联合研制的CVT-PXA270系列嵌入式教学实验系统作为教学实践平台。
Windows CE 嵌入式操作系统是目前嵌入式主流操作系统之一,它以超强的性能、友好的Windows 人机界面以及标准化、可视化的软件开发过程被越来越多地使用在手机、PDA 等产品中,本书结合XSCALE 嵌入式处理器的特点,介绍了在其上进行Windows CE开发的过程和方法。
本书详细地讲解了Windows CE BSP开发平台Platform Build 5.0的建立过程、Windows CE BSP板级支持包的开发、驱动程序的设计以及基于Embedded Visual C++嵌入式Windows CE应用程序的设计和开发等,内容覆盖Windows CE开发的全过程,它不仅可以作为嵌入式Windows CE开发的初学者作为实践教程,而且对于Windows CE 开发人员也有一定的参考价值。
ARM 嵌入式WINDOWS CE实践教程目录第1章安装Windows CE BSP........................................11.1 安装WINDOWS CE5.0..............................................................................................11.2 安装WINDOWS CE 5.0 BSP......................................................................................2第2章 Windows CE 内核定制实验.................................. 42.1 创建和编译新项目...................................................................................................... 42.2 运行image 文件........................................................................................................ 172.2.1 设置并建立tftp 服务器.................................................................................. 182.2.2 通过uboot 下载nk.nb0................................................................................... 18第3章 WINCE和桌面系统通讯实验........................... 243.1 硬件连接.................................................................................................................. 243.2 WINCE端设置.......................................................................................................... 243.3 activeSync安装.......................................................................................................... 243.4 USB驱动程序安装.................................................................................................... 253.5 通讯.......................................................................................................................... 27第4章 Windows CE 应用程序实验.............................. 284.1 下载并安装Microsoft eMbedded Visual C++4.0....................................................284.2 建立HelloWorld 工程................................................................................................ 314.3 下载并运行HelloWorld............................................................................................ 354.4 调试HelloWorld....................................................................................................... 38第5章 Windows CE 多媒体播放实验.......................... 465.1 安装媒体播放器...................................................................................................... 465.2 建立WINCE 和桌面系统之间的通讯连接............................................................. 485.3 拷贝视频文件到WINCE My Documents................................................................495.4 播放视频文件.......................................................................................................... 49ARM 嵌入式WINDOWS CE实践教程第6章 Windows CE 驱动程序实验.............................. 516.1 WINCE驱动程序模型.............................................................................................. 516.2 本机设备驱动程序的系统结构.............................................................................. 526.3 流接口驱动程序的系统结构.................................................................................. 526.3.1 设备管理器................................................................................................... 526.3.2 设备文件名................................................................................................... 546.3.3 流接口驱动程序入口函数........................................................................... 546.4 流接口驱动程序开发.............................................................................................. 576.5 流接口驱动程序调用实例...................................................................................... 676.6 运行.......................................................................................................................... 68第7章 Windows CE 接口实验..................................... 697.1 CVT-PXA270 跑马灯实验...................................................................................... 697.2 CVT-PXA270 数码管实验...................................................................................... 847.3 CVT-PXA270 进程编写实验.................................................................................. 907.4 CVT-PXA270 多线程实验...................................................................................... 927.5 CVT-PXA270 步进电机实验.................................................................................. 947.6 CVT-PXA270 LCD 控制实验.............................................................................1027.7 CVT-PXA270 录放音实验.................................................................................1047.8 CVT-PXA270 简单多媒体实验......................................................................... 1057.9 CVT-PXA270 读写文件实验............................................................................. 106第8章 Windows CE 以太网驱动程序实验................ 1108.1 CVT-PXA270网卡................................................................................................ 1108.2 LAN91C111网卡驱动程序中断处理................................................................... 1108.3 LAN91C111网卡驱动程序硬件地址................................................................... 1118.4 网络连接的添加................................................................................................... 1118.6 网络驱动程序编译和测试................................................................................... 114第9章 GPS模块导航实验........................................ 1159.1 系统简介............................................................................................................... 1159.2 系统设置............................................................................................................... 1159.3 硬件设置............................................................................................................... 1169.4 实验步骤............................................................................................................... 118ARM 嵌入式WINDOWS CE实践教程第1章安装Windows CE BSP1.1 安装WINDOWS CE 5.0本节讲述如何安装Windows CE 5.0以及Platform Builder。
Hive的三种安装方式(内嵌模式,本地模式远程模式)

Hive的三种安装⽅式(内嵌模式,本地模式远程模式)⼀、安装模式介绍:Hive官⽹上介绍了Hive的3种安装⽅式,分别对应不同的应⽤场景。
1、内嵌模式(元数据保村在内嵌的derby种,允许⼀个会话链接,尝试多个会话链接时会报错)2、本地模式(本地安装mysql 替代derby存储元数据)3、远程模式(远程安装mysql 替代derby存储元数据)⼆、安装环境以及前提说明:⾸先,Hive是依赖于hadoop系统的,因此在运⾏Hive之前需要保证已经搭建好hadoop集群环境。
本⽂中使⽤的hadoop版本为2.5.1,Hive版本为1.2.1版。
OS:Linux Centos 6.5 64位jdk:java version "1.7.0_79"假设已经下载了Hive的安装包,且安装到了/home/install/hive-1.2.1在~/.bash_profile中设定HIVE_HOME环境变量:export HIVE_HOME=/home/install/hive-1.2.1三、内嵌模式安装:这种安装模式的元数据是内嵌在Derby数据库中的,只能允许⼀个会话连接,数据会存放到HDFS上。
1、切换到HIVE_HOME/conf⽬录下,执⾏下⾯的命令:cp hive-env.sh.template hive-env.shvim hive-env.sh在hive-env.sh中添加以下内容:HADOOP_HOME=/home/install/hadoop-2.5.12、启动hive,由于已经将HIVE_HOME加⼊到了环境变量中,所以这⾥直接在命令⾏敲hive即可:然后我们看到在hadoop的HDFS上已经创建了对应的⽬录。
注意,只要上⾯2步即可完成内嵌模式的安装和启动,不要画蛇添⾜。
⽐如下⾯================================【下⾯这段就不要看了】==============================================(作废)2、提供⼀个hive的基础配置⽂件,执⾏如下代码,就是将conf⽬录下⾃带的⽂件修改为配置⽂件:cp hive-default.xml.template hive-site.xml(作废)3、启动hive,由于已经将HIVE_HOME加⼊到了环境变量中,所以这⾥直接在命令⾏敲hive即可:(作废)结果报错了,看错误⽇志中提到system:java.io.tmpdir,这个配置项在hive-site.xml中有提到。
Windows CE内存管理(CE5.0&CE6.0)

物理地址
虚拟内存模型(2)-CE5.0
FFFF FFFF
Kernel Space
Kernel Addresses: KPAGE, Trap Area, Others Unused
Total 4 GB Virtual Space 2 GB Kernel Space
User Space
Slots 63 – resources dll
Logical Memory (Heap, stack) Virtual Memory Physical Memory * Storage Device
Windows CE采用层次化的结构
内存结构(2)
物理内存
在内部或外部总线上可访问的实际的 RAM/ROM RAM分为对象存储区域(object store)和应 用程序内存区域(program memory)。 ROM中存放的内容可以是压缩的,也可以是 不压缩的(可本地执行--XIP,executed in place)。 Windows CE只能管理512MB的物理内存
WinCE 6的虚拟内存模型(5)
内核空间
低1G:静态虚拟地址 0xC0000000–0xC7FF FFFF: 内核加载的(XIP) DLL 0xC8000000–0xCFFFFFFF:文 件系统的对象存储区 0xD0000000–0xDFFFFFFF:内 核模式的程序执行区。如 GWES.DLL,系统DLL,内核驱 动等。 0xE0000000–0xEFFFFFFF:同 上。除了SH4架构的CPU。 0xF0000000–0xFFFFFFFF:捕 获系统调用,包含核心数据页。
FFFF FFFF
TA-WinCE用户手册v1.2

锐创科技TA-ARM2410WINCE使用手册诚信、专业、服务目录表介绍WINCE安装与内核定制1.1安装与定制内核--------------------------------P31.2内核定制软件安装-----------------------------P31.3内核定步骤--------------------------------------P3—21 1.4内核的下载和固化-----------------------------P22—35 1.5ActiveSyn与PC同步 ----------------------P35--511.1 下面介绍如何安装与定制内核1.2WinCE 内核定制软件安装本开发板采用PlatfromBuild 4.2 来定制WinCE 内核,PlatfromBuild4.2安装要求不小于4G 空间,不少于256M 内存。
安装时选择Custom,并选择ARMV4和ARMV4i 结构体系,如果为了支持XScale 的CPU,一并安装XScale 体系CPU支持。
安装时间视计算机配置而定,大约需要30 分钟左右。
值得注意的地方,PlatformBuild4.2(以下简称PB)建立一个新的编译工程大约需要600M 的空间。
安装结束后,我们会发现安装盘下将出现WINCE42 这个目录,其下的PLATFROM 目录是BSP 放置的目录。
PUBLIC 目录是我们建立的工程文件所在的目录。
PB 环境的目录结构含义请参考PB 所带的帮助文件或者其它WINCE 相关书籍。
1.3 WINCE 内核定制步骤一、 BSP 放置解压光盘/Soft/WinCE/SMDK2410.rar,备份原WINCE420/PLATFORM 下的SMDK2410。
COPY 解压后的SMDK2410 到WINCE42/PLATFORM 下。
并设置SMDK2410 目录属性为可读写。
二、 内核定制1、导入BSP启动PB4.2,点击File/Manage Catalog Feature删除原有的SMDK2410.CEC,Import 新的SMK2410.CEC 文件导入BSP后,在PB的最右边的栏目中将出现BSP的列表,如下图:2.使用该BSP 在 PB4.2中创建一个新的Platform并且编译连接生成新的 Image 文件1选择File/NewPlatform, 如下图:选择ARM开发板的体系结构ARMV4,点击 Next:选择你要定制的应用类型,选择Mobile HandHeld,关在Platform Name对话框中填入你的工程名TAARM2410 (工程名可以自己定),点击 Next 选择你要定制所包含的应用程序:输入完成后, 点击 Next说明:NET Compact Framwork是.NET开发环境支持, 应选择ActiveSync是计算机同步的应用程序下载工具, 应选择Standard SDK for Windows 是导入SDK支持, 应选择 其它Quarter VGA Resources 是QVGALCD支持, 应选择其余几个是应用软件, 按实际需求来选择选择完后点击 Next ,出现通信协议的选择, 按默认选择:以上都用默认, 点击 Finish, 至此一个工程建立完毕3.协议和服务的添加1)CS8900上网的实现在PB的右边栏目找到BSPs/Samsung SMDK2410:ARMV/Device Driver/Networking/Local Area Networking[LAN]device/CS8900点击右键,add to platform,这样CS8900这个设备就添加到我们所建立的工程中了,在PB左面栏目中是刚才建立的工程,在其中可以发现我们刚才添加的设备。
WinCE使用手册

1WinCE 用户手册公司: EMA 發行版本: v1.0 发布时间: 06/01/2010目录1WinCE系统快速操作 (3)1.1系统启动方法 (3)1.1.1SD 卡启动 (3)2WinCE系统开发 (6)2.1开发环境搭建 (6)2.1.1交叉编译环境的搭建 (6)2.2系统编译 (7)2.2.1编译文件准备 (7)2.2.2使用7 寸屏 (7)2.2.3使用VGA或DVI 模块 (7)2.2.4系统编译 (8)2.2.5系统定制 (8)3WinCE应用程序开发 (9)3.1导出sdk (9)3.2接口应用程序开发实例 (10)3.2.1创建解决方案 (10)3.2.2编译运行 (10)4附录WinCE相关资源链接 (11)23第一章1 WinCE 系统快速操作1.1 系统启动方法1.1.1 SD 卡启动1) 编辑SD 卡扇区1be ,为80h 格式化SD 为Fat32分区2) 准备好启动系统的镜像文件(MLO ,EBOOTSD.nb0, NK.bin ),并将三个镜像文件放到SD 卡的FA T32分区里3) 连接硬件,请参考SBC3530用户手册3.2.1 外部接口连接。
4) 跳动拔码开关为,1(off)、2(off)、3(off)、4(on)、5(on)、6(on),插入SD 卡。
5) 在宿主机(PC 机)上启动超级终端程序,其配置可查看SBC3530用户手册5.3串口终端软件的使用。
6) 连接并接通SBC3530电源,请参考SBC3530用户手册3.2.2 系统上电步骤。
上电开机,在终瑞输入230。
SD 卡就可以从SD 卡启动。
步骤如下:将SD 卡插到开发板上,连接串口线,电源线。
系统启动后,在PC 机串口终端就可以4jumping to ebootsd imageMicrosoft Windows CE Bootloader Common Library V ersion 1.4 Built Apr 13 2010 11:04:27 Texas Instruments Windows CE EBOOT for Mistral OMAP EVM, Built Apr 15 2010 at 18:07:55 EBOOT V ersion 1.1, BSP 6.12.03TI OMAP3530 V ersion 0x4b7ae02f (ES3.1) TPS659XX V ersion 0x10 (ES2.x) System ready!Preparing for download...INFO: Predownload....WARN: Boot config wasn't found, using defaults INFO: SW4 boot setting: 0x0f>>> Forcing cold boot (non-persistent registry and other data will be wiped) <<< Hit space to enter configuration menu 5... Hit space to enter configuration menu 4... Hit space to enter configuration menu 3... Hit space to enter configuration menu 2... Hit space to enter configuration menu 1... MAC address not found!! Aborting ERROR: Boot device driver Init call failed选择 [2] Select Boot Device-------------------------------------------------------------------------------- Main Menu-------------------------------------------------------------------------------- [1] Show Current Settings [2] Select Boot Device[3] Select KITL (Debug) Device [4] Network Settings [5] SDCard Settings [6] Set Device ID[7] Save Settings[8] Flash Management [0] Exit and ContinueSelection: 2选择 [3] NK from SDCard FILE选择[0] Exit and ContinueBoot device set to NK from SDCard FILE--------------------------------------------------------------------------------Main Menu--------------------------------------------------------------------------------[1] Show Current Settings[2] Select Boot Device[3] Select KITL (Debug) Device[4] Network Settings[5] SDCard Settings[6] Set Device ID[7] Save Settings[8] Flash Management[0] Exit and ContinueSelection: 0进入到这里等待触摸屏出现”+”,就可以进行校对,校对完后再点击一下触摸屏就可以进入到WinCE界面。
WINDOWS HIVE文件的基本知识

WINDOWS HIVE文件的基本知识物理上的HIVE文件1 注册表是由许多个HIVE文件组成的2 一个HIVE文件由许多个BIN组成,一般一个HIVE文件的开头会有一个文件头,用与描述这个HIVE文件的一些全局信息3 一个BIN由许多个CELL组成而CELL有好几种类型比如 key cell(cm_key_node) value cell(CM_KEY_VALUE) subbkey-list cell,value-list cell等一个HIVE文件的结构---------by sysnap-------------|_HBASE_BLOCK |_BIN0 |_BIN1 |_BIN2 |: |: |_BINx |-------------|一般自己映射HIVE文件,得到映射的基地址,这个基地址加上1页的大小就来到第一个BIN了,BIN也是一个数据结构,里面也包含了一些描述这个BIN的信息,我们称之为BIN 头,一个BIN头的大小一般是0X20,所以一个BIN后的0X20开始就是我们的第一个CELL了怎样把一个键及其下面的子键保存为HIVE文件,微软提供了API RegSaveKey 建议学习的时候用这个API来生成一个简单的HIVE文件,然后用WINHEX之类的工具查看该HIVE文件的内部,知道个大概注册表相关的函数用户态的regxxx内核的NT和CM系列(关于CM系列的,一般都是没有导出的,如果想使用可以靠导出的获取没导出的方法)实验:0 用winHex打开一个HIVE文件,看看其里面的内容1了解与注册表有关的几个结构用命令 dt nt!*cm*这样就会列出一大堆数据结构出来,关于每个数据结构是怎样的,自己再dt看比较重要的有(HBASE_BLOCK)NT!_CMHIVENT!_CMHIVENT!_CM_KEY_HASHNT!_CM_KEY_BODYNT!_CM_KEY_NODENT!_CM_KEY_VALUENT!_CM_KEY_SECURITYNT!_CM_KEY_CONTROL_BLOCK2一个简单的实验lkd> !reg dumppool略,这里会列出许多的HIVEdumping hive at e1022b60 (NONAME)Stable Length = 10001/1 pages presentVolatile Length = 1000can't read HMAP_ENTRY at e1b160000/1 pages presentTotal pages present = 4311 / 14680用!reg baseblock查看这个HIVE的基块lkd> !reg baseblock e1022b60FileName : NONAMESignature: HBASE_BLOCK_SIGNATURESequence1: 1Sequence2: 1TimeStamp: 0 0Major : 1Minor : 3Type : HFILE_TYPE_PRIMARYFormat : HBASE_FORMAT_MEMORYRootCell : 20Length : 0Cluster : 1CheckSum : 0用!reg openkeys列出HIVE文件所有打开的键lkd> !reg openkeys e1022b60Index 48: 1cbf04a8 kcb=e1035a70 cell=00000188 f=00200004 \REGISTRY\USER Index 1b8: dc72ea09 kcb=e3fefb48 cell=80000020 f=00300008\REGISTRY\USER\S-1-5-18Index 595: d936a631 kcb=e1035008 cell=00000020 f=002c0000 \REGISTRY Index 698: bd68092e kcb=e1035248 cell=00000120 f=00200004\REGISTRY\MACHINE用!reg cellindex查看一下打开键的CELL单元.它是一个_cm_key_node结构kd> !reg cellindex e1022b60 0x120Map = e1022bc0 Type = 0 Table = 0 Block = 0 Offset = 120MapTable = e1033000BlockAddress = e1032000pcell: e1032124得到CELL的地址pcell: e1032124后,接着lkd> dt _cm_key_node e1032124nt!_CM_KEY_NODEnt!_CM_KEY_NODE+0x000 Signature : 0x6b6e+0x002 Flags : 0x20+0x004 LastWriteTime : _LARGE_INTEGER 0x1c8a59a`913acf5a+0x00c Spare : 0+0x010 Parent : 0x20+0x014 SubKeyCounts : [2] 5+0x01c SubKeyLists : [2] 0x448+0x024 ValueList : _CHILD_LIST+0x01c ChildHiveReference : _CM_KEY_REFERENCE+0x02c Security : 0x78+0x030 Class : 0xffffffff+0x034 MaxNameLen : 0x10+0x038 MaxClassLen : 0+0x03c MaxValueNameLen : 0+0x040 MaxValueDataLen : 0+0x044 WorkVar : 0+0x048 NameLength : 7+0x04a ClassLength : 0+0x04c Name : [1] 0x414d我们来解读这里的信息:1 +0x000 Signature : 0x6b6e 0x6b6e表示NK,_cm_key_node结构的标识符2 +0x014 SubKeyCounts : [2] 5 表示该键有5个子键3 +0x01c SubKeyLists : [2] 0x448 表示子键列表单元的单元索引为0x4484 +0x024 ValueList : _CHILD_LIST 表示本键键值单元的索引注册表的组织这里我们首先了解一个概念,单元索引单元索引:是一个CELL在HIVE文件上的偏移量看一下_CM_KEY_NODE这个结构,我们以HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\6to4这个键为例,你可以把它及其子键保存为HIVE文件,然后观察lkd> dt _CM_KEY_NODEnt!_CM_KEY_NODE+0x000 Signature : Uint2B+0x002 Flags : Uint2B+0x004 LastWriteTime : _LARGE_INTEGER+0x00c Spare : Uint4B+0x010 Parent : Uint4B+0x014 SubKeyCounts : [2] Uint4B+0x01c SubKeyLists : [2] Uint4B+0x024 ValueList : _CHILD_LIST+0x01c ChildHiveReference : _CM_KEY_REFERENCE+0x02c Security : Uint4B+0x030 Class : Uint4B+0x034 MaxNameLen : Uint4B+0x038 MaxClassLen : Uint4B+0x03c MaxValueNameLen : Uint4B+0x040 MaxValueDataLen : Uint4B+0x044 WorkVar : Uint4B+0x048 NameLength : Uint2B+0x04a ClassLength : Uint2B+0x04c Name : [1] Uint2BA键值HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\6to4这个键就是一个_CM_KEY_NODE结构,ValueList的值就是一个单元索引了,由这个"单元索引"我们可以找到6to4这个键的"键值列表单元",有了"键值列表单元",我们就可以找到"键值单元",有了键值单元,我们就可以找到数据了一般就是下面这条线----------------------------------------------------------------------------键单元----键值列表单元单元索引---键值列表单元--键值单元--数据单元----------------------------------------------------------------------------B子键HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\6to4下面还有三个子键,怎么找,请看_CM_KEY_NODE里面的俩个成员+0x014 SubKeyCounts : [2] Uint4B+0x01c SubKeyLists : [2] Uint4BSubKeyCounts表示这个键单元有多少个子键,SubKeyLists是子键列表单元的单元索引所以一般SubKeyCounts是用于控制遍历子键的一个变量,这里我们应该知道怎么找到一个键单元的子键了----------------------------------------SubKeyLists----子键列表单元-----子键单元----------------------------------------一个键可能有多个子键,由SubKeyCounts标识关于键对象觉得没什么好讲的了,因为一般的对象管理一样,,,,不过有兴趣弄OBJECT HOOK的可以看下,网上很多资料基础理论知识到这里为止....待续欢迎交流:QQ群 54013100。
基于Win CE系统的内存数据库SQL解析器的分析与设计

【 关键 词 】 WiC 内存 数 据 库 ;Q Y C : n E; S L; A C
0引言 .
要 的 参 数 通 过 调 用 相应 的 A I 数 . 词 法 分 析 程 序 记 录 的结 P函 从 果 获 得 函数 的 参 数 . 完 成 了 S L查 询 语 句 的 执 行 。 就 Q 2基 于 Wi C . n E的 内存 数 据 库 系统
和 实 现 过程
WiC 是 微 软 自行 开 发 的 嵌 入 式 新 型 操 作 系统 . 界 面 源 nE 其 于 Wid 、 59 . 它 是 微 软 专 门 为 信 息 设 备 、 动 应 用 、 费 n o _ 9 ,8 但 、 s 移 淌 类 电 子 产 品 、 入 式 应 用 等非 P 嵌 C领 域 而 全 新设 计 的 战 略 性 操 作 系统 产 品 它 可 以工 作 在 l 2种 不 同 的 处 理 器 体 系 结 构 、8 l 0余 种 C U 之 上 一 同时 . n O SC 是 一 个 实 时操 作 系 统 , 以满 P Wid W E 可 足应 用 程 序 所 需 要 的 实 时 性 要 求 一 WidJs E具 有 模 块 化 、 f ( fC 1 、 l 结 构化 和 基 于 Wi3 n 2应 用 程 序 接 口和 与处 理器 尤 关 等 特 点 使 得 Wic sC n mv E直 接 支 持 多 种 类 硬 件 外 田 设 备 . 展 了 新 的市 场 和 l 扩 设 备 门类 . 此 对 于 嵌 入 式 系 统 开 发 者 而 言 , 增 加 新 的外 围设 因 在 备 类 型方 面就 有 了 巨大 的 可 挖掘 潜 力 . 实现 起 来 也 更 加 容 易 22 内存 数 据 库 系统 简介 . 对 于 一 个 内存 数 据 库 系 统 . 该 包 括 最 基 本 的 4个 部 分 : 应 内 存 管 理 和 数 据 组 织 存 储 . 询 处 理 和 优 化 。 发 控 制 , 据 备 份 查 并 数 和 恢 复 前 人 设 计 的 基 于 Wi E 内存 数 据 库 系 统 的工 作 原 理 nC
Windows Embedded CE 6.0实时性研究和分析

舭
是 快 速 开 发嵌 入 式 产 品 , 是 新 产 品迅 速 占领 市 场 、 抢 夺 市 场 先 机 的 关 键 。 与 Ln x iu 、V Wo k 等 嵌 入 式 系 统 开 发 相 x rs 比 , W id wsCE 统 具 有 开 发 周 期 短 、开 发 人 员 上手 快 no 系 的特点。
E e d dCE60 要 有 以 下特 点 : mb d e .主
( )快 速 开 发 能 力 :W id wsCE的快 速 开 发 能 力 1 no
70
f
Wi o s m ed d E6 实时性研究和分析 1 n w bde . d E C 0
f
正 是 由 ̄ W id wsCE 60 备 多 任 务 、 实 时 性 、 模 n o .具 块 化 及 可 伸 缩 性 、 强 大 的 通 信 能 力 等 特 点 , 所 以 它被 广 泛 地应 用于 工业 控 制 、汽 车 电 子 、移 动 通 信 、信 息 家 电 ,航 空航 天 、军 事 、个 人 电 子 消 费 品 等 各 个 领 域 。 但 在 很 多嵌 入 式 系 统 的 应 用 场 合 , 尤 其 在 工 业 控 制 领 域 , 越 来 越 多 的 智能 型 检 测设 备 , 终 端 设 备 以及 汽 车 工
.
0 支持 四个 系列处理器 的体 系结构 ( , ARM 、Ml S、 P
户 端 支 持 、多 语 言 支持 、 自 定 义 用 户 界 面 以及 设 备 驱 动 支
S 和 x 6) 。在 众 多 的 嵌 入 式 操 作 系 统 中 , 它 以 自 己独 H4 8
持等提供 了完整的解决方案。
上。 。 口 。 ^ 力 西 不 坦 生 八
基于ARM和Windows CE的出租车监控调度系统设计

总
第
图 1系 统 结 构 图
收 稿 日期 : 0 8 0 — 1 修 稿 日期 : 0 8 0 ~ 1 20 — 4 0 2 0 — 6 1
二
九
三
作 者 简 介 : 莉 莉 (9 9 , , 徽 芜 湖 人 , 士 研 究 生 , 程 师 , 师 , 究 方 向 为 计 算 机 应 用 及 嵌 入 式 系统 开 发 颜 16 -) 女 安 硕 工 讲 研
期
MDR C PTRo. o OEN O UE28 M 01 o
12 系统 需 求分 析 .
基 于 AR 的 出租 车监 控 调 度 系 统 车 载 终 端 主 要 M
小 、 量轻 、 重 功耗 低 , 首次定 位和重 新捕 获时间短 , 有
极 强 的 抗 树 荫 和 高 建 筑 遮 挡 能 力 它 具 有 定 位 速 度
监控 中心 的通信服 务器上 通信 服务器 接收到 数据
后 . 数 据 进 行 处 理 . 把 处 理 好 的 数 据 发 送 给 监 控 对 并 终 端 监 控 终 端 通 过调 用 地 图引 擎 和 电 子 地 图软 件 . 将 接 收 以 的 车 辆 G S定 位 信 息 与 电 子 地 图 匹 配 . P 实
现对车辆位置 、 状态等信息 的实时跟踪监控 同时监 控中心可 以通 过 G M 网络 向车载终端发送调度 信息 S
或 路 况 信 息 .对 车 辆 实 现 调 度 及 时避 开 拥 堵 路 段 . 提 高 车 辆 使 用 效 率 系统 结 构 如 图 1所 示
卫 星
留
现
代 计 算 机
提 供 G S导 航 、 外 报 警 、 频 播 放 、 频 播 放 、 收 P 意 音 视 接 调 度 信 息 等 功 能 车 载 终 端 可 以 通 过 G S接 收 装 置 P 接 收 导 航 信 息 并 利 用 电 子 地 图 软 件 向 驾 驶 员 提 供 本 地 导 航 功 能 : 出 租 车 遇 险 时 . 通 过 触 发 车 载 终 端 当 可 的报 报 警 开 关 .通 过 G M 将 报 警 信 号 和 位 置 信 息 发 S 送 到 调 度 中 心 监 控 终 端 . 时 启 动 车 内 隐 藏 麦 克 进 行 同 录 音 监 控 中心 根 据 车 辆 报 警 信 息 可 迅 速 向 lO指 挥 1 中心 报 警 . 效 地 保 障 了 驾 驶 员 的 人 身 安 全 : 载 终 有 车 端还提供 音频 、 频播 放等娱乐功能 。 视 车 辆 监 控 中 心 系 统 主 要 提 监 控 调 度 、 电话 叫 车 、 信 息 广 播 、 据 记 录分 析 等 功 能 。 统 通 过 G M 网 络 数 系 S 建 立 起 了 出 租 车 与 监 控 中 心 之 间 迅 速 、 确 、 效 的 准 有 信 息 传 递 通 道 .监 控 中 心 可 以 随 时 掌 握 车 辆 状 态 . 同 时 可 以根 据 需 要 迅 速 下 达 调 度 命 令 . 车 辆 进 行 远 程 对
WINCE构建系统

WINCE的构建系统WINCE构建系统(build system)负责根据用户选择特性,为目标设备构建WINCE运行时映像。
WINCE的构建过程分为4个步骤,依次为Sysgen,Build,Release Copy和Make Image。
1.sysgen过程Sysgen(system generation)过程是根据用户选择的组件生成特定的头文件及可执行文件供最终的WINCE运行时映像打包时使用。
Sysgen的输入包括一系列从public和private目录下编译后的lib文件(通常在安装PB时安装在电脑上)、未经筛选的头文件与主控文件(CeSysgen.bat),而sysgen的输出包括经过筛选的头文件与用户选择组件包含的可执行文件.exe和动态链接库.dll。
其中sysgen过程产生的头文件会被打包到导出的SDK中,而产生的可执行文件和动态链接库文件会被打包到WINCE运行时映像中。
在整个sysgen的过程中,所有操作都是安装用户事先设置的环境变量进行的,因此,只有用户选择的组件最终被处理和输出,才能达到操作系统定制的目的。
2.build过程当整个系统都已经生成完毕后,接着就可以编译项目内部的源代码了。
BSP 的源代码和PB中新建的应用程序都在这一步被编译。
其中BSP的源代码如果以前曾经编译过并且没有改动,构建系统会跳过BSP的编译;PB中建立的应用程序由于依赖于操作系统平台所选择的组件,因此只有在sysgen过程结束后才能进行编译。
源代码的编译是通过build.exe使用SOURCES文件和DIRS文件编译源代码的,build.exe通过DIRS文件来查找要递归编译哪些子目录,DIRS目录是当前目录的子目录列表,告诉build.exe当前目录下有哪些子目录需要进行递归编译,比如下图的SRC就是当前目录,其子目录有bootloader、common、drivers、inc和kernel。
当前目录SRC下的dirs文件如下图所示其中“DIRS=”语句包含当前目录下希望用build.exe进行递归编译的子目录列表,“\”是续行符,表示在处理的时候忽略后面的回车换行。
在Windows eclipse上单步调试Hive教程

Windows eclipse上单步调试Hive教程Hadoop技术论坛一见/hadoopor@1.前言本教程假设你已经掌握了Hadoop在Cygwin上的安装,以及Hive在Windows Eclipse 上的编译技能,否则得先掌握安装和编译方法,才继续往下浏览。
2.参考资料《在Windows上安装Hadoop教程》《Hadoop源代码eclipse编译教程》3.安装Hadoop和编译HiveE:\hadoop\src\hive e 假设已经将Hadoop安装在E:\hadoop\run目录,Hive源代码存放在E:\hadoop\src\hiv 目录下,并且Hive已经编译通过。
Hadoop安装请参考《在Windows上安装Hadoop教程》一文,Hive的编译请参考《Hadoop源代码eclipse编译教程》一文。
编译Hive成功后,还不能立即调试Hive,需要先将编译后生成的jar安装好。
4.安装HiveHive可以和Hadoop分别安装在不同目录,这里我们将Hive安装到E:\hadoop\run\hive 目录下,所以我们需要在E:\hadoop\run下创建好hive子目录,原来将E:\hadoop\src\hive目录下的bin、conf和lib三个子目录复制到E:\hadoop\run\hive目录下(如果包含有SVN目录,这些目录可不复制),结果如下图所示:完成上述操作后,还需要将E:\hadoop\src\hive\build目录相关的jar文件都复制到E:\hadoop\run\hive\lib目录下,需要复制的jar文件(README和LICENSE文件不用复制)如下图所示:Hive的配置文件E:\hadoop\run\hive\conf\hive-default.xml不需要修改。
打开eclipse,选中hive项目(要求保证Hive已经编译通过,若不清楚如何编译,请参考《Hadoop源代码eclipse 编译教程》一文),如下图所示:Deb b ug Configurations”,进入配置界面,如下图所示:接下来,需要配置Debug,点击“De在“Debug Configurations”界面,选中“Java Application”,如下图所示:点击上图所示的“New launch configuration”按钮,界面变成如下图所示:iver”,点击上图中的“S earch”按钮,在弹出的“Select Main Type”对话框中,选中“CliDrCliDriver CliDriver是Hive的入口类,实现了main函数,如下图所示:然后点击上图所示的“OK”按钮,返回到“Debug Configurations”界面,将“New_configuration”改成“CliDriver”,然后点击“Apply”按钮,如下图所示:切换到Classpath界面,如下图所示:点击“Add External JARs”按钮,将“E:\hadoop\run\hadoop-0.20.0-core.jar”、“E:\hadoop\run\lib”和“E:\hadoop\run\hive\lib”两个目录下所有的jar都添加进来,如下图所示:接下来,还需要将Hive的conf目录添加进来,点击“Advanced”按钮,弹出如下图所示对话框:在上图所示对话框中,选择“Add External Folder”,将“E:\hadoop\run\hive\conf”添加进来,然后点击“Apply”按钮,结果如下图所示:当点击上图所示的“Debug”按钮后,将进入如下图所示的界面:由于存在Bug,在Cygwin环境中,将无法输入SQL语句,因此在调试之前,还必须解决或绕开这个Bug,下面开始解决这个问题。
基于Win CE嵌入式平台的数据库应用软件开发

接 并使 用 A cs数 据 库 等技 术 的 介 绍 。通 过 实际案 例 的 开发 ,可 以使 读 者 轻 松 掌握 wi ces nCE嵌 入
2 1 U B 驱 动 程 序 的 安 装 . S
先 用 U B线将 P S C机 和 开 发 板 的 U B D V C 口 相 连 . S E IE 这 时 P 端 系 统 会 提 示 找 到 新 硬 件 ,按 以 下 步 骤 安 装 好 U B C S
驱动:
图 3
3 琏0. 与訇 。 8 涵10 雏i 217 i 翔= 巧 ; 玟
通 ( )安 装 好 U B 驱 动 后 可 以看 到 在 设 备 管 理 器 中 的 “ 3 S
用 串行 总线 控 制 器 ” 下 多 了 “ E O et o r S C S C T s B ad” 一 项 , 如
图 4所 示 。
本 例 中 需 要 对 第 7项 进 行 设 定 ,这 里 [ 7 】代 表 的 是 配 置 一
M coot n o s E 是 一 个 紧 凑 、高 效 、 可 扩 展 的 操 作 irsf Wid w C 系 统 .适 用 于 各 种 嵌 入 系 统 和 产 品 。 凭 借 Wid w E,开 发 n o sC 者 可 以充 分利 用 他 们 已拥 有 的 基 于 Wid w n o s的编 程 技 巧 ,所 以 该 系 统 一 直 以来 都 受 到 使 用 者 的好 评 和 追 捧 。 谈 到 WI C N E上 运 行 的 数 据 库 系 统 , 大 部 分 文 章介 绍 的都 是 Wi C 自带 的数 n E 据 库 系 统 ,它 的使 用 往 往 需 要 大 量 的 时 间 重 新 学 习 ,而 且 它 的
hive 中文编码函数处理 -回复

hive 中文编码函数处理-回复Hive 是一个基于Hadoop 的数据仓库基础设施,用于处理大规模数据集。
作为一种数据处理工具,Hive 为业务分析师和数据工程师提供了一种简单的方式来查询、汇总和分析大量的结构化数据。
在Hive 中,常常需要对中文数据进行编码处理。
本文将探讨在Hive 中处理中文编码的函数和方法。
一、Unicode 编码在介绍具体的中文编码函数之前,我们先来了解一下Unicode 编码。
Unicode 是一种国际标准,用于给字符分配唯一的数字码点。
在Unicode 中,每个字符都有一个独一无二的码点。
Hive 支持Unicode 编码,因此可以使用Unicode 码点来表示中文字符。
常见的Unicode 编码格式有UTF-8、UTF-16 和UTF-32。
UTF-8 是一种可变长度编码,用于在计算机存储和传输中表示Unicode 字符。
UTF-8 使用1 到4 个字节来表示不同的字符。
二、Hive 中的字符串函数在Hive 中,有一些内置的字符串函数可以用于处理中文编码。
以下是一些常用的字符串函数和它们的作用:1. length(string):返回字符长度,如果输入参数是NULL,则返回NULL。
2. substr(string, start, length):返回从指定位置开始的子字符串,可用于截取中文字符串。
start 表示起始位置,length 表示需要截取的字符长度。
3. concat(string, string, ...):将多个字符串拼接成一个字符串。
4. upper(string):将字符串转换为大写。
5. lower(string):将字符串转换为小写。
6. trim(string):删除字符串两端的空格。
7. regexp_replace(string, pattern, replacement):使用指定的replacement 替换匹配pattern 的字符串。
注册表与存储管理器-PowerPointPresent

存储管理器的装载过程
设备管理器负责装载块设备的驱动程序。 由该设备发出一个通知,告知存储管理
器该设备的设备名及其GUID。 存储管理器根据配置信息为该设备加载
分区驱动程序。 存储管理器枚举该设备上的所有分区。 存储管理器为每个分区加载文件系统驱
谢谢大家!
按章操作莫乱改,合理建议提出来。2 020年1 0月上 午11时1 9分20. 10.2311 :19October 23, 2020
作业标准记得牢,驾轻就熟除烦恼。2 020年1 0月23 日星期 五11时1 9分50 秒11:19:5023 October 2020
好的事情马上就会到来,一切都是最 好的安 排。上 午11时1 9分50 秒上午1 1时19 分11:19:5020.1 0.23
配置注册表
配置注册表实现启动时自动运行程序
以添加Windows CE的应用程序Test.exe为 例。
通过配置注册表实现系统启动时自动运 行Test程序。
配置platform.reg
在[HKEY_LOCAL_MACHINE\init]段添 加如下类似内容:
"LaunchXX"="Test.exe" "DependXX"=hex:YY,ZZ,... 其中XX是十进制的数字,表示Test.exe的 启动顺序标识。 YY,ZZ是十六进制数字,表示Test.exe所 依赖(先于Test.exe运行)的程序的启动 顺序标识。
RAM式注册表(RAM-based)
在对象存储中保存所有注册表数据。 必须为RAM持续供电,断电则丢失数据。 用于从不或很少冷启动的设备。
蜂窝式注册表(Hive-based)
K7产品说明书

第一章 K7型GPS测量系统简介 (3)1.1 系统的特色、组成、性能指标及配置 (3)1.1.1 K7型GPS新特色 (3)1.1.2系统组成 (3)1.1.3 K7测量系统的主要技术参数 (3)1.1.4 测量系统的基本配置 (4)1.2 K7型GPS测量系统的硬件 (5)1.2.1 K7型GPS接收机 (5)1.2.2 电池及充电器 (6)1.3 K7型GPS测量系统软件组成 (7)1.4 K7型GPS接收机充电及电源装卸 (7)一、打开K7主机侧面的电池后盖(见图1-2); (7)二、将电池后盖打开后取出锂电池(见图1-3),然后用配套充电器充电。
(7)第二章 K7型GPS测量系统实测 (8)2.1 概述 (8)2.2系统作业模式 (9)2.2.1 静态相对定位模式 (9)一、作业方法: (9)二、定位精度: (9)三、作业要求: (9)四、适用范围: (9)五、作业范围: (9)2.2.2后差分动态相对定位模式 (9)一、作业方法: (9)二、技术指标: (9)三、应用范围: (10)2.3 GPS网的技术设计 (10)2.3.1 测量的精度标准 (10)2.3.2网的图形设计 (11)2. 环形网 (11)3. 星形网 (12)2.3.3基线长度 (13)2.3.4网的基准 (13)2.4 选点与埋石 (13)2.4.1选点 (13)2.4.2 埋石 (14)2.5 K7型GPS测量系统的野外作业 (14)2.5.1 制定观测计划 (14)一、确定工作量 (14)二、采用分区观测 (15)三、选择观测时段 (15)四、确定观测进程及调度 (15)2.5.2安置及启动仪器 (16)2.5.3如何量取天线高即仪器高 (16)2.5.4启动仪器 (17)2.6 K7型接收机使用注意事项 (17)GPS测量应遵循《国家标准GPS测量规范》布网、施测、检核、计算。
(17)第三章K7型GPS测量系统文件及操作 (17)3.1 K7型文件系统简介与文件界面 (18)3.1.1 初始界面 (18)3.1.2 系统界面 (19)3.2 K7型文件系统野外数据采集 (23)3.2.1智能模式采集 (23)一、数据的采集: (23)二、给记录的数据取一个文件名: (24)三、退出数据记录: (25)3.2.2人工模式采集 (25)一、数据的采集: (25)二、给记录的数据取一个文件名: (25)三、退出数据记录: (25)3.2.3节电模式采集 (26)一、数据的采集: (26)第四章 K7内业数据传输 (27)4.1数据传输软件简介和界面 (27)4.1.1 菜单项 (27)四、查看菜单 (29)4.1.2 工具栏 (30)4.1.2 状态栏 (31)4.1.3 程序视窗 (31)4.2如何进行数据传输 (32)四、数据传输 (33)五、断开连接 (33)4.3.2检测注册码 (34)4.3.3设置功能 (35)第五章常见问题及解决方法 (35)第六章 K7后处理差分系统实测 (36)6.1.1 初始界面 (36)6.1.2 后差分野外作业步骤 (37)第七章如何升级主机软件 (39)附录A 有关专业术语注释 (41)附录B 年积日计算表 (43)附录C 联系方式 (45)附录D 全国销售及服务网络列表 (46)第一章 K7型GPS测量系统简介1.1 系统的特色、组成、性能指标及配置1.1.1 K7型GPS新特色K7智能一体化GPS接收机现已问世。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WinCE中的RAM-Based Registry与HIVE-Based Registry 收藏作者:ARM-WinCE在WinCE中支持两种类型的注册表:RAM-Based和HIVE-Based,默认情况下使用的是RAM-Based注册表。
1. RAM-Based注册表RAM-Based的注册表是将所有的注册表数据存储在对象存储(object store)中,也就是存放在RAM里面。
一般用在有电池备份RAM的系统上面,也就是说,当系统掉电以后,会自动切换成电池供电,此时RAM还有供电,所以上面的数据不会丢失,这样采用RAM-Based注册表非常有效。
RAM-Based注册表多用于经常热启动(Warm Boot)的设备上面,很少用在冷启动(Cold Boot)设备上面。
2. HIVE-Based注册表HIVE-Based的注册表是将注册表数据存成文件,也就是存在掉电不会丢失数据的磁盘上面,HIVE注册表被分成两部分:系统Hive和用户Hive,也就是system.hv和user.hv。
在一个多用户系统中,会包含多个用户Hive,不同的用户Hive(user.hv)会在该用户登陆的时候被加载,被注销的时候卸载。
实际上HIVE-Based的注册表包含三个部分,我称之为引导Hive,系统Hive和用户Hive,也就是Boot.hv,system.hv和user.hv。
Boot.hv主要用于系统引导时候所需的注册表设置,这部分设置不会被保存在磁盘上面,也就是说,在系统掉电以后就会丢失。
实际上,这部分应该说是属于RAM-Based注册表,由于这部分数据不需要改动,所以也就无所谓了。
System.hv存放关于系统的注册表设置,user.hv存放和用户相关的注册表设置。
一般在我们编译WinCE系统的时候,Platform Builder会根据platform.reg文件中的注释标签来判断哪些注册表设置放入boot.hv中,凡是在注释标签”;HIVE BOOT SECTON”和”;END HIVE BOOT SECTION”之间的设置都会被放入boot.hv中,其他的都会放到default.hv和user.hv中。
在WinCE第一次引导的时候,所有的.hv都会被放到RAM中,WinCE系统会首先读取boot.hv进行相关引导时候的设置,然后把default.hv和user.hv放到磁盘的指定路径下面,这个路径也是在注册表中设置的,然后default.hv会被重命名为system.hv。
当系统第二次启动的时候,会比较磁盘上的.hv和内存中的.hv是否一致,如果不一致,会拷贝磁盘上面的.hv到内存中。
我们可以看出,实际上HIVE注册表在运行的时候也是放在RAM中的,这样速度比较快。
启动的时候会从磁盘上读出,在用户更改注册表以后,会被保存在磁盘上,保存的时机也是可以设置的,可以选择在用户更改后立刻保存到磁盘上,也可以选择在reboot的时候保存。
3 HIVE-Based注册表实现(1) 添加HIVE-Based注册表项在系统中支持HIVE-Based注册表要在”Catalog Item View”中选择”Core OS”->”CEBASE”->”File System and Data Store”->”Registry Storage”->”Hive-based registry”,如图:(2) 添加HIVE注释标签然后需要添加相应的注册表设置,一般我们会在platform.reg中添加HIVE相关的设置,首先需要添加的是HIVE注释标签,如下:;HIVE BOOT SECTION…<your registry setting>…;END BOOT SECTION所有与HIVE有关的注册表设置包括HIVE存放的磁盘的驱动的相关设置都要放在HIVE注释标签内。
(3) 设置注册表存放的位置:下面通过一个例子来说明如何设置system.hv和user.hv存放的位置[HKEY_LOCAL_MACHINE\init\BootVars]"SystemHive"="\\NandFlash\\system.hv""ProfileDir"="\\NandFlash\\user.hv""Flags"=dword:1"RegistryFlags"=dword:1“SystemHive”用来设置system.hv存放的位置,这里存放在NandFlash磁盘的根目录下面。
“ProfileDir”用来设置user.hv存放的位置,这里存放在NandFlash磁盘的根目录下面。
“Flags”用来设置是否立刻启动Device Manager,主要是为了启动Hive-Based所需的存储设备。
“RegistryFlags”用来设置什么时候将新的注册表设置写入磁盘,这里表示立刻写入。
(4) 修改磁盘设备驱动的配置为相关的磁盘驱动添加支持Hive的设置,如下:[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NANDFlash]"Flags"=dword:1000由于Hive注册表会被保存在NandFlash中,所以将”Flags”的设置添加到了NandFlash设备驱动的注册表设置中。
上面的设置只有在使用HIVE-Based注册表的时候需要,如果不是用Hive注册表,需要注释掉。
(5) 添加Storage Manager的相关配置具体添加如下:[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\<ProfileName>\<FileSystemNam e>]"MountBootable"=dword:1同样,在使用HIVE注册表的时候需要上述设置,如果不是使用HIVE注册表,则注释掉就可以了。
下面是我曾经基于NandFlash支持Hive注册表的设置,仅供参考:; HIVE BOOT SECTION[HKEY_LOCAL_MACHINE\init\BootVars]"SystemHive"="\\NANDFlash\\system.hv" ;unmask this line to use flash "ProfileDir"="\\NANDFlash\\usr.hv""Start DevMgr"=dword:1"DefaultUser"="default""Flags"=dword:1"RegistryFlags"=dword:1[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\NSFlash] "DriverPath"="Drivers\\BuiltIn\\NANDFlash""LoadFlags"=dword:1 "Order"=dword:0[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NANDFlash]"Dll"="ep94xxnandflash.dll""Prefix"="DSK" "Order"=dword:0;"Ioctl"=dword:4"Profile"="NSFlash""IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}""Flags"=dword:1000 ;unmask this line when enable HIVE;"MemBase"=dword:00000000;"MemLen"=dword:00000000; Override names in default profile[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NSFlash]"Name"="Ep94xx NAND Flash""Folder"="NANDFlash""PartitionDriver"="MSPart.dll""AutoMount"=dword:1"AutoPart"=dword:1"AutoFormat"=dword:1"MountFlags"=dword:2 ;unmask this line when enable HIVE[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NSFlash\FATFS] "MountFlags"=dword:2 ;unmask this line when enable HIVE"EnableCache"=dword:1"CacheSize"=dword:1000"MountBootable"=dword:1"Flags"=dword:00000024;"Flags"=dword:00680024;"FormatTfat"=dword:1"CheckForFormat"=dword:1本文来自CSDN博客,转载请标明出处:/nanjianhui/archive/2008/06/15/2550292.aspx本文来自CSDN博客,转载请标明出处:/nanjianhui/archive/2008/06/15/2550292.aspx。