admin管理员组

文章数量:1653539

1、背景
自研DTU项目,替代别家产品,降低装置成本。技术路线上,采用国产gd32f450芯片和rtthread实时操作系统,运行轻量化tcp/ip协议栈lwip,通过ppp协议拨号上网,分别通过串口和网口透传数据,网口使用nat。

2、总结
▶串口6中断模式接收数据导致芯片崩溃
当时的现象是这样的,不开中断的情况下,串口6收发数据正常;如果打开中断模式,发送数据没有问题,一旦收到任何数据,芯片立马跑飞挂掉。一开始怀疑的是中断处理函数有问题,然而怎么修改也不见有效,也看了启动文件,前面几眼也没发现有什么问题,过了几天再看,发现问题了,启动文件的中断向量表有缺失,因为在串口6的中断之前,所以造成了地址偏移,然后串口6的中断号处填的是串口7的中断处理函数,详细可以看rtthread论坛的帖子GD32 GCC下startup中断向量表有遗漏
todo:如果提供了串口7的中断处理函数,芯片是否能正常工作?

▶使用外部时钟时,串口打印乱码
当初在排除串口工具和电脑的问题后,也看了系统的时钟配置,觉得没啥问题,就是一个宏定义而已,过了几天后再看,发现开启外部时钟时,默认的外部时钟是25M,但是我们的板子上是8M的晶振,不乱码才怪!详细可以看rtthread论坛的帖子外部时钟配置

本文标签: RTTHREADgccnatppplwIP