搜索
bottom↓
回复: 284
打印 上一主题 下一主题

让我们一起DIY OUR-LINK之续帖(本帖只讨论技术)【恢复】

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2009-1-4 10:15:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
没想到,原来的帖子那么火,重开一帖,只讨论技术,买板子请去老帖



老规矩。。。为免追杀,请使用company,V5,V6,V7,V8,Pro,OUR-LINK等字眼

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

2
发表于 2009-2-2 16:34:16 | 只看该作者
你可以量一下PA24,初始化GPIO后,PA24被拉低 



我没有正版V7,也许V7没这根线,但软件里都有PA24置低的这段程序

--------------------------------------------------------------



PA24是用470欧姆接RCLK这条线。在LPC系列,RESET时RCLK必须被拉低以使能JTAG。 



很多板子上有拉低电阻,没有就自己焊一个好了。

出0入0汤圆

3
发表于 2009-2-2 16:21:55 | 只看该作者
强烈建议版主删除掉那些广告销售之类的留言!!!!!!

出0入0汤圆

4
发表于 2009-2-2 14:09:12 | 只看该作者
希望各位能給這裡留一塊淨土。

出0入0汤圆

5
发表于 2009-2-2 12:58:38 | 只看该作者
有需要OUR-LINK(J-LINK)的朋友可以到这个网站参加团购,88元包邮!!

http://item.taobao.com/auction/item_detail.jhtml?item_id=19f6ec8fc962e634e595fa3a0caeaebd&x_id=0db1

出0入0汤圆

6
 楼主| 发表于 2009-1-23 21:50:21 | 只看该作者
V6,V7,V8,flαsher,Pro的区别:



USB的命令EMU-CMD-GET-CAPS(0xE8)可以看出:



小6     0xBF7B0D08

小7     0xBF7BFF39

小8     0xBF7BFF19

Pro     0xBF7BFF39

Flαsher 0x00027A3B



由此可以看出。。。小7跟Pro支持的命令一模一样。。。

出0入0汤圆

7
 楼主| 发表于 2009-1-23 21:40:19 | 只看该作者
to 【255楼】 wzavr 



你可以量一下PA24,初始化GPIO后,PA24被拉低



我没有正版V7,也许V7没这根线,但软件里都有PA24置低的这段程序

本贴被 taoist 编辑过,最后修改时间:2009-01-23,21:51:01.

出0入0汤圆

8
发表于 2009-1-23 21:29:36 | 只看该作者
3)PA24还是应该通过164245,串一个470欧,连接RTCK(参见DASM的V5的原理图),作为可控的上拉或下拉(PowerAVR的板上没用PA24) 

这第3点,在上次发布的v7照片中,没有发现有这段线路.

出0入0汤圆

9
 楼主| 发表于 2009-1-22 13:42:26 | 只看该作者
to ALL



关于V7。。。有一些问题通告各位:



1)串阻请使用22欧,会影响速度

2)TDO的上拉请使用470欧,也会影响速度

3)PA24还是应该通过164245,串一个470欧,连接RTCK(参见DASM的V5的原理图),作为可控的上拉或下拉(PowerAVR的板上没用PA24)

4)请有正版的同仁确认PA31(5V输出)的驱动管的型号

本贴被 taoist 编辑过,最后修改时间:2009-01-22,13:45:19.

出0入0汤圆

10
发表于 2009-1-21 18:38:47 | 只看该作者
似乎可行!我不太懂这些上位机的玩意儿!

出0入0汤圆

11
发表于 2009-1-21 17:41:33 | 只看该作者
我的想法比较土,在固件,或者驱动层,或者dll上跟那些company的某一层挂起来,换一种环境重刷一次固件代码口都可以,又或者自己写驱动,或者自己写RDI接口这样,或者自己写界面(下载51、pld等都可以,调试就麻烦了)。

我现在在想把altera的和xilinx的合到一起来,68013用不同的固件,临时下到68013上,然后电脑就发现不同的设备了,这样借用altera的驱动或者xilinx的驱动就可以用了。我的altera的固件是从网上下的,xilinx的固件是从一个demo板上抠的,只有IIC,没有源码,只能使用demo板自己的界面和驱动,连不上ise,不能调试。这样也觉得挺方便的。

比如针对link,我们自己写个j-pld,j-fpga,j-51,j-xxx,或者咱们自己做一个link,写个驱动,支持xxxxx接口、连接库,都可以

出0入0汤圆

12
发表于 2009-1-4 11:30:16 | 只看该作者
认真听课~~ 

出0入0汤圆

13
发表于 2009-1-4 11:15:46 | 只看该作者
学习中

出0入0汤圆

14
发表于 2009-1-4 11:14:20 | 只看该作者
认真听课~~

出0入0汤圆

15
发表于 2009-1-4 11:13:40 | 只看该作者
只好抢个地下室了

出0入0汤圆

16
发表于 2009-1-4 10:58:35 | 只看该作者
开始深入讲技术了,好好听讲ing.....

出0入0汤圆

17
发表于 2009-1-4 10:44:17 | 只看该作者
额,抢个地板砖吧

出0入0汤圆

18
 楼主| 发表于 2009-1-4 10:31:29 | 只看该作者
好了。。。看看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.

出0入0汤圆

19
发表于 2009-1-4 10:30:34 | 只看该作者
枪个板凳座先,看着楼下盖高楼

本贴被 _yu-ming 编辑过,最后修改时间:2009-01-04,10:31:20.

出0入0汤圆

20
 楼主| 发表于 2009-1-4 10:27:02 | 只看该作者
有人很想知道RTCK是如何实现的。。。



首先,RTCK的概念



RTCK -- return TCK,仅可综合的内核(-S)有此管脚,我们来看图:





 (原文件名:RTCK.JPG) 



从图上看,TCK延迟了3个clock就成为了RTCK,换句话说。。。测一下RTCK与TCK之间的延迟就知道CPU的速度了。。。

出0入0汤圆

21
发表于 2009-1-4 10:22:42 | 只看该作者
枪个板凳座先,看着楼下盖高楼,taoist 高手啊,几天没去那个贴都盖到500楼了

出0入0汤圆

22
发表于 2009-1-4 20:13:03 | 只看该作者
taoist能否看出来RTCK_check函数在那里情况下调用了



1. 每次check target状态的时候调用一次?

2. 每次操作jtag tap机出错了,再调用RTCK_check来校准下TCK ?



还是在jtag_rw_ireg, jtag_rw_dreg的时候用了另外的方法来操作RTCK ?

出0入0汤圆

23
发表于 2009-1-4 19:32:49 | 只看该作者
占个位置先

出0入0汤圆

24
发表于 2009-1-4 18:53:36 | 只看该作者
留名一下吧,期待。。。。。。。

出0入0汤圆

25
发表于 2009-1-4 18:52:13 | 只看该作者
 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是怎么得出来的呢?

出0入42汤圆

26
发表于 2009-1-4 16:56:03 | 只看该作者
应该还是看得懂,毕竟不肯能像ARM入门指南一样写,时间和精力不允许。只是目前发出来的还不够系统和完全,taoist已经领悟很多了。

出0入0汤圆

27
 楼主| 发表于 2009-1-4 16:26:36 | 只看该作者
to 【23楼】 bigarmer 



本来反汇编的代码就是天书。。。

如果你对Thumb的汇编很熟,加上我的注释,应该能看懂



加了点注释,不知道你能不能看懂,实在看不懂。。。我也没办法了。。。

出0入0汤圆

28
发表于 2009-1-4 15:58:44 | 只看该作者
你发的这些反汇编代码和注释感觉像天书,如果是你自己看的话可能还有点头绪,别人根本看不明白,何况是点零碎的片段,发挥不了大家群策群力的作用,上次你发的V8中判断芯片CHIP ID的那段,我硬是没看懂!

出0入0汤圆

29
 楼主| 发表于 2009-1-4 15:47:30 | 只看该作者
to 【21楼】 bigarmer  



这个。。。难度有点大哎。。。我已经加了很多注释了。。。。。。



等下班回家我想想咋写。。。。。。

出0入0汤圆

30
发表于 2009-1-4 15:32:08 | 只看该作者
taoist,写点可以看懂的注释吧?

出0入0汤圆

31
发表于 2009-1-4 15:18:44 | 只看该作者
啊,TAP controller state transitions:



 (原文件名:TAP controller state transitions.JPG) 

出0入0汤圆

32
 楼主| 发表于 2009-1-4 14:55:28 | 只看该作者
to 【16楼】 YourARM 你的样子



???



看ARM的结构白皮书就行了。。。灰常详细。。。

出0入0汤圆

33
发表于 2009-1-4 14:44:52 | 只看该作者
认真听课~~ 

出0入0汤圆

34
发表于 2009-1-4 14:44:36 | 只看该作者
问个不太相关的问题,RDI(例如MDK324的,)是不是就是个通讯协议而已???

出0入0汤圆

35
发表于 2009-1-4 14:40:23 | 只看该作者
有没有可能弄到ARM JTAG状态机的文档?

出0入0汤圆

36
发表于 2009-1-4 13:51:21 | 只看该作者
学习中

出0入0汤圆

37
 楼主| 发表于 2009-1-4 13:19:57 | 只看该作者
to 【13楼】 k0059 



请勿出现敏感字眼。。。。。。

出0入0汤圆

38
发表于 2009-1-4 12:48:58 | 只看该作者
谢谢 taoist



原来*l*ink是这么计算rtck



要是在读写内存的时候target cpu进入低时钟模式,那么得从新计算rtck



不然就会有问题



本贴被 k0059 编辑过,最后修改时间:2009-01-04,13:26:58.

出0入0汤圆

39
 楼主| 发表于 2009-1-4 12:48:02 | 只看该作者
to 【11楼】 YourARM 你的样子



精华不在USB协议。。。否则company干嘛公开呢。。。是吧。。。

出0入0汤圆

40
发表于 2009-1-4 11:47:09 | 只看该作者
这样的话,具体USB协议部分在搞清楚之后反而要丢到一边去了。

出0入0汤圆

41
发表于 2009-1-8 13:28:20 | 只看该作者
to 【64楼】 shaoshunda  发给我一份,我试试看看怎样,我的实验板明天就能到了。yjwpm@126.com

本贴被 _yu-ming 编辑过,最后修改时间:2009-01-08,13:29:29.

出0入0汤圆

42
 楼主| 发表于 2009-1-8 13:05:43 | 只看该作者
to 【64楼】 shaoshunda 

 

发给偶试试?

出0入0汤圆

43
发表于 2009-1-8 12:43:24 | 只看该作者
TO 【56楼】 bigarmer

TO 【57楼】 taoist



我没有忽悠大家



我没有发布,是因为我怕被company追杀

本贴被 shaoshunda 编辑过,最后修改时间:2009-01-08,12:48:04.

出0入0汤圆

44
发表于 2009-1-8 12:40:25 | 只看该作者
TO 【58楼】 taoist



我已经搞定了它的USB升级协议,我用的是7S64没有备份直接更新APP,现在已经可以升级了。

如果用S256那就完美了

出0入0汤圆

45
 楼主| 发表于 2009-1-8 11:57:11 | 只看该作者
to 【61楼】 bigarmer



不升级的早N年就搞定了。。。S64就行了

出0入0汤圆

46
发表于 2009-1-8 11:55:59 | 只看该作者
木有办法呀!有个建议,找个S128或者S256测试一下之前的方法看可行否?

出0入0汤圆

47
 楼主| 发表于 2009-1-8 11:53:34 | 只看该作者
to 【59楼】 bigarmer 



表光期待呀。。。

出0入0汤圆

48
发表于 2009-1-8 11:51:54 | 只看该作者
调试USB?真有这么大的决心?期待一下! 

出0入0汤圆

49
 楼主| 发表于 2009-1-8 11:51:05 | 只看该作者
另外:



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不熟,有这方面的大虾可以试试。。。

出0入0汤圆

50
 楼主| 发表于 2009-1-8 11:37:57 | 只看该作者
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

;=================================================================================================================

出0入0汤圆

51
发表于 2009-1-8 11:31:26 | 只看该作者
【53楼】 taoist 



你说“V8任何一个版本,APP都不包含升级程序 ”,但是前几天听论坛里的shaoshunda网友说他搞定V8的升级了。

见另外一个帖子的【588楼】楼,难道shaoshunda在忽悠大家?!

出0入0汤圆

52
 楼主| 发表于 2009-1-8 08:47:08 | 只看该作者
to 【54楼】 zpwang 



个人觉得,IDA反出来的东西没有任何参考价值。。。

根本看不懂。。。



解铃还须系铃人,用IAR写的,就要用IAR反它。。。:)



本贴被 taoist 编辑过,最后修改时间:2009-01-08,08:49:49.

出0入0汤圆

53
发表于 2009-1-7 23:04:47 | 只看该作者
 to Taoist,



上传我在IDA中反汇编的文件,不知对你是否有参考意义.我是做硬件的对软件半桶水也没有.吃不烂它.



点击此处下载 ourdev_577464.rar(文件大小:66K) (原文件名:v8400.rar) 

出0入0汤圆

54
 楼主| 发表于 2009-1-7 22:13:11 | 只看该作者
to 【52楼】 h2feo4 无机酸

 

思路错了



V8任何一个版本,APP都不包含升级程序

升级程序在BOOT里,不需要降级

出0入0汤圆

55
发表于 2009-1-7 22:00:41 | 只看该作者
如果V8_4.00a的APP中不包含升级程序

为何不在升级前降回3.96再升级呢

假设company出了一个4.01版

而4.00a不包含升级程序

先把our-link降回稍早一点的版本,利用早期版本的升级程序升级

升级到4.01

除非our-link必须逐级升,不能跳级,即使是这样,也有可能能蒙骗过去

我没有our-link,以上仅为凭空猜想

出0入0汤圆

56
发表于 2009-1-7 13:26:06 | 只看该作者
非常非常感谢taoist,希望能早日开始我们自己的our-link,真正的our-link。来这听课,希望能有帮的上忙的一天。

出0入0汤圆

57
发表于 2009-1-7 13:05:46 | 只看该作者
 To:taoist



  謝謝了!呵呵,這真是痛苦的事。建議還是用IDA 好點。

出0入0汤圆

58
 楼主| 发表于 2009-1-7 09:28:27 | 只看该作者
to 【48楼】 zpwang 



在反汇编窗口,mouse 右键 copy window contents,只能一屏一屏copy



IAR是不区分指令还是数据的,这需要人工判断

出0入0汤圆

59
发表于 2009-1-6 23:13:22 | 只看该作者
taoist:

 请问在EWARM中有什么办法将反汇编内容保存下来?

还有就是在反汇编是怎么两数据段也反成代码了?

如:从0x102050~01020a5地址开始的这段.我想应该是一段数据段的.



请赐教,在此先谢谢了!

本贴被 zpwang 编辑过,最后修改时间:2009-01-06,23:27:30.

出0入0汤圆

60
发表于 2009-1-6 16:28:36 | 只看该作者
【44楼】 taoist



有同想法。。。做OUR-Link。。不过还只是想法而已。。正在学习。。如果你哪天你开始动手。。记得叫上我。。

出0入0汤圆

61
发表于 2009-1-6 16:12:20 | 只看该作者
插班生来听课了

出0入0汤圆

62
 楼主| 发表于 2009-1-6 16:04:16 | 只看该作者
其实。。。我很想学学PC端。。。自己搞个DLL。。。这样,就可以完全设计真正属于自己的OUR-LINK



目前看起来,V8还有很多问题。。。



1)RTCK测量不准

2)不支持XScale,ARM11,Cortex-A8等。。。

3)速度最高只有12MHz,小日本的PalmICE 2 可以跑到40MHz,而且可以逐Hz调

出0入0汤圆

63
发表于 2009-1-6 15:57:33 | 只看该作者
【41楼】 _yu-ming



不是写了吗?这个贴只讨论技术,是调试的技术,不是破解的技术吧。。这个暂时没有办法“盈利”吧。。。



反正不能专门找个地方讨论这个东西吧。。。

出0入0汤圆

64
 楼主| 发表于 2009-1-6 15:47:36 | 只看该作者
我没有权利限制别人不谋利,成品卖100块左右基本就是工本费和辛苦费了。。。



也许V4.00a就已经是大家可以免费升级的最后一版了。。。



偶而啃了啃pro,pro就没那么简单可以轻松攻破了。。。

本贴被 taoist 编辑过,最后修改时间:2009-01-06,15:49:07.

出0入0汤圆

65
发表于 2009-1-6 15:35:09 | 只看该作者
【39楼】 taoist 

   提个建议,是不是不要再在这里讨论了,有些居心不良的人已经开始,用这里的资源在谋取非法的利益了,这些人也太不厚道了。。。。。。。。。竟然还有原厂的丝印,可恶之极呀!!!

出0入0汤圆

66
发表于 2009-1-6 12:50:11 | 只看该作者
之前一直想学习USB知识的,现在发觉这也是个很好的切入点。



阅读USB文档时感觉枯燥无味的东西,有针对性地学,吸收得挺快。

出0入0汤圆

67
 楼主| 发表于 2009-1-6 12:37:27 | 只看该作者
to 【38楼】 k0059  



分段处理的。。。



1)speed < 6000 Hz,使用GPIO方式

2)6000 Hz <= speed < 188416 Hz,使用SPI + SSC方式

3)speed>= 188416 Hz,使用SPI + SSC + DMA方式

出0入0汤圆

68
发表于 2009-1-6 12:19:12 | 只看该作者
看了下j*l*i*n*k在实现jtag时序的时候,用了spi, ssc来完成jtag时序的



但是又有时候用了GPIO模式,比如在测量RTCK放回的时间的时候



这样切来切去的没问题吗

出0入42汤圆

69
发表于 2009-1-5 08:04:19 | 只看该作者
【35】楼的可以去看看OpenOCD。

出0入0汤圆

70
发表于 2009-1-4 21:53:02 | 只看该作者
我认为应该想办法搞一些原始的资料,比如协议呀,原理呀!利用网络的力量开发开源的设备和软件,可能意义更大!

出0入0汤圆

71
发表于 2009-1-4 20:56:49 | 只看该作者
这里有twentyone大侠写的JTAG原理,可以参考着看。。。

twentyone大侠写的,感觉很不错ourdev_571644.pdf(文件大小:531K) (原文件名:ARM JTAG 调试原理.pdf) 

出0入0汤圆

72
 楼主| 发表于 2009-1-4 20:50:32 | 只看该作者
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命令



目前已知这些。。。具体细节还要慢慢啃。。。

出0入0汤圆

73
 楼主| 发表于 2009-1-4 20:39:52 | 只看该作者
AT91SAM7S64/256晶振18.432MHz,通过PLL倍频到48MHz,则每个机器周期为20.83333ns

执行LDR指令、NOP指令(实际也是LDR指令)需要3个机器周期,即62.5ns,company按63ns计算

这样就可以计算RTCK的延时了,举2个例子:



 (原文件名:rtck.JPG) 

出0入0汤圆

74
 楼主| 发表于 2009-1-4 20:31:02 | 只看该作者
to 【30楼】 gurocky 



请勿出现敏感字眼!!!!!

出0入0汤圆

75
发表于 2009-1-4 20:25:27 | 只看该作者
关于RTCK和TCK,RTCK是两个异步系统中,TCK经过CLK同步之后返回给Jlink用于进一步操作,用于消除亚稳态。两个门电路实际上是沿检测电路。一般FPGA的设计都有涉及到的。

出0入0汤圆

76
 楼主| 发表于 2009-1-10 18:31:44 | 只看该作者
to 【112楼】 shaoshunda 
 
直接发给偶,偶帮你试嘛。。。

这样就可以彻底甩掉V8,进入pro时代了

出0入0汤圆

77
发表于 2009-1-10 18:37:43 | 只看该作者
TO 【113楼】 taoist

我还没牛到那个程度,不用硬件就可以写代码,就可以调试代码。
我只是菜鸟,需要硬件来调试代码的

本贴被 shaoshunda 编辑过,最后修改时间:2009-01-10,18:39:12.

出0入0汤圆

78
 楼主| 发表于 2009-1-10 18:38:52 | 只看该作者
to 【114楼】 shaoshunda 

我帮你调嘛。。。

搞定USB还算菜鸟?那偶岂不是菜菜子了???

出0入0汤圆

79
发表于 2009-1-10 18:50:20 | 只看该作者
TO 【115楼】 taoist 

你太谦虚了,汇编在我的眼里就是蝌蚪文,而对于你来说确可以轻而易举的看懂并加注释。

Pro的boot肯定是要重写的,它的APP的位置变了,而且还不知道它能不能从USB升级,升级协议有没有变也不知道。
我总不能瞎猜,随意写代码吧,身边还是需要一块板子的。

出0入0汤圆

80
 楼主| 发表于 2009-1-10 19:20:23 | 只看该作者
to 【116楼】 shaoshunda 

pro跟V8升级一样,除了地址不同外,别的都一样

出0入0汤圆

81
 楼主| 发表于 2009-1-10 19:22:33 | 只看该作者
证据:

from pro V4.00a

EMU_CMD_UPDATE
  0012799C  B580      PUSH         {R7, LR}
  0012799E  4807      LDR          R0, [PC,#0x01C]          ; R0 = [0x1279BC] =0x206300
  001279A0  2100      MOV          R1, #0                   ; R1 = 0
  001279A2  6001      STR          R1, [R0, #0]             ; [0x206300] = 0
  001279A4  2001      MOV          R0, #1                   ; R0 = 1
  001279A6  F7FD      ; pre BL/BLX 
  001279A8  FC49      BL           0x12523C                 ; USB send 1 byte
  001279AA  2064      MOV          R0, #100                 ; R0 = 100
  001279AC  F7F9      ; pre BL/BLX 
  001279AE  FF3E      BL           0x12182C                 ; delay_ms(100)
  001279B0  4803      LDR          R0, [PC,#0x00C]          ; R0 = [0x1279C0] =0x200040
  001279B2  4904      LDR          R1, [PC,#0x010]          ; R1 = [0x1279C4] =0x12344321
  001279B4  6001      STR          R1, [R0, #0]             ; [0x200040] = 0x12344321
  001279B6  F7F5      ; pre BL/BLX 
  001279B8  FE09      BL           0x11D5CC                 ; processor_reset
  001279BA  BD01      POP          {R0, PC}
  001279BC  00206300  DW
  001279C0  00200040  DW
  001279C4  12344321  DW

出0入0汤圆

82
发表于 2009-1-10 18:30:29 | 只看该作者
TO 【111楼】 taoist 

我并没有怀疑你说的话,我只是说在图片上没看到而已,没其它意思。

我打算去买IC和最小系统板,看下能不能搞定boot

本贴被 shaoshunda 编辑过,最后修改时间:2009-01-10,18:32:39.

出0入0汤圆

83
 楼主| 发表于 2009-1-10 18:30:25 | 只看该作者
to 【110楼】 shaoshunda 
 
居然不相信我的话。。。

T_T  T_T  T_T  T_T

出0入0汤圆

84
发表于 2009-1-10 18:28:48 | 只看该作者
在Pro的官方网站上看到的图片上,只看到三个灯在顶部,可能其他部位还有灯没看到

出0入0汤圆

85
 楼主| 发表于 2009-1-10 18:24:41 | 只看该作者
to 【108楼】 shaoshunda

我说了。。。是“可控”的

并不是网口的灯

出0入0汤圆

86
发表于 2009-1-10 18:15:25 | 只看该作者
其中两个应该是网口上的指示灯

出0入0汤圆

87
 楼主| 发表于 2009-1-10 17:59:56 | 只看该作者
pro居然有5个可控指示LED。。。

出0入0汤圆

88
发表于 2009-1-10 16:52:18 | 只看该作者
期待!!!

出0入0汤圆

89
发表于 2009-1-10 14:16:58 | 只看该作者
先学习一下Boot Loader,这个用GCC写的没有编译环境,准备改到MDK中.

出0入0汤圆

90
发表于 2009-1-10 14:07:53 | 只看该作者
TO 【102楼】 taoist

 用的就是"最简单的,也是最高效的:Atmel的AT91SAM7S-BasicUSB的BULK USB速度经测试可达到1MB/s" 贴子里面的代码,加上USB升级协议,再加上APP,Boot之间的跳转技巧,就得到了完美的V8 boot。使用的是自定义类,VID,PID要做相应的修改。

具体的升级协议就不要公布了吧,要不就没得玩了。协议的获取方法我在贴子里面有说的。

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=1911713&bbs_page_no=1&bbs_id=1032 里面有代码。


我给的答案应该还算满意吧

另:用IAR里面的USB例程来改也是可以的,但是编译完个头太大,臃肿。
为了玩v8 boot我的电脑蓝屏了N回,昼夜混战了N天,脑细胞死了无数,哈哈




本贴被 shaoshunda 编辑过,最后修改时间:2009-01-10,14:37:39.

出0入42汤圆

91
发表于 2009-1-10 13:41:20 | 只看该作者
这个已经不只是啃的问题了。USB升级协议还没搞定 

本贴被 ahfong2006 编辑过,最后修改时间:2009-01-10,13:42:12.

出0入0汤圆

92
 楼主| 发表于 2009-1-10 13:33:43 | 只看该作者
to 【101楼】 shaoshunda 
 
给点USB部分参考代码?

出0入0汤圆

93
发表于 2009-1-10 12:01:05 | 只看该作者
TO 【99楼】 ahfong2006 
 
本帖已经有了,自己啃一啃吧!

boot的代码是要完全自己写的,包括USB部分。

本贴被 shaoshunda 编辑过,最后修改时间:2009-01-10,12:02:19.

出0入0汤圆

94
发表于 2009-1-10 11:40:47 | 只看该作者
学习!!!!

出0入42汤圆

95
发表于 2009-1-10 11:20:13 | 只看该作者
可否透露点思路?

本贴被 ahfong2006 编辑过,最后修改时间:2009-01-10,11:21:23.

出0入0汤圆

96
发表于 2009-1-10 11:06:58 | 只看该作者
发两张V8完美升级截图,活跃一下贴子气氛,哈哈

按照 【58楼】 taoist 的方法没有搞定,我是按照自己的方法搞定的。用的是7S64。

本贴被 shaoshunda 编辑过,最后修改时间:2009-01-10,12:06:57.

出0入0汤圆

97
发表于 2009-1-10 11:05:00 | 只看该作者

 (原文件名:v8 updata.JPG) 

V8完美升级截图,从4.00升级到4.01a

出0入0汤圆

98
发表于 2009-1-10 11:02:48 | 只看该作者

 (原文件名:v8.JPG) 

V8完美升级截图,从3.96d升级到4.00

出0入0汤圆

99
发表于 2009-1-9 12:30:03 | 只看该作者
TO 【93楼】 _yu-ming 

你用的什么样的板子

出0入0汤圆

100
发表于 2009-1-9 12:26:25 | 只看该作者
TO 【92楼】 taoist

 我也去买一块板子回来整一整,看一下boot能不能搞定。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 14:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表