Autor Tema: Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz  (Leído 1637 veces)

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

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2760
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #45 en: 23 de Mayo de 2017, 07:09:49 »
.

Solo quiero convertir lo que se use en el aplicativo actual para Teensy, hay muchísimas expresiones en kinetis.h y el core, que no se emplean en este proyecto. Pero para averiguarlo tengo que hacer el programa que haga las búsquedas.

Puedo crear un fichero de texto, con una linea por expresión a buscar, y crear otro archivo con los nombres de los archivos de código fuente en los que hay que buscar, o que el programa sea capaz de buscar en todos los archivos del directorio actual.

¿ Conoces algún ejemplo de rutina en Python, que lea las expresiones almacenadas en un fichero de texto, las busque en todos los archivos del directorio local y grabe los resultados en un fichero de texto ?. Hacerlo en C, no es complicado, con el Dev-C++ que he instalado, creo que puedo hacerlo en un rato.


Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4342
    • Picuino
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #46 en: 23 de Mayo de 2017, 08:08:26 »
Código: Python
  1. import os, re
  2.  
  3. expresiones = ['expresion 1', 'expresion 2']
  4.  
  5. resultado = []
  6. for filename in os.listdir('.'):
  7.    data = open(filename, 'rt').read()
  8.    for expresion in expresiones:
  9.       match = re.findall(expresion, data)
  10.       resultado = resultado + [filename + ';' + m for m in match]
  11. open('resultado.txt', 'wt').write('\n'.join(resultado))  
  12.  

No lo he probado, puede que tenga algún error.
El programa busca todas las expresiones en todos los ficheros del directorio actual y graba en un fichero 'resultado.txt' todo lo que ha encontrado, con el nombre del fichero donde lo ha encontrado.

Saludos.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2760
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #47 en: 23 de Mayo de 2017, 08:33:34 »
.

Ok, gracias, lo probaré.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2760
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #48 en: 23 de Mayo de 2017, 08:53:32 »
.

Vale, ya lo he probado y funciona. ¿ Es muy complicado hacer que guarde también el número de linea del archivo en el que ha encontrado la expresión, o mejor aún que guarde la linea completa en vez de la expresión encontrada ?.

¿ Le puedo indicar que no busque en un fichero concreto ?, es para que no busque en el propio fichero del programa python, porque ahí están todas las expresiones y siempre las va a encontrar, aunque con no hacer caso a esas entradas al leer el fichero de resultados, arreglado.


Desconectado tsk

  • PIC16
  • ***
  • Mensajes: 161
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #49 en: 23 de Mayo de 2017, 10:42:41 »
Has probado ctags o cscope

Por ejemplo con cscope

Código: [Seleccionar]
find . -name '*.c' -o -name '*.h' -o -name '*.cpp' > cscope.files
cscope -b
cscope

Te crea una base en la que puedes buscar desde los símbolos, definiciones, funciones, texto, etc.


O también puedes usar CodeQuery que tiene una interfaz gráfica

https://ruben2020.github.io/codequery/

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4342
    • Picuino
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #50 en: 23 de Mayo de 2017, 12:54:27 »
A ver esto:
Solo extrae información del core MK66
He incluido una expresión para que extraiga todas las definiciones de pines.

Código: Python
  1. import os, re
  2.  
  3. expresions = [
  4.    '#define.*PIN[0-9]{1,2}',
  5. ]
  6.  
  7. # Define cores to extract
  8. switch_off = 'defined\(__MK(?!^66)'
  9. switch_on = '#endif|__MK66FX1M0__'
  10.  
  11. # Parse directory
  12. fo = open('_resultado.txt', 'wt')
  13. for filename in os.listdir('.'):
  14.    if (os.path.splitext(filename)[1].lower() in ['.py', '.txt'] or
  15.        os.path.isdir(filename)):
  16.       continue
  17.    # Parse file
  18.    print filename
  19.    cab = False
  20.    switch = True
  21.    for line in open(filename, 'rt'):
  22.       # Skip other cores
  23.       if re.search(switch_off, line):
  24.          switch = False
  25.       if switch == False and re.search(switch_on, line):
  26.          switch = True
  27.       if switch == False:
  28.          continue
  29.       # Extract lines who match expressions
  30.       for expresion in expresions:
  31.          if re.search(expresion, line):                        
  32.             if not cab: # Write filename to output
  33.                fo.write('\n;\t' + filename + '\n')
  34.                cab = True
  35.             fo.write(line)
  36. fo.close()

Resultado:
Código: Text
  1.  
  2. ;       core_pins.h
  3. #define CORE_PIN0_BIT           16
  4. #define CORE_PIN1_BIT           17
  5. #define CORE_PIN2_BIT           0
  6. #define CORE_PIN3_BIT           12
  7. #define CORE_PIN4_BIT           13
  8. #define CORE_PIN5_BIT           7
  9. #define CORE_PIN6_BIT           4
  10. #define CORE_PIN7_BIT           2
  11. #define CORE_PIN8_BIT           3
  12. #define CORE_PIN9_BIT           3
  13. #define CORE_PIN10_BIT          4
  14. #define CORE_PIN11_BIT          6
  15. #define CORE_PIN12_BIT          7
  16. #define CORE_PIN13_BIT          5
  17. #define CORE_PIN14_BIT          1
  18. #define CORE_PIN15_BIT          0
  19. #define CORE_PIN16_BIT          0
  20. #define CORE_PIN17_BIT          1
  21. #define CORE_PIN18_BIT          3
  22. #define CORE_PIN19_BIT          2
  23. #define CORE_PIN20_BIT          5
  24. #define CORE_PIN21_BIT          6
  25. #define CORE_PIN22_BIT          1
  26. #define CORE_PIN23_BIT          2
  27. #define CORE_PIN24_BIT          26
  28. #define CORE_PIN25_BIT          5
  29. #define CORE_PIN26_BIT          14
  30. #define CORE_PIN27_BIT          15
  31. #define CORE_PIN28_BIT          16
  32. #define CORE_PIN29_BIT          18
  33. #define CORE_PIN30_BIT          19
  34. #define CORE_PIN31_BIT          10
  35. #define CORE_PIN32_BIT          11
  36. #define CORE_PIN33_BIT          24
  37. #define CORE_PIN34_BIT          25
  38. #define CORE_PIN35_BIT          8
  39. #define CORE_PIN36_BIT          9
  40. #define CORE_PIN37_BIT          10
  41. #define CORE_PIN38_BIT          11
  42. #define CORE_PIN39_BIT          17
  43. #define CORE_PIN40_BIT          28
  44. #define CORE_PIN41_BIT          29
  45. #define CORE_PIN42_BIT          26
  46. #define CORE_PIN43_BIT          20
  47. #define CORE_PIN44_BIT          22
  48. #define CORE_PIN45_BIT          23
  49. #define CORE_PIN46_BIT          21
  50. #define CORE_PIN47_BIT          8
  51. #define CORE_PIN48_BIT          9
  52. #define CORE_PIN49_BIT          4
  53. #define CORE_PIN50_BIT          5
  54. #define CORE_PIN51_BIT          14
  55. #define CORE_PIN52_BIT          13
  56. #define CORE_PIN53_BIT          12
  57. #define CORE_PIN54_BIT          15
  58. #define CORE_PIN55_BIT          11
  59. #define CORE_PIN56_BIT          10
  60. #define CORE_PIN57_BIT          11
  61. #define CORE_PIN58_BIT          0
  62. #define CORE_PIN59_BIT          1
  63. #define CORE_PIN60_BIT          2
  64. #define CORE_PIN61_BIT          3
  65. #define CORE_PIN62_BIT          4
  66. #define CORE_PIN63_BIT          5
  67. #define CORE_PIN0_BITMASK       (1<<(CORE_PIN0_BIT))
  68. #define CORE_PIN1_BITMASK       (1<<(CORE_PIN1_BIT))
  69. #define CORE_PIN2_BITMASK       (1<<(CORE_PIN2_BIT))
  70. #define CORE_PIN3_BITMASK       (1<<(CORE_PIN3_BIT))
  71. #define CORE_PIN4_BITMASK       (1<<(CORE_PIN4_BIT))
  72. #define CORE_PIN5_BITMASK       (1<<(CORE_PIN5_BIT))
  73. #define CORE_PIN6_BITMASK       (1<<(CORE_PIN6_BIT))
  74. #define CORE_PIN7_BITMASK       (1<<(CORE_PIN7_BIT))
  75. #define CORE_PIN8_BITMASK       (1<<(CORE_PIN8_BIT))
  76. #define CORE_PIN9_BITMASK       (1<<(CORE_PIN9_BIT))
  77. #define CORE_PIN10_BITMASK      (1<<(CORE_PIN10_BIT))
  78. #define CORE_PIN11_BITMASK      (1<<(CORE_PIN11_BIT))
  79. #define CORE_PIN12_BITMASK      (1<<(CORE_PIN12_BIT))
  80. #define CORE_PIN13_BITMASK      (1<<(CORE_PIN13_BIT))
  81. #define CORE_PIN14_BITMASK      (1<<(CORE_PIN14_BIT))
  82. #define CORE_PIN15_BITMASK      (1<<(CORE_PIN15_BIT))
  83. #define CORE_PIN16_BITMASK      (1<<(CORE_PIN16_BIT))
  84. #define CORE_PIN17_BITMASK      (1<<(CORE_PIN17_BIT))
  85. #define CORE_PIN18_BITMASK      (1<<(CORE_PIN18_BIT))
  86. #define CORE_PIN19_BITMASK      (1<<(CORE_PIN19_BIT))
  87. #define CORE_PIN20_BITMASK      (1<<(CORE_PIN20_BIT))
  88. #define CORE_PIN21_BITMASK      (1<<(CORE_PIN21_BIT))
  89. #define CORE_PIN22_BITMASK      (1<<(CORE_PIN22_BIT))
  90. #define CORE_PIN23_BITMASK      (1<<(CORE_PIN23_BIT))
  91. #define CORE_PIN24_BITMASK      (1<<(CORE_PIN24_BIT))
  92. #define CORE_PIN25_BITMASK      (1<<(CORE_PIN25_BIT))
  93. #define CORE_PIN26_BITMASK      (1<<(CORE_PIN26_BIT))
  94. #define CORE_PIN27_BITMASK      (1<<(CORE_PIN27_BIT))
  95. #define CORE_PIN28_BITMASK      (1<<(CORE_PIN28_BIT))
  96. #define CORE_PIN29_BITMASK      (1<<(CORE_PIN29_BIT))
  97. #define CORE_PIN30_BITMASK      (1<<(CORE_PIN30_BIT))
  98. #define CORE_PIN31_BITMASK      (1<<(CORE_PIN31_BIT))
  99. #define CORE_PIN32_BITMASK      (1<<(CORE_PIN32_BIT))
  100. #define CORE_PIN33_BITMASK      (1<<(CORE_PIN33_BIT))
  101. #define CORE_PIN34_BITMASK      (1<<(CORE_PIN34_BIT))
  102. #define CORE_PIN35_BITMASK      (1<<(CORE_PIN35_BIT))
  103. #define CORE_PIN36_BITMASK      (1<<(CORE_PIN36_BIT))
  104. #define CORE_PIN37_BITMASK      (1<<(CORE_PIN37_BIT))
  105. #define CORE_PIN38_BITMASK      (1<<(CORE_PIN38_BIT))
  106. #define CORE_PIN39_BITMASK      (1<<(CORE_PIN39_BIT))
  107. #define CORE_PIN40_BITMASK      (1<<(CORE_PIN40_BIT))
  108. #define CORE_PIN41_BITMASK      (1<<(CORE_PIN41_BIT))
  109. #define CORE_PIN42_BITMASK      (1<<(CORE_PIN42_BIT))
  110. #define CORE_PIN43_BITMASK      (1<<(CORE_PIN43_BIT))
  111. #define CORE_PIN44_BITMASK      (1<<(CORE_PIN44_BIT))
  112. #define CORE_PIN45_BITMASK      (1<<(CORE_PIN45_BIT))
  113. #define CORE_PIN46_BITMASK      (1<<(CORE_PIN46_BIT))
  114. #define CORE_PIN47_BITMASK      (1<<(CORE_PIN47_BIT))
  115. #define CORE_PIN48_BITMASK      (1<<(CORE_PIN48_BIT))
  116. #define CORE_PIN49_BITMASK      (1<<(CORE_PIN49_BIT))
  117. #define CORE_PIN50_BITMASK      (1<<(CORE_PIN50_BIT))
  118. #define CORE_PIN51_BITMASK      (1<<(CORE_PIN51_BIT))
  119. #define CORE_PIN52_BITMASK      (1<<(CORE_PIN52_BIT))
  120. #define CORE_PIN53_BITMASK      (1<<(CORE_PIN53_BIT))
  121. #define CORE_PIN54_BITMASK      (1<<(CORE_PIN54_BIT))
  122. #define CORE_PIN55_BITMASK      (1<<(CORE_PIN55_BIT))
  123. #define CORE_PIN56_BITMASK      (1<<(CORE_PIN56_BIT))
  124. #define CORE_PIN57_BITMASK      (1<<(CORE_PIN57_BIT))
  125. #define CORE_PIN58_BITMASK      (1<<(CORE_PIN58_BIT))
  126. #define CORE_PIN59_BITMASK      (1<<(CORE_PIN59_BIT))
  127. #define CORE_PIN60_BITMASK      (1<<(CORE_PIN60_BIT))
  128. #define CORE_PIN61_BITMASK      (1<<(CORE_PIN61_BIT))
  129. #define CORE_PIN62_BITMASK      (1<<(CORE_PIN62_BIT))
  130. #define CORE_PIN63_BITMASK      (1<<(CORE_PIN63_BIT))
  131. #define CORE_PIN0_PORTREG       GPIOB_PDOR
  132. #define CORE_PIN1_PORTREG       GPIOB_PDOR
  133. #define CORE_PIN2_PORTREG       GPIOD_PDOR
  134. #define CORE_PIN3_PORTREG       GPIOA_PDOR
  135. #define CORE_PIN4_PORTREG       GPIOA_PDOR
  136. #define CORE_PIN5_PORTREG       GPIOD_PDOR
  137. #define CORE_PIN6_PORTREG       GPIOD_PDOR
  138. #define CORE_PIN7_PORTREG       GPIOD_PDOR
  139. #define CORE_PIN8_PORTREG       GPIOD_PDOR
  140. #define CORE_PIN9_PORTREG       GPIOC_PDOR
  141. #define CORE_PIN10_PORTREG      GPIOC_PDOR
  142. #define CORE_PIN11_PORTREG      GPIOC_PDOR
  143. #define CORE_PIN12_PORTREG      GPIOC_PDOR
  144. #define CORE_PIN13_PORTREG      GPIOC_PDOR
  145. #define CORE_PIN14_PORTREG      GPIOD_PDOR
  146. #define CORE_PIN15_PORTREG      GPIOC_PDOR
  147. #define CORE_PIN16_PORTREG      GPIOB_PDOR
  148. #define CORE_PIN17_PORTREG      GPIOB_PDOR
  149. #define CORE_PIN18_PORTREG      GPIOB_PDOR
  150. #define CORE_PIN19_PORTREG      GPIOB_PDOR
  151. #define CORE_PIN20_PORTREG      GPIOD_PDOR
  152. #define CORE_PIN21_PORTREG      GPIOD_PDOR
  153. #define CORE_PIN22_PORTREG      GPIOC_PDOR
  154. #define CORE_PIN23_PORTREG      GPIOC_PDOR
  155. #define CORE_PIN24_PORTREG      GPIOE_PDOR
  156. #define CORE_PIN25_PORTREG      GPIOA_PDOR
  157. #define CORE_PIN26_PORTREG      GPIOA_PDOR
  158. #define CORE_PIN27_PORTREG      GPIOA_PDOR
  159. #define CORE_PIN28_PORTREG      GPIOA_PDOR
  160. #define CORE_PIN29_PORTREG      GPIOB_PDOR
  161. #define CORE_PIN30_PORTREG      GPIOB_PDOR
  162. #define CORE_PIN31_PORTREG      GPIOB_PDOR
  163. #define CORE_PIN32_PORTREG      GPIOB_PDOR
  164. #define CORE_PIN33_PORTREG      GPIOE_PDOR
  165. #define CORE_PIN34_PORTREG      GPIOE_PDOR
  166. #define CORE_PIN35_PORTREG      GPIOC_PDOR
  167. #define CORE_PIN36_PORTREG      GPIOC_PDOR
  168. #define CORE_PIN37_PORTREG      GPIOC_PDOR
  169. #define CORE_PIN38_PORTREG      GPIOC_PDOR
  170. #define CORE_PIN39_PORTREG      GPIOA_PDOR
  171. #define CORE_PIN40_PORTREG      GPIOA_PDOR
  172. #define CORE_PIN41_PORTREG      GPIOA_PDOR
  173. #define CORE_PIN42_PORTREG      GPIOA_PDOR
  174. #define CORE_PIN43_PORTREG      GPIOB_PDOR
  175. #define CORE_PIN44_PORTREG      GPIOB_PDOR
  176. #define CORE_PIN45_PORTREG      GPIOB_PDOR
  177. #define CORE_PIN46_PORTREG      GPIOB_PDOR
  178. #define CORE_PIN47_PORTREG      GPIOD_PDOR
  179. #define CORE_PIN48_PORTREG      GPIOD_PDOR
  180. #define CORE_PIN49_PORTREG      GPIOB_PDOR
  181. #define CORE_PIN50_PORTREG      GPIOB_PDOR
  182. #define CORE_PIN51_PORTREG      GPIOD_PDOR
  183. #define CORE_PIN52_PORTREG      GPIOD_PDOR
  184. #define CORE_PIN53_PORTREG      GPIOD_PDOR
  185. #define CORE_PIN54_PORTREG      GPIOD_PDOR
  186. #define CORE_PIN55_PORTREG      GPIOD_PDOR
  187. #define CORE_PIN56_PORTREG      GPIOE_PDOR
  188. #define CORE_PIN57_PORTREG      GPIOE_PDOR
  189. #define CORE_PIN58_PORTREG      GPIOE_PDOR
  190. #define CORE_PIN59_PORTREG      GPIOE_PDOR
  191. #define CORE_PIN60_PORTREG      GPIOE_PDOR
  192. #define CORE_PIN61_PORTREG      GPIOE_PDOR
  193. #define CORE_PIN62_PORTREG      GPIOE_PDOR
  194. #define CORE_PIN63_PORTREG      GPIOE_PDOR
  195. #define CORE_PIN0_PORTSET       GPIOB_PSOR
  196. #define CORE_PIN1_PORTSET       GPIOB_PSOR
  197. #define CORE_PIN2_PORTSET       GPIOD_PSOR
  198. #define CORE_PIN3_PORTSET       GPIOA_PSOR
  199. #define CORE_PIN4_PORTSET       GPIOA_PSOR
  200. #define CORE_PIN5_PORTSET       GPIOD_PSOR
  201. #define CORE_PIN6_PORTSET       GPIOD_PSOR
  202. #define CORE_PIN7_PORTSET       GPIOD_PSOR
  203. #define CORE_PIN8_PORTSET       GPIOD_PSOR
  204. #define CORE_PIN9_PORTSET       GPIOC_PSOR
  205. #define CORE_PIN10_PORTSET      GPIOC_PSOR
  206. #define CORE_PIN11_PORTSET      GPIOC_PSOR
  207. #define CORE_PIN12_PORTSET      GPIOC_PSOR
  208. #define CORE_PIN13_PORTSET      GPIOC_PSOR
  209. #define CORE_PIN14_PORTSET      GPIOD_PSOR
  210. #define CORE_PIN15_PORTSET      GPIOC_PSOR
  211. #define CORE_PIN16_PORTSET      GPIOB_PSOR
  212. #define CORE_PIN17_PORTSET      GPIOB_PSOR
  213. #define CORE_PIN18_PORTSET      GPIOB_PSOR
  214. #define CORE_PIN19_PORTSET      GPIOB_PSOR
  215. #define CORE_PIN20_PORTSET      GPIOD_PSOR
  216. #define CORE_PIN21_PORTSET      GPIOD_PSOR
  217. #define CORE_PIN22_PORTSET      GPIOC_PSOR
  218. #define CORE_PIN23_PORTSET      GPIOC_PSOR
  219. #define CORE_PIN24_PORTSET      GPIOE_PSOR
  220. #define CORE_PIN25_PORTSET      GPIOA_PSOR
  221. #define CORE_PIN26_PORTSET      GPIOA_PSOR
  222. #define CORE_PIN27_PORTSET      GPIOA_PSOR
  223. #define CORE_PIN28_PORTSET      GPIOA_PSOR
  224. #define CORE_PIN29_PORTSET      GPIOB_PSOR
  225. #define CORE_PIN30_PORTSET      GPIOB_PSOR
  226. #define CORE_PIN31_PORTSET      GPIOB_PSOR
  227. #define CORE_PIN32_PORTSET      GPIOB_PSOR
  228. #define CORE_PIN33_PORTSET      GPIOE_PSOR
  229. #define CORE_PIN34_PORTSET      GPIOE_PSOR
  230. #define CORE_PIN35_PORTSET      GPIOC_PSOR
  231. #define CORE_PIN36_PORTSET      GPIOC_PSOR
  232. #define CORE_PIN37_PORTSET      GPIOC_PSOR
  233. #define CORE_PIN38_PORTSET      GPIOC_PSOR
  234. #define CORE_PIN39_PORTSET      GPIOA_PSOR
  235. #define CORE_PIN40_PORTSET      GPIOA_PSOR
  236. #define CORE_PIN41_PORTSET      GPIOA_PSOR
  237. #define CORE_PIN42_PORTSET      GPIOA_PSOR
  238. #define CORE_PIN43_PORTSET      GPIOB_PSOR
  239. #define CORE_PIN44_PORTSET      GPIOB_PSOR
  240. #define CORE_PIN45_PORTSET      GPIOB_PSOR
  241. #define CORE_PIN46_PORTSET      GPIOB_PSOR
  242. #define CORE_PIN47_PORTSET      GPIOD_PSOR
  243. #define CORE_PIN48_PORTSET      GPIOD_PSOR
  244. #define CORE_PIN49_PORTSET      GPIOB_PSOR
  245. #define CORE_PIN50_PORTSET      GPIOB_PSOR
  246. #define CORE_PIN51_PORTSET      GPIOD_PSOR
  247. #define CORE_PIN52_PORTSET      GPIOD_PSOR
  248. #define CORE_PIN53_PORTSET      GPIOD_PSOR
  249. #define CORE_PIN54_PORTSET      GPIOD_PSOR
  250. #define CORE_PIN55_PORTSET      GPIOD_PSOR
  251. #define CORE_PIN56_PORTSET      GPIOE_PSOR
  252. #define CORE_PIN57_PORTSET      GPIOE_PSOR
  253. #define CORE_PIN58_PORTSET      GPIOE_PSOR
  254. #define CORE_PIN59_PORTSET      GPIOE_PSOR
  255. #define CORE_PIN60_PORTSET      GPIOE_PSOR
  256. #define CORE_PIN61_PORTSET      GPIOE_PSOR
  257. #define CORE_PIN62_PORTSET      GPIOE_PSOR
  258. #define CORE_PIN63_PORTSET      GPIOE_PSOR
  259. #define CORE_PIN0_PORTCLEAR     GPIOB_PCOR
  260. #define CORE_PIN1_PORTCLEAR     GPIOB_PCOR
  261. #define CORE_PIN2_PORTCLEAR     GPIOD_PCOR
  262. #define CORE_PIN3_PORTCLEAR     GPIOA_PCOR
  263. #define CORE_PIN4_PORTCLEAR     GPIOA_PCOR
  264. #define CORE_PIN5_PORTCLEAR     GPIOD_PCOR
  265. #define CORE_PIN6_PORTCLEAR     GPIOD_PCOR
  266. #define CORE_PIN7_PORTCLEAR     GPIOD_PCOR
  267. #define CORE_PIN8_PORTCLEAR     GPIOD_PCOR
  268. #define CORE_PIN9_PORTCLEAR     GPIOC_PCOR
  269. #define CORE_PIN10_PORTCLEAR    GPIOC_PCOR
  270. #define CORE_PIN11_PORTCLEAR    GPIOC_PCOR
  271. #define CORE_PIN12_PORTCLEAR    GPIOC_PCOR
  272. #define CORE_PIN13_PORTCLEAR    GPIOC_PCOR
  273. #define CORE_PIN14_PORTCLEAR    GPIOD_PCOR
  274. #define CORE_PIN15_PORTCLEAR    GPIOC_PCOR
  275. #define CORE_PIN16_PORTCLEAR    GPIOB_PCOR
  276. #define CORE_PIN17_PORTCLEAR    GPIOB_PCOR
  277. #define CORE_PIN18_PORTCLEAR    GPIOB_PCOR
  278. #define CORE_PIN19_PORTCLEAR    GPIOB_PCOR
  279. #define CORE_PIN20_PORTCLEAR    GPIOD_PCOR
  280. #define CORE_PIN21_PORTCLEAR    GPIOD_PCOR
  281. #define CORE_PIN22_PORTCLEAR    GPIOC_PCOR
  282. #define CORE_PIN23_PORTCLEAR    GPIOC_PCOR
  283. #define CORE_PIN24_PORTCLEAR    GPIOE_PCOR
  284. #define CORE_PIN25_PORTCLEAR    GPIOA_PCOR
  285. #define CORE_PIN26_PORTCLEAR    GPIOA_PCOR
  286. #define CORE_PIN27_PORTCLEAR    GPIOA_PCOR
  287. #define CORE_PIN28_PORTCLEAR    GPIOA_PCOR
  288. #define CORE_PIN29_PORTCLEAR    GPIOB_PCOR
  289. #define CORE_PIN30_PORTCLEAR    GPIOB_PCOR
  290. #define CORE_PIN31_PORTCLEAR    GPIOB_PCOR
  291. #define CORE_PIN32_PORTCLEAR    GPIOB_PCOR
  292. #define CORE_PIN33_PORTCLEAR    GPIOE_PCOR
  293. #define CORE_PIN34_PORTCLEAR    GPIOE_PCOR
  294. #define CORE_PIN35_PORTCLEAR    GPIOC_PCOR
  295. #define CORE_PIN36_PORTCLEAR    GPIOC_PCOR
  296. #define CORE_PIN37_PORTCLEAR    GPIOC_PCOR
  297. #define CORE_PIN38_PORTCLEAR    GPIOC_PCOR
  298. #define CORE_PIN39_PORTCLEAR    GPIOA_PCOR
  299. #define CORE_PIN40_PORTCLEAR    GPIOA_PCOR
  300. #define CORE_PIN41_PORTCLEAR    GPIOA_PCOR
  301. #define CORE_PIN42_PORTCLEAR    GPIOA_PCOR
  302. #define CORE_PIN43_PORTCLEAR    GPIOB_PCOR
  303. #define CORE_PIN44_PORTCLEAR    GPIOB_PCOR
  304. #define CORE_PIN45_PORTCLEAR    GPIOB_PCOR
  305. #define CORE_PIN46_PORTCLEAR    GPIOB_PCOR
  306. #define CORE_PIN47_PORTCLEAR    GPIOD_PCOR
  307. #define CORE_PIN48_PORTCLEAR    GPIOD_PCOR
  308. #define CORE_PIN49_PORTCLEAR    GPIOB_PCOR
  309. #define CORE_PIN50_PORTCLEAR    GPIOB_PCOR
  310. #define CORE_PIN51_PORTCLEAR    GPIOD_PCOR
  311. #define CORE_PIN52_PORTCLEAR    GPIOD_PCOR
  312. #define CORE_PIN53_PORTCLEAR    GPIOD_PCOR
  313. #define CORE_PIN54_PORTCLEAR    GPIOD_PCOR
  314. #define CORE_PIN55_PORTCLEAR    GPIOD_PCOR
  315. #define CORE_PIN56_PORTCLEAR    GPIOE_PCOR
  316. #define CORE_PIN57_PORTCLEAR    GPIOE_PCOR
  317. #define CORE_PIN58_PORTCLEAR    GPIOE_PCOR
  318. #define CORE_PIN59_PORTCLEAR    GPIOE_PCOR
  319. #define CORE_PIN60_PORTCLEAR    GPIOE_PCOR
  320. #define CORE_PIN61_PORTCLEAR    GPIOE_PCOR
  321. #define CORE_PIN62_PORTCLEAR    GPIOE_PCOR
  322. #define CORE_PIN63_PORTCLEAR    GPIOE_PCOR
  323. #define CORE_PIN0_DDRREG        GPIOB_PDDR
  324. #define CORE_PIN1_DDRREG        GPIOB_PDDR
  325. #define CORE_PIN2_DDRREG        GPIOD_PDDR
  326. #define CORE_PIN3_DDRREG        GPIOA_PDDR
  327. #define CORE_PIN4_DDRREG        GPIOA_PDDR
  328. #define CORE_PIN5_DDRREG        GPIOD_PDDR
  329. #define CORE_PIN6_DDRREG        GPIOD_PDDR
  330. #define CORE_PIN7_DDRREG        GPIOD_PDDR
  331. #define CORE_PIN8_DDRREG        GPIOD_PDDR
  332. #define CORE_PIN9_DDRREG        GPIOC_PDDR
  333. #define CORE_PIN10_DDRREG       GPIOC_PDDR
  334. #define CORE_PIN11_DDRREG       GPIOC_PDDR
  335. #define CORE_PIN12_DDRREG       GPIOC_PDDR
  336. #define CORE_PIN13_DDRREG       GPIOC_PDDR
  337. #define CORE_PIN14_DDRREG       GPIOD_PDDR
  338. #define CORE_PIN15_DDRREG       GPIOC_PDDR
  339. #define CORE_PIN16_DDRREG       GPIOB_PDDR
  340. #define CORE_PIN17_DDRREG       GPIOB_PDDR
  341. #define CORE_PIN18_DDRREG       GPIOB_PDDR
  342. #define CORE_PIN19_DDRREG       GPIOB_PDDR
  343. #define CORE_PIN20_DDRREG       GPIOD_PDDR
  344. #define CORE_PIN21_DDRREG       GPIOD_PDDR
  345. #define CORE_PIN22_DDRREG       GPIOC_PDDR
  346. #define CORE_PIN23_DDRREG       GPIOC_PDDR
  347. #define CORE_PIN24_DDRREG       GPIOE_PDDR
  348. #define CORE_PIN25_DDRREG       GPIOA_PDDR
  349. #define CORE_PIN26_DDRREG       GPIOA_PDDR
  350. #define CORE_PIN27_DDRREG       GPIOA_PDDR
  351. #define CORE_PIN28_DDRREG       GPIOA_PDDR
  352. #define CORE_PIN29_DDRREG       GPIOB_PDDR
  353. #define CORE_PIN30_DDRREG       GPIOB_PDDR
  354. #define CORE_PIN31_DDRREG       GPIOB_PDDR
  355. #define CORE_PIN32_DDRREG       GPIOB_PDDR
  356. #define CORE_PIN33_DDRREG       GPIOE_PDDR
  357. #define CORE_PIN34_DDRREG       GPIOE_PDDR
  358. #define CORE_PIN35_DDRREG       GPIOC_PDDR
  359. #define CORE_PIN36_DDRREG       GPIOC_PDDR
  360. #define CORE_PIN37_DDRREG       GPIOC_PDDR
  361. #define CORE_PIN38_DDRREG       GPIOC_PDDR
  362. #define CORE_PIN39_DDRREG       GPIOA_PDDR
  363. #define CORE_PIN40_DDRREG       GPIOA_PDDR
  364. #define CORE_PIN41_DDRREG       GPIOA_PDDR
  365. #define CORE_PIN42_DDRREG       GPIOA_PDDR
  366. #define CORE_PIN43_DDRREG       GPIOB_PDDR
  367. #define CORE_PIN44_DDRREG       GPIOB_PDDR
  368. #define CORE_PIN45_DDRREG       GPIOB_PDDR
  369. #define CORE_PIN46_DDRREG       GPIOB_PDDR
  370. #define CORE_PIN47_DDRREG       GPIOD_PDDR
  371. #define CORE_PIN48_DDRREG       GPIOD_PDDR
  372. #define CORE_PIN49_DDRREG       GPIOB_PDDR
  373. #define CORE_PIN50_DDRREG       GPIOB_PDDR
  374. #define CORE_PIN51_DDRREG       GPIOD_PDDR
  375. #define CORE_PIN52_DDRREG       GPIOD_PDDR
  376. #define CORE_PIN53_DDRREG       GPIOD_PDDR
  377. #define CORE_PIN54_DDRREG       GPIOD_PDDR
  378. #define CORE_PIN55_DDRREG       GPIOD_PDDR
  379. #define CORE_PIN56_DDRREG       GPIOE_PDDR
  380. #define CORE_PIN57_DDRREG       GPIOE_PDDR
  381. #define CORE_PIN58_DDRREG       GPIOE_PDDR
  382. #define CORE_PIN59_DDRREG       GPIOE_PDDR
  383. #define CORE_PIN60_DDRREG       GPIOE_PDDR
  384. #define CORE_PIN61_DDRREG       GPIOE_PDDR
  385. #define CORE_PIN62_DDRREG       GPIOE_PDDR
  386. #define CORE_PIN63_DDRREG       GPIOE_PDDR
  387. #define CORE_PIN0_PINREG        GPIOB_PDIR
  388. #define CORE_PIN1_PINREG        GPIOB_PDIR
  389. #define CORE_PIN2_PINREG        GPIOD_PDIR
  390. #define CORE_PIN3_PINREG        GPIOA_PDIR
  391. #define CORE_PIN4_PINREG        GPIOA_PDIR
  392. #define CORE_PIN5_PINREG        GPIOD_PDIR
  393. #define CORE_PIN6_PINREG        GPIOD_PDIR
  394. #define CORE_PIN7_PINREG        GPIOD_PDIR
  395. #define CORE_PIN8_PINREG        GPIOD_PDIR
  396. #define CORE_PIN9_PINREG        GPIOC_PDIR
  397. #define CORE_PIN10_PINREG       GPIOC_PDIR
  398. #define CORE_PIN11_PINREG       GPIOC_PDIR
  399. #define CORE_PIN12_PINREG       GPIOC_PDIR
  400. #define CORE_PIN13_PINREG       GPIOC_PDIR
  401. #define CORE_PIN14_PINREG       GPIOD_PDIR
  402. #define CORE_PIN15_PINREG       GPIOC_PDIR
  403. #define CORE_PIN16_PINREG       GPIOB_PDIR
  404. #define CORE_PIN17_PINREG       GPIOB_PDIR
  405. #define CORE_PIN18_PINREG       GPIOB_PDIR
  406. #define CORE_PIN19_PINREG       GPIOB_PDIR
  407. #define CORE_PIN20_PINREG       GPIOD_PDIR
  408. #define CORE_PIN21_PINREG       GPIOD_PDIR
  409. #define CORE_PIN22_PINREG       GPIOC_PDIR
  410. #define CORE_PIN23_PINREG       GPIOC_PDIR
  411. #define CORE_PIN24_PINREG       GPIOE_PDIR
  412. #define CORE_PIN25_PINREG       GPIOA_PDIR
  413. #define CORE_PIN26_PINREG       GPIOA_PDIR
  414. #define CORE_PIN27_PINREG       GPIOA_PDIR
  415. #define CORE_PIN28_PINREG       GPIOA_PDIR
  416. #define CORE_PIN29_PINREG       GPIOB_PDIR
  417. #define CORE_PIN30_PINREG       GPIOB_PDIR
  418. #define CORE_PIN31_PINREG       GPIOB_PDIR
  419. #define CORE_PIN32_PINREG       GPIOB_PDIR
  420. #define CORE_PIN33_PINREG       GPIOE_PDIR
  421. #define CORE_PIN34_PINREG       GPIOE_PDIR
  422. #define CORE_PIN35_PINREG       GPIOC_PDIR
  423. #define CORE_PIN36_PINREG       GPIOC_PDIR
  424. #define CORE_PIN37_PINREG       GPIOC_PDIR
  425. #define CORE_PIN38_PINREG       GPIOC_PDIR
  426. #define CORE_PIN39_PINREG       GPIOA_PDIR
  427. #define CORE_PIN40_PINREG       GPIOA_PDIR
  428. #define CORE_PIN41_PINREG       GPIOA_PDIR
  429. #define CORE_PIN42_PINREG       GPIOA_PDIR
  430. #define CORE_PIN43_PINREG       GPIOB_PDIR
  431. #define CORE_PIN44_PINREG       GPIOB_PDIR
  432. #define CORE_PIN45_PINREG       GPIOB_PDIR
  433. #define CORE_PIN46_PINREG       GPIOB_PDIR
  434. #define CORE_PIN47_PINREG       GPIOD_PDIR
  435. #define CORE_PIN48_PINREG       GPIOD_PDIR
  436. #define CORE_PIN49_PINREG       GPIOB_PDIR
  437. #define CORE_PIN50_PINREG       GPIOB_PDIR
  438. #define CORE_PIN51_PINREG       GPIOD_PDIR
  439. #define CORE_PIN52_PINREG       GPIOD_PDIR
  440. #define CORE_PIN53_PINREG       GPIOD_PDIR
  441. #define CORE_PIN54_PINREG       GPIOD_PDIR
  442. #define CORE_PIN55_PINREG       GPIOD_PDIR
  443. #define CORE_PIN56_PINREG       GPIOE_PDIR
  444. #define CORE_PIN57_PINREG       GPIOE_PDIR
  445. #define CORE_PIN58_PINREG       GPIOE_PDIR
  446. #define CORE_PIN59_PINREG       GPIOE_PDIR
  447. #define CORE_PIN60_PINREG       GPIOE_PDIR
  448. #define CORE_PIN61_PINREG       GPIOE_PDIR
  449. #define CORE_PIN62_PINREG       GPIOE_PDIR
  450. #define CORE_PIN63_PINREG       GPIOE_PDIR
  451. #define CORE_PIN0_CONFIG        PORTB_PCR16
  452. #define CORE_PIN1_CONFIG        PORTB_PCR17
  453. #define CORE_PIN2_CONFIG        PORTD_PCR0
  454. #define CORE_PIN3_CONFIG        PORTA_PCR12
  455. #define CORE_PIN4_CONFIG        PORTA_PCR13
  456. #define CORE_PIN5_CONFIG        PORTD_PCR7
  457. #define CORE_PIN6_CONFIG        PORTD_PCR4
  458. #define CORE_PIN7_CONFIG        PORTD_PCR2
  459. #define CORE_PIN8_CONFIG        PORTD_PCR3
  460. #define CORE_PIN9_CONFIG        PORTC_PCR3
  461. #define CORE_PIN10_CONFIG       PORTC_PCR4
  462. #define CORE_PIN11_CONFIG       PORTC_PCR6
  463. #define CORE_PIN12_CONFIG       PORTC_PCR7
  464. #define CORE_PIN13_CONFIG       PORTC_PCR5
  465. #define CORE_PIN14_CONFIG       PORTD_PCR1
  466. #define CORE_PIN15_CONFIG       PORTC_PCR0
  467. #define CORE_PIN16_CONFIG       PORTB_PCR0
  468. #define CORE_PIN17_CONFIG       PORTB_PCR1
  469. #define CORE_PIN18_CONFIG       PORTB_PCR3
  470. #define CORE_PIN19_CONFIG       PORTB_PCR2
  471. #define CORE_PIN20_CONFIG       PORTD_PCR5
  472. #define CORE_PIN21_CONFIG       PORTD_PCR6
  473. #define CORE_PIN22_CONFIG       PORTC_PCR1
  474. #define CORE_PIN23_CONFIG       PORTC_PCR2
  475. #define CORE_PIN24_CONFIG       PORTE_PCR26
  476. #define CORE_PIN25_CONFIG       PORTA_PCR5
  477. #define CORE_PIN26_CONFIG       PORTA_PCR14
  478. #define CORE_PIN27_CONFIG       PORTA_PCR15
  479. #define CORE_PIN28_CONFIG       PORTA_PCR16
  480. #define CORE_PIN29_CONFIG       PORTB_PCR18
  481. #define CORE_PIN30_CONFIG       PORTB_PCR19
  482. #define CORE_PIN31_CONFIG       PORTB_PCR10
  483. #define CORE_PIN32_CONFIG       PORTB_PCR11
  484. #define CORE_PIN33_CONFIG       PORTE_PCR24
  485. #define CORE_PIN34_CONFIG       PORTE_PCR25
  486. #define CORE_PIN35_CONFIG       PORTC_PCR8
  487. #define CORE_PIN36_CONFIG       PORTC_PCR9
  488. #define CORE_PIN37_CONFIG       PORTC_PCR10
  489. #define CORE_PIN38_CONFIG       PORTC_PCR11
  490. #define CORE_PIN39_CONFIG       PORTA_PCR17
  491. #define CORE_PIN40_CONFIG       PORTA_PCR28
  492. #define CORE_PIN41_CONFIG       PORTA_PCR29
  493. #define CORE_PIN42_CONFIG       PORTA_PCR26
  494. #define CORE_PIN43_CONFIG       PORTB_PCR20
  495. #define CORE_PIN44_CONFIG       PORTB_PCR22
  496. #define CORE_PIN45_CONFIG       PORTB_PCR23
  497. #define CORE_PIN46_CONFIG       PORTB_PCR21
  498. #define CORE_PIN47_CONFIG       PORTD_PCR8
  499. #define CORE_PIN48_CONFIG       PORTD_PCR9
  500. #define CORE_PIN49_CONFIG       PORTB_PCR4
  501. #define CORE_PIN50_CONFIG       PORTB_PCR5
  502. #define CORE_PIN51_CONFIG       PORTD_PCR14
  503. #define CORE_PIN52_CONFIG       PORTD_PCR13
  504. #define CORE_PIN53_CONFIG       PORTD_PCR12
  505. #define CORE_PIN54_CONFIG       PORTD_PCR15
  506. #define CORE_PIN55_CONFIG       PORTD_PCR11
  507. #define CORE_PIN56_CONFIG       PORTE_PCR10
  508. #define CORE_PIN57_CONFIG       PORTE_PCR11
  509. #define CORE_PIN58_CONFIG       PORTE_PCR0
  510. #define CORE_PIN59_CONFIG       PORTE_PCR1
  511. #define CORE_PIN60_CONFIG       PORTE_PCR2
  512. #define CORE_PIN61_CONFIG       PORTE_PCR3
  513. #define CORE_PIN62_CONFIG       PORTE_PCR4
  514. #define CORE_PIN63_CONFIG       PORTE_PCR5
  515.  

Saludos.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2760
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #51 en: 23 de Mayo de 2017, 13:37:46 »
Has probado ctags o cscope
Por ejemplo con cscope

Código: [Seleccionar]
find . -name '*.c' -o -name '*.h' -o -name '*.cpp' > cscope.files
cscope -b
cscope

Te crea una base en la que puedes buscar desde los símbolos, definiciones, funciones, texto, etc.

He probado el find con esos parámetros, pero me daba errores. Al final he tecleado esto y me ha generado un fichero con una busqueda.

find "CORE" *.* > fichero.txt

Citar
O también puedes usar CodeQuery que tiene una interfaz gráfica

https://ruben2020.github.io/codequery/

Se ve interesante, lo probaré.


Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2760
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #52 en: 23 de Mayo de 2017, 13:40:12 »
A ver esto:
Solo extrae información del core MK66
He incluido una expresión para que extraiga todas las definiciones de pines.


Gracias, lo probaré.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2173
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #53 en: 23 de Mayo de 2017, 16:21:31 »
Phyton es tan complicado como potente. Es tan poco intuitivo que cuesta ponerse a estudiarlo. Pero es tan potente que no deberíamos dejar estudiarlo.
Si le agarras la mano no te vas a arrepentir!
-
Leonardo Garberoglio

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4342
    • Picuino
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #54 en: 23 de Mayo de 2017, 16:39:32 »
¿Poco intuitivo? Todo lo contrario. Si parece pseudocódigo.
Algunas funciones se pueden encadenar (al ser todo objetos) y puede parecer algo complicado, pero no lo es.

Si hay algo que no se entienda, decidlo y lo explico.

El primer programa es funcional, lo programé en 10 minutos sin interprete Python y funcionó a la primera. Pocas veces me pasa algo así con otros lenguajes y eso se debe a lo sencillo que es.

Saludos.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2760
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #55 en: 29 de Mayo de 2017, 16:36:28 »
.

Hoy me llegó el PCB que diseñé para probar el SAM S70 con mis pantallas led, luego se me ocurrieron algunas mejoras y mandé a fabricar una nueva versión que me llegará en unos días, como salen tan baratos.

Por cierto, este hilo aquí en micros de 8 bits no toca. Supongo que con la reconversión de los foros ha ido a parar a un subforo incorrecto, si algún administrador lo puede mover al subforo de ARM estará mejor.





Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2760
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #56 en: 07 de Junio de 2017, 14:11:01 »
.

Hoy recibí un par de PCB más, uno para probar el SAM S70, con algún hardware adicional, y otro para varias pruebas con el Kinetis MK66 de NXP. Ya me voy a poner a portar el proyecto de Teensy a SAM S70 en Atmel Studio, también espero el libro sobre Atmel ARM SAM que pedí a Amazón, a ver si con suerte tiene información útil para trabajar con el S70.

La peculiaridad de estos dos micros, el SAM ST70 y el MK66, es que ninguna de sus entradas es tolerante 5v, solo aceptan voltajes que no superen los 3.3v, por eso he tenido que añadir unos buffers CD4050 que conviertan los niveles de 5v a 3.3v.




« Última modificación: 07 de Junio de 2017, 14:13:39 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2760
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #57 en: 12 de Junio de 2017, 21:54:06 »
.

Ensamblé las dos placas, una para el Atmel SAM S70 y otra para el NXP MK66, ambas placas para probar con mis pantallas a paneles LED RGB.

La idea en principio es portar un aplicativo hecho para Teensy, a un MK66, auque el compilado ya está probado sobre un MK66 y funciona perfectamente, pero quiero pasar los fuentes para trabajarlos desde KDS. Y lo siguiente es pasar el mismo aplicativo a un Atmel SAM S70, Cortex M7, 300Mhz, esto será más complicado, salvo que la gestión del DMA y las interrupciones no varien mucho de un micro a otro.









Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2760
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #58 en: 20 de Junio de 2017, 07:38:31 »
.

Sigo con Atmel Studio y los SAM Cortex M7. Por ahora todo lo que he visto es confuso, da la sensación de que están montando un pastel, pero ese pastel está por acabar, exactamente la misma sensación que da NXP con su MCUXpresso.

El produto promete mucho, pero le falta el tirón final para ponerse a la altura de ST, lo mismo para NXP. Depués de haber probado ST, NXP y Atmel, el más currado con bastante diferencia es el entorno de ST para los STM32.

Aún así sigo con los SAM Cortex M7, por el precio y la potencia, que en estos momentos está por encima de los STM32, y muy por encima de los Kinetis de NXP. En cuanto ST libere sus STM32H7 supongo que las tornas cambiaran, y se inclinarán tanto en software como en hardware hacia ST.

Concretando sobre Atmel Studio, permite generar proyectos de manera similar a como lo hace Cube de ST o Processor Expert de NXP. Para ello usan lo que denominan Atmel Start Project, esta opción llama al generador de código, que aunque se ejecuta en la web de Atmel, se ve en la ventana del IDE localmente. Pero hay otra forma de generar proyectos, es usando el ASF, con esta opción se añaden los módulos que queramos, pero la configuración hay que hacerla a mano, a diferencia de si optamos por Atmel Start.

Además, ASF y Atmel Start Project no son compatibles. Indagando un poco, la incompatibilidad parte de que Atmel Start está basado en la nueva versión ASF4, mientras que el ASF local en el IDE es la versión 3. Entiendo que lo lógico es que actualicen el ASF a la versión 4, para que todo sea compatible.

En principio, aunque Atmel Start permite configurarlo todo al detalle, por contra da pocos ejemplos de aplicativos prefabricados de los que partir, todo lo contrario que ASF. Al final, cada uno tiene sus cosas buenas y sus cosas malas.

El producto está muy bien, y es totalmente recomendable, salvando que al igual que NXP con su MCUXpresso, es algo que está por acabar, y se nota.

Ahora mismo, estoy sobre todo centrado en entender como se configura el DMA y como se gestionan las interrupciones, que es lo que más me interesa para el aplicativo que quiero hacer, portando parte de los fuentes de otro aplicativo hecho para Teesny/Kinetis MK66.


En la captura de pantalla, configurando el DMA para SPI, desde Atmel Star Project. Es un entorno muy detallado, pero falta la compatibilidad con ASF y que el proyecto generado se integre automáticamente con los fuentes del usuario, como si lo hace ST. El proyecto se puede regenerar cuantas veces si quiera, para añadir nuevos módulos o reconfigurar alguno, y aunque no respeta el código propio que hayamos añadido, te da opción para sobreescribir o no los fuentes tocados por nosotros, por ejemplo el main. A pesar de los puntos débiles del producto, me gusta bastante.




« Última modificación: 20 de Junio de 2017, 08:12:54 por planeta9999 »


 

anything