diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-15 22:25:45 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-15 22:25:45 +0000 |
commit | 7fef58a87ac9efba80321398c5088c317d055481 (patch) | |
tree | c1655d29f890dda6ac4bcfab7f602885b6a99fff /apps | |
parent | 09153dd82a371283f96b9be490c8c9a5d44a97c7 (diff) | |
download | rockbox-7fef58a87ac9efba80321398c5088c317d055481.tar.gz rockbox-7fef58a87ac9efba80321398c5088c317d055481.zip |
Added OS debug menu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1359 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/debug_menu.c | 82 |
1 files changed, 81 insertions, 1 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 44c5c8e181..59428f62dc 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c | |||
@@ -32,12 +32,91 @@ | |||
32 | #include "power.h" | 32 | #include "power.h" |
33 | #include "rtc.h" | 33 | #include "rtc.h" |
34 | #include "debug.h" | 34 | #include "debug.h" |
35 | #include "thread.h" | ||
35 | 36 | ||
36 | /*---------------------------------------------------*/ | 37 | /*---------------------------------------------------*/ |
37 | /* SPECIAL DEBUG STUFF */ | 38 | /* SPECIAL DEBUG STUFF */ |
38 | /*---------------------------------------------------*/ | 39 | /*---------------------------------------------------*/ |
39 | extern int ata_device; | 40 | extern int ata_device; |
40 | extern int ata_io_address; | 41 | extern int ata_io_address; |
42 | extern int num_threads; | ||
43 | extern char *thread_name[]; | ||
44 | |||
45 | #ifdef ARCHOS_RECORDER | ||
46 | /* Test code!!! */ | ||
47 | void dbg_os(void) | ||
48 | { | ||
49 | char buf[32]; | ||
50 | int button; | ||
51 | int i; | ||
52 | int usage; | ||
53 | |||
54 | lcd_clear_display(); | ||
55 | |||
56 | while(1) | ||
57 | { | ||
58 | lcd_puts(0, 0, "Stack usage:"); | ||
59 | for(i = 0; i < num_threads;i++) | ||
60 | { | ||
61 | usage = thread_stack_usage(i); | ||
62 | snprintf(buf, 32, "%s: %d%%", thread_name[i], usage); | ||
63 | lcd_puts(0, 1+i, buf); | ||
64 | } | ||
65 | |||
66 | lcd_update(); | ||
67 | sleep(HZ/10); | ||
68 | |||
69 | button = button_get(false); | ||
70 | |||
71 | switch(button) | ||
72 | { | ||
73 | case BUTTON_OFF: | ||
74 | return; | ||
75 | } | ||
76 | } | ||
77 | } | ||
78 | #else | ||
79 | void dbg_os(void) | ||
80 | { | ||
81 | char buf[32]; | ||
82 | int button; | ||
83 | int usage; | ||
84 | int currval = 0; | ||
85 | |||
86 | lcd_clear_display(); | ||
87 | |||
88 | while(1) | ||
89 | { | ||
90 | lcd_puts(0, 0, "Stack usage"); | ||
91 | |||
92 | usage = thread_stack_usage(currval); | ||
93 | snprintf(buf, 32, "%d: %d%% ", currval, usage); | ||
94 | lcd_puts(0, 1, buf); | ||
95 | |||
96 | sleep(HZ/10); | ||
97 | |||
98 | button = button_get(false); | ||
99 | |||
100 | switch(button) | ||
101 | { | ||
102 | case BUTTON_STOP: | ||
103 | return; | ||
104 | |||
105 | case BUTTON_LEFT: | ||
106 | currval--; | ||
107 | if(currval < 0) | ||
108 | currval = num_threads-1; | ||
109 | break; | ||
110 | |||
111 | case BUTTON_RIGHT: | ||
112 | currval++; | ||
113 | if(currval > num_threads-1) | ||
114 | currval = 0; | ||
115 | break; | ||
116 | } | ||
117 | } | ||
118 | } | ||
119 | #endif | ||
41 | 120 | ||
42 | #ifdef ARCHOS_RECORDER | 121 | #ifdef ARCHOS_RECORDER |
43 | /* Test code!!! */ | 122 | /* Test code!!! */ |
@@ -267,12 +346,13 @@ void debug_menu(void) | |||
267 | int m; | 346 | int m; |
268 | 347 | ||
269 | struct menu_items items[] = { | 348 | struct menu_items items[] = { |
270 | #ifdef HAVE_LCD_BITMAP | ||
271 | { "Debug ports", dbg_ports }, | 349 | { "Debug ports", dbg_ports }, |
350 | #ifdef HAVE_LCD_BITMAP | ||
272 | #ifdef HAVE_RTC | 351 | #ifdef HAVE_RTC |
273 | { "Debug RTC", dbg_rtc }, | 352 | { "Debug RTC", dbg_rtc }, |
274 | #endif /* HAVE_RTC */ | 353 | #endif /* HAVE_RTC */ |
275 | #endif /* HAVE_LCD_BITMAP */ | 354 | #endif /* HAVE_LCD_BITMAP */ |
355 | { "Debug OS", dbg_os }, | ||
276 | }; | 356 | }; |
277 | 357 | ||
278 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | 358 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); |