The paper is recorded in the Linux environment with the cross-tool chain to develop arm bare metal programs encountered some problems and solutions, mainly to solve the problem of the process and a number of small experience, small skills recorded. Now, some of the things that feel a bit of value are moved to the blog for readers ' reference.
-----------------12.16-----------------
22:25Compiling a
try to reach the machine that will be installed.5. Boot the bare metalWait for the [email protected] ~ $ instruction Input Prompt to complete the boot, after completing the boot, copy the Yaml file just prepared to the boot systemThe boot system comes with a wget instruction that can be pulled from the local resource server via this directive6. Install Core OSThe default boot is core user, via sudo su-root switch to Admin user-d specifies installatio
: Physical Start Addressattr: Accessing PropertiesThe mapping of virtual storage space to physical storage space is in memory block: divided into 1mb/64kb/4kb/1kbA contiguous amount of storage space in the virtual storage space is mapped to a contiguous piece of the same size in the physical storage space.Storage space Page table, each address transform entry actually records the base of a storage block for a virtual storage spaceCorrespondence between address and base site of a storage block co
software not supported by the underlying software.) When linking applications running on the operating system, the default link is generally used.1, directly specify the code snippet, data segment, BSS segment start addressAs follows:-ttext startaddr-tdata startaddr-TBSS startaddrFor example:Ld–ttext 0x00000000–g Led_on.o–o led_on_elf2. Set the start address directly using the link scriptLd–ttimer.lds–o timer_elf A.O B.OThe link script timer.lds content is as follows:sections{. =0x30000000;. Te
LCDSADDR3 set the address of the frame memory// Here's Lcdbank defined as volatile unsigned shortlcdbank[272][480];// Request Frame Memory Lcdbank is randomly assigned by the system.rLCDSADDR1 = (((unsigned int) Lcdbank >>) //((unsigned int) Lcdbank >>) The memory address of the A to the - the bits that are stored in the Register + to the in in bits//(unsigned int) lcdbank) 0x1fffff remove low bit//(((unsigned int) lcdbank) >> 1) 0x1fffff Memory Header Address ( + number of bits). 21~1
Obviously, we need to execute the ARM assembler first, and then the assembler jumps to the C program, but the compiler does not know whether to put the C code snippet or the arm assembler code snippet first, so we need to tell the compiler how to compile and connect. There is an LDS file in which the contents of the file determine the location of each code snippet in the program, and you can see how the file is passed to the compiler in the following makefile file.3. lds file/******************
, and 15 times is output. TC is the number of output records. Each output time, TC is reduced by 1, and the value is 0, one-service mode for stopping DMA and waiting for other DMA requests. If an interrupt is set, the MDA is interrupted. Therefore, TC is the cycle.Code Area
Main. c
# Define global_clk 1 # include "def. H "# include" option. H "# include" 2440addr. H "# include" 2440lib. H "// function declaration # include" 2440slib. H "# include" MMU. H "# include" profile. H "// extern void d
The following bare metal program is based on gt2440 and the compiler is a arm-linux-gcc-4.4.3.
Program structure: This program only has one SPI. s file.
Program process: first, the power-on Reset enters the reset exception. In the reset exception, call the subroutine to close the watchdog, initialize the system clock, initialize the serial port, and finally call SPI to send data, the data sent by SPI is spe
=============================================================================================================== =====================
First, preliminary preparation
1. The Development Board must be in the SD card boot mode.
2. Install USB download driver, install RS232 to USB drive.
3. Install DNS and turn on DNS.
Second, burning write "tiny6410 bare Metal Program" fifth chapter: Assembly and C-mixed progra
Raspberry PI Series--bare metal illuminated LED lightsBackgroundRecently just bought Raspberry PI B +, configured to run the official Raspbian system, tossing a week Linux system, feel no meaning, so try to understand the bottom of the start process, through a few days of research, It is found that the boot of the lowest part is performed by the official Bootcore.bin and start.elf files (which should be the
EmbeddedLinux Bare Metal Development (13)--i²c communication a,IIC Protocol 1. Introduction ofIIC bus i2c (Inter - integrated circuit) bus is a philips The company developed a two-wire serial bus for connecting microcontrollers and peripherals. i2c Bus is a serial data bus, only two signal lines, one is two-way cable sda and the other one is the clock line scl i2c A data byte transmitted o
, DNW the title bar will display Usb:ok, window printing informationD: From the above, we can see why learn a button or USB burn Linux?A: Switching from a wince system to a Linux systemB: Replace uboot, kernel image zimage, one or more of the file system YAFFS2C: There is a bad zone, the Development Board will not startThe difference between E:USB and one-click Burning LinuxA: The same point:
The same purpose is to burn Linux into NAND.
Start with SD card
All through the serial
localhost:2331 3 # Set JTAG speed to kHz 4 monitor endian little 5 Monitor Speed 6 # Reset the target 7 monitor reset 8 monitor Sleep 9 # Setup GDB for faster downloads #set Remot E memory-write-packet-size 1024x768 monitor speed auto break main loadAfter the above settings, you can start debuggingFive, start debuggingNote: When debugging with Eclipse, you must ensure that Jlinkgdbserver is running at the same timeOtherwise, an error similar to the following will appear:Make sure the jlinkgdbse
Makefile slightly moved, that is, the original beginning of the "Led_on.bin" to "all", eclipse default compilation target is "All", it can be successfully compiled, after compiling will produce led_on.bin,led_on_elf. The former is downloaded to Nandflash, which is used for debugging.can be compiled after the start of configuration debugging, and debugging U-boot The only difference is the name of the specified application, as shown in. The other Debugger commands are the same as those configured
=============================================================================================================== =====================
First, the hardware pin description
The tiny6410 Development Board has 4 user programmable LEDs located on the core board directly connected to the CPU's gpio.
Led detailed resources occupy the following table:
LED4 LED3 LED2 LED1 GPIO GPK7 GPK6 GPK5 GPK4
Second, bare-metal p
s3c2416 Bare Metal Development Series 13
Capacitive screen Drive implementation
Chess Boy 1048272975
In the human-computer interaction system, the keyboard, touch screen and other input devices is an indispensable part. For mobile phones, tablets, these consumer electronics, touch screen with its very good user experience has been widely used. The author here is a simple introduction to the application of
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.