The S3C2410 is a cost-effective microprocessor developed by Samsung for use in embedded systems. It is a 16/32-bit RISC processor based on the ARM9TDMI core and operates at a maximum clock speed of 200MHz. One of the key features of the Linux operating system is its device file concept, which allows serial port operations to be treated like standard file I/O, making it very convenient for developers working with embedded systems.
The first step in setting up the system involves installing the Linux environment. During the installation process, users are prompted to select their preferred language, keyboard layout (typically defaulting to US), and the installation source (such as a local CD-ROM). The image above shows the initial welcome screen of the Red Hat installation interface.
After the installation, the user can use Disk Druid to create a Linux file system and then set up the development board using a PC. The following commands are typically used to write the kernel and root file system to the board:
Once the system is written, the development board should be powered off, and an LCD panel connected. Upon restarting, the QT calibration program will appear on the screen, and after calibration, the QT graphical interface will be accessible.
Next, we explore the U-Boot startup procedure and related processes. U-Boot is an open-source bootloader originally derived from PC-Boot. It plays a critical role in initializing the system environment and copying the boot code into SDRAM to prepare for the Linux kernel. U-Boot is divided into two stages based on how it implements its functions, and it can be adapted to other development boards through configuration changes. This makes it highly versatile, not only for the S3C2410 but also for future research on different platforms.
This article uses the widely used version of U-Boot -1.1.6 as an example to explain the boot process and porting procedures.
In the early phase of U-Boot execution, the ARM processor starts from the physical address 0x00000000 upon power-on or reset. This is also where the first Flash storage block begins, and U-Boot is stored here. The first stage is implemented in assembly language, focusing on quick and precise hardware initialization. The workflow is illustrated below.
During this phase, U-Boot initializes the boot environment, prepares hardware components such as the serial port, network interface, and Flash, and loads the kernel and root file system into RAM before executing the kernel.
In the later stage of U-Boot operation, once the system environment is initialized, the bootloader transitions to the second stage. This part is implemented in C language, allowing for more complex functionality and better readability. The function _start_armboot() serves as the entry point for the execution of the loaded image.
(1) Essential Initialization in U-Boot: The system must initialize at least one serial port to communicate with the user, displaying system information and menus. It also initializes the timer for countdown functionality and sets up the Flash, registering its operations for read/write access. U-Boot can receive binary files via the Kermit protocol from a host, store them in SDRAM, and then erase and program the NORFlash AM29LV160DB. The subsequent steps are shown in the figure below.
(2) Downloading the Linux OS via TFTP: U-Boot supports TFTP for fast network-based downloads, significantly reducing the time required compared to the Kermit protocol. This method simplifies debugging for embedded applications. TFTP uses UDP over IP, and each packet includes a local media header, IP header, UDP header, TFTP header, and data. The TID (Transaction ID) acts as a port number, ranging from 0 to 65,535, and the TFTP header contains two bytes indicating the packet type, enabling proper handling of the transfer.
Finally, the U-Boot porting process involves adapting it to different hardware configurations. This includes adding board-specific files, configuring U-Boot, and compiling the firmware. U-Boot version 1.1.4 supports the SMDK2410 board, which uses the same S3C2410 chip. Therefore, SMDK2410 is used as a reference for porting, and the necessary files for the target board are added accordingly.
1. Setting up the target board directory under the board/ folder: Since U-Boot supports multiple boards, developers can find similar models and make adjustments. In this case, the SMDK2410 is used as a template.
2. Creating the S3C2410 directory and files, and modifying the Makefile: A new directory named board/S3C2410 is created to hold the board-specific files.
3. Modifying the smdk2410.h file to adjust the software and hardware settings of U-Boot, including enhancing the PING command functionality.
KW4-Double Pole Miniature Micro Switch
Features
â—† Small Compact Size,Global safety approvals
â—† Variety of lerers
â—† Multi circuit function
â—† Long life & high reliability.
â—† Wide Range of wires Terminals.
â—†Variety of actuator and terminals
â—†Customized Designs
â—†Widely used in household appliances, electric force, telecommunications, machine tool, vessel, textile, printing, Mining machine, Mustic Instrument, etc.
Double Pole Micro Switch,Double Pole Miniature Micro Switch,Double Pole Subminiature Micro Switch,Double Pole Double Throw Micro Switch
Ningbo Jialin Electronics Co.,Ltd , https://www.donghai-switch.com