WinCE流驱动入门

1、烧写Bootloader(没烧过,只是这样认为要首先烧写BIOS)

2、烧写WinCE核

由于本人拿到实验板时以上两步已做好,即我拿到的实验板上就有烧好的WinCE5.0操作系统,因此以上两步是我猜测的!

3、打开VS,按照天嵌手册4.2节内容进行操作,如果成功运行,则OK!本步骤成功后则说明平台搭建成功,但HELLO程序不涉及实验板上的任何具体硬件,个人认为这只能算是入门了一半,还有一个坎没迈过去,那就是流驱动的开发,因为开发第一个流驱动的工作量并不比搭建平台省事,尤其是全靠自已琢磨,旁边无人指导、无人探讨!

4、运行成功HELLO程序后你可能会想,如果想点亮实验板上的LED灯该怎么用啊?基于VS开发环境也没法控制CPU的IO寄存器啊?这就需要流驱动了!

大部分实验板的手册都有详细的HELLO程序过程,但很少有手册详细讲解流驱动的开发过程,下面以我的经历详细的写一写:

流驱动的基本介绍可以看看天嵌手册的第五章,脑子里起码要先有个基本概念!

1)打开以下目录:E:/WINCE500/PLATFORM/smdk2440/DRIVERS,并在该目录下新建一个文件夹,命名为GPIOdriver,并用记事本打开该目录下的dirs文件,按其格式添加/GPIOdriver,dirs没有扩展名,打开看看就懂,没什么特别的!

注:其中E盘是我的安装目录,smdk2440是GEC2440实验板提供的BSP,按要求拷贝到了E:/WINCE500/PLATFORM/ 目录。

2)打开刚刚新建的GPIOdriver文件夹,新建txt记事本文件,命名为makefile,打开加入以下内容:!INCLUDE $(_MAKEENVROOT)/makefile.def,然后将.txt扩展名去掉,使其变为无扩展名的文件。

3)仍然在GPIOdriver文件夹内,仍然新建txt文件,命名为GPIOdriver,加入以下内容后将其扩展名更改为.def文件:

LIBRARY GPIOdriver

EXPORTS

       GIO_Close

       GIO_Deinit

       GIO_Init

       GIO_IOControl

       GIO_Open

       GIO_PowerDown

       GIO_PowerUp

       GIO_Read

       GIO_Seek

       GIO_Write

4)仍然在GPIOdriver文件夹内,仍然新建txt文件,命名为sources,加入以下内容后将其扩展名删除,使其成为无扩展名文件:

RELEASETYPE=PLATFORM

TARGETNAME=GPIODriver

TARGETTYPE=DYNLINK

DLLENTRY=DllEntry

 

TARGETLIBS= /

    $(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /

 

MSC_WARNING_LEVEL = $(MSC_WARNING_LEVEL) /W3 /WX

 

INCLUDES= /

    $(_TARGETPLATROOT)/src/inc; /

    $(_COMMONOAKROOT)/inc; /

    $(_PUBLICROOT)/common/oak/inc;$(_PUBLICROOT)/common/sdk/inc;$(_PUBLICROOT)/common/ddk/inc;  /

    ../../inc

     

SOURCES= /

       GPIODriver.cpp

5)仍然在GPIOdriver文件夹内,建立GPIOdriver.cpp和GPIOdriver.h,这个大家找相关例子程序进行参考,我是参考的天嵌的例子,不过由与BSP不同,编译时总是出错,错误原因就是一些头文件不一样,有一点编程序经验应该都能查出来,这时最好的解决办法是把需要包含的内容直接写到GPIOdriver.h中去,这样就不会有编译错误了。至于如何编译,别急,请看后文!先这么做好,排查错误要慢慢来,先写好一个再说!

6)以上出现了多次GPIOdriver,这些地方要命名一致,在写def文件时,GIO只能是三个字母,这里注意!

7)以上工作完成后,GPIOdriver文件夹下的工作就完成了,然后打开E:/WINCE500/PLATFORM/smdk2440/FILES目录,以记事本打开platform.reg文件,添加如下代码:

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/LEDdriver]

"Prefix"="GIO"

"Dll"="GPIOdriver.dll"

注意GIO 与GPIOdriver.dll要与前面的命名一致!另外要注意,.reg文件中有很多IF与END的配套使用,添加代码时不要放在这些中间了!至于IF与END的作用,初学者先跳过!

8)同样在FILES目录下打开platform.bib文件,加入以下代码:

GPIOdriver.dll $(_FLATRELEASEDIR)/GPIOdriver.dll NK SH

同样须注意命名与IF、END的配对!

9)以上工作完成后基本工作就差不多了,这里再说明一点,关于目录各个实验板厂商的BSP包各不相同,比如说天嵌的目录应为TQ2440/Src/Drivers和TQ2440/Files,这个要灵活应变!

10)打开实验板商家所带的PB平台文件.pbxml文件,在PB的左侧选择FileView选项(我这里默认就是这个选项),这里有树形结构的文件夹目录,打开PLATFORM,smdk2440,drivers,然后会看到你刚刚建立的GPIOdriver文件,右击,选择Build Current Project,就会对刚刚建立的流驱动进行编译,如果有错误会有提示,修改后再编译,直到没有错误为止!

11)点击菜单栏Build OS---Build and Sysgen,对.pbxml文件进行编译,这个大概要花一个多小时,这里你可以去看会儿电影,编译完成后会有一些警告,不用管,只要没错误就行!

编译前要选中Build OS菜单下的Clean Before Building,Copy files to Release Directory afer build,Make Run-time Image After Build,至于为什么我也不是很明白,都是一些过来人提供的经验,这个等熟练后慢慢琢磨吧。

还有一种说法是添加一个驱动不用选择Build and Sysgen,这样耗时太长!究竟是怎么弄来着,我忘了,慢慢研究吧。

12)编译成功后找开与.pbxml文件同目录的RelDir/smdk2440_ARMV4I_Release目录,很发现有好多文件,可以找到NK.nb0和NK.bin文件。找这个文件的快速方法是将这些文件以“详细信息”方式显示,然后单击一下“大小”,会将所有文件以大小排序,最大的那个就是了,这样找起来会快些。到这里驱动编写完毕,NK.nb0暂时留用!

13)打开VS2008,新建项目,可以参考天嵌手册的第六章内容,至于添加的代码可天嵌的例程序,这个很简单的。这种小问题自已琢磨!

14)将已生成的NK.nb0通过DNW发送到实验板上,然后运行刚刚写好的VS应用程序就OK了!到现在第一个流驱动编写完毕!

15)以上的代码中好多不用问为什么,初学者直接复制即可,始果想弄明天一些,可以在网上搜索“WinCE 注册表”、“WinCE 流驱动”等关键字。

1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值