ARM development steps: After reading this, the development ideas will be clearer

Publisher:SereneWandererLatest update time:2019-10-30 Source: 51heiKeywords:ARM Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere


Let's make a rough comparison between the well-known MS DOS and Linux booting parts. In MS DOS, the boot program located in the boot sector on the disk is responsible for loading IO.SYS into memory, and IO.SYS is responsible for loading the DOS kernel --MSDOS.SYS into memory. In Linux, the bootsect program located in the boot sector is responsible for loading setup and the Linux kernel into memory, and then handing control to setup. Driver In the Linux system, the set of entry points provided by the device driver is described to the system by a structure. The entry points provided by the device driver are registered with the system when the device driver is initialized so that the system can call them at the appropriate time. In the Linux system, the character device driver is registered with the system by calling register_chrdev. In Linux, in addition to directly modifying the source code of the system kernel and adding the device driver to the kernel, the device driver can also be used as a loadable module, and the system administrator can dynamically load it to make it part of the kernel. The system administrator can also dynamically unload the loaded module. In Linux, modules can be written in C language and compiled into target files using gcc (without linking, existing as *.o files).


To do this, you need to add the -c parameter to the gcc command line. After successfully registering the device driver with the system (after successfully calling register_chrdev), you can use the mknod command to map the device to a special file. When other programs use this device, they only need to operate on this special file. Replace X-Window with MicroWindows MicroWindows uses a layered design method. It allows different layers to be changed to adapt to actual applications.


At the bottom layer, drivers for the screen, mouse/touch screen, and keyboard are provided, allowing programs to access actual hardware devices and other user-defined devices.


In the middle layer, there is a lightweight graphics engine that provides methods for drawing lines, area filling, drawing polygons, clipping, and using color models.


At the top level, different APIs are provided for graphical applications to use. These APIs may or may not provide desktop and window appearance. Currently, MicroWindows supports Windows Win32/WinCE GDI and Nano-X APIs. These APIs provide close compatibility between Win32 and X Window System, making it easy to port other applications to MicroWindows.

[1] [2]
Keywords:ARM Reference address:ARM development steps: After reading this, the development ideas will be clearer

Previous article:ARM 2440 naked implementation of electronic clock
Next article:Difference between MOV MVN LDR in ARM assembly language

Recommended ReadingLatest update time:2024-11-16 15:27

Design of LED display system with independent video source using ARM and FPGA chips
At present, there are two main types of display screens according to the data transmission method: one is a real-time video screen that displays the same content as the computer; the other is an independent video source display screen that sends the display content to the display screen through communication means suc
[Microcontroller]
Design of LED display system with independent video source using ARM and FPGA chips
ARM and 51 MCU communication
The hardware is a mini2440 core board and another MCU learning board with a serial port (with DS18B20). The learning board continuously outputs the temperature value of DS18B20 with a baud rate of 19200. Create a new file in a folder, mine is voltage_set.c (to be used for voltage adjustment later)   #include stdio
[Microcontroller]
ARM assembly instructions ADR and LDR usage
Introduction Both of them are pseudo instructions: ADR is a pseudo instruction for reading addresses in a small range, and LDR is a pseudo instruction for reading addresses in a large range. The practical difference is: ADR is a pseudo instruction for reading an address value based on a PC relative offset or a registe
[Microcontroller]
Construction of ARM Virtual Laboratory Based on Proteus and ADS
introduction ARM technology is a very practical technology. Its experiments are a very important practical teaching link in electronic teaching and an important course for cultivating students' experimental skills and innovative thinking. Mastering ARM technology has become a basic condition for electronic stud
[Microcontroller]
Construction of ARM Virtual Laboratory Based on Proteus and ADS
ARM Basics Serial 9
*************************************************** *** ARM Image File *************************************************** *** 1. Structure of ELF format file 1.1 Image file components **An image file consists of one or more domains **Each domain contains one or more output segments **Each output segment c
[Microcontroller]
ARM-based oversampling technology
With the development of science and technology, people gradually understand the macro and micro worlds, and weak signals in more and more fields (physics, chemistry, astronomy, military radar, seismology, biomedicine, etc.) need to be detected, such as weak magnetism, weak light, micro vibration, small displacement, el
[Microcontroller]
ARM-based oversampling technology
Learn ARM development(8)
Last time I looked at the data area, this time I want to see what is running when jumping from the boot to here. /* * The reset code that is actually running. The code that runs from the beginning jumps here to run. */ reset: /* * Set the CPU to run in SVC32 mode. */ mrs r0,cpsr
[Microcontroller]
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号