1、【1】安装好J-Link驱动,例安装V6.50b版本。【2】打开集成开发环境IDE Keil uVision5,建立好相应的项目工程。这里是建立东软载波HR8P506的工程为例子讲解。【3】将J-Link RTT Client源码移植到已建立好的工程中。将源文件下四个文件添加到工程中,并添加头文件。SEGGER_RTT.cSEGGER_RTT.hSEGGER_RTT_Conf.cSEGGER_RTT_Conf.h
2、【1】标准C下某些宏定义说明。__UVISION_VERSION :Keil uVision版本号,以整型形式展示。__STDC_VERSION__ :若当前编译器符合C89, 则该宏被定义为199409L;若当前编译器符合C99, 则该宏被定义为199901L。__STDC_HOSTED__ :若当前系统是"本地系统(hosted)", 则该宏被定义为1。本地系统表示当前系统拥有完整的标准C库。__STDC__ :若当前编译器符合ISO标准, 则该宏被定义为1。__DATE__ :源程序最新的编译日期,以"Mmm dd yyyy"格式字符串形式展示。__TIME__ :源程序最新的编译时间, 以"hh:mm:ss"格式字符串形式展示。__FILE__ :当前源文件的文件名,字符串形式展示。__LINE__ :当前本行语句所在的行号,以整型形式展示。【2】输出常用类型在该编译器下所对应的字节数。long long int :长长整型short int :短整型long int :长整型double :双精度浮点数float :单精度浮点数char :字符型int : 整型
3、【1】初始化SEGGER_RTT_Init()函数,该函数在SEGGER_RTT.c文件下,初始化后次可以使用。void SEGGER_RTT_Init (void){ _Init();}【2】想使用SEGGER RTT打印输出时可使用SEGGER_RTT_printf()函数,还函数在SEGGER_RTT_Conf.c文件下。int SEGGER_RTT_printf(unsigned BufferIndex, const char * sFormat, ...){ va_list ParamList; va_start(ParamList, sFormat); return SEGGER_RTT_vprintf(BufferIndex, sFormat, &ParamList);}参数说明 :BufferIndex :选择输出通道,默认选择0。sFormat :将要格式化输出数据。
4、【1】编写Keil标准C下某些宏定义函数和常用类型在该编译器下所对应的字节数函数。static void vKeil_Macro_Information(void){ SEGGER_RTT_printf(0, "******************* Keil Macro Information ******************************\r\n"); SEGGER_RTT_printf(0, "uVersion : V%d\r\n", __UVISION_VERSION); SEGGER_RTT_printf(0, "Date1 : %s\r\n", __DATE__); SEGGER_RTT_printf(0, "Time : %s\r\n", __TIME__); SEGGER_RTT_printf(0, "File : %s\r\n", __FILE__); SEGGER_RTT_printf(0, "Line : %d\r\n", __LINE__); SEGGER_RTT_printf(0, "Build Time : %s %s\r\n", __DATE__, __TIME__); SEGGER_RTT_printf(0, "ISO Standard : %d\r\n", __STDC__); SEGGER_RTT_printf(0, "C99 Compiler : %d\r\n", __STDC_VERSION__); SEGGER_RTT_printf(0, "Hosted Sys : %d\r\n", __STDC_HOSTED__); SEGGER_RTT_printf(0, "******************* Data Type Byte **********************************\r\n"); SEGGER_RTT_printf(0, "long long int : %02d\r\n", sizeof(long long int)); SEGGER_RTT_printf(0, "short int : %02d\r\n", sizeof(short int)); SEGGER_RTT_printf(0, "long int : %02d\r\n", sizeof(long int)); SEGGER_RTT_printf(0, "double : %02d\r\n", sizeof(double)); SEGGER_RTT_printf(0, "float : %02d\r\n", sizeof(float)); SEGGER_RTT_printf(0, "char : %02d\r\n", sizeof(char)); SEGGER_RTT_printf(0, "int : %02d\r\n", sizeof(int));}【2】编写主函数int main(void){ System_initialization(); SEGGER_RTT_Init(); vKeil_Macro_Information(); while(1);}
5、【1】编译源程序,修改序错误,知道没有错误和警告为止。【2】将程序下载到目标开发板中验证。【3】打开J-Link RTT Viewer V6.50b软件,选择好目标设备类型已经接口和传输速率。我用的单片机是HR8P506,因为上面没有这个型号,我就选择相应的M0内核的单片机即可。
6、【1】查看输出信息,说明我们已成功。