PB5.0 无法生成 NK.BIN

本文记录了作者初次尝试使用PB5.0搭建WINCE5.0模拟器的过程及遇到的问题。主要问题在于编译过程中出现的错误提示,包括找不到nlscfg.inf文件和编译生成的NK.BIN失败等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      今天真是够郁闷的

    第一次接触PB5.0,想先在模拟器上体验一下WINCE 5.0,谁知道搞了一下午竟然没能搞出来,我的步骤是这样的:File->New Platform->Next->给工程命名->选择BSP(EMULATOR X86)->选择模板(Mobile Handle)->后面全是默认,一路NEXT,直到->Finish.建立好以后就该设置了,首先Build OS ->Set Active configuration ->Emulator Debug;

初步设置好以后就开始编译了Sysgen,大约经过10分钟左右的时间编译完成。接着还有再设置一下,Target->Connectivty options->Download->Emulator->OK。然后再打开Target菜单->Attach Devices.按照教程说这样就出现模拟器的界面了,可是等了一下出现了如下的错误信息提示:

makeimg: Creating <...> nlscfg.out because <... > nlscfg.inf doesn't exist.
makeimg: run command: fmerge -nls <....> nlscfg.out <... > nlscfg.inf

Error - cannot open input file C<...> /postproc/nlscfg.inf fmerge for Windows CE (Release)
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).

第一个错误比较容易解决,在PB的Menu/ Build OS/ Copy files to release directory手动复制一次,即解决了找不到nlscfg.inf 文件的错误。重新编译,苦苦的等待以后还是出现了:

makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).

      郁闷!然后接着百度+Google 寻找解决问题的办法,网上大概有二种说法:一种是说编译的内核镜像大于了30M,需要在Platform的setting里面设置,即在Bulider options里选择“镜像可能大于30M”的选项。第二种说法是安装的PB5.0 版本过期了,要重新安装,我觉得这是扯淡,我的PB5.0是刚刚安装的,应该不会过期的。仔细分析一下错误,发现这些错误提示是因为不能生成最终映像造成的,也就是说问题归根到底是不无法生成NK.BIN。我觉得这个问题应该还是有些设置没有设置正确导致的。明天请教一下高手,解决了与大家分享。

    郁闷的一天啊

<think>我们正在处理用户关于丢失固件文件 firmware.pb 和 g_version.bin 的问题。根据用户提供的引用信息,这些文件可能与PX4固件构建或触控屏固件(如gt9xx_firmware)有关。但是,用户没有提供直接的下载链接或生成方法,因此我们需要基于常见情况给出解决方案。 首先,firmware.pb 可能是协议缓冲区格式的固件文件,而 g_version.bin 可能是版本信息文件。这些文件通常由设备制造商提供,或者在某些构建过程中生成。 根据引用[3],提到了一个头文件 `gt9xx_firmware.h` 和自动更新固件的功能,这暗示这些文件可能与触控屏固件(例如Goodix触控屏)有关。因此,我们可以尝试以下方法: 方法1:从原始源代码中恢复 如果这些文件原本存在于项目中,可能是被误删了。可以尝试以下步骤: 1. 使用版本控制系统(如Git)恢复文件:`git checkout -- path/to/firmware.pb` 和 `git checkout -- path/to/g_version.bin`(如果项目使用Git管理)。 2. 如果项目在构建过程中生成这些文件,可以尝试重新构建整个项目。例如,在PX4项目中,重新构建可能生成这些文件。 方法2:从官方仓库获取 如果这些文件是标准固件文件,可以从官方仓库中获取: 1. 对于PX4固件,检查 `Firmware/Tools/sitl_gazebo` 目录或相关子目录(参考引用[1]和[2]中提到的路径)。 2. 对于触控屏固件(如Goodix),检查驱动程序的firmware目录(通常在Linux系统中位于`/lib/firmware`)。例如,`g_version.bin` 可能是Goodix触控屏固件的一部分,可以尝试在Linux内核的firmware仓库中查:https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/ 方法3:重新生成 如果这些文件是在构建过程中生成的,需要确保构建环境正确并且所有依赖已安装。例如,引用[2]中提到了一个构建错误,通过安装`libgstreamer-plugins-base1.0-dev`解决。因此,确保构建环境完整,然后重新构建。 方法4:从其他设备或备份中获取 如果上述方法都不可行,考虑从相同型号的设备或备份中复制这些文件。 由于用户没有提供具体的项目背景,我们给出一般性建议。如果用户能提供更多信息(如这些文件属于哪个项目),我们可以给出更具体的指导。 相关问题: 1. 如何检查Linux系统中的固件文件? 2. 如何为Goodix触控屏更新固件? 3. PX4固件构建过程中常见的固件文件丢失问题如何解决?</think>针对丢失的固件文件 `firmware.pb` 和 `g_version.bin` 的问题,以下是解决方案和获取途径: ### 解决方案 1. **从官方源码库获取** - 这些文件通常属于特定硬件(如触控屏或飞控)的固件包。 - **操作步骤**: ```bash # 克隆官方固件仓库(示例:Goodix触控屏) git clone https://github.com/linux-kernel-firmware/linux-firmware.git cd linux-firmware # 搜索文件 find . -name "firmware.pb" # 或 g_version.bin ``` - 若到文件,复制到设备固件目录:`/lib/firmware/` 或项目指定路径[^3]。 2. **重新生成固件文件** - 若文件是编译生成的(如PX4项目): - 确保依赖完整(参考引用[2]): ```bash sudo apt-get install libgstreamer-plugins-base1.0-dev ``` - 重新编译项目: ```bash cd /path/to/Firmware make clean make px4_sitl_default # 根据实际目标调整 ``` - 编译后文件通常生成在 `build/` 子目录中。 3. **从设备备份恢复** - 若文件来自硬件设备(如触控屏): - 连接设备到Linux系统,检查 `/sys/firmware/devicetree` 或 `dmesg | grep firmware` 获取线索。 - 从同型号设备复制文件(需root权限)。 4. **联系硬件供应商** - 直接向硬件制造商请求固件文件(提供设备型号和版本号)。 --- ### 常见场景分析 | **文件类型** | **来源** | **典型位置** | |--------------------|--------------------------|--------------------------| | `firmware.pb` | 协议缓冲区格式的固件 | `/lib/firmware/` 或编译目录 | | `g_version.bin` | 版本控制文件(如触控屏) | 设备驱动目录或供应商提供 | --- ### 相关问题 1. 如何检查Linux系统中缺失的固件文件? 2. 编译PX4固件时出现文件丢失错误如何解决[^2]? 3. 如何为Goodix触控屏手动更新固件[^3]? [^1]: 编译命令参考 `/home/guo/PX4/Firmware/build/px4_sitl_default/build_gazebo` [^2]: 依赖安装解决编译错误:`sudo apt-get install libgstreamer-plugins-base1.0-dev` [^3]: 固件自动更新宏定义:`#define GTP_HEADER_FW_UPDATE 0`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值