diff options
Diffstat (limited to 'apps/debug_menu.c')
-rw-r--r-- | apps/debug_menu.c | 85 |
1 files changed, 82 insertions, 3 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 59428f62dc..19a62251b9 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c | |||
@@ -341,18 +341,97 @@ void dbg_rtc(void) | |||
341 | } | 341 | } |
342 | #endif | 342 | #endif |
343 | 343 | ||
344 | /* Read MAS registers and display them */ | ||
345 | void dbg_mas(void) | ||
346 | { | ||
347 | char buf[32]; | ||
348 | unsigned int addr = 0, r, i; | ||
349 | int button; | ||
350 | |||
351 | lcd_clear_display(); | ||
352 | lcd_puts(0, 0, "MAS register read:"); | ||
353 | |||
354 | while(1) | ||
355 | { | ||
356 | for (r = 0; r < 4; r++) { | ||
357 | i = mas_readreg(addr + r); | ||
358 | snprintf(buf, 30, "0x%02x: %08x", addr + r, i); | ||
359 | lcd_puts(1, r+1, buf); | ||
360 | } | ||
361 | |||
362 | lcd_update(); | ||
363 | sleep(HZ/16); | ||
364 | |||
365 | button = button_get(false); | ||
366 | |||
367 | switch(button) | ||
368 | { | ||
369 | case BUTTON_DOWN: | ||
370 | addr += 4; | ||
371 | break; | ||
372 | case BUTTON_UP: | ||
373 | if (addr) { addr -= 4; } | ||
374 | break; | ||
375 | case BUTTON_LEFT: | ||
376 | return; | ||
377 | } | ||
378 | } | ||
379 | } | ||
380 | |||
381 | #ifdef ARCHOS_RECORDER | ||
382 | void dbg_mas_codec(void) | ||
383 | { | ||
384 | char buf[32]; | ||
385 | unsigned int addr = 0, r, i; | ||
386 | int button; | ||
387 | |||
388 | lcd_clear_display(); | ||
389 | lcd_puts(0, 0, "MAS codec reg read:"); | ||
390 | |||
391 | while(1) | ||
392 | { | ||
393 | for (r = 0; r < 4; r++) { | ||
394 | i = mas_codec_readreg(addr + r); | ||
395 | snprintf(buf, 30, "0x%02x: %08x", addr + r, i); | ||
396 | lcd_puts(1, r+1, buf); | ||
397 | } | ||
398 | |||
399 | lcd_update(); | ||
400 | sleep(HZ/16); | ||
401 | |||
402 | button = button_get(false); | ||
403 | |||
404 | switch(button) | ||
405 | { | ||
406 | case BUTTON_DOWN: | ||
407 | addr += 4; | ||
408 | break; | ||
409 | case BUTTON_UP: | ||
410 | if (addr) { addr -= 4; } | ||
411 | break; | ||
412 | case BUTTON_LEFT: | ||
413 | return; | ||
414 | } | ||
415 | } | ||
416 | } | ||
417 | #endif | ||
418 | |||
344 | void debug_menu(void) | 419 | void debug_menu(void) |
345 | { | 420 | { |
346 | int m; | 421 | int m; |
347 | 422 | ||
348 | struct menu_items items[] = { | 423 | struct menu_items items[] = { |
349 | { "Debug ports", dbg_ports }, | 424 | { "View I/O ports", dbg_ports }, |
350 | #ifdef HAVE_LCD_BITMAP | 425 | #ifdef HAVE_LCD_BITMAP |
351 | #ifdef HAVE_RTC | 426 | #ifdef HAVE_RTC |
352 | { "Debug RTC", dbg_rtc }, | 427 | { "View/clr RTC RAM", dbg_rtc }, |
353 | #endif /* HAVE_RTC */ | 428 | #endif /* HAVE_RTC */ |
354 | #endif /* HAVE_LCD_BITMAP */ | 429 | #endif /* HAVE_LCD_BITMAP */ |
355 | { "Debug OS", dbg_os }, | 430 | { "View OS stacks", dbg_os }, |
431 | { "View MAS regs", dbg_mas }, | ||
432 | #ifdef ARCHOS_RECORDER | ||
433 | { "View MAS codec", dbg_mas_codec }, | ||
434 | #endif | ||
356 | }; | 435 | }; |
357 | 436 | ||
358 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | 437 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); |