linux下使用CC Debugger读写芯片程序
有个事情一直困扰着我,我一般使用ubuntu linux系统,但当要用CC Debugger为TI的一些芯片烧写程序的时候,不得不切换到windows系统,太麻烦了,难道linux下不能用CC Debugger吗?我就带着这个问题问了一下谷哥,他果然什么都知道,得知cc-tool的存在,是一个老开源项目了,什么?我咋才知道呀!
嫌罗嗦可以直接点我跳过下面一段。
在github可以找到好多cc-tool项目,不过大部分都是fork别人的,其实追根溯源会发现此项目来自sourceforge,我是传送门,名为cctool,我试过其中一个,不过好久没更新了,下载下来尝试了一下,结果执行**./configure**时不能通过,提示libboost-all-dev版本太高,这是什么鬼?查看configure文件,大体知道是内部有这个依赖包的版本限制,只能说这个cctool太老了,然后又找到一个项目,这是fork自sourceforge的,可能就是作者本人的(我猜的,没去细究),在2015年10月份有更新过,尝试了一下,果然可以,查看15年10月份的commit,发现果然是修改了configure文件,不多说了,下面就说一下怎么编译安装和使用。
测试平台
- Ubuntu系统
- TI keyfob 开发套件(cc2541芯片)
- CC Debugger
编译安装
本文使用github的dashesy的项目cc-tool,表示十分感谢!
下载源文件
切换到用户随便一个目录,比如Downloads,git拷贝下载,进入项目源文件目录。
cd ~/Downloads
git clone https://github.com/dashesy/cc-tool.git
然后,
cd cc-tool-master
安装依赖包
sudo apt-get install libusb-1.0 libboost-all-dev
配置编译安装
-
配置
./configure
-
编译
make
-
安装
sudo make install
-
由于linux对usb设备访问有权限限制,所以还需要将项目文件中的udev下的90-cc-debugger.rules拷贝到
/etc/udev/rules.d
目录下,然后重启电脑。(如果不拷贝rule文件可以在每次使用cc-tool时加上sudo)sudo cp udev/90-cc-debugger.rules /etc/udev/rules.d/
使用
如果一切顺利的话,此时你应该将cc-tool安装成功,可以用man命令查看如何使用。
# Read entire flash into binary file image.xxx
# 读取整个Flash保存为image.xxx文件
cc-tmool -r image.xxx,bin
# Erase flash, write intel hex file image.hex and verify flash using default method
# 擦出flash,使用默认方法烧写intel hex格式的hex文件,并验证flash
cc-tool -v -e -w image.hex
# Merge file image.hex and patch.bin (at offset 80), write resulting image, verify flash using read method
# 合并image.hex和偏移地址在0x80的patch.bin,并进行烧写,使用读模式验证flash
cc-tool -v read -w image.hex --write patch.bin,80
# Set debug lock bit
# 设置调试加锁位
cc-tool --lock debug
# Set debug lock bit and lock pages 0,1,2,3,4
# 设置调试加锁位,为0,1,2,3,4页加锁
cc-tool --lock debug;pages:0-4
# Set debug lock bit, boot lock bit, and set lock size 8K
# 设置调试加锁位、启动加锁位,设置加锁大小为8k
cc-tool --lock debug;boot;flash:8