openocd通常用gdb进行调试,其实也可以用telnet进行调试,而且telnet比gdb更底层。
telnet通过4444端口跟openocd相连。但是默认情况下windows是不支持telnet服务的,会提示如下:
这个时候需要到setting-->程序-->程序-->启动或关闭windows功能里面把telnet功能打开即可。
然后就可以连上了。
我想做的是把一个bin文件烧到flash中,我们知道gdb的load命令只能加载elf格式的文件,对于bin文件没法加载。telnet可以。
但是文件需要写全路径,至少我试的是这样,而且不能写'c:\',需要写'c:/',不然都提示找不到文件。
但是load_image命令只能把文件加载到ram中,无法写入flash,如果后面跟的地址是flash地址,虽然也会提示download成功,但实际上并没有写入。
烧入Flash需要用flash write bank命令。提醒一下写flash之前必须要先擦除一下,否则可能烧不对。
这就写成功了,write_bank后面的0是在运行openocd时在cfg文件里配的,后面的地址是flash内的偏移地址,不是全地址。