IAR环境下,使用Live Watch实时监控变量值
循环放在数组里,也就是RAM里
__root uint8_t ttW[ 4096 ] = {
0}; //root强制编译
__root uint16_t tt_cntW = 0;
__root static uint16_t tt_testW = 0;
uint8_t mcu_flash_write(uint32_t addr, const uint8_t *p_data, uint32_t size)
{
//自己测试写入到RAM里面
for (tt_cntW = 0; tt_cntW < size; tt_cntW++){
ttW[ tt_testW++ ] = p_data[ tt_cntW ];
}
return 0;
}
IAR替换mcu库
进入IAR库路径config文件夹下,将使用的板子PAC55XX的4个配置文件替换到原IAR的config路径下:
Linux中删除swp文件
Linux vi 非正常退出都会在相应的位置保留.swp文件。并且这是隐藏文件,看不见
每次再vi 的时候就会出现告警信息并且导致无法编辑。注意swp文件是隐藏的 可以用ls -a 或者ls -al查看。怎么删除呢? rm .XXX.swp。注意有个小数点. 不然会提示找不到文件。
使用J-Link通过SWD接口直接下载.hex文件和.bin文件到MCU(下载J-Flash软件)
https://blog.csdn.net/qq_38125389/article/details/103335888
https://blog.csdn.net/weixin_30166267/article/details/105890712
也可以在keil中将编译好的文件替换成你想下载的文件,直接点击load即可!
linux设置时间命令
Jlink无法识别排查方法
IAR JLINK无法识别,并且更新了jlink固件,可以打开keil并来回拔插几次JLINK,再次进入debug菜单点击settings keil就能识别出来(同时也解决了因识别不到JLINK导致的电脑卡顿的问题),此时再次打开IAR也能识别使用了。
编译没问题下载失败提示很多乱七八糟东西试下把下载频率调低一点,1MHz试下。有时候识别不出来调低频率立马出来了
万用表测量发现板子给蓝牙模块供电不足3.3V,使用jlink单独供电即可
boot脚和reset脚测量电平是否异常
多拔插几次,频率设置小点
能识别,下载显示cortex-m0…多点几次下载,或者胡工说的拉不动?手动把芯海蓝牙拉高boot拉低reset
(boot识别成功率低于APP部分,可以先打开APP部分代码识别)
Linux设置开机自运行
Linux系统自动运行脚本设置路径在/etc/init.d,里面任何一个都可以,一般选择rcS,这里开机设置IP地址。
while循环&CPU占用率高问题深入分析与解决方案
https://www.cnblogs.com/jpfss/p/10980236.html
这篇漫画讲的也很形象:https://mp.weixin.qq.com/s/9EUsVWhEr8sMrqZES2ziww
tcpdump抓包命令
https://blog.csdn.net/eleanoryss/article/details/128305659
//抓取端口号为8883的数据放到 .pcap文件里 s0表示不限制保存文件大小
tcpdump -i any port 8883 -w ./dump.pcap -s0//.pcap文件方便wireshark软件分析,也可以命名为.log文件
软件SPI(芯海的硬件SPI卡顿)
软件SPI特别慢
初始化
//芯海原厂硬件SPI初始化
// cfg1.ssn_pin = P27;
// cfg1.sclk_pin = P26;