以下为《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系列单元测试调试》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。