1. Experimental purpose
1. Preliminarily master the underlying hardware driver functions of uCGUI;
2. Master the methods and steps of porting uCGUI to ARM S3C44BOX.
2. Experimental content
Port uCGUI to the ARM processor S3C44BOX, and write the Hello World program to display the "Hello World!" string on the LCD of the Micetek 44B0 experimental platform. At the LCD display plane coordinate (20, 20), an integer less than 10000 is displayed. , the integer keeps adding 1 in a loop, and the display is updated immediately after each addition of 1, thus reflecting the speed of the display output.
3. Preliminary knowledge
1. Architecture of uCGUI:
uCGUI contains three general folders: Application, Config, and GUI. Among them:
Ⅰ Application is the application folder, which contains the main function file and other resource files.
Ⅱ Config is the GUI configuration folder, which contains three files:
★ GUICONF.H is the configuration file of uCGUI, which is responsible for configuring the GUI's support for OS, window manager, DMA, touch screen, and Unicode code. As well as setting the default font and default colors of various controls, etc.
★ GUITouchConf.h is responsible for configuring the touch screen.
★ LCDConf.h is responsible for configuring the LCD display, such as resolution, number of color bits, and other settings of the LCD controller.
Ⅲ GUI is the implementation part of uCGUI. It is the most important part of GUI and contains eight to nine folders.
★ ConvertColor is a color conversion folder, which contains 24-bit color-conversion functions between various colors.
★ ConvertMono is a grayscale color conversion folder, which contains functions for converting between 24-bit color-monochrome, four-level grayscale, 16-level grayscale and user-defined colors.
★ Core is the core of the GUI, and most of the processing functions of the GUI are in this folder.
★ Font is the font folder of the GUI. We can add or delete fonts by adding or subtracting files in it.
★ LCDDriver is the underlying interface part of the GUI. The part we transplant should be in this folder.
★ MemDev is some processing function files of GUI's DMA mode.
★ Widget contains various window controls, such as dialog boxes, buttons and other controls.
★ WM is the window message processing function folder of GUI.
★ Touch is the underlying interface part of touch screen and mouse.
2. Parts of UCGUI that need to be transplanted
① The files that need to be modified for uCGUI transplantation are: modify Main.c, LCDConf.h, add LCD 44b0.h, LCD 44b0.c in the LCDDrive folder, where LCD 44b0.h is the statement of LCD 44b0.c, provided by LCD 44b0.c A series of LCD underlying function interfaces.
② If you want to support DMA mode, you need to add an LCDMemc.h, LCDMemc.c file. LCDMemc.h makes the declaration of LCDMemc.c, and LCDMemc.c makes the underlying interface function of DMA mode.
③ If you want to support touch screen and mouse, you need to modify the definition in GUICONF.H:
#define GUI_SUPPORT_TOUCH (1)
Make the GUI support mouse touch screen and configure the GUITouchConf.h file. Add the corresponding interface driver under GUITouch.
We mainly transplant the direct drive mode of LCD, so we only need to modify <1>.
I use the JediView (for ARM) integrated debugging environment. Other environments are similar. The hardware is S3C44b0X, the LCD is 256-color LCD, and the resolution is 320×240.
4. Experimental equipment and tools (including software debugging tools)
Hardware: Micetek 44B0 Experimental System
JEDI emulator
PC Pentumn 100 or above
Software: PC operating system win2000
JEDIView integrated development environment
5. Program Description
Create a new folder uCGUI, add all the folders and files of the above system to the uCGUI folder, delete LCDWin.c under the LCDDrive folder, which is the simulation driver under VC, and add LCD 44b0.h to the LCDDrive folder , LCD 44b0.c. The touch screen driver is not transplanted for the time being. You can keep the Touch directory empty and use it for future expansion.
Create a new Inc folder in the uCGUI directory and add opTIon.h, 44b.h, 44blib.h, def.h, cache.h, lcdlib.h, 44blcd.h.
Add lcdlib.c to the Application folder.
Create a new project also called uCGUI, and add all the folders and internal files of the above system to the uCGU project.
Modify the include configuration: Open Tools->Option->Directory->Include Files and add the path
…uCGUIguiConvertColor
...uCGUIguiConvertMono
…uCGUIguiCore
…uCGUIguiFont
...uCGUIguiLCDDriver
…uCGUIguiMemDev
…uCGUIguiWidget
…uCGUIguiWM
…uCGUIguiTouch
……:ucOSConfig
...guiApplication
Among them... is the path of the project you built. The above paths may not be added in some compilers and will be found automatically. They need to be added in the JediView (for ARM) integrated debugging environment.
Since uCGUI uses the math library, you need to add the -lm parameter to the link setting under the Gcc compiler so that the compiler can find the math library.
6. Experimental phenomena
The LCD screen displays the experimental results, in which the value in line 2 keeps adding 1 and jumping.
Previous article:Minimum system of serial network server based on S3C4510B
Next article:S3C2410 processor features
- Popular Resources
- Popular amplifiers
- Learn ARM development(16)
- Learn ARM development(17)
- Learn ARM development(18)
- Embedded system debugging simulation tool
- A small question that has been bothering me recently has finally been solved~~
- Learn ARM development (1)
- Learn ARM development (2)
- Learn ARM development (4)
- Learn ARM development (6)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
- What is the difference between low inertia and high inertia of servo motors?
- Do you install anti-virus software when you buy a new computer?
- PCB Design Principles - Grounding
- Leverage the advantages of real-time operating systems with MSP432 MCUs
- What should be paid attention to when the factory is mounted on the chip
- Start with TF card made by card reader
- SparkRoad camera surveillance
- 【RT-Thread software package application works】Smart home
- C2000 DSP basic data types
- EEWORLD University----Live Replay: How to Build a Car Charger
- IoT standards: Game over