Implementation of a New Embedded System Based on EP7312

Publisher:q13358975046Latest update time:2020-10-10 Source: elecfansKeywords:EP7312 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

  1 Introduction

  With the rapid development of digital technology with computers and software as the core, multimedia technology and Internet applications are rapidly becoming popular. The trend of integration of computers, communications, and consumer electronics is becoming increasingly obvious. As a new type of intelligent 3C integrated embedded systems and technologies have entered the stage of intelligent and networked development.


  The so-called embedded system is a system that integrates application programs, operating systems and computer hardware. In short, it is the integration of hardware and software. This system has the characteristics of being compact and flexible, cost-effective, highly automated, highly real-time and highly professional. Embedded systems are suitable for use in all areas of human work and life. The most typical applications include set-top boxes, digital applications, WebTV, ATM/POS machines, multimedia mobile phones, pocket computers, car navigation devices, avionics, etc. Embedded technology has penetrated into all aspects of human life and work, and also has great application potential in entertainment and military.


  There are four major operating systems in the world: WinCE, Palm OS, EPoc and Linu. Linux is more and more important in embedded operating systems due to its stability, high efficiency, easy development, easy customization and wide hardware support, combined with its free and open source features. More and more embedded systems, including PDA, set-top boxes, WAP mobile phones, etc., require not only high-performance and high-reliability graphical display interface support, but also require full-featured Web browsers. Including HTML support, JavaScript support, and even Java virtual machine support. The system introduced in this article is an ARM Linux system with a graphical interface and embedded browser support.


  2 Embedded System Architecture

  The embedded system based on EP7312 is divided into two parts: software and hardware. The hardware is the self-developed EB7312-B embedded development system. The software consists of ARM Linux, Microwindows and ViewML. As shown in Figure 1.

  2.1 EB7312-B

  The CPU used by EB7312-B is EP7312 produced by Cirrus Logic. EP7312 consists of a 32-bit reduced instruction set microcontroller and on-chip peripherals. It is a microprocessor designed for ultra-low power consumption and high performance for PDA, Internet equipment, mobile phones and handheld devices. The core logic of EB7312-B is ARM720T processor, which consists of ARM7TCMI CPU core module, memory management unit, write buffer module and 8K independent instruction data cache. The memory management unit is compatible with WinCE and Linux. Other functional blocks include memory controller; 48KB on-chip SRAM. (Shared with LCD controller and general application); memory 32MB SDRAM, 16MB Flash; two full-duplex UARTs (16550 type); 10M Ethernet card CS8900A; color 320X240 LCD, EP7312 itself does not directly support color LCD, it supports color through tiny external logic and a slight modification of LCD driver; 83-key ASCII keyboard.

  

  Figure 1 Embedded system structure

  

  Figure 2 ViewML architecture

  2.2 ARM Linux

  ARM Linux is a project to port the Linux kernel to various ARM processor-based target systems. Supported by Russell Kingrmk@arm.linux.org.uk. Ports have been successfully completed for more than 100 different target systems. The Linux kernel ported here is Linux-2.4.24, and the ARM Linux patch is Linux-2.4.24-vrs1 released in February 2004. During the porting process, the focus is on the implementation of the boot program and the design of the frame buffer device driver for the specific hardware environment under ARM Linux.


  The main steps of the startup program are: setting the entry pointer, setting the interrupt vector, setting and initializing the RAM, initializing at least one channel port, detecting the CPU type, initializing the stack and registers, initializing the memory system, setting the kernel related list, and calling the kernel image. It should be noted that when setting the CPU register, r? 0 is 0, r2 is the detected CPU model number, MMU is closed, instruction catch is opened, and data catch is closed after being cleared.


  Framebuffer is a device that provides display memory and display chip registers mapped from physical memory to process address space. Its driver mainly relies on three data structures: fb_info, fb_var_screeninfo, and fb_fix_screeninfo. The fb_info structure can only be accessed in kernel space. It defines struct fb_ops. The members of the structure fb_ops are a series of framebuffer operation functions. The driver of the framebuffer device mainly writes these interface functions. fb_var_screeninfo and fb_fix_screeninfo define the hardware characteristics of the video board. Such as video memory size, display bits per line, resolution and other characteristics related to specific hardware. The framebuffer driver first calls register_framebuffer to register a framebuffer device, and then registers the initialization function in Linux/drivers/video/fbmem.c. All ioctl calls of framebuffer drivers are uniformly implemented by fbmem.c.


  2.3 Microwindows

  Microwindows is an open source desktop system designed specifically for developing high-quality graphics on small devices. It uses less RAM and file storage space (100K-600K) and only requires 50~250KB of memory space during operation. Microwindows does not require any operating system or graphics system support and can run on a 32-bit Linux system with a kernel that supports the Framebuffer mechanism. One of the main goals of Microwindows is to introduce a graphical window environment to small devices and platforms running Linux, providing functions similar to X Window.


  Microwindows adopts a layered design method. The bottom layer provides drivers for the screen, mouse or touch screen, and keyboard, so that the program can access the actual hardware and other user-customized devices; the middle layer implements a portable graphics engine that implements line drawing, filling, polygonal lines, clipping, and multiple color modes; the top layer implements multiple APIs to adapt to different application environments. Each layer can modify the code or recode according to different application requirements.


  The lowest level of the system defines a data structure for the display screen, mouse, touch screen, keyboard, etc. for use by the graphics engine, namely struct _mwscreendevice, struct _mousedevice and struct _kbddevice, which contain the hardware driver code interface for the specified device.


  The graphics engine in Microwindows supports framebuffer, so you only need to modify the configuration file config.ads in src/ for Linux based on the ARM platform to specify the use of framebuffer as the underlying graphics support engine. The mouse driver that supports Linux under Microwindows is mou-gpm.c, and the keyboard driver is kbd_tty.c. In this system, the member functions of the mouse and keyboard data structures are not written from scratch, only the corresponding changes are made to the original driver for specific hardware parts.


  2.4 ViewML

  ViewML is the first open source, small browser developed specifically for the rapid development of embedded Linux systems. Its code file is only 800KB, and the memory space required for operation is about 2MB. It uses FLTK as the GUI platform and adopts C++ object-oriented design. The ViewML browser can run on X Windows and Microwindows systems, so it can be debugged and improved on the Linux platform. This greatly facilitates the further improvement of the browser. The improvement of ViewML in this system is completed on the Microwindows system based on the X Windows platform.


  The architecture of the ViewML browser is shown in Figure 2. Its application layer is very small and is written entirely in C++ FLTK (Fast Light Tool Kit) application framework. It provides basic graphical user interface layout and also handles network and local file access requirements. Its syntax analyzer and display engine use the KDE 1.0 HTML widget in the open-source KDE desktop's kfm file manager (i.e., the KHTML View and widget modules in Figure 1). The window management component works stably and supports all HTML 3.2 functions and some JavaScript 1.1. KDE's widgets use the QT widget collection. To meet the requirements of embedded systems, ViewML uses the lightweight graphics library FLTK. The QT compatibility layer provides an interface between HTML widgets and the FLTK application framework. The underlying network protocol uses the World Wide Web Consortium's WWWLib library to perform all asynchronous network input and output and HTTP acquisition functions.


  ViewML is a high-quality web browser that is directly targeted at embedded Linux environments. By including core components with open source code, it is possible to use a high-quality graphics engine while taking up very little RAM and ROM resources. However, in actual porting and use, some shortcomings of this browser were discovered. The following focuses on the improvements to the ViewML window interface of this system.

Keywords:EP7312 Reference address:Implementation of a New Embedded System Based on EP7312

Previous article:How to use camera in embedded Linux system
Next article:Analysis and solutions for battery life bottlenecks of smart terminals

Latest Microcontroller Articles
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号