fastboot如何写入bin文件

发布网友

我来回答

1个回答

热心网友

具体思路如下。

一、上位机实现

1、要能根据APP文件生成boot_data文件;

2、如果考虑加密,可以具有一些加密功能。

bin文件读写:出处https://blog.csdn.net/weixin_42287851/article/details/103759331

 

方法1:

(1)写bin文件

#include <iostream>
#include <fstream>

int main(){

float data[224*224*3];
for(int i=0; i<224*224*3; ++i){
data[i] = i/2.0;
}

// save
FILE *fp = fopen("test.bin", "w");
fwrite(data, sizeof(float), sizeof(data), fp);
fclose(fp);

return 0;
}


(2)读bin文件

#include <iostream>
#include <fstream>

int main(){
float* data = new float[3*224*224];

//read
std::ifstream inF("test.bin", std::ios::binary);
inF.read((char*)data, sizeof(float) * (3*224*224));
inF.close();

std::cout << "read bin file" << std::endl;
for(int i=0; i<10; i++){
std::cout << i << ": "<< data[i] << std::endl;
}
for(int i=224*224*3-10; i<224*224*3; i++){
std::cout << i << ": "<< data[i] << std::endl;
}

return 0;
}


方法2:

(1)写bin文件

#include <iostream>
#include <fstream>

int main(){

float data[224*224*3];
for(int i=0; i<224*224*3; ++i){
data[i] = i/2.0;
}

// save
std::ofstream outF("test2.bin", std::ios::binary);
outF.write(reinterpret_cast<char*>(data), sizeof(data));

outF.close();

return 0;
}


(2)读bin文件

#include <iostream>
#include <fstream>

int main(){
float* data = new float[3*224*224];

//read
std::ifstream inF("test2.bin", std::ios::binary);
inF.read(reinterpret_cast<char*>(data), sizeof(float) * (3*224*224));
inF.close();

std::cout << "read bin file" << std::endl;
for(int i=0; i<10; i++){
std::cout << i << ": "<< data[i] << std::endl;
}
for(int i=224*224*3-10; i<224*224*3; i++){
std::cout << i << ": "<< data[i] << std::endl;
}

return 0;
}

二、下位机实现

1、boot实现

具体实现过程不说了,这里说下注意点,起始地址和大小设置好,然后编译输出bootBin文件。

2、APP实现

具体实现过程不说了,这里说下注意点,起始地址和大小设置好,然后编译输出APPBin文件。

3、用上位机生成bootConfig文件

上面是从Flash读出的配置,下面是生成的配置。

4、合成bin

1)打开 J-Flash,File->open data file,输入boot地址;

2)打开File->merge data file,输入配置地址;

3)打开File->merge data file,输入APP地址;

4)打开File->save data file as,选择HEX格式;

5)用HEX烧写工具即可。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com