找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 673961776

HG8245C2/HG8245H用JLINK可JTAG读到CPU;TTL无反应救助,各路大神看看,求助,求助...

[复制链接]
发表于 2019-4-2 14:49:12 | 显示全部楼层
  1. #
  2. # Hisilicon SD5115 (T?)
  3. #
  4. # Author : CserSoft
  5. # Version : 1.3.2
  6. #
  7. adapter_khz 6000
  8. transport select jtag

  9. if { [info exists CHIPNAME] } {
  10.     set  _CHIPNAME $CHIPNAME
  11. } else {
  12.     set  _CHIPNAME sd5115
  13. }

  14. if { [info exists CPUTAPID] } {
  15.     set _CPU_TAPID $CPUTAPID
  16. } else {
  17.     set _CPU_TAPID 0x4ba00477
  18. }

  19. if { [info exists ENDIAN] } {
  20.     set _ENDIAN $ENDIAN
  21. } else {
  22.     # this defaults to a bigendian
  23.     set _ENDIAN little
  24. }

  25. if { [info exists ETB_TAPID] } {
  26.     set _ETB_TAPID $ETB_TAPID
  27. } else {
  28.     set _ETB_TAPID 0x410CF231
  29. }

  30. jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPU_TAPID

  31. # jtag newtap $_CHIPNAME etb -irlen 4 -expected-id $_ETB_TAPID

  32. set _TARGETNAME $_CHIPNAME.cpu

  33. target create $_TARGETNAME cortex_a -endian $_ENDIAN -chain-position $_TARGETNAME

  34. # etm_dummy config $_TARGETNAME
  35. # etb config $_TARGETNAME $_CHIPNAME.etb


  36. #调试初始化
  37. proc sd5115_dbginit { target } {
  38.     cortex_a dbginit
  39. }

  40. $_TARGETNAME configure -event reset-assert-post "sd5115_dbginit $_TARGETNAME"

  41. # init
  42. # dap apsel 1



  43. #获取内存数据 32 bit
  44. proc getmem32 { addr } {
  45.     mem2array atmp 32 $addr 1
  46.     return [lindex $atmp 1]
  47. }


  48. #设置内存数据 32 bit
  49. proc setmem32 { addr value } {
  50.     mww phys $addr $value 1
  51. }


  52. #对内存数据进行And操作 32 bit
  53. proc andmem32 { addr value } {
  54.     set vmem [getmem32 $addr]
  55.     return [expr $vmem & $value]
  56. }


  57. #对内存数据进行And操作并写回内存 32 bit
  58. proc andmem32w { addr value } {
  59.     set vmem [expr [getmem32 $addr] & $value]
  60.     mww phys $addr $vmem 1
  61.     return $vmem
  62. }


  63. #对内存数据进行Or操作 32 bit
  64. proc ormem32 { addr value } {
  65.     set vmem [getmem32 $addr]
  66.     return [expr $vmem | $value]
  67. }


  68. #对内存数据进行Or操作并写回内存 32 bit
  69. proc ormem32w { addr value } {
  70.     set vmem [expr [getmem32 $addr] | $value]
  71.     mww phys $addr $vmem 1
  72.     return $vmem
  73. }


  74. proc sd5115_startcode_offset_0x6EC { } {
  75.     andmem32w 0x10180000 0xFFFFFFFE
  76. }

  77. proc sd5115_startcode_offset_0x700 { } {
  78.     mww phys 0x1018000C 0xFFFFFFFF 1
  79. }

  80. proc sd5115_startcode_offset_0x710 { } {
  81.     ormem32w 0x10180054 0xFF
  82.     ormem32w 0x10180000 0x1
  83. }

  84. proc sd5115_startcode_offset_0xFAD4 { } {
  85.     setmem32 0x10100144 [expr [andmem32 0x10100144 0xFFF803FF] | 0x400]
  86. }

  87. proc sd5115_startcode_offset_0xFAF4 { } {
  88.     set vcpuid [getmem32 0x10100800]
  89.    
  90.     if { $vcpuid == 0x51151100 } {
  91.         ormem32w    0x13000000 0x80000
  92.         ormem32w    0x10106008 0xC0
  93.         ormem32w    0x10106008 0x300
  94.     } elseif { $vcpuid == 0x51152100 } {
  95.         ormem32w    0x13000000 0x60000
  96.         ormem32w    0x10108008 0xF0
  97.     } else {
  98.         ormem32w    0x130001C8 0x100
  99.         ormem32w    0x10106008 0xC00
  100.         andmem32w   0x13000000 0xFFFFFFFB
  101.         andmem32w   0x130001C8 0xFFFFFFDF
  102.         ormem32w    0x10106008 0x3000
  103.         andmem32w   0x13000000 0xFFFDFFFF
  104.         andmem32w   0x130001C8 0xFFFFFFBF
  105.     }
  106. }

  107. proc sd5115_startcode_offset_0xFBD8 { } {
  108.     set vcpuid [getmem32 0x10100800]
  109.    
  110.     if { $vcpuid != 0x51151100 } {
  111.         if { $vcpuid == 0x51152100 } {
  112.             setmem32    0x10400500 0x1FFF800
  113.             andmem32w   0x10100134 0xFFFFFFFC
  114.             andmem32w   0x10107008 0xDDFFFFFF
  115.             ormem32w    0x10107004 0x22000000
  116.             ormem32w    0x10107000 0x22000000
  117.             andmem32w   0x10108008 0xFFF7FFFF
  118.             ormem32w    0x10108004 0x80000
  119.             ormem32w    0x10108000 0x80000
  120.             andmem32w   0x10100144 0x3FFFFFFF
  121.         } else {
  122.             setmem32    0x10400500 0x1FFF800
  123.             andmem32w   0x10100134 0xFFFFFFFC
  124.             ormem32w    0x10107004 0x18000
  125.             andmem32w   0x10107000 0xFFFE7FFF
  126.             ormem32w    0x10107000 0x18000
  127.             andmem32w   0x1300016C 0xFFFFFFFC
  128.         }
  129.     }
  130. }

  131. proc sd5115_startcode_offset_0xFCD4 { } {
  132.     set vcpuid [getmem32 0x10100800]
  133.    
  134.     if { $vcpuid == 0x51151100 } {
  135.         andmem32w   0x1010012C 0xFFBFFFFF
  136.         andmem32w   0x10100138 0xFFFFFFBF
  137.         ormem32w    0x10100080 0x9
  138.         andmem32w   0x1010013C 0xFFFFEFFF
  139.         setmem32    0x1010005C 0x81020248
  140.         
  141.         while { [andmem32 0x10100038 0x10000] != 0x10000 } {sleep 1}
  142.         
  143.         ormem32w 0x1010007C 0x9
  144.         ormem32w 0x10100148 0x2
  145.         ormem32w 0x1010012C 0x400000
  146.         ormem32w 0x10100138 0x40
  147.         
  148.     } elseif { $vcpuid == 0x51152100 } {
  149.         if { [andmem32 0x10100190 1] == 1 } {
  150.             andmem32w   0x1010012C 0xFFBFFFFF
  151.             andmem32w   0x10100138 0xFFFFFFBF
  152.             ormem32w    0x10100080 0x9
  153.             andmem32w   0x10100144 0xFEFFFFFF
  154.             andmem32w   0x10100140 0xFFFFCFFF
  155.             ormem32w    0x10100140 0x40000000
  156.             setmem32    0x10100074 0x81028249
  157.             
  158.             while { [andmem32 0x10100038 0x40000] != 0x40000 } {sleep 1}

  159.             ormem32w 0x1010007C 0x9
  160.             ormem32w 0x10100148 0x2
  161.             ormem32w 0x1010012C 0x400000
  162.             ormem32w 0x10100138 0x40
  163.         } else {
  164.             while { [andmem32 0x10100038 0x20000] != 0x20000 } {sleep 1}
  165.         }
  166.         
  167.     } else {
  168.         andmem32w   0x1010012C 0xFFBFFFFF
  169.         andmem32w   0x10100138 0xFFFFFFBF
  170.         ormem32w    0x10100080 0x9
  171.         setmem32    0x1010011C 0x81028648

  172.         while { [andmem32 0x10100038 0x20000] != 0x20000 } {sleep 1}

  173.         ormem32w 0x1010007C 0x9
  174.         ormem32w 0x10100148 0x2
  175.         ormem32w 0x1010012C 0x400000
  176.         ormem32w 0x10100138 0x40
  177.     }
  178. }

  179. #sd5115_startcode_offset_0xFED4
  180. proc sd5115_init_dram { } {
  181.     halt
  182.     echo "Info: init dram..."
  183.    
  184.     set vcpuid [getmem32 0x10100800]
  185.    
  186.     if { $vcpuid == 0x51151100 } {
  187.         setmem32 0x10102010 1
  188.         setmem32 0x1010201C 0x8DF40630
  189.         setmem32 0x10102020 0x10184
  190.         setmem32 0x1010202C 0x132
  191.         setmem32 0x10102040 0x80000000
  192.         setmem32 0x10102050 0x62330A08
  193.         setmem32 0x10102054 0x7F525616
  194.         setmem32 0x1010205C 0x4BE58352
  195.         setmem32 0x101020F4 1
  196.         setmem32 0x10102058 0x6230A000
  197.         setmem32 0x10102004 0

  198.         while { [andmem32 0x10102000 4] != 0 } { sleep 1 }

  199.         setmem32 0x10102404 0x80000000
  200.         
  201.         while { [andmem32 0x10102410 1] != 1 } { sleep 1 }
  202.          
  203.         setmem32 0x10102418 0xDC000
  204.         setmem32 0x10102584 0x5D
  205.         setmem32 0x1010240C 0x3008401
  206.         setmem32 0x10102444 0x48B
  207.         setmem32 0x10102448 0x51106644
  208.         setmem32 0x1010244C 0x1A81629A
  209.         setmem32 0x10102450 0x100220C8
  210.         setmem32 0x10102454 0x1520
  211.         setmem32 0x10102458 6
  212.         setmem32 0x1010245C 0
  213.         setmem32 0x10102460 0
  214.         setmem32 0x101025C0 0x44000887
  215.         setmem32 0x10102440 0xF008003E
  216.         setmem32 0x10102468 0x1001541
  217.         setmem32 0x10102404 0xFFF3
  218.         
  219.         while { [andmem32 0x10102410 0x80000FFF] != 0x80000FFF } { sleep 1 }
  220.         
  221.         setmem32 0x10102058 0x6230A05F
  222.         setmem32 0x10102020 0x410185
  223.         setmem32 0x1010201C 0x8DF40630
  224.         setmem32 0x10102200 0x305133
  225.         setmem32 0x10102204 0x3062CC
  226.         
  227.     } elseif { $vcpuid == 0x51152100 } {
  228.         if { [andmem32 0x10100190 1] == 1 } {
  229.             setmem32 0x10102010 1
  230.             setmem32 0x1010201C 0x80000600
  231.             setmem32 0x10102020 0x584
  232.             setmem32 0x1010202C 0x142
  233.             setmem32 0x10102040 0x80000000
  234.             setmem32 0x10102050 0x63440E0A
  235.             setmem32 0x10102054 0xFF526720
  236.             setmem32 0x10102058 0x6240A000
  237.             setmem32 0x1010205C 0xFFDFF5F2
  238.             setmem32 0x101020F4 0x21
  239.             setmem32 0x101020AC 0x3000501
  240.             setmem32 0x10102004 0

  241.             while { [andmem32 0x10102000 4] != 0 } { sleep 1 }

  242.             setmem32 0x10102404 0x80000000

  243.             while { [andmem32 0x10102410 1] != 1 } { sleep 1 }

  244.             setmem32 0x10102418 0x5C000
  245.             setmem32 0x1010248C 0xF01E78
  246.             setmem32 0x1010241C 0x1F40FA10
  247.             setmem32 0x10102420 0x61A808CA
  248.             setmem32 0x10102428 0xC83D090
  249.             setmem32 0x1010242C 0x1F4186A0
  250.             setmem32 0x10102444 0x48B
  251.             setmem32 0x10102448 0x6D538844
  252.             setmem32 0x1010244C 0x22820282
  253.             setmem32 0x10102450 0x1002EA00
  254.             setmem32 0x10102454 0x1930
  255.             setmem32 0x10102458 0x42
  256.             setmem32 0x1010245C 8
  257.             setmem32 0x10102460 0
  258.             setmem32 0x10102464 0x210000
  259.             setmem32 0x10102468 0x210035C3
  260.             setmem32 0x10102584 0x2D
  261.             setmem32 0x101025C0 0x44000E81
  262.             setmem32 0x10102600 0x44000E81
  263.             setmem32 0x10102440 0xF000603E
  264.             setmem32 0x10102404 0xFFF3

  265.             while { [andmem32 0x10102410 1] != 1 } { sleep 1 }

  266.             setmem32 0x10102058 0x6240A079
  267.             setmem32 0x10102200 0x304132
  268.             setmem32 0x10102204 0x306132
  269.             setmem32 0x10102208 0x304066
  270.             setmem32 0x10102210 0x306132
  271.         } else {
  272.             setmem32 0x10102010 1
  273.             setmem32 0x1010201C 0x80000601
  274.             setmem32 0x10102020 0x580
  275.             setmem32 0x1010202C 0x142
  276.             setmem32 0x10102040 0x80000000
  277.             setmem32 0x10102050 0xC466150F
  278.             setmem32 0x10102054 0xFF545540
  279.             setmem32 0x10102058 0x84610000
  280.             setmem32 0x1010205C 0xFFDFF4F4
  281.             setmem32 0x101020F4 0x21
  282.             setmem32 0x101020AC 0x3000501
  283.             setmem32 0x10102004 0

  284.             while { [andmem32 0x10102000 4] != 0 } { sleep 1 }

  285.             setmem32 0x10102404 0x80000000

  286.             while { [andmem32 0x10102410 1] != 1 } { sleep 1 }

  287.             setmem32 0x10102418 0x5C000
  288.             setmem32 0x1010248C 0xF01860
  289.             setmem32 0x1010241C 0x1900C810
  290.             setmem32 0x10102420 0x4E200708
  291.             setmem32 0x10102428 0xA030D40
  292.             setmem32 0x1010242C 0x19013880
  293.             setmem32 0x10102444 0x48B
  294.             setmem32 0x10102448 0x550F6644
  295.             setmem32 0x1010244C 0x22820202
  296.             setmem32 0x10102450 0x1002EA00
  297.             setmem32 0x10102454 0x1510
  298.             setmem32 0x10102458 0x42
  299.             setmem32 0x1010245C 0
  300.             setmem32 0x10102460 0
  301.             setmem32 0x10102464 0x210000
  302.             setmem32 0x10102468 0x210035C3
  303.             setmem32 0x10102584 0x2D
  304.             setmem32 0x101025C0 0x44000E81
  305.             setmem32 0x10102600 0x44000E81
  306.             setmem32 0x10102440 0xF008603E
  307.             setmem32 0x10102404 0xFFF3

  308.             while { [andmem32 0x10102410 1] != 1 } { sleep 1 }

  309.             setmem32 0x10102058 0x846100C3
  310.             setmem32 0x10102200 0x304132
  311.             setmem32 0x10102204 0x306132
  312.             setmem32 0x10102208 0x304066
  313.             setmem32 0x10102210 0x306132
  314.         }
  315.     } else {
  316.         setmem32 0x10102010 1
  317.         setmem32 0x1010201C 0xE92E0601
  318.         setmem32 0x10102020 0x1F180
  319.         setmem32 0x1010202C 0x132
  320.         setmem32 0x10102040 0x80000000
  321.         setmem32 0x10102050 0xC466130E
  322.         setmem32 0x10102054 0xFF535625
  323.         setmem32 0x1010205C 0x7E58484
  324.         setmem32 0x101020F4 1
  325.         setmem32 0x10102058 0x74511000
  326.         setmem32 0x101020AC 0x3000501
  327.         setmem32 0x10102004 0
  328.         
  329.         while { [andmem32 0x10102000 4] != 0 } { sleep 1 }
  330.         
  331.         setmem32 0x10102404 0x80000000
  332.         
  333.         while { [andmem32 0x10102410 1] != 1 } { sleep 1 }
  334.         
  335.         setmem32 0x10102418 0xDC000
  336.         setmem32 0x1010240C 0x3008401
  337.         setmem32 0x10102444 0x48B
  338.         setmem32 0x10102448 0x4D0E6644
  339.         setmem32 0x1010244C 0x1A812A30
  340.         setmem32 0x10102450 0x1001A0C8
  341.         setmem32 0x10102454 0x1320
  342.         setmem32 0x10102458 0x42
  343.         setmem32 0x1010245C 0
  344.         setmem32 0x10102460 0
  345.         setmem32 0x10102468 0x11001547
  346.         setmem32 0x101025C0 0x44000887
  347.         setmem32 0x10102600 0x44000E81
  348.         setmem32 0x10102440 0xF008003E
  349.         setmem32 0x10102584 0x1D
  350.         setmem32 0x10102404 0xFFF3
  351.         
  352.         while { [andmem32 0x10102410 0x80000FFF] != 0x80000FFF } { sleep 1 }
  353.         
  354.         setmem32 0x10102058 0x7450F09E
  355.         setmem32 0x10102020 0x40EF01
  356.         setmem32 0x101020F8 0
  357.         setmem32 0x10102200 0x305133
  358.         setmem32 0x10102204 0x306266
  359.         setmem32 0x10102208 0x306066
  360.         setmem32 0x1010220C 0
  361.         setmem32 0x1010201C 0xB9D60601
  362.     }
  363. }

  364. proc sd5115_hwinit { } {
  365.     halt
  366.     poll
  367.    
  368.     #enter Supervisor mode
  369.     reg cpsr 0x1D3
  370.    
  371.     arm mcr 15 0 8 7 0 0
  372.     arm mcr 15 0 7 5 0 0
  373.     arm mcr 15 2 0 0 0 0
  374.    
  375.    
  376.     set v5 [expr ([arm mrc 15 1 0 0 0] >> 13) & 0x1ff]
  377.     set v6 0
  378.    
  379.    
  380.     while {$v6 < 4} {
  381.         set v7 0
  382.         
  383.         while {$v7 <= $v5} {
  384.             set vtmp [expr ($v6 << 30) | 32 * $v7]
  385.             set v7 [incr $v7]
  386.             
  387.             arm mcr 15 0 7 6 2 $vtmp
  388.         }
  389.         
  390.         set v6 [incr $v6]
  391.     }
  392.    
  393.     if { [expr [arm mrc 15 0 0 0 5] & 0xf] != 0} {
  394.         echo "Error: (arm mrc 15 0 0 0 5) & 0xf != 0 !"
  395.         
  396.         ;# while { [getmem32 0x10100120] != 0xDD2 } { sleep 1 }
  397.         ;# resume 0x820002C8
  398.         
  399.         if 0 {
  400.             ormem32w 0x10100000 0x100
  401.             
  402.             if { [getmem32 0x10100800] != 0x51152100 } {
  403.                 echo "getmem32 0x10100800 != 0x51152100 !"
  404.                 ;# ...
  405.                 ;# ...
  406.                 ;# ...
  407.                 ;# ...
  408.                 ;# ...
  409.             } else {
  410.                 while { [getmem32 0x1010011C] == 0 } { sleep 1 }
  411.                 echo "0x1010011C is not zero!"
  412.             }
  413.         }
  414.         
  415.         return
  416.     }
  417.    
  418.     arm mcr 15 0 1 0 0 [expr [arm mrc 15 0 0 0 1] & 0xFFFFDFF8 | 0x802]
  419.    
  420.     if { [expr [arm mrc 15 0 0 0 5] & 0xf] == 0 } {
  421.         echo "Info: (arm mrc 15 0 0 0 5) & 0xf == 0 ."
  422.         
  423.         echo "Info: call offset 0x6EC ."
  424.         sd5115_startcode_offset_0x6EC
  425.         
  426.         echo "Info: call offset 0x700 ."
  427.         sd5115_startcode_offset_0x700
  428.         
  429.         echo "Info: call offset 0x710 ."
  430.         sd5115_startcode_offset_0x710
  431.     }
  432.    
  433.     arm mcr 15 0 1 0 0 [expr [arm mrc 15 0 1 0 0] | 0x1000]
  434.    
  435.     setmem32 0x10A30004 0x00000355
  436.    
  437.     ormem32w 0x10A20100 0x2
  438.    
  439.     echo "Info: call offset 0xFAD4 ."
  440.     sd5115_startcode_offset_0xFAD4
  441.    
  442.     setmem32 0x1010007C 0xFFFFFFFF
  443.     setmem32 0x1010008C 0xFFFFFFFF
  444.     setmem32 0x1010012C 0xFFFFFFFF
  445.     setmem32 0x10100130 0xFE7FFFFF
  446.    
  447.     ormem32w 0x10100138 0x7F
  448.     ormem32w 0x10100140 0x80000000

  449.     set vcpuid [getmem32 0x10100800]
  450.    
  451.     if { $vcpuid == 0x51152100 } {
  452.         if { [expr [getmem32 0x10100190] & 1] == 1 } {
  453.             mww phys 0x1010005C 0x8103844D 1
  454.         }
  455.         
  456.         mww phys 0x1010005C 0x8103444D 1
  457.     }
  458.    
  459.     while { [andmem32 0x10100038 0x10000] != 0x10000 } {sleep 1}
  460.     while { [andmem32 0x10100038 0x40000] != 0x40000 } {sleep 1}
  461.    
  462.     setmem32 0x1010013C [expr [andmem32 0x1010013C 0xFFFFFFE3] | 0x10]
  463.    
  464.     echo "Info: call offset 0xFCD4 ."
  465.     sd5115_startcode_offset_0xFCD4
  466.    
  467.     andmem32w 0x1010013C 0xFFFFF3FF
  468.     andmem32w 0x10100138 0xFFDFFFFF
  469.     andmem32w 0x10100138 0xFFF7FFFF
  470.     setmem32 0x10100054 0xFFFFFFE0
  471.     setmem32 0x10100050 0x7FF00
  472.     ormem32w 0x10100000 0x4
  473.    
  474.     while { [andmem32 0x10100000 0x4] != 0x4 } {sleep 1}
  475.    
  476.     echo "Info: call offset 0xFAF4 ."
  477.     sd5115_startcode_offset_0xFAF4
  478.    
  479.     echo "Info: call offset 0xFBD8 ."
  480.     sd5115_startcode_offset_0xFBD8
  481.    
  482.     echo "Info: call offset 0xFED4 (init dram)."
  483.     sd5115_init_dram
  484.    
  485.     echo "Hardware initialization is complete!"
  486. }

  487. proc sd5115_loadsc { filepath } {
  488.     halt
  489.     load_image $filepath 0x82000000
  490.     ;# verify_image $filepath 0x82000000
  491. }

  492. proc sd5115_goto_entry { } {
  493.     if { [getmem32 0x10100800] != 0x51152100 } {
  494.         resume 0x82000000
  495.     } else {
  496.         if { [expr [arm mrc 15 0 0 0 5] & 0xf] != 0 } {
  497.             while { [getmem32 0x10100120] != 0xDD2 } { sleep 1 }
  498.             resume 0x82000000
  499.         } else {
  500.             echo "Warn: Can't resume (1)!"
  501.         }
  502.     }
  503. }

  504. proc sd5115_goto_continue { } {
  505.     if { [getmem32 0x10100800]  != 0x51152100 } {
  506.         resume 0x820002C8
  507.     } else {
  508.         if { [expr [arm mrc 15 0 0 0 5] & 0xf] != 0 } {
  509.             while { [getmem32 0x10100120] != 0xDD2 } { sleep 1 }
  510.             resume 0x820002C8
  511.         } else {
  512.             echo "Warn: Can't resume (2)!"
  513.         }
  514.     }
  515. }

  516. proc sd5115_enter_svc_mode { } {
  517.     halt
  518.     #enter Supervisor mode
  519.     reg cpsr 0x1D3
  520. }

  521. proc sd5115_help { } {
  522.     echo "Usage 1:"
  523.     echo "  *Step1:  {sd5115_hwinit}"
  524.     echo "  *Step2:  {sd5115_loadsc mtd0.bin}"
  525.     echo "   Step3:  {sd5115_enter_svc_mode}"
  526.     echo "  *Step4:  {sd5115_goto_entry} or {sd5115_goto_continue}"
  527.     echo "  !Note!:  {sd5115_goto_continue} is not recommended"
  528.     echo " "
  529.     echo "Usage 2:"
  530.     echo "  *Step1:  {sd5115_init_dram}"
  531.     echo "  *Step2:  {sd5115_loadsc mtd0.bin}"
  532.     echo "   Step3:  {sd5115_enter_svc_mode}"
  533.     echo "  *Step4:  {sd5115_goto_entry} or {resume 0x82000000}"
  534.     echo " "
  535. }

复制代码


Step1:  {sd5115_hwinit} 执行这一条

然后
halt ; load_image uboot.BIN 0x81F00000 ; resume 0x81F00000

然后用uboot里的命令写固件

方活就在这就看你不会不
发表于 2020-12-19 22:30:56 | 显示全部楼层

回帖赚猫粮
发表于 2021-2-1 12:52:56 | 显示全部楼层
回帖赚猫粮
发表于 2021-12-2 09:02:18 | 显示全部楼层
学习了学习了
发表于 2021-12-22 23:08:01 | 显示全部楼层

回帖赚猫粮
发表于 2022-6-19 00:30:57 | 显示全部楼层
好好学习,天天向上,高手如云啊
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-7-15 04:32 , Processed in 0.024534 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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