PB5.0 features/sysgen参数和ceconfig.h中宏定义的对应关系

labview中DAQ采集多个数据通道(温度传感器)(TTL信号的曲轴位置传感器)总结 文章目录前言一、面对的问题篇二、问题解决篇三、后续工作总结 前言 我研一的项目利用labview软件和NI数据采集卡采集发动机传感器的信号然后进行采集,发动机传感器是有很多种的,所以难以避免的需要采集多个通道的传感器信号。 一、面对的问题篇 前篇已经写道我已经将温度传感器的信号采集出来,也可以将其数据进行信号处理,由电压信号转变为温度值。但是想要采集多个通道的信号,加上TTL信号的曲轴位置传感器,我模仿温度传感器采集的程序另加了一个DAQ助手进行采集。也就是如图所示的程序: 但是这个程序不能正常显 阅读详情

使用PB建立一个wince image之前先要建立一个workspace来控制除OEM BSP之外的所有的image的属性,包括的内容等等。这些内容主要是通过PB的catalog来管理的,通过PB的viewàcatalog打开的视窗,我们从全部的window ce的可选组件中选择我们需要的加入到workspace中,这样的话我们sysgen出来的image就具备了相应的功能。从catalog的视窗中,我们可以通过查询任意一个组件的属性来获得它唯一对应的一个sysgen_开头的变量。但是这些变量并不能直接用来在runtime的情况下用于判断image具备哪些组件。在实际的运用中,AP可以#include一个名为“ceconfig.h”的头文件,这个头文件里面都是类似”CE_MOULDLE_*** SHELL_MODULES_*** COREDLL_****”之类的宏定义,这些宏定义可以直接被AP用来判定image内是否具备其需要的一些组件,比如MFC,AYGSHELL等等。Ceconfig.h是在sysgen的阶段自动由系统的批处理生成的,由于ceconfig.h的重要性,所以有必要搞清楚通过PB的catalog生成的sysgen_环境变量是如何和ceconfig.h内部的宏对应起来的。

       首先从PB开发环境的OSDesignView中修改的feature将直接反映到以sysgen_开头的环境变量中,为了验证有哪些sysgen_已经被设置,可以执行Build OSàOpen release directory进入命令行模式,然后执行“set sysgen”命令,就可以看到所有的sysgen_XXX的环境变量了。这些环境变量是属于桌面windows的,可以dos下或是bat批处理文件中使用。由于dos下的命令也是支持一些条件判断语法,如IF ELSE等指令,所以利用dos批处理文件就可以根据既有的环境变量做进一步的处理了。

 

       现在来介绍微软是如何利用bat批处理对sysgen_环境变量做转换,变成cecongfig.h中的宏定义的。

首先来看cesysgen.bat,这个批处理文件每次在Build OsàSysgen的时候会被调用,其位于“D:/WINCE500/PUBLIC/CEBASE/OAK/MISC”(假设wince500安装在D盘)。

在这个目录下你可以看到很多bat文件:

D:/WINCE500/PUBLIC/CEBASE/OAK/MISC 的目录

cebase.bat、cesysgen.bat、datasync.bat、dcom.bat、directx.bat、gdiex.bat、ie.bat、netcf.bat、netcfv2.bat、rdp.bat、script.bat、servers.bat、shell.bat、shellsdk.bat、speech.bat、sqlce.bat、sqlmobile.bat、viewers.bat、voip.bat、wceappsfe.bat、wceshellfe.bat、winceos.bat

后面我们会知道,其他的bat批处理文件都会被cesysgen.bat调用到的。

调用“D:/WINCE500/PUBLIC/CEBASE/OAK/MISC >cesysgen report”的时候,你可以看到一些类似ceconfig.h中的宏定义的字符串:

Report:

SYSGEN_ASYNCMAC=1

SYSGEN_AS_BASE=1

SYSGEN_AUDIO=1

…….. 省略

CE_MODULES=coredll nk msim commctrl commdlg rsaenh ….. 省略 (和ceconfig.h中的CE_MODULES_XXX一一对应——config.hmctrl commdlg rsaenh ...)

COREDLL_COMPONENTS=coremain lmem showerr thunks correct ….. 省略(和ceconfig.h中的COREDLL _XXX一一对应——config.hmctrl commdlg rsaenh ...)

……

这说明,在这个批处理里面已经有了sysgen->宏定义的转换了。

用ultraedit打开cesysgen.bat,跟踪report参数,可以走到113行,看到下面的命令:

113 :doReport    #标号

114 echo Report: #语句显示Report

115 set SYSGEN #显示所有的sysgen_环境变量

116 if "%__IN_BLD_RECURS%"=="1" set SYSGEN >%_WINCEROOT%/__BLD_RECURS_DEP.txt

117 set SYSGEN >%_WINCEROOT%/public/%_TGTPROJ%/__CEBASE_FEATURES.txt

117 for %%f in (%_DEPTREES%) do call :CallProjFile %%f report

主要看117行,这里是一个for循环,f是变量,%_DEPTREES%是f可以取值的范围,这个语句将%_DEPTREES%中的每个字符串作为参数传递给CallProjFile子函数(批处理标号)。为了了解%_DEPTREES%中有那些字符串,可以执行echo %_DEPTREES%,你会看到类似下面的一串字符:

winceos dcom gdiex ie script servers shellsdk shell rdp wceshellfe wceappsfe viewers directx voip datasync netcf SQLCE ostest speech NETCFV2 SQLMOBILE PROJECTNAME

基本上,上面的字符串和D:/WINCE500/PUBLIC/CEBASE/OAK/MISC目录下的每一个bat文件是一一对应的。 而且大致可以看出,它们的名字就是wince所有组件归类之后的组名。

跟踪到:CallProjFile标号,大概在156行,有如下内容:

:CallProjFile       

    if not exist %__CESYSGEN_PATH%/%1.bat goto :CPF_NotCE

        call %__CESYSGEN_PATH%/%1.bat %2 %3 %4 %5 %6 %7 %8 %9

        goto :EOF

   :CPF_NotCE

 

    if not exist %_PUBLICROOT%/cebase/oak/misc/%1.bat goto :CPF_NotCE2

        call %_PUBLICROOT%/cebase/oak/misc/%1.bat %2 %3 %4 %5 %6 %7 %8 %9

        goto :EOF

    :CPF_NotCE2

 

    if not exist %_PUBLICROOT%/%1/cebasecesysgen.bat goto :CPF_Unknown

        call %_PUBLICROOT%/%1/cebasecesysgen.bat %2 %3 %4 %5 %6 %7 %8 %9

        goto :EOF

    :CPF_Unknown

    if /i "%___PUBLICPROJECT%"=="common" if "%_ECHOON%"=="1" echo WARNING: Unable to find project file %1, args %2 %3 %4 %5 %6 %7 %8 %9

    goto :EOF

大致的功能就是到三个路径去寻找 “参数1.bat“ 的批处理文件,如果找到并执行之,首先根据%_DEPTREES%可知,第一个参数是winceos,所以我们在D:/WINCE500/PUBLIC/CEBASE/OAK/MISC下面的winceos.bat会被执行。依次类推,dcom.bat gdiex.bat ie.bat script.bat servers.bat ….这些批处理会顺序执行。

接下来就到了揭开谜底的时候了,打开winceos.bat. 你可以发现有很多类似

if "%SYSGEN_XXX%"=="1" set CE_MODULES=%CE_MODULES% YYY的语句,这XXX和YYY的对应关系就是sysgen_和ceconfig的宏定义之间的关系。

所以类似的,打开其他的.bat文件可以分析其他类别的XXXàYYY的对应了。

这样你可以search到所有的,你想知道的对应关系。

 

引用本文请注明出处:http://blog.youkuaiyun.com/fredzeng

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏) 文章目录6.1 常用控件6.1.1 单选按钮(RadioButton)6.1.2 复选框(CheckBox)6.1.3 框架1. 面板控件Panel2. 分组框GroupBox3. TabControl控件6.1.4 应用实例6. 2 列表框和组合框6.2.1 列表框(ListBox)6.2.2 组合框(ComboBox )6.2.3 应用实例6.3 用户交互界面6.3.1 滚动条和进度条6.3.2 定时器6.3.3 菜单设计菜单设计概述MenuStrip和ContextMenuSt 阅读详情

相关推荐

ThingsBoard入门实战(七):公共发布和 UI 细节修改

公共发布和 UI 细节修改7.细节修改和公共发布一、公共发布二、UI优化下载运行修改三、下一步还可以做什么?更好的UI更丰富的系统模块 7.细节修改和公共发布 GET到新技能了,想给兄弟们演示,需要给他们每个人一个账号么? 答案肯定是:不需要! ThingsBoard 用 公共发布 解决了这个问题。 一、公共发布 首先我们来看一下路灯设备现在在谁名下? 如下图,路灯都是customerA的, 目前只有它和它的租户可以看到,其他人需要看就需要设为公有。 如图操作: 对于设备详情仪表盘,我们也需要设为公有

AIGC搞起 9116

【转载】PB5.0 features/sysgen参数和ceconfig.h中宏定义的对应关系

(正想看sysgen和ceconfig.h 中两个环境变量的关系,自己也找了一些眉目,现在发现有位老兄写了一篇好文章,所以转载过来,好好学习一番!本文来自优快云博客,转载请标明出处:http://blog.csdn.net/fredzeng/archive/2007/10/31/1859418.aspx) 使用PB建立一个wince image之前先要建立一个workspace来控制除...

weixin_33800593的博客 135

实战篇【2】-H3C防火墙开局基础配置

本篇文章为“H3C防火墙开局基础配置”,主要涵盖配置管理地址、聚合端口、安全区域、安全策略、静态路由、ACL,WEB和SSH远程管理、Console、SNMP、NTP时钟、日志主机等内容,对比交换机配置开局,增加两处配置,安全区域和安全策略。方便调试人员远程管理、调试。

weixin_47402139的博客 1万+

不定义大量的消息宏实现事件与处理关联起来(避免写很多消息宏定义和消息映射)

标题也许不恰当,不必在意。本文主要是记录一种 消息(事件)==》消息响应(事件处理)的映射方式,避免使用大量的消息宏定义。 对于传统的win32窗口、或者mfc窗口、或者duilib窗口等,常见的使用场景比如: 工作线程执行某个函数处理=》处理完毕通知主线程(UI线程)=》主线程收到通知做出对应的处理 在这个过程中,通知主线程通常使用PostMessage或者SendMessage等函数来发...

学习并记录 443

【HDR】曝光融合(Exposure Fusion)

在曝光融合(Exposure Fusion)算法问世之前,多曝光序列合成用于显示的HDR需要两个步骤,第一步是将多张不同曝光的低动态范围图像合成为HDR(例如Debevec提出的加权融合方法),通常HDR为12bit或者16bit;第二步是通过tonemapping对高动态范围HDR进行压缩以支持低动态范围显示设备(例如Durand提出的基于双边滤波的tonemapping算法),一般会压缩至8bit。

专注人工智能,主攻CV 1万+

AI驱动芯片设计的端到端验证:AI应用架构师的全流程指南

想象你要建造一座1000层的超级摩天大楼,每个房间都有独特的功能,管道、电路、电梯系统交织如迷宫。传统的检查方式是派1000个工程师逐层逐房手动检查,耗时十年且仍可能遗漏火灾隐患。这就是今天芯片设计面临的困境:7nm芯片含百亿晶体管,相当于百亿个"房间",传统验证方法(人工编写测试用例、随机仿真)已难以应对。本文的目的,是为AI应用架构师提供一份"AI驱动芯片验证导航图",范围涵盖从验证需求分析到芯片签核的全流程,包括AI模型如何融入传统验证工具链、数据如何驱动验证效率提升、以及端到端闭环系统的构建方法。

2501_92132293的博客 1240
上一篇: PB5.0 features/sysgen参数和ceconfig.h中宏定义的对应关系
下一篇: wince6.0编译环境一二三
luixing67
博客等级 码龄19年 54粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值