introduction
Faraday Technology's FIE8100 SoC platform is a low-power, portable SoC platform for developing video-related applications. It can also be used for SoC design verification based on the FA526 CPU.
Based on the Linux software development kit of FA526, developers can install and implement the Linux-2.4.19 software environment on the FIE8100 platform, and complete the driver installation of all IPs on the platform and the internal debugging of FA526.
FA526 Introduction
FA526 is a 32-bit RISC processor with a wide range of uses. It includes a synchronous CPU core, independent instruction/data cache, independent instruction/data scratchpads, a write buffer, a memory management unit and a JTAG online emulation (ICE) interface. The CPU core is a 6-stage pipeline Harvard structure, including instruction fetch, decode, shift, execution, data memory access, write back, etc. In order to improve the overall performance, the FA526 CPU also includes a branch operation cache (Branch Target Buffer: BTB), which can reduce the overhead (penalties) of branch operations.
The instructions of the FA526 CPU core are compatible with the ARM V4 structure and use the AMBA AHB interface to communicate with external devices. Therefore, the FA526 CPU has a wide range of applications, especially for those that require high performance and low power consumption. The FA526 CPU core adopts a fully synchronous method. Its structure based on a single-phase clock can be easily integrated and developed into a system-on-chip (SoC). The block diagram of the FA526 CPU core is shown in Figure 1.
FIE8100 SoC Platform Introduction
The system architecture of the FIE8100 SoC platform is shown in Figure 2. It provides a variety of peripheral interfaces. Its internal high-performance processor core and power management functions are particularly suitable for the market requirements of MPEG-4 and JPEG. Currently, the format supported by Faraday's MPEG4/JPEG codec is Simple Profile Version 3.1, which includes XviD encoding and a part of DivX encoding.
The FIE8100 SoC platform includes a wide range of functional modules to support a variety of applications, including FA526 (32-bit RISC CPU), MPEG-4/JPEG codec engine, USB2.0 device controller, USB2.0PHY (physical layer), LCD controller, DMA controller, TV Encoder, Capture, and AMBA bus architecture. In order to allow users to run their own IP or functional modules on FA526 smoothly, Faraday Technology pulled the AHB bus out of the CPU lead and matched it with various interfaces and off-chip chips to develop a simulation platform based on FIE8100 SoC: MediaCreative!.
Linux installation based on FA526
The main development hardware environment required for this development system is, first, an Intel x86-compatible PC and second, a standard 16550 UART interface. The software is mainly the Linux operating system (RedHat 7.3-8.0 or higher) and the FA526-Linux software package. The components required for the general platform system are mainly a MediaCreative! (including FIE8100/FWAB326AA chip) and a 64 MB SDRAM and 32 MB Flash.
FA526-Linux allows the Linux-2.4.19 software environment to be installed on the Faraday FA526 processor and peripheral IP.
The FA526-Linux software package is usually packaged and submitted as "arm-linux-20050429.tgz" (this program was released on April 29, 2005). Table 1 lists the hard disk space required to install Linux.
The specific process of installing the FA526-Linux software package is as follows:
(1) Copy the file arm-linux-20050429.tgz to the directory /usr/src:
#cp arm-linux一20050429.tgz/usr/src
(2) Unpack the file "arm-linux-20050429.tgz":
#cd /usr/src
#tar zxvf arm-linux一20050429.Tgz
(3) Install Toolchain (GCC 2.95.3, Binutils 2.11.2, GLIBC 2.2.3) to the directory /usr/local:
#cp /usr/src/arm-linux/toolchain/arm-linux-toolchain.tgz/usr/local/
#cd /usr/local
#tar zxvf arm-linux-toolchain.tgz
#rm-f arm-linux-toolchain.Tgz
This step will unpack the output files of GCC-2.95.3, Binutils-2.11.2, and GLIBC-2.2.3 in the directory /usr/local/arm.
(4) Add the GCC execution path shell environment.
To add a path, execute the following command:
#export PATH=$PATH:/usr/local/arm/2.95.3/bin
After completing the above four installation steps, you can unzip the package file (such as arm-linux20050429.tgz) in your own system, and then the system will automatically generate a set of directories. Table 2 lists the definitions of these source directories. The user's application is contained in the directory /usr/src/arm-linux/user/, and the customer-customized RAM-Disk is contained in the directory /usr/src/arm-linux/images/.
FA526-Linux Construction and Development
When configuring and building the FA526-Linux kernel in an embedded system, if the FA526 Linux kernel subdirectory path is: /usr/src/arm-linux/arm-linux-2.4.19/, then the structure of the FA526-Linux directory will be the same as the standard Linux kernel, and its version is 2.4.19. Table 3 lists the contents of the Linux kernel subdirectory.
Kernel build
When generating a kernel image for the FA526 architecture, the kernel must be configured first. The configuration file path is /.config.
Usually, users may need to reconfigure FA526-Linux for the following reasons. The specific methods are as follows:
(1) Customize the functions of the processor and board: modify the UART clock, system clock, etc.
(2) Customized hardware devices: add or delete certain special devices.
(3) Customizing kernel functions: adding or removing kernel functions (such as network support).
The Linux kernel configuration provides two common ways to configure these optional items: one is to use the menu display to select items (#make menuconfig); the other is to use the GUI display to select items (#make xconfig).
Figure 3 shows the menuconfig interface of FA526-Linux for FA526 and CPE development board.
The main options in the FA526 system are as follows:
(CPE)ARM system type, the default value is the CPE development board to support Faraday CPE (Common Platform Environment).
[*]Support FA526 processor, set FA526 series processor options to support FA526 CPU.
(FIE8100)Platform environment Select the platform setting from A320, FIE8100, and FIE7000.
(44000000) System clock, the default value of FIE8100 is 44 MHz. Developers should adjust it according to the actual board settings.
(22118400)UART clock. The UART clock of FIE8100 is 22.184 MHz. Developers can set the UART clock frequency according to the actual board settings.
It should be noted that when you make the Linux kernel for the first time, you can clear all target files and recreate the dependency files. If you want to modify the kernel configuration, you can call "make dep". The steps are as follows:
#make clean
#make dep (FA526-Linux provides a kernel script file (shell-script) "mkbootp.sh", which can make Make kernel easier.)
#./mkbootp.sh
The above operation can create a final kernel image file named bootplmage and a kernel ELF file named vmlinux. The following operation is an example of modifying mkbootp.sh:
(1) Use a custom ram-disk to modify "make bootpImage INITRD=" for a special ramdisk. You can modify the "Default RAM disk size" to suit the size of the ramdisk (see Figure 4). You can set this in the "Block devices" configuration interface using "make xconfig".
(2) Copy the output image to a specific directory:
Modify the "cp" line in the mkbootp.sh file to suit your needs.
The content of Mkbootp.sh is:
"make hootpimage INITRD=/usr/src/arm-linux/images/ramdisk.gz''
"cp arch/arm/boot/bootpImage/tftpboot/mbootpImage"
Building ARMBOOT
FA526-Linux uses ARMBOOT to load the operating system. FA526's ARMBOOT uses a configuration file called "faraday.h" to configure various hardware environments. This file is placed in /usr/src/arm-linux/armboot-1.1.O/faraday.h. Its modifiable contents and values include (usually no need to change):
Modify the system clock. For MediaCreative! platforms, its default value is 44 MHz.
Modify the UART clock. For MediaCreative! platforms, it should be 22.1184 MHz.
Change the Flash block number. For the MediaCreative! platform, the Flash block number is 1.
After modifying the MAC and IP, you can create ARMBOOT using the following command:
#cd /usr/src/arm-linux/armboot-1.1.0
#make
At this point, the system will automatically generate the "armboot.bin" file in the directory. After that, you can use this command to burn armboot into the Flash device of FIE8100 and write the specific image file armboot.bin to the Flash address 0x80400000.
Boot FA526 Linux via ARMBOOT
In many parts of the development phase, developers must do preliminary planning to modify or download code until they get the desired results. In this case, the specific steps required for armboot to download and run the code are as follows:
(1) Set up a trip server on the Linux host and set up /etc/xinetd.d/tftp.
(2) In this state, use the Linux making shell (mkbootp.sh) to compile the code and generate the Linux code to the directory /tftpboot. To run the Linux code, follow the steps below:
Restart the FIE8100 development board (MediaCreative!).
Select "90) GO ARMB00T".
Confirm that the IP addresses of Linux-Host and F1E8100 are correct (printenv).
Enter the command: tftp Ox2000000 mbootplmage to download the code.
Start Linux through the command "go Ox2000000" until the Linux startup information appears.
Use of Linux
After completing the above operations, armboot can be burned into the Flash on the MediaCreative! development board. In the future, to run the Linux operating system through armboot to develop and verify the FIE8100 platform, you can do the following:
(1) Turn on the MediaCreative! development board and run "MPEG4 Burnin" to make the Linux operating option appear on the system;
(2) Press the "Space" key to enter the Linux operating system.
Conclusion
The above introduction introduces the 32-bit RISC processor compatible with the ARM V4 instruction set and the Linux operating system of the SoC platform through the design and use of Zhiyuan Technology's FIE8100 SOC platform. It has the advantages of low power consumption and portability. Developers can install and implement Linux--2.4.19 software on the FIE8100 platform and conduct secondary development and verification.
Previous article:Distributed video surveillance system for vehicle rear-view scenes
Next article:Introduction to ARM Compiler
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- How to read and decode the PPM signal of the RC remote control
- 【TouchGFX Design】graph waveform drawing
- C5000 compiles SUBC instruction to implement division
- [Project source code] Verilog language routine "Wang Jinming: "Verilog HDL Programming Tutorial""
- Recommend a micropython development software thonny
- Understanding design engineers from a system perspective
- [SC8905 EVM Evaluation] +Discharge Output Voltage Regulation
- Recruiting energy storage hardware engineers
- Please analyze the diode in this circuit.
- National Chip 1 at TaoTaoMu Exhibition: Qinheng Beauty Chapter "Bluetooth 5.1 Chip & RISC-V Series MCU"