软件模拟器PICSIM调试及其开发
- 格式:docx
- 大小:12.12 KB
- 文档页数:3
模拟器结构论文:GDB-sim模拟器结构剖析摘要:本文从结构上剖析了gdb—sim模拟器,对configure文件进行了解释、对动态的程序接口、静态的数据结构进行了分析。
在硬件结构模拟上对cpu、内存、总线、设备的模拟及在行为模拟上对cpu取指令(fetch)、指令解码(decode)、指令执行(execute)行为和外设行为的模拟分别进行了描述。
关键词:模拟器、gdb、sim、cpu模拟、硬件模拟、设备模拟一、引言gdb,作为一种很优秀的开源调试器,是gnu开发工具链中很重要的产品,由于其适用于多种平台及对多种cpu的支持而受到普遍的关注。
在pc上进行开发嵌入式程序时(例如mips、arm程序),不能在pc的x86平台上进行调试,只能通过仿真器连接开发板进行调试或通过gdb内嵌的sim模拟器进行调试。
在进行非驱动开发时,使用内嵌sim模拟器调试是一个较好的选择。
本文将对sim模拟器的结构及运行进行剖析。
二、配置及编译产生可执行程序的过程为配置、编译、安装。
该模拟器支持arm、mips、powerpc、hitachi super-h等cpu。
在编译前要通过configure来指定target。
例如:./configure --target=mips在configure后,执行命令make。
产生可执行文件run 和库文件libsim.a。
最后通过执行命令make install安装run到usr/local/bin目录下和安装libsim.a到usr/local/lib目录下。
在这三个过程中用到了configure和makefile两个文件。
1.configure分析gnu的模拟器支持多类型的cpu,通过configure的target选项来配置不同的cpu系统。
例如:在linux或cygwin下配置mips模拟器执行命令./configure --target=mipsconfigure主要作用:根据target决定模拟器挂载的设备生成相关环境变量(包括源文件路径、可执行文件路径、库文件路径等)读入makefile.in文件,根据配置生成makefile文件。
第二章基础实验2.1 MPLAB安装及联调实验2.1.1 实验目的(1)掌握MPLAB IDE集成环境安装、工程创建、编译与调试方法。
(2)掌握ICD2与实验板联调方法。
(3)对实验系统测试例程进行编译、调试。
(4)熟悉实验板硬件结构。
2.1.2 实验仪器(1)实验板APP0001。
(2)ICD2下载器。
2.1.3 MPLAB IDE集成环境安装、工程创建、编译与调试方法1. MPLAB IDE集成环境安装MPLAB的安装,这里以MPLAB Tools v8.20为例进行讲解:(1)打开安装包,双击“Install_MPLAB_v820”文件进入安装程序。
(2)按照安装提示进行安装。
(3)在setup type对话框中选择“complete”,点击“Next”按钮。
(4)选择安装路径后点“Next”按钮。
(5)按照提示选择“I accept the terns of the license agreement”,点击"Next"按钮。
(6)如果C编译器选择picc编译器,则在跳出如图2.1的窗口点击“是(Y)”继续安装,如果选择安装MPLAB-C18-v2_40,则点击“否(N)”。
如果没有跳出这个窗口,直接跳出完成对话框,则直接单击完成安装。
图2.1 选择picc编译器窗口(7)点击“完成”,完成MAP_LAB安装。
2. C编译器的安装这里以MPLAB-C18-v2_40为例:(1)打开安装文件,进入安装环境,按照提示进行安装。
(2)安装过程中,选择安装路径,当第一次安装MPLAB C18 时,默认的安装目录是C:\mcc18。
如果是安装升级程序,安装程序则会把默认安装目录设置为上次安装时的目录。
在升级时,所选的安装目录必须是上次安装或升级时的安装目录。
指定目录后请点击Next。
选中相应的复选框,选择需要安装的组件,参见图2.2。
图2.2 选择需要安装的组件(3)为系统选择具体的MPLAB C18 配置选项,如图 2.3所示。
X X X X 《PIC单片机课程设计》数字钟设计报告学生: x x x学号: ***********专业: *****************班级: ****************指导教师: **********二○一二年 12 月 16 日目录1.课程设计目的 (2)2.课程设计要求 (2)3.课程设计容 (2)4.问题分析 (6)5.设计体会 (6)6.参考书目 (6)7.附:PIC程序与仿真图 (7)1.课程设计目的①进一步熟悉PIC单片机原理与应用;②巩固并提高对这学期PIC单片机知识的学习和应用;③熟悉对PIC16F887的编程;④掌握实验板上的操作和运用;⑤了解数字钟的组成和原理,编写程序并在实验板上运行。
2.课程设计要求1)运用所学的PIC单片机知识,对PIC16F887进行编程,实现数字钟的功能。
2)在软件仿真可行后,下载到实验板上进行演示。
3)在基本功能实现的基础上,可以适当的添加一些附加功能。
4)设计完毕后,总结和整理资料,写成设计报告。
3.课程设计容运用PIC16F887芯片和DS1307时钟芯片,用C语言编程,通过ICD2烧写进芯片,在1602液晶显示屏上实现时间显示、运行的功能称为数字钟。
液晶显示屏显示着年、月、日、时、分、秒、星期。
数字钟有调整时间的功能,通过对按键的操作可以对时间进行调整。
3.1系统功能说明显示屏分两行显示,第一行显示日期:年—月—日、星期,第二行显示格式为时间(时:分:秒)。
显示秒由00一直加到59,分钟由00加到59,小时采用24小时制,由00加到23,星期由1一直加到7,日由01一直加到31,月由01一直加到12,年由2000一直加到2099。
按键操作时,按键S1按下时,数字加;按键S5按下时,数字减;按键S9按下时,位左移;按键S13按下时,位右移。
3.2设计步骤1、先画好仿真图;2、把数字钟分为几个模块,分别完成一个一个模块的编程;3、各个模块程序编写完成后,用仿真图仿真;4、若仿真图可实现,则把各个模块程序下载到实验板上运行;5、各个模块完成后再把各个模块串联起来,进行调试。
1. PID调试步骤没有一种控制算法比PID调节规律更有效、更方便的了。
现在一些时髦点的调节器基本源自PID。
甚至可以这样说:PID调节器是其它控制调节算法的吗。
为什么PID应用如此广泛、又长久不衰?因为PID解决了自动控制理论所要解决的最基本问题,既系统的稳定性、快速性和准确性。
调节PID的参数,可实现在系统稳定的前提下,兼顾系统的带载能力和抗扰能力,同时,在PID调节器中引入积分项,系统增加了一个零积点,使之成为一阶或一阶以上的系统,这样系统阶跃响应的稳态误差就为零。
由于自动控制系统被控对象的千差万别,PID的参数也必须随之变化,以满足系统的性能要求。
这就给使用者带来相当的麻烦,特别是对初学者。
下面简单介绍一下调试PID参数的一般步骤:1.负反馈自动控制理论也被称为负反馈控制理论。
首先检查系统接线,确定系统的反馈为负反馈。
例如电机调速系统,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。
其余系统同此方法。
2.PID调试一般原则a.在输出不振荡时,增大比例增益P。
b.在输出不振荡时,减小积分时间常数Ti。
c.在输出不振荡时,增大微分时间常数Td。
3.一般步骤a.确定比例增益P确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。
输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。
比例增益P调试完成。
b.确定积分时间常数Ti比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。
记录此时的Ti,设定PID 的积分时间常数Ti为当前值的150%~180%。
实验⼀MPLABIDE集成开发环境实验⼀MPLAB IDE集成开发环境⼀、实验⽬的1.熟悉MPLAB IDE集成开发环境,学习MPLAB软件的使⽤。
2.熟悉汇编语⾔的程序结构及使⽤⽅法。
3.熟悉MPLAB IDE的调试⽅法。
⼆、实验仪器设备MPLAB IDE8.0 PC机APP009实验开发板ICD2调试器三、实验原理MPLAB 集成开发环境(IDE)是综合的编辑器、项⽬管理器和设计平台,适⽤于使⽤Microchip 的PIC系列单⽚机和数字信号控制器进⾏嵌⼊式设计的应⽤开发。
⽤户界⾯上的某些部分可能会在将来的版本中有所变化,当新的器件推出时,新的功能也会添加进来。
MPLAB IDE 是适⽤于PIC系列单⽚机和dsPIC数字信号控制器,基于Windows操作系统的集成开发环境。
MPLAB IDE 提供以下功能:(1)使⽤内置编辑器创建和编辑源代码。
(2)汇编、编译和链接源代码。
(3)通过使⽤内置模拟器观察程序流程调试可执⾏逻辑;或者使⽤MPLABICE 2000和MPLAB ICE4000 仿真器或MPLABICD 2 在线调试器实时调试可执⾏逻辑。
(4)⽤模拟器或仿真器测量时间。
(5)在观察窗⼝中查看变量。
(6)使⽤MPLAB ICD 2、PICSTART? Plus 或PRO MATE? II 器件编程器烧写固件。
(7)使⽤MPLAB IDE 丰富的在线帮助快速找出问题的答案。
四、实验内容创建项⽬与调试,MPLAB IDE的⼊门使⽤学习。
汇编语⾔的程序结构及使⽤⽅法的学习。
五、实验操作步骤1.运⾏MPLAB IDE要启动IDE,双击桌⾯上的图标,或者选择Start>Programs>Microchip MPLABIDE>MPLAB IDE。
屏幕上⾸先会显⽰MPLAB IDE 的商标图案,然后出现MPLAB IDE的主窗⼝。
为了⽣成可由⽬标PIC 单⽚机或dsPIC数字信号控制器执⾏的代码,需要将源⽂件放⼊同⼀个项⽬中,然后⽤所选择的语⾔⼯具(汇编器、编译器和链接器等)编译代码。
利用Proteus仿真PIC应用系统Caizhiming 2008.4.25第一篇开发详细步骤一、在MAPLAB IDE中的操作步骤。
(这部分内容和以前介绍的一样,只需要创建项目、保存程序、编译3个步骤,其它的步骤不需要。
)1、创建一个新文件夹D:\PICTEST2、打开MAPLAB,在主菜单点击Project\New在PICTEST目录创建项目01_LedTest(注:该名称自己取),如上图。
3、点击主菜单File\New新建一个程序,并以porgram01命名(注:该名称自己取),存放在PICTEST文件夹。
并如下图添加到项目01_LetTest中。
程序内容如下:LIST p=16F877#include "P16F877.INC"delay1 equ 22hdelay2 equ 23hORG 0banksel TRISB ;选择TRISB所在的体bcf TRISB,0 ;RB0设置为输出banksel PORTB ;选择PORTB所在的体loop bsf PORTB,0 ;RB0=1call Delay ;延时bcf PORTB,0 ;RB0=0call Delay ;延时goto loop;************************************************ ; 延时子程序Delaymovlw 0FFhmovwf delay1clrf delay2Delayloopdecfsz delay2,1goto Delayloopdecfsz delay1,1goto Delayloopreturn;************************************************END4、选择单片机型号5、点击主菜单Project\Build All。
对程序进行编译,若通过则生成一个后缀为*.HEX的文件,该文件在Proteus仿真时要装入PIC单片机中。
1 PIC_MCC的模拟方法和数值计算1.1PIC_MCC的模拟原理目前在计算机模拟中大量采用低压射频放电模型来模拟材料的加工及改性。
但在低压情况下,粒子和中性气体的碰撞不足,无法使其达到平衡,在这种情况下我们认为放电所产生的负离子及电子的速度已经偏离了Maxwellian分布。
因此,流体力学的模拟方法已经无法准确的解决此类问题。
我们选用一种新的方法,即用运动分析的方法来解决低压等离子反应器中的物理和化学过程,用包含大量粒子的模型来解决Boltzmann方程。
粒子模型不仅可以解决刻蚀在基板上粒子的能量问题,而且还可以很好的解决粒子刻蚀率和各向异性的问题。
Monte Carlo算法与PIC模拟方法的有机结合就形成了PIC_MCC模拟方法。
在PIC_MCC中,我们假设中性气体是在时间与空间位置上的一种特定分布。
PIC_MCC模拟中采用的是一维空间(Zn),速度方向为三维(Vx,Vy,Vz)。
1.2 PIC模型在PIC模型中(如图a),粒子在电场力的作用下运动。
粒子模拟只能解决少量粒子存在的模型,这个模型中的粒子数量远远小于真实情况下等离子体中的粒子数目,模拟中的每个粒子即超粒子表示106—109个粒子。
在模拟中我们必须有足够多的超粒子,以减少粒子离散及噪声扰动。
超粒子与所划分的网格点数之比必须大于1。
在模拟中,我们主要解决Maxwell方程以及F=ma=q(E+v*B)。
电场可以通过Maxwall方程解出。
粒子在电场和磁场中所受的力可通过Newton_Lorentz方程解出。
图1.2.1 模拟中所用的系统模型(a),系统模型z轴方向上网格点的划分。
0点为接射频电极极板端,Z N 为接地电极极板端。
1.2.1 PIC模型中一个时间步循环的数值计算图1.2.2 PIC一个时间步的循环运算(1)电荷密度ρj 被分配到每个网格点j上,这个过程称之为电荷分配。
因此,先从连续的节点Zpi 然后再到离散的节点Zj来计算电荷密度ρj 。
UCGUI的模拟器UCGUISim详解本文转自感谢原作者(最近发现该网站已经撤销,不知道作者近况如何.想当初,他对我理解ucgui提供了很多支持和帮助呢!)。
联系方式: @一、问题的由来-----模拟器完成了什么在官方发布的UCGUI的源码包当中,附有很多的示例,源码与示例都打包成一个VC工程,在这个工程中我们可以编译和运行UCGUI的示例,进行UCGUI的图形编程,非常方便,这个工程结构下:Application-------UCGUI应用程序目录。
Config-------------UCGUI配制文件目录。
GUI----------------UCGUI源码文件。
Simulation--------模拟器库文件、模拟器头文件目录,主要有GUISim.lib这个提供模拟器的库文件。
System-------------应用程序的接口调用主文件,即调用用户的MainTask函数的m ain函数。
在这个官方提供的包中,我们进行UCGUI的图形编程时,大多都是将要写的程序源文件放加到Application目录中,其中应用程序中必不可少要提供的一个函数是MainTask(),好奇的朋友会发觉,我们程序并没创建窗口,为什么一运行就有窗口界面并有一个LCD 显示屏显示出自己的UCGUI程序的运行效果出来,其实这些我们看不到的代码都是写在GUISim.lib这个库文件当中的,为了了解模拟器具体做了些什么,我通过反编译,还原了官方模拟器的源码,下面详细介绍模拟器的构成[以下均为官方模拟器采用的方法]。
GUISim.lib主要完成以下几件事,具体的模块划分将在文中后面描述:1. 创建模拟器主窗口,这个窗体包括一些模拟器控制菜单,如打开LOG记录/打开调色板显示窗体/新建LCD模拟器窗体,以及暂停/继续模拟器。
2. 创建一个LCD模拟显示窗口并初始化其显示所需的各种数据结构,LCD窗口的大小由UCGUI中LCDConf.h中配制时指定(LCD_XSIZE/LCD_YSIZE),及其它的诸如每个象素占用多少位(LCD_BITSPERPIXEL),首先分配一块足够大的显存(4M)并初始化这块数据为0,每个象素占用不大于8位时模拟显示屏幕需要用到8位图,还必须初始化要用到的调色板。
软件模拟器PICSIM调试及其开发
我们知道单片机开发工具,一般都包括实时在线仿真器(Emulator)和烧写器(Programmer),其中在线仿真器是很好的工具,价格也较高。
对于一些想节省开发成本的用户,也可以用软件模拟器(Simulator)来替代实时仿真器,因为其成本一般都很低。
用软件模拟器和烧写器可组成一套低成本的开发系统,如针对Microchip著名的PIC单片机系列有PICKIT,即由软件模拟器PICSIM和烧写器PICPROG构。
(一)PIC单片机软件模拟器PICSIM功能特点
PICSIM即然称为软件模拟器,顾名思义即知它是一个纯软件,不需专门的仿真板,专门用于模拟调试PIC系列单片机的应用程序,具有如下功能特点:
1、工作平台:硬件PC机(286以上),软件DOS3.0以上
2、通过键盘在电脑屏幕上调试应用程序,没有实时插座输出。
3、全屏幕、多窗口调试环境。
单片机的所有资源都可以显示在屏幕上,并随着程序运行动态地变化,反映出单片机的运行及资源情况。
4、高级符号调试,用户可直接对符号变量进行操作。
5、断点设置,跟踪变量设置。
6、多种运行方式:单步、有限步长、快速模拟运行等。
7、用户可在线修改程序指令。
8、用户可在线修改寄存器值。
9、看门狗模拟。
10、在线帮助,解释每个调试命令的作用和用法。
(二)PIC单片机软件模拟器PICSIM调试屏幕。