¿El misterio del bloqueo S32K? ¿No se pudo descargar RAMCode? ¿No se pudo leer la memoria?

1. Antecedentes

Estoy trabajando en un producto pequeño recientemente, que se basa en el S32K144 como placa MCU. Durante el proceso de depuración, se descubrió que aunque se puede usar Jlink para conectarse, no se puede depurar en el modo de depuración de S32DS. Es decir, el archivo .elf no se puede descargar en FLASH y el mensaje de error siempre es el siguiente:

(1) Error al descargar RAMCode

(2) Error al leer la memoria xxx

Lo que es más frustrante es que se han soldado 10 juegos de tableros, y este fenómeno ocurre en 80% a 90%, y el fenómeno sigue siendo exactamente el mismo.

En primer lugar, se sospecha que hay un problema con la soldadura, después de soldar N veces y cambiar la MCU N veces, el resultado final es el mismo.

xxxxx: Realmente hace que la gente quiera llorar sin lágrimas

2. N métodos de exclusión

2.1 Si hay un problema con el modo de depuración de S32DS

Busqué varias publicaciones en Internet y busqué varios documentos oficiales, pero nada funciona. No es que todo el mundo sea increíble, solo se puede decir que no existe la medicina adecuada.

 2.2 Sospecha de problemas con el reinicio y el oscilador de cristal

             Ahora que se ha asegurado la soldadura, se ha medido el voltaje, también se ha medido la impedancia y la configuración de depuración está bien, ¿es un problema con el reinicio y el oscilador de cristal? Después de verificar el reinicio, realmente hay un problema , y aparece una forma de onda misteriosa: una forma de onda triangular. señal de reinicio. Con la intención de intentarlo, para ver si todos los internautas se han encontrado con una situación similar, realmente encontré una guía de aplicación de MCU de la serie S32K1xx muy relevante: análisis de razón de restablecimiento de bloqueo de chip y explicación detallada del método de recuperación (qq. com)

       Al principio, pensé que veía esperanza, seguí los pasos anteriores paso a paso y leí el comando del registro de estado de MDM-AP a través de SWD:

(1) SWDWriteDP 2 0x01000000 //SELECT[31:24] = 0x01 seleccione MDM-AP y configure SELECT[7:4] del registro DPACC = 0x0

(2) SWDReadAP 0 //Lee el registro de estado de MDM-AP a través del índice AP (A[3:2]=0b00)

(3) SWDReadAP 0 //descarga el valor de registro AP real

Luego apareció la siguiente interfaz:

        De acuerdo con el comando de lectura, se determina que la FLASH se ha inicializado correctamente y luego se desbloquea la FLASH. El comando de desbloqueo es desbloquear Kinetis, y aparece un resultado amistoso: desbloquear dispositivo ok

         Pensando que veía el futuro, intenté usar el modo de depuración de S32DS para descargar el programa, ¡y el problema persistía! ! ! ! ! ! ! es enloquecedor

        ¿Es porque el valor de reinicio RC es incorrecto?Después de cambiar varios conjuntos de RC, el problema aún existe.

¡Loco más lejos! ! ! ! ! ! ! ! ! ! ! ! ! ! !

 2.3 ¿Bloqueo de FLASH?

   Después de intentar desbloquear Kinetis N veces, no funcionó, así que estudié esta publicación Guía de aplicación de MCU de la serie S32K1xx: Análisis de causa de restablecimiento de bloqueo de chip y explicación detallada del método de recuperación (qq.com)

    ¿No hay ninguna razón para el borrado masivo, pero no hay respuesta cuando se ingresa el borrado masivo directamente, y el Comando Jlink no lo reconoce en absoluto? Después de consultar la Ayuda del comando Jlink, encontré el comando Borrar, como se muestra en la la siguiente figura:

   Ingrese Erase directamente, y Erase es posible, pero S32DS Debug aún no funciona. Indignado, y luego Borrar, el resultado ya no puede conectarse a Jlink, y la MCU se ha convertido en un ladrillo. La ira es inútil, sigue moviendo ladrillos

 Lo que es frustrante es que cambié la MCU y la borré manualmente usando la interfaz de usuario de Jlink, como resultado, la MCU se convirtió nuevamente en un ladrillo. Acostado en el camino de la esperanza otra vez

 3. Renacimiento después de la muerte en N

Ahora que ha muerto N veces, hagámoslo de nuevo. Después de cambiar la MCU, intente los siguientes comandos en la interfaz de usuario de Jliink, como se muestra en la figura a continuación.

        Ahora que ha ocurrido un milagro, como se muestra en la figura a continuación, el borrado, la descarga y la verificación están bien, y cuando se enciende de nuevo, la marquesina se ilumina y todo el mundo se ilumina.

4. Regusto después del renacimiento

        La alegría después del renacimiento es inevitable, pero ¿cuál es la razón? Resulta que el manual oficial es muy claro. Cuando se activa el mecanismo de seguridad de la memoria FLASH, el emulador se puede conectar, pero no puede leer el contenido de la memoria Flash. aparece en el modo de depuración: Error al leer la memoria xxx.

        Luego, cómo quitar el mecanismo de instalación, el manual oficial también dice que es desencadenar un borrado masivo. 

       Entonces, ¿por qué Erase se bloqueó después de varios intentos anteriores, es decir, la forma de borrar es incorrecta, lo que resultó en una desactivación de borrado masivo, por lo que el emulador no se puede conectar? En este momento, el método es usar la tecla de la puerta trasera, pero esto es una fantasía A menos que encuentre soporte original de fábrica.

      Por lo tanto, no borre por casualidad, o borre y descargue de acuerdo con la Programación de producción que viene con Jlink.

5.consejos

Cuando utilice la interfaz de usuario de Jlink para ejecutar la programación de producción sin un certificado, puede enviar un mensaje privado.

Supongo que te gusta

Origin blog.csdn.net/m0_52850847/article/details/126157555
Recomendado
Clasificación