diff options
author | Torne Wuff <torne@wolfpuppy.org.uk> | 2010-04-01 16:27:21 +0000 |
---|---|---|
committer | Torne Wuff <torne@wolfpuppy.org.uk> | 2010-04-01 16:27:21 +0000 |
commit | 52e528e057d7fd8d55116edf40500e0c0b3b75e8 (patch) | |
tree | 651413bf0f31fc64baeef8b4063c697d5df07baa | |
parent | f376fd2f4aa9b27f2a6299177b4cc3c014da01f3 (diff) | |
download | rockbox-52e528e057d7fd8d55116edf40500e0c0b3b75e8.tar.gz rockbox-52e528e057d7fd8d55116edf40500e0c0b3b75e8.zip |
Boot charting support.
Select (B)ootchart in advanced options in configure, and logf will record timings for various stages of boot, for performance comparisons. Format logged is:
BC:>function_name,123,80
where 123 is the line number, 80 is the number of ticks since boot. This can be loaded as CSV into a spreadsheet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25426 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/gui/theme_settings.c | 3 | ||||
-rw-r--r-- | apps/main.c | 48 | ||||
-rw-r--r-- | apps/settings.c | 28 | ||||
-rw-r--r-- | firmware/export/bootchart.h | 42 | ||||
-rwxr-xr-x | tools/configure | 15 |
5 files changed, 132 insertions, 4 deletions
diff --git a/apps/gui/theme_settings.c b/apps/gui/theme_settings.c index 4ab18b53fe..086dff5385 100644 --- a/apps/gui/theme_settings.c +++ b/apps/gui/theme_settings.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include "skin_engine/skin_engine.h" | 33 | #include "skin_engine/skin_engine.h" |
34 | #include "skin_engine/skin_fonts.h" | 34 | #include "skin_engine/skin_fonts.h" |
35 | #include "statusbar-skinned.h" | 35 | #include "statusbar-skinned.h" |
36 | #include "bootchart.h" | ||
36 | 37 | ||
37 | 38 | ||
38 | /* call this after loading a .wps/.rwps or other skin files, so that the | 39 | /* call this after loading a .wps/.rwps or other skin files, so that the |
@@ -73,6 +74,7 @@ void settings_apply_skins(void) | |||
73 | #ifdef HAVE_REMOTE_LCD | 74 | #ifdef HAVE_REMOTE_LCD |
74 | screen = skins[i].suffix[0] == 'r' ? SCREEN_REMOTE : SCREEN_MAIN; | 75 | screen = skins[i].suffix[0] == 'r' ? SCREEN_REMOTE : SCREEN_MAIN; |
75 | #endif | 76 | #endif |
77 | CHART2(">skin load ", skins[i].suffix); | ||
76 | if (skins[i].setting[0] && skins[i].setting[0] != '-') | 78 | if (skins[i].setting[0] && skins[i].setting[0] != '-') |
77 | { | 79 | { |
78 | snprintf(buf, sizeof buf, WPS_DIR "/%s.%s", | 80 | snprintf(buf, sizeof buf, WPS_DIR "/%s.%s", |
@@ -83,6 +85,7 @@ void settings_apply_skins(void) | |||
83 | { | 85 | { |
84 | skins[i].loadfunc(screen, NULL, true); | 86 | skins[i].loadfunc(screen, NULL, true); |
85 | } | 87 | } |
88 | CHART2("<skin load ", skins[i].suffix); | ||
86 | } | 89 | } |
87 | viewportmanager_theme_changed(THEME_STATUSBAR); | 90 | viewportmanager_theme_changed(THEME_STATUSBAR); |
88 | #if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 | 91 | #if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 |
diff --git a/apps/main.c b/apps/main.c index 7c43c0c277..487848caaf 100644 --- a/apps/main.c +++ b/apps/main.c | |||
@@ -75,6 +75,7 @@ | |||
75 | #include "icon.h" | 75 | #include "icon.h" |
76 | #include "viewport.h" | 76 | #include "viewport.h" |
77 | #include "statusbar-skinned.h" | 77 | #include "statusbar-skinned.h" |
78 | #include "bootchart.h" | ||
78 | 79 | ||
79 | #ifdef IPOD_ACCESSORY_PROTOCOL | 80 | #ifdef IPOD_ACCESSORY_PROTOCOL |
80 | #include "iap.h" | 81 | #include "iap.h" |
@@ -136,7 +137,9 @@ int main(void) | |||
136 | #endif | 137 | #endif |
137 | { | 138 | { |
138 | int i; | 139 | int i; |
140 | CHART(">init"); | ||
139 | init(); | 141 | init(); |
142 | CHART("<init"); | ||
140 | FOR_NB_SCREENS(i) | 143 | FOR_NB_SCREENS(i) |
141 | { | 144 | { |
142 | screens[i].clear_display(); | 145 | screens[i].clear_display(); |
@@ -167,6 +170,7 @@ int main(void) | |||
167 | global_status.last_volume_change = 0; | 170 | global_status.last_volume_change = 0; |
168 | /* no calls INIT_ATTR functions after this point anymore! | 171 | /* no calls INIT_ATTR functions after this point anymore! |
169 | * see definition of INIT_ATTR in config.h */ | 172 | * see definition of INIT_ATTR in config.h */ |
173 | CHART(">root_menu"); | ||
170 | root_menu(); | 174 | root_menu(); |
171 | } | 175 | } |
172 | 176 | ||
@@ -414,13 +418,18 @@ static void init(void) | |||
414 | #ifdef CPU_ARM | 418 | #ifdef CPU_ARM |
415 | enable_fiq(); | 419 | enable_fiq(); |
416 | #endif | 420 | #endif |
421 | /* current_tick should be ticking by now */ | ||
422 | CHART("ticking"); | ||
423 | |||
417 | lcd_init(); | 424 | lcd_init(); |
418 | #ifdef HAVE_REMOTE_LCD | 425 | #ifdef HAVE_REMOTE_LCD |
419 | lcd_remote_init(); | 426 | lcd_remote_init(); |
420 | #endif | 427 | #endif |
421 | font_init(); | 428 | font_init(); |
422 | 429 | ||
430 | CHART(">show_logo"); | ||
423 | show_logo(); | 431 | show_logo(); |
432 | CHART("<show_logo"); | ||
424 | lang_init(core_language_builtin, language_strings, | 433 | lang_init(core_language_builtin, language_strings, |
425 | LANG_LAST_INDEX_IN_ARRAY); | 434 | LANG_LAST_INDEX_IN_ARRAY); |
426 | 435 | ||
@@ -436,7 +445,9 @@ static void init(void) | |||
436 | rtc_init(); | 445 | rtc_init(); |
437 | #endif | 446 | #endif |
438 | #ifdef HAVE_RTC_RAM | 447 | #ifdef HAVE_RTC_RAM |
448 | CHART(">settings_load(RTC)"); | ||
439 | settings_load(SETTINGS_RTC); /* early load parts of global_settings */ | 449 | settings_load(SETTINGS_RTC); /* early load parts of global_settings */ |
450 | CHART("<settings_load(RTC)"); | ||
440 | #endif | 451 | #endif |
441 | 452 | ||
442 | adc_init(); | 453 | adc_init(); |
@@ -460,10 +471,18 @@ static void init(void) | |||
460 | 471 | ||
461 | /* Keep the order of this 3 (viewportmanager handles statusbars) | 472 | /* Keep the order of this 3 (viewportmanager handles statusbars) |
462 | * Must be done before any code uses the multi-screen API */ | 473 | * Must be done before any code uses the multi-screen API */ |
474 | CHART(">gui_syncstatusbar_init"); | ||
463 | gui_syncstatusbar_init(&statusbars); | 475 | gui_syncstatusbar_init(&statusbars); |
476 | CHART("<gui_syncstatusbar_init"); | ||
477 | CHART(">sb_skin_init"); | ||
464 | sb_skin_init(); | 478 | sb_skin_init(); |
479 | CHART("<sb_skin_init"); | ||
480 | CHART(">gui_sync_wps_init"); | ||
465 | gui_sync_wps_init(); | 481 | gui_sync_wps_init(); |
482 | CHART("<gui_sync_wps_init"); | ||
483 | CHART(">viewportmanager_init"); | ||
466 | viewportmanager_init(); | 484 | viewportmanager_init(); |
485 | CHART("<viewportmanager_init"); | ||
467 | 486 | ||
468 | #if CONFIG_CHARGING && (CONFIG_CPU == SH7034) | 487 | #if CONFIG_CHARGING && (CONFIG_CPU == SH7034) |
469 | /* charger_inserted() can't be used here because power_thread() | 488 | /* charger_inserted() can't be used here because power_thread() |
@@ -483,7 +502,9 @@ static void init(void) | |||
483 | } | 502 | } |
484 | #endif | 503 | #endif |
485 | 504 | ||
505 | CHART(">storage_init"); | ||
486 | rc = storage_init(); | 506 | rc = storage_init(); |
507 | CHART("<storage_init"); | ||
487 | if(rc) | 508 | if(rc) |
488 | { | 509 | { |
489 | #ifdef HAVE_LCD_BITMAP | 510 | #ifdef HAVE_LCD_BITMAP |
@@ -498,7 +519,9 @@ static void init(void) | |||
498 | } | 519 | } |
499 | 520 | ||
500 | #ifdef HAVE_EEPROM_SETTINGS | 521 | #ifdef HAVE_EEPROM_SETTINGS |
522 | CHART(">eeprom_settings_init"); | ||
501 | eeprom_settings_init(); | 523 | eeprom_settings_init(); |
524 | CHART("<eeprom_settings_init"); | ||
502 | #endif | 525 | #endif |
503 | 526 | ||
504 | #ifndef HAVE_USBSTACK | 527 | #ifndef HAVE_USBSTACK |
@@ -527,7 +550,9 @@ static void init(void) | |||
527 | 550 | ||
528 | if (!mounted) | 551 | if (!mounted) |
529 | { | 552 | { |
553 | CHART(">disk_mount_all"); | ||
530 | rc = disk_mount_all(); | 554 | rc = disk_mount_all(); |
555 | CHART("<disk_mount_all"); | ||
531 | if (rc<=0) | 556 | if (rc<=0) |
532 | { | 557 | { |
533 | lcd_clear_display(); | 558 | lcd_clear_display(); |
@@ -561,19 +586,32 @@ static void init(void) | |||
561 | } | 586 | } |
562 | else | 587 | else |
563 | #endif | 588 | #endif |
589 | { | ||
590 | CHART(">settings_load(ALL)"); | ||
564 | settings_load(SETTINGS_ALL); | 591 | settings_load(SETTINGS_ALL); |
592 | CHART("<settings_load(ALL)"); | ||
593 | } | ||
565 | 594 | ||
566 | if (init_dircache(true) < 0) | 595 | CHART(">init_dircache(true)"); |
596 | rc = init_dircache(true); | ||
597 | CHART("<init_dircache(true"); | ||
598 | if (rc < 0) | ||
567 | { | 599 | { |
568 | #ifdef HAVE_TAGCACHE | 600 | #ifdef HAVE_TAGCACHE |
569 | remove(TAGCACHE_STATEFILE); | 601 | remove(TAGCACHE_STATEFILE); |
570 | #endif | 602 | #endif |
571 | } | 603 | } |
572 | 604 | ||
605 | CHART(">settings_apply(true)"); | ||
573 | settings_apply(true); | 606 | settings_apply(true); |
607 | CHART("<settings_apply(true)"); | ||
608 | CHART(">init_dircache(false)"); | ||
574 | init_dircache(false); | 609 | init_dircache(false); |
610 | CHART("<init_dircache(false)"); | ||
575 | #ifdef HAVE_TAGCACHE | 611 | #ifdef HAVE_TAGCACHE |
612 | CHART(">init_tagcache"); | ||
576 | init_tagcache(); | 613 | init_tagcache(); |
614 | CHART("<init_tagcache"); | ||
577 | #endif | 615 | #endif |
578 | 616 | ||
579 | #ifdef HAVE_EEPROM_SETTINGS | 617 | #ifdef HAVE_EEPROM_SETTINGS |
@@ -581,7 +619,9 @@ static void init(void) | |||
581 | { | 619 | { |
582 | /* In case we crash. */ | 620 | /* In case we crash. */ |
583 | firmware_settings.disk_clean = false; | 621 | firmware_settings.disk_clean = false; |
622 | CHART(">eeprom_settings_store"); | ||
584 | eeprom_settings_store(); | 623 | eeprom_settings_store(); |
624 | CHART("<eeprom_settings_store"); | ||
585 | } | 625 | } |
586 | #endif | 626 | #endif |
587 | playlist_init(); | 627 | playlist_init(); |
@@ -614,7 +654,9 @@ static void init(void) | |||
614 | talk_init(); | 654 | talk_init(); |
615 | #endif /* CONFIG_CODEC != SWCODEC */ | 655 | #endif /* CONFIG_CODEC != SWCODEC */ |
616 | 656 | ||
657 | CHART(">audio_init"); | ||
617 | audio_init(); | 658 | audio_init(); |
659 | CHART("<audio_init"); | ||
618 | 660 | ||
619 | #if (CONFIG_CODEC == SWCODEC) && defined(HAVE_RECORDING) && !defined(SIMULATOR) | 661 | #if (CONFIG_CODEC == SWCODEC) && defined(HAVE_RECORDING) && !defined(SIMULATOR) |
620 | pcm_rec_init(); | 662 | pcm_rec_init(); |
@@ -636,9 +678,13 @@ static void init(void) | |||
636 | lineout_set(global_settings.lineout_active); | 678 | lineout_set(global_settings.lineout_active); |
637 | #endif | 679 | #endif |
638 | #ifdef HAVE_HOTSWAP_STORAGE_AS_MAIN | 680 | #ifdef HAVE_HOTSWAP_STORAGE_AS_MAIN |
681 | CHART("<check_bootfile(false)"); | ||
639 | check_bootfile(false); /* remember write time and filesize */ | 682 | check_bootfile(false); /* remember write time and filesize */ |
683 | CHART(">check_bootfile(false)"); | ||
640 | #endif | 684 | #endif |
685 | CHART("<settings_apply_skins"); | ||
641 | settings_apply_skins(); | 686 | settings_apply_skins(); |
687 | CHART(">settings_apply_skins"); | ||
642 | } | 688 | } |
643 | 689 | ||
644 | #ifdef CPU_PP | 690 | #ifdef CPU_PP |
diff --git a/apps/settings.c b/apps/settings.c index 412bedc464..d5fd98e70a 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -70,6 +70,7 @@ | |||
70 | #include "skin_engine/skin_engine.h" | 70 | #include "skin_engine/skin_engine.h" |
71 | #include "viewport.h" | 71 | #include "viewport.h" |
72 | #include "statusbar-skinned.h" | 72 | #include "statusbar-skinned.h" |
73 | #include "bootchart.h" | ||
73 | 74 | ||
74 | #if CONFIG_CODEC == MAS3507D | 75 | #if CONFIG_CODEC == MAS3507D |
75 | void dac_line_in(bool enable); | 76 | void dac_line_in(bool enable); |
@@ -745,6 +746,7 @@ void settings_apply(bool read_disk) | |||
745 | { | 746 | { |
746 | 747 | ||
747 | char buf[64]; | 748 | char buf[64]; |
749 | int rc; | ||
748 | #if CONFIG_CODEC == SWCODEC | 750 | #if CONFIG_CODEC == SWCODEC |
749 | int i; | 751 | int i; |
750 | #endif | 752 | #endif |
@@ -841,7 +843,10 @@ void settings_apply(bool read_disk) | |||
841 | && global_settings.font_file[0] != '-') { | 843 | && global_settings.font_file[0] != '-') { |
842 | snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt", | 844 | snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt", |
843 | global_settings.font_file); | 845 | global_settings.font_file); |
844 | if (font_load(NULL, buf) < 0) | 846 | CHART2(">font_load ", global_settings.font_file); |
847 | rc = font_load(NULL, buf); | ||
848 | CHART2("<font_load ", global_settings.font_file); | ||
849 | if (rc < 0) | ||
845 | font_reset(NULL); | 850 | font_reset(NULL); |
846 | } | 851 | } |
847 | else | 852 | else |
@@ -851,7 +856,10 @@ void settings_apply(bool read_disk) | |||
851 | && global_settings.remote_font_file[0] != '-') { | 856 | && global_settings.remote_font_file[0] != '-') { |
852 | snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt", | 857 | snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt", |
853 | global_settings.remote_font_file); | 858 | global_settings.remote_font_file); |
854 | if (font_load_remoteui(buf) < 0) | 859 | CHART2(">font_load_remoteui ", global_settings.remote_font_file); |
860 | rc = font_load_remoteui(buf); | ||
861 | CHART2("<font_load_remoteui ", global_settings.remote_font_file); | ||
862 | if (rc < 0) | ||
855 | font_load_remoteui(NULL); | 863 | font_load_remoteui(NULL); |
856 | } | 864 | } |
857 | else | 865 | else |
@@ -860,7 +868,9 @@ void settings_apply(bool read_disk) | |||
860 | if ( global_settings.kbd_file[0]) { | 868 | if ( global_settings.kbd_file[0]) { |
861 | snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd", | 869 | snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd", |
862 | global_settings.kbd_file); | 870 | global_settings.kbd_file); |
871 | CHART(">load_kbd"); | ||
863 | load_kbd(buf); | 872 | load_kbd(buf); |
873 | CHART("<load_kbd"); | ||
864 | } | 874 | } |
865 | else | 875 | else |
866 | load_kbd(NULL); | 876 | load_kbd(NULL); |
@@ -869,16 +879,26 @@ void settings_apply(bool read_disk) | |||
869 | if ( global_settings.lang_file[0]) { | 879 | if ( global_settings.lang_file[0]) { |
870 | snprintf(buf, sizeof buf, LANG_DIR "/%s.lng", | 880 | snprintf(buf, sizeof buf, LANG_DIR "/%s.lng", |
871 | global_settings.lang_file); | 881 | global_settings.lang_file); |
882 | CHART(">lang_core_load"); | ||
872 | lang_core_load(buf); | 883 | lang_core_load(buf); |
884 | CHART("<lang_core_load"); | ||
885 | CHART(">talk_init"); | ||
873 | talk_init(); /* use voice of same language */ | 886 | talk_init(); /* use voice of same language */ |
887 | CHART("<talk_init"); | ||
874 | } | 888 | } |
875 | 889 | ||
876 | /* load the icon set */ | 890 | /* load the icon set */ |
891 | CHART(">icons_init"); | ||
877 | icons_init(); | 892 | icons_init(); |
893 | CHART("<icons_init"); | ||
878 | 894 | ||
879 | #ifdef HAVE_LCD_COLOR | 895 | #ifdef HAVE_LCD_COLOR |
880 | if (global_settings.colors_file[0]) | 896 | if (global_settings.colors_file[0]) |
897 | { | ||
898 | CHART(">read_color_theme_file"); | ||
881 | read_color_theme_file(); | 899 | read_color_theme_file(); |
900 | CHART("<read_color_theme_file"); | ||
901 | } | ||
882 | #endif | 902 | #endif |
883 | } | 903 | } |
884 | #ifdef HAVE_LCD_COLOR | 904 | #ifdef HAVE_LCD_COLOR |
@@ -901,7 +921,9 @@ void settings_apply(bool read_disk) | |||
901 | lcd_scroll_delay(global_settings.scroll_delay); | 921 | lcd_scroll_delay(global_settings.scroll_delay); |
902 | 922 | ||
903 | 923 | ||
924 | CHART(">set_codepage"); | ||
904 | set_codepage(global_settings.default_codepage); | 925 | set_codepage(global_settings.default_codepage); |
926 | CHART("<set_codepage"); | ||
905 | 927 | ||
906 | #if CONFIG_CODEC == SWCODEC | 928 | #if CONFIG_CODEC == SWCODEC |
907 | #ifdef HAVE_CROSSFADE | 929 | #ifdef HAVE_CROSSFADE |
@@ -966,7 +988,9 @@ void settings_apply(bool read_disk) | |||
966 | #endif | 988 | #endif |
967 | #ifdef HAVE_LCD_BITMAP | 989 | #ifdef HAVE_LCD_BITMAP |
968 | /* already called with THEME_STATUSBAR in settings_apply_skins() */ | 990 | /* already called with THEME_STATUSBAR in settings_apply_skins() */ |
991 | CHART(">viewportmanager_theme_changed"); | ||
969 | viewportmanager_theme_changed(THEME_UI_VIEWPORT|THEME_LANGUAGE|THEME_BUTTONBAR); | 992 | viewportmanager_theme_changed(THEME_UI_VIEWPORT|THEME_LANGUAGE|THEME_BUTTONBAR); |
993 | CHART("<viewportmanager_theme_changed"); | ||
970 | #endif | 994 | #endif |
971 | } | 995 | } |
972 | 996 | ||
diff --git a/firmware/export/bootchart.h b/firmware/export/bootchart.h new file mode 100644 index 0000000000..cad41ee50c --- /dev/null +++ b/firmware/export/bootchart.h | |||
@@ -0,0 +1,42 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2010 by Torne Wuff | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef BOOTCHART_H | ||
22 | #define BOOTCHART_H | ||
23 | #include <config.h> | ||
24 | #include <stdbool.h> | ||
25 | #include "../include/_ansi.h" | ||
26 | #include "logf.h" | ||
27 | #include "kernel.h" | ||
28 | |||
29 | #ifdef DO_BOOTCHART | ||
30 | |||
31 | /* we call _logf directly to avoid needing LOGF_ENABLE per-file */ | ||
32 | #define CHART2(x,y) _logf("BC:%s%s,%d,%ld", (x), (y), __LINE__, current_tick) | ||
33 | #define CHART(x) CHART2(x,"") | ||
34 | |||
35 | #else /* !DO_BOOTCHART */ | ||
36 | |||
37 | #define CHART2(x,y) | ||
38 | #define CHART(x) | ||
39 | |||
40 | #endif /* DO_BOOTCHART */ | ||
41 | |||
42 | #endif /* BOOTCHART_H */ | ||
diff --git a/tools/configure b/tools/configure index 9a98bff550..628e7d5877 100755 --- a/tools/configure +++ b/tools/configure | |||
@@ -12,6 +12,7 @@ | |||
12 | CCOPTS="-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -pipe" | 12 | CCOPTS="-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -pipe" |
13 | 13 | ||
14 | use_logf="#undef ROCKBOX_HAS_LOGF" | 14 | use_logf="#undef ROCKBOX_HAS_LOGF" |
15 | use_bootchart="#undef DO_BOOTCHART" | ||
15 | 16 | ||
16 | scriptver=`echo '$Revision$' | sed -e 's:\\$::g' -e 's/Revision: //'` | 17 | scriptver=`echo '$Revision$' | sed -e 's:\\$::g' -e 's/Revision: //'` |
17 | 18 | ||
@@ -366,7 +367,7 @@ whichadvanced () { | |||
366 | interact=1 | 367 | interact=1 |
367 | echo "" | 368 | echo "" |
368 | echo "Enter your developer options (press enter when done)" | 369 | echo "Enter your developer options (press enter when done)" |
369 | printf "(D)EBUG, (L)ogf, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile" | 370 | printf "(D)EBUG, (L)ogf, (B)ootchart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile" |
370 | if [ "$memory" = "2" ]; then | 371 | if [ "$memory" = "2" ]; then |
371 | printf ", (8)MB MOD" | 372 | printf ", (8)MB MOD" |
372 | fi | 373 | fi |
@@ -407,6 +408,11 @@ whichadvanced () { | |||
407 | echo "logf() support enabled" | 408 | echo "logf() support enabled" |
408 | logf="yes" | 409 | logf="yes" |
409 | ;; | 410 | ;; |
411 | [Bb]) | ||
412 | echo "bootchart enabled (logf also enabled)" | ||
413 | bootchart="yes" | ||
414 | logf="yes" | ||
415 | ;; | ||
410 | [Ss]) | 416 | [Ss]) |
411 | echo "Simulator build enabled" | 417 | echo "Simulator build enabled" |
412 | simulator="yes" | 418 | simulator="yes" |
@@ -493,6 +499,9 @@ whichadvanced () { | |||
493 | if [ "yes" = "$logf" ]; then | 499 | if [ "yes" = "$logf" ]; then |
494 | use_logf="#define ROCKBOX_HAS_LOGF 1" | 500 | use_logf="#define ROCKBOX_HAS_LOGF 1" |
495 | fi | 501 | fi |
502 | if [ "yes" = "$bootchart" ]; then | ||
503 | use_bootchart="#define DO_BOOTCHART 1" | ||
504 | fi | ||
496 | if [ "yes" = "$simulator" ]; then | 505 | if [ "yes" = "$simulator" ]; then |
497 | debug="-DDEBUG" | 506 | debug="-DDEBUG" |
498 | extradefines="$extradefines -DSIMULATOR" | 507 | extradefines="$extradefines -DSIMULATOR" |
@@ -2904,6 +2913,7 @@ fi | |||
2904 | sed > autoconf.h \ | 2913 | sed > autoconf.h \ |
2905 | -e "s,@ENDIAN@,${defendian},g" \ | 2914 | -e "s,@ENDIAN@,${defendian},g" \ |
2906 | -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \ | 2915 | -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \ |
2916 | -e "s,^#undef DO_BOOTCHART,$use_bootchart,g" \ | ||
2907 | -e "s,@config_rtc@,$config_rtc,g" \ | 2917 | -e "s,@config_rtc@,$config_rtc,g" \ |
2908 | -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \ | 2918 | -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \ |
2909 | -e "s,@RBDIR@,${rbdir},g" \ | 2919 | -e "s,@RBDIR@,${rbdir},g" \ |
@@ -2921,6 +2931,9 @@ sed > autoconf.h \ | |||
2921 | /* Define this if you build rockbox to support the logf logging and display */ | 2931 | /* Define this if you build rockbox to support the logf logging and display */ |
2922 | #undef ROCKBOX_HAS_LOGF | 2932 | #undef ROCKBOX_HAS_LOGF |
2923 | 2933 | ||
2934 | /* Define this to record a chart with timings for the stages of boot */ | ||
2935 | #undef DO_BOOTCHART | ||
2936 | |||
2924 | /* optional define for a backlight modded Ondio */ | 2937 | /* optional define for a backlight modded Ondio */ |
2925 | @have_backlight@ | 2938 | @have_backlight@ |
2926 | 2939 | ||