tcl例程

hex转换成coe文件
:1000000090610020010100000901000011010000C1
转换结果为
20006190
00000101
00000109
00000111

1.M3生成Hex文件去掉第一行和最后两行
2. 去掉前9列和后2列,得到 90610020010100000901000011010000
90610020->20006190
01010000->00000101
09010000->00000109
11010000->00000111


#puts "hello world"
set fileName "project.hex"
set fp [open $fileName r]

set row 0

#read $fp 1
while {[gets $fp line] >= 0} {
        incr row
        set list($row) $line
}
close $fp
puts "row num: $row"
puts $list(2)

set preByteNum 9

for {set rowCnt 2} { $rowCnt <= [expr $row-2]} {incr rowCnt} {
        #puts $rowCnt
        for {set i 0} {$i < 4} {incr i} {
                #puts $i
                set dw_b0 [string range $list($rowCnt) [expr $i*8+$preByteNum+6] [expr $i*8+$preByteNum+7]]
                set dw_b1 [string range $list($rowCnt) [expr $i*8+$preByteNum+4] [expr $i*8+$preByteNum+5]]
                set dw_b2 [string range $list($rowCnt) [expr $i*8+$preByteNum+2] [expr $i*8+$preByteNum+3]]
                set dw_b3 [string range $list($rowCnt) [expr $i*8+$preByteNum  ] [expr $i*8+$preByteNum+1]]
                append dw_b0 $dw_b1 $dw_b2 $dw_b3
                #puts $dw_b0
                set dw_fpga([expr 4*($rowCnt-2)+$i]) $dw_b0
        }
}

#puts $dw_fpga(0)

set fileName_fpga "fpga.hex"
set fp_fpga [open $fileName_fpga w]

for {set j 0} {$j < [expr ($row-3)*4]} {incr j} {
        puts $fp_fpga $dw_fpga($j)

}

close $fp_fpga




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值