Windows CE嵌入式开发入门——基于Xscale架构(1)

Windows CE嵌入式开发:EVC入门教程 本文还有配套的精品资源,点击获取 简介:Windows CE是用于智能设备和手持设备的操作系统,而Embedded Visual C++(EVC)是为该平台专门设计的集成开发环境。本教程旨在引导开发者学习如何使用EVC进行Windows CE应用程序的开发。教程内容包括EVC简介、EVC与Windows CE的关系、EVC开发流程详解、Platform Builder介绍以... 阅读详情
1.BootLoader的构成组件
BootLoader主要由以下两部分组成。
(1)OEM startup code
这部分代码是在BootLoader中最先被执行的。它的主要功能是初始化最小范围的硬件设备,比如设置CPU工作频率、关闭看门狗、设置cache、设置RAM的刷新率、填写内存控制寄存器(通知CPU有效的数据总线引脚数)等。由于系统刚刚启动,不适合使用复杂的高级语言,因此这部分代码主要由汇编程序完成。在汇编程序段设置完堆栈后,就跳转到C语言的Main函数入口(位于<PLATNAME>/eboot/main.c);
(2)Main code
这部分代码由 C 语言实现,是 BLCOMMON 代码的一部分,它可以用来执行比较复杂的操作。比如检测内存和 Flash 的有效性、检测外部设备接口、检测串口并且向已经连接的主机发送调试信息、通过串口等待命令、启动网络接口、建立内存映射等汇编无法完成的工作。
Main code包含以下代码段:
Image download代码段
Image的下载可以通过以下接口。
① A. Parallel port I/O接口。这是通过主机和目标机的并口之间的数据传输来完成下载工作。具体实现代码,读者可以参考/kernel/hal/mdppfs.c文件;
② Ethernet port I/O 接口。这是通过主机和目标机的网络接口之间的数据传输来完成下载工作。具体实现代码,读者可以参考 WINCE420/public/common/oak/DRIVE|RS/ETHDBG/EBOOT 文件夹;
③ Debug serial I/O接口。这是通过主机和目标机的串口之间的数据传输来完成下载工作。利用串口来传输的缺点非常明显,那就是速度太慢;
通过事先 Flash write代码将镜像文件固化入 Flash。只要BootLoader被设计成能从Flash加载镜像文件,本选项就可以使用。
2.BootLoader控制流函数Control Flow Functions
图9-5为Windows CE.NET的BootLoader的整体架构。其中列出了各种控制流函数。
图9-5  Boot Loader的整体架构
下面,我们来看以下Windows CE.NET的BootLoader在系统启动时所执行的函数。
图9-5中的所有函数分为3个模块:BLCOMMON、Download Function、FLASH Function。其中BLCOMMON模块是由微软公司提供的,执行一些逻辑上的功能,因此建议开发人员不要对其进行修改。而Download Function、FLASH Function中的函数与硬件平台息息相关,因此对于每种硬件平台都要将函数的实现进行修改。
BLCOMMON模块的功能解释。
BLCOMMON 是一个库,其实现代码位于 %_WINCEROOT%/Public/Common/Oak/Drivers/
Ethdbg/Blcommon目录下。它实现了Windows CE.NET BootLoader的基本框架。这个库的工作为:将bootloader加载到RAM中执行、解压缩.bin文件、校验硬件平台的完整性、对加载的进度进行跟踪。在BLCOMMON阶段执行的过程中,主要使用OEM函数集。
BLCOMMON库的入口点为 BootloaderMain函数,它有Startup汇编函数完成后跳转至该入口。BLCOMMON库将被BootLoader的程序链接在一起。
在系统启动时,CPU首先执行StartUp函数,这是个由汇编实现的函数。StartUp函数主要的功能为:设置CPU工作频率、关闭看门狗、设置cache、设置RAM的刷新率、填写内存控制寄存器(通知CPU有效的数据总线引脚数)等。在StartUp完成任务后,就跳转到BootLoaderMain函数中。这个是由C语言编程实现的函数入口点。
 
伺服驱动器485控制(1):使用串口软件来读参数 下面介绍如何读伺服驱动器的一圈脉冲数,通过查看伺服驱动器说明书,得知一圈脉冲数的参数是PA11 其通讯地址是十进制 11 十六进制 0A, 串口软件指令都是以十六进制表示,字节单位。注意:485通讯地一定要接,如果不接可能会通讯异常,假如上位机没有485通讯地,而接了两根485+ 和485-,出现通讯不好和反应慢的情况,请把485GND接在上位机0V。笔记本的网口不要和驱动器了网口用网线连接,笔记本网口是以太网,伺服驱动器网口是485。通过驱动器按键面板查看PA11的参数是10000,因此数据对的上。 阅读详情

相关推荐

ABAP on HANA/CDS view/AMDP 大乱炖

文章目录1. HANA的三大杀器1.1 内存式数据库1.2 多核架构1.3 列式存储1.3.1 数据压缩1.3.2 并行处理1.3.3 聚集和索引1.3.4 代码下移2. CDS 概念2.1 ABAP 开发环境2.2 OPEN SQL语句2.3 CDS 到底是啥2.4 CDS 类型2.5 创建CDS view3. CDS 实战3.1 Annotation注解3.2 Case 语句3.3 数学计算3.4 字符串表达3.5 货币转换3.6 聚集语句3.7 Join3.8 Union3.9 参数3.10 作为子C

weixin_45689053的博客 4786

Windows xp Embedded常见问题(转贴一)

1.为什么我做的XPE找不到网上邻居的属性,所以导致无法设置IP地址?原因一:缺少Wireless Zero Configuration组件原因二:没有正确的安装网卡驱动程序2.如何让XPE实现自动登录的功能?方法一:在Windows Logon组件的Setting中设置缺省用户名;方法二:加入Automatic Logon组件,同时在Automatic Logon的Setting中必须设置自动登

menuconfig的专栏 4127

Ubuntu22.04中通过conda快速部署PyTorch开发环境(CPU/GPU双版本实战)

本文详细介绍了在Ubuntu22.04系统中,如何利用Conda高效部署PyTorch开发环境。文章分别提供了CPU与GPU双版本的实战教程,涵盖环境创建、镜像加速、版本匹配及深度验证等关键步骤,旨在帮助开发者快速搭建稳定、兼容的深度学习环境,从而专注于模型开发。

rose2的博客 556

Windows CE嵌入式开发入门——基于Xscale架构(4)

(2)Main函数代码分析BLCOMMON的实现代码在/WINCE420/PUBLIC/COMMON/OAK/DRIVERS/ETHDBG/BLCOMMON目录下的blcommon.c文件中。 void BootloaderMain (void){    ROMHDR *pRomHdr = NULL;  // 镜像文件的PTOC    DWORD dwAction, dwp

menuconfig的专栏 818

正点原子ATK-LORA-01无线串口代码移植+STM32F103C8T6(标准库)

目录 一、ATK-LORA-01无线串口资料 二、代码移植 1.分析 (1)usart3(也可以是其他的串口)用于接收数据的串口 usart.h (2)time3(也可以是其他的定时器)用于时序的设置 (3)lora.c 三、演示 1.主机(发送方) (1)主机接线 (2)主机代码(发送方) (3)主机实物 插上无线串口通电即可发送​ 2.从机(接收方) (1)从机接线(LORA与主机相同) (2)从机代码(接收方) (3)从机实物 接上TTL和LORA并通电即...

m0_56942354的博客 8968

从Bit到MCS:深度解析Xilinx FPGA程序固化流程与文件选型

本文深度解析Xilinx FPGA程序从调试到量产的固化流程,重点对比BIT、BIN、MCS和ELF四种文件格式的特性与适用场景。针对工业级应用,详细讲解MCS文件的生成优化、Flash烧录避坑指南及三级验证流程,并分享多镜像管理、加密安全等高级技巧,帮助开发者提升FPGA量产可靠性。

weixin_30924239的博客 324

《Windows CE嵌入式开发入门——基于Xscale架构》第1章 GPIO和中断控制器

GPIO(General-Purpose I/O,通用输入/输出)的数量和功能以及中断控制的能力是处理器功能强弱的体现,PXA255处理器的GPIO以及中断控制器提供了丰富的资源,增加了系统设计的灵活性。1.1  GPIOPXA255处理器提供了81个GPIO引脚,同时提供了27个寄存器来控制这些引脚的工作方式和状态。这27个寄存器控制了引脚的输出/输入方向、引脚状态以及引脚的附加功能(关

taling的专栏 9883

【系统安全】Windows内核权限提升漏洞(CVE-2024-30088)

CVE-2024-30088是Windows内核提权漏洞,由越南安全研究员@Bùi Quang Hiếu详细分析。漏洞发生在AuthzBasepCopyoutInternalSecurityAttributes函数中,该函数在复制SecurityAttributesList时会使用用户提供的指针,在校验及复制期间存在时间差,导致存在TOCTOU漏洞。

李同學AI安全 1325

《Windows CE嵌入式开发入门——基于Xscale架构》第2章 系统时钟

电子系统中,时钟是一个关键的要素,尤其在手持设备中,时钟系统的设计与系统的性能和功耗有直接关系。PXA255提供了丰富的时钟系统的控制能力,能有效地实现性能和功耗的平衡。2.1  实时时钟RTC在介绍时钟机制之前,先要说明一下PXA255上的时钟系统。PXA255上的时钟系统主要包含以下5个模块:n     32.768kHz振荡器;n     3.6864MHz振荡器;n  

taling的专栏 8918

Python 爬虫实战:抓取悦动圈跑步爱好者运动轨迹数据,规划健身路线

通过本次 Python 爬虫实战,我们学习了如何使用 Python 抓取悦动圈跑步爱好者的运动轨迹数据,并基于这些数据进行分析和处理,最终规划出健身路线。在这个过程中,我们掌握了requests、BeautifulSoup、pandas和matplotlib等库的基本使用方法,了解了爬虫的基本原理和流程。希望本文能够帮助你更好地理解和应用 Python 爬虫技术,在数据处理和分析领域取得更多的成果。

u014481728的博客 2365

【ComfyUI】Flux 图像扩展

本文介绍了一个基于Flux扩图技术的ComfyUI工作流,能够智能扩展图像尺寸并保持内容连贯性。该流程通过扩散模型与条件编码的结合,对图像边缘进行语义填充生成,适用于艺术创作、海报设计等场景。工作流包含图像加载、外扩填充、文本编码、扩散采样等核心节点,采用Flux1-fill-dev等专业模型确保生成质量。演示效果显示,系统能自然延伸原图内容,保持风格统一。该技术可广泛应用于插画扩展、摄影增强、游戏场景构建等领域,显著提升创意工作效率。

Mr数据杨 928

《Windows CE嵌入式开发入门——基于Xscale架构》 第8章 调试与仿真

 通过远程控制程序,开发人员可以从宿主机上远程地对目标机的运行状况进行监视和控制。宿主机和目标机之间一旦建立了远程控制连接,开发人员就可以进行下列操作:下载宿主机的文件到目标机、监视目标机处理器的状况和各个线程及进程、监视并且分析目标机内核或者应用程序的处理性能等。在Platform Builder和Embedded Visual C++中都包含了下列远程工具:n     Remote

taling的专栏 9080

【ComfyUI】Wan2.2 Animate 背景保留动作迁移视频生成

本文介绍了一个基于ComfyUI的高精度视频生成工作流"Wan2.2 Animate",该系统融合动作捕捉、图像拼接和LoRA加权等技术,能自动识别人脸并完成精准动作迁移,同时保持背景稳定。工作流采用模块化设计,包含输入提取、图像融合、模型加载等关键节点,核心模型Wan2.2-Animate-14B支持fp8精度与BlockSwap控制。流程分为图像输入、动作提取、多图合成等五个阶段,通过文本提示编码器和图像语义编码器实现语义驱动的动作生成,最终输出高质量视频,适用于虚拟形象驱动和

Mr数据杨 2264

《Windows CE嵌入式开发入门——基于Xscale架构》 第7章 Windows CE体系结构

7.1  层次式架构1.系统分层模型操作系统(包括应用环境、操作环境等)一般具有分层的结构特征,典型的就是UNIX系统的同心环,最里面是硬件,从里向外依次是kernel、共享函数库、应用程序3个层次。Windows CE的分层结构比较复杂(如图7-1所示),这是根据它适合嵌入式应用的特点所设计的。从提供者的角度来看,图中上面4层主要由微软公司维护开发,下面两层主要由嵌入式产品开发商根据产品

taling的专栏 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

《Windows CE嵌入式开发入门——基于Xscale架构》前言

《Windows CE嵌入式开发入门——基于Xscale架构》作者:傅 曦 陈 黎 董磊鋆 石卫华 等出版社:人民邮电出版社前言关于本书随着微软公司Windows CE嵌入式开发技术的发展,针对Windows CE平台的开发技术越来越受到行业市场的关注,越来越多的基于Windows CE平台的行业应用相继出现。由于Windows CE应用程序与桌面Windows应用程序的开发平

taling的专栏 3379

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

《Windows CE嵌入式开发入门——基于Xscale架构》 第5章 Windows CE操作系统简介

5.1  嵌入式系统嵌入式系统具备了PC的部分标准功能,但它又有一定的延伸。嵌入式系统的组件根据应用的需要,嵌入在设备内部,发挥着运算、处理、储存以及控制等作用。嵌入式系统一般由硬件设备、嵌入式操作系统、嵌入式应用软件组成。硬件大致有微处理器(也叫微控制器)、存储设备、外围接口组成。目前大多以32位的单处理器、64MSDRAm、32MFlash具多。操作系统具有内核镜像小、实时性强的特点,具备

taling的专栏 7019

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

《Windows CE嵌入式开发入门——基于Xscale架构》 第9章 Windows CE BSP及驱动程序结构分析

 9.1  Windows CE驱动程序结构概述Windows CE的驱动程序可以从多种角度进行区分。1.从加载以及接口方式来区分可以分为本机设备驱动(Built-In Driver)、可加载驱动(Loadable Driver)以及混合型驱动。(1)本机设备驱动本机设备驱动即Native Device Drivers。这些驱动程序在系统启动时,在GWES的进程空间内被加载

taling的专栏 1万+

Windows CE嵌入式开发入门——基于Xscale架构(5)

9.2.5  Windows CE标准BootLoader的需求1.BSP必须在加载Windows CE BootLoader以及操作系统的时候有一个默认的模式。(1)在系统启动时,即使用户不输入指令,也能自动地下载操作系统镜像文件。即便使用了启动菜单,也是有时间限制了,超过时间限制,BootLoader应当能自动地按照默认方式启动操作系统;(2)BootLoader应当被固化在FLA

menuconfig的专栏 875

《Windows CE嵌入式开发入门——基于Xscale架构》第3章 存储控制器

任何一个处理器都必须与存储器紧密配合才能实现各种功能,处理器对存储器的控制能力对系统的整体性能有至关重要的影响。PXA255通过DMA控制器(DMA Controller)、存储控制器(Memory Controller)和MMU实现对各种存储器的控制。3.1  DMA控制器(DMA Controller,DMAC)DMA控制传输(DMAC)是使CPU处理其他与数据总线无关的处理,而有DM

taling的专栏 9250

《Windows CE嵌入式开发入门——基于Xscale架构》目录

第一部分  Intel Xscale芯片应用详解第1章  GPIO和中断控制器1.1  GPIO1.1.1  GPIO操作(GPIO operation)1.1.2  GPIO附加功能(Alternate Function)1.1.3  GPIO寄存器定义1.2  中断控制器1.2.1  中断控制器操作1.2.2  中断控制器寄存器定义第2章  系统时钟2.

taling的专栏 6284

《Windows CE嵌入式开发入门——基于Xscale架构》 第10章 案 例 分 析

  10.1  TouchScreen驱动分析10.1.1  介绍触摸屏驱动是从触摸屏硬件上获取用户的输入信息,然后将触摸事件传递给GWES子系统。驱动会矫正坐标值,比如将歪斜的线条修正为直线。在用户的笔或者手指触摸屏幕的时候,驱动必须随时返回坐标值,当笔或者手指离开屏幕后,必须产生事件来标记“抬笔”事件。10.1.2  注册表设置下面是触摸屏驱动的注册表设置。 

taling的专栏 1万+
上一篇: S3c2410/2440的Eboot流程介绍
下一篇: Windows CE嵌入式开发入门——基于Xscale架构(2)
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值