wince挂起和唤醒_relayon

不管任何方式的系统挂起,最终都会调用OEMPowerOff()函数来实 现.OEMPowerOff()函数由OEM来完成,这个函数也许会位于 power.c或者off.c的文件中.OEMPowerOff()是OEM来实现的,代码和流程也许不同,但基本按照下面的方法来完成.

挂起的过程:

1.先进行平台相关的动作,比如清屏,设置AD,usb等.

2.保存芯片所有的寄存器值到一个静态数组(就是堆栈中)

3.设置io,关闭kitl等

4.呼叫OALCPUPowerOff()进行挂起.

OALCPUPowerOff()是一个位于startup.s中的汇编函数,它按照下面的流程实现挂起功能

5.保存通用寄存器r4-r12,lr到堆栈

6. 保存wakeup后的地址,MMU寄存器,进入各模式将sp和lr寄存器保存到内存RAM的某一个位置,这个位置是由config.bib指定保留的.为 什么不象之前一样保存到堆栈呢?因为系统唤醒后跳转到reset开始执行,这时候堆栈还没有初始化.这也是poweroff过程复杂的原因.

7.计算刚才保存的数据块的检验和并保存到GSTATUS3寄存器.(GSTATUS3和GSTATUS4是状态寄存器,挂起直到唤醒过程都会保存里面的值)

8.禁止中断.

9.清cache

10.使能唤醒中断,能唤醒可以是外部中断0,1,2,或者RTC中断

11.设置sdram进入自刷新模式,最终cpu进入power off状态

唤醒的过程:

cpu 的power off模式和其他睡眠模式不同,其他的睡眠模式唤醒后会从睡眠处继续运行,而power off模式唤醒后是从reset处执行.reset有3种可能情况,1.正常的上电冷启动,包括reset信号线有效造成的reset.2.看门狗失效造 成的reset.3.power off之后被外部中断或者rtc中断唤醒的reset.在reset之后可以根据GSTATUS2寄存器来判断是否从power off唤醒.还有一个问题,不论何种方式reset,都是先执行bootloader的代码,所以唤醒过程需要bootloader的参与配合.具体流 程:

1.外部中断或者rtc中断唤醒cpu进入bootloader

2.bootloader 中停止sdram的自刷新模式,然后跳到内核开始地址.有些bootloader会做的更多,因为前面我们把数据都保存到了ram中的某处,事实上只要知 道这个ram地址就可以取得数据进入唤醒过程.所以有些bootloader会直接去唤醒.我认为这并不好,增加了bootloader的依赖性,层次间 的耦合性也高了.

3.检查checksum,因为之前设置sdram处于自刷新状态,在poweroff期间sdram里面的数据会保持,增加checksum是有必要的安全措施.

4.从RAM取得之前保存的参数,其中包含了唤醒后应该跳转的地址,和MMU的配置数据以及各个模式的sp和lr.

5.启动mmu

6.跳到唤醒后的新地址.

7.进入各个模式恢复sp和lr.

8.恢复r4-r12,lr

9.跳转到lr,即相当于OALCPUPowerOff()返回,返回到OEMPowerOff()中.

10.打开kitl,恢复所有寄存器,恢复平台之前状态.

唤醒过程实际是一个挂起的逆过程.如此,系统成功唤醒,所有运行的应用程序不知道自己被系统挂起过而继续运行.

转载自:wince挂起和唤醒_relayon

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: wince mcgstpc_net35_setup 是一个 Windows CE 平台上的安装程序,用于安装 Microsoft .NET Compact Framework 3.5 (NETCF 3.5) 运行时环境。 Windows CE 是微软为嵌入式系统开发的一种操作系统,它主要用于一些资源有限的设备,如手持设备、嵌入式设备等。而 .NET Compact Framework(简称。NET CF)则是微软为嵌入式系统开发的一套小型的.NET运行时库。 NETCF 3.5 是在之前版本的基础上进行了升级,提供了一些新的功能和改进,使开发人员能够更轻松地创建可在 Windows CE 平台上运行的应用程序。它支持 Windows CE 5.0、6.0 和 7.0 版本,并且兼容性良好。 安装 mcgstpc_net35_setup 的目的是为了在 Windows CE 设备上安装 NETCF 3.5 运行时环境,以便运行基于.NET框架的应用程序。安装程序会将.NETCF 3.5 的核心文件和库文件拷贝到设备中的指定目录,使得设备能够正确解析和执行由.NET CF 编译的应用程序。 安装.NET CF 3.5 不仅可以提供更好的应用程序兼容性,还可以让开发人员能够使用.NET平台上更丰富的功能和特性来开发应用程序。而且.NET CF 还提供了一些用于简化开发的工具和类库,使开发人员能够更快速、高效地开发出质量更高的应用。 总的来说,wince mcgstpc_net35_setup 是一个用于安装 NETCF 3.5 运行时环境的安装程序, 它可以为 Windows CE 设备提供更好的应用程序兼容性和更丰富的开发功能,使得开发人员能够更方便地创建适用于嵌入式系统的.NET应用程序。 ### 回答2: wince mcgstpc_net35_setup 是一个 Windows CE 操作系统上的安装程序。这个安装程序主要是用于安装 MCSTPC 所需的 .NET Compact Framework 3.5 组件。 在 Windows CE 操作系统上,.NET Compact Framework 是用于开发和运行基于.NET技术的应用程序所必需的一个组件。MCSTPC 是一个应用程序,它可能与 .NET Compact Framework 3.5 兼容。 安装过程中,wince mcgstpc_net35_setup 首先会检查系统是否满足安装要求,如系统的硬件配置和操作系统版本等。如果系统符合要求,安装程序会将.NET Compact Framework 3.5 组件提取到合适的目录,并进行必要的注册,以供 MCSTPC 应用程序调用。 通过安装 wince mcgstpc_net35_setup,用户可以确保系统具备运行 MCSTPC 应用程序所需的环境。当用户运行 MCSTPC 时,其所需的 .NET Compact Framework 3.5 组件会被自动加载和使用。 总之,wince mcgstpc_net35_setup 是一个用于安装 .NET Compact Framework 3.5 组件的 Windows CE 安装程序,其目的是为了提供 MCSTPC 应用程序所需的必备环境。 ### 回答3: wince mcgstpc_net35_setup是指Windows CE操作系统中的一个安装模块,用于在设备上安装和配置Microsoft .NET Compact Framework版本3.5。 Microsoft .NET Compact Framework是一种基于.NET技术的轻量级的应用程序开发框架,旨在在嵌入式和移动设备上开发和运行应用程序。它提供了一系列的类库、工具和运行时环境,使开发人员能够在Windows CE设备上构建功能强大的应用程序。 通过安装wince mcgstpc_net35_setup,用户可以将设备升级到支持.NET Compact Framework 3.5的版本。这将使设备能够运行基于.NET技术开发的应用程序,并利用.NET Compact Framework的功能和特性。 安装和配置wince mcgstpc_net35_setup的过程通常较为简单,用户只需执行一个命令或运行一个安装程序,然后跟随提示完成安装过程。安装完成后,设备将具备.NET Compact Framework 3.5的运行环境,并可以运行相应的应用程序。用户还可以根据需要对.NET Compact Framework进行一些配置,例如选择不同的语言支持、调整内存分配等。 总的来说,wince mcgstpc_net35_setup是用于在Windows CE设备上安装和配置.NET Compact Framework 3.5的工具。通过将设备升级到支持.NET Compact Framework 3.5,用户可以运行更多的应用程序,并享受.NET技术带来的便利和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值