(2) Linux 在S3C2440 上的移植

嵌入式 Linux 管理整个导航系统的硬件设备并对所有程序进行调度,是软件系统的核心。由于Linux 是面向PC 机的操作系统,将其用于嵌入式领域,需要进行移植,它一般包括启动加载代码(Bootloader)的移植、内核移植、驱动程序的编写、文件系统的构建等。将 U-boot 源代码在ADS 环境下进行编译,将编译成功的二进制代码烧写到开发板所带Flash 上,然后在上电启动。Bootloader 首先完成硬件设备的初始化,然后设置Linux 内核的启动参数,最后调用Liuux 内核,直接跳转到Linux 内核的第一条指令处。从 Linux 的方式看待设备可区分为3 种基本设备类型:字符设备,块设备,或者网络设备。车载导航系统设备驱动程序由以下三个部分组成:

(1)自动配置和初始化子程序。初始化子程序首先运行,负责检测硬件设备是否存在和能否正常运行;

(2)中断服务子程序。由嵌入式Liuux 系统来接收硬件中断,再通过系统来调用中断服务子程序;

(3)服务于I/O 请求的子程序。对I/O 设备进行存取。将编写好的设备驱动编译到内核中,在系统启动时和内核一起启动。

文件系统构成了 Linux 系统上所有数据的基础。经过比较,系统设计时决定使用Cramfs文件系统,当访问文件时,Cramfs 文件系统自动的将要访问的文件解压到RAM 中,会尽可能给实际执行的应用程序保留RAM 空间,而且可以为运行时解压缩挪出额外的CPU 周期。使用mkcramfs 命令生成cramfs 镜像文件,再将其下载到系统中去,Linux 启动时自动加载根文件系统,完成系统的启动。

(3)多线程技术在Qt 中的应用

在具有图形用户界面的 Qt 应用程序中,主线程由GUI 线程充当,它同时拥有一个或多个非GUI 线程作为工作线程来处理其它耗时操作,例如不断更新的车辆方向、速度,地图的匹配等。这样,即使在负载很重的情况下,应用程序也可以保证图形用户界面的响应。依赖 Qt 提供的多线程技术,使得该导航系统中的多数据交互成为可能,GUI 线程在调用了exec()函数后,要么等待一个事件,要么处理一个事件,每一个线程都可以有自己的事件循环,如图4所示,起始线程通过QcoreApplication::exec()启动事件循环,其他非GUI 线程通过Qthread::exec()启动各自的事件循环。

16339032778329085847.jpg

图 4 Qt 线程事件模型

5 结论

本文作者的创新点:

(1)将嵌入式Liuux 操作系统用于车载导航系统,是对传统的车辆导航系统的重大改进,成本大幅降低,同时利用Linux 系统的多线程技术,可以解决系统中多个任务并行处理的问题,保障了系统的稳定性、可靠性,提高了系统的运行速度。

(2)显示系统采用Qt/Embeded 软件进行用户显示界面设计,一次编写,随处编译,方便移植到各种不同的平台,只需重新编译即可,使用开源版节约大量软件授权费用,这些都是传统WinCE 程序所不能比拟的。

(3)目前本系统已经装载在车上试运行,实践证明本系统能实时显示车辆当前运行状况,快速响应用户操作,为驾驶者提供良好的导航信息。

[1] [2] [3]

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

Linux车载导航程序,基于嵌入式LINUX的车载导航系统设计相关推荐

  1. linux 文件系统字体小,基于嵌入式Linux平台的最小文件系统的制作

    工作平台:FL2440 交叉编译环境:arm-linux-gcc 3.4.1 busybox版本:1.9.1 1) 制作文件系统总目录: mkdir my_rootfs 2) 编译&安装bus ...

  2. linux开组态软件,基于嵌入式Linux的组态软件实时数据库的设计

    1 引言 实时数据库(real-TIme database, RTDB)作为组态软件设计与实现的核心内容解决了其所 应对的现代工业生产现场环境中生产数据与控制数据类型复杂多样,数据处理与事件调度时 间 ...

  3. 嵌入式linux 无线网卡,一种基于嵌入式Linux的无线网卡的制作方法

    本实用新型涉及无线网卡技术领域,具体为一种基于嵌入式Linux的无线网卡. 背景技术: 随着移动通信和便携通信的发展,无线局域网WLAN应用而生,日渐普及,嵌入式系统的无线局域网接入可以实现对嵌入式系 ...

  4. 嵌入式linux仪器,一种基于嵌入式Linux设备双系统的启动方法

    一种基于嵌入式Linux设备双系统的启动方法 [技术领域] [0001]本发明涉及一种基于嵌入式Linux设备双系统的启动方法. [背景技术] [0002]Linux操作系统特别是其嵌入式系统由于其源 ...

  5. 嵌入式Linux搭建物联网网关,基于嵌入式Linux的物联网网关研究与实现

    摘要: 随着物联网发展速度日益加快,作为连接感知网络和传统通信网络的物联网网关正在其中扮演着重要角色.然而,目前针对物联网网关的统一标准尚未制定,物联网网关的设备类型千差万别.人们往往针对某一具体应用 ...

  6. gsm基于linux程序,基于嵌入式Linux下GSM模块的短信收发系统设计

    摘要:移动通信中的短消息业务以其方便.可靠和价廉得到了广泛应用,本文在嵌入式Linux系统中,通过西门子MC35模块,实现了短信收发系统,该系统采用PDU短信模式,能支持中文短信.程序设计采用异步事件 ...

  7. python 嵌入式 linux 产品 发布_基于嵌入式Linux进行Python应用开发

    ByToradex秦海 1).简介 Python 编程语言因其极强的可读性.可移植.易于维护,以及丰富的第三方扩展组件,如数据库.数学计算.图形,甚至机器视觉.人工智能.深度学习框架都提供Python ...

  8. linux端口带卡,基于嵌入式Linux的接口转换卡设计

    接口总线为一群互相连接的设备提供一种有效的通信方式,它是自动测试系统发展的标志,可以说接口总线技术发展的历史就是自动测试系统发展史,接口总线技术发展的水平标志着自动测试发展的水平.本文提出的接口转换方 ...

  9. 嵌入式linux更省电,基于嵌入式Linux的智能手机省电设计方案-消费电子-与非网

    每个系统要正常运行都有赖于CPU 的性能, 系统软件, 中间件一集各种系统策略等等, 智能手机也是一样.这篇文章主要探讨了给智能手机选择合适的CPU, 以及在手机电源管理中的动态电源管理(DPM) 和 ...

最新文章

  1. C# 利用Jmail接收邮件
  2. 卫星电视巨头DISH网络接受比特币现金支付
  3. 对于jQuery的初步印象
  4. Ubuntu16.04 卸载Gazebo7 安装 Gazebo9
  5. 效能优化实践:C/C++单元测试万能插桩工具
  6. WinCE的快速启动
  7. 5个能提高你工作效率的Excel技巧
  8. 中国移动云智融合峰会 | 1+1>2, 引领创新发展
  9. C语言给考场编号,求:用C设计考场的编排,生成准考证号基本要求:br/(1)用 爱问知识人...
  10. 红黑树的红黑有什么意义_红枸杞和黑枸杞有什么不同?黑枸杞真的比红枸杞要好吗?...
  11. 6月9日 基于激光雷达的SLAM算法对比分析
  12. js获取html标签中的数据
  13. 好用的源码行数统计工具——cloc
  14. 查看 java opts,如何在命令提示符中检查JAVA_OPTS值?
  15. 军团要塞2无限子弹服务器,【图片】教大家创建tf2服务器(互联网的)小白版~【军团要塞吧】_百度贴吧...
  16. 计算机ROM指什么意思,ROM是什么 刷ROM是什么意思
  17. 【cocos】Sprite九宫格拉伸SLICED
  18. 远程升级FOTA/SOTA
  19. git问题:head detached at xxxx
  20. ICAP互换客户端地址协议iOS实现示例

热门文章

  1. bmc控制卡_X86服务器BMC基板管理控制器介绍
  2. oracle两个表数据比较,oracle数据库两表数据比较
  3. 小程序多少钱?一个小程序多少钱?
  4. RIST 和 SRT 概述:选择什么以及为什么
  5. android 自定义声音,如何在Android设备中添加自己的自定义声音
  6. synology 黑群晖 5.0-4418 gnoboot官方pat稳定版安装教程(修复相册)
  7. IO流之 File 类和字节流
  8. C语言函数及分文件编程
  9. u9服务器系统,U9服务器选型和部署方案doc .doc
  10. 软件测试面霸的修炼心经