2013年8月

openjtag debuger for freescale k60 chip

最近公司开始准备下个项目,意味着我又有板子可以玩了。基于上半年参加freescale的研讨会,所以选择k60作为开发平台。但是市面上的以k60为主的开发板还是比较少,最后拿到一块中电器材的k60开发板。这块板子也比较有意思,使用k60N512VM100作为CPU,外扩的接口在BASE板上,CPU和BASE板以DDR接口相连,应该是考虑了k60系列的后续升级,换CPU板就可以了。

K60开发板上自带了Debug电路,使用OSJtag通过USB线来提供烧写和调试。k60上还提供了miniJtag接口,20pin,间距1.27mm。刚好,手头有个pemicro的multilink调试器,里面有miniJtag接口,连接后在codewarrior中可以使用。可惜的是,codewarrior从10.2后,就不再提供linux版的IDE,对一个linuxer来说,是无法容忍的。所以,参考网上资源和Jtag接线,使用OpenJtag来作为debuger。

接线顺序采用通用Jtag接线即可,这里的3.3v由开发板来提供。我第一次连接时,这里出了问题。

按照上面的来连接openjtag和miniJtag,osjtag上从第4到20的偶数pin,应为都是GND。下面是,自己买了个20pin的头,然后接的跳线。

之后要配置openocd来识别到k60:

1.安装openocd

./configure --enable-maintainer-mode  --enable-ft2232_libftdi
make
sudo make install

2.配置openocd

telnet_port 4444

# interface for openjtag
interface ft2232
adapter_khz 1000
#jtag_speed 0
ft2232_vid_pid 0x1457 0x5118
ft2232_layout "jtagkey"
ft2232_device_desc "USB<=>JTAG&RS232"

# about target
source [find target/swj-dp.tcl]
if { [info exists CHIPNAME] } {
set _CHIPNAME $CHIPNAME
} else {
set _CHIPNAME k60
}

if { [info exists ENDIAN] } {
set _ENDIAN $ENDIAN
} else {
set _ENDIAN little
}

if { [info exists CPUTAPID] } {
set _CPUTAPID $CPUTAPID
} else {
set _CPUTAPID 0x4ba00477
}

set _TARGETNAME $_CHIPNAME.cpu
swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
target create $_TARGETNAME cortex_m -chain-position $_CHIPNAME.cpu

#$_CHIPNAME.cpu configure -event examine-start { puts "START..." ; }
#$_CHIPNAME.cpu configure -event examine-end { puts "END..." ; }

#cortex_m reset_config sysresetreq

#
# Freescale TWRK60N512 development board
#

$_TARGETNAME configure -event reset-init {
puts "-event reset-init occured"
}

#
# Bank definition for the 'program flash' (instructions and/or data)
#
flash bank pflash.0 kinetis 0x00000000 0x40000 0 4 $_TARGETNAME
flash bank pflash.1 kinetis 0x00040000 0x40000 0 4 $_TARGETNAME

上面的配置都是参考openocd安装文件下target/k60.cfg和board/twr-k60n512.cfg。如果以上操作完成,openocd会显示found芯片:

Open On-Chip Debugger 0.7.0 (2013-08-27-09:16)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter speed: 1000 kHz
cortex_m3 reset_config sysresetreq
Info : add flash_bank kinetis pflash.0
Info : add flash_bank kinetis pflash.1
Info : clock speed 1000 kHz
Info : JTAG tap: k60.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
START...
Info : k60.cpu: hardware has 6 breakpoints, 4 watchpoints
END...

参考资源:

OpenOCD开发环境搭建K60

关于OpenOCD的安装配置——Tekkaman Ninja

Jtag的各种引脚定义——Andy

openocd编译安装使用

项目开发中的若干问题

Tags: none

从上周开始,随着第一版的发布,项目第一期接近于尾声了。第二期是对现有的系统进行修复和优化,达到最初设计的性能要求。最近几周的迭代更新,逐渐暴露出来一些结构和性能上的缺陷。

1.适合项目的cache存储

本次的项目与硬件比较贴切,使用了CAN总线完成设备之间的通迅。最络数据是显示在10inch的液晶屏,数据的更新存储在几个大的数组中。这几个数组最终引出了一个问题,刷新数据的某个瞬间,LCD请求的数据会是空的,因为buffer被清空了,填充好新数据至少需要3秒。多次修改无果后,开始思考问题的原因。最后确定了一个方案,使用类似差异化的方法更新数据,每次相同的数据不再更新,差异的数据后5个清空,并更新数据,这样缩小时间到了毫秒级。

虽然问题解决了,但解决的方法很一般,效率上可以再提高些。

2.硬件通迅buffer

在一个以通迅为主的系统中,通迅数据的存储方式和效率很重要。最早的实现是以链表方式存储,直到最近的测试时,当通迅数据很多时,系统开销比较大,因为malloc次数比多。目前还没有24小时以上的测试,不知道是否因些会出现crash down。

现在的解决方法是,使用circularbuffer做为通迅buffer。接收与处理的过程,类似于消费者和生产者,本系统中消费的比生产的要快(生产有延时),只要size大于开销数的一半,看起来是不错的,只是目前没有测试结果。

3.GUI与后台服务端的通迅

项目开始前调研时,GUI选择使用QT图形库,前后台数据的刷新就由socket来完成了。想当然的,协议就由自己来实现了,开发到中期时,问题出现了,请求数据种类多,协议类型就比较杂和多,对类型的解析太多,处理起来就麻烦多了。受cgminer的启发,打算使用json作为通迅的协议,自己只规定数据格式和类型,解析与构造都交给json的库来完成。虽然多了一层处理,但结构清析了,以后扩展起来也比较方便。

arduino use serialport on fedora 15

最近开始玩arduino,各种折腾中,本本中的fc15却无法使用串口设备,这样就无法烧写程序了。启动后的提示如下:

check_group_uucp(): error testing lock file creation Error details:Permission deniedcheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL

原因是arduino在fedora下是通过rxtx包来操作serialport,相关文件在/var/lock,而fc15的文件在/var/lock/lockdev下,所以权限就有了问题。解决方法如下:

sudo chown root.lock /var/lock
sudo chmod g+rw /var/lock

最新文章

最近回复

  • Blackrose: 感谢拍砖!嗯,那句话...
  • aa: “Raspberry...
  • Blackrose: 外部只是帮你把芯片启...
  • : 内部时钟比外部的频率...
  • Blackrose: 你这评论比正文更有内容么
  • 7hao: CR+LF ...
  • Blackrose: 可以是你更新软件源后...
  • sxk: 博主,我的系统是ub...
  • Blackrose: 你深得精髓么
  • qihao: 这篇文章的简单总结就...

分类

归档

其它