amobbs.com 阿莫电子技术论坛
标题:
让我们一起DIY OUR-LINK之续帖(本帖只讨论技术)【恢复】
[打印本页]
作者:
taoist
时间:
2009-1-4 10:15
标题:
让我们一起DIY OUR-LINK之续帖(本帖只讨论技术)【恢复】
没想到,原来的帖子那么火,重开一帖,只讨论技术,买板子请去老帖
老规矩。。。为免追杀,请使用company,V5,V6,V7,V8,Pro,OUR-LINK等字眼
作者:
yangsen
时间:
2009-1-4 10:22
枪个板凳座先,看着楼下盖高楼,taoist 高手啊,几天没去那个贴都盖到500楼了
作者:
taoist
时间:
2009-1-4 10:27
有人很想知道RTCK是如何实现的。。。
首先,RTCK的概念
RTCK -- return TCK,仅可综合的内核(-S)有此管脚,我们来看图:
(原文件名:RTCK.JPG)
从图上看,TCK延迟了3个clock就成为了RTCK,换句话说。。。测一下RTCK与TCK之间的延迟就知道CPU的速度了。。。
作者:
_yuming
时间:
2009-1-4 10:30
枪个板凳座先,看着楼下盖高楼
本贴被 _yu-ming 编辑过,最后修改时间:2009-01-04,10:31:20.
作者:
taoist
时间:
2009-1-4 10:31
好了。。。看看V8是如何实现的。。。
RTCK_check: ; 子程序名(taoist加)
地址 机器码 汇编代码 ; taoist加的注释
00203958 B5F0 PUSH {R4,R5,R6,R7, LR} ; 子程序开始,保护寄存器
0020395A F7FF ; pre BL/BLX ; 为了4字节对齐而填充的垃圾
0020395C FFF9 BL 0x203950 ; 调用位于0x203950的子程序,进一步调用0x001069CC,用于禁止IRQ中断
0020395E 4F21 LDR R7, [PC,#0x084] ; R7 = [0x2039E4] =PIOA_PER (0xFFFFF400) 赋值
00203960 2400 MOV R4, #0 ; R4 = 0 赋值
00203962 2540 MOV R5, #64 ; R5 = 0x40 赋值
00203964 2601 MOV R6, #1
00203966 0336 LSL R6, R6, #12 ; R6 = 0x1000 赋值,R6用作计数器
00203968 63BC STR R4, [R7, #56] ; AT91C_PIOA_ODSR (0xFFFFF438) = 0 拉低TCK
0020396A 46C0 NOP ; 延时
0020396C 6BF8 LDR R0, [R7, #60] ; R0 = AT91C_PIOA_PDSR (0xFFFFF43C) 第1次读PA6
0020396E 6BF9 LDR R1, [R7, #60] ; R1 = AT91C_PIOA_PDSR (0xFFFFF43C) 第2次读PA6
00203970 6BFA LDR R2, [R7, #60] ; R2 = AT91C_PIOA_PDSR (0xFFFFF43C) 第3次读PA6
00203972 6BFB LDR R3, [R7, #60] ; R3 = AT91C_PIOA_PDSR (0xFFFFF43C) 第4次读PA6
;-----------------------------------------------------------
00203974 6BFC LDR R4, [R7, #60] ; R4 = AT91C_PIOA_PDSR (0xFFFFF43C) 第5....次读PA6
00203976 422C TST R4, R5 ;
00203978 D004 BEQ 0x203984 ; 若PA6为0,则跳到0x203984
;-----------------------------------------------------------
0020397A 1E76 SUB R6, R6, #1 ; 计数器减1
0020397C D1FA BNE 0x203974 ; 4096次到,则跳到0x203974
;-----------------------------------------------------------
0020397E 2000 MOV R0, #0
00203980 1E40 SUB R0, R0, #1 ; 赋return值为-1(error)
00203982 E010 B 0x2039A6 ; 跳到0x2039A6
;-----------------------------------------------------------
00203984 4228 TST R0, R5
00203986 D020 BEQ 0x2039CA ; if(first PA6 == 0) then goto 0x2039CA
;-----------------------------------------------------------
00203988 4229 TST R1, R5
0020398A D020 BEQ 0x2039CE ; if(second PA6 == 0) then goto 0x2039CE
;-----------------------------------------------------------
0020398C 422A TST R2, R5
0020398E D020 BEQ 0x2039D2 ; if(third PA6 == 0) then goto 0x2039D2
;-----------------------------------------------------------
00203990 422B TST R3, R5
00203992 D020 BEQ 0x2039D6 ; if(fourth PA6 == 0) then goto 0x2039D6
;-----------------------------------------------------------
00203994 2101 MOV R1, #1
00203996 0309 LSL R1, R1, #12 ; R1 = 4096
00203998 1B88 SUB R0, R1, R6 ; R0 = 4096 - R6
0020399A 2109 MOV R1, #9 ; R1 = 9
0020399C 4348 MUL R0, R1 ; R0 = (4096 - R6) * 9
0020399E 2115 MOV R1, #21 ; R1 = 21
002039A0 4348 MUL R0, R1 ; R0 = (4096 - R6) * 9 * 21 = (4096 - R6) * 189
002039A2 30C8 ADD R0, #200
002039A4 3073 ADD R0, #115 ; R0 = (4096 - R6) * 189 + 315 根据计数器的残值计算时间
;-----------------------------------------------------------
002039A6 2440 MOV R4, #64
002039A8 0224 LSL R4, R4, #8 ; R4 = 0x4000
002039AA 63BC STR R4, [R7, #56] ; AT91C_PIOA_ODSR (0xFFFFF438) = 0x4000 即令PA14 TCK = 1
002039AC 2601 MOV R6, #1
002039AE 0336 LSL R6, R6, #12 ; R6 = 0x1000(4096) 重赋计数器
;-----------------------------------------------------------
002039B0 1E76 SUB R6, R6, #1 ; R6--
002039B2 D007 BEQ 0x2039C4
;-----------------------------------------------------------
002039B4 6BFC LDR R4, [R7, #60] ; R4 = AT91C_PIOA_PDSR (0xFFFFF43C) 读PA6
002039B6 422C TST R4, R5
002039B8 D0FA BEQ 0x2039B0 ; if(PA6 == 0) then goto 0x2039B0
;-----------------------------------------------------------
002039BA 1C04 MOV R4, R0 ; R4 = R0
002039BC F7FF ; pre BL/BLX
002039BE FFCA BL 0x203954 ; call 0x001069B8 Enable_IRQ
;-----------------------------------------------------------
002039C0 1C20 MOV R0, R4 ; R0 = R4
002039C2 BDF0 POP {R4,R5,R6,R7, PC}
;-----------------------------------------------------------
002039C4 2000 MOV R0, #0
002039C6 1E40 SUB R0, R0, #1 ; R0 = 0xFFFFFFF(-1) RTCK always be 0 or 1
002039C8 E7F7 B 0x2039BA
;-----------------------------------------------------------
002039CA 2000 MOV R0, #0 ; R0 = 0
002039CC E7EB B 0x2039A6
;-----------------------------------------------------------
002039CE 207E MOV R0, #126 ; R0 = 0x7E = 126ns
002039D0 E7E9 B 0x2039A6
;-----------------------------------------------------------
002039D2 20BD MOV R0, #189 ; R0 = 0xBD = 189ns
002039D4 E7E7 B 0x2039A6
;-----------------------------------------------------------
002039D6 20FC MOV R0, #252 ; R0 = 0xFC = 252ns
002039D8 E7E5 B 0x2039A6
;-----------------------------------------------------------
002039DA 0000 FB ; 字节对齐填充的垃圾
002039DC 001069CC DW 0x001069CC ; 文字池
002039E0 001069B8 DW 0x001069B8
002039E4 FFFFF400 DW 0xFFFFF400
本贴被 taoist 编辑过,最后修改时间:2009-01-04,16:22:34.
作者:
ba1731
时间:
2009-1-4 10:44
额,抢个地板砖吧
作者:
panxiaoku
时间:
2009-1-4 10:58
开始深入讲技术了,好好听讲ing.....
作者:
52robot
时间:
2009-1-4 11:13
只好抢个地下室了
作者:
lofeng
时间:
2009-1-4 11:14
认真听课~~
作者:
yibin818
时间:
2009-1-4 11:15
学习中
作者:
banyan_city
时间:
2009-1-4 11:30
认真听课~~
作者:
YourARM
时间:
2009-1-4 11:47
这样的话,具体USB协议部分在搞清楚之后反而要丢到一边去了。
作者:
taoist
时间:
2009-1-4 12:48
to 【11楼】 YourARM 你的样子
精华不在USB协议。。。否则company干嘛公开呢。。。是吧。。。
作者:
k0059
时间:
2009-1-4 12:48
谢谢 taoist
原来*l*ink是这么计算rtck
要是在读写内存的时候target cpu进入低时钟模式,那么得从新计算rtck
不然就会有问题
本贴被 k0059 编辑过,最后修改时间:2009-01-04,13:26:58.
作者:
taoist
时间:
2009-1-4 13:19
to 【13楼】 k0059
请勿出现敏感字眼。。。。。。
作者:
tkdr2001
时间:
2009-1-4 13:51
学习中
作者:
YourARM
时间:
2009-1-4 14:40
有没有可能弄到ARM JTAG状态机的文档?
作者:
wkman
时间:
2009-1-4 14:44
问个不太相关的问题,RDI(例如MDK324的,)是不是就是个通讯协议而已???
作者:
hfmedical
时间:
2009-1-4 14:44
认真听课~~
作者:
taoist
时间:
2009-1-4 14:55
to 【16楼】 YourARM 你的样子
???
看ARM的结构白皮书就行了。。。灰常详细。。。
作者:
YourARM
时间:
2009-1-4 15:18
啊,TAP controller state transitions:
(原文件名:TAP controller state transitions.JPG)
作者:
bigarmer
时间:
2009-1-4 15:32
taoist,写点可以看懂的注释吧?
作者:
taoist
时间:
2009-1-4 15:47
to 【21楼】 bigarmer
这个。。。难度有点大哎。。。我已经加了很多注释了。。。。。。
等下班回家我想想咋写。。。。。。
作者:
bigarmer
时间:
2009-1-4 15:58
你发的这些反汇编代码和注释感觉像天书,如果是你自己看的话可能还有点头绪,别人根本看不明白,何况是点零碎的片段,发挥不了大家群策群力的作用,上次你发的V8中判断芯片CHIP ID的那段,我硬是没看懂!
作者:
taoist
时间:
2009-1-4 16:26
to 【23楼】 bigarmer
本来反汇编的代码就是天书。。。
如果你对Thumb的汇编很熟,加上我的注释,应该能看懂
加了点注释,不知道你能不能看懂,实在看不懂。。。我也没办法了。。。
作者:
ahfong2006
时间:
2009-1-4 16:56
应该还是看得懂,毕竟不肯能像ARM入门指南一样写,时间和精力不允许。只是目前发出来的还不够系统和完全,taoist已经领悟很多了。
作者:
panxiaoku
时间:
2009-1-4 18:52
002039AA 63BC STR R4, [R7, #56] ; AT91C_PIOA_ODSR (0xFFFFF438) = 0x4000 即令PA14 TCK = 1
002039AC 2601 MOV R6, #1
002039AE 0336 LSL R6, R6, #12 ; R6 = 0x1000(4096) 重赋计数器
;-----------------------------------------------------------
002039B0 1E76 SUB R6, R6, #1 ; R6--
002039B2 D007 BEQ 0x2039C4
;-----------------------------------------------------------
002039B4 6BFC LDR R4, [R7, #60] ; R4 = AT91C_PIOA_PDSR (0xFFFFF43C) 读PA6
002039B6 422C TST R4, R5
002039B8 D0FA BEQ 0x2039B0 ; if(PA6 == 0) then goto 0x2039B0
;-----------------------------------------------------------
002039BA 1C04 MOV R4, R0 ; R4 = R0
002039BC F7FF ; pre BL/BLX
002039BE FFCA BL 0x203954 ; call 0x001069B8 Enable_IRQ
;-----------------------------------------------------------
002039C0 1C20 MOV R0, R4 ; R0 = R4
002039C2 BDF0 POP {R4,R5,R6,R7, PC}
这一部分把TCK拉高了,然后用R6当计数,一直等到RTCK变高,然后就使能中断,然后返回,,好像没有什么用呀??计到的数好像也没 有什么用呀?还有那几个数126ns,189ns是怎么得出来的呢?
作者:
wenunit
时间:
2009-1-4 18:53
留名一下吧,期待。。。。。。。
作者:
kugel
时间:
2009-1-4 19:32
占个位置先
作者:
k0059
时间:
2009-1-4 20:13
taoist能否看出来RTCK_check函数在那里情况下调用了
1. 每次check target状态的时候调用一次?
2. 每次操作jtag tap机出错了,再调用RTCK_check来校准下TCK ?
还是在jtag_rw_ireg, jtag_rw_dreg的时候用了另外的方法来操作RTCK ?
作者:
gurocky
时间:
2009-1-4 20:25
关于RTCK和TCK,RTCK是两个异步系统中,TCK经过CLK同步之后返回给Jlink用于进一步操作,用于消除亚稳态。两个门电路实际上是沿检测电路。一般FPGA的设计都有涉及到的。
作者:
taoist
时间:
2009-1-4 20:31
to 【30楼】 gurocky
请勿出现敏感字眼!!!!!
作者:
taoist
时间:
2009-1-4 20:39
AT91SAM7S64/256晶振18.432MHz,通过PLL倍频到48MHz,则每个机器周期为20.83333ns
执行LDR指令、NOP指令(实际也是LDR指令)需要3个机器周期,即62.5ns,company按63ns计算
这样就可以计算RTCK的延时了,举2个例子:
(原文件名:rtck.JPG)
作者:
taoist
时间:
2009-1-4 20:50
to 【29楼】 k0059
1)执行EMU_CMD_MEASURE_RTCK_REACT命令
2)执行EMU_CMD_READ_MEM_ARM79命令
3)执行EMU_CMD_READ_MEM命令
4)执行EMU_CMD_WRITE_MEM_ARM79命令
5)执行EMU_CMD_WRITE_MEM命令
目前已知这些。。。具体细节还要慢慢啃。。。
作者:
panxiaoku
时间:
2009-1-4 20:56
这里有twentyone大侠写的JTAG原理,可以参考着看。。。
twentyone大侠写的,感觉很不错
ourdev_571644.pdf(文件大小:531K)
(原文件名:ARM JTAG 调试原理.pdf)
作者:
hehuawei
时间:
2009-1-4 21:53
我认为应该想办法搞一些原始的资料,比如协议呀,原理呀!利用网络的力量开发开源的设备和软件,可能意义更大!
作者:
ahfong2006
时间:
2009-1-5 08:04
【35】楼的可以去看看OpenOCD。
作者:
k0059
时间:
2009-1-6 12:19
看了下j*l*i*n*k在实现jtag时序的时候,用了spi, ssc来完成jtag时序的
但是又有时候用了GPIO模式,比如在测量RTCK放回的时间的时候
这样切来切去的没问题吗
作者:
taoist
时间:
2009-1-6 12:37
to 【38楼】 k0059
分段处理的。。。
1)speed < 6000 Hz,使用GPIO方式
2)6000 Hz <= speed < 188416 Hz,使用SPI + SSC方式
3)speed>= 188416 Hz,使用SPI + SSC + DMA方式
作者:
YourARM
时间:
2009-1-6 12:50
之前一直想学习USB知识的,现在发觉这也是个很好的切入点。
阅读USB文档时感觉枯燥无味的东西,有针对性地学,吸收得挺快。
作者:
_yuming
时间:
2009-1-6 15:35
【39楼】 taoist
提个建议,是不是不要再在这里讨论了,有些居心不良的人已经开始,用这里的资源在谋取非法的利益了,这些人也太不厚道了。。。。。。。。。竟然还有原厂的丝印,可恶之极呀!!!
作者:
taoist
时间:
2009-1-6 15:47
我没有权利限制别人不谋利,成品卖100块左右基本就是工本费和辛苦费了。。。
也许V4.00a就已经是大家可以免费升级的最后一版了。。。
偶而啃了啃pro,pro就没那么简单可以轻松攻破了。。。
本贴被 taoist 编辑过,最后修改时间:2009-01-06,15:49:07.
作者:
panxiaoku
时间:
2009-1-6 15:57
【41楼】 _yu-ming
不是写了吗?这个贴只讨论技术,是调试的技术,不是破解的技术吧。。这个暂时没有办法“盈利”吧。。。
反正不能专门找个地方讨论这个东西吧。。。
作者:
taoist
时间:
2009-1-6 16:04
其实。。。我很想学学PC端。。。自己搞个DLL。。。这样,就可以完全设计真正属于自己的OUR-LINK
目前看起来,V8还有很多问题。。。
1)RTCK测量不准
2)不支持XScale,ARM11,Cortex-A8等。。。
3)速度最高只有12MHz,小日本的PalmICE 2 可以跑到40MHz,而且可以逐Hz调
作者:
eng5025
时间:
2009-1-6 16:12
插班生来听课了
作者:
panxiaoku
时间:
2009-1-6 16:28
【44楼】 taoist
有同想法。。。做OUR-Link。。不过还只是想法而已。。正在学习。。如果你哪天你开始动手。。记得叫上我。。
作者:
zpwang
时间:
2009-1-6 23:13
taoist:
请问在EWARM中有什么办法将反汇编内容保存下来?
还有就是在反汇编是怎么两数据段也反成代码了?
如:从0x102050~01020a5地址开始的这段.我想应该是一段数据段的.
请赐教,在此先谢谢了!
本贴被 zpwang 编辑过,最后修改时间:2009-01-06,23:27:30.
作者:
taoist
时间:
2009-1-7 09:28
to 【48楼】 zpwang
在反汇编窗口,mouse 右键 copy window contents,只能一屏一屏copy
IAR是不区分指令还是数据的,这需要人工判断
作者:
zpwang
时间:
2009-1-7 13:05
To:taoist
謝謝了!呵呵,這真是痛苦的事。建議還是用IDA 好點。
作者:
wangxiaoacc
时间:
2009-1-7 13:26
非常非常感谢taoist,希望能早日开始我们自己的our-link,真正的our-link。来这听课,希望能有帮的上忙的一天。
作者:
h2feo4
时间:
2009-1-7 22:00
如果V8_4.00a的APP中不包含升级程序
为何不在升级前降回3.96再升级呢
假设company出了一个4.01版
而4.00a不包含升级程序
先把our-link降回稍早一点的版本,利用早期版本的升级程序升级
升级到4.01
除非our-link必须逐级升,不能跳级,即使是这样,也有可能能蒙骗过去
我没有our-link,以上仅为凭空猜想
作者:
taoist
时间:
2009-1-7 22:13
to 【52楼】 h2feo4 无机酸
思路错了
V8任何一个版本,APP都不包含升级程序
升级程序在BOOT里,不需要降级
作者:
zpwang
时间:
2009-1-7 23:04
to Taoist,
上传我在IDA中反汇编的文件,不知对你是否有参考意义.我是做硬件的对软件半桶水也没有.吃不烂它.
点击此处下载
ourdev_577464.rar(文件大小:66K)
(原文件名:v8400.rar)
作者:
taoist
时间:
2009-1-8 08:47
to 【54楼】 zpwang
个人觉得,IDA反出来的东西没有任何参考价值。。。
根本看不懂。。。
解铃还须系铃人,用IAR写的,就要用IAR反它。。。:)
本贴被 taoist 编辑过,最后修改时间:2009-01-08,08:49:49.
作者:
bigarmer
时间:
2009-1-8 11:31
【53楼】 taoist
你说“V8任何一个版本,APP都不包含升级程序 ”,但是前几天听论坛里的shaoshunda网友说他搞定V8的升级了。
见另外一个帖子的【588楼】楼,难道shaoshunda在忽悠大家?!
作者:
taoist
时间:
2009-1-8 11:37
to 【56楼】 bigarmer
他有没有忽悠大家我不知道。
反正要搞定还是没那么容易的。。。我想他应该在调试USB
给大家看一下update部分的代码:
;=================================================================================================================
; EMU_CMD_UPDATE()
; {
; sent_USB(1);
; delay_ms(100);
; [0x200040] = 0x12344321;
; processor_reset();
; }
EMU_CMD_UPDATE:
00105778 B500 PUSH {LR}
0010577A 2001 MOV R0, #1 ; R0 = 1
0010577C F001 ; pre BL/BLX
0010577E F800 BL 0x106780 ; call 0x106780 USB发送1字节
00105780 2064 MOV R0, #100 ; R0 = 100
00105782 F001 ; pre BL/BLX
00105784 FAA5 BL 0x106CD0 ; call 0x106CD0 delay 100ms
00105786 4803 LDR R0, [PC,#0x00C] ; R0 = [0x105794] =0x200040
00105788 4903 LDR R1, [PC,#0x00C] ; R1 = [0x105798] =0x12344321 通知BOOT
0010578A 6001 STR R1, [R0, #0] ; [0x200040] = 0x12344321
0010578C F000 ; pre BL/BLX
0010578E FC0A BL 0x105FA4 ; call 0x105FA4 processor_reset
00105790 BD00 POP {PC}
00105792 0000 FB
00105794 00200040 DW 0x00200040
00105798 12344321 DW 0x12344321
;=================================================================================================================
作者:
taoist
时间:
2009-1-8 11:51
另外:
INITTAB:
0010995C 000034A6 DW 0x000034A6 ; long Size; /* Number of bytes to initialize */
00109960 00200070 DW 0x00200070 ; char* Dst; /* Destination. If Dst==Src, then init to 0 */
00109964 00200070 DW 0x00200070 ; char* Src; /* Source address. Usually in ROM. */
00109968 000007DC DW 0x000007DC ; long Size; /* Number of bytes to initialize */
0010996C 00203518 DW 0x00203518 ; char* Dst; /* Destination. If Dst==Src, then init to 0 */
00109970 00109180 DW 0x00109180 ; char* Src; /* Source address. Usually in ROM. */
00109974 0000002B DW 0x0000002B ; long Size; /* Number of bytes to initialize */
00109978 00200044 DW 0x00200044 ; char* Dst; /* Destination. If Dst==Src, then init to 0 */
0010997C 0010998C DW 0x0010998C ; char* Src; /* Source address. Usually in ROM. */
可以从上述的inittab看出,0x200044是常量区的开始,证明APP的没有使用0x200040-0x200043
因此,V8的升级在BOOT中
Boot中可能是这样处理的:
初始化完成后,判断复位类型,如果是软件复位,且[0x200040] == 0x12344321,则启动USB接收,将新的APP放到备份区后,执行COPY
我对USB不熟,有这方面的大虾可以试试。。。
作者:
bigarmer
时间:
2009-1-8 11:51
调试USB?真有这么大的决心?期待一下!
作者:
taoist
时间:
2009-1-8 11:53
to 【59楼】 bigarmer
表光期待呀。。。
作者:
bigarmer
时间:
2009-1-8 11:55
木有办法呀!有个建议,找个S128或者S256测试一下之前的方法看可行否?
作者:
taoist
时间:
2009-1-8 11:57
to 【61楼】 bigarmer
不升级的早N年就搞定了。。。S64就行了
作者:
shaoshunda
时间:
2009-1-8 12:40
TO 【58楼】 taoist
我已经搞定了它的USB升级协议,我用的是7S64没有备份直接更新APP,现在已经可以升级了。
如果用S256那就完美了
作者:
shaoshunda
时间:
2009-1-8 12:43
TO 【56楼】 bigarmer
TO 【57楼】 taoist
我没有忽悠大家
我没有发布,是因为我怕被company追杀
本贴被 shaoshunda 编辑过,最后修改时间:2009-01-08,12:48:04.
作者:
taoist
时间:
2009-1-8 13:05
to 【64楼】 shaoshunda
发给偶试试?
作者:
_yuming
时间:
2009-1-8 13:28
to 【64楼】 shaoshunda 发给我一份,我试试看看怎样,我的实验板明天就能到了。yjwpm@126.com
本贴被 _yu-ming 编辑过,最后修改时间:2009-01-08,13:29:29.
作者:
szpcbtest
时间:
2009-1-8 17:20
使用ERASE引脚擦除JLINK板子上的7S64后,好像再也连不了JTAG了,设置PA0 PA1 PA2 TST JTAGSEL也不行,怎么回事啊,有兄弟碰到过没?
作者:
zpwang
时间:
2009-1-8 20:18
to shaoshunda,
你的V8我也想用用.不知可否赐与. 呵呵,我只会伸手. zpwang69@163.com
作者:
byintra
时间:
2009-1-8 20:19
要是做OUR-link,我参与……
作者:
zpwang
时间:
2009-1-8 20:52
这里有一个AT91SAM7 bootload.
http://www.okarm.com/bbs/dispbbs.asp?boardID=2&ID=844&page=5
作者:
taoist
时间:
2009-1-8 21:08
to 【70楼】 zpwang
不错的资料。。。学习中。。。3KU
作者:
monkey.liu
时间:
2009-1-8 22:13
这是一个很好的学习ARM汇编和编程技巧的地方。
但汇编确实太难了,这两个帖子的内容需要很长时间才能消化,还不知道是否会消化不良。
学习中......
作者:
taoist
时间:
2009-1-9 08:56
今天上海很冷。。。希望我们的帖子不要更冷。。。
鼓动一下大家的士气
(原文件名:pro.JPG)
作者:
taoist
时间:
2009-1-9 09:03
革_命尚未成功,同志仍需努力!
作者:
shaoshunda
时间:
2009-1-9 09:33
TO monkey.liu
我的 v8 boot 已经改用keil 来写了,代码只有3K多。
我原来的v8是用IAR 的USB框架来写的,已经写好了,代码6K多,而且速度很慢。
看到了你的贴子“最简单的,也是最高效的:Atmel的AT91SAM7S-BasicUSB的BULK USB速度经测试可达到1MB/s”之后,
就想改成“AT91SAM7S-BasicUSB”的框架。在IAR里面按照你的方法改,发现不行,电脑蓝屏重启,只能放弃IAR投奔keil。
另外:
升级的USB通讯协议是通过抓v7的USB升级包来得到的。
本贴被 shaoshunda 编辑过,最后修改时间:2009-01-09,09:37:44.
作者:
shaoshunda
时间:
2009-1-9 09:46
【73楼】 taoist
目前v8上电后直接从boot升级固件是OK的,但是从APP跳到boot升级固件,握手失败(握手超时)无法升级。
你的Pro是可以升级的吗?
本贴被 shaoshunda 编辑过,最后修改时间:2009-01-09,09:47:42.
作者:
bigarmer
时间:
2009-1-9 09:48
taoist,不错,能否给多点信息,比如主芯片啥的。
shaoshunda,咋没上线呢?
作者:
shaoshunda
时间:
2009-1-9 09:50
TO 【77楼】 bigarmer
Pro 用的7X256,俺已经从DLL里面提取出Pro APP了,并且确定了它在7X256里面的存放位置。
现在是“严冬”,公司开始禁用QQ了。
俺昨晚加班没上QQ,sorry!!!
本贴被 shaoshunda 编辑过,最后修改时间:2009-01-09,09:54:39.
作者:
bigarmer
时间:
2009-1-9 09:56
OK,没关系,谢谢!
能告知一下,Pro APP的起始地址吗?
作者:
shaoshunda
时间:
2009-1-9 09:56
看来俺要向taoist看齐投奔Pro了
作者:
shaoshunda
时间:
2009-1-9 09:57
TO 【79楼】 bigarmer
从64K之后开始存放
作者:
bigarmer
时间:
2009-1-9 10:04
谢谢!
我的也OK了。
作者:
taoist
时间:
2009-1-9 10:28
to 【76楼】 shaoshunda
升级等你了。。。哈哈哈哈。。。偶USB不熟,同时反汇编V8,flasher,pro,哎。。。哪有时间学USB。。。
pro只是玩玩的。。。还有很多问题待解决。。。
I/O定义都改掉了。。。网络现在还不通。。。MAC地址还有问题。。。
所以。。。革_命尚未成功,同志仍需努力
作者:
shian0551
时间:
2009-1-9 10:29
【73楼】 taoist
新版本的,增加了很多功能啊。给我们介绍下啊。
作者:
taoist
时间:
2009-1-9 10:46
to 【84楼】 shian0551
pro支持TCP/IP调试,可通过网页调试
具体功能可以看新版的manual
作者:
kvcs
时间:
2009-1-9 10:59
(原文件名:armpro.jpg)
作者:
shaoshunda
时间:
2009-1-9 11:14
TO 【57楼】 taoist
processor_reset();
在processor_reset里面具体做了哪些工作
作者:
taoist
时间:
2009-1-9 11:26
to 【87楼】 shaoshunda
processor_reset
00105FA4 B500 PUSH {LR}
00105FA6 F000 ; pre BL/BLX
00105FA8 FD0F BL 0x1069C8 ; call 0x1069C8 Disable_IRQ
00105FAA F001 ; pre BL/BLX
00105FAC F961 BL 0x107270 ; call 0x107270 check remap
00105FAE 4802 LDR R0, [PC,#0x008] ; R0 = [0x105FB8] =RSTC_RCR (0xFFFFFD00)
00105FB0 4902 LDR R1, [PC,#0x008] ; R1 = [0x105FBC] =0xA5000001
00105FB2 6001 STR R1, [R0, #0] ; RSTC_RCR (0xFFFFFD00) = 0xA5000001 processor reset
00105FB4 E7FE B 0x105FB4 ; while(1)
00105FB6 46C0 FB
00105FB8 FFFFFD00 DW 0xFFFFFD00
00105FBC A5000001 DW 0xA5000001
本贴被 taoist 编辑过,最后修改时间:2009-01-09,11:27:36.
作者:
taoist
时间:
2009-1-9 11:35
to 【86楼】 kvcs
Firmware build: Jan 5 2009 12:20:29 ???
什么版本的???
作者:
shaoshunda
时间:
2009-1-9 11:37
TO 【88楼】 taoist
有空的时候俺再整整。
TO 【73楼】 taoist
你的板子是自己打的板子,还是买的demo板
本贴被 shaoshunda 编辑过,最后修改时间:2009-01-09,11:39:18.
作者:
shaoshunda
时间:
2009-1-9 11:41
TO 【86楼】 kvcs
Pro 搞定了?
还是买的?
作者:
taoist
时间:
2009-1-9 12:18
to 【90楼】 shaoshunda
mcuzone买的EK空板...焊了几个片子
作者:
_yuming
时间:
2009-1-9 12:24
To shaoshunda 我用了您的V7的固件怎么升级不成功呢?停留在如下图的位置就不动了,板子上的灯一直在闪,,??
(原文件名:未命名5.JPG)
作者:
shaoshunda
时间:
2009-1-9 12:26
TO 【92楼】 taoist
我也去买一块板子回来整一整,看一下boot能不能搞定。
作者:
shaoshunda
时间:
2009-1-9 12:30
TO 【93楼】 _yu-ming
你用的什么样的板子
作者:
shaoshunda
时间:
2009-1-10 11:02
(原文件名:v8.JPG)
V8完美升级截图,从3.96d升级到4.00
作者:
shaoshunda
时间:
2009-1-10 11:05
(原文件名:v8 updata.JPG)
V8完美升级截图,从4.00升级到4.01a
作者:
shaoshunda
时间:
2009-1-10 11:06
发两张V8完美升级截图,活跃一下贴子气氛,哈哈
按照 【58楼】 taoist 的方法没有搞定,我是按照自己的方法搞定的。用的是7S64。
本贴被 shaoshunda 编辑过,最后修改时间:2009-01-10,12:06:57.
作者:
ahfong2006
时间:
2009-1-10 11:20
可否透露点思路?
本贴被 ahfong2006 编辑过,最后修改时间:2009-01-10,11:21:23.
作者:
keilc
时间:
2009-1-10 11:40
学习!!!!
作者:
shaoshunda
时间:
2009-1-10 12:01
TO 【99楼】 ahfong2006
本帖已经有了,自己啃一啃吧!
boot的代码是要完全自己写的,包括USB部分。
本贴被 shaoshunda 编辑过,最后修改时间:2009-01-10,12:02:19.
欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/)
Powered by Discuz! X3.4