Autor Tema: Bootloader en ensamblador para PIC24FV16KM202  (Leído 181 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5326
Bootloader en ensamblador para PIC24FV16KM202
« en: 12 de Febrero de 2020, 16:18:07 »
Estoy intentando ensamblar un pequeño programa bootloader (el tiny pic bootloader) para un microcontrolador PIC24FV16KM202.

Trabajo con el toolchain XC16 en Mplab X IDE.

En principio el proyecto se ensambla sin problemas, pero no consigo controlar el vector de reset, porque en vez de un salto, aparece mucho código en las primeras posiciones de memoria.

¿Alguien sabe como manejar el linker para quitar todo el código extra?
Solo quiero un salto en el vector de reset.


Bootloader:
Código: ASM
  1. ;********************************************************************
  2. ;       Tiny Bootloader         dsPIC series            Size=100words
  3. ;       claudiu.chiculita@ugal.ro
  4. ;       http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm
  5. ;********************************************************************
  6.  
  7.         .include "p24FV16KM202.inc"
  8.  
  9.         config __FOSCSEL, FNOSC_FRCPLL
  10.         config __FOSC, POSCMOD_NONE
  11.  
  12. .equ    FOSC,   32000000
  13. .equ    baud,   115200
  14. .equ    IdTypePIC, 0xA0
  15. .equ    max_flash, 0x2000       ;PIC max address
  16. .equ    first_address,  max_flash - 100
  17.  
  18.  
  19.         .global   __reset
  20.  
  21.         .section .bss
  22. buff:   .space 4
  23. buffer: .space 128+6
  24.  
  25. ;REGISTRY:
  26. ;W0     imediat, param nvmcon
  27. ;W1     Receive
  28. ;W2     PUTCH           need?
  29. ;W3     count rcv
  30. ;W4     memory buffer pointer
  31. ;W5     ^
  32. ;W6     for
  33. ;W7     temp
  34. ;W8
  35. ;W9     Erase/Write Flag
  36. ;W10    delay1
  37. ;W11    delay2
  38. ;W12    EA Write
  39. ;W13    crc
  40. ;W14    void(black hole)
  41. ;W15    stack
  42.  
  43. .macro PUTCH car
  44.        MOV.B    \car, W2
  45.        MOV      W2,U1TXREG
  46.        .endm
  47.  
  48. .text
  49.        ;*************************************
  50.        ; Relocated user Reset Vector
  51.        ;*************************************
  52.        .org     first_address
  53.        CLR      W0
  54.        CLR      W0
  55.        CLR      W0
  56.        CLR      W0
  57.  
  58.        ;*************************************
  59.        ; Bootloader
  60.        ;*************************************
  61.        
  62. __reset:
  63. BootloaderEntry:
  64.        ;MOV      #__SP_init, W15
  65.        ;MOV      #__SPLIM_init, W0
  66.        ;MOV      W0, SPLIM
  67.        ;NOP
  68.  
  69. init_uart:
  70.        ;Initialize and Enable UART1 for Tx and Rx
  71.        MOV      #0x8000, W0     ;bit15=UARTEN  bit10=ALTIO
  72.        MOV      W0, U1MODE
  73.        MOV      #0x0400, W0     ;bit10=UTXEN
  74.        MOV      W0, U1STA
  75.        MOV      #(((FOSC/baud)-32)/64), W0    ;?Initialize Baud rate (divide INSTRUCTION Cycle)
  76.        MOV      W0, U1BRG                     ;to baud
  77.  
  78.  
  79.        ;wait for computer
  80.        MOV      #buff, W4
  81.        RCALL    Receive
  82.        SUB.B    #0xC1, W1                     ;Expect C1h
  83.        BRA NZ,  way_to_exit
  84.        PUTCH    #IdTypePIC                    ;send PIC type
  85.  
  86. MainLoop:
  87.        PUTCH    #'K'                          ; "-Everything OK, ready and waiting."
  88.  
  89. mainl:
  90.        CLR      W13                           ;chksum
  91.        MOV      #buff, W4
  92.        MOV      #4,  W6
  93.  
  94. dorcv4:
  95.        RCALL    Receive
  96.        DEC      W6, W6
  97.        BRA      NZ, dorcv4
  98.        MOV      buff, W12
  99.        MOV      buff+2, W3
  100.        MOV      W3, TBLPAG
  101.        ;test W3.H to find out what to do
  102.        MOV      #(96+1), W6
  103.  
  104. dorcvB:
  105.        RCALL    Receive
  106.        DEC      W6, W6
  107.        BRA      NZ, dorcvB
  108.        CP0      W13                           ;check crc
  109.        BRA      Z, chksumok
  110.  
  111. ziieroare:                                    ;CRC failed
  112.        PUTCH    #'N'
  113.        BRA      mainl
  114.  
  115. chksumok:
  116.        ;-----------------------------------------------------
  117.        ;ERASE
  118.        TBLWTL   W0,[W12]                      ;dummy
  119.        MOV      #0x4041,W0
  120.        CLRWDT
  121.        RCALL    Key_Sequence
  122.        ;Load_Write_Latch:
  123.        MOV      #buffer,W4
  124. edtbl3:
  125.        MOV      #31, W2
  126.        TBLWTL.B [W4++], [W12++]
  127.        TBLWTL.B [W4++], [W12--]
  128.        TBLWTH.B [W4++], [W12]
  129.        DEC       W2, W2
  130.        BRA       NZ, edtbl3
  131.  
  132.        INC2     W12, W12
  133.        MOV      #0x4001,W0
  134.        RCALL    Key_Sequence
  135.        BRA      MainLoop
  136.  
  137. ;-------------------------------------------------------------
  138. Key_Sequence:           ; Expects a NVMCON value in W0
  139.        MOV      W0,NVMCON
  140.        MOV      #0x55,W0                      ; Write the key sequence
  141.        MOV      W0,NVMKEY
  142.        MOV      #0xAA,W0
  143.        MOV      W0,NVMKEY
  144.        BSET     NVMCON,#WR                    ; Start the write cycle
  145.        NOP
  146.        NOP
  147.        RETURN
  148.  
  149. ;-------------------------------------------------------------
  150. Receive:
  151.        MOV     #(1000*(FOSC/1000)/(7*4096)), W10 ; ms waiting
  152. rpt2:
  153.        MOV     #1000, W11
  154. rpt1:
  155.        BTSS     U1STA, #URXDA
  156.        BRA      norcv
  157.        MOV      U1RXREG, W1                   ;return read data in W
  158.        MOV.B    W1, [W4++]
  159.        ADD.B    W1, W13, W13                  ;compute checksum
  160.        RETURN
  161. norcv:
  162.        CLRWDT
  163.        DEC      W11, W11
  164.        BRA      NZ, rpt1
  165.        DEC      W10, W10
  166.        BRA      NZ, rpt2
  167. timeout:
  168. way_to_exit:
  169.        CLR     U1MODE                        ; deactivate UART
  170.        BRA     first_address
  171.  
  172. .end
  173.  

Adjunto el proyecto para MPLAB X

Un saludo.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7514
Re:Bootloader en ensamblador para PIC24FV16KM202
« Respuesta #1 en: 12 de Febrero de 2020, 23:00:00 »
Citar
En principio el proyecto se ensambla sin problemas, pero no consigo controlar el vector de reset, porque en vez de un salto, aparece mucho código en las primeras posiciones de memoria.

¿Alguien sabe como manejar el linker para quitar todo el código extra?

Yo trabaje un poco con ASM en los dsPIC, te paso el link donde trate con ese tema:
http://www.todopic.com.ar/foros/index.php?topic=45240.msg376314#msg376314

Es poco claro, pero basicamente implicaa realizar un nuevo archivo para el linker.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5326
Re:Bootloader en ensamblador para PIC24FV16KM202
« Respuesta #2 en: 13 de Febrero de 2020, 13:47:53 »
Gracias, eso es lo que estaba buscando.

Un saludo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5326
Re:Bootloader en ensamblador para PIC24FV16KM202
« Respuesta #3 en: 14 de Febrero de 2020, 10:58:53 »
No consigo que funcione.
He cambiado el linker file y sigue sin funcionar.

Lo que estoy buscando es que el vector de reset (posición 0) tenga un GOTO a la posición 0x500h
Y a partir de la posición 0x500h, el resto del programa.


Este es el programa en ensamblador (main.s):
Código: ASM
  1.       .include "p24FV16KM202.inc"
  2.  
  3.       config __FOSCSEL, FNOSC_FRCPLL
  4.       config __FOSC, POSCMOD_NONE & OSCIOFNC_IO
  5.       config __FWDT, FWDTEN_OFF
  6.  
  7. .equ  first_address, 0x500
  8.  
  9.       .global   __reset
  10.  
  11.       .org     first_address
  12. __reset:
  13.       ;Initialize PORTS
  14.       MOV      #0x0000, W0
  15.       MOV      W0, ANSA
  16.       MOV      W0, ANSB
  17.       MOV      #0xFF7F, W0
  18.       MOV      W0, TRISB
  19.  
  20.       ; Blink LATB
  21. MainLoop:
  22.        MOV      #0xFFFF, W0
  23.        MOV      W0, LATB
  24.        NOP
  25.        NOP
  26.        MOV      #0x0000, W0
  27.        MOV      W0, LATB
  28.        BRA      MainLoop
  29. .end
  30.  

Estas son las líneas modificadas del  linker file:
Código: C
  1. CRT0_STARTUP(main.s)
  2. CRT1_STARTUP(main.s)
  3.  



Lo que aparece en el archivo hex:
Código: Text
  1. :020000040000fa
  2. :080000000602040000000000ec
  3. :020000040000fa
  4. :0400080000020000f2
  5. :020000040000fa
  6. :04000c0000020000ee
  7. :020000040000fa
  8. :0400100000020000ea
  9. :020000040000fa
  10. :0400140000020000e6
  11. :020000040000fa
  12. :0400180000020000e2
  13. :020000040000fa
  14. :04001c0000020000de
  15. :020000040000fa
  16. :0400200000020000da
  17. :020000040000fa
  18. :0400240000020000d6
  19. :020000040000fa
  20. :0400280000020000d2
  21. :020000040000fa
  22. :04002c0000020000ce
  23. :020000040000fa
  24. :0400300000020000ca
  25. :020000040000fa
  26. :0400340000020000c6
  27. :020000040000fa
  28. :0400380000020000c2
  29. :020000040000fa
  30. :04003c0000020000be
  31. :020000040000fa
  32. :0400400000020000ba
  33. :020000040000fa
  34. :0400440000020000b6
  35. :020000040000fa
  36. :0400480000020000b2
  37. :020000040000fa
  38. :04004c0000020000ae
  39. :020000040000fa
  40. :0400500000020000aa
  41. :020000040000fa
  42. :0400540000020000a6
  43. :020000040000fa
  44. :0400580000020000a2
  45. :020000040000fa
  46. :04005c00000200009e
  47. :020000040000fa
  48. :04006000000200009a
  49. :020000040000fa
  50. :040064000002000096
  51. :020000040000fa
  52. :040068000002000092
  53. :020000040000fa
  54. :04006c00000200008e
  55. :020000040000fa
  56. :04007000000200008a
  57. :020000040000fa
  58. :040074000002000086
  59. :020000040000fa
  60. :040078000002000082
  61. :020000040000fa
  62. :04007c00000200007e
  63. :020000040000fa
  64. :04008000000200007a
  65. :020000040000fa
  66. :040084000002000076
  67. :020000040000fa
  68. :040088000002000072
  69. :020000040000fa
  70. :04008c00000200006e
  71. :020000040000fa
  72. :04009000000200006a
  73. :020000040000fa
  74. :040094000002000066
  75. :020000040000fa
  76. :040098000002000062
  77. :020000040000fa
  78. :04009c00000200005e
  79. :020000040000fa
  80. :0400a000000200005a
  81. :020000040000fa
  82. :0400a4000002000056
  83. :020000040000fa
  84. :0400a8000002000052
  85. :020000040000fa
  86. :0400ac00000200004e
  87. :020000040000fa
  88. :0400b000000200004a
  89. :020000040000fa
  90. :0400b4000002000046
  91. :020000040000fa
  92. :0400b8000002000042
  93. :020000040000fa
  94. :0400bc00000200003e
  95. :020000040000fa
  96. :0400c000000200003a
  97. :020000040000fa
  98. :0400c4000002000036
  99. :020000040000fa
  100. :0400c8000002000032
  101. :020000040000fa
  102. :0400cc00000200002e
  103. :020000040000fa
  104. :0400d000000200002a
  105. :020000040000fa
  106. :0400d4000002000026
  107. :020000040000fa
  108. :0400d8000002000022
  109. :020000040000fa
  110. :0400dc00000200001e
  111. :020000040000fa
  112. :0400e000000200001a
  113. :020000040000fa
  114. :0400e4000002000016
  115. :020000040000fa
  116. :0400e8000002000012
  117. :020000040000fa
  118. :0400ec00000200000e
  119. :020000040000fa
  120. :0400f000000200000a
  121. :020000040000fa
  122. :0400f4000002000006
  123. :020000040000fa
  124. :0400f8000002000002
  125. :020000040000fa
  126. :0400fc0000020000fe
  127. :020000040000fa
  128. :0401000000020000f9
  129. :020000040000fa
  130. :0401040000020000f5
  131. :020000040000fa
  132. :0401080000020000f1
  133. :020000040000fa
  134. :04010c0000020000ed
  135. :020000040000fa
  136. :0401100000020000e9
  137. :020000040000fa
  138. :0401140000020000e5
  139. :020000040000fa
  140. :0401180000020000e1
  141. :020000040000fa
  142. :04011c0000020000dd
  143. :020000040000fa
  144. :0401200000020000d9
  145. :020000040000fa
  146. :0401240000020000d5
  147. :020000040000fa
  148. :0401280000020000d1
  149. :020000040000fa
  150. :04012c0000020000cd
  151. :020000040000fa
  152. :0401300000020000c9
  153. :020000040000fa
  154. :0401340000020000c5
  155. :020000040000fa
  156. :0401380000020000c1
  157. :020000040000fa
  158. :04013c0000020000bd
  159. :020000040000fa
  160. :0401400000020000b9
  161. :020000040000fa
  162. :0401440000020000b5
  163. :020000040000fa
  164. :0401480000020000b1
  165. :020000040000fa
  166. :04014c0000020000ad
  167. :020000040000fa
  168. :0401500000020000a9
  169. :020000040000fa
  170. :0401540000020000a5
  171. :020000040000fa
  172. :0401580000020000a1
  173. :020000040000fa
  174. :04015c00000200009d
  175. :020000040000fa
  176. :040160000002000099
  177. :020000040000fa
  178. :040164000002000095
  179. :020000040000fa
  180. :040168000002000091
  181. :020000040000fa
  182. :04016c00000200008d
  183. :020000040000fa
  184. :040170000002000089
  185. :020000040000fa
  186. :040174000002000085
  187. :020000040000fa
  188. :040178000002000081
  189. :020000040000fa
  190. :04017c00000200007d
  191. :020000040000fa
  192. :040180000002000079
  193. :020000040000fa
  194. :040184000002000075
  195. :020000040000fa
  196. :040188000002000071
  197. :020000040000fa
  198. :04018c00000200006d
  199. :020000040000fa
  200. :040190000002000069
  201. :020000040000fa
  202. :040194000002000065
  203. :020000040000fa
  204. :040198000002000061
  205. :020000040000fa
  206. :04019c00000200005d
  207. :020000040000fa
  208. :0401a0000002000059
  209. :020000040000fa
  210. :0401a4000002000055
  211. :020000040000fa
  212. :0401a8000002000051
  213. :020000040000fa
  214. :0401ac00000200004d
  215. :020000040000fa
  216. :0402080000020000f0
  217. :020000040000fa
  218. :04020c0000020000ec
  219. :020000040000fa
  220. :0402100000020000e8
  221. :020000040000fa
  222. :0402140000020000e4
  223. :020000040000fa
  224. :0402180000020000e0
  225. :020000040000fa
  226. :04021c0000020000dc
  227. :020000040000fa
  228. :0402200000020000d8
  229. :020000040000fa
  230. :0402240000020000d4
  231. :020000040000fa
  232. :0402280000020000d0
  233. :020000040000fa
  234. :04022c0000020000cc
  235. :020000040000fa
  236. :0402300000020000c8
  237. :020000040000fa
  238. :0402340000020000c4
  239. :020000040000fa
  240. :0402380000020000c0
  241. :020000040000fa
  242. :04023c0000020000bc
  243. :020000040000fa
  244. :0402400000020000b8
  245. :020000040000fa
  246. :0402440000020000b4
  247. :020000040000fa
  248. :0402480000020000b0
  249. :020000040000fa
  250. :04024c0000020000ac
  251. :020000040000fa
  252. :0402500000020000a8
  253. :020000040000fa
  254. :0402540000020000a4
  255. :020000040000fa
  256. :0402580000020000a0
  257. :020000040000fa
  258. :04025c00000200009c
  259. :020000040000fa
  260. :040260000002000098
  261. :020000040000fa
  262. :040264000002000094
  263. :020000040000fa
  264. :040268000002000090
  265. :020000040000fa
  266. :04026c00000200008c
  267. :020000040000fa
  268. :040270000002000088
  269. :020000040000fa
  270. :040274000002000084
  271. :020000040000fa
  272. :040278000002000080
  273. :020000040000fa
  274. :04027c00000200007c
  275. :020000040000fa
  276. :040280000002000078
  277. :020000040000fa
  278. :040284000002000074
  279. :020000040000fa
  280. :040288000002000070
  281. :020000040000fa
  282. :04028c00000200006c
  283. :020000040000fa
  284. :040290000002000068
  285. :020000040000fa
  286. :040294000002000064
  287. :020000040000fa
  288. :040298000002000060
  289. :020000040000fa
  290. :04029c00000200005c
  291. :020000040000fa
  292. :0402a0000002000058
  293. :020000040000fa
  294. :0402a4000002000054
  295. :020000040000fa
  296. :0402a8000002000050
  297. :020000040000fa
  298. :0402ac00000200004c
  299. :020000040000fa
  300. :0402b0000002000048
  301. :020000040000fa
  302. :0402b4000002000044
  303. :020000040000fa
  304. :0402b8000002000040
  305. :020000040000fa
  306. :0402bc00000200003c
  307. :020000040000fa
  308. :0402c0000002000038
  309. :020000040000fa
  310. :0402c4000002000034
  311. :020000040000fa
  312. :0402c8000002000030
  313. :020000040000fa
  314. :0402cc00000200002c
  315. :020000040000fa
  316. :0402d0000002000028
  317. :020000040000fa
  318. :0402d4000002000024
  319. :020000040000fa
  320. :0402d8000002000020
  321. :020000040000fa
  322. :0402dc00000200001c
  323. :020000040000fa
  324. :0402e0000002000018
  325. :020000040000fa
  326. :0402e4000002000014
  327. :020000040000fa
  328. :0402e8000002000010
  329. :020000040000fa
  330. :0402ec00000200000c
  331. :020000040000fa
  332. :0402f0000002000008
  333. :020000040000fa
  334. :0402f4000002000004
  335. :020000040000fa
  336. :0402f8000002000000
  337. :020000040000fa
  338. :0402fc0000020000fc
  339. :020000040000fa
  340. :0403000000020000f7
  341. :020000040000fa
  342. :0403040000020000f3
  343. :020000040000fa
  344. :0403080000020000ef
  345. :020000040000fa
  346. :04030c0000020000eb
  347. :020000040000fa
  348. :0403100000020000e7
  349. :020000040000fa
  350. :0403140000020000e3
  351. :020000040000fa
  352. :0403180000020000df
  353. :020000040000fa
  354. :04031c0000020000db
  355. :020000040000fa
  356. :0403200000020000d7
  357. :020000040000fa
  358. :0403240000020000d3
  359. :020000040000fa
  360. :0403280000020000cf
  361. :020000040000fa
  362. :04032c0000020000cb
  363. :020000040000fa
  364. :0403300000020000c7
  365. :020000040000fa
  366. :0403340000020000c3
  367. :020000040000fa
  368. :0403380000020000bf
  369. :020000040000fa
  370. :04033c0000020000bb
  371. :020000040000fa
  372. :0403400000020000b7
  373. :020000040000fa
  374. :0403440000020000b3
  375. :020000040000fa
  376. :0403480000020000af
  377. :020000040000fa
  378. :04034c0000020000ab
  379. :020000040000fa
  380. :0403500000020000a7
  381. :020000040000fa
  382. :0403540000020000a3
  383. :020000040000fa
  384. :04035800000200009f
  385. :020000040000fa
  386. :04035c00000200009b
  387. :020000040000fa
  388. :040360000002000097
  389. :020000040000fa
  390. :040364000002000093
  391. :020000040000fa
  392. :04036800000200008f
  393. :020000040000fa
  394. :04036c00000200008b
  395. :020000040000fa
  396. :040370000002000087
  397. :020000040000fa
  398. :040374000002000083
  399. :020000040000fa
  400. :04037800000200007f
  401. :020000040000fa
  402. :04037c00000200007b
  403. :020000040000fa
  404. :040380000002000077
  405. :020000040000fa
  406. :040384000002000073
  407. :020000040000fa
  408. :04038800000200006f
  409. :020000040000fa
  410. :04038c00000200006b
  411. :020000040000fa
  412. :040390000002000067
  413. :020000040000fa
  414. :040394000002000063
  415. :020000040000fa
  416. :04039800000200005f
  417. :020000040000fa
  418. :04039c00000200005b
  419. :020000040000fa
  420. :0403a0000002000057
  421. :020000040000fa
  422. :0403a4000002000053
  423. :020000040000fa
  424. :0403a800000200004f
  425. :020000040000fa
  426. :0403ac00000200004b
  427. :020000040000fa
  428. :0c0400000040da000000fe0000000500d3
  429. :020000040000fa
  430. :10040c000000200000278800000020001027880032
  431. :10041c00f0f72f0040168800f0ff2f0060168800c0
  432. :10042c0000000000000000000000200060168800a2
  433. :04043c00f9ff37008d
  434. :020000040000fa
  435. :0200000401f009
  436. :04000c00f9ff0000f8
  437. :020000040000fa
  438. :0200000401f009
  439. :04001000fbff0000f2
  440. :020000040000fa
  441. :0200000401f009
  442. :040014005fff00008a
  443. :00000001FF
  444.  
Está lleno de basura.

¿Cómo puedo conseguir simplificar el HEX?

Adjunto el proyecto.

Un saludo.

« Última modificación: 14 de Febrero de 2020, 11:03:29 por Picuino »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7514
Re:Bootloader en ensamblador para PIC24FV16KM202
« Respuesta #4 en: 14 de Febrero de 2020, 19:34:39 »
Lo que veo que esta agergando son los vectores de interrupcion normales y alternativos, el problema esta en que la definicion de los vectores en el .gld estan condicionados a una version, y que luego de cierta version ya solo el linker lo tiene...

Deberia revisar si hay algun comando del linker que permita quitarlo.

--------

EDITO:

Nuevo HEX

Código: [Seleccionar]
:020000040000fa
:080000000202040000000000f0
:020000040000fa
:0404000000000500f3
:020000040000fa
:0c0404000602040000000000ffff3700ab
:00000001FF

Ir a propiedades del proyecto (click derecho el proyecto -> Proterties ), luego te vas al linker xc16-ld y finalmente tenes una opcion al final que dice "No interrupt Vector table", tildalo y listo..
« Última modificación: 14 de Febrero de 2020, 19:39:06 por KILLERJC »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5326
Re:Bootloader en ensamblador para PIC24FV16KM202
« Respuesta #5 en: 15 de Febrero de 2020, 13:05:04 »
Bien, he conseguido eliminar el código extra.

Ahora necesito localizar el origen del código máquina para que esté en una dirección absoluta, sin embargo el linker añade unas 0x320 posiciones extra a la localización que asigno con la directiva .org

Con lo fácil que era antes. Ponías
    .ORG  0x500
Y el código comenzaba en la dirección 0x500 exacta, no donde al linker le da la gana, muchas direcciones después.

Yo entiendo que eso es util para trabajar en c, pero es que yo quiero trabajar en ensamblador precisamente para tener el control absoluto sobre la máquina. Ya me estoy planteando hasta ensamblar a mano el bootloader, como en los viejos tiempos.

Un saludo.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7514
Re:Bootloader en ensamblador para PIC24FV16KM202
« Respuesta #6 en: 15 de Febrero de 2020, 18:52:46 »
Cambie las direcciones del linker. Adjunto mi proyecto..
Lo unico raro es que me aparecen 2 saltos en la posicion 500

La otra opcion es crear una seccion de boteo... distinta a .text



 

anything