免费智能真题库 > 历年试卷 > 嵌入式系统设计师 > 2021年上半年 嵌入式系统设计师 下午试卷 案例
  第5题      

 
【说明】
计算机系统中以字节为单位存储信息,每个地址单元都对应着一个字节。但是在C程序中除了8bit的char型数据外,还有16bit的short型、32bit的int型及long型(要看具体的编译器)。另外,对于16位或者32位的处理器,由于寄存器宽度为多个字节,那么必然存在如何安排多个字节的问题,因此就导致了大端(Big-endian)存储模式和小端(Little-endian)存储模式。问题1是关于大端模式和小端模式方面的问题。
在C语言中,可以用指针变量指向整型变量、字符串、数组、结构变量,也可以指向一个函数,对指针的用法非常灵活,也很容易出错。其中,函数指针变量为较高级的用法。问题2是将函数指针变量应用于设备驱动程序中的问题。
飞腾FT2000-4国产处理器的OSPL(Ouad Serial Peripheral Interface),是为外接SPL设备所提供的专用接口,问题3是用C语言编写的关于OSPI设备驱动的部分操作的问题。
 
问题:5.1   对于一个32bit的十六进制整数0x12345678,在Little-endian模式以及Big-endian模式内存中的存储方式(假设从地址0x8000开始存放)如表5-1所示。请完成表5-1的内容,填写由0x8000到0x8003字段中大端模式和小端模式下的值。

 
问题:5.2   请用C语言的函数指针变量,对manage_device函数进行改造,填写下面C语言代码中的(1)~(4)处的代码,将解答填入答题纸的对应栏内。

 
问题:5.3   在飞腾FT2000-4国产处理器上,李工利用 QSPI(Quad Serial Peripheral Interface)接口外接SPI Flash 芯片,设计了针对该SPIFlash的擦除换作函数。
SPI Flash的擦除操作函数实现流程分为2步。
第一步:先对QSPI中的CMD_PORT寄存器的[31:24]位写入使能命令,并置位bit22;再对QSPI中的LD_PORT寄存器写入0x01。
第二步:先对QSPI中的CMD_PORT寄存器的[31:24]位写入Flash擦除命令,并置位bit22和bit15;再对ADDR_PORT寄存器中写入要擦除的地址;最后对LD_PORT寄存器写入0x01。
飞腾FT2000-4国产处理器的QSPI中的CMD_PORT、ADDR_PORT、LD_PORT三个寄存器各个bit 位对应含义如下表5-2、表5-3和表5-4所示。

李工设计的QSPI Flash擦除函数代码如下:


 
 
 

   题号导航      2021年上半年 嵌入式系统设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第5题    在手机中做本题