您好!欢迎来到源码码网

电脑鼠软件开发调试方法

  • 行业资讯
  • 来源:源码码网
  • 编辑:admin
  • 时间:2020-04-23 10:44
  • 阅读:282

电脑鼠是一种小型机器人车辆,英文名称Micromouse,是使用嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置[1]。电脑鼠是一种大学生竞赛项目产品,其主要功能是自动在规定的迷宫赛场中搜索最佳路径并以最快速度完成冲刺。该项目起源于美国,至今已有30多年历史,现在我国高校中是一种非常盛行的比赛。电脑鼠的软件程序是实现其功能和提高其性能的核心组成部分,电脑鼠程序采用专用的嵌入式软件开发环境进行开发和调试,本文以IAR公司的软件集成开发环境为例介绍电脑鼠软件开发调试环境配置及程序开发调试方法。

1软件开发环境介绍

1.1IAREWARM嵌入式软件集成开发环境

IAREWARM是一个针对ARM处理器的集成开发环境,包含项目管理器、编辑器、C/C++编译器和ARM汇编器、连接器XLINK和支持RTOS的调试工具C-SPY。在EWARM环境下可以使用C/C++和汇编语言方便地开发嵌入式应用程序。对比其他的ARM开发环境,IAREWARM具有入门容易、使用方便和代码紧凑等特点。本文以IAREWARM4.42a版本为例,微控制器采用基于ARMCotex-M3内核的LM3S615。

1.2LMLINK调试器

调试器是嵌入式软件程序下载到单片机并进行代码调试的工具。LMLINK是由广州致远电子有限公司开发的低成本高性能USBJTAG调试器,专门用于对流明诺瑞系列单片机程序的下载与调试。LMLINK采用USB接口与电脑连接,打破传统的用并口和串口下载程序的方式,无论是台式电脑还是笔记本电脑都易于应用。

2软件开发环境配置

2.1安装流明诺瑞驱动库

流明诺瑞驱动库是基于ARMCotex-M3微控制器芯片访问外设的底层驱动程序代码集合[2],电脑鼠控制程序需要连接驱动库才能控制电脑鼠运行。因此,在配置软件环境前需要安装流明诺瑞驱动库。流明诺瑞驱动库是一系列的系统文件,包括连接器命令文件(*.xcl),驱动库头文件,以及底层驱动函数库。最新的流明诺瑞驱动库可从官网()下载。安装驱动库的任务是把相应的驱动库文件拷贝到指定的目录,并在新建软件项目时进行配置。具体操作如下。(1)拷贝连接器命令文件。将连接器命令文件复制到IAREWARM的默认路径下面,即把文件“standalone.xcl”复制并粘贴到“$TOOLKIT_DIR$IARSystemsEmbeddedWorkbench4.0Kickstartarmconfig”目录下,并更改名称为“lnk_LM3.xcl”,便于识别此连接文件用于ARMCotex-M3内核单片机。(2)拷贝驱动库头文件。在软件安装目录“inc”文件夹下新建一个“Luminary”文件夹,把驱动库根目录中以及驱动库“src”文件夹和驱动库“inc”文件夹中的头文件(*.h)复制粘贴到文件夹“Luminary”下。这样避免每次编译连接时系统提示选择需要连接的文件目录。(3)拷贝底层驱动函数库。在驱动库根目录下打开“$TOOLKIT_DIR$DriverLibsrcewarmExe”,复制函数库文件“driverlib.r79”。在软件IAREWARM的安装目录“$TOOLKIT_DIR$IARSystemsEmbeddedWorkbench4.0Kickstartarmlib”下新建一个“Luminary”文件夹,把“driverlib.r79”粘贴到该文件夹下。通过以上操作即完成了流明诺瑞驱动库安装。

2.2IAREWARM创建项目和添加文件

首先创建一个基于ARM工具链的新项目,然后在新项目中创建3个文件组。文件组用于对项目文件分类放置,使项目结构清晰和便于管理,3个文件组分别是startup文件组,src文件组和lib文件组。startup文件组用于存放项目引导文件“startup.c”,src文件组用于存放项目代码文件,项目代码由开发项目的程序员编写,lib文件组用于存放底层驱动函数库文件。创建文件组后,把项目引导文件和底层驱动函数库文件分别加入相应的文件组。在src文件组中创建项目代码文件并编写代码。

2.3IAREWARM集成开发环境配置

2.3.1通用选件设置打开或新建一个项目后,在“Project”项下拉列表中选择“Option”选项,即可打开选件设置窗口。在“GeneralOption”的“Target”选项中选择单片机内核和单片机型号以及字符编码格式。此处选择内核Cotex-M3,选择单片机LuminaryLM3S615,字节顺序选择Little,即小端格式。堆栈对齐方式选择4bytes。2.3.2C/C++编译器选件设置在编译器选件设置中要添加流明诺瑞驱动库头文件,因此在附加include文件目录中写入“$TOOLKIT_DIR$INCLuminary”,以便编译器能够找到驱动库函数的声明,否则编译无法通过。2.3.3Assembler选件设置本项选用默认设置。2.3.4连接器选件设置连接器选件包括Output,Extraoutput,List和Config选项。Output选项允许用户选择输出文件是否带调试信息。Extraoutput选项可选是否产生附加的输出文件及其格式。List选项允许生成存储器分配MAP文件。Config选项定义连接器命令文件。连接器命令文件中包含连接器的各项命令行参数,主要用于控制程序各种代码段和数据段在存储器中如何分布。在连接器命令文件中,选择覆盖默认设置,选择连接器命令文件lnk_LM3.xcl。在程序复位入口点栏输入ResetISR,当系统上电时启动文件由ResetISR处开始执行。2.3.5Debugger选件设置调试器的选件设置包括调试工具选择和程序下载设置。用户可根据自己的需要进行配置。

3软件开发调试过程

电脑鼠程序是基于红外传感器的自动机器人车辆,传感器的校准和程序调试是同时进行的。当电脑鼠的速度较慢时,对传感器的信号强度要求较低,即传感器信号在一定距离范围内被检测到即可,但是在冲刺阶段,当电脑鼠速度较快时,传感器信号必须处于某一限定区间内,否则会出现撞壁或提前转弯现象,导致电脑鼠中途失控,无法完成走迷宫任务。电脑鼠程序功能包括搜索算法开发、极限速度值设定、加速度调节以及转弯角度调节等。搜索算法中有右手法则、左手法则、中右法则、中左法则、中心法则等[3]。以右手法则为例,程序首先判断右方是否有路,然后判断前方是否有路,最后判断左方是否有路,转弯优先方向依次是右、前、左,如果前3个方向均无路,电脑鼠将转弯180°后回到上一个记忆的路口。其他的算法类似。通过电脑鼠在迷宫中的表现,可更改极限速度值、加速度值以及转弯角度,优先保证电脑鼠完成迷宫搜索,然后调整程序参数和传感器值,逐步提高电脑鼠的速度,使其性能不断优化。

4结语

电脑鼠的程序开发与调试是学生学习电脑鼠的重要内容,本文对开发工具驱动库的安装、工具的配置、程序开发与调试方法进行了分析与介绍,特别是底层驱动库的安装和IAREWARM集成开发环境的配置,对于软件程序是否能够正常编译连接及下载调试至关重要。本文有助于学生了解开发环境,熟悉开发流程以及工作技巧,快速提高开发技能。


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • Eyoucms网站根目录被频繁的上传文件的解决方法
  • Eyoucms网站根目录被频繁的上传文件的解决方法
  • 使用Eyoucms建站的同学应该都遇到过网站被黑或者被攻击的情况,网站在被黑以后,在根目录下会频繁的出现某个php文件,正常情况下,这种文件你删除后,隔几分钟后就会重新被上传,用各种扫描查杀也是找不到的,小如下图:解决办法:找到:/template/pc/index.htm,一般都会在底部出现copy的代码,删除即可。基本上该IP地址都是来自于漂亮国。当然我们也可以在期初的时候通过宝塔设置屏蔽国外IP地址的办法尽量的做好预防工作,避免类
  • 建站技巧
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2024-06-12 13:26
  • 阅读:155
  • 阿里云ecs云服务器使用非root账号登陆实例
  • 阿里云ecs云服务器使用非root账号登陆实例
  • 在某些时候我们为了避免服务器被攻击,需要使用系统用户root登录Linux操作系统的ECS实例,这样可以获取系统最大权限。但是该方式虽然便于您进行系统运维操作,但如果ECS实例被入侵,则会存在影响严重的数据安全风险,因此通常情况下,我们会通过一些配置限制root账户登录,而创建新的登录账户,并赋予一定的权限,下边就说说如何进行非root账户权限加固。1、创建新账号ecs-useradduserecs-user 2、为新账
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2024-06-07 09:19
  • 阅读:135
  • 旦煜科技定位教培二级市场 探索行业新需求
  • 旦煜科技定位教培二级市场 探索行业新需求
  • 随着民办教培市场的不断发展与变革,行业面临着前所未有的机遇与挑战。旦煜科技作为多年的业内企业,凭借敏锐的市场洞察力和创新精神,精准定位二级市场,积极探索民办教培新需求,为行业的未来发展注入了新的活力。
  • 行业资讯
  • 来源:旦煜科技
  • 编辑:旦煜科技
  • 时间:2024-05-24 15:04
  • 阅读:170
  • js实现一键复制的几种方法
  • js实现一键复制的几种方法
  • JS实现一键复制可以使用以下方法:1、使用document.execCommand()方法实现复制:function copyTextToClipboard(text) {  var textarea = document.createElement(”textarea”);  textarea.value =
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2024-05-18 13:44
  • 阅读:186
  • bootstrap ui框架能用在uniapp中吗?
  • bootstrap ui框架能用在uniapp中吗?
  • BootstrapUI框架通常是前端开发中的一种工具,它提供了一套预定义的CSS样式和组件,用于快速构建响应式布局的网页。然而,UniApp是一个使用Vue.js开发跨平台应用的框架,它可以用来开发iOS、Android、以及各种小程序和H5应用。
  • 互动社区
  • 来源:源码码网
  • 编辑:热度建站
  • 时间:2024-04-12 00:04
  • 阅读:342
联系客服
源码代售 源码咨询 素材咨询 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部