1、问题描述
1、按照《03_搭建开发环境与体验第1个程序.md》文档烧录doc_and_source_for_mcu_mpu\D1S\source\02_uart\里的程序,复位后串口打印@符号,没有按预期打印;
2、同样的程序,使用gdb进行调试,串口输出打印正常;
2、排查过程
1、首先按照文档中烧录步骤将bin文件烧录进去;
2、用xfel工具将flash中的数据读取出来进行对比,发现读出来的数据和写进去的数据不一致;
结论:虽然xfel工具显示写flash成功,但是实际数据并没有写进去;
3、确认写flash失败
1、使用xfel工具擦除flash,然后再读取flash中的数据,发现擦除失败,数据仍然还是旧的数据;
4、使用gdb调试程序,确认程序没有问题
(1)使用gdb调试程序,串口输出正常;
(2)使用gdb调试,是直接把程序下载到内存进行运行,此时和flash没有关系;
结论:说明串口硬件是没有问题的;
5、排查后得出的结论
(1)用xfel工具从flash中读取数据是正常的,每次都是读取出来通样的数据;
(2)使用xfel工具写flash,虽然显示写成功,但是每次读出来的数据都没有改变;
(3)使用gdb调试,串口正常输出,说明程序没有问题,串口硬件也没有问题;
(4)每次重启板子,串口都能输出@符号,说明flash里面存在程序并且会输出@符号,现在是不能重新写入flash;
结论:D1S板子的norFlash能正常读取,但是不能正常写入,优先硬件排查norFlash的写电路是否正常工作;