Porting U-Boot-2009.08 to mini2440 Basic Configuration

Publisher:和谐的24号Latest update time:2024-06-24 Source: elecfans Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

1. Environment

Target board: mini2440

u-boot version: u-boot-2009.08

Cross compiler: arm-linux-gcc-4.3.2 Download from http://www.linuxidc.com/Linux/2011-04/34049.htm

Operating System: Linux ( Ubuntu -11.10)

U-Boot source code download address http://www.linuxidc.com/Linux/2011-07/38897.htm

2. Purpose

Build the mini2440 target board environment. Before reading this article, it is recommended to read Embedded System Boot Loader Technology Insider See http://www.linuxidc.com/Linux/2011-12/50389.htm

Steps

1. Download source code

  1. tar –jxvf u-boot-2009.08.tar.bz2


2. Create mini2440 directory and header file

Before that, you must be familiar with the U-boot directory tree. For example, the board directory is where the root board related files (smdk2410.c, etc.) are stored.

Enter the root directory of u-boot

  1. cp -r board/samsung/smdk2410/ board/samsung/mini2440

  2. mv board/samsung/smdk2410/smdk2410.c board/samsung/mini2440/mini2440.c

  3. cp include/configs/smdk2410.h include/configs/mini2440.h

3. Modify the Makefile in the u-boot root directory

U-boot is a good thing, with detailed documentation. Looking at the README [line 227] in the root directory of U-boot, we know that we must configure the target board environment before making.

For all supported boards there areready-to-use default

configurations available; just type"make _config".

Find line 2997 of Makefile, where you can see the configuration for different boards. For example:

  1. smdk2410_config :   unconfig

  2. @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0

After this, we add the following:

  1. mini2440_config :   unconfig

  2. @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 samsung s3c24x0


The above parameters are described as follows.

unconfig: Dependency on unconfig. Executing unconfig actually performs cleanup work.

unconfig:

@rm–f  $(obj)include/config.h$(obj)include/config.mk

$(obj)board/*/config.tmp$(obj)board/*/*/config.tmp

$(obj)include/autoconf.mk$(obj)include/autoconf.mk.dep

ARM CPU architecture (ARCH)

arm920t CPU type, which corresponds to the cpu/arm920t subdirectory

The model of the mini2440 development board (BOARD), which corresponds to the board/samsung/mini2440 directory

Samsung developer/vender. The parent directory of the new development board project directory. If you create a new development board project directory directly under board, this will be NULL.

s3c24x0 System on Chip (S0C)

If the default cross compiler is arm-linux-gcc, you do not need to reset the compilation environment, otherwise you need to add it again.

Find line 161 of the Makefile

  1. # set default to nothing for native builds

  2. ifeq ($(HOSTARCH),$(ARCH))

  3. CROSS_COMPILE ?=

  4. endif


Setting up the cross compiler:

  1. CROSS_COMPILE = arm-linux-

  2. # set default to nothing for native builds

  3. ifeq ($(HOSTARCH),$(ARCH))

  4. CROSS_COMPILE ?=

  5. endif

4. We will start NorFlash first, so there is no need to modify other codes for the time being.

5. Test whether there is any problem with the previous modification. If there is no problem, the u-boot.bin file will be generated after successful compilation.

Return to the u-boot root directory

  1. make distclean

  2. make mini2440_config

  3. make

4. Errors


make -C board/samsung/mini2440/

make[1]: Entering directory `/home/yz019/u-boot/u-boot-2009.08/board/samsung/mini2440'

make[1]: *** No rule to make target '.depend' needed by 'libmini2440.a'. Stop.

make[1]: Leaving directory `/home/yz019/u-boot/u-boot-2009.08/board/samsung/mini2440'

make: ***[board/samsung/mini2440/libmini2440.a] Error 2

Solution:

Check board/Samsung/mini2440/Makefile28

  1. COBJS := smdk2410.o flash.o

Modified to

  1. COBJS := mini2440.o flash.o


make. I was pleasantly surprised to find the following statement, and it was done~

arm-linux-objcopy -Osrec u-boot u-boot.srec

arm-linux-objcopy--gap-fill=0xff -O binary u-boot u-boot.bin

V. Achievements

Since the clock configuration and other related board-level settings are not made, the serial port cannot output debugging information, so burning the compiled u-boot.bin to NorFlash will not produce any effect.


Reference address:Porting U-Boot-2009.08 to mini2440 Basic Configuration

Previous article:U-Boot 2010.09 supports mini2440
Next article:Some problems encountered when compiling U-Boot-1.1.6 on mini2440

Recommended ReadingLatest update time:2024-11-16 10:29

u-boot-2009.08 transplantation on mini2440 (Part 2) --- Adding NOR flash function
Migration environment 1. Host environment: CentOS 5.5 under VMare, 1G memory. 2. Integrated development environment: Eclipse IDE 3. Compilation environment: arm-linux-gcc v4.4.3, arm-none-eabi-gcc v4.5.1. 4. Development board: mini2440, 2M nor flash, 128M nand flash. 5.u-boot version: u-boot-2009.08 6. References: ht
[Microcontroller]
u-boot-2009.08 transplantation on mini2440 (Part 2) --- Adding NOR flash function
Linux-2.6.32.2 kernel transplantation on mini2440 (Part 9) --- touch screen driver transplantation
Migration environment 1. Host environment: CentOS 5.5 under VMare, 1G memory. 2. Integrated development environment: Eclipse IDE 3. Compilation environment: arm-linux-gcc v4.4.3, arm-none-linux-gnueabi-gcc v4.5.1. 4. Development board: mini2440, 2M nor flash, 128M nand flash. 5.u-boot version: u-boot-2009.08 6. Linux
[Microcontroller]
Linux-2.6.32.2 kernel transplantation on mini2440 (Part 9) --- touch screen driver transplantation
How to use JLink to download and burn the boot program to NorFlash
1. Tools and wiring harness preparation 1. Prepare a set of Jlink V8 (try to use this version, other versions have not been verified); 2. Make a JTAG adapter cable from the Jlink downloader to the interface of the mini2440 development board, as shown in Figure 1-3; 3. Install the JLinkARM burning tool (it is recommend
[Microcontroller]
How to use JLink to download and burn the boot program to NorFlash
Mini2440 keypad bare metal program writing and running
Development Environment Operating system: Linux Development board: mini2440 2. Schematic GPGCON control register address: GPGCON control register function description: 3. Operation process (You only need to operate the GPGCON register to operate the K1 button) a) Set the control register GPGCON to input functi
[Microcontroller]
Mini2440 keypad bare metal program writing and running
Experience of using mini2440 uboot
Record my tortuous experience of using uboot on mini2440. First, I used the code that came with the board: u-boot-1.1.6. But when compiling, it always prompts that there is an error. I don't know if this version is the same as tekk's version. I modified some places myself, but I feel that the compilation system of u
[Microcontroller]
Linux-2.6.32 key driver transplantation on mini2440 development board
Editor: The key driver involves the writing of Linux interrupt programs. 1. Button schematic diagram. 2. Writing and transplanting drivers. Create a new driver file mini2440_buttons.c in the /linux-2.6.32.2/drivers/char/ directory. The content and detailed comments are as follows: span styl
[Microcontroller]
Linux-2.6.32 key driver transplantation on mini2440 development board
Mini2440 Hardware - IIC
1. Hardware Principle The I2C bus is a serial bus introduced by PHLIPS. It is a high-performance serial bus with bus arbitration and high-speed and low-speed device synchronization functions required by multi-host systems. The I2C bus has only two bidirectional signal lines. One is the data line SDA and the other is
[Microcontroller]
Mini2440 Hardware - IIC
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号