建立基于ARM-uClinux的MiniGUI开发环境

2024-01-05 09:58

本文主要是介绍建立基于ARM-uClinux的MiniGUI开发环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

即交叉编译MiniGUI,使经过arm-elf-gcc编译后的MiniGUI程序能运行在ARM-uClinux平台上。

准备的软件包:libminigui-str- 1.6.2 .tar.gz minigui-res-str-1.6.tar.gz

交叉编译过程如下:

1)解压minigui-res-str-1.6.tar.gz,设置config.linux文件,将编译器设置为arm-elf-gcc。并将安装路径设置为arm-elf-gcc所在的目录。

2)解压libminigui-str- 1.6.2 .tar.gz 配置编译环境如下:

CC=arm-elf-gcc /

CFLAGS="-D__linux__ -I/root/minigui_lib/include -fno-builtin -nostartfiles" /

LDFLAGS="-Wall -elf2flt -static -L/root/minigui_lib/lib -lc" /

./configure /

    --prefix=/opt/uClinux/arm-elf /

    --build=i386-linux /

    --host=i686-pc-linux-gnu /

    --target=arm-elf /

    --disable-shared /

    --enable-static /

    --with-osname=uclinux /

    --disable-lite /

    --enable-standalone /

    --disable-micemoveable /

    --disable-cursor /

    --disable-newgal /

    --enable-nativegal /

    --disable-galfbcon /

    --enable-fblin8 /

    --disable-textmode /

    --enable-dummyial /

    --enable-autoial /

    --enable-nativeial /

    --disable-qvfbial /

    --disable-latin9support /

    --disable-big5support /

    --disable-savebitmap /

    --disable-jpgsupport /

    --disable-pngsupport /

    --disable-imegb2312 /

    --disable-aboutdlg /

    --disable-savescreen /

    --enable-incoreres /

    --enable-mousecalibrate /

    --enable-fontsserif /

    --enable-fontcourier /

    --enable-fontsymbol /

    --enable-fontvgas /

    --enable-vbfsupport /

    --enable-rbfsupport /

    --enable-rbf16 /

--enable-gifsupport

   3) GAL移植

需准备的程序:COMMLCD.C,LCDDRIVE.C,LCDDRIVE.H,LPC2294.H

下面对这些程序进行分析。

LPC2294.H定义ARM的各种寄存器,I/O口,中断口,串行口等的地址。

LCDDRIVE.HLCDDRIVE.C定义显示器驱动。

COMMLCD.C图形引擎的定义。

具体步骤如下:

A)      libminigui-str- 1.6.2 /src/gal/native下建立COMMLCD.CLCDDRIVE.C,LCDDRIVE.H,LPC2294.H

B)      Makefile.am里的LIBNATIVE_LA_SOURCES变量所在行末尾添加LCDDRIVE.C LCDDRIVE.H COMMLCD.C LPC2294.H

C)      修改libminigui-str- 1.6.2 /src/gal/gal.c,在GFX结构添加{“commlcd”,InitNative,TermNative}

D)      修改libminigui-str- 1.6.2 /src/gal/native.c,

#ifdef_Native_GAL_COMMLCD

  else if(strcmp(gfx->id,”commlcd”)==0)

psd=commlcd.Open(&commlcd);

#endif

改为

//#ifdef_Native_GAL_COMMLCD

  else if(strcmp(gfx->id,”commlcd”)==0)

psd=commlcd.Open(&commlcd);

//#endif

即注销ifdefendif

    修改libminigui-str- 1.6.2 /src/gal/native.h,同样将extern SCREENDEVICE commlcd上下的ifdefendif给注销掉。

   4) IAL移植

需要准备的程序:ADS7843.C ADS7843.H comm._drive.c comminput.c comminput.h CONFIG.H I 2C .C I 2C .H LPC2294.H

ADS7843.CADS7843.H是触摸屏控制电路的驱动程序。

Comminput.ccomminput.h是普通输入设备(键盘,鼠标,触摸屏)驱动程序。

I 2C .CI 2C .H是连接键盘等输入设备的I 2C 总线控制程序。

具体步骤如下:

A)      libminigui-str- 1.6.2 /src/ial下建立ADS7843.C,ADS7843.H,comm._drive.c,comminput.c,comminput.h,CONFIG.H,I 2C .C,I 2C .H LPC2294.H

B)      配置Makefile.am,新增变量COMMINPUT_SRCS= ADS7843.C ADS7843.H comm._drive.c comminput.c comminput.h CONFIG.H I 2C .C I 2C .H LPC2294.H

C)      LIBIAL_LA_SOURCES变量后加入$(COMMINPUT_SRCS)

D)      修改ial.c,将#include “comminput.h” 上下的#ifdef#endif注释掉。在INPUT结构中添加{“comm”,InitCOMMInput,TermCOMMInput}

接着编译和安装即可。安装完毕,便可交叉编译minigui源程序,如下

#arm-elf-gcc –elf2flt –o helloworld helloworld.c –lminigui –lpthread

编译后的程序便可在目标系统上运行。

这篇关于建立基于ARM-uClinux的MiniGUI开发环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/572493

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

VSCode配置Anaconda Python环境的实现

《VSCode配置AnacondaPython环境的实现》VisualStudioCode中可以使用Anaconda环境进行Python开发,本文主要介绍了VSCode配置AnacondaPytho... 目录前言一、安装 Visual Studio Code 和 Anaconda二、创建或激活 conda

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中