Introduction, characteristics and cutting methods and ideas of embedded uboot

First, uboot introduction

U-Boot, the full name of the Universal Boot Loader, is an open source project that evolved from FADSROM, 8xxROM, and PPCBOOT in compliance with the GPL.

In terms of operating system, U-Boot not only supports the booting of embedded Linux systems, it also supports NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android embedded operating system. Currently supported target operating systems are OpenBSD, NetBSD, FreeBSD, 4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS, android.

In terms of CPU architecture, U-Boot supports many other series of processors such as MIPS, x86, ARM, NIOS, and XScale in addition to the PowerPC series of processors.

The U-Boot project is designed to support as many embedded processors and embedded operating systems as possible.
Introduction, characteristics and cutting methods and ideas of embedded uboot

Second, the characteristics of uboot

Uboot features:

1. Open source;

2, support a variety of embedded operating system kernel, such as Linux, NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android;

3. Support multiple processor series, such as PowerPC, ARM, x86, MIPS;

4. High reliability and stability;

5, highly flexible function settings, suitable for U-Boot debugging, different operating system boot requirements, product release, etc.;

6, a wealth of device driver source code, such as serial port, Ethernet, SDRAM, FLASH, LCD, NVRAM, EEPROM, RTC, keyboard, etc.;

7. Rich development and debugging documents and strong network technical support;

Third, embedded uboot cutting

The main method of u-boot reduction is to reduce the executable code size by removing unnecessary commands. For example, if network-related functions are not required, all network-related commands can be deleted, which can save considerable flash space. Generally, the size of u-boot is about 100k. By deleting the command (if you delete the network-related commands), you can reduce it to 64k or less, and only keep some frequently used commands.

In addition, if you need to dynamically modify the environment variables, the environment variables also need to be assigned a separate flash sector for saving. This requires approximately 64k+64k of flash space. If we don't need to dynamically modify the environment variables, we can save the flash overhead of a sector.

Here are the basic steps for me to cut u-boot:

1, delete the command other than the default command:

Delete the definition of CONFIG_COMMANDS in include/configs/naribf533.h and sample the default command directly. You can cut the u-boot from 108k to 79k. 2, delete other unneeded commands, only keep common commands:

Further reduce the u-boot command by modifying the CFG_CMD_NONSTD constant in include/cmd_confdefs.h. CFG_CMD_NONSTD is a "non-standard" command. Except for the commands defined by this constant, the rest are common commands. We can reduce the number of default commands by adding unnecessary commands to this constant. We only keep the following commands here, and the rest are all cut:

- alias for 'help'autoscr - run script from memorybase - print or set address offsetbdinfo - print Board Info structurebootm - boot application image from memorycmp - memory compareconinfo - print console devices and informationcp - memory copycrc32 - checksum calculationecho - echo args to consoleerase - Erase FLASH memoryfl - flush a file to FLASH memoryflinfo - print FLASH memory informationgo - start application at address 'addr'help - print online helploadb - load binary file over serial line (kermit mode)loads - load S-Record file over serial lineloop - Infinite loop on address rangemd - memory displaymm - memory modify (auto-incrementing)mtest - simple RAM testmw - memory write (fill)nm - memory modify (constant address)oc - over clockingprintenv- print environment variablesprotect - enable or disable FLASH write protectionreset - Perform RESET of the CPUrun - run commands in an environment variablesavee Nv - save environment variables to persistent storagesetenv - set environment variablessleep - delay execution for some timeversion - print monitor version

In the end, uboot can be reduced to 63k.

3. Modify the console return information and environment variables: modify the storage sector address of the environment variable, and delete the useless environment variables or modify them to correspond to the environment variables of our development board. Modify some consoles to return information accordingly.

4. If you do not modify the environment variables dynamically, it is recommended to delete the saveenv command to avoid accidentally erasing the u-boot program.

Speaker connectors

Speaker Connectors,Pro Audio Speaker,Audio Speaker Audio System,Tweeter Speaker 20W

NINGBO BOILINGSOUND ELECTRONICS CO.,LTD , https://www.tweeterspeaker.com