2013年11月

升级到新版的 jlink 使用几次以后还是出现了这个问题。 Failed to prepare for programming. Failed to download RAMCode!
经过尝试发现,原因应该是程序导致的问题,所以解决方法也很简单。
先用 r 来复位,然后用 erase 命令擦除flash,然后在用 loadbin 加载写入。
对 jlinkflash.txt 进行相应的修改就可以在 eclipse 中使用了

昨天忽然一直正常使用的 jlink 4.62 结果不能用了,一直提示 Failed to prepare for programming. Failed to download RAMCode! 试了一下,以前保留的 jlink4.50 也不能用。只好跑 segger 上面下载了最新版本的 jlink,jlink-4.78.10-linux 选择RPM包,下载了以后,直接解压,到 ~/Downloads/temp 建立新的jlink文件夹 mkdir -p ~/opt/jlink/jlink-v478 把 rules 移动到jlink文件夹中, mv ~/Downloads/temp/etc/udev/rules.d/99-link.rules ~/opt/jlink/jlink-v478/ 把 主要文件 移动到jlink文件夹中, mv ~/Downloads/temp/opt/SEGGER/jlink/* ~/opt/jlink/jlink-v478/

切换到 root 模式, 然后建立 rules的快捷
cd /etc/udev/rules.d
ln -s /home/xyz/opt/jlink/jlink-v478/99-link.rules 99-link.rules

建立 lib 的快捷
cd /usr/lib
ln -s -d /home/xyz/opt/jlink/jlink-v478/libjlinkarm.so.4 libjlinkarm.so.4

这样就可以使用 jlink 了,也不会在出现写入不了的错误了。

在使用rtthread调试sdcard是出现了一下问题,总结如下。

  1. 在FindSCR 函数中死循环。 解决方法: 在FindSCR函数的 while循环中,增加跳出即可。 在index++; 下面增加 if (index >= 2) break;

  2. 写入出错,总是提醒 write failed: 2, buffer 0x20002ccc 解决方法: 查看错误号2对应的是 SDIO_FLAG_DCRCFAIL,原来SDIO_TRANSFER_CLK_DIV = 1,计算频率为 72M/(1+2) = 24M, 尝试降低频率 配置SDIO_TRANSFER_CLK_DIV=2后正常。