软件仿真
调试器和被调试程序是通过中断系统来实现的。
用调试器打开一个调试进程,然后调试器会根据调试信息找出源代码与机器码之间的对映关系.调试器会备份目标寄存器里的数据。
打断点是在加了中断的地方会增加一个指令,当目标执行到时,它就会产生一个中断,这时目标程序停止运行,并将它的运行状态保存下来,再由操作系统接管来得到目标程序运行的状态(所有的寄存器),这样就可以查看目标运行结果。然后调试器继续调试运行就是将这处的指令还原为默认初值(结束中断),中断结束返回就继续运行原程序。单步运行就是这样每执行执行机器指令就中断一次。还可以设置条件,在数据为特定值的时候中断。还可以在目标进行中断的时候修改它的内存空间或着寄存器,这样就可以实现动态修改变量的值。
调试器工作原理——基础篇
AUTOSAR框架
AUTOSAR的分层式设计,用于支持完整的软件和硬件模块的独立性(Independence),中间RTE(Runtime Environment)作为虚拟功能总线VFB(Virtual Functional Bus)的实现,隔离了上层的应用软件层(Application Layer)与下层的基础软件(Basic Software),摆脱了以往ECU软件开发与验证时对硬件系统的依赖。
AUTOSAR计划目标主要有三个:
1.建立独立于硬件的分层软件架构
2.为实施应用提供方法论,包括制定无缝的软件架构堆叠流程并将应用软件整合至ECU
3.制定各种车辆应用接口规范,作为应用软件整合标准,以便软件构件在不同汽车平台复用
运行环境RTE即是具体单个ECU上对VFB接口的实现,可以理解成是面向对象的编程语言中对象的创建。
各软件组件之间不允许直接进行通信,由RTE封装好了下层如OESK、COM等通信层BSW后,为上层提供数据通信所需的RTE API,再使用端口或者Sender-Receiver通信和Client-Server通信的方式进行交互。
软件开发流程
系统需求获取,需求分析,软件需求分析,软件框架设计,软件单元模块设计,软件单元开发,软件单元验证测试,系统集成,集成系统统一验证测试,测试,维护。
保证需求、软件、测试的一致性、双向可追溯性,每步结果要传达给所有相关方