Porting Linux 2.6.39 to Micro2440 development board

Publisher:BlossomSunriseLatest update time:2022-07-08 Source: csdn Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

All versions of Linux source code can be downloaded from https://github.com/torvalds/linux/. The Linux source code used in this document is linux-2.6.39 (Network Disk: http://pan.baidu.com/s/1dDxjNl3).


1. Unzip the source code

Unzip the source code to the working directory. Here we use the 7za command in the p7zip tool. Using the unzip command will prompt the error "File name too long".


# Enter the working directory


# 7za x /media/sf_ShareDIR/MICRO2440/source/linux-2.6.39.zip 


# cd ./linux-2.6.39


2. Linux kernel compilation

In the kernel tree of Linux 2.6.39, the mini2440 development board is already supported. The micro2440 is an upgraded version of the mini2440, so many configurations are compatible. Therefore, the configuration of the mini2440 development board can be selected.


a) Modify Makefile (the red words are the modified or added parts)


#vim Makefile


ARCH ?= arm


CROSS_COMPILE ?= arm-linux-


b) Generate mini2440 development board configuration


# make mrproper


# make mini2440_defconfig


c) Compile the kernel

 # make uImage


d) Download the kernel to RAM and run it through U-BOOT (NOR)


The kernel can be downloaded to RAM and run through the NOR U-BOOT made in the article "Transplanting U-BOOT-2.14.07 to MICRO2440 Development Board.doc".


# tftp 0x30008000 /MICRO2440/uImage


#bootm


To facilitate debugging, you can set the U-BOOT startup command to download the kernel boot through TFTP.


# setenv bootcmd 'tftp 0x30008000 /MICRO2440/uImage;bootm'

As shown in the figure above, the kernel can be started normally, but it is stuck at "Uncompressing Linux... done, booting the kernel." This is usually caused by not setting the startup parameters (console= is not set) or the machine code of U-BOOT and the kernel is inconsistent. After testing, after setting the startup parameters (bootargs) in U-BOOT, it can be started normally. There may be a BUG in 2.6.39. I did not set any machine code here, and all used the default. U-BOOT uses 193 (arch/arm/include/asm/mach-types.h) and LINUX uses 1999 (arch/arm/tools/mach-types). The machine code is inconsistent, but it can still be started. After testing, other versions of LINUX cannot be started. The machine code must be consistent to start.

Reference address:Porting Linux 2.6.39 to Micro2440 development board

Previous article:Porting U-BOOT-2.14.07 to MICRO2440 development board
Next article:Module mode debugging driver (Micro2440 + linux 2.6.39)

Recommended ReadingLatest update time:2024-11-16 19:37

MCU Learning Notes 6---PCF8563 Display Time
In this section, we continue to debug the hardware circuit, test whether PCF8563 is normal, read the time, and then display it on the digital tube. The driver of 8563 is searched and then modified. Thank you for the contribution of netizens. Let's take a look at the hardware circuit first: SCL is connected to P5.4,
[Microcontroller]
MCU Learning Notes 6---PCF8563 Display Time
BH1750 light intensity sensor in G2Lauchpad application I2C exploration
Let's review the I2C protocol again:  /************************************************** //IIC Start **********************************************/ void IIC_Start() { SCL_HIGH; // SCL is always high, waiting for the falling edge of SDA to generate a start signal i2c_delay_us(); SDA_HIGH; i2c_del
[Microcontroller]
BH1750 light intensity sensor in G2Lauchpad application I2C exploration
The Principle and Application of Analog Multiplier ADL5391
    Analog multipliers are important components of modern signal processing systems. They are widely used in signal processing circuits such as phase-locked loops, mixers, and filters. ADL5391 is a wideband, high-performance, super-symmetric analog multiplier launched by ADI in the United States. It has an available ba
[Test Measurement]
The Principle and Application of Analog Multiplier ADL5391
In June, the installed capacity of power batteries reached 11.1GWh, and CATL ranked first
The China Automotive Power Battery Industry Innovation Alliance released the production, sales and installation data of new energy vehicle batteries in June 2021. CATL's installed capacity in June was 5.44GWH, accounting for 49%, ranking first with an absolute advantage, BYD ranked second, and LG Chem ranked third.  
[Embedded]
In June, the installed capacity of power batteries reached 11.1GWh, and CATL ranked first
XScale PXA270 FPGA device driver under Linux
introduction XScale launched by Intel uses the ARM V5TE structure and is an upgraded product of Strong ARM. The maximum main frequency of the XScale PXA270 processor can reach 624MHz. It has added new technologies such as Wireless MMX and Intel SpeedStep. Its high performance, low power consumption, multi-function a
[Embedded]
Pixel 6 released, Google wants to put artificial intelligence into users' phones through Tensor chips
On the morning of October 20, Google launched its own brand flagship mobile phone Pixel 6 series. The biggest feature of this phone is that it uses Google's self-developed chip Tensor. The price of Pixel 6 starts at US$599 and the Pixel 6 Pro starts at US$899. It will be available on October 28. New self-de
[Mobile phone portable]
Pixel 6 released, Google wants to put artificial intelligence into users' phones through Tensor chips
With R&D investment exceeding RMB 600 million, Huanyu aims to become one of the top five in the world
The market size of lithium batteries is huge. According to relevant statistics, by 2015, the production capacity of lithium batteries will exceed 5 billion Ah. On October 21, Li Zhongdong, chairman of Henan Huanyu Group, stated bluntly in an interview with reporters that Huanyu’s goal is to become one of the to
[New Energy]
6W universal voltage input power supply circuit
6W universal voltage input power supply circuit
[Power Management]
6W universal voltage input power supply circuit
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号