How to Make An Uimage(In YOCTO,RDK)?

来源:互联网 发布:淘宝零食销量排行 编辑:程序博客网 时间:2024/05/17 23:18

Thecommand : mkuImage

Question:

1.      Where is it from?

2.      Where will it be used?

3.      What are the contents of it ?

Answer:

1.      mkuimage is a command mainly generated by generate.c & image.h

2.      mkuimage will be used as a command. In our project, we will use it in rdk-generic-broadband-image.bb/bbappend to produce the uImage.

3.      mkuimage -parameters   image_part0   image_part1  image_part2 …  image_partN

Each part mentioned above will be used to build the final uImage.

Details:

The structure of the uImage can be abstracted as following graph 1:


Graph 1.

As can be seen from the graph above that an uImage is an composite, which is constructed by different parts. And each parts has its own parameters, which would be saved in head.

What I want to mention is that, if we want to change the sequence or add one of these parts in uImage, there are two steps we have to take.

A.     Change the parameter sequence of these parts in uImage head.

B.     Update the loaded file sequence in binary uImagefile.

Tips:

1.      When we take step A, we should pay attention to the whole DATA CRC, which could be calculated depending the latest sequence ofparts. Because the whole DATA CRC would be updated each time when calculate the part CRC.

2.      After you revise the parameters that you need saved in the uImage head, in step B you have to take care of is producing the binary output file. You can fwrite/write the data, which fread/read from the file/binary file, into output binary file. (Make sure the file stream pointer is pointing to the right place by fseek(), when you fwrite/fread/write/read.)

0 0