nk.bin和nk.nb0

2024-03-06 00:38
文章标签 bin nk nb0

本文主要是介绍nk.bin和nk.nb0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

nk.bin和nk.nb0都是CE的镜像。然而,我们在下载的过程中常常会遇到,有时候下载nk.bin,有时确是下载nk.nb0,这两者到底有什么区别呢? 

首先,NK.BIN中的内容是被压缩过的,NK.NB0中的内容是没有压缩的。 
两者大小的区别是因为在生成过程中BIN会将你设定的后面的NULL自动去掉,而NB0就不会。 
NB0的大小就是第三个变量ROMSIZE所设置的大小。 
由于nk.nb0是非压缩的数据,里面的数据就是NK展开以后在内存里面的数据。 
而nk.bin是有压缩的数据,里面的数据是压缩以后类似于成块形的数据,被loader拷贝到内存以后没有区别。 
由于bin文件需要解压,因而其下载方式也不一样, 
通常,通过串口直接下载用nb0,pb下载用bin。 

其次,nk.nb0是可以直接烧到FLASH/ROM中的,是代码镜像,可以直接跳转到其入口执行。 
而nk.bin是Microsoft binary image格式的文件,必须按其格式定义解开到其指定的地址空间的位置才能执行。
这里提到的bin是一种二进制镜像格式,以片断(section)为单位组织数据,每个片断都包括一个头,头里指定了起始地址,长度,校验值。Platform Builder调用工具将WINCE内核所有文件以bin格式合并成一个文件,默认文件名为nk.bin。BootLoader又以同样的格式将nk.bin分解成多个文件放到RAM中。可以在命令行中键入“viewbin nk.bin”来查看bin文件中具体包括了哪些内容。键入Cvrtbin命令转换.bin格式文件为.sre格式或者.abx格式。 
nb0格式是原始的二进制镜像,它不包括头,一般情况下将内核下载到设备的RAM中运行都采用nb0格式。要生成nbx格式的文件,需要在相关.bib文件中确定如下值:ROMSTART、ROMWIDTH、ROMSIZE。
 
备注:
在config.bib文件中,有如下三个设置: 

ROMSTART=xxxx 
ROMWIDTH=xxxx 
ROMSIZE=xxxxxx 
这3个变量必须被赋值.
 
另外,Bootloader可以支持下载NB0也可支持下载BIN,一般的做法是对于NB0的文件下载后直接烧到flash上,对于BIN的文件下载后解压然后烧到Flash上 
其实也可以做成BIN烧到Flash上,然后起动的时候Load出来后再解压,但这样会加长起动时间,这种方法只会用在Flash空间不够的情况。

这篇关于nk.bin和nk.nb0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/778324

相关文章

Python: #!/usr/bin/python3 #!/usr/bin/env python3

只能放在第一行,第二行就没有效果了。 1. 路径不同 #!/usr/bin/python3&& #!/usr/bin/env python3写在脚本语言第一行的目的是 想要以什么可执行程序去运行这个文件中的代码。 #!/usr/bin/python3是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python3解释器; #!/usr/bin/env python3这种用法是为了

出现 E: Sub-process /usr/bin/dpkg returned an error code (1) 解决方法 (全面分析)

目录 前言1. 问题所示2. 原理分析2.1 第一阶段2.2 第二阶段 3. 解决方法4. 彩蛋4.1 错误不提示,直接卸载4.2 卸载后还是无错误提示 前言 3年前遇到过一个类似的,但是轻松解决,推荐阅读:ubuntu:E: dpkg was interrupted, you must manually run ‘sudo dpkg --configure…解决方法 这回发

Windows bat脚本学习七(从hex文件中获取bin大小)

一、简介          有关hex文件的介绍,直接参考这篇文章:Hex文件解析_hex文件详解-CSDN博客 二、代码         废话不多,直接上代码: @echo offchcp 65001setlocal enabledelayedexpansionset code=0123456789ABCDEFset hex_file=origin.hexif exist %hex

exec: /opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found

ubuntu 使用arm-linux-gcc提示,明明工具存在,而且环境变量也设置好了 /opt/FriendlyARM/toolschain/4.4.3/bin//arm-linux-gcc: 15: exec: /opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found   file /opt/

FISCO BCOS 控制台 console solidity合约编译工具 生成abi bin java文件

下载控制台 https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/console/console_of_java_sdk.html   # 若控制台版本小于v2.8.0,脚本sol2java.sh的使用方法如下:$ bash sol2java.sh -h# Compile Solidity Tool./s

/usr/bin/ccache: invalid option -- 'E'

编译包含CUDA的OpenCV 时遇到问题 [ 1%] Built target proto[ 1%] Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile.dir/layers/cuda_compile_generated_split_layer.cu.o/usr/bin/ccache: invalid opti

【QNX+Android虚拟化方案】105 - 如何替换 NON-HLOS.bin 中的 Wifi Firmware 固件

【QNX+Android虚拟化方案】105 - 如何替换 NON-HLOS.bin 中的 Wifi Firmware 固件 1、提取 NON-HLOS.bin 中的 Wifi Firmware 出来2、把提取出来的 wifi 固件放到代码中3、重新打包生成 NON-HLOS.bin4、将生成的 NON-HLOS.bin 与 老的 NON-HLOS.bin 对比5、使用fastboot 下载测

【Centos】制作一键安装包.bin 文件

【Centos】制作一键安装包.bin 文件 1. 安装 Makeself2. 制作第一个Bin文件3. 执行 .bin 文件 在某些场景下,我们希望将一系列安装的动作打包在一个 .bin文件里面,在新的环境安装部署时,直接使用 .bin 文件来无脑部署。这时候就可以将安装所需要的步骤和文件打包成一个 .bin 文件,在新服务器上执行 ./xxx.bin 来进行无脑安装。

-bash: ./log.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录

这个错误通常是由于脚本文件中的换行符格式不正确。你可以使用以下方法解决: 转换换行符格式: 使用 dos2unix 工具将脚本文件中的 CRLF(Windows 风格)换行符转换为 LF(Unix 风格)dos2unix log.sh 手动修复: 使用 sed 命令来删除不必要的 ^M 字符: sed -i 's/\r$//' log.sh 或者在编辑器中(如 vim)打开脚本,并使用 :

执行hadoop中bin操作时报错:Operation category READ is not supported in state standby

在hadoop执行操作的时候报错如下:   从报错中可以分析出错误:其中Operation category READ is not supported in state standby   原因:配置了Hadoop HA,启动了一个hadoop NameNode时而启动的NameNode为standby状态。   查看nn1状态:   解决方法:将standby状态手动改为act