内容发布更新时间 : 2025/7/23 3:34:14星期一 下面是文章的全部内容请认真阅读。
《嵌入式系统》试题库
14、 指挥台与发报机之间确定采用串口(RS232C 协议)进行双机互联(传送命令,反馈 信息),且没有采用硬件握手机制。由于环境干扰比较厉害,显然其通信可靠性不高。在 不改变串口通信机制的前提下(物理层不变),利用你所学的知识,提出一种经济、现实 的方案来提高其通信可靠性。
答:模仿 USB 协议,采取两种措施:①数据+CRC 校验;②链路层握手协议,建立可靠链 路。(
①数据+CRC 校验
数据(8 字符)+CRC 校验(2 字符),具体分析略。 ②链路层握手协议
事务由令牌包、数据包和握手包构成,具体分析略。
15、 请用 C 语言编写一个简单框架程序(个别地方也可文字叙述),要求体现前后台系统 的编程思想(任务就是一个函数,直接调用,无需实现,但至少三个任务),并分析前后 台系统的优缺点以及它的实时性如何决定。 答:
后台程序: void main( void ) {
Init( ) //初始化 while(1)
{ if( eventFlag1) task1( ); else if( eventFlag2) task2( ); else if( eventFlag3)
task3( );
}
}
前台程序:
__irq void HandleFlag1( void ) { 清中断请求标志; eventFlag1 = true; }
__irq void HandleFlag2( void )
第 41 页 共 44 页
《嵌入式系统》试题库
{
清中断请求标志; eventFlag2 = true;
}
__irq void HandleFlag3( void ) { 清中断请求标志; eventFlag3 = true; }
优点:系统结构简单,几乎不需要额外的存储开销。
缺点:所有的任务具有相同的优先级别,任务响应时间不可预测;后台程序是一个无限循 环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其他任务得 不到机会被处理,从而造成整个系统的崩溃。 实时性:取决于所有其它任务的执行时间之和。
16、 请用 C 语言编写一个基于前后台系统的用于双机互联(实验箱与 PC 机)的串口通信 程序。要求体现前后台系统的编程思想,有收、发、处理三个任务,并分析前后台系统的 优缺点以及它的实时性如何决定(变量函数声明、启动代码、初始化函数不用写,非关键 程序可文字叙述)。 答:
后台程序: void main( void ) {
Init( ) // 初始化 while(1)
{ if( eventRxReady )
task_uartrx( ); if( eventProcess ) task_process( ); if( eventTxReady ) task_uarttx( ); } }
前台程序:
__irq void HandlerURXD1 ( void ) { // 清中断请求标志; eventRxReady = true;
第 42 页 共 44 页
《嵌入式系统》试题库
}
__irq void HandlerUTXD1 ( void ) { // 清中断请求标志; eventTxReady = true; }
优点:系统结构简单,几乎不需