C test针对Keil 5项目STM32F0xx系列单元测试调试

本文由用户“S型美娇娘”分享发布 更新时间:2021-05-07 07:02:09 举报文档

以下为《C test针对Keil 5项目STM32F0xx系列单元测试调试》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

C++test针对Keil 5项目STM32F091RCTx系列单元测试调试

操作系统:WIN7 64

编译器:keil 5,armcc 5.04

芯片系列:STM32F091RCTx

测试工具:C++test 10.3

调试过程:

定制运行时库

修改C++test安装目录[CPPTEST_DIR]\Parasoft\C++test\10.3\engine\runtime\src\transport下CppTestTransportRS232STM32F103ZE.c文件内容,主要修改串口通信内容。该文件修改的内容为:

修改/*#include "../../INC/ST/STM32F10x/stm32f10x.h"为项目下的stm32f10x.h,如: #include "C:\Users\Gokhan\Desktop\SampleProject\Drivers\CMSIS\Device\ST\STM32F0xx\Include\stm32f0xx.h"

2)将宏定义

#define USART_FLAG_TXE ((u16)0x0080)

#define USART_FLAG_RXNE ((u16)0x0020)

修改为:

#define USART_FLAG_TXE ((uint16_t)0x0080)

#define USART_FLAG_RXNE ((uint16_t)0x0020)

3)将localRsSendInternalByte()函数的

while (!(USARTx->SR & USART_FLAG_TXE));

USARTx->DR = (byte & 0x1FFU);

修改为:

while (!(USARTx->ISR & USART_FLAG_TXE));

USARTx->TDR = (byte & 0x1FFU);

4)将localRsRecvInternalByte()函数的

while (!(USARTx->SR & USART_FLAG_RXNE));

*pByte = ((unsigned char)(USARTx->DR & 0x1FFU));

修改为:

while (!(USARTx->ISR & USART_FLAG_RXNE));

*pByte = ((unsigned char)(USARTx->RDR & 0x1FFU));

修改后的文件如下链接:



修改项目堆栈大小

将项目startup_stm32f091xc.s设置的堆栈进行大小修改:

Stack_Size EQU 0x00200修改为Stack_Size EQU 0x001400

Heap_Size EQU 0x00200修改为Heap_Size EQU 0x001400

Keil下配置的debug模式为ULINK2,并非Simulator,并在Initialization File输入.\cpptest.ini

新建“运行时-自定义 重新定位ARM编译工具C语言库”以创建void _sys_exit(int return_code)函数

右键项目->新建->其他,选择C++test->“运行时-自定义 重新定位ARM编译工具C语言库”,如 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 的测试配置“Run Keil uVision Tests - ULINK2 (UART)”

1)测试配置下插装功能修改为:



2)测试配置uVision IDE executable file 设置为keil启动路径,如:C:\Keil_v5\UV4\UV4.exe



根据项目实际情况修改目标机端口、主机端口、波特率、字节大小、停止位等等,如下图所示:



【特别注意:客户项目串口通信开始使用的波特率为1200,将测试配置的波特率也设置为1200后,由于速度不够,读取的数据不完整,导致用例执行完后测试日志没有数据,后来将项目串口通信波特率和测试配置波特率都修改为115200,问题解决】。

[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《C test针对Keil 5项目STM32F0xx系列单元测试调试》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览