comparison src/cs/services/etm/etm_tmcore.c @ 209:e4d70b3367be

new ETM debug command for KPD_PWR testing
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 22 Apr 2021 07:22:59 +0000
parents 4e78acac3d88
children 7e225a4cd537
comparison
equal deleted inserted replaced
208:6fb17a32c5bd 209:e4d70b3367be
30 30
31 #include "abb/abb.h" 31 #include "abb/abb.h"
32 32
33 #include "spi/spi_drv.h" 33 #include "spi/spi_drv.h"
34 extern void tr_etm_init(unsigned int mask); 34 extern void tr_etm_init(unsigned int mask);
35
36 /* FreeCalypso addition for KPD_PWR testing */
37 #include "kpd/kpd_power_api.h"
35 38
36 // Version of the ETM CORE module 39 // Version of the ETM CORE module
37 // See the file etm_version.h 40 // See the file etm_version.h
38 41
39 /****************************************************************************** 42 /******************************************************************************
303 *****************************************************************************/ 306 *****************************************************************************/
304 307
305 int etm_debug(T_ETM_PKT *pkt, uint8 *buf) 308 int etm_debug(T_ETM_PKT *pkt, uint8 *buf)
306 { 309 {
307 int type, error, data; 310 int type, error, data;
308 311 char *p;
309 static char *p; 312 extern T_KPD_KEYPAD Kp;
310 313
311 type = *buf & 0x0F; 314 type = *buf & 0x0F;
312 buf++; 315 buf++;
313 316
314 data = etm_get32(buf); 317 data = etm_get32(buf);
315 318
316 tr_etm(TgTrCore, "ETM CORE: _debug: type(%d) data(0x%x)", type, data); 319 tr_etm(TgTrCore, "ETM CORE: _debug: type(%d) data(0x%x)", type, data);
317 320
321 error = 0;
318 switch (type) { 322 switch (type) {
319 case 0: // (0x00) Allocate Test Buffer 323 case 0: // (0x00) Allocate Test Buffer
320 if ((p = etm_malloc(data)) == NULL) 324 if ((p = etm_malloc(data)) == NULL)
321 error = ETM_NOMEM; 325 error = ETM_NOMEM;
322 error = etm_pkt_put32(pkt, (int) p); 326 else
327 error = etm_pkt_put32(pkt, (int) p);
323 break; 328 break;
324 case 1: // (0x01) Free Test Buffer. 329 case 1: // (0x01) Free Test Buffer.
325 p = (char *) data; 330 p = (char *) data;
326 etm_free(p); 331 etm_free(p);
327 break; 332 break;
330 break; 335 break;
331 case 3: // (0x03) Set read all mem banks stat 336 case 3: // (0x03) Set read all mem banks stat
332 rvf_dump_mem(); 337 rvf_dump_mem();
333 rvf_dump_pool(); 338 rvf_dump_pool();
334 rvf_dump_tasks(); 339 rvf_dump_tasks();
340 break;
341 /* FreeCalypso addition for KPD_PWR testing */
342 case 4:
343 (Kp.pressed)(KPD_PWR);
344 rvf_delay(5);
345 (Kp.released)();
335 break; 346 break;
336 default: 347 default:
337 error = ETM_NOSYS; 348 error = ETM_NOSYS;
338 } 349 }
339 350