diff --git a/pack/1.2.0-rc0/ArmFault.png b/1.2.0/ArmFault.png similarity index 100% rename from pack/1.2.0-rc0/ArmFault.png rename to 1.2.0/ArmFault.png diff --git a/pack/1.2.0-rc0/CalcMemUsed.png b/1.2.0/CalcMemUsed.png similarity index 100% rename from pack/1.2.0-rc0/CalcMemUsed.png rename to 1.2.0/CalcMemUsed.png diff --git a/pack/1.2.0-rc0/ComponentViewerOverview.png b/1.2.0/ComponentViewerOverview.png similarity index 100% rename from pack/1.2.0-rc0/ComponentViewerOverview.png rename to 1.2.0/ComponentViewerOverview.png diff --git a/pack/1.2.0-rc0/EventOutput1.png b/1.2.0/EventOutput1.png similarity index 100% rename from pack/1.2.0-rc0/EventOutput1.png rename to 1.2.0/EventOutput1.png diff --git a/pack/1.2.0-rc0/EventOutput2.png b/1.2.0/EventOutput2.png similarity index 100% rename from pack/1.2.0-rc0/EventOutput2.png rename to 1.2.0/EventOutput2.png diff --git a/pack/1.2.0-rc0/EventRecorderFilter.png b/1.2.0/EventRecorderFilter.png similarity index 100% rename from pack/1.2.0-rc0/EventRecorderFilter.png rename to 1.2.0/EventRecorderFilter.png diff --git a/pack/1.2.0-rc0/EventRecorderOverview.png b/1.2.0/EventRecorderOverview.png similarity index 100% rename from pack/1.2.0-rc0/EventRecorderOverview.png rename to 1.2.0/EventRecorderOverview.png diff --git a/pack/1.2.0-rc0/EventStatistics_w_Energy.png b/1.2.0/EventStatistics_w_Energy.png similarity index 100% rename from pack/1.2.0-rc0/EventStatistics_w_Energy.png rename to 1.2.0/EventStatistics_w_Energy.png diff --git a/pack/1.2.0-rc0/EventStatistics_wo_Energy.png b/1.2.0/EventStatistics_wo_Energy.png similarity index 100% rename from pack/1.2.0-rc0/EventStatistics_wo_Energy.png rename to 1.2.0/EventStatistics_wo_Energy.png diff --git a/pack/1.2.0-rc0/ExampleProjects.html b/1.2.0/ExampleProjects.html similarity index 100% rename from pack/1.2.0-rc0/ExampleProjects.html rename to 1.2.0/ExampleProjects.html diff --git a/pack/1.2.0-rc0/ExampleProjects.js b/1.2.0/ExampleProjects.js similarity index 100% rename from pack/1.2.0-rc0/ExampleProjects.js rename to 1.2.0/ExampleProjects.js diff --git a/pack/1.2.0-rc0/Fault_CM33_CV_MemManage.png b/1.2.0/Fault_CM33_CV_MemManage.png similarity index 100% rename from pack/1.2.0-rc0/Fault_CM33_CV_MemManage.png rename to 1.2.0/Fault_CM33_CV_MemManage.png diff --git a/pack/1.2.0-rc0/Fault_CM33_CV_NoFault.png b/1.2.0/Fault_CM33_CV_NoFault.png similarity index 100% rename from pack/1.2.0-rc0/Fault_CM33_CV_NoFault.png rename to 1.2.0/Fault_CM33_CV_NoFault.png diff --git a/pack/1.2.0-rc0/Fault_CM33_EvR_MemManage.png b/1.2.0/Fault_CM33_EvR_MemManage.png similarity index 100% rename from pack/1.2.0-rc0/Fault_CM33_EvR_MemManage.png rename to 1.2.0/Fault_CM33_EvR_MemManage.png diff --git a/pack/1.2.0-rc0/Fault_CM33_STDIO_MemManage.png b/1.2.0/Fault_CM33_STDIO_MemManage.png similarity index 100% rename from pack/1.2.0-rc0/Fault_CM33_STDIO_MemManage.png rename to 1.2.0/Fault_CM33_STDIO_MemManage.png diff --git a/pack/1.2.0-rc0/Fault_CM33_UI.png b/1.2.0/Fault_CM33_UI.png similarity index 100% rename from pack/1.2.0-rc0/Fault_CM33_UI.png rename to 1.2.0/Fault_CM33_UI.png diff --git a/pack/1.2.0-rc0/Fault_CM7_UI.png b/1.2.0/Fault_CM7_UI.png similarity index 100% rename from pack/1.2.0-rc0/Fault_CM7_UI.png rename to 1.2.0/Fault_CM7_UI.png diff --git a/pack/1.2.0-rc0/Fault_CM7_eventlist_MemManage.png b/1.2.0/Fault_CM7_eventlist_MemManage.png similarity index 100% rename from pack/1.2.0-rc0/Fault_CM7_eventlist_MemManage.png rename to 1.2.0/Fault_CM7_eventlist_MemManage.png diff --git a/pack/1.2.0-rc0/Fault_STDIO_MemManage.png b/1.2.0/Fault_STDIO_MemManage.png similarity index 100% rename from pack/1.2.0-rc0/Fault_STDIO_MemManage.png rename to 1.2.0/Fault_STDIO_MemManage.png diff --git a/pack/1.2.0-rc0/Fault_create_iram2.png b/1.2.0/Fault_create_iram2.png similarity index 100% rename from pack/1.2.0-rc0/Fault_create_iram2.png rename to 1.2.0/Fault_create_iram2.png diff --git a/pack/1.2.0-rc0/Fault_memory_location.png b/1.2.0/Fault_memory_location.png similarity index 100% rename from pack/1.2.0-rc0/Fault_memory_location.png rename to 1.2.0/Fault_memory_location.png diff --git a/pack/1.2.0-rc0/Fault_set_comp.png b/1.2.0/Fault_set_comp.png similarity index 100% rename from pack/1.2.0-rc0/Fault_set_comp.png rename to 1.2.0/Fault_set_comp.png diff --git a/pack/1.2.0-rc0/Manage_MyTest_SCVD.png b/1.2.0/Manage_MyTest_SCVD.png similarity index 100% rename from pack/1.2.0-rc0/Manage_MyTest_SCVD.png rename to 1.2.0/Manage_MyTest_SCVD.png diff --git a/pack/1.2.0-rc0/Manage_SCVD_Files.png b/1.2.0/Manage_SCVD_Files.png similarity index 100% rename from pack/1.2.0-rc0/Manage_SCVD_Files.png rename to 1.2.0/Manage_SCVD_Files.png diff --git a/pack/1.2.0-rc0/SCVDExample.png b/1.2.0/SCVDExample.png similarity index 100% rename from pack/1.2.0-rc0/SCVDExample.png rename to 1.2.0/SCVDExample.png diff --git a/pack/1.2.0-rc0/SCVD_Format.html b/1.2.0/SCVD_Format.html similarity index 100% rename from pack/1.2.0-rc0/SCVD_Format.html rename to 1.2.0/SCVD_Format.html diff --git a/pack/1.2.0-rc0/SCVD_Format.js b/1.2.0/SCVD_Format.js similarity index 100% rename from pack/1.2.0-rc0/SCVD_Format.js rename to 1.2.0/SCVD_Format.js diff --git a/pack/1.2.0-rc0/SelEventRecorder.png b/1.2.0/SelEventRecorder.png similarity index 100% rename from pack/1.2.0-rc0/SelEventRecorder.png rename to 1.2.0/SelEventRecorder.png diff --git a/pack/1.2.0-rc0/SelSWComp.png b/1.2.0/SelSWComp.png similarity index 100% rename from pack/1.2.0-rc0/SelSWComp.png rename to 1.2.0/SelSWComp.png diff --git a/pack/1.2.0-rc0/StaticOutput.png b/1.2.0/StaticOutput.png similarity index 100% rename from pack/1.2.0-rc0/StaticOutput.png rename to 1.2.0/StaticOutput.png diff --git a/pack/1.2.0-rc0/Symbol_Access.html b/1.2.0/Symbol_Access.html similarity index 100% rename from pack/1.2.0-rc0/Symbol_Access.html rename to 1.2.0/Symbol_Access.html diff --git a/pack/1.2.0-rc0/alert_bold_spec.png b/1.2.0/alert_bold_spec.png similarity index 100% rename from pack/1.2.0-rc0/alert_bold_spec.png rename to 1.2.0/alert_bold_spec.png diff --git a/pack/1.2.0-rc0/annotated.html b/1.2.0/annotated.html similarity index 100% rename from pack/1.2.0-rc0/annotated.html rename to 1.2.0/annotated.html diff --git a/pack/1.2.0-rc0/bc_s.png b/1.2.0/bc_s.png similarity index 100% rename from pack/1.2.0-rc0/bc_s.png rename to 1.2.0/bc_s.png diff --git a/pack/1.2.0-rc0/bc_sd.png b/1.2.0/bc_sd.png similarity index 100% rename from pack/1.2.0-rc0/bc_sd.png rename to 1.2.0/bc_sd.png diff --git a/pack/1.2.0-rc0/bdwn.png b/1.2.0/bdwn.png similarity index 100% rename from pack/1.2.0-rc0/bdwn.png rename to 1.2.0/bdwn.png diff --git a/pack/1.2.0-rc0/builtin_function.html b/1.2.0/builtin_function.html similarity index 100% rename from pack/1.2.0-rc0/builtin_function.html rename to 1.2.0/builtin_function.html diff --git a/pack/1.2.0-rc0/c_spec.png b/1.2.0/c_spec.png similarity index 100% rename from pack/1.2.0-rc0/c_spec.png rename to 1.2.0/c_spec.png diff --git a/pack/1.2.0-rc0/classes.html b/1.2.0/classes.html similarity index 100% rename from pack/1.2.0-rc0/classes.html rename to 1.2.0/classes.html diff --git a/pack/1.2.0-rc0/closed.png b/1.2.0/closed.png similarity index 100% rename from pack/1.2.0-rc0/closed.png rename to 1.2.0/closed.png diff --git a/pack/1.2.0-rc0/cmp_viewer.html b/1.2.0/cmp_viewer.html similarity index 100% rename from pack/1.2.0-rc0/cmp_viewer.html rename to 1.2.0/cmp_viewer.html diff --git a/pack/1.2.0-rc0/cmsis_logo_white_small.png b/1.2.0/cmsis_logo_white_small.png similarity index 100% rename from pack/1.2.0-rc0/cmsis_logo_white_small.png rename to 1.2.0/cmsis_logo_white_small.png diff --git a/pack/1.2.0-rc0/config_wizard.png b/1.2.0/config_wizard.png similarity index 100% rename from pack/1.2.0-rc0/config_wizard.png rename to 1.2.0/config_wizard.png diff --git a/pack/1.2.0-rc0/create_iram2.png b/1.2.0/create_iram2.png similarity index 100% rename from pack/1.2.0-rc0/create_iram2.png rename to 1.2.0/create_iram2.png diff --git a/pack/1.2.0-rc0/d_spec.png b/1.2.0/d_spec.png similarity index 100% rename from pack/1.2.0-rc0/d_spec.png rename to 1.2.0/d_spec.png diff --git a/pack/1.2.0-rc0/darkmode_toggle.js b/1.2.0/darkmode_toggle.js similarity index 100% rename from pack/1.2.0-rc0/darkmode_toggle.js rename to 1.2.0/darkmode_toggle.js diff --git a/pack/1.2.0-rc0/data_type.html b/1.2.0/data_type.html similarity index 100% rename from pack/1.2.0-rc0/data_type.html rename to 1.2.0/data_type.html diff --git a/pack/1.2.0-rc0/dir_2c357711a170e63cbdb32a9298395404.html b/1.2.0/dir_2c357711a170e63cbdb32a9298395404.html similarity index 100% rename from pack/1.2.0-rc0/dir_2c357711a170e63cbdb32a9298395404.html rename to 1.2.0/dir_2c357711a170e63cbdb32a9298395404.html diff --git a/pack/1.2.0-rc0/dir_9824467afefc04d26edffcedda92bdb9.html b/1.2.0/dir_9824467afefc04d26edffcedda92bdb9.html similarity index 100% rename from pack/1.2.0-rc0/dir_9824467afefc04d26edffcedda92bdb9.html rename to 1.2.0/dir_9824467afefc04d26edffcedda92bdb9.html diff --git a/pack/1.2.0-rc0/dir_9b360dd713cb69f97d132f7023f0533f.html b/1.2.0/dir_9b360dd713cb69f97d132f7023f0533f.html similarity index 100% rename from pack/1.2.0-rc0/dir_9b360dd713cb69f97d132f7023f0533f.html rename to 1.2.0/dir_9b360dd713cb69f97d132f7023f0533f.html diff --git a/pack/1.2.0-rc0/dir_9d55212ec500507f31c8f7960ba38f00.html b/1.2.0/dir_9d55212ec500507f31c8f7960ba38f00.html similarity index 100% rename from pack/1.2.0-rc0/dir_9d55212ec500507f31c8f7960ba38f00.html rename to 1.2.0/dir_9d55212ec500507f31c8f7960ba38f00.html diff --git a/pack/1.2.0-rc0/dir_c13aaecf39f1b45fd07fdc13d1567e11.html b/1.2.0/dir_c13aaecf39f1b45fd07fdc13d1567e11.html similarity index 100% rename from pack/1.2.0-rc0/dir_c13aaecf39f1b45fd07fdc13d1567e11.html rename to 1.2.0/dir_c13aaecf39f1b45fd07fdc13d1567e11.html diff --git a/pack/1.2.0-rc0/dir_ef86cccbee7b98f94fd45fb92584910b.html b/1.2.0/dir_ef86cccbee7b98f94fd45fb92584910b.html similarity index 100% rename from pack/1.2.0-rc0/dir_ef86cccbee7b98f94fd45fb92584910b.html rename to 1.2.0/dir_ef86cccbee7b98f94fd45fb92584910b.html diff --git a/pack/1.2.0-rc0/doc.png b/1.2.0/doc.png similarity index 100% rename from pack/1.2.0-rc0/doc.png rename to 1.2.0/doc.png diff --git a/pack/1.2.0-rc0/docd.png b/1.2.0/docd.png similarity index 100% rename from pack/1.2.0-rc0/docd.png rename to 1.2.0/docd.png diff --git a/pack/1.2.0-rc0/doxygen.css b/1.2.0/doxygen.css similarity index 100% rename from pack/1.2.0-rc0/doxygen.css rename to 1.2.0/doxygen.css diff --git a/pack/1.2.0-rc0/doxygen.svg b/1.2.0/doxygen.svg similarity index 100% rename from pack/1.2.0-rc0/doxygen.svg rename to 1.2.0/doxygen.svg diff --git a/pack/1.2.0-rc0/dropdown.png b/1.2.0/dropdown.png similarity index 100% rename from pack/1.2.0-rc0/dropdown.png rename to 1.2.0/dropdown.png diff --git a/pack/1.2.0-rc0/dynsections.js b/1.2.0/dynsections.js similarity index 100% rename from pack/1.2.0-rc0/dynsections.js rename to 1.2.0/dynsections.js diff --git a/pack/1.2.0-rc0/e_spec.png b/1.2.0/e_spec.png similarity index 100% rename from pack/1.2.0-rc0/e_spec.png rename to 1.2.0/e_spec.png diff --git a/pack/1.2.0-rc0/elem_calc.html b/1.2.0/elem_calc.html similarity index 100% rename from pack/1.2.0-rc0/elem_calc.html rename to 1.2.0/elem_calc.html diff --git a/pack/1.2.0-rc0/elem_component.html b/1.2.0/elem_component.html similarity index 100% rename from pack/1.2.0-rc0/elem_component.html rename to 1.2.0/elem_component.html diff --git a/pack/1.2.0-rc0/elem_component_viewer.html b/1.2.0/elem_component_viewer.html similarity index 100% rename from pack/1.2.0-rc0/elem_component_viewer.html rename to 1.2.0/elem_component_viewer.html diff --git a/pack/1.2.0-rc0/elem_event.html b/1.2.0/elem_event.html similarity index 100% rename from pack/1.2.0-rc0/elem_event.html rename to 1.2.0/elem_event.html diff --git a/pack/1.2.0-rc0/elem_event.js b/1.2.0/elem_event.js similarity index 100% rename from pack/1.2.0-rc0/elem_event.js rename to 1.2.0/elem_event.js diff --git a/pack/1.2.0-rc0/elem_event_print.html b/1.2.0/elem_event_print.html similarity index 100% rename from pack/1.2.0-rc0/elem_event_print.html rename to 1.2.0/elem_event_print.html diff --git a/pack/1.2.0-rc0/elem_events.html b/1.2.0/elem_events.html similarity index 100% rename from pack/1.2.0-rc0/elem_events.html rename to 1.2.0/elem_events.html diff --git a/pack/1.2.0-rc0/elem_events.js b/1.2.0/elem_events.js similarity index 100% rename from pack/1.2.0-rc0/elem_events.js rename to 1.2.0/elem_events.js diff --git a/pack/1.2.0-rc0/elem_group.html b/1.2.0/elem_group.html similarity index 100% rename from pack/1.2.0-rc0/elem_group.html rename to 1.2.0/elem_group.html diff --git a/pack/1.2.0-rc0/elem_item.html b/1.2.0/elem_item.html similarity index 100% rename from pack/1.2.0-rc0/elem_item.html rename to 1.2.0/elem_item.html diff --git a/pack/1.2.0-rc0/elem_item.js b/1.2.0/elem_item.js similarity index 100% rename from pack/1.2.0-rc0/elem_item.js rename to 1.2.0/elem_item.js diff --git a/pack/1.2.0-rc0/elem_list.html b/1.2.0/elem_list.html similarity index 100% rename from pack/1.2.0-rc0/elem_list.html rename to 1.2.0/elem_list.html diff --git a/pack/1.2.0-rc0/elem_listout.html b/1.2.0/elem_listout.html similarity index 100% rename from pack/1.2.0-rc0/elem_listout.html rename to 1.2.0/elem_listout.html diff --git a/pack/1.2.0-rc0/elem_member.html b/1.2.0/elem_member.html similarity index 100% rename from pack/1.2.0-rc0/elem_member.html rename to 1.2.0/elem_member.html diff --git a/pack/1.2.0-rc0/elem_objects.html b/1.2.0/elem_objects.html similarity index 100% rename from pack/1.2.0-rc0/elem_objects.html rename to 1.2.0/elem_objects.html diff --git a/pack/1.2.0-rc0/elem_objects.js b/1.2.0/elem_objects.js similarity index 100% rename from pack/1.2.0-rc0/elem_objects.js rename to 1.2.0/elem_objects.js diff --git a/pack/1.2.0-rc0/elem_out.html b/1.2.0/elem_out.html similarity index 100% rename from pack/1.2.0-rc0/elem_out.html rename to 1.2.0/elem_out.html diff --git a/pack/1.2.0-rc0/elem_out.js b/1.2.0/elem_out.js similarity index 100% rename from pack/1.2.0-rc0/elem_out.js rename to 1.2.0/elem_out.js diff --git a/pack/1.2.0-rc0/elem_print.html b/1.2.0/elem_print.html similarity index 100% rename from pack/1.2.0-rc0/elem_print.html rename to 1.2.0/elem_print.html diff --git a/pack/1.2.0-rc0/elem_read.html b/1.2.0/elem_read.html similarity index 100% rename from pack/1.2.0-rc0/elem_read.html rename to 1.2.0/elem_read.html diff --git a/pack/1.2.0-rc0/elem_readlist.html b/1.2.0/elem_readlist.html similarity index 100% rename from pack/1.2.0-rc0/elem_readlist.html rename to 1.2.0/elem_readlist.html diff --git a/pack/1.2.0-rc0/elem_typedefs.html b/1.2.0/elem_typedefs.html similarity index 100% rename from pack/1.2.0-rc0/elem_typedefs.html rename to 1.2.0/elem_typedefs.html diff --git a/pack/1.2.0-rc0/elem_typedefs.js b/1.2.0/elem_typedefs.js similarity index 100% rename from pack/1.2.0-rc0/elem_typedefs.js rename to 1.2.0/elem_typedefs.js diff --git a/pack/1.2.0-rc0/elem_var.html b/1.2.0/elem_var.html similarity index 100% rename from pack/1.2.0-rc0/elem_var.html rename to 1.2.0/elem_var.html diff --git a/pack/1.2.0-rc0/er_memory_location.png b/1.2.0/er_memory_location.png similarity index 100% rename from pack/1.2.0-rc0/er_memory_location.png rename to 1.2.0/er_memory_location.png diff --git a/pack/1.2.0-rc0/er_theory.html b/1.2.0/er_theory.html similarity index 100% rename from pack/1.2.0-rc0/er_theory.html rename to 1.2.0/er_theory.html diff --git a/pack/1.2.0-rc0/er_use.html b/1.2.0/er_use.html similarity index 100% rename from pack/1.2.0-rc0/er_use.html rename to 1.2.0/er_use.html diff --git a/pack/1.2.0-rc0/es_start_stop_w_energy.png b/1.2.0/es_start_stop_w_energy.png similarity index 100% rename from pack/1.2.0-rc0/es_start_stop_w_energy.png rename to 1.2.0/es_start_stop_w_energy.png diff --git a/pack/1.2.0-rc0/ev_stat.html b/1.2.0/ev_stat.html similarity index 100% rename from pack/1.2.0-rc0/ev_stat.html rename to 1.2.0/ev_stat.html diff --git a/pack/1.2.0-rc0/evntlst.html b/1.2.0/evntlst.html similarity index 100% rename from pack/1.2.0-rc0/evntlst.html rename to 1.2.0/evntlst.html diff --git a/pack/1.2.0-rc0/evr.html b/1.2.0/evr.html similarity index 100% rename from pack/1.2.0-rc0/evr.html rename to 1.2.0/evr.html diff --git a/pack/1.2.0-rc0/evr.js b/1.2.0/evr.js similarity index 100% rename from pack/1.2.0-rc0/evr.js rename to 1.2.0/evr.js diff --git a/pack/1.2.0-rc0/extra_navtree.css b/1.2.0/extra_navtree.css similarity index 100% rename from pack/1.2.0-rc0/extra_navtree.css rename to 1.2.0/extra_navtree.css diff --git a/pack/1.2.0-rc0/extra_search.css b/1.2.0/extra_search.css similarity index 100% rename from pack/1.2.0-rc0/extra_search.css rename to 1.2.0/extra_search.css diff --git a/pack/1.2.0-rc0/extra_stylesheet.css b/1.2.0/extra_stylesheet.css similarity index 100% rename from pack/1.2.0-rc0/extra_stylesheet.css rename to 1.2.0/extra_stylesheet.css diff --git a/pack/1.2.0-rc0/extra_tabs.css b/1.2.0/extra_tabs.css similarity index 100% rename from pack/1.2.0-rc0/extra_tabs.css rename to 1.2.0/extra_tabs.css diff --git a/pack/1.2.0-rc0/fault.html b/1.2.0/fault.html similarity index 100% rename from pack/1.2.0-rc0/fault.html rename to 1.2.0/fault.html diff --git a/pack/1.2.0-rc0/fault.js b/1.2.0/fault.js similarity index 100% rename from pack/1.2.0-rc0/fault.js rename to 1.2.0/fault.js diff --git a/pack/1.2.0-rc0/filter_button.png b/1.2.0/filter_button.png similarity index 100% rename from pack/1.2.0-rc0/filter_button.png rename to 1.2.0/filter_button.png diff --git a/pack/1.2.0-rc0/filtering_events.png b/1.2.0/filtering_events.png similarity index 100% rename from pack/1.2.0-rc0/filtering_events.png rename to 1.2.0/filtering_events.png diff --git a/pack/1.2.0-rc0/flt_example_CM33.html b/1.2.0/flt_example_CM33.html similarity index 100% rename from pack/1.2.0-rc0/flt_example_CM33.html rename to 1.2.0/flt_example_CM33.html diff --git a/pack/1.2.0-rc0/flt_example_CM7.html b/1.2.0/flt_example_CM7.html similarity index 100% rename from pack/1.2.0-rc0/flt_example_CM7.html rename to 1.2.0/flt_example_CM7.html diff --git a/pack/1.2.0-rc0/flt_theory.html b/1.2.0/flt_theory.html similarity index 100% rename from pack/1.2.0-rc0/flt_theory.html rename to 1.2.0/flt_theory.html diff --git a/pack/1.2.0-rc0/flt_use.html b/1.2.0/flt_use.html similarity index 100% rename from pack/1.2.0-rc0/flt_use.html rename to 1.2.0/flt_use.html diff --git a/pack/1.2.0-rc0/folderclosed.png b/1.2.0/folderclosed.png similarity index 100% rename from pack/1.2.0-rc0/folderclosed.png rename to 1.2.0/folderclosed.png diff --git a/pack/1.2.0-rc0/folderopen.png b/1.2.0/folderopen.png similarity index 100% rename from pack/1.2.0-rc0/folderopen.png rename to 1.2.0/folderopen.png diff --git a/pack/1.2.0/footer.js b/1.2.0/footer.js similarity index 100% rename from pack/1.2.0/footer.js rename to 1.2.0/footer.js diff --git a/pack/1.2.0-rc0/functions.html b/1.2.0/functions.html similarity index 100% rename from pack/1.2.0-rc0/functions.html rename to 1.2.0/functions.html diff --git a/pack/1.2.0-rc0/functions_vars.html b/1.2.0/functions_vars.html similarity index 100% rename from pack/1.2.0-rc0/functions_vars.html rename to 1.2.0/functions_vars.html diff --git a/pack/1.2.0-rc0/group__EventRecorder__CompNoDefs.html b/1.2.0/group__EventRecorder__CompNoDefs.html similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__CompNoDefs.html rename to 1.2.0/group__EventRecorder__CompNoDefs.html diff --git a/pack/1.2.0-rc0/group__EventRecorder__CompNoDefs.js b/1.2.0/group__EventRecorder__CompNoDefs.js similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__CompNoDefs.js rename to 1.2.0/group__EventRecorder__CompNoDefs.js diff --git a/pack/1.2.0-rc0/group__EventRecorder__Data.html b/1.2.0/group__EventRecorder__Data.html similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__Data.html rename to 1.2.0/group__EventRecorder__Data.html diff --git a/pack/1.2.0-rc0/group__EventRecorder__Data.js b/1.2.0/group__EventRecorder__Data.js similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__Data.js rename to 1.2.0/group__EventRecorder__Data.js diff --git a/pack/1.2.0-rc0/group__EventRecorder__Setup.html b/1.2.0/group__EventRecorder__Setup.html similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__Setup.html rename to 1.2.0/group__EventRecorder__Setup.html diff --git a/pack/1.2.0-rc0/group__EventRecorder__Setup.js b/1.2.0/group__EventRecorder__Setup.js similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__Setup.js rename to 1.2.0/group__EventRecorder__Setup.js diff --git a/pack/1.2.0-rc0/group__EventRecorder__Time.html b/1.2.0/group__EventRecorder__Time.html similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__Time.html rename to 1.2.0/group__EventRecorder__Time.html diff --git a/pack/1.2.0-rc0/group__EventRecorder__Time.js b/1.2.0/group__EventRecorder__Time.js similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__Time.js rename to 1.2.0/group__EventRecorder__Time.js diff --git a/pack/1.2.0-rc0/group__EventRecorder__leveldefs.html b/1.2.0/group__EventRecorder__leveldefs.html similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__leveldefs.html rename to 1.2.0/group__EventRecorder__leveldefs.html diff --git a/pack/1.2.0-rc0/group__EventRecorder__leveldefs.js b/1.2.0/group__EventRecorder__leveldefs.js similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__leveldefs.js rename to 1.2.0/group__EventRecorder__leveldefs.js diff --git a/pack/1.2.0-rc0/group__EventRecorder__recdefs.html b/1.2.0/group__EventRecorder__recdefs.html similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__recdefs.html rename to 1.2.0/group__EventRecorder__recdefs.html diff --git a/pack/1.2.0-rc0/group__EventRecorder__recdefs.js b/1.2.0/group__EventRecorder__recdefs.js similarity index 100% rename from pack/1.2.0-rc0/group__EventRecorder__recdefs.js rename to 1.2.0/group__EventRecorder__recdefs.js diff --git a/pack/1.2.0-rc0/group__Event__Execution__Statistic.html b/1.2.0/group__Event__Execution__Statistic.html similarity index 100% rename from pack/1.2.0-rc0/group__Event__Execution__Statistic.html rename to 1.2.0/group__Event__Execution__Statistic.html diff --git a/pack/1.2.0-rc0/group__Event__Execution__Statistic.js b/1.2.0/group__Event__Execution__Statistic.js similarity index 100% rename from pack/1.2.0-rc0/group__Event__Execution__Statistic.js rename to 1.2.0/group__Event__Execution__Statistic.js diff --git a/pack/1.2.0-rc0/group__Fault__Record.html b/1.2.0/group__Fault__Record.html similarity index 100% rename from pack/1.2.0-rc0/group__Fault__Record.html rename to 1.2.0/group__Fault__Record.html diff --git a/pack/1.2.0-rc0/group__Fault__Record.js b/1.2.0/group__Fault__Record.js similarity index 100% rename from pack/1.2.0-rc0/group__Fault__Record.js rename to 1.2.0/group__Fault__Record.js diff --git a/pack/1.2.0-rc0/group__Fault__Storage.html b/1.2.0/group__Fault__Storage.html similarity index 100% rename from pack/1.2.0-rc0/group__Fault__Storage.html rename to 1.2.0/group__Fault__Storage.html diff --git a/pack/1.2.0-rc0/group__Fault__Storage.js b/1.2.0/group__Fault__Storage.js similarity index 100% rename from pack/1.2.0-rc0/group__Fault__Storage.js rename to 1.2.0/group__Fault__Storage.js diff --git a/pack/1.2.0-rc0/group__Fault__Storage__Macros.html b/1.2.0/group__Fault__Storage__Macros.html similarity index 100% rename from pack/1.2.0-rc0/group__Fault__Storage__Macros.html rename to 1.2.0/group__Fault__Storage__Macros.html diff --git a/pack/1.2.0-rc0/group__Fault__Storage__Macros.js b/1.2.0/group__Fault__Storage__Macros.js similarity index 100% rename from pack/1.2.0-rc0/group__Fault__Storage__Macros.js rename to 1.2.0/group__Fault__Storage__Macros.js diff --git a/pack/1.2.0-rc0/group__Ref__EventRecorder.html b/1.2.0/group__Ref__EventRecorder.html similarity index 100% rename from pack/1.2.0-rc0/group__Ref__EventRecorder.html rename to 1.2.0/group__Ref__EventRecorder.html diff --git a/pack/1.2.0-rc0/group__Ref__EventRecorder.js b/1.2.0/group__Ref__EventRecorder.js similarity index 100% rename from pack/1.2.0-rc0/group__Ref__EventRecorder.js rename to 1.2.0/group__Ref__EventRecorder.js diff --git a/pack/1.2.0-rc0/group__Ref__Fault.html b/1.2.0/group__Ref__Fault.html similarity index 100% rename from pack/1.2.0-rc0/group__Ref__Fault.html rename to 1.2.0/group__Ref__Fault.html diff --git a/pack/1.2.0-rc0/group__Ref__Fault.js b/1.2.0/group__Ref__Fault.js similarity index 100% rename from pack/1.2.0-rc0/group__Ref__Fault.js rename to 1.2.0/group__Ref__Fault.js diff --git a/pack/1.2.0-rc0/i_spec.png b/1.2.0/i_spec.png similarity index 100% rename from pack/1.2.0-rc0/i_spec.png rename to 1.2.0/i_spec.png diff --git a/pack/1.2.0-rc0/index.html b/1.2.0/index.html similarity index 100% rename from pack/1.2.0-rc0/index.html rename to 1.2.0/index.html diff --git a/pack/1.2.0-rc0/index.js b/1.2.0/index.js similarity index 100% rename from pack/1.2.0-rc0/index.js rename to 1.2.0/index.js diff --git a/pack/1.2.0-rc0/jquery.js b/1.2.0/jquery.js similarity index 100% rename from pack/1.2.0-rc0/jquery.js rename to 1.2.0/jquery.js diff --git a/pack/1.2.0-rc0/modules.html b/1.2.0/modules.html similarity index 100% rename from pack/1.2.0-rc0/modules.html rename to 1.2.0/modules.html diff --git a/pack/1.2.0-rc0/modules.js b/1.2.0/modules.js similarity index 100% rename from pack/1.2.0-rc0/modules.js rename to 1.2.0/modules.js diff --git a/pack/1.2.0-rc0/n_spec.png b/1.2.0/n_spec.png similarity index 100% rename from pack/1.2.0-rc0/n_spec.png rename to 1.2.0/n_spec.png diff --git a/pack/1.2.0-rc0/nav_f.png b/1.2.0/nav_f.png similarity index 100% rename from pack/1.2.0-rc0/nav_f.png rename to 1.2.0/nav_f.png diff --git a/pack/1.2.0-rc0/nav_fd.png b/1.2.0/nav_fd.png similarity index 100% rename from pack/1.2.0-rc0/nav_fd.png rename to 1.2.0/nav_fd.png diff --git a/pack/1.2.0-rc0/nav_g.png b/1.2.0/nav_g.png similarity index 100% rename from pack/1.2.0-rc0/nav_g.png rename to 1.2.0/nav_g.png diff --git a/pack/1.2.0-rc0/nav_h.png b/1.2.0/nav_h.png similarity index 100% rename from pack/1.2.0-rc0/nav_h.png rename to 1.2.0/nav_h.png diff --git a/pack/1.2.0-rc0/nav_hd.png b/1.2.0/nav_hd.png similarity index 100% rename from pack/1.2.0-rc0/nav_hd.png rename to 1.2.0/nav_hd.png diff --git a/pack/1.2.0-rc0/navtree.css b/1.2.0/navtree.css similarity index 100% rename from pack/1.2.0-rc0/navtree.css rename to 1.2.0/navtree.css diff --git a/pack/1.2.0-rc0/navtree.js b/1.2.0/navtree.js similarity index 100% rename from pack/1.2.0-rc0/navtree.js rename to 1.2.0/navtree.js diff --git a/pack/1.2.0-rc0/navtreedata.js b/1.2.0/navtreedata.js similarity index 100% rename from pack/1.2.0-rc0/navtreedata.js rename to 1.2.0/navtreedata.js diff --git a/pack/1.2.0-rc0/navtreeindex0.js b/1.2.0/navtreeindex0.js similarity index 100% rename from pack/1.2.0-rc0/navtreeindex0.js rename to 1.2.0/navtreeindex0.js diff --git a/pack/1.2.0-rc0/open.png b/1.2.0/open.png similarity index 100% rename from pack/1.2.0-rc0/open.png rename to 1.2.0/open.png diff --git a/pack/1.2.0-rc0/pages.html b/1.2.0/pages.html similarity index 100% rename from pack/1.2.0-rc0/pages.html rename to 1.2.0/pages.html diff --git a/pack/1.2.0-rc0/print_spec.png b/1.2.0/print_spec.png similarity index 100% rename from pack/1.2.0-rc0/print_spec.png rename to 1.2.0/print_spec.png diff --git a/pack/1.2.0-rc0/ram_for_algorithm_area.png b/1.2.0/ram_for_algorithm_area.png similarity index 100% rename from pack/1.2.0-rc0/ram_for_algorithm_area.png rename to 1.2.0/ram_for_algorithm_area.png diff --git a/pack/1.2.0-rc0/reset_and_run.png b/1.2.0/reset_and_run.png similarity index 100% rename from pack/1.2.0-rc0/reset_and_run.png rename to 1.2.0/reset_and_run.png diff --git a/pack/1.2.0-rc0/resize.js b/1.2.0/resize.js similarity index 100% rename from pack/1.2.0-rc0/resize.js rename to 1.2.0/resize.js diff --git a/pack/1.2.0/rev_hist.html b/1.2.0/rev_hist.html similarity index 100% rename from pack/1.2.0/rev_hist.html rename to 1.2.0/rev_hist.html diff --git a/pack/1.2.0-rc0/scvd_evt_stat.html b/1.2.0/scvd_evt_stat.html similarity index 100% rename from pack/1.2.0-rc0/scvd_evt_stat.html rename to 1.2.0/scvd_evt_stat.html diff --git a/pack/1.2.0-rc0/scvd_expression.html b/1.2.0/scvd_expression.html similarity index 100% rename from pack/1.2.0-rc0/scvd_expression.html rename to 1.2.0/scvd_expression.html diff --git a/pack/1.2.0-rc0/search/all_0.js b/1.2.0/search/all_0.js similarity index 100% rename from pack/1.2.0-rc0/search/all_0.js rename to 1.2.0/search/all_0.js diff --git a/pack/1.2.0-rc0/search/all_1.js b/1.2.0/search/all_1.js similarity index 100% rename from pack/1.2.0-rc0/search/all_1.js rename to 1.2.0/search/all_1.js diff --git a/pack/1.2.0-rc0/search/all_2.js b/1.2.0/search/all_2.js similarity index 100% rename from pack/1.2.0-rc0/search/all_2.js rename to 1.2.0/search/all_2.js diff --git a/pack/1.2.0-rc0/search/all_3.js b/1.2.0/search/all_3.js similarity index 100% rename from pack/1.2.0-rc0/search/all_3.js rename to 1.2.0/search/all_3.js diff --git a/pack/1.2.0-rc0/search/all_4.js b/1.2.0/search/all_4.js similarity index 100% rename from pack/1.2.0-rc0/search/all_4.js rename to 1.2.0/search/all_4.js diff --git a/pack/1.2.0-rc0/search/all_5.js b/1.2.0/search/all_5.js similarity index 100% rename from pack/1.2.0-rc0/search/all_5.js rename to 1.2.0/search/all_5.js diff --git a/pack/1.2.0-rc0/search/all_6.js b/1.2.0/search/all_6.js similarity index 100% rename from pack/1.2.0-rc0/search/all_6.js rename to 1.2.0/search/all_6.js diff --git a/pack/1.2.0-rc0/search/all_7.js b/1.2.0/search/all_7.js similarity index 100% rename from pack/1.2.0-rc0/search/all_7.js rename to 1.2.0/search/all_7.js diff --git a/pack/1.2.0-rc0/search/all_8.js b/1.2.0/search/all_8.js similarity index 100% rename from pack/1.2.0-rc0/search/all_8.js rename to 1.2.0/search/all_8.js diff --git a/pack/1.2.0-rc0/search/all_9.js b/1.2.0/search/all_9.js similarity index 100% rename from pack/1.2.0-rc0/search/all_9.js rename to 1.2.0/search/all_9.js diff --git a/pack/1.2.0-rc0/search/all_a.js b/1.2.0/search/all_a.js similarity index 100% rename from pack/1.2.0-rc0/search/all_a.js rename to 1.2.0/search/all_a.js diff --git a/pack/1.2.0-rc0/search/all_b.js b/1.2.0/search/all_b.js similarity index 100% rename from pack/1.2.0-rc0/search/all_b.js rename to 1.2.0/search/all_b.js diff --git a/pack/1.2.0-rc0/search/all_c.js b/1.2.0/search/all_c.js similarity index 100% rename from pack/1.2.0-rc0/search/all_c.js rename to 1.2.0/search/all_c.js diff --git a/pack/1.2.0-rc0/search/all_d.js b/1.2.0/search/all_d.js similarity index 100% rename from pack/1.2.0-rc0/search/all_d.js rename to 1.2.0/search/all_d.js diff --git a/pack/1.2.0-rc0/search/all_e.js b/1.2.0/search/all_e.js similarity index 100% rename from pack/1.2.0-rc0/search/all_e.js rename to 1.2.0/search/all_e.js diff --git a/pack/1.2.0-rc0/search/classes_0.js b/1.2.0/search/classes_0.js similarity index 100% rename from pack/1.2.0-rc0/search/classes_0.js rename to 1.2.0/search/classes_0.js diff --git a/pack/1.2.0-rc0/search/close.svg b/1.2.0/search/close.svg similarity index 100% rename from pack/1.2.0-rc0/search/close.svg rename to 1.2.0/search/close.svg diff --git a/pack/1.2.0-rc0/search/functions_0.js b/1.2.0/search/functions_0.js similarity index 100% rename from pack/1.2.0-rc0/search/functions_0.js rename to 1.2.0/search/functions_0.js diff --git a/pack/1.2.0-rc0/search/functions_1.js b/1.2.0/search/functions_1.js similarity index 100% rename from pack/1.2.0-rc0/search/functions_1.js rename to 1.2.0/search/functions_1.js diff --git a/pack/1.2.0-rc0/search/groups_0.js b/1.2.0/search/groups_0.js similarity index 100% rename from pack/1.2.0-rc0/search/groups_0.js rename to 1.2.0/search/groups_0.js diff --git a/pack/1.2.0-rc0/search/groups_1.js b/1.2.0/search/groups_1.js similarity index 100% rename from pack/1.2.0-rc0/search/groups_1.js rename to 1.2.0/search/groups_1.js diff --git a/pack/1.2.0-rc0/search/groups_2.js b/1.2.0/search/groups_2.js similarity index 100% rename from pack/1.2.0-rc0/search/groups_2.js rename to 1.2.0/search/groups_2.js diff --git a/pack/1.2.0-rc0/search/groups_3.js b/1.2.0/search/groups_3.js similarity index 100% rename from pack/1.2.0-rc0/search/groups_3.js rename to 1.2.0/search/groups_3.js diff --git a/pack/1.2.0-rc0/search/groups_4.js b/1.2.0/search/groups_4.js similarity index 100% rename from pack/1.2.0-rc0/search/groups_4.js rename to 1.2.0/search/groups_4.js diff --git a/pack/1.2.0-rc0/search/mag.svg b/1.2.0/search/mag.svg similarity index 100% rename from pack/1.2.0-rc0/search/mag.svg rename to 1.2.0/search/mag.svg diff --git a/pack/1.2.0-rc0/search/mag_d.svg b/1.2.0/search/mag_d.svg similarity index 100% rename from pack/1.2.0-rc0/search/mag_d.svg rename to 1.2.0/search/mag_d.svg diff --git a/pack/1.2.0-rc0/search/mag_sel.svg b/1.2.0/search/mag_sel.svg similarity index 100% rename from pack/1.2.0-rc0/search/mag_sel.svg rename to 1.2.0/search/mag_sel.svg diff --git a/pack/1.2.0-rc0/search/mag_seld.svg b/1.2.0/search/mag_seld.svg similarity index 100% rename from pack/1.2.0-rc0/search/mag_seld.svg rename to 1.2.0/search/mag_seld.svg diff --git a/pack/1.2.0-rc0/search/pages_0.js b/1.2.0/search/pages_0.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_0.js rename to 1.2.0/search/pages_0.js diff --git a/pack/1.2.0-rc0/search/pages_1.js b/1.2.0/search/pages_1.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_1.js rename to 1.2.0/search/pages_1.js diff --git a/pack/1.2.0-rc0/search/pages_2.js b/1.2.0/search/pages_2.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_2.js rename to 1.2.0/search/pages_2.js diff --git a/pack/1.2.0-rc0/search/pages_3.js b/1.2.0/search/pages_3.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_3.js rename to 1.2.0/search/pages_3.js diff --git a/pack/1.2.0-rc0/search/pages_4.js b/1.2.0/search/pages_4.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_4.js rename to 1.2.0/search/pages_4.js diff --git a/pack/1.2.0-rc0/search/pages_5.js b/1.2.0/search/pages_5.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_5.js rename to 1.2.0/search/pages_5.js diff --git a/pack/1.2.0-rc0/search/pages_6.js b/1.2.0/search/pages_6.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_6.js rename to 1.2.0/search/pages_6.js diff --git a/pack/1.2.0-rc0/search/pages_7.js b/1.2.0/search/pages_7.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_7.js rename to 1.2.0/search/pages_7.js diff --git a/pack/1.2.0-rc0/search/pages_8.js b/1.2.0/search/pages_8.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_8.js rename to 1.2.0/search/pages_8.js diff --git a/pack/1.2.0-rc0/search/pages_9.js b/1.2.0/search/pages_9.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_9.js rename to 1.2.0/search/pages_9.js diff --git a/pack/1.2.0-rc0/search/pages_a.js b/1.2.0/search/pages_a.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_a.js rename to 1.2.0/search/pages_a.js diff --git a/pack/1.2.0-rc0/search/pages_b.js b/1.2.0/search/pages_b.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_b.js rename to 1.2.0/search/pages_b.js diff --git a/pack/1.2.0-rc0/search/pages_c.js b/1.2.0/search/pages_c.js similarity index 100% rename from pack/1.2.0-rc0/search/pages_c.js rename to 1.2.0/search/pages_c.js diff --git a/pack/1.2.0-rc0/search/search.css b/1.2.0/search/search.css similarity index 100% rename from pack/1.2.0-rc0/search/search.css rename to 1.2.0/search/search.css diff --git a/pack/1.2.0-rc0/search/search.js b/1.2.0/search/search.js similarity index 100% rename from pack/1.2.0-rc0/search/search.js rename to 1.2.0/search/search.js diff --git a/pack/1.2.0-rc0/search/searchdata.js b/1.2.0/search/searchdata.js similarity index 100% rename from pack/1.2.0-rc0/search/searchdata.js rename to 1.2.0/search/searchdata.js diff --git a/pack/1.2.0-rc0/search/variables_0.js b/1.2.0/search/variables_0.js similarity index 100% rename from pack/1.2.0-rc0/search/variables_0.js rename to 1.2.0/search/variables_0.js diff --git a/pack/1.2.0-rc0/search/variables_1.js b/1.2.0/search/variables_1.js similarity index 100% rename from pack/1.2.0-rc0/search/variables_1.js rename to 1.2.0/search/variables_1.js diff --git a/pack/1.2.0-rc0/search/variables_2.js b/1.2.0/search/variables_2.js similarity index 100% rename from pack/1.2.0-rc0/search/variables_2.js rename to 1.2.0/search/variables_2.js diff --git a/pack/1.2.0-rc0/search/variables_3.js b/1.2.0/search/variables_3.js similarity index 100% rename from pack/1.2.0-rc0/search/variables_3.js rename to 1.2.0/search/variables_3.js diff --git a/pack/1.2.0-rc0/search/variables_4.js b/1.2.0/search/variables_4.js similarity index 100% rename from pack/1.2.0-rc0/search/variables_4.js rename to 1.2.0/search/variables_4.js diff --git a/pack/1.2.0-rc0/search/variables_5.js b/1.2.0/search/variables_5.js similarity index 100% rename from pack/1.2.0-rc0/search/variables_5.js rename to 1.2.0/search/variables_5.js diff --git a/pack/1.2.0-rc0/search/variables_6.js b/1.2.0/search/variables_6.js similarity index 100% rename from pack/1.2.0-rc0/search/variables_6.js rename to 1.2.0/search/variables_6.js diff --git a/pack/1.2.0-rc0/splitbar.png b/1.2.0/splitbar.png similarity index 100% rename from pack/1.2.0-rc0/splitbar.png rename to 1.2.0/splitbar.png diff --git a/pack/1.2.0-rc0/splitbard.png b/1.2.0/splitbard.png similarity index 100% rename from pack/1.2.0-rc0/splitbard.png rename to 1.2.0/splitbard.png diff --git a/pack/1.2.0-rc0/sync_off.png b/1.2.0/sync_off.png similarity index 100% rename from pack/1.2.0-rc0/sync_off.png rename to 1.2.0/sync_off.png diff --git a/pack/1.2.0-rc0/sync_on.png b/1.2.0/sync_on.png similarity index 100% rename from pack/1.2.0-rc0/sync_on.png rename to 1.2.0/sync_on.png diff --git a/pack/1.2.0-rc0/t_spec.png b/1.2.0/t_spec.png similarity index 100% rename from pack/1.2.0-rc0/t_spec.png rename to 1.2.0/t_spec.png diff --git a/pack/1.2.0-rc0/tab_a.png b/1.2.0/tab_a.png similarity index 100% rename from pack/1.2.0-rc0/tab_a.png rename to 1.2.0/tab_a.png diff --git a/pack/1.2.0-rc0/tab_ad.png b/1.2.0/tab_ad.png similarity index 100% rename from pack/1.2.0-rc0/tab_ad.png rename to 1.2.0/tab_ad.png diff --git a/pack/1.2.0-rc0/tab_b.png b/1.2.0/tab_b.png similarity index 100% rename from pack/1.2.0-rc0/tab_b.png rename to 1.2.0/tab_b.png diff --git a/pack/1.2.0-rc0/tab_bd.png b/1.2.0/tab_bd.png similarity index 100% rename from pack/1.2.0-rc0/tab_bd.png rename to 1.2.0/tab_bd.png diff --git a/pack/1.2.0-rc0/tab_h.png b/1.2.0/tab_h.png similarity index 100% rename from pack/1.2.0-rc0/tab_h.png rename to 1.2.0/tab_h.png diff --git a/pack/1.2.0-rc0/tab_hd.png b/1.2.0/tab_hd.png similarity index 100% rename from pack/1.2.0-rc0/tab_hd.png rename to 1.2.0/tab_hd.png diff --git a/pack/1.2.0-rc0/tab_s.png b/1.2.0/tab_s.png similarity index 100% rename from pack/1.2.0-rc0/tab_s.png rename to 1.2.0/tab_s.png diff --git a/pack/1.2.0-rc0/tab_sd.png b/1.2.0/tab_sd.png similarity index 100% rename from pack/1.2.0-rc0/tab_sd.png rename to 1.2.0/tab_sd.png diff --git a/pack/1.2.0-rc0/tabs.css b/1.2.0/tabs.css similarity index 100% rename from pack/1.2.0-rc0/tabs.css rename to 1.2.0/tabs.css diff --git a/pack/1.2.0-rc0/tabs.js b/1.2.0/tabs.js similarity index 100% rename from pack/1.2.0-rc0/tabs.js rename to 1.2.0/tabs.js diff --git a/pack/1.2.0-rc0/value_output.html b/1.2.0/value_output.html similarity index 100% rename from pack/1.2.0-rc0/value_output.html rename to 1.2.0/value_output.html diff --git a/pack/1.2.0-rc0/version.css b/1.2.0/version.css similarity index 100% rename from pack/1.2.0-rc0/version.css rename to 1.2.0/version.css diff --git a/pack/1.2.0-rc0/xml_elements.html b/1.2.0/xml_elements.html similarity index 100% rename from pack/1.2.0-rc0/xml_elements.html rename to 1.2.0/xml_elements.html diff --git a/pack/1.2.0-rc0/xml_elements.js b/1.2.0/xml_elements.js similarity index 100% rename from pack/1.2.0-rc0/xml_elements.js rename to 1.2.0/xml_elements.js diff --git a/latest b/latest index 9504750..867e524 120000 --- a/latest +++ b/latest @@ -1 +1 @@ -pack/1.2.0 \ No newline at end of file +1.2.0 \ No newline at end of file diff --git a/pack/1.2.0-rc0/footer.js b/pack/1.2.0-rc0/footer.js deleted file mode 100644 index 35d4276..0000000 --- a/pack/1.2.0-rc0/footer.js +++ /dev/null @@ -1,7 +0,0 @@ -function writeHeader() { - document.write('Version 1.2.0-rc0'); -}; - -function writeFooter() { - document.write('Generated on Mon May 13 2024 11:10:18 for CMSIS-View 1.2.0-rc0. Copyright © 2024 Arm Limited (or its affiliates). All rights reserved.'); -}; diff --git a/pack/1.2.0-rc0/rev_hist.html b/pack/1.2.0-rc0/rev_hist.html deleted file mode 100644 index e612105..0000000 --- a/pack/1.2.0-rc0/rev_hist.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - -CMSIS-View: Revision History - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Revision History
-
-
-

CMSIS-View version is officially updated upon releases of the CMSIS-View pack.

-

The table below provides information about the changes delivered with specific versions of CMSIS-View.

- - - - - - - - - -
Version Description
v1.2.0-rc0
    -
  • Add support for Cortex-M52
  • -
  • Add support for Cortex-M52
  • -
-
v1.1.0
    -
  • Event Recorder
      -
    • Add support for CMSIS v6
    • -
    • Update conditions to prevent simultaneous selection of CMSIS-View:Event Recorder and Compiler:Event Recorder components
    • -
    • Update Event Statistic example to support CMSIS-Toolbox v2
    • -
    -
  • -
  • Fault component
      -
    • Extend section name for fault information, for easier absolute addressing via the linker script
    • -
    • Update Fault example for Cortex-M33 (B-U585I-IOT02A) with improved GCC support and add support for building with CMSIS-Toolbox v2
    • -
    • Update Fault example for AVH Cortex-M7 to support CMSIS-Toolbox v2
    • -
    -
  • -
-
v1.0.0 Initial release of EventRecorder and Fault components as replacement for Keil.ARM-Compiler pack.
    -
  • Rename component class to CMSIS-View. For migration, deselect old "Compiler::EventRecorder" component and select new "CMSIS-View::EventRecorder" one.
  • -
  • Fixes/additions for IAR Compiler
  • -
  • Enhacements for documentation
  • -
  • Optimize Record Lock/Unlock in Event Recorder (using C11 atomics except for Cortex-M0)
  • -
  • Correct timestamp overflow handling in Event Recorder
  • -
  • Add "CMSIS-View::Fault" component for recording system faults.
  • -
-
-
-
-
- - - - diff --git a/pack/1.2.0/ArmFault.png b/pack/1.2.0/ArmFault.png deleted file mode 100644 index e5677a5..0000000 Binary files a/pack/1.2.0/ArmFault.png and /dev/null differ diff --git a/pack/1.2.0/CalcMemUsed.png b/pack/1.2.0/CalcMemUsed.png deleted file mode 100644 index 85d6341..0000000 Binary files a/pack/1.2.0/CalcMemUsed.png and /dev/null differ diff --git a/pack/1.2.0/ComponentViewerOverview.png b/pack/1.2.0/ComponentViewerOverview.png deleted file mode 100644 index 37cbe87..0000000 Binary files a/pack/1.2.0/ComponentViewerOverview.png and /dev/null differ diff --git a/pack/1.2.0/EventOutput1.png b/pack/1.2.0/EventOutput1.png deleted file mode 100644 index ac9a8a8..0000000 Binary files a/pack/1.2.0/EventOutput1.png and /dev/null differ diff --git a/pack/1.2.0/EventOutput2.png b/pack/1.2.0/EventOutput2.png deleted file mode 100644 index d4d0867..0000000 Binary files a/pack/1.2.0/EventOutput2.png and /dev/null differ diff --git a/pack/1.2.0/EventRecorderFilter.png b/pack/1.2.0/EventRecorderFilter.png deleted file mode 100644 index d9a15d3..0000000 Binary files a/pack/1.2.0/EventRecorderFilter.png and /dev/null differ diff --git a/pack/1.2.0/EventRecorderOverview.png b/pack/1.2.0/EventRecorderOverview.png deleted file mode 100644 index 4aa09e4..0000000 Binary files a/pack/1.2.0/EventRecorderOverview.png and /dev/null differ diff --git a/pack/1.2.0/EventStatistics_w_Energy.png b/pack/1.2.0/EventStatistics_w_Energy.png deleted file mode 100644 index dbc6430..0000000 Binary files a/pack/1.2.0/EventStatistics_w_Energy.png and /dev/null differ diff --git a/pack/1.2.0/EventStatistics_wo_Energy.png b/pack/1.2.0/EventStatistics_wo_Energy.png deleted file mode 100644 index c3245e2..0000000 Binary files a/pack/1.2.0/EventStatistics_wo_Energy.png and /dev/null differ diff --git a/pack/1.2.0/ExampleProjects.html b/pack/1.2.0/ExampleProjects.html deleted file mode 100644 index afc0fcd..0000000 --- a/pack/1.2.0/ExampleProjects.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -CMSIS-View: Examples - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Examples
-
-
-

CMSIS-View provides several example projects that demonstrate the usage of CMSIS-View software components in embedded applications. The projects are available in the Examples/ directory and are also part of the CMSIS-View pack.

- - - - - - - - - -
Example Project Description
EventStatistic Shows the usage of start/stop events for statistical code profiling using Arm Virtual Hardware (AVH) processor simulation.
Fault/VHT_MPS2_Cortex-M7 Shows the usage of the Fault component on a Cortex-M7 Arm Virtual Hardware (AVH) processor simulation.
Fault/B-U585I-IOT02A Shows the usage of the Fault component on a Cortex-M33 with TrustZone. This example runs on STMicroelectronics B-U585I-IOT02A evaluation board.
-

Other examples with CMSIS-View support can be also found in various CMSIS packs with device support, BSP and software components. For example CMSIS-RTX, MDK Middleware and others, or also in GitHub projects at https://github.com/Arm-Examples.

-
-
-
- - - - diff --git a/pack/1.2.0/ExampleProjects.js b/pack/1.2.0/ExampleProjects.js deleted file mode 100644 index d1007ab..0000000 --- a/pack/1.2.0/ExampleProjects.js +++ /dev/null @@ -1,6 +0,0 @@ -var ExampleProjects = -[ - [ "EventStatistic", "scvd_evt_stat.html", null ], - [ "Fault/VHT_MPS2_Cortex-M7", "flt_example_CM7.html", null ], - [ "Fault/B-U585I-IOT02A", "flt_example_CM33.html", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/Fault_CM33_CV_MemManage.png b/pack/1.2.0/Fault_CM33_CV_MemManage.png deleted file mode 100644 index e9af5d7..0000000 Binary files a/pack/1.2.0/Fault_CM33_CV_MemManage.png and /dev/null differ diff --git a/pack/1.2.0/Fault_CM33_CV_NoFault.png b/pack/1.2.0/Fault_CM33_CV_NoFault.png deleted file mode 100644 index 8bdcc7f..0000000 Binary files a/pack/1.2.0/Fault_CM33_CV_NoFault.png and /dev/null differ diff --git a/pack/1.2.0/Fault_CM33_EvR_MemManage.png b/pack/1.2.0/Fault_CM33_EvR_MemManage.png deleted file mode 100644 index 5a2e3c4..0000000 Binary files a/pack/1.2.0/Fault_CM33_EvR_MemManage.png and /dev/null differ diff --git a/pack/1.2.0/Fault_CM33_STDIO_MemManage.png b/pack/1.2.0/Fault_CM33_STDIO_MemManage.png deleted file mode 100644 index e9e0591..0000000 Binary files a/pack/1.2.0/Fault_CM33_STDIO_MemManage.png and /dev/null differ diff --git a/pack/1.2.0/Fault_CM33_UI.png b/pack/1.2.0/Fault_CM33_UI.png deleted file mode 100644 index b22a9de..0000000 Binary files a/pack/1.2.0/Fault_CM33_UI.png and /dev/null differ diff --git a/pack/1.2.0/Fault_CM7_UI.png b/pack/1.2.0/Fault_CM7_UI.png deleted file mode 100644 index 6586bea..0000000 Binary files a/pack/1.2.0/Fault_CM7_UI.png and /dev/null differ diff --git a/pack/1.2.0/Fault_CM7_eventlist_MemManage.png b/pack/1.2.0/Fault_CM7_eventlist_MemManage.png deleted file mode 100644 index d69b9a0..0000000 Binary files a/pack/1.2.0/Fault_CM7_eventlist_MemManage.png and /dev/null differ diff --git a/pack/1.2.0/Fault_STDIO_MemManage.png b/pack/1.2.0/Fault_STDIO_MemManage.png deleted file mode 100644 index 9ae51c3..0000000 Binary files a/pack/1.2.0/Fault_STDIO_MemManage.png and /dev/null differ diff --git a/pack/1.2.0/Fault_create_iram2.png b/pack/1.2.0/Fault_create_iram2.png deleted file mode 100644 index 23df2b2..0000000 Binary files a/pack/1.2.0/Fault_create_iram2.png and /dev/null differ diff --git a/pack/1.2.0/Fault_memory_location.png b/pack/1.2.0/Fault_memory_location.png deleted file mode 100644 index 1acd139..0000000 Binary files a/pack/1.2.0/Fault_memory_location.png and /dev/null differ diff --git a/pack/1.2.0/Fault_set_comp.png b/pack/1.2.0/Fault_set_comp.png deleted file mode 100644 index edac7bf..0000000 Binary files a/pack/1.2.0/Fault_set_comp.png and /dev/null differ diff --git a/pack/1.2.0/Manage_MyTest_SCVD.png b/pack/1.2.0/Manage_MyTest_SCVD.png deleted file mode 100644 index aa68d2f..0000000 Binary files a/pack/1.2.0/Manage_MyTest_SCVD.png and /dev/null differ diff --git a/pack/1.2.0/Manage_SCVD_Files.png b/pack/1.2.0/Manage_SCVD_Files.png deleted file mode 100644 index e46d7da..0000000 Binary files a/pack/1.2.0/Manage_SCVD_Files.png and /dev/null differ diff --git a/pack/1.2.0/SCVDExample.png b/pack/1.2.0/SCVDExample.png deleted file mode 100644 index 631d246..0000000 Binary files a/pack/1.2.0/SCVDExample.png and /dev/null differ diff --git a/pack/1.2.0/SCVD_Format.html b/pack/1.2.0/SCVD_Format.html deleted file mode 100644 index 25058bf..0000000 --- a/pack/1.2.0/SCVD_Format.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - -CMSIS-View: SCVD file format - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
SCVD file format
-
-
-

The SCVD (Software Component View Description) files are formatted in XML and based on the schema file Component_Viewer.xsd.

-

The SCVD file format is described in the following sections:

-
    -
  • XML elements : specifies the structure and top level elements of an SCVD file.
  • -
  • Symbol Access : explains how to refer to application symbols when reading program variables.
  • -
  • Data types : lists available scalar data types used in XML elements and explains how complex data types are defined.
  • -
  • Expressions : describes supported expressions for making calculations in an SCVD file.
  • -
  • Built-in functions : lists built-in functions that can be used for calculating stack memory usage, accessing CPU registers or application program symbols.
  • -
  • Value output : shows how to format output data for display in the Component Viewer or Event Recorder.
  • -
-

-SCVD file validation

-

The schema file Component_Viewer.xsd. specifies the XML format. Use this schema file together with XML tools for validating an *.scvd file.

-

-Using SCVD files in a debugger

-

The following steps explain how to use an *.SCVD file in the µVision Debugger. Other tools might require different steps:

- -

-SCVD files in software packs

-

Software components which are part of Software Packs may add related *.SCVD files directly in the Package Description file (*.pdsc) using the <file> element category other. In the *.pdsc file example below Network.scvd is added to the debugger when the component :Network:Core is selected. For details, refer to CMSIS-Pack - Pack Description (*.PDSC) Format.

-
<component CClass="Network" Cgroup="Core">
-
<files>
-
<file category="library" name="Network/Lib/ARM/Network.lib"/>
-
<file category="other" name="Network/Network.scvd"/>
-
</files>
-
</component>
-


-

-
-
-
- - - - diff --git a/pack/1.2.0/SCVD_Format.js b/pack/1.2.0/SCVD_Format.js deleted file mode 100644 index 1fcf754..0000000 --- a/pack/1.2.0/SCVD_Format.js +++ /dev/null @@ -1,41 +0,0 @@ -var SCVD_Format = -[ - [ "SCVD file validation", "SCVD_Format.html#scvd_validate", null ], - [ "Using SCVD files in a debugger", "SCVD_Format.html#scvd_in_debug", null ], - [ "SCVD files in software packs", "SCVD_Format.html#scvd_in_packs", null ], - [ "XML elements", "xml_elements.html", "xml_elements" ], - [ "Symbol Access", "Symbol_Access.html", null ], - [ "Data types", "data_type.html", [ - [ "Scalar Data Types", "data_type.html#scalar_data_type", null ], - [ "Complex Data Types", "data_type.html#complex_data_type", null ] - ] ], - [ "Expressions", "scvd_expression.html", [ - [ "Operators", "scvd_expression.html#expr_operator", null ], - [ "Numeric Constants", "scvd_expression.html#numeric_constant", null ], - [ "Enumerator Values", "scvd_expression.html#enumerator", null ], - [ "Variables", "scvd_expression.html#expr_variable", null ], - [ "Predefined variables", "scvd_expression.html#predefined_variable", null ] - ] ], - [ "Built-in functions", "builtin_function.html", [ - [ "__CalcMemUsed", "builtin_function.html#__CalcMemUsed", null ], - [ "__FindSymbol", "builtin_function.html#__FindSymbol", null ], - [ "__GetRegVal", "builtin_function.html#__GetRegVal", null ], - [ "__Symbol_exists", "builtin_function.html#__Symbol_exists", null ], - [ "__Offset_of", "builtin_function.html#__Offset_of", null ], - [ "__size_of", "builtin_function.html#__size_of", null ] - ] ], - [ "Value output", "value_output.html", [ - [ "Format Specifiers", "value_output.html#format_specifiers", null ], - [ "Examples", "value_output.html#format_examples", [ - [ "%d, %x, %T format specifier", "value_output.html#d_spec", null ], - [ "%t, %U format specifiers", "value_output.html#t_spec", null ], - [ "%E format specifier", "value_output.html#e_spec", null ], - [ "%C, %S format specifier", "value_output.html#c_spec", null ], - [ "%N format specifier", "value_output.html#n_spec", null ], - [ "%I, %J, %M format specifier", "value_output.html#i_spec", null ], - [ "%% format specifier", "value_output.html#p_spec", null ], - [ "alert and bold output", "value_output.html#alert_bold", null ], - [ "Dynamic output formats", "value_output.html#print_spec", null ] - ] ] - ] ] -]; \ No newline at end of file diff --git a/pack/1.2.0/SelEventRecorder.png b/pack/1.2.0/SelEventRecorder.png deleted file mode 100644 index a0c59fb..0000000 Binary files a/pack/1.2.0/SelEventRecorder.png and /dev/null differ diff --git a/pack/1.2.0/SelSWComp.png b/pack/1.2.0/SelSWComp.png deleted file mode 100644 index f8b8fb6..0000000 Binary files a/pack/1.2.0/SelSWComp.png and /dev/null differ diff --git a/pack/1.2.0/StaticOutput.png b/pack/1.2.0/StaticOutput.png deleted file mode 100644 index eb8c26a..0000000 Binary files a/pack/1.2.0/StaticOutput.png and /dev/null differ diff --git a/pack/1.2.0/Symbol_Access.html b/pack/1.2.0/Symbol_Access.html deleted file mode 100644 index 7596ede..0000000 --- a/pack/1.2.0/Symbol_Access.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - -CMSIS-View: Symbol Access - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Symbol Access
-
-
-

The SCVD interpreter can access symbol information from the user application that is loaded into the debugger. This symbol information is used to:

    -
  • generate address for reading memory content from the target system with the elements read and readlist
  • -
  • map member offsets in the element typedef using the attribute import.
  • -
-

Symbols can be referenced with:

    -
  • test.c/MySymbol - to access a static symbol in a specific file.
  • -
  • MySymbol - to access a public symbol.
  • -
-

This symbol information is used to read the content of static and public variables.

-

The SCVD interpreter supports the scalar and complex data types. Complex data types such as struct and enum are defined using the element typedef. The element read accesses variables or arrays from the target system. The element readlist accesses linked lists or dynamic arrays from the target system.

-

Example:

-

The following example code is an excerpt from the FreeRTOS source code. The CMSIS-RTOS compliant FreeRTOS implementation is available as a Software Pack.

-

C Code:

// Module Device::tasks.c
-
// file private variables
-
...
-
static volatile BaseType_t xSchedulerRunning = pdFALSE;
-
static volatile UBaseType_t uxPendedTicks = ( UBaseType_t ) 0U;
-
static volatile TickType_t xTickCount = ( TickType_t ) 0U;
-
...
-
-
-
// module Device::timers.c
-
...
-
// definition; Value is set in a function.
-
static TaskHandle_t xTimerTaskHandle = NULL;
-
-
// definition; Queue to send commands to the timer service task. Value is set in a function.
-
static QueueHandle_t xTimerQueue = NULL;
-
...
-

.SCVD file XML elements:

<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
<component name="MyFirstComponent" version="0.0.1"/> <!-- name and version of the component -->
-
-
<objects>
-
<object name="FreeRTOS Object">
-
<var name="i" type="uint32_t" value="0"/>
-
<var name="j" type="uint32_t" value="0"/>
-
<var name="sp" type="uint32_t" value="0"/>
-
-
<read name="xSchedulerRunning" type="uint32_t" symbol="tasks.c/xSchedulerRunning"/>
-
<read name="uxPendedTicks" type="uint32_t" symbol="tasks.c/uxPendedTicks"/>
-
<read name="xTickCount" type="uint32_t" symbol="tasks.c/xTickCount"/>
-
-
<read name="xTimerTaskHandle" type="uint32_t" symbol="timers.c/xTimerTaskHandle"/>
-
<read name="xTimerQueue" type="uint32_t" symbol="timers.c/xTimerQueue"/>
-
</object>
-
</objects>
-
-
</component_viewer>
-
-
-
- - - - diff --git a/pack/1.2.0/alert_bold_spec.png b/pack/1.2.0/alert_bold_spec.png deleted file mode 100644 index 5dc94c6..0000000 Binary files a/pack/1.2.0/alert_bold_spec.png and /dev/null differ diff --git a/pack/1.2.0/annotated.html b/pack/1.2.0/annotated.html deleted file mode 100644 index b3cc6fc..0000000 --- a/pack/1.2.0/annotated.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - -CMSIS-View: Data Structures - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Data Structures
-
-
-
Here are the data structures with brief descriptions:
-
-
- - - - diff --git a/pack/1.2.0/bc_s.png b/pack/1.2.0/bc_s.png deleted file mode 100644 index 224b29a..0000000 Binary files a/pack/1.2.0/bc_s.png and /dev/null differ diff --git a/pack/1.2.0/bc_sd.png b/pack/1.2.0/bc_sd.png deleted file mode 100644 index 31ca888..0000000 Binary files a/pack/1.2.0/bc_sd.png and /dev/null differ diff --git a/pack/1.2.0/bdwn.png b/pack/1.2.0/bdwn.png deleted file mode 100644 index 940a0b9..0000000 Binary files a/pack/1.2.0/bdwn.png and /dev/null differ diff --git a/pack/1.2.0/builtin_function.html b/pack/1.2.0/builtin_function.html deleted file mode 100644 index c6b232a..0000000 --- a/pack/1.2.0/builtin_function.html +++ /dev/null @@ -1,452 +0,0 @@ - - - - - - - -CMSIS-View: Built-in functions - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Built-in functions
-
-
-

Read CPU register value.

-

The SCVD interpreter has the following built-in functions for calculation of stack memory usage, access to CPU registers and application program symbols.

- - - - - - - - - - - - - - - -
Function Name Description
__CalcMemUsed Provide memory usage information for stack area in user application program.
__FindSymbol Get address value of a symbol in user application program.
__GetRegVal Read the value of processor register from the target processor.
__Offset_of Get offset of type member defined with the typedef.
__size_of Number of elements of an array defined by a symbol in user application.
__Symbol_exists Check if a specific symbol exists in the user application program.
-

 

-

-__CalcMemUsed

-

Provide memory usage information for stack area in user application program.

-
uint32_t __CalcMemUsed (uint32_t StackAddress, uint32_t StackSize, uint32_t FillPattern, uint32_t MagicValue)
-
Parameters
- - - - - -
StackAddressStart address of memory area
StackSizeSize of memory area in Bytes
FillPatternInitial value of memory area, used to identify memory usage
MagicValueInitial value at start address of memory area, used to identify memory (stack) overflow
-
-
-
Returns
A packed 32-bit integer value that indicates memory usage in bytes, in percent, and memory overflow:
    -
  • Bit 0..19 Used memory in Bytes (how many bytes of FillPattern are overwritten)
  • -
  • Bit 20..28 Used memory in percent (how many percent of FillPattern are overwritten)
  • -
  • Bit 31 Memory overflow (MagicValue is overwritten)
  • -
-
-

The function provides information about the memory usage of a stack area and is typically applied to calculate the utilization of RTOS thread stacks. It assumes that the memory has been filled with a pattern value. Optionally there might be a value (called magic value) at the start of the memory that is used to detect stack overflows.

-

Example 1

-

C source file

uint32_t tstack[200/4]; // 200 bytes stack space
-
-
void StackTest (void) {
-
uint32_t i;
-
-
memset (tstack, 0x8A, sizeof (tstack));
-
tstack[0] = 0xE25A2EA5;
-
for (i=(200/4)-1; i >= 10; i--) {
-
tstack[i] = i;
-
}
-
}
-

*.SCVD file

<?xml version="1.0" encoding="utf-8"?>
-
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
<component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
-
-
<objects>
-
<object name="MyProgram">
-
<var name="StackStart" type="int32_t" value="0" />
-
<var name="StackSize" type="int32_t" value="0" />
-
<var name="StackUsage" type="int32_t" value="0" />
-
-
<calc>
-
StackStart = __FindSymbol ("tstack");
-
StackSize = __size_of ("tstack") * 4;
-
StackUsage = __CalcMemUsed (StackStart, StackSize, 0x8A8A8A8A, 0xE25A2EA5);
-
</calc>
-
-
<out name="MyProgram">
-
<item alert="(StackUsage >> 31)"
-
property="tstack @%x[StackStart] size=%x[StackSize]"
-
value="Usage %x[StackUsage &amp; 0xFFFFF] %d[(StackUsage>>20) &amp; 0xFF]%%" />
-
</out>
-
</object>
-
</objects>
-
</component_viewer>
-

Output

- -
-

Example 2

-

Typical usage with an RTOS thread control block.

-
<component_viewer...>
-
-
<typedefs>
-
<!-- Task/Thread Control Block, debugger reads 52 bytes -->
-
<typedef name="Thread_CB" info="RTOS Task Control Block" size="52">
-
:
-
<member name="Stack" type="uint32_t" offset="44" info="Pointer to Task Stack memory block"/>
-
:
-
<!-- Helper variables for Stack-usage calculation -->
-
<var name="StackSize" type="uint32_t" />
-
<var name="StkUse" type="uint32_t" />
-
<var name="BytesUsed" type="uint32_t" />
-
<var name="Percentage" type="uint32_t" />
-
<var name="StkOverflow" type="int32_t" />
-
<var name="ShowStackInfo" type="int32_t" />
-
</typedef>
-
</typedefs>
-
-
</objects>
-
<object name="Threads">
-
<readlist name="TCB" type="*Thread_CB" symbol="os_TCB" based="1" count="10" init="1" />
-
-
<!-- Stack Usage Calculation when watermark check is enabled (ShowStackInfo) -->
-
<calc cond="TCB[i].ShowStackInfo && ((i != (TCB._count - 1)) && ((stackinfo >> 28) & 0x01))" >
-
StkUse = __CalcMemUsed (TCB[i].Stack, TCB[i].StackSize, 0xCCCCCCCC, 0xE25A2EA5);
-
TCB[i].StkOverflow = (StkUse & 0x80000000) ? 1 : 0;
-
TCB[i].StkUse &= ~0x80000000;
-
TCB[i].BytesUsed = (StkUse & 0xFFFFF);
-
TCB[i].Percentage = (StkUse >> 20) & 0xFF;
-
</calc>
-
</object>
-
</objects>
-
</component_viewer>
-

 

-

-__FindSymbol

-

Get address value of a symbol in the user application program.

-
int32_t __FindSymbol (symbol_name)
-
Parameters
- - -
symbol_nameReference to a symbol (examples: "main", "os_active_TCB", "tasks.c/xSchedulerRunning").
-
-
-
Returns
address value Address of the symbol.
-

The function searches for a symbol and returns the address value of the symbol in the user application.

-
Note
If the symbol cannot be found, then an error in the Component Viewer is displayed.
-

C source file

uint32_t tstack[200/4]; // 200 bytes stack space
-
-
void StackTest (void) {
-
uint32_t i;
-
-
memset (tstack, 0x8A, sizeof (tstack));
-
tstack[0] = 0xE25A2EA5;
-
for (i=(200/4)-1; i >= 10; i--) {
-
tstack[i] = i;
-
}
-
}
-

*.SCVD file

<?xml version="1.0" encoding="utf-8"?>
-
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
<component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
-
-
<objects>
-
<object name="MyProgram">
-
<var name="StackStart" type="int32_t" value="0" />
-
<var name="StackSize" type="int32_t" value="0" />
-
<var name="StackUsage" type="int32_t" value="0" />
-
-
<calc>
-
StackStart = __FindSymbol ("tstack");
-
StackSize = __size_of ("tstack") * 4;
-
StackUsage = __CalcMemUsed (StackStart, StackSize, 0x8A8A8A8A, 0xE25A2EA5);
-
</calc>
-
-
<out name="MyProgram">
-
<item alert="(StackUsage >> 31)"
-
property="tstack @%x[StackStart] size=%x[StackSize]"
-
value="Usage %x[StackUsage &amp; 0xFFFFF] %d[(StackUsage>>20) &amp; 0xFF]%%" />
-
</out>
-
</object>
-
</objects>
-
</component_viewer>
-

Output

- -
-

 

-

-__GetRegVal

-

__GetRegVal | Read the value of processor register from the target processor.

-
uint32_t __GetRegVal (char * RegisterName)
-
Parameters
- - -
RegisterNamePointer to the name of a CPU register: "PSP", "MSP", ....
-
-
-
Returns
Value of the CPU register
-

The function reads the value of a CPU register.

- - - - - - - - - - - - - - - - - - - - - - - - - -
Register Name Description
R0 - R12 General-purpose registers
R13 Stack pointer (SP)
R14 Link Register (LR)
R15 Program Counter (PC)
XPSR Combined Program Status Register
MSP Main Stack Pointer
PSP Process Stack Pointer
BASEPRI Base Priority Mask Register
PRIMASK Exception Mask Register
FAULTMASK Fault Mask Register
CONTROL Control Register
-

Domain specifier x is required on ARMv8-M architecture for some registers to specify Non-Secure (x=NS) or Secure (x=S) access domain. Names of these registers then become as follows:

- - - - - - - - - - - - - - - - - - - -
Register Name Description
MSP_x Main Stack Pointer
PSP_x Process Stack Pointer
MSPLIM_x Main Stack Pointer Limit Register
PSPLIM_x Process Stack Pointer Limit Register
BASEPRI_x Base Priority Mask Register
PRIMASK_x Exception Mask Register
FAULTMASK_x Fault Mask Register
CONTROL_x Control Register
-

Example:

<objects>
-
<object name="CPU Registers">
-
<var name="R0" type="uint32_t" value="0"/>
-
<var name="R1" type="uint32_t" value="0"/>
-
<var name="R2" type="uint32_t" value="0"/>
-
<var name="R3" type="uint32_t" value="0"/>
-
<var name="XPSR" type="uint32_t" value="0"/>
-
-
<!-- ARMv8M registers -->
-
<var name="PSP_NS" type="uint32_t" value="0"/>
-
<var name="PSP_S" type="uint32_t" value="0"/>
-
-
<!-- Read registers -->
-
<calc>
-
R0 = __GetRegVal ("R0");
-
R1 = __GetRegVal ("R1");
-
R2 = __GetRegVal ("R2");
-
R3 = __GetRegVal ("R3");
-
XPSR = __GetRegVal ("XPSR");
-
</calc>
-
-
<calc cond="NonSecure">
-
PSP_NS = __GetRegVal ("PSP_NS");
-
</calc>
-
-
<calc cond="Secure">
-
PSP_S = __GetRegVal ("PSP_S");
-
</calc>
-
-
</object>
-
</objects>
-

-__Symbol_exists

-
int32_t __Symbol_exists (symbol_name)
-

Search for symbol

Parameters
- - -
symbol_nameReference to a symbol (examples: "main", "os_active_TCB", "tasks.c/xSchedulerRunning").
-
-
-
Returns

-
    -
  • 1 for true - symbol present in user application
  • -
  • 0 for false - symbol not found
  • -
-
-

The function searches for a debug symbol in the loaded user application.

-

and returns 1 when the symbol was found, otherwise 0 for false.  

-

-__Offset_of

-
uint32_t __Offset_of (typedef_mem_name)
-

Get offset of type member

Parameters
- - -
typedef_mem_nameIs the member name of a specified type and has the form typedef_name:typedef_member_name.
-
-
-
Returns
The offset value of the specified typedef member.
-

The function returns the offset value of the specified typedef member. When using a <typedef> element with the import attribute, __Offset_of returns for members that are defined in the SCVD file but not present in the compiled image the value -1. The value -1 indicates that a member does not exist in the image.

-

Example:

__Offset_of (Thread_CB:Task_ID)
-

-__size_of

-
int32_t __size_of (symbol_name)
-

Number of elements of an array defined by a symbol in user application

Parameters
- - -
symbol_nameReference to a symbol (examples: "main", "os_active_TCB", "tasks.c/xSchedulerRunning").
-
-
-
Returns
number of elements of an array defined in a user application
-

The function searches for a debug symbol in the loaded user application. If the symbol is found it returns the number of elements of an array that is addressed by this symbol. If the symbol is not found, an error message is displayed.

-

Example:

-

User application code (file MyTest.c):

struct {
-
unsigned char c0;
-
unsigned char c1;
-
unsigned int i;
-
} MyList [20];
-
-
static int MyVar[10];
-

The following statements in the SCVD file output the number of elements of each variable. For 'MyList' the value is 20. The value 20 for 'MyVar' is only displayed when the variable exists.

-
<out name="MyTest">
-
<item property="Elements of 'MyList'" value="%d[__size_of(&quot;MyList&quot;)]"/>
-
<item cond="__Symbol_exists(&quot;MyTest.c/MyVar&quot;)" property="Elements of 'MyVar'" value="%d[__size_of(&quot;MyTest.c/MyVar&quot;)]"/>
-
</out>
-
-
-
- - - - diff --git a/pack/1.2.0/c_spec.png b/pack/1.2.0/c_spec.png deleted file mode 100644 index 0ccd5ec..0000000 Binary files a/pack/1.2.0/c_spec.png and /dev/null differ diff --git a/pack/1.2.0/classes.html b/pack/1.2.0/classes.html deleted file mode 100644 index 28d3a81..0000000 --- a/pack/1.2.0/classes.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - -CMSIS-View: Data Structure Index - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Data Structure Index
-
-
- - -
-
- - - - diff --git a/pack/1.2.0/closed.png b/pack/1.2.0/closed.png deleted file mode 100644 index 98cc2c9..0000000 Binary files a/pack/1.2.0/closed.png and /dev/null differ diff --git a/pack/1.2.0/cmp_viewer.html b/pack/1.2.0/cmp_viewer.html deleted file mode 100644 index e503218..0000000 --- a/pack/1.2.0/cmp_viewer.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - -CMSIS-View: Component Viewer - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Component Viewer
-
-
-

-

-Overview

-

The Component Viewer reads specific memory locations from the target hardware using a standard debug unit that is connected via JTAG or SWD to the CoreSight Debug Access Port (DAP). The address of these memory locations is typically defined by symbols that represent variables, arrays, or starting point of linked lists. The *.SCVD file specifies these symbols and customizes the formatting in the Component Viewer window of the debugger.

-
- -
-Component Viewer displays status variables
-

Component Viewer Usage Example provides instructions on how to enable Component Viewer in a project.

-

Benefits of the Component Viewer:

-
    -
  • Visibility to the static user relevant information of an software component or application program with no additional software overhead in the target application.
  • -
  • The information is obtained via debug symbols from target memory using simple read commands via JTAG or SWD connectivity to a debug adapter.
  • -
  • Debug adapters that support hot plugging allow to show the current status of the application software in case of failures.
  • -
-

-Component Viewer Usage Example

-

The following steps enable views for static information of software components in the µVision debugger. Other tools might use different ways to accomplish this.

-

For User Code:

-
    -
  1. Create an SCVD file to display Static Component Information.
  2. -
  3. Add the SCVD file to µVision as described in Manage Component Viewer Description Files.
  4. -
  5. Use the µVision debugger windows as described in Component Viewer.
  6. -
-

For Pre-annotated software components:

-

The software packs for MDK-Middleware, CMSIS, and CMSIS-FreeRTOS already contain the relevant *.SCVD files.

- -

For examples on how to write SCVD files, refer to the Examples section.

-

-Static Component Information

-

The *.SCVD file can be used to format static information of the application using the /component_viewer/objects.

-

Example code that is stored in the file MyTest.c (the file name is important for static variables).

-
static int some_error = 1;
-
char string[10] = "MyTest";
-

The following MyTest.scvd file reads static program information from the variables in the above code snippet:

-
<?xml version="1.0" encoding="utf-8"?>
-
-
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
<component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
-
-
<objects>
-
<object name="MyProgram">
-
<read name="error_val" type="int32_t" symbol="MyTest.c/some_error" />
-
<read name="string_val" type="int8_t" symbol="string" size="10" />
-
<out name="MyProgram">
-
<item property="some_error" value="%d[error_val]" />
-
<item property="string" value="%t[string_val]" />
-
</out>
-
</object>
-
</objects>
-
-
</component_viewer>
-

Adding the file in the µVision debugger

-

In the µVision debugger, this *.SCVD file is specified in the dialog Options for Target -> Debug -> Manage Component Viewer Description Files. Click on Add Component Viewer Description File and add the related *.SCVD file.

-
- -
-Manage *.SCVD files
-

Using the SCVD file, µVision debugger shows static information about the program. The related view opens with View - Watch Windows - MyProgram.

-
- -
-Formatted Event Recorder output
-
-
-
- - - - diff --git a/pack/1.2.0/cmsis_logo_white_small.png b/pack/1.2.0/cmsis_logo_white_small.png deleted file mode 100644 index 0f3d64f..0000000 Binary files a/pack/1.2.0/cmsis_logo_white_small.png and /dev/null differ diff --git a/pack/1.2.0/config_wizard.png b/pack/1.2.0/config_wizard.png deleted file mode 100644 index c4f3b3d..0000000 Binary files a/pack/1.2.0/config_wizard.png and /dev/null differ diff --git a/pack/1.2.0/create_iram2.png b/pack/1.2.0/create_iram2.png deleted file mode 100644 index 90c6e52..0000000 Binary files a/pack/1.2.0/create_iram2.png and /dev/null differ diff --git a/pack/1.2.0/d_spec.png b/pack/1.2.0/d_spec.png deleted file mode 100644 index d93966b..0000000 Binary files a/pack/1.2.0/d_spec.png and /dev/null differ diff --git a/pack/1.2.0/darkmode_toggle.js b/pack/1.2.0/darkmode_toggle.js deleted file mode 100644 index b2bd94f..0000000 --- a/pack/1.2.0/darkmode_toggle.js +++ /dev/null @@ -1,281 +0,0 @@ -/** - -The code below is based on the Doxygen Awesome project with some minor modifications -https://github.com/jothepro/doxygen-awesome-css - -MIT License - -Copyright (c) 2021 - 2022 jothepro - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -*/ - -class DarkModeToggle extends HTMLElement { - static icon = '' - static icond = '' - static title = "Toggle Light/Dark Mode" - - static prefersLightModeInDarkModeKey = "prefers-light-mode-in-dark-mode" - static prefersDarkModeInLightModeKey = "prefers-dark-mode-in-light-mode" - - static _staticConstructor = function() { - DarkModeToggle.enableDarkMode(DarkModeToggle.userPreference) - // Update the color scheme when the browsers preference changes - // without user interaction on the website. - window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { - DarkModeToggle.onSystemPreferenceChanged() - }) - // Update the color scheme when the tab is made visible again. - // It is possible that the appearance was changed in another tab - // while this tab was in the background. - document.addEventListener("visibilitychange", visibilityState => { - if (document.visibilityState === 'visible') { - DarkModeToggle.onSystemPreferenceChanged() - } - }); - }() - - static addButton() { - - var tbuttons = document.getElementsByTagName("dark-mode-toggle"); - var toggleButton; - var titleArea = document.getElementById("titlearea"); - var searchBox = document.getElementById("MSearchBox"); - var mainMenu = document.getElementById("main-menu"); - var navRow1 = document.getElementById("navrow1"); - var mainMenuVisible = false; - if (!tbuttons.length){ - toggleButton = document.createElement('dark-mode-toggle') - toggleButton.title = DarkModeToggle.title - } else {toggleButton=tbuttons[0]} - - - if (DarkModeToggle.darkModeEnabled){ - toggleButton.innerHTML=DarkModeToggle.icond - } else { - toggleButton.innerHTML=DarkModeToggle.icon - } - - if (mainMenu) { - var menuStyle = window.getComputedStyle(mainMenu); - mainMenuVisible = menuStyle.display!=='none' - } - var searchBoxPos1 = document.getElementById("searchBoxPos1"); - if (searchBox) { // (1) search box visible - searchBox.parentNode.appendChild(toggleButton) - } else if (navRow1) { // (2) no search box, static menu bar - var li = document.createElement('li'); - li.style = 'float: right;' - li.appendChild(toggleButton); - toggleButton.style = 'width: 24px; height: 25px; padding-top: 11px; float: right;'; - var row = document.querySelector('#navrow1 > ul:first-of-type'); - row.appendChild(li) - } else if (mainMenu && mainMenuVisible) { // (3) no search box + dynamic menu bar expanded - var li = document.createElement('li'); - li.style = 'float: right;' - li.appendChild(toggleButton); - toggleButton.style = 'width: 14px; height: 36px; padding-top: 10px; float: right;'; - mainMenu.appendChild(li) - } else if (searchBoxPos1) { // (4) no search box + dynamic menu bar collapsed - toggleButton.style = 'width: 24px; height: 36px; padding-top: 10px; float: right;'; - searchBoxPos1.style = 'top: 0px;' - searchBoxPos1.appendChild(toggleButton); - } else if (titleArea) { // (5) no search box and no navigation tabs - toggleButton.style = 'width: 24px; height: 24px; position: absolute; right: 0px; top: 34px;'; - titleArea.append(toggleButton); - } - } - - static init() { - $(function() { - $(document).ready(function() { - - $(document).ready(function(){ - DarkModeToggle.addButton(); - }) - $(window).resize(function(){ - DarkModeToggle.addButton(); - }) - DarkModeToggle.setDarkModeVisibility(DarkModeToggle.darkModeEnabled) - }) - }) - } - - constructor() { - super(); - this.onclick=this.toggleDarkMode - } - - - static createCookie(name, value, days) { - if (days) { - var date = new Date(); - date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); - var expires = "; expires=" + date.toGMTString(); - } - else var expires = ""; - - document.cookie = name + "=" + value + expires + "; path=/"; - } - - static readCookie(name) { - var nameEQ = name + "="; - var ca = document.cookie.split(';'); - for (var i = 0; i < ca.length; i++) { - var c = ca[i]; - while (c.charAt(0) == ' ') c = c.substring(1, c.length); - if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); - } - return null; - } - - static eraseCookie(name) { - DarkModeToggle.createCookie(name, "", -1); - } - - /** - * @returns `true` for dark-mode, `false` for light-mode system preference - */ - static get systemPreference() { - return window.matchMedia('(prefers-color-scheme: dark)').matches - } - - static get prefersDarkModeInLightMode() { - if (window.chrome) { // Chrome supports localStorage in combination with file:// but not cookies - return localStorage.getItem(DarkModeToggle.prefersDarkModeInLightModeKey) - } else { // Other browsers support cookies in combination with file:// but not localStorage - return DarkModeToggle.readCookie('doxygen_prefers_dark')=='1' - } - } - - static set prefersDarkModeInLightMode(preference) { - if (window.chrome) { - if (preference) { - localStorage.setItem(DarkModeToggle.prefersDarkModeInLightModeKey, true) - } else { - localStorage.removeItem(DarkModeToggle.prefersDarkModeInLightModeKey) - } - } else { - if (preference) { - DarkModeToggle.createCookie('doxygen_prefers_dark','1',365) - } else { - DarkModeToggle.eraseCookie('doxygen_prefers_dark') - } - } - } - - static get prefersLightModeInDarkMode() { - if (window.chrome) { // Chrome supports localStorage in combination with file:// but not cookies - return localStorage.getItem(DarkModeToggle.prefersLightModeInDarkModeKey) - } else { // Other browsers support cookies in combination with file:// but not localStorage - return DarkModeToggle.readCookie('doxygen_prefers_light')=='1' - } - } - - static set prefersLightModeInDarkMode(preference) { - if (window.chrome) { - if (preference) { - localStorage.setItem(DarkModeToggle.prefersLightModeInDarkModeKey, true) - } else { - localStorage.removeItem(DarkModeToggle.prefersLightModeInDarkModeKey) - } - } else { - if (preference) { - DarkModeToggle.createCookie('doxygen_prefers_light','1',365) - } else { - DarkModeToggle.eraseCookie('doxygen_prefers_light') - } - } - } - - - /** - * @returns `true` for dark-mode, `false` for light-mode user preference - */ - static get userPreference() { - return (!DarkModeToggle.systemPreference && DarkModeToggle.prefersDarkModeInLightMode) || - (DarkModeToggle.systemPreference && !DarkModeToggle.prefersLightModeInDarkMode) - } - - static set userPreference(userPreference) { - DarkModeToggle.darkModeEnabled = userPreference - if (!userPreference) { - if (DarkModeToggle.systemPreference) { - DarkModeToggle.prefersLightModeInDarkMode = true - } else { - DarkModeToggle.prefersDarkModeInLightMode = false - } - } else { - if (!DarkModeToggle.systemPreference) { - DarkModeToggle.prefersDarkModeInLightMode = true - } else { - DarkModeToggle.prefersLightModeInDarkMode = false - } - } - DarkModeToggle.onUserPreferenceChanged() - } - - static setDarkModeVisibility(enable) { - var darkModeStyle, lightModeStyle; - if(enable) { - darkModeStyle = 'inline-block'; - lightModeStyle = 'none' - } else { - darkModeStyle = 'none'; - lightModeStyle = 'inline-block' - } - document.querySelectorAll('.dark-mode-visible').forEach(function(el) { - el.style.display = darkModeStyle; - }); - document.querySelectorAll('.light-mode-visible').forEach(function(el) { - el.style.display = lightModeStyle; - }); - } - static enableDarkMode(enable) { - if(enable) { - DarkModeToggle.darkModeEnabled = true - document.documentElement.classList.add("dark-mode") - document.documentElement.classList.remove("light-mode") - } else { - DarkModeToggle.darkModeEnabled = false - document.documentElement.classList.remove("dark-mode") - document.documentElement.classList.add("light-mode") - } - DarkModeToggle.setDarkModeVisibility(enable) - } - - static onSystemPreferenceChanged() { - DarkModeToggle.darkModeEnabled = DarkModeToggle.userPreference - DarkModeToggle.enableDarkMode(DarkModeToggle.darkModeEnabled) - } - - static onUserPreferenceChanged() { - DarkModeToggle.enableDarkMode(DarkModeToggle.darkModeEnabled) - } - - toggleDarkMode() { - DarkModeToggle.userPreference = !DarkModeToggle.userPreference - DarkModeToggle.addButton(); - } -} - -customElements.define("dark-mode-toggle", DarkModeToggle); - -DarkModeToggle.init(); diff --git a/pack/1.2.0/data_type.html b/pack/1.2.0/data_type.html deleted file mode 100644 index 7f9aa61..0000000 --- a/pack/1.2.0/data_type.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - -CMSIS-View: Data types - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Data types
-
-
-

-Scalar Data Types

-

The following scalar data types are supported and can be used in read, typedef, and var elements. read and var also support arrays based on scalar data types.

-

Table with supported scalar types:

- - - - - - - - - - - - - - - - - - - - - - - -
Data Type Description
uint8_t unsigned char (8-bit)
int8_t signed char (8-bit)
uint16_t unsigned short (16-bit)
int16_t signed short (16-bit)
uint32_t unsigned int (32-bit)
int32_t signed int (32-bit)
uint64_t unsigned long long (64-bit)
int64_t signed long long (64-bit)
float single precision floating number (32-bit)
double double precision floating number (64-bit)
-

Code Example

<read name="main" type="uint8_t" symbol="main" size="64" const="1" />
-
<var name="ObjSum" type="uint32_t" value="0" />
-
<var name="i" type="int32_t" value="0" /> <!-- helper -->
-
-
<!-- sum up object code bytes starting from main() with the given size in <read main>: -->
-
<list name="i" start="0" limit="main._count" >
-
<calc>
-
ObjSum += main[i];
-
</calc>
-
</list>
-

-Complex Data Types

-

Complex data types are defined using a typedef element and can be used in read, readlist, and var elements.

-

var and read define a single variable or array based on a data type.

-

readlist defines a list of variables or arrays. The first instance of <readlist name="var"> will define 'var', the following use of <readlist name="var"> will use the definition.

-
-
-
- - - - diff --git a/pack/1.2.0/dir_2c357711a170e63cbdb32a9298395404.html b/pack/1.2.0/dir_2c357711a170e63cbdb32a9298395404.html deleted file mode 100644 index 712288e..0000000 --- a/pack/1.2.0/dir_2c357711a170e63cbdb32a9298395404.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - -CMSIS-View: src Directory Reference - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
src Directory Reference
-
-
-
-
- - - - diff --git a/pack/1.2.0/dir_9824467afefc04d26edffcedda92bdb9.html b/pack/1.2.0/dir_9824467afefc04d26edffcedda92bdb9.html deleted file mode 100644 index 4dd37c8..0000000 --- a/pack/1.2.0/dir_9824467afefc04d26edffcedda92bdb9.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - -CMSIS-View: Fault Directory Reference - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Fault Directory Reference
-
-
- - - - -

-Directories

directory  Include
 
-
-
- - - - diff --git a/pack/1.2.0/dir_9b360dd713cb69f97d132f7023f0533f.html b/pack/1.2.0/dir_9b360dd713cb69f97d132f7023f0533f.html deleted file mode 100644 index b9a5815..0000000 --- a/pack/1.2.0/dir_9b360dd713cb69f97d132f7023f0533f.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - -CMSIS-View: Config Directory Reference - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Config Directory Reference
-
-
-
-
- - - - diff --git a/pack/1.2.0/dir_9d55212ec500507f31c8f7960ba38f00.html b/pack/1.2.0/dir_9d55212ec500507f31c8f7960ba38f00.html deleted file mode 100644 index a36a3e2..0000000 --- a/pack/1.2.0/dir_9d55212ec500507f31c8f7960ba38f00.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - -CMSIS-View: Include Directory Reference - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Include Directory Reference
-
-
-
-
- - - - diff --git a/pack/1.2.0/dir_c13aaecf39f1b45fd07fdc13d1567e11.html b/pack/1.2.0/dir_c13aaecf39f1b45fd07fdc13d1567e11.html deleted file mode 100644 index 7d52d00..0000000 --- a/pack/1.2.0/dir_c13aaecf39f1b45fd07fdc13d1567e11.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - -CMSIS-View: EventRecorder Directory Reference - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
EventRecorder Directory Reference
-
-
- - - - - - -

-Directories

directory  Config
 
directory  Include
 
-
-
- - - - diff --git a/pack/1.2.0/dir_ef86cccbee7b98f94fd45fb92584910b.html b/pack/1.2.0/dir_ef86cccbee7b98f94fd45fb92584910b.html deleted file mode 100644 index 2aad6d1..0000000 --- a/pack/1.2.0/dir_ef86cccbee7b98f94fd45fb92584910b.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - -CMSIS-View: Include Directory Reference - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
- -
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Include Directory Reference
-
-
-
-
- - - - diff --git a/pack/1.2.0/doc.png b/pack/1.2.0/doc.png deleted file mode 100644 index 17edabf..0000000 Binary files a/pack/1.2.0/doc.png and /dev/null differ diff --git a/pack/1.2.0/docd.png b/pack/1.2.0/docd.png deleted file mode 100644 index d7c94fd..0000000 Binary files a/pack/1.2.0/docd.png and /dev/null differ diff --git a/pack/1.2.0/doxygen.css b/pack/1.2.0/doxygen.css deleted file mode 100644 index 1402220..0000000 --- a/pack/1.2.0/doxygen.css +++ /dev/null @@ -1,1987 +0,0 @@ -/* The standard CSS for doxygen 1.9.6*/ - -html { -/* page base colors */ ---page-background-color: white; ---page-foreground-color: black; ---page-link-color: #3D578C; ---page-visited-link-color: #4665A2; - -/* index */ ---index-odd-item-bg-color: #F8F9FC; ---index-even-item-bg-color: white; ---index-header-color: black; ---index-separator-color: #A0A0A0; - -/* header */ ---header-background-color: #F9FAFC; ---header-separator-color: #C4CFE5; ---header-gradient-image: url('nav_h.png'); ---group-header-separator-color: #879ECB; ---group-header-color: #354C7B; ---inherit-header-color: gray; - ---footer-foreground-color: #2A3D61; ---footer-logo-width: 104px; ---citation-label-color: #334975; ---glow-color: cyan; - ---title-background-color: white; ---title-separator-color: #5373B4; ---directory-separator-color: #9CAFD4; ---separator-color: #4A6AAA; - ---blockquote-background-color: #F7F8FB; ---blockquote-border-color: #9CAFD4; - ---scrollbar-thumb-color: #9CAFD4; ---scrollbar-background-color: #F9FAFC; - ---icon-background-color: #728DC1; ---icon-foreground-color: white; ---icon-doc-image: url('doc.png'); - -/* brief member declaration list */ ---memdecl-background-color: #F9FAFC; ---memdecl-separator-color: #DEE4F0; ---memdecl-foreground-color: #555; ---memdecl-template-color: #4665A2; - -/* detailed member list */ ---memdef-border-color: #A8B8D9; ---memdef-title-background-color: #E2E8F2; ---memdef-title-gradient-image: url('nav_f.png'); ---memdef-proto-background-color: #DFE5F1; ---memdef-proto-text-color: #253555; ---memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); ---memdef-doc-background-color: white; ---memdef-param-name-color: #602020; ---memdef-template-color: #4665A2; - -/* tables */ ---table-cell-border-color: #2D4068; ---table-header-background-color: #374F7F; ---table-header-foreground-color: #FFFFFF; - -/* labels */ ---label-background-color: #728DC1; ---label-left-top-border-color: #5373B4; ---label-right-bottom-border-color: #C4CFE5; ---label-foreground-color: white; - -/** navigation bar/tree/menu */ ---nav-background-color: #F9FAFC; ---nav-foreground-color: #364D7C; ---nav-gradient-image: url('tab_b.png'); ---nav-gradient-hover-image: url('tab_h.png'); ---nav-gradient-active-image: url('tab_a.png'); ---nav-gradient-active-image-parent: url("../tab_a.png"); ---nav-separator-image: url('tab_s.png'); ---nav-breadcrumb-image: url('bc_s.png'); ---nav-breadcrumb-border-color: #C2CDE4; ---nav-splitbar-image: url('splitbar.png'); ---nav-font-size-level1: 13px; ---nav-font-size-level2: 10px; ---nav-font-size-level3: 9px; ---nav-text-normal-color: #283A5D; ---nav-text-hover-color: white; ---nav-text-active-color: white; ---nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); ---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-menu-button-color: #364D7C; ---nav-menu-background-color: white; ---nav-menu-foreground-color: #555555; ---nav-menu-toggle-color: rgba(255, 255, 255, 0.5); ---nav-arrow-color: #9CAFD4; ---nav-arrow-selected-color: #9CAFD4; - -/* table of contents */ ---toc-background-color: #F4F6FA; ---toc-border-color: #D8DFEE; ---toc-header-color: #4665A2; - -/** search field */ ---search-background-color: white; ---search-foreground-color: #909090; ---search-magnification-image: url('mag.svg'); ---search-magnification-select-image: url('mag_sel.svg'); ---search-active-color: black; ---search-filter-background-color: #F9FAFC; ---search-filter-foreground-color: black; ---search-filter-border-color: #90A5CE; ---search-filter-highlight-text-color: white; ---search-filter-highlight-bg-color: #3D578C; ---search-results-foreground-color: #425E97; ---search-results-background-color: #EEF1F7; ---search-results-border-color: black; ---search-box-shadow: inset 0.5px 0.5px 3px 0px #555; - -/** code fragments */ ---code-keyword-color: #008000; ---code-type-keyword-color: #604020; ---code-flow-keyword-color: #E08000; ---code-comment-color: #800000; ---code-preprocessor-color: #806020; ---code-string-literal-color: #002080; ---code-char-literal-color: #008080; ---code-vhdl-digit-color: #FF00FF; ---code-vhdl-char-color: #000000; ---code-vhdl-keyword-color: #700070; ---code-vhdl-logic-color: #FF0000; ---code-link-color: #4665A2; ---code-external-link-color: #4665A2; ---fragment-foreground-color: black; ---fragment-background-color: #FBFCFD; ---fragment-border-color: #C4CFE5; ---fragment-lineno-border-color: #00FF00; ---fragment-lineno-background-color: #E8E8E8; ---fragment-lineno-foreground-color: black; ---fragment-lineno-link-fg-color: #4665A2; ---fragment-lineno-link-bg-color: #D8D8D8; ---fragment-lineno-link-hover-fg-color: #4665A2; ---fragment-lineno-link-hover-bg-color: #C8C8C8; ---tooltip-foreground-color: black; ---tooltip-background-color: white; ---tooltip-border-color: gray; ---tooltip-doc-color: grey; ---tooltip-declaration-color: #006318; ---tooltip-link-color: #4665A2; ---tooltip-shadow: 1px 1px 7px gray; - -/** font-family */ ---font-family-normal: Roboto,sans-serif; ---font-family-monospace: monospace,fixed; ---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: Tahoma,Arial,sans-serif; ---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; ---font-family-search: Arial,Verdana,sans-serif; ---font-family-icon: Arial,Helvetica; ---font-family-tooltip: Roboto,sans-serif; - -} - -html.dark-mode { -/* page base colors */ ---page-background-color: black; ---page-foreground-color: #C9D1D9; ---page-link-color: #90A5CE; ---page-visited-link-color: #A3B4D7; - -/* index */ ---index-odd-item-bg-color: #0B101A; ---index-even-item-bg-color: black; ---index-header-color: #C4CFE5; ---index-separator-color: #334975; - -/* header */ ---header-background-color: #070B11; ---header-separator-color: #141C2E; ---header-gradient-image: url('nav_hd.png'); ---group-header-separator-color: #283A5D; ---group-header-color: #90A5CE; ---inherit-header-color: #A0A0A0; - ---footer-foreground-color: #5B7AB7; ---footer-logo-width: 60px; ---citation-label-color: #90A5CE; ---glow-color: cyan; - ---title-background-color: #090D16; ---title-separator-color: #354C79; ---directory-separator-color: #283A5D; ---separator-color: #283A5D; - ---blockquote-background-color: #101826; ---blockquote-border-color: #283A5D; - ---scrollbar-thumb-color: #283A5D; ---scrollbar-background-color: #070B11; - ---icon-background-color: #334975; ---icon-foreground-color: #C4CFE5; ---icon-doc-image: url('docd.png'); - -/* brief member declaration list */ ---memdecl-background-color: #0B101A; ---memdecl-separator-color: #2C3F65; ---memdecl-foreground-color: #BBB; ---memdecl-template-color: #7C95C6; - -/* detailed member list */ ---memdef-border-color: #233250; ---memdef-title-background-color: #1B2840; ---memdef-title-gradient-image: url('nav_fd.png'); ---memdef-proto-background-color: #19243A; ---memdef-proto-text-color: #9DB0D4; ---memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); ---memdef-doc-background-color: black; ---memdef-param-name-color: #D28757; ---memdef-template-color: #7C95C6; - -/* tables */ ---table-cell-border-color: #283A5D; ---table-header-background-color: #283A5D; ---table-header-foreground-color: #C4CFE5; - -/* labels */ ---label-background-color: #354C7B; ---label-left-top-border-color: #4665A2; ---label-right-bottom-border-color: #283A5D; ---label-foreground-color: #CCCCCC; - -/** navigation bar/tree/menu */ ---nav-background-color: #101826; ---nav-foreground-color: #364D7C; ---nav-gradient-image: url('tab_bd.png'); ---nav-gradient-hover-image: url('tab_hd.png'); ---nav-gradient-active-image: url('tab_ad.png'); ---nav-gradient-active-image-parent: url("../tab_ad.png"); ---nav-separator-image: url('tab_sd.png'); ---nav-breadcrumb-image: url('bc_sd.png'); ---nav-breadcrumb-border-color: #2A3D61; ---nav-splitbar-image: url('splitbard.png'); ---nav-font-size-level1: 13px; ---nav-font-size-level2: 10px; ---nav-font-size-level3: 9px; ---nav-text-normal-color: #B6C4DF; ---nav-text-hover-color: #DCE2EF; ---nav-text-active-color: #DCE2EF; ---nav-text-normal-shadow: 0px 1px 1px black; ---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-menu-button-color: #B6C4DF; ---nav-menu-background-color: #05070C; ---nav-menu-foreground-color: #BBBBBB; ---nav-menu-toggle-color: rgba(255, 255, 255, 0.2); ---nav-arrow-color: #334975; ---nav-arrow-selected-color: #90A5CE; - -/* table of contents */ ---toc-background-color: #151E30; ---toc-border-color: #202E4A; ---toc-header-color: #A3B4D7; - -/** search field */ ---search-background-color: black; ---search-foreground-color: #C5C5C5; ---search-magnification-image: url('mag_d.svg'); ---search-magnification-select-image: url('mag_seld.svg'); ---search-active-color: #C5C5C5; ---search-filter-background-color: #101826; ---search-filter-foreground-color: #90A5CE; ---search-filter-border-color: #7C95C6; ---search-filter-highlight-text-color: #BCC9E2; ---search-filter-highlight-bg-color: #283A5D; ---search-results-background-color: #101826; ---search-results-foreground-color: #90A5CE; ---search-results-border-color: #7C95C6; ---search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; - -/** code fragments */ ---code-keyword-color: #CC99CD; ---code-type-keyword-color: #AB99CD; ---code-flow-keyword-color: #E08000; ---code-comment-color: #717790; ---code-preprocessor-color: #65CABE; ---code-string-literal-color: #7EC699; ---code-char-literal-color: #00E0F0; ---code-vhdl-digit-color: #FF00FF; ---code-vhdl-char-color: #000000; ---code-vhdl-keyword-color: #700070; ---code-vhdl-logic-color: #FF0000; ---code-link-color: #79C0FF; ---code-external-link-color: #79C0FF; ---fragment-foreground-color: #C9D1D9; ---fragment-background-color: black; ---fragment-border-color: #30363D; ---fragment-lineno-border-color: #30363D; ---fragment-lineno-background-color: black; ---fragment-lineno-foreground-color: #6E7681; ---fragment-lineno-link-fg-color: #6E7681; ---fragment-lineno-link-bg-color: #303030; ---fragment-lineno-link-hover-fg-color: #8E96A1; ---fragment-lineno-link-hover-bg-color: #505050; ---tooltip-foreground-color: #C9D1D9; ---tooltip-background-color: #202020; ---tooltip-border-color: #C9D1D9; ---tooltip-doc-color: #D9E1E9; ---tooltip-declaration-color: #20C348; ---tooltip-link-color: #79C0FF; ---tooltip-shadow: none; - -/** font-family */ ---font-family-normal: Roboto,sans-serif; ---font-family-monospace: monospace,fixed; ---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: Tahoma,Arial,sans-serif; ---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; ---font-family-search: Arial,Verdana,sans-serif; ---font-family-icon: Arial,Helvetica; ---font-family-tooltip: Roboto,sans-serif; - -} - -body { - background-color: var(--page-background-color); - color: var(--page-foreground-color); -} - -body, table, div, p, dl { - font-weight: 400; - font-size: 14px; - font-family: var(--font-family-normal); - line-height: 22px; -} - -/* @group Heading Levels */ - -.title { - font-weight: 400; - font-size: 14px; - font-family: var(--font-family-normal); - line-height: 28px; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h1.groupheader { - font-size: 150%; -} - -h2.groupheader { - border-bottom: 1px solid var(--group-header-separator-color); - color: var(--group-header-color); - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px var(--glow-color); -} - -dt { - font-weight: bold; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.navtab { - padding-right: 15px; - text-align: right; - line-height: 110%; -} - -div.navtab table { - border-spacing: 0; -} - -td.navtab { - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL { - background-image: var(--nav-gradient-active-image); - background-repeat:repeat-x; - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: var(--nav-text-hover-color); - text-shadow: var(--nav-text-hover-shadow); -} - -a.navtab { - font-weight: bold; -} - -div.qindex{ - text-align: center; - width: 100%; - line-height: 140%; - font-size: 130%; - color: var(--index-separator-color); -} - -dt.alphachar{ - font-size: 180%; - font-weight: bold; -} - -.alphachar a{ - color: var(--index-header-color); -} - -.alphachar a:hover, .alphachar a:visited{ - text-decoration: none; -} - -.classindex dl { - padding: 25px; - column-count:1 -} - -.classindex dd { - display:inline-block; - margin-left: 50px; - width: 90%; - line-height: 1.15em; -} - -.classindex dl.even { - background-color: var(--index-even-item-bg-color); -} - -.classindex dl.odd { - background-color: var(--index-odd-item-bg-color); -} - -@media(min-width: 1120px) { - .classindex dl { - column-count:2 - } -} - -@media(min-width: 1320px) { - .classindex dl { - column-count:3 - } -} - - -/* @group Link Styling */ - -a { - color: var(--page-link-color); - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: var(--page-visited-link-color); -} - -a:hover { - text-decoration: underline; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: var(--code-link-color); -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: var(--code-external-link-color); -} - -a.code.hl_class { /* style for links to class names in code snippets */ } -a.code.hl_struct { /* style for links to struct names in code snippets */ } -a.code.hl_union { /* style for links to union names in code snippets */ } -a.code.hl_interface { /* style for links to interface names in code snippets */ } -a.code.hl_protocol { /* style for links to protocol names in code snippets */ } -a.code.hl_category { /* style for links to category names in code snippets */ } -a.code.hl_exception { /* style for links to exception names in code snippets */ } -a.code.hl_service { /* style for links to service names in code snippets */ } -a.code.hl_singleton { /* style for links to singleton names in code snippets */ } -a.code.hl_concept { /* style for links to concept names in code snippets */ } -a.code.hl_namespace { /* style for links to namespace names in code snippets */ } -a.code.hl_package { /* style for links to package names in code snippets */ } -a.code.hl_define { /* style for links to macro names in code snippets */ } -a.code.hl_function { /* style for links to function names in code snippets */ } -a.code.hl_variable { /* style for links to variable names in code snippets */ } -a.code.hl_typedef { /* style for links to typedef names in code snippets */ } -a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } -a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } -a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } -a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } -a.code.hl_friend { /* style for links to friend names in code snippets */ } -a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } -a.code.hl_property { /* style for links to property names in code snippets */ } -a.code.hl_event { /* style for links to event names in code snippets */ } -a.code.hl_sequence { /* style for links to sequence names in code snippets */ } -a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: visible; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; - list-style-type: none; -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid var(--fragment-border-color); - background-color: var(--fragment-background-color); - color: var(--fragment-foreground-color); - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: var(--font-family-monospace); - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - color: var(--fragment-foreground-color); - background-color: var(--fragment-background-color); - border: 1px solid var(--fragment-border-color); -} - -div.line { - font-family: var(--font-family-monospace); - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: var(--glow-color); - box-shadow: 0 0 10px var(--glow-color); -} - - -span.lineno { - padding-right: 4px; - margin-right: 9px; - text-align: right; - border-right: 2px solid var(--fragment-lineno-border-color); - color: var(--fragment-lineno-foreground-color); - background-color: var(--fragment-lineno-background-color); - white-space: pre; -} -span.lineno a, span.lineno a:visited { - color: var(--fragment-lineno-link-fg-color); - background-color: var(--fragment-lineno-link-bg-color); -} - -span.lineno a:hover { - color: var(--fragment-lineno-link-hover-fg-color); - background-color: var(--fragment-lineno-link-hover-bg-color); -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - color: var(--page-foreground-color); - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -p.formulaDsp { - text-align: center; -} - -img.dark-mode-visible { - display: none; -} -img.light-mode-visible { - display: none; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; - width: var(--footer-logo-width); -} - -.compoundTemplParams { - color: var(--memdecl-template-color); - font-size: 80%; - line-height: 120%; -} - -/* @group Code Colorization */ - -span.keyword { - color: var(--code-keyword-color); -} - -span.keywordtype { - color: var(--code-type-keyword-color); -} - -span.keywordflow { - color: var(--code-flow-keyword-color); -} - -span.comment { - color: var(--code-comment-color); -} - -span.preprocessor { - color: var(--code-preprocessor-color); -} - -span.stringliteral { - color: var(--code-string-literal-color); -} - -span.charliteral { - color: var(--code-char-literal-color); -} - -span.vhdldigit { - color: var(--code-vhdl-digit-color); -} - -span.vhdlchar { - color: var(--code-vhdl-char-color); -} - -span.vhdlkeyword { - color: var(--code-vhdl-keyword-color); -} - -span.vhdllogic { - color: var(--code-vhdl-logic-color); -} - -blockquote { - background-color: var(--blockquote-background-color); - border-left: 2px solid var(--blockquote-border-color); - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -/* @end */ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid var(--table-cell-border-color); -} - -th.dirtab { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid var(--separator-color); -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: var(--glow-color); - box-shadow: 0 0 15px var(--glow-color); -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: var(--memdecl-background-color); - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: var(--memdecl-foreground-color); -} - -.memSeparator { - border-bottom: 1px solid var(--memdecl-separator-color); - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: var(--memdecl-template-color); - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: var(--memdef-title-gradient-image); - background-repeat: repeat-x; - background-color: var(--memdef-title-background-color); - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: var(--memdef-template-color); - font-weight: normal; - margin-left: 9px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px var(--glow-color); -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 0px 6px 0px; - color: var(--memdef-proto-text-color); - font-weight: bold; - text-shadow: var(--memdef-proto-text-shadow); - background-color: var(--memdef-proto-background-color); - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; -} - -.overload { - font-family: var(--font-family-monospace); - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 10px 2px 10px; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: var(--memdef-doc-background-color); - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: var(--memdef-param-name-color); - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: var(--font-family-monospace); - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: var(--label-background-color); - border-top:1px solid var(--label-left-top-border-color); - border-left:1px solid var(--label-left-top-border-color); - border-right:1px solid var(--label-right-bottom-border-color); - border-bottom:1px solid var(--label-right-bottom-border-color); - text-shadow: none; - color: var(--label-foreground-color); - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid var(--directory-separator-color); - border-bottom: 1px solid var(--directory-separator-color); - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.odd { - padding-left: 6px; - background-color: var(--index-odd-item-bg-color); -} - -.directory tr.even { - padding-left: 6px; - background-color: var(--index-even-item-bg-color); -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: var(--page-link-color); -} - -.arrow { - color: var(--nav-arrow-color); - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: var(--font-family-icon); - line-height: normal; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: var(--icon-background-color); - color: var(--icon-foreground-color); - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:var(--icon-doc-image); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: var(--footer-foreground-color); -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid var(--table-cell-border-color); - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - margin-bottom: 10px; - border: 1px solid var(--memdef-border-color); - border-spacing: 0px; - border-radius: 4px; - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid var(--memdef-border-color); - border-bottom: 1px solid var(--memdef-border-color); - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid var(--memdef-border-color); -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image: var(--memdef-title-gradient-image); - background-repeat:repeat-x; - background-color: var(--memdef-title-background-color); - font-size: 90%; - color: var(--memdef-proto-text-color); - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid var(--memdef-border-color); -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: var(--nav-gradient-image); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image: var(--nav-gradient-image); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:var(--nav-text-normal-color); - border:solid 1px var(--nav-breadcrumb-border-color); - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:var(--nav-breadcrumb-image); - background-repeat:no-repeat; - background-position:right; - color: var(--nav-foreground-color); -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: var(--nav-text-normal-color); - font-family: var(--font-family-nav); - text-shadow: var(--nav-text-normal-shadow); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color: var(--nav-text-hover-color); - text-shadow: var(--nav-text-hover-shadow); -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color: var(--footer-foreground-color); - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image: var(--header-gradient-image); - background-repeat:repeat-x; - background-color: var(--header-background-color); - margin: 0px; - border-bottom: 1px solid var(--header-separator-color); -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectrow -{ - height: 56px; -} - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; - padding-left: 0.5em; -} - -#projectname -{ - font-size: 200%; - font-family: var(--font-family-title); - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font-size: 90%; - font-family: var(--font-family-title); - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font-size: 50%; - font-family: 50% var(--font-family-title); - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid var(--title-separator-color); - background-color: var(--title-background-color); -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:var(--citation-label-color); - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; -} - -dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: var(--toc-background-color); - border: 1px solid var(--toc-border-color); - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 var(--font-family-toc); - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 var(--font-family-toc); - color: var(--toc-header-color); - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -span.emoji { - /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html - * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; - */ -} - -span.obfuscator { - display: none; -} - -.inherit_header { - font-weight: bold; - color: var(--inherit-header-color); - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - /*white-space: nowrap;*/ - color: var(--tooltip-foreground-color); - background-color: var(--tooltip-background-color); - border: 1px solid var(--tooltip-border-color); - border-radius: 4px 4px 4px 4px; - box-shadow: var(--tooltip-shadow); - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: var(--tooltip-doc-color); - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip a { - color: var(--tooltip-link-color); -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: var(--tooltip-declaration-color); -} - -#powerTip div { - margin: 0px; - padding: 0px; - font-size: 12px; - font-family: var(--font-family-tooltip); - line-height: 16px; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: var(--tooltip-background-color); - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { - border-top-color: var(--tooltip-border-color); - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: var(--tooltip-background-color); - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: var(--tooltip-border-color); - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: var(--tooltip-border-color); - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: var(--tooltip-border-color); - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: var(--tooltip-border-color); - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: var(--tooltip-border-color); - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid var(--table-cell-border-color); - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -tt, code, kbd, samp -{ - display: inline-block; -} -/* @end */ - -u { - text-decoration: underline; -} - -details>summary { - list-style-type: none; -} - -details > summary::-webkit-details-marker { - display: none; -} - -details>summary::before { - content: "\25ba"; - padding-right:4px; - font-size: 80%; -} - -details[open]>summary::before { - content: "\25bc"; - padding-right:4px; - font-size: 80%; -} - diff --git a/pack/1.2.0/doxygen.svg b/pack/1.2.0/doxygen.svg deleted file mode 100644 index d42dad5..0000000 --- a/pack/1.2.0/doxygen.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pack/1.2.0/dropdown.png b/pack/1.2.0/dropdown.png deleted file mode 100644 index 6ff29b5..0000000 Binary files a/pack/1.2.0/dropdown.png and /dev/null differ diff --git a/pack/1.2.0/dynsections.js b/pack/1.2.0/dynsections.js deleted file mode 100644 index f579fbf..0000000 --- a/pack/1.2.0/dynsections.js +++ /dev/null @@ -1,123 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); - $('table.directory tr'). - removeClass('odd').filter(':visible:odd').addClass('odd'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - - -CMSIS-View: /component_viewer/objects/object/.../calc - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/objects/object/.../calc
-
-
-

Execute calculations using Expressions.

- - - - - - - - - - - - - - - -
Parent Element Element Chain
object /component_viewer/objects/object
list /component_viewer/objects/object/.../list
Attributes Description Type Use
cond Conditional execution: element is executed when expression result is not 0. Default value is 1. xs:string optional
Body Description Type Use
text Expressions that are calculated. No XML-comments are allowed in this section. xs:string optional
-

Example:

<object name="MyCalculations">
-
<var name="y" type="int32_t" value="0" />
-
<var name="z" type="int32_t" value="0" />
-
-
<calc>
-
y = 1;
-
z = 1;
-
</calc>
-
-
<calc cond="z != 0" >
-
z = (z == 1) ? 100 : 200;
-
y = z / 4;
-
</calc>
-
-
<object>
-

 

-
-
-
- - - - diff --git a/pack/1.2.0/elem_component.html b/pack/1.2.0/elem_component.html deleted file mode 100644 index 5031062..0000000 --- a/pack/1.2.0/elem_component.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/component - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/component
-
-
-

Define the name of component that is described in this SCVD file. This element specifies also the version of the SCVD file.

- - - - - - - - - - - -
Parent Element Element Chain
component_viewer /component_viewer
Attributes Description Type Use
name Alphanumeric string identifying the component. Used as menu entry to open viewers. xs:string required
version Alphanumeric string identifying the version of the component description. xs:string optional
-

Example:

<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
-
<component name="RTOS" version="1.21.23"/> <!-- name and version of the component -->
-
...
-
</component_viewer>
-
-
-
- - - - diff --git a/pack/1.2.0/elem_component_viewer.html b/pack/1.2.0/elem_component_viewer.html deleted file mode 100644 index ef7e272..0000000 --- a/pack/1.2.0/elem_component_viewer.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer
-
-
-

The element <component_viewer> provides the outermost frame of the description. All elements are described within this scope.

- - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
root Document root
Attributes Description Type Use
xmlns:xs Specifies the underlying XML schema to which the SCVD schema is compliant. Has to be set to: "http://www.w3.org/2001/XMLSchema-instance". xs:decimal required
xs:noNamespaceSchemaLocation Specifies the file name of the SCVD Schema: "Component_Viewer.xsd". xs:string required
schemaVersion Specifies the compliant SCVD schema version (for example, "1.1"). xs:string required
Child Elements Description Type Occurrence
component Name of the component and version of this SCVD file. ComponentsType 0..1
typedefs Group element for one or more typedef elements. TypedefsType 0..1
objects Group element for one or more object elements. ObjectsType 0..1
events Group element for one or more event elements. EventsType 0..1
-

Example:

<?xml version="1.0" encoding="utf-8"?>
-
-
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance "xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
-
<component name="MyView" version="0.0.1"/> <!-- name and version of the component -->
-
-
<typedefs>
-
<typedef name="MyType" size="8" info="This is MyType with 2 members">
-
<member name="hi" type="uint32_t" offset="0" info="member hi"/>
-
<member name="low" type="uint32_t" offset="4" info="member low"/>
-
</typedef>
-
</typedefs>
-
-
<objects>
-
<object name="MyObject">
-
<read name="MySymbol" type="MyType" symbol="mysymbol" const="0"/>
-
-
<out name="MyObjectView">
-
<item property="MyObject">
-
<item property="Low" value="%x[MySymbol.low]"/>
-
<item property="Hi" value="%d[MySymbol.hi]"/>
-
</item>
-
</out>
-
</object>
-
</objects>
-
-
</component_viewer>
-
-
-
- - - - diff --git a/pack/1.2.0/elem_event.html b/pack/1.2.0/elem_event.html deleted file mode 100644 index c7e33fb..0000000 --- a/pack/1.2.0/elem_event.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/events/event - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/events/event
-
-
-

Define an event that can occur for the software component. The attributes property and value can consist of ASCII characters and format specifiers.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
events /component_viewer/events
Attributes Description Type Use
id 16-bit event id (message and component number) value. See Theory of operation. xs:anySimpleType required
level Event severance level (OP, API, Error, Detail) used for filtering. See Theory of operation. xs:anySimpleType required
property Value output shown in the Event Property column of the Event Recorder window. xs:string required
value Value output shown in the Value column of the Event Recorder window. xs:anySimpleType optional
info Descriptive text with additional information (comment). xs:string optional
doc Explicit link to documentation. xs:string optional
handle Specifies the value that identifies the object handle and is used to associated the state information. This refers for example a RTOS thread or IP socket. xs:string optional
hname Specifies a human readable name that represents the handle. This could be a thread name or a file name. A name can referenced in two different ways:
-  hname="N[val]" val is the pointer value that addresses a const string in the address space of the target.
-  hname="S[val]" val is the address of a symbol name (for example a function) in a loaded ELF image.
xs:string optional
state Reference to a state name in the element state. When state is specified, a handle value is required. xs:string optional
tracking Specifies the tracking for an event handle wiht the values:
-  tracking="Start"; start the state tracking for an event handle.
-  tracking="Stop"; stop the state tracking for an event handle.
-  tracking="Reset"; initialize the tracking for all event handles of that component to "Stop".
xs:string optional
Child Element Description Type Occurrence
print Use different output formats for single line output lines. See Dynamic output formats. PrintType 0..*
-

Example:

<events>
-
:
-
:
-
<event id="0xA00" level="API" property="InitEntry" info="Event on MyComp_initialize start"/>
-
<event id="0xA01" level="API" property="InitStatus" info="Event on MyComp_initialize return"/>
-
<event id="0xA0A" level="Error" property="SendNoData" info="Event on MyComp_initialize return"/>
-
<event id="0xA0B" level="Op" property="SendComplete" value="size=%d[val1]" info="Event on MyComp_send - completed"/>
-
<event id="0xA0C" level="Error" property="SendFailed" value="" info="Event on MyComp_send - send failed"/>
-
<event id="0xA15" level="Error" property="ReceiveNoData" value="" info="Event on MyComp_receive - no data received"/>
-
<event id="0xA16" level="Op" property="ReceiveComplete" value="size=%d[val1]" info="Event on MyComp_receive - completed"/>
-
<event id="0xA17" level="Error" property="ReceiveFailed" value="" info="Event on MyComp_receive - receive failed"/>
-
</events>
-
-
-
- - - - diff --git a/pack/1.2.0/elem_event.js b/pack/1.2.0/elem_event.js deleted file mode 100644 index 307a1cf..0000000 --- a/pack/1.2.0/elem_event.js +++ /dev/null @@ -1,4 +0,0 @@ -var elem_event = -[ - [ "/component_viewer/events/event/../print", "elem_event_print.html", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/elem_event_print.html b/pack/1.2.0/elem_event_print.html deleted file mode 100644 index 9e42a09..0000000 --- a/pack/1.2.0/elem_event_print.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/events/event/../print - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/events/event/../print
-
-
-

Dynamic output formats are supported using the "<print>" element. It works as child element of event and allows conditional output.

- - - - - - - - - - - - - - - - - -
Parent Element Element Chain
event /component_viewer/events/event
Attributes Description Type Use
cond Conditional execution: element is executed when expression result is not 0. If executed all consecutive "<print>" elements are skipped. Default value is 1. xs:string required
property Shown in the Property column of the Event Recorder window. Use specifiers to format the output. xs:string required
value Shown in the Value column of the Event Recorder window. Use specifiers to format the output. xs:string required
bold Output in the Value column is displayed in bold when expression result is not 0. Default value is 0. See also alert and bold output. xs:string optional
alert Output in the Value column is displayed in red when expression result is not 0. Default value is 0. See also alert and bold output. xs:string optional
-

Example: On "ShowNetAddress" event print IP address in different format depending whether it is IPv4 or IPv6 network.

<event id="15 + 0xD100" level="Op" property="ShowNetAddress" info="Display IP address and port number">
-
<print cond="!(val1 & 0x1)" property="ShowNetAddress" value="ip=%I[val1, NetAddr:addr], port=%d[val1, NetAddr:port]"/>
-
<print cond=" (val1 & 0x1)" property="ShowNetAddress" value="ip=%J[val1, NetAddr:addr], port=%d[val1, NetAddr:port]"/>
-
</event>
-
-
-
- - - - diff --git a/pack/1.2.0/elem_events.html b/pack/1.2.0/elem_events.html deleted file mode 100644 index 2b12beb..0000000 --- a/pack/1.2.0/elem_events.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/events - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/events
-
-
-

Is the enclosing element for objects that define the output for Event Recorder.

- - - - - - - - - - - -
Parent Element Element Chain
component_viewer /component_viewer
Child Element Description Type Occurrence
event Define an event. EventType 0..*
group Create an event group. GroupType 0..*
-

Example:

<?xml version="1.0" encoding="utf-8"?>
-
-
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
<component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
-
-
<events>
-
<group name="My Events Group">
-
<component name="MyApp" brief="My Application" no="0x00" prefix="EvrNetMM_" info="Network - System - Dynamic Memory Management"/>
-
</group>
-
-
<event id="1" level="API" property="MyFunction" value="parameter=%x[val1]" info="Event on start of MyFunction" />
-
<event id="2" level="Error" property="MyFunctionError" info="Event on error in MyFunction" />
-
<event id="3" level="Op" property="MyFunctionProcess" value="string=%t[val1]" info="Event on operation in MyFunction" />
-
</events>
-
-
</component_viewer>
-

   

-
-
-
- - - - diff --git a/pack/1.2.0/elem_events.js b/pack/1.2.0/elem_events.js deleted file mode 100644 index d57799e..0000000 --- a/pack/1.2.0/elem_events.js +++ /dev/null @@ -1,8 +0,0 @@ -var elem_events = -[ - [ "/component_viewer/events/event", "elem_event.html", "elem_event" ], - [ "/component_viewer/events/group", "elem_group.html", [ - [ "/component_viewer/events/group/component", "elem_group.html#elem_group_component", null ], - [ "/component_viewer/events/group/component/state", "elem_group.html#elem_group_component_state", null ] - ] ] -]; \ No newline at end of file diff --git a/pack/1.2.0/elem_group.html b/pack/1.2.0/elem_group.html deleted file mode 100644 index 8decaa2..0000000 --- a/pack/1.2.0/elem_group.html +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/events/group - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/events/group
-
-
-

Define groups of software components that are shown together.

- - - - - - - - - - - - - -
Parent Element Element Chain
events /component_viewer/events
Attributes Description Type Use
name Define the name of a group. This name is used for filtering. xs:string required
Child Element Description Type Occurrence
component Component within the group. ComponentType 0..*
-

 

-

-/component_viewer/events/group/component

-

Define software components that are tied to an event number.

- - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
group /component_viewer/events/group
Attributes Description Type Use
name Descriptive component name. xs:string required
brief Short component name for display purposes. xs:string required
no Event id component number (bits 8..15). See Theory of operation. xs:string required
prefix Added to hyperlink in context sensitive help system before the <event name>. xs:string required
info Descriptive text shown when hovering over the component brief. xs:string optional
Child Element Description Type Occurrence
state State information for a component ComponentType 0..*
-

Example:

<events>
-
<!-- event groups for Network Component -->
-
<group name="Network">
-
<group name="System Events">
-
<component name="Memory Management" brief="NetMM" no="0x80" prefix="EvrNetMM_" info="Network - System - Dynamic Memory Management"/>
-
<component name="ETH Interface" brief="NetETH" no="0x81" prefix="EvrNetETH_" info="Network - System - Ethernet Interface"/>
-
<component name="PPP Interface" brief="NetPPP" no="0x82" prefix="EvrNetPPP_" info="Network - System - Serial PPP Interface"/>
-
<component name="SLIP Interface" brief="NetSLIP" no="0x83" prefix="EvrNetSLIP_" info="Network - System - Serial SLIP Interface"/>
-
<component name="Loopback Interface" brief="NetLB" no="0x84" prefix="EvrNetLB_" info="Network - System - Local Loopback Interface"/>
-
</group>
-
-
<group name="IPv4 Core Events">
-
<component name="IP4 Core" brief="NetIP4C" no="0x85" prefix="EvrNetIP4C_" info="Network - IPv4 - Core/localhost"/>
-
<component name="ICMP Control" brief="NetICMP" no="0x86" prefix="EvrNetICMP_" info="Network - IPv4 - Internet Control Message"/>
-
<component name="IGMP Management" brief="NetIGMP" no="0x87" prefix="EvrNetIGMP_" info="Network - IPv4 - Internet Group Message (multicast)"/>
-
<component name="NBNS Client" brief="NetNBNS" no="0x88" prefix="EvrNetNBNS_" info="Network - IPv4 - NetBIOS Name Service Client"/>
-
<component name="DHCP Client" brief="NetDHCP" no="0x89" prefix="EvrNetDHCP_" info="Network - IPv4 - Dynamic Host Client"/>
-
<component name="ARP Address Resolution" brief="NetARP" no="0x8A" prefix="EvrNetARP_" info="Network - IPv4 - Ethernet Address Resolution"/>
-
</group>
-
-
<group name="IPv6 Core Events">
-
<component name="IP6 Core" brief="NetIP6C" no="0x8B" prefix="EvrNetIP6C_" info="Network - IPv6 - Core/localhost"/>
-
<component name="ICMP6 Control" brief="NetICMP6" no="0x8C" prefix="EvrNetICMP6_" info="Network - IPv6 - Internet Control Message"/>
-
<component name="DHCP6 Client" brief="NetDHCP6" no="0x8D" prefix="EvrNetDHCP6_" info="Network - IPv6 - Dynamic Host Client"/>
-
<component name="NDP Neighbor Discovery" brief="NetNDP" no="0x8E" prefix="EvrNetNDP_" info="Network - IPv4 - Neighbor Discovery"/>
-
</group>
-
</group>
-
:
-
:
-
</events>
-

 

-

-/component_viewer/events/group/component/state

-

Define state information for an event group. This state information is used for:

    -
  • graphic display of a time-line (for example in the System Analyzer of uVision).
  • -
  • collecting statistical information about an event group.
  • -
-

The state information is referenced by the element event and associated with an handle and a handle name. State information is for example used to display the activity of RTOS threads. But this implementation is generic and allows it to use also for any type of software component.

- - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
group /component_viewer/component
Attributes Description Type Use
name State name that is displayed and used for reference in event xs:string required
plot Output in graphic time-line display (System Analyzer) with values:
-  "off" for empty display [no line or box] (default).
-  "line" for display a line.
-  "box" for display a box.
xs:string optional
color Color for the line or box in graphic time-line display (System Analyzer) with values: "blue" (default), "red", "green", "black". xs:string optional
unique "1" indicates that only handle from this group can have this state. Event handles that had this state previously are set to state that is marked with dormant="1". (default "0") xs:string optional
dormant "1" indicates the state to fall back from the state that is marked with unique="1". (default "0") xs:string optional
ssel "1" indicates the state is selected for top-level view of events and statistics. (default "0") xs:string optional
-

Example:

<events>
-
<group>
-
<component name="MyEventComponent1" brief="MyC1" no="0x0B" prefix="EvrMyC1_" info="My Component - Demo example">
-
<state name="Clear" plot="box" color="red" />
-
<state name="Create" plot="box" />
-
<state name="Delete" plot="off" />
-
<state name="Waiting" plot="box" color="green" />
-
<state name="Active" plot="box" bold="1" />
-
<state name="Idle" plot="line" />
-
<state name="Stalled" plot="line" color="black" />
-
</component>
-
<component name="MyEventComponent2" brief="MyC2" no="0x0C" prefix="EvrMyC2_" info="My Component - Demo example"/>
-
</group>
-
<event id="0xB00" level="API" property="Clear" state="Clear" handle="val1" value="h=%x[val1]" info="Event on Clear"/>
-
<event id="0xB01" level="API" property="Create" state="Create" handle="val1" hname="%N[val2]" tracking="Start" value="h=%x[val1] n=%N[val2]" info="Event on Create"/>
-
<event id="0xB02" level="API" property="Delete" state="Delete" handle="val1" tracking="Stop" value="h=%x[val1]" info="Event on Delete"/>
-
<event id="0xB03" level="API" property="Active" state="Active" handle="val1" value="h=%x[val1]" info="Event on Active"/>
-
<event id="0xB04" level="API" property="Waiting" state="Waiting" handle="val1" value="h=%x[val1]" info="Event on Waiting"/>
-
<event id="0xB05" level="API" property="Idle" state="Idle" handle="val1" value="h=%x[val1]" info="Event on Idle"/>
-
<event id="0xB06" level="API" property="Stalled" state="Stalled" handle="val1"
-
</events>
-

 

-
-
-
- - - - diff --git a/pack/1.2.0/elem_item.html b/pack/1.2.0/elem_item.html deleted file mode 100644 index bfb2ce8..0000000 --- a/pack/1.2.0/elem_item.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/objects/object/out/.../item - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/objects/object/out/.../item
-
-
-

Outputs a single line. Child elements create a display block [+] in the Component Viewer. The attribute property and attribute value can consist of ASCII characters and format specifiers.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
out /component_viewer/objects/object/out
list /component_viewer/objects/object/out/.../list
item /component_viewer/objects/object/out/.../item (self reference)
Attributes Description Type Use
property Shown in the Property column of the Component Viewer window. Use specifiers to format the output. xs:string optional
value Shown in the Value column of the Component Viewer window. Use specifiers to format the output. xs:string optional
info Descriptive text, comment. Shown when hovered over the item in the Component Viewer window. xs:string optional
cond Conditional execution: element is executed when expression result is not 0. Default value is 1. xs:string optional
bold Output in the Value column is displayed in bold when expression result is not 0. Default value is 0. See also alert and bold output. xs:string optional
alert Output in the Value column is displayed in red when expression result is not 0. Default value is 0. See also alert and bold output. xs:string optional
Child Element Description Type Occurrence
item Output a single line. An <item> in an <item> creates a tree structure in Component Viewer. ItemType 0..*
list Read complex variables, arrays, or linked lists. Walk through readlist arrays. ListType 0..*
print Use different output formats for single line output lines. See Dynamic output formats. PrintType 0..*
-

Example:

<object>
-
<out name="System and Threads"> <!-- Window title -->
-
<item property="System"> <!-- Creates a group item for the following items -->
-
-
<item property="SystemTimer" cond="__Symbol_exists (&quot;os_active_TCB&quot;)"> <!-- small group -->
-
<item property="Tick Timer" value="%T[((float) clockrate / 1000)] mSec" />
-
</item>
-
// The "SystemTimer" property is only created when the condition is true,
-
// that is when the user symbol "os_active_TCB" exists. Otherwise
-
// the property is not created and any nested statements are skipped.
-
-
<read name="USB_Desc" type="uint8_t" symbol="usb_desc" size="128" const="1" />
-
...
-
<item property="USB_Desc" value="%U[USB_Desc]" />
-
// The property value will show a Keil-USB descriptor using the format -
-
// { length, type, "descriptor_name" }, e.g. { 10, 3, "Keil" }.
-
-
</item>
-
</out>
-
</object>
-
-
-
- - - - diff --git a/pack/1.2.0/elem_item.js b/pack/1.2.0/elem_item.js deleted file mode 100644 index 590e8a1..0000000 --- a/pack/1.2.0/elem_item.js +++ /dev/null @@ -1,4 +0,0 @@ -var elem_item = -[ - [ "/component_viewer/objects/object/out/.../item/print", "elem_print.html", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/elem_list.html b/pack/1.2.0/elem_list.html deleted file mode 100644 index c2815ac..0000000 --- a/pack/1.2.0/elem_list.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/objects/object/.../list - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/objects/object/.../list
-
-
-

The element list allows to create a:

    -
  • for loop that increments in each iteration a loop variable by 1 until it reaches the limit.
  • -
  • while loop that stops executing when a while condition becomes 0.
  • -
-

The child elements of the list element are executed therefore multiple times.

-
Note
It is not possible to combine limit and while in the same list element.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
object /component_viewer/objects/object
list /component_viewer/objects/object/.../list
Attributes Description Type Use
name The name of a loop variable that is defined previously defined with the element var. When limit is specified, this variable is incremented by 1 with every loop iteration. xs:string required
start Expression that specifies the initial value of the loop variable. xs:string required
limit Expression that specifies the limit value of the loop variable. The loop is terminated when limit >= loop variable. xs:string optional
while Expression that terminates loop execution when the result is 0. Default value is 1. xs:string optional
cond Conditional execution: element is executed when expression result is not 0. Default value is 1. xs:string optional
Child Element Description Type Occurrence
list Iterate a loop (for or while construct). ListTypeO 0..*
readlist Read a list of structured variables (arrays or linked list) from application program. ReadlistType 0..*
read Read scalar variables or arrays from application program. ReadType 0..*
var Define temporary variables. VarType 0..*
calc Calculate temporary variables. CalcType 0..*
-

Examples:

-

for loop execution:

-
<object name="For_Loop">
-
<var name="i" type="uint32_t" />
-
<var name="j" type="uint8_t" value="5" />
-
<list name="i" start="0" limit="10" >
-
<calc>
-
j = j + i;
-
</calc>
-
</list>
-
</object>
-

while loop execution:

-
<object name="While_Loop">
-
<list cond="Threads:TCB[i].State==WaitingMutex" name="m" start="Threads:TCB[i].OS_MUCB" while="Threads:MCB(m).p_mlnk">
-
<item property="Mutex : %x[Threads:MCB(m).index]" value="Owner=%s[Threads:TCB_DEF(Threads:TCB(Threads:MCB(m).owner).Thread_Def).name"/>
-
</list>
-
<var name="i" type="uint32_t" />
-
<var name="j" type="uint8_t" value="5" />
-
<list name="i" start="0" limit="10" >
-
<calc>
-
j = j + i;
-
</calc>
-
</list>
-
</object>
-
-
-
- - - - diff --git a/pack/1.2.0/elem_listout.html b/pack/1.2.0/elem_listout.html deleted file mode 100644 index a0bc30b..0000000 --- a/pack/1.2.0/elem_listout.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/objects/object/out/.../list - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/objects/object/out/.../list
-
-
-

Walk through <readlist> arrays.

-
Note
This element is different from /component_viewer/objects/object/.../list.
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
out /component_viewer/objects/object/out
item /component_viewer/objects/object/out/.../item
list /component_viewer/objects/object/out/.../list
Attributes Description Type Use
name Name of the list. Can be used in Expressions. Must be of type int. xs:string required
start Starting value. xs:string required
limit The end value is limit-1. If limit=<0, then the list is skipped.
- Cannot be used with attribute while in the same <list> element.
xs:string optional
while Specifies the next value for iterations. When using attribute while, iteration does not start if start==0. Cannot be used with attribute limit in the same <list> element. xs:string optional
cond Conditional execution: element is executed when expression result is not 0. Default value is 1. xs:string optional
Child Element Description Type Occurrence
item Output a line. ItemType 0..*
list Read complex variables, arrays, or linked lists. Walk through readlist arrays. ListType 0..*
-

Example:

<object>
-
<out>
-
<list name="ListX" start="Threads:TCB[i].OS_MUCB" while="Threads:MCB(m).p_mlnk"> // walk through pointer lists
-
</out>
-
</object>
-

 

-
-
-
- - - - diff --git a/pack/1.2.0/elem_member.html b/pack/1.2.0/elem_member.html deleted file mode 100644 index 1b9420a..0000000 --- a/pack/1.2.0/elem_member.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/typedefs/typedef/member - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/typedefs/typedef/member
-
-
-

Define the member of a typedef; typically a struct, class member, or enumeration.

- - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
typedef /component_viewer/typedefs/typedef
Attributes Description Type Use
name Name of member variable. Is shown as text in the Component Viewer. xs:string required
type Scalar Data Types or pointer to Complex Data Types to access chained lists. xs:string required
offset Offset to base address in [Bytes]. Use the uVision debug dialog Symbols to find the offset. You can use Expressions. For imported members, the offset is recalculated. Refer to the description of attribute import in typedef. xs:string required
size Size in target memory in [Bytes]. xs:string optional
info Descriptive text with additional information (comment). xs:string optional
Child Element Description Type Occurrence
enum Name of an enumeration that is displayed as text instead of a value. EnumType 0..*
-

  Example:

<typedef name="Thread_CB" size="52" info="RTOS Task Control Block">
-
-
<member name="p_lnk" type="*Thread_CB" offset="4" info="Pointer to linked list"/>
-
-
<member name="Entry" type="uint32_t" offset="40 + 8" info="Calculated Entry Address"/>
-
-
<member name="Priority" type="int8_t" offset="2" info="Thread Priority">
-
<enum name="None" value="0" info="No Priority"/>
-
<enum name="Idle" value="1" info="osPriorityIdle (lowest)"/>
-
<enum name="Low" value="2" info="osPriorityLow"/>
-
<enum name="BelowNormal" value="3" info="osPriorityBelowNormal"/>
-
<enum name="Normal" value="4" info="osPriorityNormal (default)"/>
-
<enum name="AboveNormal" value="5" info="osPriorityAboveNormal"/>
-
<enum name="High" value="6" info="osPriorityHigh"/>
-
<enum name="Realtime" value="7" info="osPriorityRealtime (highest)"/>
-
</member>
-
-
</typedef>
-

 

-

-/component_viewer/typedefs/typedef/member/enum

-

Defines an enumeration name that is displayed as text instead of a value. A symbolic enumerator name represents a constant value that can be referenced using the syntax typedef_name:member_name:enum_name.

- - - - - - - - - - - - - -
Parent Element Element Chain
member /component_viewer/typedefs/typedef/member
Attributes Description Type Use
name Name of enumeration. Is shown as text in the Component Viewer. xs:string required
value Expression that specifies the enum value. xs:string optional
info Descriptive text with additional information (comment). xs:string optional
-

Example:

<typedef name="Thread_CB" size="52" info="RTOS Task Control Block">
-
-
<member name="Priority" type="int8_t" offset="2" info="Thread Priority">
-
<enum name="None" value="0" info="No Priority"/>
-
<enum name="Idle" value="1" info="osPriorityIdle (lowest)"/>
-
<enum name="Low" value="2" info="osPriorityLow"/>
-
<enum name="BelowNormal" value="3" info="osPriorityBelowNormal"/>
-
<enum name="Normal" value="4" info="osPriorityNormal (default)"/>
-
<enum name="AboveNormal" value="5" info="osPriorityAboveNormal"/>
-
<enum name="High" value="6" info="osPriorityHigh"/>
-
<enum name="Realtime" value="7" info="osPriorityRealtime (highest)"/>
-
</member>
-
-
</typedef>
-

 

-
-
-
- - - - diff --git a/pack/1.2.0/elem_objects.html b/pack/1.2.0/elem_objects.html deleted file mode 100644 index 298427e..0000000 --- a/pack/1.2.0/elem_objects.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/objects - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/objects
-
-
-

Is the enclosing element for objects that define the output for the Component Viewer.

- - - - - - - - - -
Parent Element Element Chain
component_viewer /component_viewer
Child Element Description Type Occurrence
object Define the output object for the Component Viewer. ObjectType 1
-

 

-

-/component_viewer/objects/object

-

Define variables, calculations, and the viewer output for a software component.

- - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
objects /component_viewer/objects
Attributes Description Type Use
name Name of the object (this name is used to open the view) xs:string required
Child Element Description Type Occurrence
var Define temporary variables. VarType 0..*
calc Calculate temporary variables. CalcType 0..*
list Iterate a loop (for or while construct). ListTypeO 0..*
read Read scalar variables or arrays from application program. ReadType 0..*
readlist Read a list of structured variables (arrays or linked list) from application program. ReadlistType 0..*
out Generate output for this object. OutType 0..*
-
-
-
- - - - diff --git a/pack/1.2.0/elem_objects.js b/pack/1.2.0/elem_objects.js deleted file mode 100644 index 3956ff1..0000000 --- a/pack/1.2.0/elem_objects.js +++ /dev/null @@ -1,9 +0,0 @@ -var elem_objects = -[ - [ "/component_viewer/objects/object", "elem_objects.html#elem_object", null ], - [ "/component_viewer/objects/object/.../calc", "elem_calc.html", null ], - [ "/component_viewer/objects/object/.../list", "elem_list.html", null ], - [ "/component_viewer/objects/object/.../read", "elem_read.html", null ], - [ "/component_viewer/objects/object/.../readlist", "elem_readlist.html", null ], - [ "/component_viewer/objects/object/out", "elem_out.html", "elem_out" ] -]; \ No newline at end of file diff --git a/pack/1.2.0/elem_out.html b/pack/1.2.0/elem_out.html deleted file mode 100644 index 919ff0e..0000000 --- a/pack/1.2.0/elem_out.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/objects/object/out - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/objects/object/out
-
-
-

Define the output for an object.

- - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
object /component_viewer/objects/object
Attributes Description Type Use
name The name used for menu titles and window titles of the Component Viewer. xs:string optional
value Is the assigned value. xs:string optional
type Value type. One of the Data types. xs:string optional
cond Conditional execution: element is executed when expression result is not 0. Default value is 1. xs:string optional
Child Element Description Type Occurrence
item Output a line to the Component Viewer window. ItemType 0..*
list Iterate a loop (for or while construct). ListType 0..*
-

Example:

<object>
-
<out name="System and Threads" cond="__Symbol_exists ('os_active_TCB')"> <!-- Window title -->
-
<item property="System" cond="__Symbol_exists ('os_active_TCB')">
-
<item property="Tick Timer" value="%T[((float) clockrate / 1000)] mSec" />
-
<item property="Round Robin Timeout" value="%T[((float) (rrobin &amp; 0xFFFF) * (float) clockrate / 1000)] mSec" />
-
-
<item property="Test values" >
-
<item property="__Running=%d[__Running]" value="%t[__Running ? 'Yes' : 'No']" />
-
<item property="__Symbol_exists ('os_active_TCB')" value="%t[__Symbol_exists ('os_active_TCB') ? 'Yes' : 'No']" />
-
</item>
-
</item>
-
</out>
-
</object>
-

 

-
-
-
- - - - diff --git a/pack/1.2.0/elem_out.js b/pack/1.2.0/elem_out.js deleted file mode 100644 index 091f352..0000000 --- a/pack/1.2.0/elem_out.js +++ /dev/null @@ -1,5 +0,0 @@ -var elem_out = -[ - [ "/component_viewer/objects/object/out/.../item", "elem_item.html", "elem_item" ], - [ "/component_viewer/objects/object/out/.../list", "elem_listout.html", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/elem_print.html b/pack/1.2.0/elem_print.html deleted file mode 100644 index 6f4ea11..0000000 --- a/pack/1.2.0/elem_print.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/objects/object/out/.../item/print - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/objects/object/out/.../item/print
-
-
-

Dynamic output formats are supported using the "<print>" element. It works as child element of item "item" and allows conditional output formats.

- - - - - - - - - - - - - - - - - -
Parent Element Element Chain
item /component_viewer/objects/object/out/.../item
Attributes Description Type Use
cond Conditional execution: element is executed when expression result is not 0. If executed all consecutive "<print>" elements are skipped. Default value is 1. xs:string required
-
property Shown in the Property column of the Component Viewer window. Use specifiers to format the output. xs:string required
value Shown in the Value column of the Component Viewer window. Use specifiers to format the output. xs:string required
bold Output in the Value column is displayed in bold when expression result is not 0. Default value is 0. See also alert and bold output. xs:string optional
alert Output in the Value column is displayed in red when expression result is not 0. Default value is 0. See also alert and bold output. xs:string optional
-

Example:

<object>
-
<out name="FreeRTOS RTOS">
-
<item property="Running Task" value="" cond="xSchedulerRunning">
-
<item property="h: %x[pxCurrentTCB] %t[Running_TCB.pcTaskName]" value="">
-
<item property="Stack Top" value="%x[Running_TCB.pxTopOfStack]" />
-
<item>
-
<print cond="Running_TCB.StackOverflow == 0" property="Stack Available" value="%d[Running_TCB.StackAvailable] bytes"/>
-
<print cond="Running_TCB.StackOverflow != 0" property="Stack Overflow" value="%d[Running_TCB.StackAvailable] bytes" bold="1" alert="1"/>
-
</item>
-
</item>
-
</out>
-
</object>
-
-
-
- - - - diff --git a/pack/1.2.0/elem_read.html b/pack/1.2.0/elem_read.html deleted file mode 100644 index f2859b3..0000000 --- a/pack/1.2.0/elem_read.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/objects/object/.../read - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/objects/object/.../read
-
-
-

Read values of scalar variables or arrays from application program that runs in the target system. A redefinition of a <read> element is not permitted and creates an error.

-

<read> manages a <member> variable with the following name:

    -
  • name._count — number of element in an array (0 .. n-1).
  • -
-

Refer to Predefined variables.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
object /component_viewer/objects/object
list /component_viewer/objects/object/.../list
Attributes Description Type Use
name Name of variable. Can be used in Expressions. xs:string required
type Data type read from memory, following types are possible: -xs:string required
size Is an Expressions representing the array size or the number of values to read from target. The maximum array size is limited to 512. Default value is 1. xs:string optional
symbol Symbol name to access memory in the target system which is used to calculate a memory address. xs:string optional
offset Offset to the attribute symbol address. If no attribute symbol is not specified, then it is the memory address. Default value is 0. xs:string optional
const Variables with attribute const set to "1" are constants that are read only once after debugger start. Default value is 0. xs:int optional
info Descriptive text with additional information (comment). xs:string optional
cond Conditional execution: element is executed when expression result is not 0. Default value is 1. xs:string optional
endian Endianness for scalar data types. endian="L" — little endian. endian="B" — big endian. Default is automatic. xs:string optional
-

Example:

<objects>
-
<object name="MyObject">
-
<read name="MySymbol" type="MyType" symbol="mysymbol" const="0"/>
-
</object>
-
-
<object name="Threads">
-
<read name="main" type="uint8_t" symbol="main" size="64" const="1" />
-
<read name="szText" type="uint8_t" symbol="szText" size="64" const="1" cond="0" info="ignored because of condition" />
-
<read name="My_TCB" type="Thread_CB" offset="adr_os_idle_TCB + 4" info="indirect address via offset-expression" />
-
-
<list name="Tsk_List">
-
<read name="cur_tsk" type="uint32_t" symbol="os_tsk" offset="0" info="index current running task" />
-
<read name="next_tsk" type="uint32_t" symbol="os_tsk" offset="4" info="index task that will run next" />
-
</list>
-
<object>
-
<objects>
-
-
-
- - - - diff --git a/pack/1.2.0/elem_readlist.html b/pack/1.2.0/elem_readlist.html deleted file mode 100644 index 60903dd..0000000 --- a/pack/1.2.0/elem_readlist.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/objects/object/.../readlist - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/objects/object/.../readlist
-
-
-

Read a list of structured elements from application program memory in the target system. This list can be used in expressions or out elements. The structured element is based on a data type that is defined with typedef. This typedef may contain temporary variables defined with var that are used for calculations (temporary variables are not read from the target system).

-

The individual data type elements of the <readlist> are referenced using name[index].member.
- <readlist> manages two predefined member variables with the following names:

    -
  • name._count — number of list items. Used as index limit, valid index values are: (0 .. number-1).
  • -
  • name[index]._addr — start address of the list item that was read from target memory.
  • -
-

The attribute attribute symbol together with attribute offset specifies the start address in target memory of the list. When attribute attribute based:

    -
  • is not specified or false (based="1") the target memory content is interpreted as a structured element.
  • -
  • is true (based="1") the target memory content is interpreted as pointer to a structured element.
  • -
-

<readlist> is able to read:

    -
  • an array where the attribute count specifies the number of items read from the array.
  • -
  • linked list elements where the attribute next specifies the link pointer.
  • -
-

<readlist> can be used multiple times to add list items. The attribute init="1" clears the list and any list items collected on previous <readlist> calls is discarded.

-
Note
The maximum number of list items is limited to 1024.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
object /component_viewer/objects/object
list /component_viewer/objects/object/.../list
Attributes Description Type Use
name Name of the list variable for usage in Expressions. xs:string required
type A scalar data type or complex data type defined with typedef. xs:string required
count Number of list items to read from an array. Default value is 1. xs:string optional
next Name of a member element in the list that is used as next pointer. This is used to read a linked list. <readlist> stops reading on a NULL pointer. The maximum number of list items is limited to 1024. xs:string optional
symbol Symbol name used to calculate the memory address in the target system. xs:string optional
offset Offset to the memory address specified with attribute symbol address. If attribute symbol is not specified it is the memory address. Default value is 0. xs:string optional
const When const="1" the memory is read when the object is created the first time. Default value is 0. xs:int optional
info Descriptive text with additional information (comment). xs:string optional
cond Conditional execution: element is executed when expression result is not 0. Default value is 1. xs:string optional
init When init="1" previous read items in the list are discarded. Default value is 0. xs:boolean optional
based When based="1" the attribute symbol and attribute offset specifies a pointer (or pointer array). Default value is 0. xs:boolean optional
-

Example

-

C source file:

typedef struct _MyList {
-
struct _MyList *nextL;
-
uint32_t valueL;
-
char *nameL;
-
} MyList;
-
-
__USED MyList ValueC = { NULL, 50, "List Value C" };
-
__USED MyList ValueB = { &ValueC, 12, "List Value B" };
-
__USED MyList ValueA = { &ValueB, 4, "List Value A" };
-
__USED MyList *ListStart = &ValueA;
-
-
__USED MyList ValueArray[3] = { { NULL, 10, "Value[0]" },
-
{ NULL, 20, "Value[1]" },
-
{ NULL, 30, "Value[2]" }, };
-
-
__USED MyList *pArray[5] = { &ValueA, &ValueB, &ValueC, &ValueArray[0], &ValueArray[1] };
-

The data type of the list is defined with typedef. The var element is a variable used to store a string.

<typedefs>
-
<typedef name="MyList" size="12" >
-
<member name="nextL" type="*MyList" offset="0" />
-
<member name="valueL" type="uint32_t" offset="4" />
-
<member name="nameL" type="uint32_t" offset="8" />
-
<var name="nameS" type="int8_t" size="20" />
-
</typedef>
-
</typedefs>
-

Read the linked list starting with ValueA:

<readlist name="MyListA" type="MyList" symbol="ValueA" next="nextL" />
-

Read the linked list starting with head pointer ListStart:

<readlist name="MyListB" type="MyList" symbol="ListStart" based="1" next="nextL" />
-

Clear a previous list and read ValueA, ValueB, and ValueArray.

<readlist name="MyListC" type="MyList" symbol="ValueA" init="1" />
-
<readlist name="MyListC" type="MyList" symbol="ValueB" />
-
<readlist name="MyListC" type="MyList" symbol="ValueArray" count="__size_of(ValueArray)" />
-

Read the list based on the pointers stored in pArray:

<readlist name="MyListD" type="MyList" symbol="pArray" based="1" count="__size_of(pArray)" />
-

Read the pArray using read and read the list items addressed with pArray[1] and pArray[2].

<read name="pArray" type="*MyList" symbol="pArray" count="__size_of(pArray)" />
-
<readlist name="MyListE" type="MyList" offset="pArray[1]" />
-
<readlist name="MyListE" type="MyList" offset="pArray[2]" />
-
-
-
- - - - diff --git a/pack/1.2.0/elem_typedefs.html b/pack/1.2.0/elem_typedefs.html deleted file mode 100644 index 20f6587..0000000 --- a/pack/1.2.0/elem_typedefs.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/typedefs - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/typedefs
-
-
-

Is the enclosing element for data type definitions.

- - - - - - - - - -
Parent Element Element Chain
component_viewer /component_viewer
Child Element Description Type Occurrence
typedef Define complex data types. TypedefType 1..*
-

 

-

-/component_viewer/typedefs/typedef

-

Define complex data types that may be used in read and readlist elements. This data type definition is used to read information from the target memory of the application. Optionally it may include also var elements that create temporary helper variables for calculations at the debugger level.

- - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
typedefs /component_viewer/typedefs
Attributes Description Type Use
name Define the name of a data type. This name is used in read and readlist elements. xs:anySimpleType required
size Expression that specifies the size (in [Bytes]) to read from target memory. xs:anySimpleType optional
info Descriptive text with additional information (comment). xs:anySimpleType optional
import

Name of a symbol in the user application which is loaded into the debugger. The underlaying data type of this symbol is used to:

    -
  • recalculate the value of the attribute size of this typedef element.
  • -
  • for member elements with no explicit attribute offset, the offset value of matching member is set. If the member is not part of the symbol in the user application the attribute offset value is set to -1. __Offset_of can be used to check this value.
  • -
-

Example: Use the data type information of symbol tcb in source module main.c

<typedef name="tcb_type" size="12" import="main.c/tcb"> // size is recalculated from symbol tcb
-
<member name="type" type="uint8_t" offset="0"/> // offset not updated, because specified
-
<member name="name" type="uint8_t" size="16" /> // offset updated, because not specified
-
</typedef>
-
xs:string optional
Child Element Description Type Occurrence
member Name of a member variable in target memory. MemberType 0..*
var Temporary variables for local calculations in component viewer. VarType 0..*
-

 

-

Example: Using var

-
<typedefs>
-
-
<!-- Structure reflecting an array -->
-
<typedef name="TypeArray1" size="8">
-
<member name="type_ref" type="uint32_t" offset="0" info="Pointer to array"/>
-
<member name="id1" type="uint8_t" offset="4" info="Type ID"/>
-
<member name="attr" type="uint8_t" offset="5" info="Type Attribute"/>
-
<var name="idx" type="uint32_t" info="Index in array"/>
-
</typedef>
-
-
<!-- Helper variables for Stack-usage calculation -->
-
<typedef name="TypeArray2" size="8">
-
<var name="XcurSP" type="uint32_t" value="0"/>
-
<var name="bSimpleStk" type="int32_t"/>
-
</typedef>
-
-
</typedefs>
-

Example: Using read

-

main.c file

struct MyComp_info_t {
-
int version; // component version
-
int channels; // number of communication channels available
-
int buffersize; // size of the communication buffer
-
};
-
-
struct MyComp_info_t MyComp_info;
-
-
void MyComp_initialize (void) {
-
MyComp_info.version = 3; // Set information
-
MyComp_info.channels = 1;
-
MyComp_info.buffersize = sizeof(MyComp_data.buf);
-
}
-

*.SCVD file

<objects>
-
<object name="MyComponent">
-
<read name="MyComp_info" type="MyComp_info" symbol="MyComp_info"/>
-
<out name="MyComponent Overview">
-
<item property="Generic">
-
<item property="Version" value="%d[MyComp_info.version]"/>
-
<item property="Channels" value="%d[MyComp_info.channels]"/>
-
<item property="Max. Transmit Size" value="%d[MyComp_info.buffersize] Bytes"/>
-
</item>
-
</out>
-
</object>
-
</objects>
-

Example: Using import

-

main.c File

// Configuration defines
-
#define CONDITION_0 (0)
-
#define CONFIG_NAME_SZ (8)
-
#define CONDITION_1 (0)
-
-
// Example structure
-
typedef struct {
-
uint32_t Member_0;
-
uint32_t Member_1;
-
} StructA_t;
-
-
// Structure of variable size
-
typedef struct {
-
uint32_t Var_0;
-
-
#if (CONDITION_0 == 1)
-
StructA_t Sample0; // Conditionally included
-
#endif
-
StructA_t Sample1;
-
char Name[CONFIG_NAME_SZ]; // Variable size: size defined by CONFIG_NAME_SZ (default: CONFIG_NAME_SZ=4)
-
-
#if (CONDITION_1 == 1)
-
uint32_t Var_1; // Conditionally included
-
#endif
-
uint32_t Var_2;
-
-
} StructOfVarSz;
-
StructofVarSz MyVarStruct;
-

SCVD File

<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
<component name="MyView2" version="0.0.1"/> <!-- name and version of the component -->
-
-
<typedefs>
-
<typedef name="StructOfVarSz" size="32" import="MyVarStruct" info="Structure Of Variable Size">
-
<member name="Var_0" type="uint32_t" offset="0" info="Variable 0 (always present)"/>
-
-
<!-- StructA_t inlined -->
-
<member name="Sample0_Member0" type="uint32_t" info="Structure Sample0, member Member0 (included conditionally)"/>
-
<member name="Sample0_Member1" type="uint32_t" info="Structure Sample0, member Member1 (included conditionally)"/>
-
-
<!-- StructA_t inlined -->
-
<member name="Sample1_Member0" type="uint16_t" info="Structure Sample1, member Member0 (always included)"/>
-
<member name="Sample1_Member1" type="uint16_t" info="Structure Sample1, member Member1 (always included)"/>
-
-
<member name="Name" type="uint8_t" size="4" info="Array Name, actual size=CONFIG_NAME_SZ"/>
-
<member name="Var_1" type="uint32_t" info="Variable 1 (conditionally included)"/>
-
<member name="Var_2" type="uint32_t" info="Variable 2 (always present)"/>
-
</typedef>
-
-
// After import (taking "Configuration defines" into account) the typedef above would have the following properties:
-
-
<typedef name="StructOfVarSz" size="28" import="MyVarStruct" info="Size is updated">
-
<member name="Var_0" type="uint32_t" offset="0" info=""/>
-
-
<!-- StructA_t inlined -->
-
<member name="Sample0_Member0" type="uint32_t" offset="-1" info=""/>
-
<member name="Sample0_Member1" type="uint32_t" offset="-1" info=""/>
-
-
<!-- StructA_t inlined -->
-
<member name="Sample1_Member0" type="uint16_t" offset="4" info=""/>
-
<member name="Sample1_Member1" type="uint16_t" offset="8" info=""/>
-
-
<member name="Name" type="uint8_t" size="8" offset="12" info="Size is updated (if possible)"/>
-
<member name="Var_1" type="uint32_t" offset="-1" info=""/>
-
<member name="Var_2" type="uint32_t" offset="20" info=""/>
-
</typedef>
-
-
</component_viewer>
-

 

-
-
-
- - - - diff --git a/pack/1.2.0/elem_typedefs.js b/pack/1.2.0/elem_typedefs.js deleted file mode 100644 index e589996..0000000 --- a/pack/1.2.0/elem_typedefs.js +++ /dev/null @@ -1,8 +0,0 @@ -var elem_typedefs = -[ - [ "/component_viewer/typedefs/typedef", "elem_typedefs.html#elem_typedef", null ], - [ "/component_viewer/.../.../var", "elem_var.html", null ], - [ "/component_viewer/typedefs/typedef/member", "elem_member.html", [ - [ "/component_viewer/typedefs/typedef/member/enum", "elem_member.html#elem_enum", null ] - ] ] -]; \ No newline at end of file diff --git a/pack/1.2.0/elem_var.html b/pack/1.2.0/elem_var.html deleted file mode 100644 index 4f4b61a..0000000 --- a/pack/1.2.0/elem_var.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - -CMSIS-View: /component_viewer/.../.../var - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
/component_viewer/.../.../var
-
-
-
Note
Define variables that are used locally for temporary calculations. A redefinition of a <var> element using the same name is not permitted and creates an error.
- - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
typedef /component_viewer/typedefs/typedef
object /component_viewer/objects/object
list /component_viewer/objects/object/.../list
Attributes Description Type Use
name Name of variable. The name can be used in Expressions. xs:string optional
value Expression that specifies the initial value. xs:string optional
type Scalar Data Types or pointer to Complex Data Types to access chained lists. xs:string optional
info Descriptive text with additional information (comment). xs:string optional
-

Example:

<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
-
<typedefs>
-
<typedef name="DefVars">
-
<member name="stack_frame" type="uint8_t" offset="37" info="Stack frame: 0=Basic, 1=Extended, (2=VFP/D16 stacked, 4=NEON/D32 stacked)"/>
-
<member name="SP" type="uint32_t" offset="40" info="Current task Stack pointer (R13)"/>
-
<member name="Stack" type="uint32_t" offset="44" info="Pointer to Task Stack memory block"/>
-
-
<!-- calculated offset -->
-
<member name="Entry" type="uint32_t" offset="40 + 8" info="Thread Entry Address"/>
-
</typedef>
-
<typedefs>
-
-
<objects>
-
<object name="VarExamples">
-
<!-- indirected read example -->
-
<var name="adr_os_idle_TCB" type="uint32_t" value="__FindSymbol (&quot;os_idle_TCB&quot;)" info="find symbol 'os_idle_TCB', result is the address"/>
-
<!-- or -->
-
<var name="adr_os_idle_TCB" type="uint32_t" value="__FindSymbol ('os_idle_TCB')" />
-
-
<var name="array" type="uint8_t" size="10" />
-
<var name="free_space" type="uint64_t" value="0x1D9988000" />
-
<object>
-
-
<object name="ListVars">
-
<list name="i" start="0" limit="10" >
-
<var name="j" type="uint8_t" value="5" />
-
<calc>
-
j += j+i;
-
</calc>
-
</list>
-
-
</object>
-
<objects>
-
-
</component_viewer>
-

 

-
-
-
- - - - diff --git a/pack/1.2.0/er_memory_location.png b/pack/1.2.0/er_memory_location.png deleted file mode 100644 index 37329e2..0000000 Binary files a/pack/1.2.0/er_memory_location.png and /dev/null differ diff --git a/pack/1.2.0/er_theory.html b/pack/1.2.0/er_theory.html deleted file mode 100644 index 2da6ce6..0000000 --- a/pack/1.2.0/er_theory.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - - -CMSIS-View: Theory of operation - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Theory of operation
-
-
-

This section describes how the Event Recorder collects event data, generates time stamps, and transfers this information via a debug unit to a host computer.

-

The Event Recorder is implemented in the target application using the software component CMSIS-View:Event Recorder which adds the source file EventRecorder.c to the application. Each event is stored in a 16-byte structure that is composed of a 16-bit id, 32-bit time stamp, two 32-bit data values and consistency check values.

-

To store these events, a circular buffer is provided that can store a minimum of 8 events. The size of this circular buffer is configurable with the #define EVENT_RECORD_COUNT.

-

-Event id

-

The Event Data Recording functions get a parameter id that is composed of level, component number, and message number as shown below:

- - - - - - - - - - - -
id bits Description
message number 0..7 identifies the event message information of the software component
component number 8..15 identifies the software component (also used for filtering, see table below)
level 16..17 specifies the class of the message for filtering (see table below)
— (reserved) 18..31 set to 0
-

The level specifies the category of the event message and can be used for filtering:

- - - - - - - - - - - -
level Message relates to ...
EventLevelError = 0 Run-time error
EventLevelAPI = 1 API function call
EventLevelOp = 2 Internal operation
EventLevelDetail = 3 Additional detailed information of operations
-

The component number specifies the software component that the event message belongs to and can be also used for filtering:

- - - - - - - - - - - - - - - - - - - - - -
component number Relation to software components
0x0 .. 0x3F (0 .. 63) software components of the user application
0x40 .. 0x7F (64 .. 127) third party middleware components
0x80 .. 0xED (128 .. 237) MDK-Middleware components
0xEE (238) Fault component
0xEF (239) Start/Stop events for Event Statistic information
0xF0 .. 0xFC (240 .. 253) RTOS kernel
0xFD (253) Inter-process communication layer (multiprocessor systems)
0xFE (254) printf-style debug outputs
0xFF (255) Event Recorder messages
-

The following sections describe:

-
    -
  • Configuration : explains the set-up of the Event Recorder and the configuration of a user provided timer.
  • -
  • Event filtering : shows how to limit the amount of data that is displayed in the Event Recorder window.
  • -
  • Resource requirements : lists the technical data and explains the hardware and software requirements.
  • -
-

-Configuration

-

Adding the software component CMSIS-View:Event Recorder to a project will copy the file EventRecorderConf.h into the project that is used to define the configuration parameters of the Event Recorder. It uses Configuration Wizard Annotations, so IDEs that support this can also show a graphical representation of the file:

-
- -
-EventRecorderConf.h in Configuration Wizard View
-

Following configuration parameters are defined in the EventRecorderConf.h file:

- - - - - - - - - -
Option #define Description
Number of Records EVENT_RECORD_COUNT Specifies the number or records stored in the Event Record Buffer. Each record is 16 bytes.
Time Stamp Source EVENT_TIMESTAMP_SOURCE Specifies the timer that is used as time base. Refer to Time stamp source below for more information.
Time Stamp Clock Frequency [Hz] EVENT_TIMESTAMP_FREQ Specifies the initial timer clock frequency.
-
-

Note

    -
  • Set the time stamp clock frequency to your target's core clock frequency to avoid problems in determining the correct frequency.
  • -
-
-

-Time stamp source

-

The following time stamp sources can be selected:

- - - - - - - - - - - - -
Source Description
DWT Cycle Counter Default setting. The DWT cycle counter is part of the CoreSight debug interface. DWT is not available with Cortex-M0/M0+/M23. uVision can simulate DWT using a script.
SysTick System tick timer is available on most Cortex-M processors. But in power-down modes it might be disabled.
CMSIS-RTOS2 System Timer The system tick counter provided by a CMSIS-RTOS2 compliant real-time operating system.
User Timer (Normal Reset) User-defined timer that stops by any system reset. Refer to Event Recorder - Timer for more information.
User Timer (Power-On Reset) User-defined timer that stops only by power-on reset. Refer to Event Recorder - Timer for more information.
-
-

Note

    -
  • When DWT Cycle Counter is selected on Cortex-M0/M0+/M23, a warning is issued at compile time:
    Invalid Time Stamp Source selected in EventRecorderConf.h!
    -
  • -
  • When using the CMSIS-RTOS2 System Timer, it is strongly recommended to set up the Time Stamp Clock Frequency [Hz] (see above) to the correct value to avoid display problems in the Event Recorder and System Analyzer windows.
  • -
-
-

-Configure for targets without DWT Cycle Counter

-

Arm Cortex-M0/M0+/M23 processors do not offer the DWT Cycle Counter and require therefore alternative time-stamp sources.

-

SysTick

-

For applications that do not use the SysTick timer, you may configure EventRecorderConf.h with:

-
#define EVENT_TIMESTAMP_SOURCE 1 // use SysTick
-
#define EVENT_TIMESTAMP_FREQ 25000000U // processor core clock (input frequency to SysTick)
-

CMSIS-RTOS2 System Timer

-

For applications that use a CMSIS-RTOS2 compliant RTOS (SysTick timer used by RTOS), you may configure EventRecorderConf.h with:

-
#define EVENT_TIMESTAMP_SOURCE 2 // use CMSIS-RTOS2 System Timer
-
#define EVENT_TIMESTAMP_FREQ 25000000U // processor core clock (input frequency to SysTick)
-

-DWT Cycle Counter with µVision simulator

-

The DWT Cycle Counter can be simulated with the following debug initialization file, for example Debug_Sim.ini:

-
MAP 0xE0001000, 0xE0001007 READ WRITE
-
-
signal void DWT_CYCCNT (void) {
-
while (1) {
-
rwatch(0xE0001004);
-
_WWORD(0xE0001004, states);
-
}
-
}
-
-
DWT_CYCCNT()
-

-Resource requirements

-

Technical data of Event Recorder firmware

-

Target: Cortex-M3 using DWT cycle counter as timer

- - - - - - - - - - - - - - - - - - - - - - - -
Parameter ARMCC V6.13.1 ARMCC V6.13.1
Compiler options -Os -O3
ROM size < 1.7k bytes < 3.4k bytes
RAM size @8 records (min) 292 bytes 292 bytes
RAM size @64 records (default) 1188 bytes 1188 bytes
EventRecord2 (id+8bytes) 197 cycles 184 cycles
EventRecord4 (id+16bytes) 343 cycles 319 cycles
EventRecordData (id+8bytes) 276 cycles 252 cycles
EventRecordData (id+16bytes) 425 cycles 397 cycles
EventRecordData (id+24bytes) 554 cycles 519 cycles
EventRecordData (id+32bytes) 685 cycles 643 cycles
-
-

Note

    -
  • ROM size is specified for image with all Event Recorder functions being used.
  • -
  • RAM size can be calculated as 164 + 16 * <Number of Records> (defined by EVENT_RECORD_COUNT in EventRecorderConf.h).
  • -
  • Timing was measured in simulator (zero cycle memory, no interrupts). Function parameter in application is not considered.
  • -
-
-

Usage of records by Event Recorder functions

- - - - - - - - - -
Function Number of Records used
EventRecord2 1
EventRecord4 2
EventRecordData (event data length + 7) / 8
-
-
-
- - - - diff --git a/pack/1.2.0/er_use.html b/pack/1.2.0/er_use.html deleted file mode 100644 index 0211266..0000000 --- a/pack/1.2.0/er_use.html +++ /dev/null @@ -1,406 +0,0 @@ - - - - - - - -CMSIS-View: Using Event Recorder - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Using Event Recorder
-
-
-
-

Note

    -
  • The following steps explain how to enable views for static information and dynamic events in the µVision debugger. Other tools might use different ways to accomplish this.
  • -
-
-

For User Code:

-
    -
  1. Add Event Recorder Component.
  2. -
  3. [Optional] Locate the Event Recorder data to uninitialized memory to avoid overwriting the entries on program reset.
  4. -
  5. [Optional] Set the correct initial time stamp.
  6. -
  7. [Optional] Create a heartbeat to avoid timer overflow problems.
  8. -
  9. Add Event Annotations in the C source to be able to stream dynamic event information.
  10. -
  11. Create an SCVD file to Format Event Information that matches with application code.
  12. -
-

For Pre-annotated Software Components:

-

The software packs for MDK-Middleware, CMSIS, CMSIS-FreeRTOS already contain the relevant *.SCVD files and the related event annotations in the C source code.

-
    -
  1. Add Event Recorder Component to the project.
  2. -
  3. Select a Debug variant for the middleware component to enable event information (for RTX5 select Source variant).
  4. -
-

-Add Event Recorder Component

-

To use the Event Recorder in an application, you need to:

-
    -
  • Select the software component CMSIS-View:Event Recorder using the RTE management dialog.
    -
    Note
    Usually, you select the DAP variant. If you are using a simulation model (FastModel or Arm Virtual Hardware), you can select Semihosting to write the Event Recorder data into a file on the PC.
    -
  • -
  • Include the EventRecorder.h header file and add the event recorder initialization function to the source code:
  • -
-
:
-
#include "EventRecorder.h" // ARM::CMSIS-View:Event Recorder
-
:
-
int main (void) {
-
:
-
HAL_Init(); // configure hardware abstraction layer
-
SystemClock_Config(); // configure system clock
-
MemoryBus_Config(); // configure external memory bus
-
EventRecorderInitialize (EventRecordAll, 1); // initialize and start Event Recorder
-
:
-
// other application code
-
}
-
-

Note

    -
  • By default, the Event Recorder uses the DWT Cycle Counter as a time stamp source. This is not available on Cortex-M0/M0+/M23. Change the configuration to use an alternative timer instead.
  • -
  • For Keil RTX5 (version 5.4.0 and above), no call to EventRecorderInitialize is required. Instead enable Event Recorder Configuration - Global Initialization in the RTX_Config.h file. Refer to the CMSIS-RTX Event Recorder Configuration for more information.
  • -
-
-

-Locate Event Recorder in uninitialized memory

-

For uninterrupted recording of program resets, the RAM for the Event Recorder component should be placed to a memory region that is not cleared (or initialized) by a system restart (reset).

-

To setup this uninitialized RAM, use either Create memory region using linker script or Create memory region using µVision procedure.

-
-

Notes

    -
  • Make sure that you use normal, non-cacheable, and non-shareable memory for Event Recorder data.
  • -
-
-

-Calculate memory requirements

-

The memory required for the Event Recorder data is calculated with the formula:

-
164 + 16 x Number_of_Records (defined by EVENT_RECORD_COUNT in EventRecorderConf.h)
-

In this example we configure 0x800 bytes (as it is easier) which can hold more than 64 records.

-

-Create memory region using linker script

-

If the linker script does not contain provisions for uninitialized memory section then, for respective toolchain, add the necessary section like described below:

-

Arm Compiler

-

For the Arm Compiler toolchain add the following code snippet to the linker script (.sct file), in the part specifying RAM sections (usually before Heap section):

-
RW_NOINIT <start_address> UNINIT 0x800 {
-
*(.bss.noinit)
-
*(.bss.noinit.*)
-
}
-
-

Notes

    -
  • <start_address> is the physical address in RAM where the section will start
  • -
  • 0x800 is the size of the section, adjust that as necessary
  • -
-
-

GCC

-

For the GCC toolchain add the following code snippet to the linker script (.ld file), in the part specifying RAM sections (usually before Heap section):

-
.noinit (NOLOAD) :
-
{
-
. = ALIGN(4);
-
__noinit_start = .;
-
*(.noinit)
-
*(.noinit.*)
-
. = ALIGN(4);
-
__noinit_end = .;
-
} > RAM
-
-

Note

    -
  • The code snippet above expects defined RAM memory region, if RAM region is not defined then adapt the script accordingly.
  • -
-
-

-Create memory region using µVision

-

To setup this uninitialized RAM in the µVision, follow the steps below:

-
    -
  1. In the Options for Target dialog, on the Utilities tab, click on Settings for "Use Target Driver for Flash Programming". Note the "RAM for Algorithm" area:
    -
  2. -
  3. In the Options for Target dialog, define a Read/Write memory area that is not initialized and which does not overlap with the area from the first step.
    - For example, split IRAM1 into two regions. Reduce size of IRAM1 by 0x800 and create an IRAM2 area with start 0x2001F800 and size 0x800. Enable NoInit for this IRAM2 region.
    -
  4. -
  5. In the Options for Component Class 'CMSIS-View' dialog (opens with right-click on EventRecorder.c in the Project window), on the Memory tab, assign Zero Initialized Data to the IRAM2 region.
  6. -
  7. Build the application to place the Event Recorder data buffers to uninitialized RAM. You may verify the generated scatter file:
    ; *************************************************************
    -
    ; *** Scatter-Loading Description File generated by uVision ***
    -
    ; *************************************************************
    -
    -
    LR_IROM1 0x00000000 0x00040000 { ; load region size_region
    -
    ER_IROM1 0x00000000 0x00040000 { ; load address = execution address
    -
    *.o (RESET, +First)
    -
    *(InRoot$$Sections)
    -
    .ANY (+RO)
    -
    }
    -
    RW_IRAM1 0x20000000 0x0001F800 { ; RW data
    -
    .ANY (+RW +ZI)
    -
    }
    -
    RW_IRAM2 0x2001F800 UNINIT 0x00000800 {
    -
    EventRecorder.o (+ZI)
    -
    }
    -
    }
    -
  8. -
-
-

Note

    -
  • If the Event Recorder data buffer is not in uninitialized memory, the Command window of the debugger displays:
    Warning: Event Recorder not located in uninitialized memory!".
    -
  • -
  • Knowledgebase article 4012 explains how to create custom memory areas in Keil uVision.
  • -
  • If your RAM is not big enough to separate the Event Recorder area from the Flash programming area, make sure that you enable "Reset and Run" for the Download Function:
  • -
-
    -
  • If this still produces broken Event Recorder records after a reset, a power-cycle of the target system will help.
  • -
-
-

-Time Stamp Settings

-

To avoid display problems in System Analyzer, set the Time Stamp Clock Frequency [Hz] to the initially expected value:

-
- -
-Event Recorder Configuration Wizard
-

-Event Recorder heartbeat

-

The Event Recorder timer is a 32-bit counter that can overflow. To avoid overflow problems, send a "heartbeat" event within the limits of this 32-bit counter.

-

Calculation Example

-

Assuming that your application is running at 168 MHz, you can calculate the time between two heartbeats like the following:

-
2^32 / 168000000 Hz = 25.57 s
-

So you need to generate an event every 25 s. This can be an event with an event ID that you don't need and thus filter from the display in Event Recorder or an event that you use to check if your application is still running.

-

-Event Annotations

-

To to stream dynamic event information, insert calls to the Event Data Recording functions on relevant code locations:

- -

These Event Data Recording functions receive as first parameter an id event identifier used for filtering and displaying. The macro EventID may be used to compose id values to include level and component numbers.

-

Example:

-
#include "EventRecorder.h" // ARM::CMSIS-View:Event Recorder
-
-
int some_error = 0; // error flag
-
char string[10] = "MyTest"; // some test string
-
-
void MyFunction (int parameter) {
-
EventRecord2 (1+EventLevelAPI, parameter, 0); // Event at Start
-
;
-
if (some_error) {
-
EventRecord2 (2+EventLevelError, 0, 0); // Event at Error
-
return;
-
}
-
EventRecordData (3+EventLevelOp, string, sizeof(string)); // Event at Finish
-
return;
-
}
-
-
int main (void) {
-
EventRecorderInitialize (EventRecordAll, 1); // initialize and start Event Recorder
-
-
MyFunction (0x10);
-
some_error = 1; // set error flag
-
MyFunction (0x60);
-
}
-

When executing this example in the µVision debugger, use the menu command View - Analysis Windows - Event Recorder to open the Event Recorder window. This should show the following output:

-
- -
-Output shown in Event Recorder window
-

-Format Event Information

-

You may create an *.SCVD (Software Component View Description) file to format the event output so that matches the application. The event output is created using the /component_viewer/events.

-

SCVD file example

-
<?xml version="1.0" encoding="utf-8"?>
-
-
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
-
<component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
-
-
<events>
-
<group name="My Events Group">
-
<component name="MyApp" brief="My Application" no="0x00" prefix="EvrNetMM_" info="Network - System - Dynamic Memory Management"/>
-
</group>
-
-
<event id="1" level="API" property="MyFunction" value="parameter=%x[val1]" info="Event on start of MyFunction" />
-
<event id="2" level="Error" property="MyFunctionError" info="Event on error in MyFunction" />
-
<event id="3" level="Op" property="MyFunctionProcess" value="string=%t[val1]" info="Event on operation in MyFunction" />
-
</events>
-
-
</component_viewer>
-

In the µVision debugger, this *.SCVD file is specified in the dialog Options for Target - Debug - Manage Component Viewer Description Files. Click on Add Component Viewer Description File and add the related *.SCVD file.

-
- -
-Manage *.SCVD files
-

The Event Recorder displays the events as shown below.

-
- -
-Event Recorder output formatted with *.SCVD file
-

The described groups and events also show up in the filter dialog.

-
- -
-Event Recorder Filter dialog
-

-Software Component Variants

-

The software packs for MDK-Middleware and CMSIS already contain SCVD files that match the related event annotations in the C source code. However, you need to select the right component Variant. For MDK-Middleware, you need to select the Debug variants, whereas for Keil RTX5, you need to add the Source variant.

-

The example below enables event recording for the MDK-Middleware File System component:

-
- -
-Select debug variant
-

-Redirecting printf output

-

The Event Recorder can be used to retarget printf output. This is especially interesting for targets without ITM, such as Cortex-M0/M0+/M23. Steps to enable this:

-
    -
  1. In the Manage Run-Time Environment window, select the component CMSIS-Compiler:STDOUT:Event Recorder.
  2. -
  3. Select the component CMSIS-View:Event Recorder or use the Resolve button.
  4. -
  5. In the user code, include EventRecorder.h and call the EventRecorderInitialize() function in main().
  6. -
-

Also see CMSIS-Compiler documentation for addition details about printf redirecting.

-

-Event filtering

-

Filtering for events reduces the amount of data transmitted from the target to the debugger. To filter for events, use the button Configure Target Event Recording:

-
- -
-Event filter button
-

A new window opens up that lets you filter for events that you are interested in:

-
- -
-Filtering events
-

-Semihosting

-

Semihosting is a mechanism that enables code running on an Arm target to communicate and use the input/output facilities on a host computer that is running a debugger.

-

Examples of these facilities include keyboard input, screen output, and disk I/O. For example, you can use this mechanism to enable functions in the C library, such as printf and scanf, to use the screen and keyboard of the host instead of having a screen and keyboard on the target system.

-

With the Event Recorder, you can use semihosting with models to write the events into a file on your PC. This works with Arm Fast Models, Arm Fixed Virtual Platforms, and Arm Virtual Hardware alike.

-

The file that is written is called EventRecorder.log and is a binary file that is available in the root directory of your project. Use eventlist Utility to read and decode the binary data.

-
-

Note

    -
  • Your model needs to be configured for semihosting (refer to the documentation of your modeling technology on how to do that).
  • -
  • You can specify a different name for the log file by specifying a define called EVENT_LOG_FILENAME.
  • -
  • In µVision, once you start a new debug session, the log file will be overwritten. While in debug, new messages will be appended to the currently open log file.
  • -
  • In µVision, the semihosting variant will not work with real target hardware. Instead, program execution will hit a breakpoint and stop there.
  • -
  • In µVision, you can still use the Event Recorder window in µVision to see the events coming in while the file is written to the hard drive of your PC.
  • -
-
-
-
-
- - - - diff --git a/pack/1.2.0/es_start_stop_w_energy.png b/pack/1.2.0/es_start_stop_w_energy.png deleted file mode 100644 index fa6bfcd..0000000 Binary files a/pack/1.2.0/es_start_stop_w_energy.png and /dev/null differ diff --git a/pack/1.2.0/ev_stat.html b/pack/1.2.0/ev_stat.html deleted file mode 100644 index 69d64bf..0000000 --- a/pack/1.2.0/ev_stat.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - -CMSIS-View: Event Statistics - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Event Statistics
-
-
-

-

-Overview

-

The Event Execution Statistics functions allow you to collect and statistical data about the code execution. Any debug adapter can be used to record execution timing and number of calls for annotated code sections:

-
- -
-Event Statistics for user code
-

Energy profiling is of annotated code sections is possible using ULINKplus. When combined with power measurement, the Event Statistics window displays the energy consumption of the code section with min/man/average values:

-
- -
-User code energy profiling
-

For more information, refer to the EventStatistic example.

-

Benefits of Event Statistics:

-
    -
  • Collect statistical data about the code execution (time and energy).
  • -
  • Log files enable comparisons between different build runs in continuous integration (CI) environments.
  • -
  • Improve overall code quality and energy profile (especially relevant for battery driven applications).
  • -
-

-Display current consumption

-

Using a ULINKplus debug adapter, you can also record and analyze the energy that has been consumed in each execution slot. Using the above example on a hardware target with a ULINKplus, you get the following display in the Event Statistics window of µVision (the Event Recorder window does not change):

-
- -
-Event Statistics displaying the energy consumption
-
-
-
- - - - diff --git a/pack/1.2.0/evntlst.html b/pack/1.2.0/evntlst.html deleted file mode 100644 index 80a42ea..0000000 --- a/pack/1.2.0/evntlst.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - -CMSIS-View: eventlist Utility - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
eventlist Utility
-
-
-

-

-Overview

-

eventlist is a command line tool for processing Event Recorder data stored to a log file.

-

The utility is a Go application that is available for all major operating systems and is run from the command line. Refer to the eventlist source code for more information including the invocation details.

-

-Usage example

-

eventlist functionality can be easily tested with the example project EventStatistic.

-

Build and run the example. Then in the terminal run eventlist -s EventRecorder.log to obtain the following human readable output:

-
Start/Stop event statistic
-
--------------------------
-
-
Event count total min max average first last
-
----- ----- ----- --- --- ------- ----- ----
-
A(0) 10000 31.44509s 1.69997ms 3.80041ms 3.14451ms 3.29962ms 3.59964ms
-
Min: Start: 31.94980000 val1=0x000001f5, val2=0x00000000 Stop: 31.95149997 val1=0x10004d43, val2=0x0000003c
-
Max: Start: 84.70757283 val1=0x000003a5, val2=0x00000000 Stop: 84.71137324 val1=0x10004d43, val2=0x00000038
-
-
A(15) 10000 169.75100s 2.49964ms 42.78648s 16.97510ms 3.99995ms 4.30004ms
-
Min: Start: 81.87697318 val1=0x000001f8, val2=0x00000000 Stop: 81.87947282 val1=0x10004d43, val2=0x0000003c
-
Max: Start: 37.41299154 val1=0x0000032f, val2=0x00000000 Stop: 80.19947314 val1=0x10004d43, val2=0x0000003c
-
-
B(0) 10000 10.83677s 0.00000s 169.29161ms 1.08368ms 1.60016ms 1.00010ms
-
Min: Start: 1.76679986 val1=0x10004d43, val2=0x0000005c Stop: 1.76679986 val1=0x0000018e, val2=0x00000047
-
Max: Start: 37.24369993 val1=0x10004d43, val2=0x0000005c Stop: 37.41299154 val1=0x000066bf, val2=0x00000487
-
-
C(0) 1 180.67372s 180.67372s 180.67372s 180.67372s 180.67372s 180.67372s
-
Min: Start: 0.00000000 val1=0x10004d43, val2=0x00000057 Stop: 180.67371888 val1=0x10004d43, val2=0x00000062
-
Max: Start: 0.00000000 val1=0x10004d43, val2=0x00000057 Stop: 180.67371888 val1=0x10004d43, val2=0x00000062
-

The output can be improved with extra context as explained in the next section.

-

-Adding context

-

When adding the AXF file and the SCVD file to the eventlist command, the context of the program is shown.

-

For the event recorder log from the Usage example run in a terminal window:

-
eventlist -a ./out/EventStatistic/Debug/AVH/Debug+AVH.axf -I ./EventRecorder.scvd ./EventRecorder.log
-

The output should look like the following:

-
:
-
-
53947 180.66841874 EvCtrl StartAv(15) v1=776 v2=0
-
53948 180.66911914 EvCtrl StartAv(0) v1=776 v2=0
-
53949 180.67271878 EvCtrl StopA(15) File=./EventStatistic/main.c(60)
-
53950 180.67271878 EvCtrl StartB(0) File=./EventStatistic/main.c(92)
-
53951 180.67371888 EvCtrl StopBv(0) v1=15150 v2=802
-
53952 180.67371888 EvCtrl StopC(0) File=./EventStatistic/main.c(98)
-
-
Start/Stop event statistic
-
--------------------------
-
-
Event count total min max average first last
-
----- ----- ----- --- --- ------- ----- ----
-
A(0) 10000 31.44509s 1.69997ms 3.80041ms 3.14451ms 3.29962ms 3.59964ms
-
Min: Start: 31.94980000 v1=501 v2=0 Stop: 31.95149997 File=./EventStatistic/main.c(60)
-
Max: Start: 84.70757283 v1=933 v2=0 Stop: 84.71137324 File=./EventStatistic/main.c(56)
-
-
A(15) 10000 169.75100s 2.49964ms 42.78648s 16.97510ms 3.99995ms 4.30004ms
-
Min: Start: 81.87697318 v1=504 v2=0 Stop: 81.87947282 File=./EventStatistic/main.c(60)
-
Max: Start: 37.41299154 v1=815 v2=0 Stop: 80.19947314 File=./EventStatistic/main.c(60)
-
-
B(0) 10000 10.83677s 0.00000s 169.29161ms 1.08368ms 1.60016ms 1.00010ms
-
Min: Start: 1.76679986 File=./EventStatistic/main.c(92) Stop: 1.76679986 v1=398 v2=71
-
Max: Start: 37.24369993 File=./EventStatistic/main.c(92) Stop: 37.41299154 v1=26303 v2=1159
-
-
C(0) 1 180.67372s 180.67372s 180.67372s 180.67372s 180.67372s 180.67372s
-
Min: Start: 0.00000000 File=./EventStatistic/main.c(87) Stop: 180.67371888 File=./EventStatistic/main.c(98)
-
Max: Start: 0.00000000 File=./EventStatistic/main.c(87) Stop: 180.67371888 File=./EventStatistic/main.c(98)
-

Customizing the SCVD file enables creating application specific output that can be easily read and analyzed for debugging purposes.

-
-
-
- - - - diff --git a/pack/1.2.0/evr.html b/pack/1.2.0/evr.html deleted file mode 100644 index 43fc6a1..0000000 --- a/pack/1.2.0/evr.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - -CMSIS-View: Event Recorder - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Event Recorder
-
-
-

-

-Overview

-

The software component Event Recorder provides API functions for event annotations in the application code or software component libraries. These API functions record event timing and data information while the program is executing.

-

The Event Filter which is controlled from the target application or the debugger allows to specify the event ids that are stored in the event buffer that is located in the memory of the target system. This event buffer may be continuously read by the debug unit and displayed in the Event Recorder window of the debugger.

-

During program execution, the debugger reads the content of the event buffer using a standard debug unit that is connected via JTAG or SWD to the CoreSight Debug Access Port (DAP). The Event Recorder requires no trace hardware and can be therefore used on any Cortex-M processor.

-
- -
-Event Recorder block diagram with exemplary output in an IDE
-
    -
  • Theory of operation explains in details how the Event Recorder collects event data, generates time stamps, and transfers this information via a debug unit to a host computer.
  • -
  • Using Event Recorder provides instructions on how to enable Event Recorder in a project.
  • -
-

-Features and Benefits

-
    -
  • Provides visibility to the dynamic execution of an application at little (memory) cost.
  • -
  • Works on all Cortex-M devices with JTAG or SWD debug ports.
  • -
  • Adds RTOS awareness to a development tool without complex DLL programming.
  • -
  • printf re-targeting for devices without ITM, such as Arm Cortex-M0/M0+/M23.
  • -
  • Fast time-deterministic execution of event recorder functions with minimal code and timing overhead.
  • -
  • For Arm Cortex-M3/M4/M7/M33/M55/M85 processor based devices, Event Recorder functions will not disable interrupts.
  • -
  • No need for a debug or release build as the event annotations can remain in production code.
  • -
  • Collecting the data from the on-chip memory is done using simple read commands.
  • -
  • Using the DWT Cycle Count register for creating time stamps reduces code overhead (available on Arm Cortex-M3/M4/M7/M33/M55/M85).
  • -
-
-
-
- - - - diff --git a/pack/1.2.0/evr.js b/pack/1.2.0/evr.js deleted file mode 100644 index 1d1131a..0000000 --- a/pack/1.2.0/evr.js +++ /dev/null @@ -1,30 +0,0 @@ -var evr = -[ - [ "Overview", "evr.html#about_evr", null ], - [ "Features and Benefits", "evr.html#evr_benefits", null ], - [ "Theory of operation", "er_theory.html", [ - [ "Event id", "er_theory.html#event_id", null ], - [ "Configuration", "er_theory.html#er_config", [ - [ "Time stamp source", "er_theory.html#TimeStampSource", null ], - [ "Configure for targets without DWT Cycle Counter", "er_theory.html#noDWT", null ], - [ "DWT Cycle Counter with µVision simulator", "er_theory.html#simulation", null ] - ] ], - [ "Resource requirements", "er_theory.html#er_req", null ] - ] ], - [ "Using Event Recorder", "er_use.html", [ - [ "Add Event Recorder Component", "er_use.html#Add_Event_Recorder", null ], - [ "Locate Event Recorder in uninitialized memory", "er_use.html#place_uninit_memory", [ - [ "Calculate memory requirements", "er_use.html#evr_memory_calc", null ], - [ "Create memory region using linker script", "er_use.html#evr_create_mem_ls", null ], - [ "Create memory region using µVision", "er_use.html#evr_create_mem_uv", null ] - ] ], - [ "Time Stamp Settings", "er_use.html#initial_timestamp", null ], - [ "Event Recorder heartbeat", "er_use.html#heartbeat", null ], - [ "Event Annotations", "er_use.html#Event_Annotations", null ], - [ "Format Event Information", "er_use.html#Format_Event_Information", null ], - [ "Software Component Variants", "er_use.html#Debug_Variants", null ], - [ "Redirecting printf output", "er_use.html#printf_redirect", null ], - [ "Event filtering", "er_use.html#er_filtering", null ], - [ "Semihosting", "er_use.html#er_semihosting", null ] - ] ] -]; \ No newline at end of file diff --git a/pack/1.2.0/extra_navtree.css b/pack/1.2.0/extra_navtree.css deleted file mode 100644 index 87272cc..0000000 --- a/pack/1.2.0/extra_navtree.css +++ /dev/null @@ -1,164 +0,0 @@ -:root { - --arm_light_blue: #00C1DE; - --arm_blue: #11809F; - --arm_blue1: #0091BD; - --arm_dark_blue: #002B49; - --arm_light_gray: #E5ECEB; - --arm_light_gray1: #EFF5F4; - --arm_light_gray2: #EBEBEB; - --arm_light_gray3: #F7F7F7; - --arm_dark_gray: #7D868C; - --arm_black: #333E48; - --arm_orange: #FF6B00; -} - -#nav-tree ul { - list-style:none outside none; - margin:0px; - padding:0px; -} - -#nav-tree li { - white-space:nowrap; - margin:0px; - padding:0px; -} - -#nav-tree .plus { - margin:0px; -} - -#nav-tree .selected { - background-image: none; - background-repeat:no-repeat; - text-shadow: none; - border: 1.5px solid var(--arm_blue); - border-left-width: 5px; - margin-left:-10px; /*correction to place selection border on the edge screen edge */ -} - -#nav-tree img { - margin:0px; - padding:0px; - border:0px; - vertical-align: middle; -} - -#nav-tree a { - color: var(--nav-text-normal-color); - text-decoration:none; - padding:0px; - padding-left:0px; - margin:0px; - outline:none; -} - -#nav-tree .label { - margin:0px; - padding:0px; - font: 15px Lato, Calibri, sans-serif; -} - -#nav-tree .label:hover { - color: var(--arm_orange); -} - -#nav-tree .label a { - padding-left:6px; - line-height: 30px; -} - -#nav-tree .selected a { - font-weight: bold; -} - -/*correction for the larger box border on the left (10px-5px) */ -#nav-tree .selected .arrow { - margin-left:5px; -} - -#nav-tree .children_ul { - margin:0px; - padding:0px; -} - -#nav-tree { - padding: 0px 0px; - padding-left: 10px; /*correction to add space before the first arrow in nav-tree */ - overflow:auto; -} - -#doc-content { - overflow:auto; - display:block; - padding:0px; - margin:0px; - -webkit-overflow-scrolling : touch; /* iOS 5+ */ -} - -#side-nav { - padding:0 2px 0 0; - margin: 0px; - display:block; - position: absolute; - left: 0px; - width: 330px; -} - -.ui-resizable .ui-resizable-handle { - display:block; -} - -.ui-resizable-e { - background-color: var(--nav-splitbar-color); - background-repeat:repeat-y; - background-attachment: scroll; - cursor:ew-resize; - height:100%; - right:0; - top:0; - width:1px; -} - -.ui-resizable-handle { - display:none; - font-size:0.1px; - position:absolute; - z-index:1; -} - -#nav-tree-contents { - margin: 6px 0px 0px 0px; -} - -#nav-tree { - - -webkit-overflow-scrolling : touch; /* iOS 5+ */ -} - -#nav-sync { - position:absolute; - top:5px; - right:24px; - z-index:0; - opacity:0; -} - -#nav-sync img { - opacity:0; -} - -#nav-sync img:hover { - opacity:0; -} - -#nav-tree a:hover { - color: var(--arm_orange); -} - -@media print -{ - #nav-tree { display: none; } - div.ui-resizable-handle { display: none; position: relative; } -} - diff --git a/pack/1.2.0/extra_search.css b/pack/1.2.0/extra_search.css deleted file mode 100644 index 58f12de..0000000 --- a/pack/1.2.0/extra_search.css +++ /dev/null @@ -1,49 +0,0 @@ - -dark-mode-toggle { - position: absolute; - right: 205px; - padding-top: 3px; - color: var(--arm_light_gray); -} - -.tablist .MSearchBox { - pointer-events: none; - display: inline-block; - white-space : nowrap; - background: none; - border-radius: 0.0em; - height: 0em; - width: 0em; - line-height: 0px; -} - -.tablist .MSearchField { - pointer-events: none; - display: inline-block; - vertical-align: middle; - width: 0em; - height: 0px; - margin: 0 0; - padding: 0; - line-height: 0em; - border:none; - outline: none; - -webkit-border-radius: 0px; - border-radius: 0px; - background: none; -} - -.tablist .MSearchBoxInactive { - pointer-events: none; - opacity:0.0; -} - -.tablist .MSearchBoxActive { - pointer-events: none; - opacity:0.0; -} - -.tablist .MSearchBoxInactive:hover { - pointer-events: none; - opacity:0.0; -} \ No newline at end of file diff --git a/pack/1.2.0/extra_stylesheet.css b/pack/1.2.0/extra_stylesheet.css deleted file mode 100644 index 4e628fd..0000000 --- a/pack/1.2.0/extra_stylesheet.css +++ /dev/null @@ -1,1742 +0,0 @@ -/* The standard CSS for doxygen 1.9.6*/ -:root { - --arm_light_blue: #00C1DE; - --arm_blue: #11809F; - --arm_blue1: #0091BD; - --arm_dark_blue: #002B49; - --arm_light_gray: #E5ECEB; - --arm_light_gray1: #EFF5F4; - --arm_light_gray2: #EBEBEB; - --arm_light_gray3: #F7F7F7; - --arm_dark_gray: #7D868C; - --arm_dark_gray1: #6F777C; - --arm_dark_gray2:#383b40; - --arm_black: #333E48; - --arm_black1: #1f2023; - --arm_black2: #2d2f34; - --arm_orange: #FF6B00; - --max_content_width: 1200px; - --max_textblock_width: 950px; - - /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */ - --spacing-small: 5px; - --spacing-medium: 10px; - --spacing-large: 16px; - - --toc-sticky-top: var(--spacing-medium); - --toc-width: 250px; - --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px); - --toc-font-size: 14px; - --toc-header-font-size: 15px; - -} - -html { - /* page base colors */ - --page-background-color: white; - --page-foreground-color: black; - --page-link-color: var(--arm_blue); - --page-visited-link-color: var(--arm_blue); - - /* index */ - --index-odd-item-bg-color: #F7F8FB; - --index-even-item-bg-color: var(--page-background-color); - --index-header-color: black; - --index-separator-color: #A0A0A0; - - /* header */ - --header-background-color: var(--page-background-color); - --header-separator-color: var(--page-background-color); - --header-gradient-image: none; - --group-header-separator-color: var(--arm_light_gray3); - --group-header-color: var(--page-foreground-color); - --inherit-header-color: gray; - - --footer-foreground-color: #2A3D61; - --footer-logo-width: 104px; - --citation-label-color: #334975; - --glow-color: cyan; - - --title-background-color: white; - --title-separator-color: #5373B4; - --directory-separator-color: #9CAFD4; - --separator-color:var(--nav-splitbar-color); - - --blockquote-background-color: #F7F8FB; - --blockquote-border-color: var(--separator-color); - - --scrollbar-thumb-color: #9CAFD4; - --scrollbar-background-color: #F9FAFC; - - --icon-background-color: #728DC1; - --icon-foreground-color: white; - --icon-doc-image: url('doc.png'); - - /* brief member declaration list */ - --memdecl-background-color:#F9FAFC; - --memdecl-separator-color: #DEE4F0; - --memdecl-foreground-color: var(--page-foreground-color); - --memdecl-template-color: #4665A2; - - /* detailed member list */ - --memdef-border-color: var(--arm_dark_gray); - --memdef-title-background-color: var(--arm_light_gray2); - --memdef-title-gradient-image: none; - --memdef-table-header-background-color: var(--arm_light_gray1); - --memdef-proto-background-color: var(--arm_light_gray2); - --memdef-proto-text-color: var(--arm_black); - --memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - --memdef-doc-background-color: var(--page-background-color); - --memdef-param-name-color: #602020; - --memdef-template-color: #4665A2; - - /* tables */ - --table-cell-border-color: var(--arm_light_gray); - --table-header-background-color: var(--arm_blue); - --table-header-foreground-color: white; - --table-even-cell-color: var(--arm_light_gray3);; - --table-odd-cell-color: #white; - - - /* labels */ - --label-background-color: #728DC1; - --label-left-top-border-color: #5373B4; - --label-right-bottom-border-color: #C4CFE5; - --label-foreground-color: white; - - /** navigation bar/tree/menu */ - --nav-background-color: var(--page-background-color); - --nav-foreground-color: var(--page-foreground-color); - --nav-gradient-image: none; - --nav-gradient-hover-image: none; - --nav-gradient-active-image: none; - --nav-gradient-active-image-parent: none; - --nav-separator-image: none; - --nav-breadcrumb-image: none; - --nav-breadcrumb-border-color: #C2CDE4; - --nav-splitbar-image: none; - --nav-splitbar-color: var(--arm_light_gray); - --nav-font-size-level1: 13px; - --nav-font-size-level2: 10px; - --nav-font-size-level3: 9px; - --nav-text-normal-color:var(--arm_black); - --nav-text-hover-color: var(--arm_orange); - --nav-text-active-color: var(--arm_black); - --nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - --nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - --nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - --nav-menu-button-color: #364D7C; - --nav-menu-background-color: white; - --nav-menu-foreground-color: #555555; - --nav-menu-toggle-color: rgba(255, 255, 255, 0.5); - --nav-arrow-color: var(--arm_blue); - --nav-arrow-selected-color: var(--arm_blue); - --nav_tabs-text-color:var(--arm_dark_gray); - --nav_tabs-text-active-color:white; - --nav_tabs-background-color:var(--arm_black2); - --nav_tabs-background-active-color:var(--arm_dark_gray); - --nav_tabs-border-color:var(--arm_dark_gray); - - /* table of contents */ - --toc-background-color: var(--nav-background-color); - --toc-foreground-color: var(--nav-foreground-color); - --toc-active-color: var(--arm_dark_blue); - --toc-border-color: #D8DFEE; - --toc-header-color: #4665A2; - - /** search field */ - --search-background-color: white; - --search-foreground-color: #909090; - --search-magnification-image: url('mag.svg'); - --search-magnification-select-image: url('mag_sel.svg'); - --search-active-color: black; - --search-filter-background-color: #F9FAFC; - --search-filter-foreground-color: black; - --search-filter-border-color: #90A5CE; - --search-filter-highlight-text-color: white; - --search-filter-highlight-bg-color: #3D578C; - --search-results-foreground-color: #425E97; - --search-results-background-color: #EEF1F7; - --search-results-border-color: black; - --search-box-shadow: inset 0.5px 0.5px 3px 0px #555; - - /** code fragments */ - --code-keyword-color: #008000; - --code-type-keyword-color: #604020; - --code-flow-keyword-color: #E08000; - --code-comment-color: #800000; - --code-preprocessor-color: #806020; - --code-string-literal-color: #002080; - --code-char-literal-color: #008080; - --code-vhdl-digit-color: #FF00FF; - --code-vhdl-char-color: #000000; - --code-vhdl-keyword-color: #700070; - --code-vhdl-logic-color: #FF0000; - --code-link-color: var(--arm_blue); - --code-external-link-color: #4665A2; - --fragment-foreground-color: black; - --fragment-background-color: var(--arm_light_gray2); - --fragment-border-color: #C4CFE5; - --fragment-lineno-border-color: #00FF00; - --fragment-lineno-background-color: #E8E8E8; - --fragment-lineno-foreground-color: black; - --fragment-lineno-link-fg-color: #4665A2; - --fragment-lineno-link-bg-color: #D8D8D8; - --fragment-lineno-link-hover-fg-color: #4665A2; - --fragment-lineno-link-hover-bg-color: #C8C8C8; - --tooltip-foreground-color: black; - --tooltip-background-color: white; - --tooltip-border-color: gray; - --tooltip-doc-color: grey; - --tooltip-declaration-color: #006318; - --tooltip-link-color: #4665A2; - --tooltip-shadow: 1px 1px 7px gray; - --tile-background-color: #F9FAFC; - --tile-shadow-color:rgba(0, 0, 0, 0.2); - --tile-hover-border-color: #C8C8C8; - - - /** font-family */ - --font-family-normal: Lato, Calibri, sans-serif; - --font-family-monospace: monospace,fixed; - --font-family-nav: Lato, Calibri, sans-serif; - --font-family-title: Lato, Calibri, sans-serif; - --font-family-toc: Lato, Calibri, sans-serif; - --font-family-search: Lato, Calibri, sans-serif; - --font-family-icon: Arial,Helvetica; - --font-family-tooltip: Lato, Calibri, sans-serif; - - } - -html.dark-mode { - - /* page base colors */ - --page-background-color: var(--arm_black2); - --page-foreground-color: var(--arm_light_gray); - --page-link-color: var(--arm_light_blue); - --page-visited-link-color: var(--arm_light_blue); - - /* index */ - --index-odd-item-bg-color: var(--nav-background-color); - --index-even-item-bg-color: var(--page-background-color); - --index-header-color: #C4CFE5; - --index-separator-color: #334975; - - /* header */ - --header-background-color: var(--page-background-color); - --header-separator-color: var(--page-background-color); - --header-gradient-image: none; - --group-header-separator-color: var(--arm_dark_gray2); - --group-header-color: var(--page-foreground-color); - --inherit-header-color: #A0A0A0; - - --footer-foreground-color: #5B7AB7; - --footer-logo-width: 60px; - --citation-label-color: #90A5CE; - --glow-color: cyan; - - --title-background-color: #090D16; - --title-separator-color: #354C79; - --directory-separator-color: #283A5D; - --separator-color: var(--nav-splitbar-color); - --blockquote-background-color: var(--arm_black); - --blockquote-border-color: var(--separator-color); - - --scrollbar-thumb-color: #283A5D; - --scrollbar-background-color: #070B11; - - --icon-background-color: #334975; - --icon-foreground-color: #C4CFE5; - --icon-doc-image: url('docd.png'); - - /* brief member declaration list */ - --memdecl-background-color:var(--page-background-color); - --memdecl-separator-color: #2C3F65; - --memdecl-foreground-color:var(--page-foreground-color); - --memdecl-template-color: #7C95C6; - - /* detailed member list */ - --memdef-border-color: var(--arm_dark_gray); - --memdef-title-background-color: var(--arm_black); - --memdef-title-gradient-image: none; - --memdef-table-header-background-color: var(--arm_dark_gray2); - --memdef-proto-background-color: var(--memdef-title-background-color); - --memdef-proto-text-color: var(--page-foreground-color); - --memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); - --memdef-doc-background-color: var(--page-background-color); - --memdef-param-name-color: #D28757; - --memdef-template-color: #7C95C6; - - /* tables */ - --table-cell-border-color: var(--arm_dark_gray1); - --table-header-background-color: var(--arm_blue); - --table-header-foreground-color: var(--page-forground-color); - --table-odd-cell-color: var(--arm_dark_gray2); - --table-even-cell-color: var(--page-background-color); - - - /* labels */ - --label-background-color: #354C7B; - --label-left-top-border-color: #4665A2; - --label-right-bottom-border-color: #283A5D; - --label-foreground-color: #CCCCCC; - - /** navigation bar/tree/menu */ - --nav-background-color: var(--arm_dark_gray2); - --nav-foreground-color: var(--page-foreground-color); - --nav-gradient-image: none; - --nav-gradient-hover-image: none; - --nav-gradient-active-image: none; - --nav-gradient-active-image-parent: none; - --nav-separator-image: none; - --nav-breadcrumb-image: none; - --nav-breadcrumb-border-color: #2A3D61; - --nav-splitbar-image: none; - --nav-splitbar-color: var(--arm_dark_gray); - --nav-font-size-level1: 13px; - --nav-font-size-level2: 10px; - --nav-font-size-level3: 9px; - --nav-text-normal-color: var(--page-foreground-color); - --nav-text-hover-color: var(--arm_orange); - --nav-text-active-color:var(--page-foreground-color); - --nav-text-normal-shadow: 0px 1px 1px black; - --nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - --nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - --nav-menu-button-color: #B6C4DF; - --nav-menu-background-color: #05070C; - --nav-menu-foreground-color: #BBBBBB; - --nav-menu-toggle-color: rgba(255, 255, 255, 0.2); - --nav-arrow-color: var(--arm_blue); - --nav-arrow-selected-color: var(--arm_blue); - --nav_tabs-text-color:var(--arm_dark_gray); - --nav_tabs-text-active-color:white; - --nav_tabs-background-color:var(--arm_black2); - --nav_tabs-background-active-color:var(--arm_dark_gray); - --nav_tabs-border-color:var(--arm_dark_gray); - - /* table of contents */ - --toc-background-color: var(--nav-background-color); - --toc-active-color: #4665A2; - --toc-foreground-color: var(--nav-foreground-color); - --toc-border-color: #202E4A; - --toc-header-color: #A3B4D7; - - /** search field */ - --search-background-color: black; - --search-foreground-color: #C5C5C5; - --search-magnification-image: url('mag_d.svg'); - --search-magnification-select-image: url('mag_seld.svg'); - --search-active-color: #C5C5C5; - --search-filter-background-color: #101826; - --search-filter-foreground-color: #90A5CE; - --search-filter-border-color: #7C95C6; - --search-filter-highlight-text-color: #BCC9E2; - --search-filter-highlight-bg-color: #283A5D; - --search-results-background-color: #101826; - --search-results-foreground-color: #90A5CE; - --search-results-border-color: #7C95C6; - --search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; - - /** code fragments */ - --code-keyword-color: #CC99CD; - --code-type-keyword-color: #AB99CD; - --code-flow-keyword-color: #E08000; - --code-comment-color: #717790; - --code-preprocessor-color: #65CABE; - --code-string-literal-color: #7EC699; - --code-char-literal-color: #00E0F0; - --code-vhdl-digit-color: #FF00FF; - --code-vhdl-char-color: #000000; - --code-vhdl-keyword-color: #700070; - --code-vhdl-logic-color: #FF0000; - --code-link-color: #79C0FF; - --code-external-link-color: #79C0FF; - --fragment-foreground-color: #C9D1D9; - --fragment-background-color: var(--arm_black); - --fragment-border-color: #30363D; - --fragment-lineno-border-color: #30363D; - --fragment-lineno-background-color: black; - --fragment-lineno-foreground-color: #6E7681; - --fragment-lineno-link-fg-color: #6E7681; - --fragment-lineno-link-bg-color: #303030; - --fragment-lineno-link-hover-fg-color: #8E96A1; - --fragment-lineno-link-hover-bg-color: #505050; - --tooltip-foreground-color: #C9D1D9; - --tooltip-background-color: #202020; - --tooltip-border-color: #C9D1D9; - --tooltip-doc-color: #D9E1E9; - --tooltip-declaration-color: #20C348; - --tooltip-link-color: #79C0FF; - --tooltip-shadow: none; - --tile-background-color: var(--arm_dark_gray2); - --tile-shadow-color:rgba(192, 192, 192, 0.2); - --tile-hover-border-color: var(--arm_dark_gray1); - - /** font-family */ - --font-family-normal: Lato, Calibri, sans-serif; - --font-family-monospace: monospace,fixed; - --font-family-nav: Lato, Calibri, sans-serif; - --font-family-title: Lato, Calibri, sans-serif; - --font-family-toc: Lato, Calibri, sans-serif; - --font-family-search: Lato, Calibri, sans-serif; - --font-family-icon: Arial,Helvetica; - --font-family-tooltip: Lato, Calibri, sans-serif; -} - -body, table, div, p, dl { - font-family: var(--font-family-normal); - font-size: 16px; - line-height: 22px; -} - - -.tiles { - width: 1100; - font-size: 0; - margin: 0 auto; -} - -.tile { - width: calc(1000px / 5); - height: 130px; - display: inline-grid; - padding-inline: 5px; - padding-bottom: 10px; - padding-top: 5px; - vertical-align:text-top; - text-align:center; - margin: 2px; - margin-right: 10px; - /* background-color: var(--group-header-separator-color); */ - background-color: var(--tile-background-color); - box-shadow: 0px 4px 6px 0px var(--tile-shadow-color); - transition: 0.0s; - border-radius: 10px; - /* rounded corners */ - flex: 50%; -} - -.tile:hover { - border-color: var(--tile-hover-border-color); - box-shadow: 0 8px 12px 0 var(--tile-shadow-color); - border-style: solid; - border-width: 1px; - height: 130px; - margin:1px; - margin-right: 9px; - cursor: pointer; -} - -.tile h2 { - font-size: 17px; - margin-top:5px; - margin-bottom:0px; - text-align:center; -} - -.tile .tileh { - font-size: 17px; - font-weight:bold; - margin-top:5px; - margin-bottom:0px; - text-align:center; - color:var(--page-link-color); -} - -.tiletxt { - font-size: 15px; - color:var(--page-foreground-color); - margin:0px; - padding:0px; -} - -.tilelinks { - font-size: 14px; - align-self: end; -} - - -/* styles */ - -.style1 { - text-align: center; -} -.style2 { - color: var(--arm_blue); - font-weight: normal; -} -.style3 { - text-align: left; -} -.style4 { - color: #008000; -} -.style5 { - color: #0000FF; -} -.style6 { - color: #000000; - font-style:italic; -} -.mand { - color: #0000FF; -} -.opt { - color: #008000; -} -.cond { - color: var(--arm_orange); -} - -.choice -{ - background-color:#F7F9D0; -} -.seq -{ - background-color:#C9DECB; -} -.group1 -{ - background-color:#F8F1F1; -} -.group2 -{ - background-color:#DCEDEA; -} - -.arrow { - color: var(--nav-arrow-color); - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 100%; - width: 16px; - height: 22px; - display: inline-block; -} - -.main-menu { - margin: 0; - padding: 0; - display: table; - line-height: 24px; -} - -ul { - list-style-type: disc; - padding-left: 2em; - margin-block-start: 0em; -} - -li { - margin-top: 0.25em; - line-height: 24px; -} - -ul ul { - list-style-type: circle; -} - -ul ul ul { - list-style-type: square; -} - -ul.hierarchy { - color: green; -} - -em { - font-style:italic; -} - -code { - font-family: monospace; - font-size: 85%; - line-height: 1.6; - background-color: var(--fragment-background-color); - border-radius: 6px; - padding: 0.2em 0.4em; -} - -/* Tables */ -table.cmtab1 { - padding: 4px; - border-collapse: collapse; - border: 1px solid var(--arm_dark_gray); - text-align: justify; - width:70%; -} - -th.cmtab1 { - background: var(--arm_light_gray3); - font-weight: bold; - height: 28px; -} - -td.cmtab1 { - padding:1px; - text-align: left; -} - -table.cmtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.cmtable td, table.cmtable th { - border: 1px solid var(--arm_dark_gray); - padding: 3px 7px 2px; -} - -table.cmtable th { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - font-size: 100%; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; -} - -table.cmtable th a { - color: var(--table-header-foreground-color); - text-decoration: underline; -} - -table.cmtable th a:visited { - color: var(--table-header-foreground-color); - text-decoration: underline; -} - -table.cmtable th a:hover { - color: var(--arm_yellow); - text-decoration: underline; -} - -td.MonoTxt { - font-family:"Arial monospaced for SAP"; -} - -td.XML-Token -{ - azimuth: 180; - font-style:italic; - z-index:20; -} - -span.XML-Token -{ - azimuth: 180; - font-style:italic; - z-index:20; -} - -span.h2 -{ - font-size: 120%; - font-weight: bold; -} - -div.new -{ - background-color:#ccffcc; /* light green */ -} - -div.mod -{ - background-color:#ffe6cc; /* light amber */ -} - -div.del -{ - background-color:#ffcccc; /* light red */ -} - -div.contents { - margin-top: 10px; -/* margin-left: 12px; - margin-right: 8px; -*/ -} - -@media screen and (min-width: 1510px) { - #doc-content > div > div.contents, - .PageDoc > div.contents { - display: block; - flex-direction: row-reverse; - flex-wrap: nowrap; - align-items: flex-start; - } - - div.contents .textblock, div.contents .memberdecls, div.contents .memitem, div.contents .directory{ - min-width: 200px; - max-width: var(--max_textblock_width); - flex-grow: 1; - } - - div.contents p, div.contents ul, div.contents .image, div.contents .markdownTable, div.contents .fragment, div.contents hr, div.contents h1 { - max-width: var(--max_textblock_width); - } - - div.contents hr { - margin-left: 0; - } - - div.content .toc { - overflow-x: overlay; - overflow-wrap: normal; - } - - div.toc { - max-height: var(--toc-max-height); - max-width: var(--toc-width); - border: 0; - border-left: 1px solid var(--nav-splitbar-color); - border-radius: 0; - background-color: transparent; - box-shadow: none; - float: right; - position: sticky; - top: var(--toc-sticky-top); - padding: 0 0 0 var(--spacing-large); - margin: 0 0 0 var(--spacing-large); - } -} - -@media screen and (max-width:1510px) { - #doc-content > div > div.contents, - .PageDoc > div.contents { - display: block; - flex-direction: row-reverse; - flex-wrap: nowrap; - align-items: flex-start; - } - - div.contents .textblock, div.contents .memberdecls, div.contents .memitem, div.contents .directory{ - min-width: 200px; - max-width: var(--max_textblock_width); - flex-grow: 1; - } - - div.contents p, div.contents ul, div.contents .image, div.contents .markdownTable, div.contents .fragment{ - max-width: var(--max_textblock_width); - } - - div.toc { - max-height: 0px; - line-height: 0px; - overflow-y: hidden; - min-width: var(--toc-width); - border: 0; - border-radius: 0; - background-color: transparent; - box-shadow: none; - padding: 0;; - margin: 0; - } -} - - -.memberdecls heading { - font-weight: bold; -} - -div.contents, div.header .headertitle, div.header .summary { - max-width: var(--max_content_width); -} - -div.contents, div.header .headertitle { - margin-left: 3%; - margin-right: auto; -} - -/* @group Heading Levels */ - -h1 { - font-size: 150%; - border-top-color: var(--group-header-separator-color); - border-top-width: 2px; - border-top-style: solid; - padding: 1em 0 0; - margin-top: 0.5em; - margin-bottom: 0.75em; -} -/* -h1:before { - margin-bottom: 1em; - content: ""; - background-color: var(--arm_light_gray3); - height: 2px; - display: block; - width: 100%; -} -*/ -.title { - font-size: 150%; - font-weight: bold; - margin: 10px 0px; -} - -h2, h2.groupheader { - border: 0px; - font-size: 120%; - font-weight: bold; - margin-top: 1.25em; - margin-bottom: 0.25em; -} - -h3 { - font-size: 100%; - margin-top: 1.25em; - margin-bottom: 0.25em; -} - -h4 { - font-size: 100%; - color: #505050; -} - - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p { - margin-block-start: 1em; - margin-block-end: 0.5em; -} - -p.startli, p.startdd, p.starttd { - margin-top: 2px; -} - - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A2B4D8; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9AAED5; - color: #ffffff; - border: 1px double #849CCC; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -pre.fragment { - font-family: monospace; - background-color: var(--fragment-background-color); - border-radius: 6px; - padding: 0.2em 0.4em; - font-size: 85%; - line-height: 1.45; - margin: 0.5em 0px; -} - -div.fragment { - font-family: monospace; - background-color: var(--fragment-background-color); - border-radius: 6px; - padding: 0.2em 0.4em; - font-size: 85%; - line-height: 1.45; -} - -div.line { - font-family: monospace; - font-size: 100%; - line-height: 1.45; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; -} - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} - -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; -} - -body { - color: var(--page-foreground-color); - background-color: var(--page-background-color); - margin: 0; -} - -body a:hover{ - text-decoration: underline; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C3CFE6; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C3CFE6; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EDF1F7; -} - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -.memSeparator { - line-height: 22px; -} - -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid var(--arm_light_gray);/*#C3CFE6;*/ -} - -a:-webkit-any-link { - color: var(--page-link-color); - cursor: pointer; - text-decoration: none; -} - -.a:hover { - text-decoration: underline; -} - - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - display: inline-block; - padding: 8px; - padding-bottom: 12px; - padding-right: 12px; - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-color: var(--memdef-title-background-color); - line-height: 1.25; - font-weight: 600; - float: none; -} - -.permalink -{ - color: var(--arm_blue); - font-size: 100%; - display: inline-block; - vertical-align: middle; - padding-bottom:6px; -} - -.memtemplate { - font-size: 80%; - color: #4464A5; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A2B4D8; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; -} - -.memitem.glow { - /*box-shadow: 0 0 15px cyan; */ -} - -.memname { - font-weight: bold; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} -.memproto, dl.reflist dt { - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 0px 6px 0px; - color: var(--memdef-proto-text-color); - font-weight: bold; - background-color: var(--memdef-proto-background-color); - border-top-right-radius: 4px; - border-top-left-radius: 0px; - /* firefox specific markup */ - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 0px; - /* webkit specific markup */ - -webkit-border-top-right-radius: 4px; - -webkit-border-top-left-radius: 0px; -} - -.memdoc, dl.reflist dd { - border: 1px solid var(--memdef-border-color); - padding: 6px 10px 2px 10px; -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: var(--memdef-param-name-color); - white-space: nowrap; -} -.paramname em { - font-style: normal; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #708CC4; - border-top:1px solid #5072B7; - border-left:1px solid #5072B7; - border-right:1px solid #C3CFE6; - border-bottom:1px solid #C3CFE6; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; -} - - - -/* @end */ - -/* these are for tree view when not used as main index */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid var(--arm_dark_gray); - border-bottom: 1px solid var(--arm_dark_gray); - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - padding: 0px 10px 10px 0px; - vertical-align: middle; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top:10px; -} - -.directory td.entry a { - outline:none; - padding-left: 6px; - padding-top:10px; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top:10px; - border-left: 0px solid rgba(0,0,0,0.05); -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3A568E; -} - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #293C63; -} - -blockquote.doxtable { - margin-left:-7px; - margin-bottom: 6px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; - background-color: var(--page-background-color); -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid var(--table-cell-border-color); - padding: 7px 10px 5px; - text-align:left; -} - -table.doxtable th { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); -} - -table.doxtable tr:nth-child(odd) { - background-color: var(--table-odd-cell-color); -} - -table.doxtable tr:nth-child(even) { - background-color: var(--table-even-cell-color); -} - -table.fieldtable { - width: 100%; - margin-bottom: 10px; - border: 1px solid var(--arm_dark_gray); - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname, td.fieldoc{ - white-space: nowrap; - border-right: 1px solid var(--arm_dark_gray); - border-bottom: 1px solid var(--arm_dark_gray); - vertical-align: top; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid var(--arm_dark_gray); - width: 100%; -} - -.fieldtable td.fielddoc p { - margin-top: 0px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-color: var(--memdef-table-header-background-color); - font-size: 100%; - font-weight: bold; -} - - -/* @group Markdown */ - - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid var(--table-cell-border-color); - padding: 7px 10px 5px; - text-align:left; -} - -table.markdownTable th { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); -} - -table.markdownTable tr:nth-child(odd) { - background-color: var(--table-odd-cell-color); -} - -table.markdownTable tr:nth-child(even) { - background-color: var(--table-even-cell-color); -} - -/* for hyperlinks in table head rows */ -table.markdownTable th a{ - color: var(--table-header-foreground-color); - text-decoration: underline; -} - -table.markdownTable th a:visited{ - color: var(--table-header-foreground-color); -} - -table.markdownTable th a:hover{ - color: var(--arm_yellow); -} - -table.markdownTable th.markdownTableHeadLeft, table.markdownTable td.markdownTableBodyLeft { - text-align: left -} - -table.markdownTable th.markdownTableHeadRight, table.markdownTable td.markdownTableBodyRight { - text-align: right -} - -table.markdownTable th.markdownTableHeadCenter, table.markdownTable td.markdownTableBodyCenter { - text-align: center -} - - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - font-size: 100%; -} - -/* @end */ - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-color:var(--arm_black); - height:30px; - line-height:30px; - color:white; - border:solid 1px #C1CDE5; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - color:#344D7E; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; -} - -.navpath li.navelem a:hover -{ - color:#6583BF; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - color:var(--arm_white); - font-size: 8pt; -} - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -div.ingroups -{ - margin-left: 5px; - font-size: 8pt; - padding-left: 5px; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - margin: 0px; -} - -div.headertitle -{ - padding: 5px 5px 5px 0px; - margin-top: 10px; -} - -dl -{ - padding: 0 0 0 10px; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ - margin-left: 0px; - padding-left: 0px; -} - -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; -} - -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; -} - -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; -} - -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; -} - -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; -} - -dl.safety -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #008000; -} - - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: middle; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectname -{ - font: 270% 'Lato Lite', Lato, Caibri, sans-serif; - font-weight: 600; - margin: 0px; - color: white; - padding: 2px 0px; -} - -#projectbrief -{ - font: 140% "Lato Lite", Lato, Caibri, sans-serif; - margin: 0px; - color: white; - padding: 4px 0px 4px; -} - -#projectnumber -{ - font: 50% "Lato Lite", Lato, Caibri, sans-serif; - margin: 0px; - color: white; - padding: 0px; -} - -#top -{ - border-bottom: 1px solid var(--arm_dark_gray); -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid var(--arm_dark_gray); - background-color: var(--arm_black); -} - -.image -{ - text-align: left; - display: grid; - justify-content: center; - align-items: center; - justify-items: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; - font-size: 80%; -} - -div.zoom -{ - border: 1px solid #8EA4D0; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#314877; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - - -div.toc li { - background: none; - font-family: var(--font-family-toc); - font-size: var(--toc-font-size); - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - color: var(--toc-foreground); - font-size: var(--toc-header-font-size); - font-weight: normal; - margin: var(--spacing-large) 0 var(--spacing-medium) 0; -} - -div.toc li { - padding: 0; - background: none; - line-height: var(--toc-font-size); - margin: var(--toc-font-size) 0 0 0; -} - -div.toc ul { - margin-top: 0 -} - -div.toc li a.active { - font-weight: bold; - color: var(--toc-active-color) !important; -} - -div.toc li a:hover { - color: var(--nav-text-hover-color) !important; -} - -div.toc li a { - font-size: var(--toc-font-size); - color: var(--nav-foreground-color) !important; - text-decoration: none; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} diff --git a/pack/1.2.0/extra_tabs.css b/pack/1.2.0/extra_tabs.css deleted file mode 100644 index 2008446..0000000 --- a/pack/1.2.0/extra_tabs.css +++ /dev/null @@ -1,96 +0,0 @@ - -/* in Doxygen 1.9.2 'tabs' is assigned to second navigation row (navrow1) with - 'Main Page', 'Namespaces', etc */ - -.tabs, .tabs1, .tabs2, .tabs3, .main-nav { - background-color: var(--arm_light_gray); - color: var(--arm_black); - width: 100%; - z-index: 101; - font-family: 'Futura PT W01 Medium', 'Lato Light', Lato, Calibri, sans-serif; - font-size: 14px; - font-weight: 800; -} - -.tabs1 { - background-color: var(--arm_black); - font-size: 16px; -} - -.tabs1 a { - color:while; -} - -.tabs { - background-color: var(--nav_tabs-background-color); - border-top-style:solid; - border-top-width:1px; - border-top-color:var(--nav_tabs-border-color); -} - -.tablist, .main-menu { - margin: 0; - padding: 0; - display: table; - line-height: 28px; -} - -.tablist li { - float: left; - display: table-cell; - background-color: var(--nav_tabs-background-color); - border-right-style:solid; - border-right-width:1px; - border-right-color:var(--nav_tabs-border-color); - list-style: none; - margin:0px; -} - -.tabs1 .tablist li { - background-color: var(--arm_black); - font-weight: 1000; -} - -.tablist a { - display: block; - padding: 0 10px; - color: var(--arm_dark_gray); - font-weight: 600; - outline: none; -} - -.tabs1 .tablist a { - padding: 3px 20px; - color: white; - background-color:var(--arm_black); -} - -.tablist li.current a { - background-color: var(--arm_dark_gray); - color: white; -} - -.tabs1 .tablist li.current a { - background-color: var(--arm_blue); -} - -.tabs .tablist a { - background-color: var(--nav_tabs-background-color); - color: var(--nav_tabs-text-color); -} -.tabs .tablist li.current a { - background-color: var(--nav_tabs-background-active-color); - color: var(--nav_tabs-text-active-color); -} - -.tabs a:hover { - color: var(--arm_orange); -} - -.tabs li.current a:hover { - color: white; -} - -.tabs1 a:hover { - color: var(--arm_yellow); -} diff --git a/pack/1.2.0/fault.html b/pack/1.2.0/fault.html deleted file mode 100644 index a60bf3f..0000000 --- a/pack/1.2.0/fault.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - -CMSIS-View: Fault Analysis - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Fault Analysis
-
-
-

-

-Overview

-

The software components CMSIS-View:Fault provide infrastructure and API function calls to store, record, and analyze the Cortex-M Exception Fault information.

-

Arm Cortex-M processors raise an exception fault on critical system failures such as illegal memory write or read, access to an disabled peripheral, execution of an invalid instruction, or division by zero:

-
    -
  • The component CMSIS-View:Fault:Storage can be used to save an exception fault information for later analysis.
  • -
  • The component CMSIS-View:Fault:Record decodes a saved exception fault information and records this information using the Event Recorder.
  • -
-

A typical execution flow is shown in the diagram below.

-
- -
-Exception Fault Analysis
-
    -
  • Theory of operation explains in details how the Fault component stores fault information and how it can be used for further analysis.
  • -
  • Using Fault component provides instructions on how to enable Fault component in a project.
  • -
-

An application note is available that describes the Cortex-M fault exceptions from the programmers view and explains their usage during the software development cycle: KAN209 - Using Cortex-M3/M4/M7 Fault Exceptions.

-
-
-
- - - - diff --git a/pack/1.2.0/fault.js b/pack/1.2.0/fault.js deleted file mode 100644 index e6d6ed0..0000000 --- a/pack/1.2.0/fault.js +++ /dev/null @@ -1,16 +0,0 @@ -var fault = -[ - [ "Overview", "fault.html#about_fault", null ], - [ "Theory of operation", "flt_theory.html", [ - [ "Fault information storage", "flt_theory.html#autotoc_md0", null ], - [ "Fault information analysis", "flt_theory.html#autotoc_md1", null ], - [ "Resource requirements", "flt_theory.html#flt_req", null ] - ] ], - [ "Using Fault component", "flt_use.html", [ - [ "Add Fault Storage (and Record) Component", "flt_use.html#flt_add_component", null ], - [ "Locate fault information in uninitialized memory", "flt_use.html#flt_place_uninit_memory", [ - [ "Create memory region using linker script", "flt_use.html#flt_create_mem_ls", null ], - [ "Create memory region using µVision", "flt_use.html#flt_create_mem_uv", null ] - ] ] - ] ] -]; \ No newline at end of file diff --git a/pack/1.2.0/filter_button.png b/pack/1.2.0/filter_button.png deleted file mode 100644 index 090cbba..0000000 Binary files a/pack/1.2.0/filter_button.png and /dev/null differ diff --git a/pack/1.2.0/filtering_events.png b/pack/1.2.0/filtering_events.png deleted file mode 100644 index 34626d9..0000000 Binary files a/pack/1.2.0/filtering_events.png and /dev/null differ diff --git a/pack/1.2.0/flt_example_CM33.html b/pack/1.2.0/flt_example_CM33.html deleted file mode 100644 index 4e646b0..0000000 --- a/pack/1.2.0/flt_example_CM33.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - -CMSIS-View: Fault/B-U585I-IOT02A - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Fault/B-U585I-IOT02A
-
-
-

This example project shows Fault Analysis on an Arm Cortex-M33 based device. STMicroelectronics B-U585I-IOT02A evaluation board is used as the target platform.

-

Build and run

-

Follow the instructions in the example's README.md to build and run the project.

-

Screenshots

-

User Interface:

-
- -
-

Component View when no fault was saved yet:

-
- -
-

Component View when Memory Management fault has occurred:

-
- -
-

Event Recorder messages when Memory Management fault was decoded and output to Event Recorder:

-
- -
-

Serial Terminal output when Memory Management fault was decoded and output to STDIO:

-
- -
-
-
-
- - - - diff --git a/pack/1.2.0/flt_example_CM7.html b/pack/1.2.0/flt_example_CM7.html deleted file mode 100644 index be397ff..0000000 --- a/pack/1.2.0/flt_example_CM7.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -CMSIS-View: Fault/VHT_MPS2_Cortex-M7 - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Fault/VHT_MPS2_Cortex-M7
-
-
-

This example project shows Fault Analysis on an Arm Cortex-M7 based device, using Arm Virtual Hardware (AVH) processor simulation as the target platform.

-

Build and run

-

Follow the instructions in the example's README.md to build and run the project.

-

Screenshots

-

User Interface:

-
- -
-

EventRecorder.log file containing saved Memory Management fault information, processed with eventlist utility:

-
- -
-
-
-
- - - - diff --git a/pack/1.2.0/flt_theory.html b/pack/1.2.0/flt_theory.html deleted file mode 100644 index aa538dc..0000000 --- a/pack/1.2.0/flt_theory.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -CMSIS-View: Theory of operation - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Theory of operation
-
-
-

This section describes how the Fault component operates and how the fault information can be analyzed.

-

The Fault component is implemented in the target application using the software component CMSIS-View:Fault:Storage which adds the source file ARM_FaultStorage.c to the application.

-

This source file provides an ARM_FaultSave function which is used to save the fault information into an uninitialized part of the RAM which can then be analyzed on-chip, or on a host computer using a debugger. When using semihosting, cloud storage, or another remote location for storing the log file, you can do post-processing using eventlist Utility.

-

-Fault information storage

-

Fault information is stored in an ARM_FaultInfo structure, residing in uninitialized RAM memory, when the ARM_FaultSave function is executed from an exception handler.

-

-Fault information analysis

-

To see and analyze the details of a fault, there are the following options:

-
    -
  • Fault information can be decoded and written to the Event Recorder by calling the function ARM_FaultRecord (Event Recorder has to be operational). This is an exemplary output in µVision:
    -
  • -
  • Fault information can be decoded and written to the standard output by calling the function ARM_FaultPrint (this function is implemented in a user template and can be changed by the user):
    -
  • -
  • Fault information can be inspected in a debug session by viewing it in the Component Viewer (screenshot showing µVision):
    -
  • -
-

-Resource requirements

-

This section contains the the technical data of the Fault component firmware.

-

RAM:

-

The Fault component uses the ARM_FaultInfo structure to save information when the fault occurs. The size depends on the Arm Cortex-M core for which the code was compiled:

-
    -
  • If the Arm Cortex-M core contains Fault Registers (e.g. Cortex-M33), the ARM_FaultInfo structure requires 140 bytes of uninitialized RAM memory.
  • -
  • If the Arm Cortex-M core does not contain Fault Registers (e.g. Cortex-M0), the ARM_FaultInfo structure requires 104 bytes of uninitialized RAM memory.
  • -
-

ROM:

-

The functions of the Fault component require the following amounts of ROM memory:

-
    -
  • TheARM_FaultSave function requires up to 0.5 KB of ROM memory.
  • -
  • The ARM_FaultRecord function requires approximately up to 1.5 KB of ROM memory.
  • -
  • The ARM_FaultPrint function requires approximately up to 2.5 KB of ROM memory.
  • -
-
-
-
- - - - diff --git a/pack/1.2.0/flt_use.html b/pack/1.2.0/flt_use.html deleted file mode 100644 index a614b07..0000000 --- a/pack/1.2.0/flt_use.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - -CMSIS-View: Using Fault component - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Using Fault component
-
-
-

The following steps explain how to enable Fault component using the µVision. Other tools might use different ways to accomplish this.

-

For User Code:

-
    -
  1. Add Fault Storage (and Record) Component.
  2. -
  3. Locate fault information in uninitialized memory to be preserved over system reset.
  4. -
-

-Add Fault Storage (and Record) Component

-

To use the Fault component in an application, you need to:

-
    -
  • Select the software components CMSIS-View:Fault:Storage, CMSIS-View:Fault:Record and CMSIS-View:Event Recorder using the RTE management dialog.
    -
  • -
  • Include the ARM_Fault.h header and EventRecorder.h header files in your source code
  • -
  • Add fault handlers that jump to ARM_FaultSave function
  • -
  • Check if a fault has occurred and output fault information to Event Recorder or STDIO and analyze it, or analyze fault information in a Component Viewer window in a debug session
  • -
-

Code example:

-
#include "EventRecorder.h"
-
#include "ARM_Fault.h"
-
-
__attribute__((naked)) void HardFault_Handler (void) {
-
__ASM volatile (
-
"b ARM_FaultSave\n"
-
);
-
}
-
-
int main() {
-
SystemCoreClockUpdate(); // System core clock update
-
-
EventRecorderInitialize (EventRecordAll, 1U); // Initialize and start Event Recorder
-
EventRecorderClockUpdate(); // Update Event Recorder timestamp clock
-
-
if (ARM_FaultOccurred() != 0U) { // If fault information exists
-
ARM_FaultRecord(); // Output decoded fault information via Event Recorder
-
EventRecorderStop(); // Stop Event Recorder
-
}
-
-
// ...
-
-
while (1) {
-
__NOP();
-
}
-
}
-

-Locate fault information in uninitialized memory

-

For preservation of the saved fault information after system reset, RAM for the ARM_FaultInfo structure should be placed to a memory region that is not cleared (or initialized) by a system restart (reset).

-
-

Note

    -
  • Make sure that you use normal, non-cacheable, and non-shareable memory for fault information data.
  • -
-
-

For size of this memory section take a look at Resource requirements.

-

To setup this uninitialized RAM, use either Create memory region using linker script or Create memory region using µVision procedure.

-

-Create memory region using linker script

-

If the linker script does not contain provisions for uninitialized memory section then, for respective toolchain, add the necessary section like described below:

-

Arm Compiler:

-

For the Arm Compiler toolchain add the following code snippet to the linker script (.sct file), in the part specifying RAM sections (usually before Heap section):

-
RW_NOINIT <start_address> UNINIT 0x800 {
-
*(.bss.noinit)
-
*(.bss.noinit.*)
-
}
-
-

Note

    -
  • <start_address> is the physical address in RAM where the section will start.
  • -
  • 0x800 is the size of the section covering also default Event Recorder data, adjust that as necessary
  • -
-
-

GCC:

-

For the GCC toolchain add the following code snippet to the linker script (.ld file), in the part specifying RAM sections (usually before Heap section):

-
.noinit (NOLOAD) :
-
{
-
. = ALIGN(4);
-
__noinit_start = .;
-
*(.noinit)
-
*(.noinit.*)
-
. = ALIGN(4);
-
__noinit_end = .;
-
} > RAM
-
-

Note

    -
  • The code snippet above expects defined RAM memory region, if RAM region is not defined then adapt the script accordingly.
  • -
-
-

-Create memory region using µVision

-

To setup this uninitialized RAM in the µVision, follow the steps below:

-
    -
  1. In the Options for Target dialog, define a Read/Write Memory Area that is not initialized, by splitting available internal RAM into 2 areas.
    - For example, split IRAM1 into two regions. Reduce size of IRAM1 to 0x800 and create an IRAM2 area with remaining of the available RAM. Enable NoInit for the IRAM1 region.
    -
  2. -
  3. In the Options for Component Class 'CMSIS-View' dialog (opens with right-click on ARM_FaultStorage.c in the Project window), on the Memory tab, assign Zero Initialized Data to the IRAM1 region.
    -
  4. -
  5. Build the application to place the ARM_FaultInfo structure to uninitialized RAM.
  6. -
-
-
-
- - - - diff --git a/pack/1.2.0/folderclosed.png b/pack/1.2.0/folderclosed.png deleted file mode 100644 index bb8ab35..0000000 Binary files a/pack/1.2.0/folderclosed.png and /dev/null differ diff --git a/pack/1.2.0/folderopen.png b/pack/1.2.0/folderopen.png deleted file mode 100644 index d6c7f67..0000000 Binary files a/pack/1.2.0/folderopen.png and /dev/null differ diff --git a/pack/1.2.0/functions.html b/pack/1.2.0/functions.html deleted file mode 100644 index aa78188..0000000 --- a/pack/1.2.0/functions.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - -CMSIS-View: Data Fields - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Here is a list of all struct and union fields with links to the structures/unions they belong to:
-
-
- - - - diff --git a/pack/1.2.0/functions_vars.html b/pack/1.2.0/functions_vars.html deleted file mode 100644 index f617ae1..0000000 --- a/pack/1.2.0/functions_vars.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - -CMSIS-View: Data Fields - Variables - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
-
- - - - diff --git a/pack/1.2.0/group__EventRecorder__CompNoDefs.html b/pack/1.2.0/group__EventRecorder__CompNoDefs.html deleted file mode 100644 index 38e64ef..0000000 --- a/pack/1.2.0/group__EventRecorder__CompNoDefs.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - -CMSIS-View: Component number - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
- -

Defines for parameter comp_no for EventID. -More...

- - - - - - - - -

-Macros

#define EvtStatistics_No   0xEFU
 Component number for Event Execution Statistics in EventID.
 
#define EvtPrintf_No   0xFEU
 Component number for Redirecting printf output in EventID.
 
-

Description

-

Defines for parameter comp_no for EventID.

-

The following defines refer to various component numbers. A list of component numbers is provided under Theory of operation.

-

Macro Definition Documentation

- -

◆ EvtStatistics_No

- -
-
- - - - -
#define EvtStatistics_No   0xEFU
-
- -

Component number for Event Execution Statistics in EventID.

- -
-
- -

◆ EvtPrintf_No

- -
-
- - - - -
#define EvtPrintf_No   0xFEU
-
- -

Component number for Redirecting printf output in EventID.

- -
-
-
-
- - - - diff --git a/pack/1.2.0/group__EventRecorder__CompNoDefs.js b/pack/1.2.0/group__EventRecorder__CompNoDefs.js deleted file mode 100644 index 5d59f13..0000000 --- a/pack/1.2.0/group__EventRecorder__CompNoDefs.js +++ /dev/null @@ -1,5 +0,0 @@ -var group__EventRecorder__CompNoDefs = -[ - [ "EvtStatistics_No", "group__EventRecorder__CompNoDefs.html#ga0dc3370661899f6f018283bbf65ce8dc", null ], - [ "EvtPrintf_No", "group__EventRecorder__CompNoDefs.html#ga8c9a9414ff48f3f794c2bfa2951c2f98", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__EventRecorder__Data.html b/pack/1.2.0/group__EventRecorder__Data.html deleted file mode 100644 index 2111701..0000000 --- a/pack/1.2.0/group__EventRecorder__Data.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - - - -CMSIS-View: Event Data Recording - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
Event Data Recording
-
-
- -

Functions that record events along with data information. -More...

- - - - - - - - -

-Content

 Event level
 Defines for parameter level for EventID.
 
 Component number
 Defines for parameter comp_no for EventID.
 
- - - - -

-Macros

#define EventID(level, comp_no, msg_no)   ((level & 0x30000U) | ((comp_no & 0xFFU) << 8) | (msg_no & 0xFFU))
 Composed event id from level, component number and message number.
 
- - - - - - - - - - -

-Functions

uint32_t EventRecord2 (uint32_t id, uint32_t val1, uint32_t val2)
 Record an event with two 32-bit data values.
 
uint32_t EventRecord4 (uint32_t id, uint32_t val1, uint32_t val2, uint32_t val3, uint32_t val4)
 Record an event with four 32-bit data values.
 
uint32_t EventRecordData (uint32_t id, const void *data, uint32_t len)
 Record an event with variable data size.
 
-

Description

-

Functions that record events along with data information.

-

This section describes the functions that are called from the user application or middleware libraries to record events.

-

Each event has an id that combines level, component number, and message number:

    -
  • level is a EventLevelXxxx value that is used for filtering of the event recording (see Event Recorder Setup).
  • -
  • component number identifies the software component and is used for filtering of event recording (see Event Recorder Setup).
  • -
  • message number identifies the event.
  • -
-

can have an additional event level that is used for filtering. The event level value is defined by EventLevelError, EventLevelAPI, EventLevelOp, or EventLevelDetail and added to the event ID number.

-
Note
Before using these functions, the Event Recorder must be initialized with EventRecorderInitialize.
-

Code example

-

Macro Definition Documentation

- -

◆ EventID

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define EventID( level,
 comp_no,
 msg_no 
)   ((level & 0x30000U) | ((comp_no & 0xFFU) << 8) | (msg_no & 0xFFU))
-
- -

Composed event id from level, component number and message number.

-
Parameters
- - - - -
levelEvent level of the id
comp_nocomponent number of the id
msg_nomessage number of the id
-
-
-

The macro EventID generates an id value that combines level, component number, and message number. The level value should be set to EventLevelError, EventLevelAPI, EventLevelOp, or EventLevelDetail.

-

The id value is used by the functions EventRecordData, EventRecord2, and EventRecord4.

- -
-
-

Function Documentation

- -

◆ EventRecord2()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
uint32_t EventRecord2 (uint32_t id,
uint32_t val1,
uint32_t val2 
)
-
- -

Record an event with two 32-bit data values.

-
Parameters
- - - - -
[in]idevent identifier (level, component number, message number)
[in]val1first data value
[in]val2second data value
-
-
-
Returns
status (1=Success, 0=Failure)
-

Code Example

Note
The id may be defined using the macro EventID.
- -
-
- -

◆ EventRecord4()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
uint32_t EventRecord4 (uint32_t id,
uint32_t val1,
uint32_t val2,
uint32_t val3,
uint32_t val4 
)
-
- -

Record an event with four 32-bit data values.

-
Parameters
- - - - - - -
[in]idevent identifier (level, component number, message number)
[in]val1first data value
[in]val2second data value
[in]val3third data value
[in]val4fourth data value
-
-
-
Returns
status (1=Success, 0=Failure)
-

Code Example

EventRecord4 (2+EventLevelAPI, value1, 0, 0, value4);
-
Note
The id may be defined using the macro EventID.
- -
-
- -

◆ EventRecordData()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
uint32_t EventRecordData (uint32_t id,
const void * data,
uint32_t len 
)
-
- -

Record an event with variable data size.

-
Parameters
- - - - -
[in]idevent identifier (level, component number, message number)
[in]dataevent data buffer
[in]lenevent data length
-
-
-
Returns
status (1=Success, 0=Failure)
-

Code Example

char string[10] = "MyTest";
-
:
-
EventRecordData (3+EventLevelOp, string, sizeof(string));
-
Note
The id may be defined using the macro EventID.
- -
-
-
-
- - - - diff --git a/pack/1.2.0/group__EventRecorder__Data.js b/pack/1.2.0/group__EventRecorder__Data.js deleted file mode 100644 index c161bdd..0000000 --- a/pack/1.2.0/group__EventRecorder__Data.js +++ /dev/null @@ -1,9 +0,0 @@ -var group__EventRecorder__Data = -[ - [ "Event level", "group__EventRecorder__leveldefs.html", "group__EventRecorder__leveldefs" ], - [ "Component number", "group__EventRecorder__CompNoDefs.html", "group__EventRecorder__CompNoDefs" ], - [ "EventID", "group__EventRecorder__Data.html#ga44fa52e2007e535753fd4ba59b84d55d", null ], - [ "EventRecord2", "group__EventRecorder__Data.html#gab91eb760432ad0a10652a2c922db9566", null ], - [ "EventRecord4", "group__EventRecorder__Data.html#ga1807e8d9b62b51f862a3d3fe36e611f8", null ], - [ "EventRecordData", "group__EventRecorder__Data.html#ga48793c095f887522be941c7b8179dd0a", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__EventRecorder__Setup.html b/pack/1.2.0/group__EventRecorder__Setup.html deleted file mode 100644 index 47847ff..0000000 --- a/pack/1.2.0/group__EventRecorder__Setup.html +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - -CMSIS-View: Event Recorder Setup - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
Event Recorder Setup
-
-
- -

Functions that initialize and control the event recorder and configure event filtering. -More...

- - - - - -

-Content

 Recording Control
 Defines for parameter recording of Event Recorder Setup functions.
 
- - - - - - - - - - - - - - - - -

-Functions

uint32_t EventRecorderInitialize (uint32_t recording, uint32_t start)
 Initialize Event Recorder.
 
uint32_t EventRecorderEnable (uint32_t recording, uint32_t comp_start, uint32_t comp_end)
 Enable recording of events with specified level and component range.
 
uint32_t EventRecorderDisable (uint32_t recording, uint32_t comp_start, uint32_t comp_end)
 Disable recording of events with specified level and component range.
 
uint32_t EventRecorderStart (void)
 Start event recording.
 
uint32_t EventRecorderStop (void)
 Stop event recording.
 
-

Description

-

Functions that initialize and control the event recorder and configure event filtering.

-

This section contains the functions that initialize and control the event recorder and configure event filtering.

-

Function Documentation

- -

◆ EventRecorderInitialize()

- -
-
- - - - - - - - - - - - - - - - - - -
uint32_t EventRecorderInitialize (uint32_t recording,
uint32_t start 
)
-
- -

Initialize Event Recorder.

-
Parameters
- - - -
[in]recordinginitial level mask for event record filter
[in]startinitial recording setup (1=start, 0=stop)
-
-
-
Returns
status (1=Success, 0=Failure)
-

Call the function EventRecorderInitialize from the user code to set up the Event Recorder. The function initializes all buffers and configures the timer (if configured).

-

The parameter recording takes values from Recording Control.

-

Code Example

int main (void) { // main function
-
-
HAL_Init(); // initialize hardware abstraction layer
-
SystemClock_Config(); // configure the system clock
-
MemoryBus_Config(); // configure the memory bus system
-
-
EventRecorderInitialize (EventRecordAll, 1); // initialize and start Event Recorder
-
-
...
-
}
-
-
-
- -

◆ EventRecorderEnable()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
uint32_t EventRecorderEnable (uint32_t recording,
uint32_t comp_start,
uint32_t comp_end 
)
-
- -

Enable recording of events with specified level and component range.

-
Parameters
- - - - -
[in]recordinglevel mask for event record filter
[in]comp_startfirst component number of range
[in]comp_endlast Component number of range
-
-
-
Returns
status (1=Success, 0=Failure)
-

The function EventRecorderEnable configures the event filter for a software component.

-

The events will be generated for the event level recording and between the range specified with comp_start and comp_end.

-

The parameter recording takes values from Recording Control.

-

Multiple calls to EventRecorderEnable are permitted and enable the recording of different event messages.

-

Code Example

EventRecorderEnable (EventRecordAll, 0, 0xF); // record all events of component 0 - 15
-
:
-
EventRecorderEnable (EventRecordError, 0x80, 0xFE); // record 'Error' events of component 0x80 - 0xFE
-
EventRecorderEnable (EventRecordAPI+EventRecordOp, 0xC0, 0xC3); // and record 'API' and 'Op' events of component groups 0xC0 - 0xC3
-
-
-
- -

◆ EventRecorderDisable()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
uint32_t EventRecorderDisable (uint32_t recording,
uint32_t comp_start,
uint32_t comp_end 
)
-
- -

Disable recording of events with specified level and component range.

-
Parameters
- - - - -
[in]recordinglevel mask for event record filter
[in]comp_startfirst component number of range
[in]comp_endlast Component number of range
-
-
-
Returns
status (1=Success, 0=Failure)
-

The function EventRecorderDisable configures the event filter for a software component.

-

The events will be generated for the event level recording and between the range specified with comp_start and comp_end.

-

The parameter recording takes values from Recording Control.

-

Multiple calls to EventRecorderDisable are permitted and disable the recording of event messages.

-

Code Example

EventRecorderDisable (EventRecordDetail, 0, 0xFE); // stop recording 'Detail' events of component number 0 - 0xFE
-
:
-
EventRecorderDisable (EventRecordAPI+EventRecordOp, 0x80, 0xBF); // stop recording 'API' and 'Op' events of component number 0x80 - 0xFE
-
EventRecorderDisable (EventRecordAll, 0xC0, 0xCF); // stop recording all events of component number 0xC0 - 0xCF
-
-
-
- -

◆ EventRecorderStart()

- -
-
- - - - - - - - -
uint32_t EventRecorderStart (void )
-
- -

Start event recording.

-
Returns
status (1=Success, 0=Failure)
-

The function EventRecorderStart enables the recording of the events that are configured for recording using EventRecorderEnable or EventRecorderInitialize

-

Code Example

EventRecorderStart (); // start with the recording of events that pass filtering
-
-
-
- -

◆ EventRecorderStop()

- -
-
- - - - - - - - -
uint32_t EventRecorderStop (void )
-
- -

Stop event recording.

-
Returns
status (1=Success, 0=Failure)
-

The function EventRecorderStop disables the recording of all events.

-

Code Example

EventRecorderStop (); // stop the recording of any events
-
-
-
-
-
- - - - diff --git a/pack/1.2.0/group__EventRecorder__Setup.js b/pack/1.2.0/group__EventRecorder__Setup.js deleted file mode 100644 index 5c3688d..0000000 --- a/pack/1.2.0/group__EventRecorder__Setup.js +++ /dev/null @@ -1,9 +0,0 @@ -var group__EventRecorder__Setup = -[ - [ "Recording Control", "group__EventRecorder__recdefs.html", "group__EventRecorder__recdefs" ], - [ "EventRecorderInitialize", "group__EventRecorder__Setup.html#gac5369fe03bdcb771bacb25d7734a5f23", null ], - [ "EventRecorderEnable", "group__EventRecorder__Setup.html#gaf68b91af7ec83880b2d8068c26fd75c1", null ], - [ "EventRecorderDisable", "group__EventRecorder__Setup.html#gafbdda947535a6f848fa3d7c6d5c19411", null ], - [ "EventRecorderStart", "group__EventRecorder__Setup.html#gaf768b84b7e03df2e2d2a9de8b0558fcd", null ], - [ "EventRecorderStop", "group__EventRecorder__Setup.html#gadfb4f7a90a67608538242a21479b0919", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__EventRecorder__Time.html b/pack/1.2.0/group__EventRecorder__Time.html deleted file mode 100644 index 6ad2fa1..0000000 --- a/pack/1.2.0/group__EventRecorder__Time.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - -CMSIS-View: Event Recorder - Timer - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
Event Recorder - Timer
-
-
- -

Functions that access a configurable hardware timer. -More...

- - - - - - - - - - - - - - -

-Functions

uint32_t EventRecorderTimerSetup (void)
 Setup timer hardware.
 
uint32_t EventRecorderTimerGetFreq (void)
 Get timer frequency.
 
uint32_t EventRecorderTimerGetCount (void)
 Get timer count.
 
uint32_t EventRecorderClockUpdate (void)
 Update Event Recorder timestamp clock.
 
-

Description

-

Functions that access a configurable hardware timer.

-

This section contains user-provided functions, which configure and provide timing information for recorded events. It is required to implement these functions, when User Timer is selected as time stamp source.

-

The source file EventRecorder.c implements __WEAK functions for EventRecorderTimerSetup, EventRecorderTimerGetFreq and EventRecorderTimerGetCount. This allows to overwrite the functions by a user application.

-
Note
ARM Cortex-M3/M4/M7/M33 processors provide a debug timer (DWT CYCCNT) that can be used during debug. Refer to DWT Programmers' model for more information.
-

Code Example

Function Documentation

- -

◆ EventRecorderTimerSetup()

- -
-
- - - - - - - - -
uint32_t EventRecorderTimerSetup (void )
-
- -

Setup timer hardware.

-
Returns
status (1=Success, 0=Failure)
-

This function is called by EventRecorderInitialize to initialize the timer that is used by the Event Recorder. For time stamp source User Timer (Power-On Reset) this function is only called for the first call to EventRecorderInitialize.

- -
-
- -

◆ EventRecorderTimerGetFreq()

- -
-
- - - - - - - - -
uint32_t EventRecorderTimerGetFreq (void )
-
- -

Get timer frequency.

-
Returns
timer frequency in Hz
-

This function is called by EventRecorderInitialize to initialize the timer that is used by the Event Recorder. For time stamp source User Timer (Power-On Reset) this function is only called for the first call to EventRecorderInitialize.

-
Note
µVision is using currently a fixed frequency that is defined by EVENT_TIMESTAMP_FREQ.
- -
-
- -

◆ EventRecorderTimerGetCount()

- -
-
- - - - - - - - -
uint32_t EventRecorderTimerGetCount (void )
-
- -

Get timer count.

-
Returns
timer count (32-bit)
-

This function should return a 32-bit timer value that is used to generate time stamp information for the Event Recorder.

- -
-
- -

◆ EventRecorderClockUpdate()

- -
-
- - - - - - - - -
uint32_t EventRecorderClockUpdate (void )
-
- -

Update Event Recorder timestamp clock.

-
Returns
status (1=Success, 0=Failure)
-

Call this function when a clock change of the Event Recorder timer source has occurred. Typically, this happens when a clock source is switched (i.e. from XTAL to low-power clock).

-
Note
    -
  • When using CMSIS-RTOS2 System Timer as the clock source for Event Recorder, call this function in the first thread that is running after osKernelStart.
  • -
  • Updating the clock frequency of the Event Recorder will lead to a recalculation of previously received packets and thus to wrong display of earlier data in the µVision debugger.
  • -
-
- -
-
-
-
- - - - diff --git a/pack/1.2.0/group__EventRecorder__Time.js b/pack/1.2.0/group__EventRecorder__Time.js deleted file mode 100644 index 5565d7e..0000000 --- a/pack/1.2.0/group__EventRecorder__Time.js +++ /dev/null @@ -1,7 +0,0 @@ -var group__EventRecorder__Time = -[ - [ "EventRecorderTimerSetup", "group__EventRecorder__Time.html#ga3000832080ba37770bc3df0822b7a754", null ], - [ "EventRecorderTimerGetFreq", "group__EventRecorder__Time.html#gacca6d72472c548fc787aa6f4fc98289f", null ], - [ "EventRecorderTimerGetCount", "group__EventRecorder__Time.html#ga4ae18fb119e52e1372870b32d3fb4729", null ], - [ "EventRecorderClockUpdate", "group__EventRecorder__Time.html#ga560a1e7ee682be19357c1cb72d6d081b", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__EventRecorder__leveldefs.html b/pack/1.2.0/group__EventRecorder__leveldefs.html deleted file mode 100644 index 6c4598c..0000000 --- a/pack/1.2.0/group__EventRecorder__leveldefs.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - -CMSIS-View: Event level - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
- -

Defines for parameter level for EventID. -More...

- - - - - - - - - - - - - - -

-Macros

#define EventLevelError   0x00000U
 Run-time error in the component.
 
#define EventLevelAPI   0x10000U
 API function call.
 
#define EventLevelOp   0x20000U
 Internal operation.
 
#define EventLevelDetail   0x30000U
 Additional detailed information of operations.
 
-

Description

-

Defines for parameter level for EventID.

-

The following defines specify the level for the id. This defines may be used for:

-

Event filtering may be used to change the settings in the debugger. The event level define settings map as described in the following table:

- - - - - -
Recording level Error API Op Data
Event level define setting EventRecordError EventRecordAPI EventRecordOp EventRecordDetail
-

Macro Definition Documentation

- -

◆ EventLevelError

- -
-
- - - - -
#define EventLevelError   0x00000U
-
- -

Run-time error in the component.

- -
-
- -

◆ EventLevelAPI

- -
-
- - - - -
#define EventLevelAPI   0x10000U
-
- -

API function call.

- -
-
- -

◆ EventLevelOp

- -
-
- - - - -
#define EventLevelOp   0x20000U
-
- -

Internal operation.

- -
-
- -

◆ EventLevelDetail

- -
-
- - - - -
#define EventLevelDetail   0x30000U
-
- -

Additional detailed information of operations.

- -
-
-
-
- - - - diff --git a/pack/1.2.0/group__EventRecorder__leveldefs.js b/pack/1.2.0/group__EventRecorder__leveldefs.js deleted file mode 100644 index 8f43cca..0000000 --- a/pack/1.2.0/group__EventRecorder__leveldefs.js +++ /dev/null @@ -1,7 +0,0 @@ -var group__EventRecorder__leveldefs = -[ - [ "EventLevelError", "group__EventRecorder__leveldefs.html#ga09458e6018228f12b87671342e77545c", null ], - [ "EventLevelAPI", "group__EventRecorder__leveldefs.html#ga804697e938a79b0ea388872951ed7b06", null ], - [ "EventLevelOp", "group__EventRecorder__leveldefs.html#ga45955a55988126e124b2c6595812c9f4", null ], - [ "EventLevelDetail", "group__EventRecorder__leveldefs.html#gae594d8dae31ac1ffd04464f4af4a20ea", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__EventRecorder__recdefs.html b/pack/1.2.0/group__EventRecorder__recdefs.html deleted file mode 100644 index 495bfbd..0000000 --- a/pack/1.2.0/group__EventRecorder__recdefs.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - -CMSIS-View: Recording Control - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- - -
-
- -

Defines for parameter recording of Event Recorder Setup functions. -More...

- - - - - - - - - - - - - - - - - - - - -

-Macros

#define EventRecordNone   0x00U
 Record events is disabled.
 
#define EventRecordError   0x01U
 Record events with level EventLevelError.
 
#define EventRecordAPI   0x02U
 Record events with level EventLevelAPI.
 
#define EventRecordOp   0x04U
 Record events with level EventLevelOp.
 
#define EventRecordDetail   0x08U
 Record events with level EventLevelDetail.
 
#define EventRecordAll   0x0FU
 Record events with any level.
 
-

Description

-

Defines for parameter recording of Event Recorder Setup functions.

-

The following controls specify event recording levels and supply values for the parameter recording of Event Recorder Setup functions.

-
Note
Multiple recording levels can be added: EventRecordAPI + EventRecordOp specifies API and Operation.
-

Macro Definition Documentation

- -

◆ EventRecordNone

- -
-
- - - - -
#define EventRecordNone   0x00U
-
- -

Record events is disabled.

- -
-
- -

◆ EventRecordError

- -
-
- - - - -
#define EventRecordError   0x01U
-
- -

Record events with level EventLevelError.

- -
-
- -

◆ EventRecordAPI

- -
-
- - - - -
#define EventRecordAPI   0x02U
-
- -

Record events with level EventLevelAPI.

- -
-
- -

◆ EventRecordOp

- -
-
- - - - -
#define EventRecordOp   0x04U
-
- -

Record events with level EventLevelOp.

- -
-
- -

◆ EventRecordDetail

- -
-
- - - - -
#define EventRecordDetail   0x08U
-
- -

Record events with level EventLevelDetail.

- -
-
- -

◆ EventRecordAll

- -
-
- - - - -
#define EventRecordAll   0x0FU
-
- -

Record events with any level.

- -
-
-
-
- - - - diff --git a/pack/1.2.0/group__EventRecorder__recdefs.js b/pack/1.2.0/group__EventRecorder__recdefs.js deleted file mode 100644 index a2f1032..0000000 --- a/pack/1.2.0/group__EventRecorder__recdefs.js +++ /dev/null @@ -1,9 +0,0 @@ -var group__EventRecorder__recdefs = -[ - [ "EventRecordNone", "group__EventRecorder__recdefs.html#ga0c02631a9509e4f0767df86459fb08fa", null ], - [ "EventRecordError", "group__EventRecorder__recdefs.html#ga3a995270ffbf5ab4d7c617f1d1d3f89f", null ], - [ "EventRecordAPI", "group__EventRecorder__recdefs.html#ga259409bf85dea63e445ab3936f226110", null ], - [ "EventRecordOp", "group__EventRecorder__recdefs.html#ga57d5e34150a02197cfc98a3438eb155c", null ], - [ "EventRecordDetail", "group__EventRecorder__recdefs.html#gad65878735749f995be17f7bee2db058b", null ], - [ "EventRecordAll", "group__EventRecorder__recdefs.html#ga974d33703cba889a6597cb7e6f7a1a49", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__Event__Execution__Statistic.html b/pack/1.2.0/group__Event__Execution__Statistic.html deleted file mode 100644 index 356a89c..0000000 --- a/pack/1.2.0/group__Event__Execution__Statistic.html +++ /dev/null @@ -1,758 +0,0 @@ - - - - - - - -CMSIS-View: Event Execution Statistics - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
Event Execution Statistics
-
-
- -

Macros that record start/stop events for the execution statistic display. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Macros

#define EventStartA(slot)   EventRecord2 (0xEF00U+EventLevelError+(slot), ((uint32_t) __FILE__), __LINE__)
 
#define EventStartAv(slot, v1, v2)   EventRecord2 (0xEF10U+EventLevelError+((slot) & 0xFU), (v1), (v2))
 
#define EventStopA(slot)   EventRecord2 (0xEF20U+EventLevelError+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
 
#define EventStopAv(slot, v1, v2)   EventRecord2 (0xEF30U+EventLevelError+((slot) & 0xFU), (v1), (v2))
 
#define EventStartB(slot)   EventRecord2 (0xEF40U+EventLevelAPI+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
 
#define EventStartBv(slot, v1, v2)   EventRecord2 (0xEF50U+EventLevelAPI+((slot) & 0xFU), (v1), (v2))
 
#define EventStopB(slot)   EventRecord2 (0xEF60U+EventLevelAPI+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
 
#define EventStopBv(slot, v1, v2)   EventRecord2 (0xEF70U+EventLevelAPI+((slot) & 0xFU), (v1), (v2))
 
#define EventStartC(slot)   EventRecord2 (0xEF80U+EventLevelOp+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
 
#define EventStartCv(slot, v1, v2)   EventRecord2 (0xEF90U+EventLevelOp+((slot) & 0xFU), (v1), (v2))
 
#define EventStopC(slot)   EventRecord2 (0xEFA0U+EventLevelOp+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
 
#define EventStopCv(slot, v1, v2)   EventRecord2 (0xEFB0U+EventLevelOp+((slot) & 0xFU), (v1), (v2))
 
#define EventStartD(slot)   EventRecord2 (0xEFC0U+EventLevelDetail+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
 
#define EventStartDv(slot, v1, v2)   EventRecord2 (0xEFD0U+EventLevelDetail+((slot) & 0xFU), (v1), (v2))
 
#define EventStopD(slot)   EventRecord2 (0xEFE0U+EventLevelDetail+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
 
#define EventStopDv(slot, v1, v2)   EventRecord2 (0xEFF0U+EventLevelDetail+((slot) & 0xFU), (v1), (v2))
 
-

Description

-

Macros that record start/stop events for the execution statistic display.

-

This section describes the macros that call event recorder functions from the user application to record start/stop events for program execution statistics.

-

The start/stop events allow to measure execution times with different slots (0 - 15) in four different groups (G = A - D). The call to 'EventStart' starts a timer slot; the call to 'EventStop' stops the related timer. A call to EventStop with slot 15 stops the timers of all slots in the specific group.

-

The macros allow to record either:

    -
  • Filename and line number of the function call by using the variant EventStartG or EventStopG.
  • -
  • Integer values v1 and v2 by using the variant EventStartGv or EventStopGv.
  • -
-

The start/stop events are using The four event groups (G = A - D) that are available to the user are mapped to the level information in EventID and may be used for filtering. The mapping is as shown in the table below.

- - - - - - - -
Start/stop group A B C D
Event level Error API Op Data
Parameter recording EventRecordError EventRecordAPI EventRecordOp EventRecordDetail
-

It is required to call the EventRecorderInitialize function before using start/stop events. The parameter recording from the table above can be used in the functions EventRecorderInitialize, EventRecorderEnable, and EventRecorderDisable. Event filtering may be used to change the settings in the debugger.

-

The following code shows the setup of the Event Recorder for start/stop events:

- -

Code example

-

Macro Definition Documentation

- -

◆ EventStartA

- -
-
- - - - - - - - -
#define EventStartA( slot)   EventRecord2 (0xEF00U+EventLevelError+(slot), ((uint32_t) __FILE__), __LINE__)
-
-

The macro EventStartA generates a start event for group A with the specified slot number. The Event Recorder stores filename and line number of the call.

-
Parameters
- - -
[in]slotslot number (up to 16 slots, 0..15)
-
-
- -
-
- -

◆ EventStartAv

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define EventStartAv( slot,
 v1,
 v2 
)   EventRecord2 (0xEF10U+EventLevelError+((slot) & 0xFU), (v1), (v2))
-
-

The macro EventStartAv generates a start event for group A with the specified slot number. The Event Recorder stores the integer value parameters v1, v2.

-
Parameters
- - - - -
[in]slotslot number (up to 16 slots, 0..15)
[in]v1first data value
[in]v2second data value
-
-
- -
-
- -

◆ EventStopA

- -
-
- - - - - - - - -
#define EventStopA( slot)   EventRecord2 (0xEF20U+EventLevelError+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
-
-

The macro EventStopA generates a stop event for group A with the specified slot number. The Event Recorder stores filename and line number of the call.

-
Parameters
- - -
[in]slotslot number (up to 16 slots, 0..15)
-
-
- -
-
- -

◆ EventStopAv

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define EventStopAv( slot,
 v1,
 v2 
)   EventRecord2 (0xEF30U+EventLevelError+((slot) & 0xFU), (v1), (v2))
-
-

The macro EventStopAv generates a stop event for group A with the specified slot number. The Event Recorder stores the integer value parameters v1, v2.

-
Parameters
- - - - -
[in]slotslot number (up to 16 slots, 0..15)
[in]v1first data value
[in]v2second data value
-
-
- -
-
- -

◆ EventStartB

- -
-
- - - - - - - - -
#define EventStartB( slot)   EventRecord2 (0xEF40U+EventLevelAPI+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
-
-

The macro EventStartB generates a start event for group B with the specified slot number. The Event Recorder stores filename and line number of the call.

-
Parameters
- - -
[in]slotslot number (up to 16 slots, 0..15)
-
-
- -
-
- -

◆ EventStartBv

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define EventStartBv( slot,
 v1,
 v2 
)   EventRecord2 (0xEF50U+EventLevelAPI+((slot) & 0xFU), (v1), (v2))
-
-

The macro EventStartBv generates a start event for group B with the specified slot number. The Event Recorder stores the integer value parameters v1, v2.

-
Parameters
- - - - -
[in]slotslot number (up to 16 slots, 0..15)
[in]v1first data value
[in]v2second data value
-
-
- -
-
- -

◆ EventStopB

- -
-
- - - - - - - - -
#define EventStopB( slot)   EventRecord2 (0xEF60U+EventLevelAPI+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
-
-

The macro EventStopB generates a stop event for group B with the specified slot number. The Event Recorder stores filename and line number of the call.

-
Parameters
- - -
[in]slotslot number (up to 16 slots, 0..15)
-
-
- -
-
- -

◆ EventStopBv

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define EventStopBv( slot,
 v1,
 v2 
)   EventRecord2 (0xEF70U+EventLevelAPI+((slot) & 0xFU), (v1), (v2))
-
-

The macro EventStopBv generates a stop event for group B with the specified slot number. The Event Recorder stores the integer value parameters v1, v2.

-
Parameters
- - - - -
[in]slotslot number (up to 16 slots, 0..15)
[in]v1first data value
[in]v2second data value
-
-
- -
-
- -

◆ EventStartC

- -
-
- - - - - - - - -
#define EventStartC( slot)   EventRecord2 (0xEF80U+EventLevelOp+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
-
-

The macro EventStartC generates a start event for group C with the specified slot number. The Event Recorder stores filename and line number of the call.

-
Parameters
- - -
[in]slotslot number (up to 16 slots, 0..15)
-
-
- -
-
- -

◆ EventStartCv

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define EventStartCv( slot,
 v1,
 v2 
)   EventRecord2 (0xEF90U+EventLevelOp+((slot) & 0xFU), (v1), (v2))
-
-

The macro EventStartCv generates a start event for group C with the specified slot number. The Event Recorder stores the integer value parameters v1, v2.

-
Parameters
- - - - -
[in]slotslot number (up to 16 slots, 0..15)
[in]v1first data value
[in]v2second data value
-
-
- -
-
- -

◆ EventStopC

- -
-
- - - - - - - - -
#define EventStopC( slot)   EventRecord2 (0xEFA0U+EventLevelOp+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
-
-

The macro EventStopC generates a stop event for group C with the specified slot number. The Event Recorder stores filename and line number of the call.

-
Parameters
- - -
[in]slotslot number (up to 16 slots, 0..15)
-
-
- -
-
- -

◆ EventStopCv

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define EventStopCv( slot,
 v1,
 v2 
)   EventRecord2 (0xEFB0U+EventLevelOp+((slot) & 0xFU), (v1), (v2))
-
-

The macro EventStopCv generates a stop event for group C with the specified slot number. The Event Recorder stores the integer value parameters v1, v2.

-
Parameters
- - - - -
[in]slotslot number (up to 16 slots, 0..15)
[in]v1first data value
[in]v2second data value
-
-
- -
-
- -

◆ EventStartD

- -
-
- - - - - - - - -
#define EventStartD( slot)   EventRecord2 (0xEFC0U+EventLevelDetail+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
-
-

The macro EventStartD generates a start event for group D with the specified slot number. The Event Recorder stores filename and line number of the call.

-
Parameters
- - -
[in]slotslot number (up to 16 slots, 0..15)
-
-
- -
-
- -

◆ EventStartDv

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define EventStartDv( slot,
 v1,
 v2 
)   EventRecord2 (0xEFD0U+EventLevelDetail+((slot) & 0xFU), (v1), (v2))
-
-

The macro EventStartDv generates a start event for group D with the specified slot number. The Event Recorder stores the integer value parameters v1, v2.

-
Parameters
- - - - -
[in]slotslot number (up to 16 slots, 0..15)
[in]v1first data value
[in]v2second data value
-
-
- -
-
- -

◆ EventStopD

- -
-
- - - - - - - - -
#define EventStopD( slot)   EventRecord2 (0xEFE0U+EventLevelDetail+((slot) & 0xFU), ((uint32_t) __FILE__), __LINE__)
-
-

The macro EventStopD generates a stop event for group D with the specified slot number. The Event Recorder stores filename and line number of the call.

-
Parameters
- - -
[in]slotslot number (up to 16 slots, 0..15)
-
-
- -
-
- -

◆ EventStopDv

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define EventStopDv( slot,
 v1,
 v2 
)   EventRecord2 (0xEFF0U+EventLevelDetail+((slot) & 0xFU), (v1), (v2))
-
-

The macro EventStopDv generates a stop event for group D with the specified slot number. The Event Recorder stores the integer value parameters v1, v2.

-
Parameters
- - - - -
[in]slotslot number (up to 16 slots, 0..15)
[in]v1first data value
[in]v2second data value
-
-
- -
-
-
-
- - - - diff --git a/pack/1.2.0/group__Event__Execution__Statistic.js b/pack/1.2.0/group__Event__Execution__Statistic.js deleted file mode 100644 index 65e3db8..0000000 --- a/pack/1.2.0/group__Event__Execution__Statistic.js +++ /dev/null @@ -1,19 +0,0 @@ -var group__Event__Execution__Statistic = -[ - [ "EventStartA", "group__Event__Execution__Statistic.html#ga58d4d5218ebaa60b22b61611eb80ec0e", null ], - [ "EventStartAv", "group__Event__Execution__Statistic.html#ga04bc2078e175cb140d2d6c63b735de5a", null ], - [ "EventStopA", "group__Event__Execution__Statistic.html#ga272b6974b8639ccdbde641aee2f32f80", null ], - [ "EventStopAv", "group__Event__Execution__Statistic.html#ga89d44b68c50e2f54fb31c5c5a49f7323", null ], - [ "EventStartB", "group__Event__Execution__Statistic.html#gab30990477409902c0a721f5d7ec15cbd", null ], - [ "EventStartBv", "group__Event__Execution__Statistic.html#ga2dfd99f7a775a8fd487ea62aa6e7f00a", null ], - [ "EventStopB", "group__Event__Execution__Statistic.html#ga17d5e0c80fb41befbbe4c172f3666bbc", null ], - [ "EventStopBv", "group__Event__Execution__Statistic.html#gaf60ad8252136f7e6c051d1d4e46387c7", null ], - [ "EventStartC", "group__Event__Execution__Statistic.html#gaa847ea3ad2a5b60f0fb7db7fc5ab0854", null ], - [ "EventStartCv", "group__Event__Execution__Statistic.html#gada42783add80fbe0a262f07b07235289", null ], - [ "EventStopC", "group__Event__Execution__Statistic.html#ga6b39b6771769a2a9e1ba9c8fda33e1d7", null ], - [ "EventStopCv", "group__Event__Execution__Statistic.html#ga91c17bf015918bf11f750fe2294112c4", null ], - [ "EventStartD", "group__Event__Execution__Statistic.html#ga37b71fdaf8f8d7f58d44b16e6140b14a", null ], - [ "EventStartDv", "group__Event__Execution__Statistic.html#ga1d6493b29d069a02e74de12536d45110", null ], - [ "EventStopD", "group__Event__Execution__Statistic.html#ga9d8b1202dbd9cc0118eaca71980b9498", null ], - [ "EventStopDv", "group__Event__Execution__Statistic.html#ga6e558046012c0062d590373c46be19cc", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__Fault__Record.html b/pack/1.2.0/group__Fault__Record.html deleted file mode 100644 index 3a03fee..0000000 --- a/pack/1.2.0/group__Fault__Record.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - -CMSIS-View: Fault Record - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
Fault Record
-
-
- -

Decode and record the Cortex-M Exception Fault information via Event Recorder. -More...

- - - - - -

-Functions

void ARM_FaultRecord (void)
 Output decoded fault information via Event Recorder.
 
-

Description

-

Decode and record the Cortex-M Exception Fault information via Event Recorder.

-

For an overview see Exception Fault Analysis.

-

This section contains the function of the component CMSIS-View:Fault:Record that decodes and records the Cortex-M Exception Fault information using the Event Recorder.

-

Function Documentation

- -

◆ ARM_FaultRecord()

- -
-
- - - - - - - - -
ARM_FaultRecord (void )
-
- -

Output decoded fault information via Event Recorder.

-

Decode stored fault information and send information using Event Recorder events.

-

Code Example

#include "EventRecorder.h"
-
#include "ARM_Fault.h"
-
-
int main() {
-
-
EventRecorderInitialize (EventRecordAll, 1U); // Initialize and start Event Recorder
-
-
if (ARM_FaultOccurred() != 0U) { // If fault information exists
-
ARM_FaultRecord(); // Output decoded fault information via Event Recorder
-
EventRecorderStop(); // Stop Event Recorder
-
}
-
-
// ...
-
}
-
-
-
-
-
- - - - diff --git a/pack/1.2.0/group__Fault__Record.js b/pack/1.2.0/group__Fault__Record.js deleted file mode 100644 index c0d84d9..0000000 --- a/pack/1.2.0/group__Fault__Record.js +++ /dev/null @@ -1,4 +0,0 @@ -var group__Fault__Record = -[ - [ "ARM_FaultRecord", "group__Fault__Record.html#ga0cbe701756d156237511b5a526634558", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__Fault__Storage.html b/pack/1.2.0/group__Fault__Storage.html deleted file mode 100644 index f71346f..0000000 --- a/pack/1.2.0/group__Fault__Storage.html +++ /dev/null @@ -1,837 +0,0 @@ - - - - - - - -CMSIS-View: Fault Storage - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
Fault Storage
-
-
- -

Functions that store the Cortex-M Exception Fault information into memory. -More...

- - - - - -

-Content

 Macros
 Fault Storage macro definitions.
 
- - - - - - - - - - - - - - -

-Data Structures

struct  ARM_FaultInfo_t
 Fault information structure type definition. More...
 
struct  ARM_FaultInfo_t.Version
 
struct  ARM_FaultInfo_t.Content
 
struct  ARM_FaultInfo_t.Registers
 
struct  ARM_FaultInfo_t.ExceptionState
 
struct  ARM_FaultInfo_t.FaultRegisters
 
- - - - - - - - - - - - - - - - -

-Functions

void ARM_FaultClear (void)
 Clear the saved fault information.
 
uint32_t ARM_FaultOccurred (void)
 Check if the fault occurred and if the fault information was saved properly.
 
void ARM_FaultSave (void)
 Save the fault information.
 
void ARM_FaultExit (void)
 Callback function called after fault information was saved.
 
void ARM_FaultPrint (void)
 Output decoded fault information via STDIO.
 
- - - - - - - -

-Variables

ARM_FaultInfo_t ARM_FaultInfo
 Fault Information.
 
const char ARM_FaultVersion []
 Fault component version information.
 
-

Description

-

Functions that store the Cortex-M Exception Fault information into memory.

-

For an overview see Exception Fault Analysis.

-

This section contains the functions of the component CMSIS-View:Fault:Storage that store the Cortex-M Exception Fault information in uninitialized RAM memory and auxiliary functions.

-

Data Structure Documentation

- -

◆ ARM_FaultInfo_t

- -
-
- - - - -
struct ARM_FaultInfo_t
-
-

Fault information structure type definition.

-

Structure for storing fault information. Exposed via ARM_FaultInfo.

-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Data Fields
-uint32_t -MagicNumber -Magic number (ASCII "FltR")
-uint32_t -CRC32 -CRC32 of the structure content (excluding MagicNumber and CRC32 fields)
-uint32_t -Count -Saved faults counter.
-struct ARM_FaultInfo_t.Version -Version -
-struct ARM_FaultInfo_t.Content -Content -
-struct ARM_FaultInfo_t.Registers -Registers -
-struct ARM_FaultInfo_t.ExceptionState -ExceptionState -
-struct ARM_FaultInfo_t.FaultRegisters -FaultRegisters -
- -
-
- -

◆ ARM_FaultInfo_t.Version

- -
-
- - - - -
struct ARM_FaultInfo_t.Version
-
-
- - - - - - - -
Data Fields
-uint8_t -Minor -Fault information structure version: Minor, see ARM_FAULT_FAULT_INFO_VER_MINOR.
-uint8_t -Major -Fault information structure version: Major, see ARM_FAULT_FAULT_INFO_VER_MAJOR.
- -
-
- -

◆ ARM_FaultInfo_t.Content

- -
-
- - - - -
struct ARM_FaultInfo_t.Content
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Data Fields
-uint16_t -FaultRegsExist: 1 -Fault registers: 0 - absent; 1 - available.
-uint16_t -Armv8xM_Main: 1 -Armv8/8.1-M Mainline information: 0 - absent; 1 - available.
-uint16_t -TZ_Enabled: 1 -TrustZone (Cortex-M security extensions): 0 - not enabled; 1 - enabled.
-uint16_t -TZ_SaveMode: 1 -Fault information was saved in: 0 - TrustZone-disabled or non-secure mode; 1 - secure mode.
-uint16_t -TZ_FaultMode: 1 -Fault happened in: 0 - TrustZone-disabled or non-secure mode; 1 - secure mode.
-uint16_t -StateContext: 1 -State Context: 0 - was not saved; 1 - was saved.
-uint16_t -AdditionalContext: 1 -Additional State Context: 0 - was not saved; 1 - was saved.
-uint16_t -LimitRegs: 1 -MSPLIM and PSPLIM: 0 - were not saved; 1 - were saved.
-uint16_t -FaultRegs: 1 -Fault registers: 0 - were not saved; 1 - were saved.
-uint16_t -SecureFaultRegs: 1 -Secure Fault registers: 0 - were not saved; 1 - were saved.
-uint16_t -RAS_FaultReg: 1 -RAS Fault register: 0 - was not saved; 1 - was saved.
-uint16_t -Reserved: 5 -Reserved (0)
- -
-
- -

◆ ARM_FaultInfo_t.Registers

- -
-
- - - - -
struct ARM_FaultInfo_t.Registers
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Data Fields
-uint32_t -R0 -R0 Register value.
-uint32_t -R1 -R1 Register value.
-uint32_t -R2 -R2 Register value.
-uint32_t -R3 -R3 Register value.
-uint32_t -R4 -R4 Register value.
-uint32_t -R5 -R5 Register value.
-uint32_t -R6 -R6 Register value.
-uint32_t -R7 -R7 Register value.
-uint32_t -R8 -R8 Register value.
-uint32_t -R9 -R9 Register value.
-uint32_t -R10 -R10 Register value.
-uint32_t -R11 -R11 Register value.
-uint32_t -R12 -R12 Register value.
-uint32_t -LR -Link Register (R14) value.
-uint32_t -ReturnAddress -Return address from exception.
-uint32_t -xPSR -Program Status Register value.
-uint32_t -MSP -Main Stack Pointer value.
-uint32_t -PSP -Process Stack Pointer value.
-uint32_t -MSPLIM -Main Stack Pointer Limit Register value (only for Armv8/8.1-M arch)
-uint32_t -PSPLIM -Process Stack Pointer Limit Register value (only for Armv8/8.1-M arch)
- -
-
- -

◆ ARM_FaultInfo_t.ExceptionState

- -
-
- - - - -
struct ARM_FaultInfo_t.ExceptionState
-
-
- - - - - - - -
Data Fields
-uint32_t -xPSR -Program Status Register value, in exception handler.
-uint32_t -EXC_RETURN -Exception Return code (LR), in exception handler.
- -
-
- -

◆ ARM_FaultInfo_t.FaultRegisters

- -
-
- - - - -
struct ARM_FaultInfo_t.FaultRegisters
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Data Fields
-uint32_t -CFSR -System Control Block - Configurable Fault Status Register value.
-uint32_t -HFSR -System Control Block - HardFault Status Register value.
-uint32_t -DFSR -System Control Block - Debug Fault Status Register value.
-uint32_t -MMFAR -System Control Block - MemManage Fault Address Register value.
-uint32_t -BFAR -System Control Block - BusFault Address Register value.
-uint32_t -AFSR -System Control Block - Auxiliary Fault Status Register value.
-uint32_t -SFSR -System Control Block - Secure Fault Status Register value.
-uint32_t -SFAR -System Control Block - Secure Fault Address Register value.
-uint32_t -RFSR -System Control Block - RAS Fault Status Register value.
- -
-
-

Function Documentation

- -

◆ ARM_FaultClear()

- -
-
- - - - - - - - -
ARM_FaultClear (void )
-
- -

Clear the saved fault information.

-

Code Example

#include "ARM_Fault.h"
-
-
int main (void) {
-
-
ARM_FaultClear(); // Clear fault information
-
-
// ...
-
}
-
-
-
- -

◆ ARM_FaultOccurred()

- -
-
- - - - - - - - -
ARM_FaultOccurred (void )
-
- -

Check if the fault occurred and if the fault information was saved properly.

-
Returns
status (1 = fault occurred and valid fault information exists, 0 = no fault information saved yet or fault information is invalid)
-

Call during startup to check if a fault occurred and if fault information is available, for example decode the fault information using ARM_FaultPrint or ARM_FaultRecord functions.

-

Code Example

#include "EventRecorder.h"
-
#include "ARM_Fault.h"
-
-
int main() {
-
-
EventRecorderInitialize (EventRecordAll, 1U); // Initialize and start Event Recorder
-
-
if (ARM_FaultOccurred() != 0U) { // If fault information exists
-
ARM_FaultPrint(); // Output decoded fault information via STDIO
-
ARM_FaultRecord(); // Output decoded fault information via Event Recorder
-
EventRecorderStop(); // Stop Event Recorder
-
}
-
-
// ...
-
}
-
-
-
- -

◆ ARM_FaultSave()

- -
-
- - - - - - - - -
ARM_FaultSave (void )
-
- -

Save the fault information.

-

Call from a fault handler to save current fault information into uninitialized RAM memory.

-

Make sure that function is called without changing the Stack Pointer (SP) and Link Register (LR) registers. This is usually done by branching directly to this function from the fault handler.

-

This function does not use stack or heap memories.

-

Code Example

#include "ARM_Fault.h"
-
-
__attribute__((naked)) void HardFault_Handler (void) {
-
__ASM volatile (
-
"b ARM_FaultSave\n"
-
);
-
}
-
-
__attribute__((naked)) void MemManage_Handler (void) {
-
__ASM volatile (
-
"b ARM_FaultSave\n"
-
);
-
}
-
-
__attribute__((naked)) void BusFault_Handler (void) {
-
__ASM volatile (
-
"b ARM_FaultSave\n"
-
);
-
}
-
-
__attribute__((naked)) void UsageFault_Handler (void) {
-
__ASM volatile (
-
"b ARM_FaultSave\n"
-
);
-
}
-
-
-
- -

◆ ARM_FaultExit()

- -
-
- - - - - - - - -
ARM_FaultExit (void )
-
- -

Callback function called after fault information was saved.

-

The default implementation will do a system reset.

-

If a system reset is not desired, you need to provide a custom implementation of this function with the desired functionality.

-

Code Example of overriding ARM_FaultExit function not to reset the system but to loop endlessly:

#include "ARM_Fault.h"
-
-
__attribute__((naked)) void ARM_FaultExit (void) {
-
__ASM volatile (
-
"b .\n"
-
);
-
}
-
-
-
- -

◆ ARM_FaultPrint()

- -
-
- - - - - - - - -
ARM_FaultPrint (void )
-
- -

Output decoded fault information via STDIO.

-

To use ARM_FaultPrint, add the ARM_FaultPrint template implementation to the project.

-

Code Example

#include <stdio.h>
-
#include "ARM_Fault.h"
-
-
int main() {
-
-
if (ARM_FaultOccurred() != 0U) { // If fault information exists
-
ARM_FaultPrint(); // Output decoded fault information via STDIO
-
}
-
-
// ...
-
}
-
-
-
-

Variable Documentation

- -

◆ ARM_FaultInfo

- -
-
- - - - -
ARM_FaultInfo_t ARM_FaultInfo
-
- -

Fault Information.

-

Variable for storing fault information.

- -
-
- -

◆ ARM_FaultVersion

- -
-
- - - - -
const char ARM_FaultVersion[]
-
- -

Fault component version information.

-

Variable for storing Arm Fault component version.

- -
-
-
-
- - - - diff --git a/pack/1.2.0/group__Fault__Storage.js b/pack/1.2.0/group__Fault__Storage.js deleted file mode 100644 index 82149f1..0000000 --- a/pack/1.2.0/group__Fault__Storage.js +++ /dev/null @@ -1,76 +0,0 @@ -var group__Fault__Storage = -[ - [ "Macros", "group__Fault__Storage__Macros.html", "group__Fault__Storage__Macros" ], - [ "ARM_FaultInfo_t", "group__Fault__Storage.html#structARM__FaultInfo__t", [ - [ "MagicNumber", "group__Fault__Storage.html#ac2d9a2b3478db6dc43ad665d6a6eda8c", null ], - [ "CRC32", "group__Fault__Storage.html#af3387a02ca594eaccf12871dcd771c59", null ], - [ "Count", "group__Fault__Storage.html#ad3fa7da84ce75c8b58d9251838377e8f", null ], - [ "Version", "group__Fault__Storage.html#ad0d4da7ba1547022215b35809c42a53b", null ], - [ "Content", "group__Fault__Storage.html#ae8be184994d76ddba8448ae13b023ab0", null ], - [ "Registers", "group__Fault__Storage.html#a35916cdff844aed0702832d2b2fdd63b", null ], - [ "ExceptionState", "group__Fault__Storage.html#a0a8f212fe7d2a2d21811ec3d54c00040", null ], - [ "FaultRegisters", "group__Fault__Storage.html#a5e69b516a93cb63d750ad70e64a3d3a5", null ] - ] ], - [ "ARM_FaultInfo_t.Version", "group__Fault__Storage.html#structARM__FaultInfo__t_8Version", [ - [ "Minor", "group__Fault__Storage.html#a6fed0c378a4b4e8c1e7dc5c16dabb388", null ], - [ "Major", "group__Fault__Storage.html#a3b329734e45b57e60f3df64c2cf412a9", null ] - ] ], - [ "ARM_FaultInfo_t.Content", "group__Fault__Storage.html#structARM__FaultInfo__t_8Content", [ - [ "FaultRegsExist", "group__Fault__Storage.html#a08704d7d7d1646c9425f7e447ab48531", null ], - [ "Armv8xM_Main", "group__Fault__Storage.html#a8fa526e28e297af56b0e30d1c9ae8ac4", null ], - [ "TZ_Enabled", "group__Fault__Storage.html#a016c2cf111bea200eed44e0762accae2", null ], - [ "TZ_SaveMode", "group__Fault__Storage.html#a999013afa0b366c3fc6b2b03339c8664", null ], - [ "TZ_FaultMode", "group__Fault__Storage.html#a6f1bd956c67f4e7fc2f30ac0a3f16da9", null ], - [ "StateContext", "group__Fault__Storage.html#a5a0acace654b1e24f10f1a08f87b0b83", null ], - [ "AdditionalContext", "group__Fault__Storage.html#a7ab19399a9bb23888b544711d7466572", null ], - [ "LimitRegs", "group__Fault__Storage.html#aad113ca05f3c81ec8286524eef110dbe", null ], - [ "FaultRegs", "group__Fault__Storage.html#ae23d5adae7dc98e75f3e321c8bcbe85b", null ], - [ "SecureFaultRegs", "group__Fault__Storage.html#aa7d03b7909dc73f9eb1d77346fd1ac6d", null ], - [ "RAS_FaultReg", "group__Fault__Storage.html#a60dff9205a6898412f713550aeb3dfcd", null ], - [ "Reserved", "group__Fault__Storage.html#a942d4e37dd5607ab68e54755540d4a47", null ] - ] ], - [ "ARM_FaultInfo_t.Registers", "group__Fault__Storage.html#structARM__FaultInfo__t_8Registers", [ - [ "R0", "group__Fault__Storage.html#a298ae558fe1a3bb5aab7fab0bad18e42", null ], - [ "R1", "group__Fault__Storage.html#acda522d4353b166cc2dee84673307b4e", null ], - [ "R2", "group__Fault__Storage.html#a8c6d22ff6f63fc6711cfa315cb80b314", null ], - [ "R3", "group__Fault__Storage.html#a5c108ce0fe89d0632cfce75f650b36c2", null ], - [ "R4", "group__Fault__Storage.html#a8717ce4dfdc86a4b576d9e983ab9fb29", null ], - [ "R5", "group__Fault__Storage.html#ae1b8054c9cdd622c9eeecfe71f26054a", null ], - [ "R6", "group__Fault__Storage.html#af38ee76ce06ccd13940482aced1c7391", null ], - [ "R7", "group__Fault__Storage.html#ab9d7e51eba2c6d155e7fd3013338c38e", null ], - [ "R8", "group__Fault__Storage.html#acfff813d86d447fa2a9c858650ebbb90", null ], - [ "R9", "group__Fault__Storage.html#a8d28dad91e1ffada38203b9e5f9af86d", null ], - [ "R10", "group__Fault__Storage.html#a33df7d5541bc0941336b1513815da7a5", null ], - [ "R11", "group__Fault__Storage.html#a7f6711cf763cf8d5648cb4fd0c3790df", null ], - [ "R12", "group__Fault__Storage.html#a1688316d15ac9218146e0f4ba5fc8d4f", null ], - [ "LR", "group__Fault__Storage.html#a90a7c45eaffbd575ca6fb361e6d170a4", null ], - [ "ReturnAddress", "group__Fault__Storage.html#a878c9409a37580cd543995d8dbfb985f", null ], - [ "xPSR", "group__Fault__Storage.html#acb6baff416053fc1aa6456b50b01f48c", null ], - [ "MSP", "group__Fault__Storage.html#a4b6544406098f683478fca26b2589e6d", null ], - [ "PSP", "group__Fault__Storage.html#a0e9c9bb3639ba35c67b2492f04a34d99", null ], - [ "MSPLIM", "group__Fault__Storage.html#a993534eba17b45ead06a0cbe109092a2", null ], - [ "PSPLIM", "group__Fault__Storage.html#a2c5bd1a0238c11927ce2da061b9a8d6d", null ] - ] ], - [ "ARM_FaultInfo_t.ExceptionState", "group__Fault__Storage.html#structARM__FaultInfo__t_8ExceptionState", [ - [ "xPSR", "group__Fault__Storage.html#acb6baff416053fc1aa6456b50b01f48c", null ], - [ "EXC_RETURN", "group__Fault__Storage.html#ae3d037e7ad954ad87083532ef0b209fc", null ] - ] ], - [ "ARM_FaultInfo_t.FaultRegisters", "group__Fault__Storage.html#structARM__FaultInfo__t_8FaultRegisters", [ - [ "CFSR", "group__Fault__Storage.html#a7b890ad589aefd514069459c6b8db05b", null ], - [ "HFSR", "group__Fault__Storage.html#aa247d56436811a648d3abf803414de12", null ], - [ "DFSR", "group__Fault__Storage.html#a875e33d495b9aa388a59472e522a07d6", null ], - [ "MMFAR", "group__Fault__Storage.html#a059c8988a6fe98923b2c0f2475d8409c", null ], - [ "BFAR", "group__Fault__Storage.html#abf39de1bc2e8e89f56d9d1981ac408cb", null ], - [ "AFSR", "group__Fault__Storage.html#a2b6b6f9b5ec535b4bf23ec587ac23e13", null ], - [ "SFSR", "group__Fault__Storage.html#a37c4714795c50e7eb4060adaab51663f", null ], - [ "SFAR", "group__Fault__Storage.html#ae957c2edce8feab441ee2a5ce9afc2d8", null ], - [ "RFSR", "group__Fault__Storage.html#a1ac3d19b7470cd5d3296a1c42fd72386", null ] - ] ], - [ "ARM_FaultClear", "group__Fault__Storage.html#ga798a3b6672c119384b761e5f1fa6d346", null ], - [ "ARM_FaultOccurred", "group__Fault__Storage.html#ga46ed1c1d7ede7bea91130d1e93ab4fe1", null ], - [ "ARM_FaultSave", "group__Fault__Storage.html#ga4a614184dca42fb415d0a01ba03163e3", null ], - [ "ARM_FaultExit", "group__Fault__Storage.html#gad813a8434754f3a2e4bdbd82a11f2292", null ], - [ "ARM_FaultPrint", "group__Fault__Storage.html#ga139ab9a8507bbbc389d518a9886f0691", null ], - [ "ARM_FaultInfo", "group__Fault__Storage.html#ga775536834c48e2014db1157224f0cdac", null ], - [ "ARM_FaultVersion", "group__Fault__Storage.html#gad20ff5240efa780c2875426157710aee", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__Fault__Storage__Macros.html b/pack/1.2.0/group__Fault__Storage__Macros.html deleted file mode 100644 index 1f4440b..0000000 --- a/pack/1.2.0/group__Fault__Storage__Macros.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - -CMSIS-View: Macros - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- - -
-
- -

Fault Storage macro definitions. -More...

- - - - - - -

-Macros

#define ARM_FAULT_FAULT_INFO_VER_MAJOR   (1U)
 
#define ARM_FAULT_FAULT_INFO_VER_MINOR   (0U)
 
-

Description

-

Fault Storage macro definitions.

-

Macro Definition Documentation

- -

◆ ARM_FAULT_FAULT_INFO_VER_MAJOR

- -
-
- - - - -
#define ARM_FAULT_FAULT_INFO_VER_MAJOR   (1U)
-
-

ARM Fault major version used in ARM_FaultInfo_t.Version Major

- -
-
- -

◆ ARM_FAULT_FAULT_INFO_VER_MINOR

- -
-
- - - - -
#define ARM_FAULT_FAULT_INFO_VER_MINOR   (0U)
-
-

ARM Fault minor version used in ARM_FaultInfo.Version Minor

- -
-
-
-
- - - - diff --git a/pack/1.2.0/group__Fault__Storage__Macros.js b/pack/1.2.0/group__Fault__Storage__Macros.js deleted file mode 100644 index 8159ac9..0000000 --- a/pack/1.2.0/group__Fault__Storage__Macros.js +++ /dev/null @@ -1,5 +0,0 @@ -var group__Fault__Storage__Macros = -[ - [ "ARM_FAULT_FAULT_INFO_VER_MAJOR", "group__Fault__Storage__Macros.html#gad806d6d81404dc3297a9e0097ee41f5e", null ], - [ "ARM_FAULT_FAULT_INFO_VER_MINOR", "group__Fault__Storage__Macros.html#gafa7f6c005137393af25375ed25a3d90d", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__Ref__EventRecorder.html b/pack/1.2.0/group__Ref__EventRecorder.html deleted file mode 100644 index a65a5e5..0000000 --- a/pack/1.2.0/group__Ref__EventRecorder.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - -CMSIS-View: Event Recorder API - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
Event Recorder API
-
-
- -

Collect time-stamped event data about code execution. -More...

- - - - - - - - - - - - - - -

-Content

 Event Recorder Setup
 Functions that initialize and control the event recorder and configure event filtering.
 
 Event Data Recording
 Functions that record events along with data information.
 
 Event Execution Statistics
 Macros that record start/stop events for the execution statistic display.
 
 Event Recorder - Timer
 Functions that access a configurable hardware timer.
 
-

Description

-

Collect time-stamped event data about code execution.

-

For an overview see Event Recorder.

-

This section explains the functions of the component CMSIS-View:Event Recorder for event annotations in the code.

-
-
- - - - diff --git a/pack/1.2.0/group__Ref__EventRecorder.js b/pack/1.2.0/group__Ref__EventRecorder.js deleted file mode 100644 index 2d1f03b..0000000 --- a/pack/1.2.0/group__Ref__EventRecorder.js +++ /dev/null @@ -1,7 +0,0 @@ -var group__Ref__EventRecorder = -[ - [ "Event Recorder Setup", "group__EventRecorder__Setup.html", "group__EventRecorder__Setup" ], - [ "Event Data Recording", "group__EventRecorder__Data.html", "group__EventRecorder__Data" ], - [ "Event Execution Statistics", "group__Event__Execution__Statistic.html", "group__Event__Execution__Statistic" ], - [ "Event Recorder - Timer", "group__EventRecorder__Time.html", "group__EventRecorder__Time" ] -]; \ No newline at end of file diff --git a/pack/1.2.0/group__Ref__Fault.html b/pack/1.2.0/group__Ref__Fault.html deleted file mode 100644 index 1b088fd..0000000 --- a/pack/1.2.0/group__Ref__Fault.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - -CMSIS-View: Fault API - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
Fault API
-
-
- -

Store, record, and analyze Cortex-M Exception Fault information. -More...

- - - - - - - - -

-Content

 Fault Storage
 Functions that store the Cortex-M Exception Fault information into memory.
 
 Fault Record
 Decode and record the Cortex-M Exception Fault information via Event Recorder.
 
-

Description

-

Store, record, and analyze Cortex-M Exception Fault information.

-

For an overview see Fault Analysis.

-

This section contains the functions of the component CMSIS-View:Fault that store, record, and analyze the Cortex-M Exception Fault information.

-
-
- - - - diff --git a/pack/1.2.0/group__Ref__Fault.js b/pack/1.2.0/group__Ref__Fault.js deleted file mode 100644 index b645aae..0000000 --- a/pack/1.2.0/group__Ref__Fault.js +++ /dev/null @@ -1,5 +0,0 @@ -var group__Ref__Fault = -[ - [ "Fault Storage", "group__Fault__Storage.html", "group__Fault__Storage" ], - [ "Fault Record", "group__Fault__Record.html", "group__Fault__Record" ] -]; \ No newline at end of file diff --git a/pack/1.2.0/i_spec.png b/pack/1.2.0/i_spec.png deleted file mode 100644 index 84f89dd..0000000 Binary files a/pack/1.2.0/i_spec.png and /dev/null differ diff --git a/pack/1.2.0/index.html b/pack/1.2.0/index.html deleted file mode 100644 index 163fd68..0000000 --- a/pack/1.2.0/index.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - -CMSIS-View: Overview - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Overview
-
-
-

CMSIS-View equips software developers with software components, utilities and methodologies that provide visibility into internal operation of embedded applications and software components.

-

With the software components of CMSIS-View, developers can collect time-accurate event-based information, display program execution status, and analyze fault exceptions. It allows to analyze execution flows, debug potential issues, and measure execution times. The data can be observed in real-time in an IDE or can be saved as a log file during program execution.

-

A Software Component Viewer Description (*.SCVD) file in SCVD file format (XML) defines the content that is displayed in the Component Viewer and Event Recorder.

-

In addition, using the Event Recorder API, you can annotate your code so that you can get statistical data on the time spent in a loop or on the energy consumption (ULINKplus required).

-

Key elements of CMSIS-View are:

-
    -
  • Event Recorder - an embedded software component that provides Event Recorder API for event annotations in the code.
  • -
  • eventlist utility - a command line tool for processing Event Recorder log files.
  • -
  • Fault - an embedded software component with infrastructure and Fault API to store, record, and analyze exception fault information.
  • -
-
-

Note

-
-

-Access to CMSIS-View

-

CMSIS-View is actively maintained in CMSIS-View GitHub repository and is released as a standalone CMSIS-View pack in the CMSIS-Pack format.

-

The table below explains the content of ARM::CMSIS-View pack.

- - - - - - - - - - - - - - - -
Directory Description
📂 Documentation Folder with this CMSIS-View documenation
📂 EventRecorder Event Recorder implementation
📂 Examples Examples projects using CMSIS-View
📂 Fault Implementation of the Fault component
📄 ARM.CMSIS-View.pdsc Pack description file in CMSIS-Pack format
📄 LICENSE License Agreement (Apache 2.0)
-

See CMSIS Documentation for an overview of CMSIS software components, tools and specifications.

-

-Documentation Structure

-

This user's guide contains the following chapters:

-
    -
  • Revision History : lists CMSIS-View releases
  • -
  • Event Recorder : explores the features and operation of the Event Recorder including configuration, technical data, and theory of operation.
  • -
  • Event Statistics : describes how to use Event Statistics to create statistical data on code execution and power consumption.
  • -
  • eventlist Utility : shows the usage of eventlist, a command line tool for processing Event Recorder records stored to a log file.
  • -
  • Component Viewer : explains the use of Component Viewer.
  • -
  • SCVD file format : describes the format of the Software Component View Description (*.SCVD) files that define the content that is displayed.
  • -
  • Fault Analysis : infrastructure and functions to store, record, and analyze the Cortex-M Exception Fault information.
  • -
  • Examples are available demonstrating standard use cases.
  • -
  • API References describes the API and the functions of the Event Recorder and Fault components in details.
  • -
-

-License

-

CMSIS-View is provided free of charge by Arm under the Apache 2.0 License.

-
-
-
- - - - diff --git a/pack/1.2.0/index.js b/pack/1.2.0/index.js deleted file mode 100644 index d22efa6..0000000 --- a/pack/1.2.0/index.js +++ /dev/null @@ -1,6 +0,0 @@ -var index = -[ - [ "Access to CMSIS-View", "index.html#view_access", null ], - [ "Documentation Structure", "index.html#doc_structure", null ], - [ "License", "index.html#license", null ] -]; \ No newline at end of file diff --git a/pack/1.2.0/jquery.js b/pack/1.2.0/jquery.js deleted file mode 100644 index 1dffb65..0000000 --- a/pack/1.2.0/jquery.js +++ /dev/null @@ -1,34 +0,0 @@ -/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/pack/1.2.0/modules.html b/pack/1.2.0/modules.html deleted file mode 100644 index 19b373d..0000000 --- a/pack/1.2.0/modules.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - -CMSIS-View: API Reference - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
API Reference
-
-
-
Here is a list of all modules:
-
[detail level 123]
- - - - - - - - - - - - -
 Event Recorder APICollect time-stamped event data about code execution
 Fault APIStore, record, and analyze Cortex-M Exception Fault information
-
-
-
- - - - diff --git a/pack/1.2.0/modules.js b/pack/1.2.0/modules.js deleted file mode 100644 index 9a793c2..0000000 --- a/pack/1.2.0/modules.js +++ /dev/null @@ -1,5 +0,0 @@ -var modules = -[ - [ "Event Recorder API", "group__Ref__EventRecorder.html", "group__Ref__EventRecorder" ], - [ "Fault API", "group__Ref__Fault.html", "group__Ref__Fault" ] -]; \ No newline at end of file diff --git a/pack/1.2.0/n_spec.png b/pack/1.2.0/n_spec.png deleted file mode 100644 index 39db25a..0000000 Binary files a/pack/1.2.0/n_spec.png and /dev/null differ diff --git a/pack/1.2.0/nav_f.png b/pack/1.2.0/nav_f.png deleted file mode 100644 index 72a58a5..0000000 Binary files a/pack/1.2.0/nav_f.png and /dev/null differ diff --git a/pack/1.2.0/nav_fd.png b/pack/1.2.0/nav_fd.png deleted file mode 100644 index 032fbdd..0000000 Binary files a/pack/1.2.0/nav_fd.png and /dev/null differ diff --git a/pack/1.2.0/nav_g.png b/pack/1.2.0/nav_g.png deleted file mode 100644 index 2093a23..0000000 Binary files a/pack/1.2.0/nav_g.png and /dev/null differ diff --git a/pack/1.2.0/nav_h.png b/pack/1.2.0/nav_h.png deleted file mode 100644 index 33389b1..0000000 Binary files a/pack/1.2.0/nav_h.png and /dev/null differ diff --git a/pack/1.2.0/nav_hd.png b/pack/1.2.0/nav_hd.png deleted file mode 100644 index de80f18..0000000 Binary files a/pack/1.2.0/nav_hd.png and /dev/null differ diff --git a/pack/1.2.0/navtree.css b/pack/1.2.0/navtree.css deleted file mode 100644 index c8a7766..0000000 --- a/pack/1.2.0/navtree.css +++ /dev/null @@ -1,150 +0,0 @@ -#nav-tree .children_ul { - margin:0; - padding:4px; -} - -#nav-tree ul { - list-style:none outside none; - margin:0px; - padding:0px; -} - -#nav-tree li { - white-space:nowrap; - margin:0px; - padding:0px; -} - -#nav-tree .plus { - margin:0px; -} - -#nav-tree .selected { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: var(--nav-text-active-color); - text-shadow: var(--nav-text-active-shadow); -} - -#nav-tree .selected .arrow { - color: var(--nav-arrow-selected-color); - text-shadow: none; -} - -#nav-tree img { - margin:0px; - padding:0px; - border:0px; - vertical-align: middle; -} - -#nav-tree a { - text-decoration:none; - padding:0px; - margin:0px; - outline:none; -} - -#nav-tree .label { - margin:0px; - padding:0px; - font: 12px var(--font-family-nav); -} - -#nav-tree .label a { - padding:2px; -} - -#nav-tree .selected a { - text-decoration:none; - color:var(--nav-text-active-color); -} - -#nav-tree .children_ul { - margin:0px; - padding:0px; -} - -#nav-tree .item { - margin:0px; - padding:0px; -} - -#nav-tree { - padding: 0px 0px; - font-size:14px; - overflow:auto; -} - -#doc-content { - overflow:auto; - display:block; - padding:0px; - margin:0px; - -webkit-overflow-scrolling : touch; /* iOS 5+ */ -} - -#side-nav { - padding:0 6px 0 0; - margin: 0px; - display:block; - position: absolute; - left: 0px; - width: $width; - overflow : hidden; -} - -.ui-resizable .ui-resizable-handle { - display:block; -} - -.ui-resizable-e { - background-image:var(--nav-splitbar-image); - background-size:100%; - background-repeat:repeat-y; - background-attachment: scroll; - cursor:ew-resize; - height:100%; - right:0; - top:0; - width:6px; -} - -.ui-resizable-handle { - display:none; - font-size:0.1px; - position:absolute; - z-index:1; -} - -#nav-tree-contents { - margin: 6px 0px 0px 0px; -} - -#nav-tree { - background-repeat:repeat-x; - background-color: var(--nav-background-color); - -webkit-overflow-scrolling : touch; /* iOS 5+ */ -} - -#nav-sync { - position:absolute; - top:5px; - right:24px; - z-index:0; -} - -#nav-sync img { - opacity:0.3; -} - -#nav-sync img:hover { - opacity:0.9; -} - -@media print -{ - #nav-tree { display: none; } - div.ui-resizable-handle { display: none; position: relative; } -} - diff --git a/pack/1.2.0/navtree.js b/pack/1.2.0/navtree.js deleted file mode 100644 index f6b1154..0000000 --- a/pack/1.2.0/navtree.js +++ /dev/null @@ -1,555 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -var navTreeSubIndices = new Array(); -var arrowDown = '▼'; -var arrowRight = '►'; - -function getData(varName) -{ - var i = varName.lastIndexOf('/'); - var n = i>=0 ? varName.substring(i+1) : varName; - return eval(n.replace(/\-/g,'_')); -} - -function stripPath(uri) -{ - return uri.substring(uri.lastIndexOf('/')+1); -} - -function stripPath2(uri) -{ - var i = uri.lastIndexOf('/'); - var s = uri.substring(i+1); - var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); - return m ? uri.substring(i-6) : s; -} - -function hashValue() -{ - return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); -} - -function hashUrl() -{ - return '#'+hashValue(); -} - -function pathName() -{ - return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); -} - -function localStorageSupported() -{ - try { - return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; - } - catch(e) { - return false; - } -} - -function storeLink(link) -{ - if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { - window.localStorage.setItem('navpath',link); - } -} - -function deleteLink() -{ - if (localStorageSupported()) { - window.localStorage.setItem('navpath',''); - } -} - -function cachedLink() -{ - if (localStorageSupported()) { - return window.localStorage.getItem('navpath'); - } else { - return ''; - } -} - -function getScript(scriptName,func,show) -{ - var head = document.getElementsByTagName("head")[0]; - var script = document.createElement('script'); - script.id = scriptName; - script.type = 'text/javascript'; - script.onload = func; - script.src = scriptName+'.js'; - head.appendChild(script); -} - -function createIndent(o,domNode,node,level) -{ - var level=-1; - var n = node; - while (n.parentNode) { level++; n=n.parentNode; } - if (node.childrenData) { - var imgNode = document.createElement("span"); - imgNode.className = 'arrow'; - imgNode.style.paddingLeft=(16*level).toString()+'px'; - imgNode.innerHTML=arrowRight; - node.plus_img = imgNode; - node.expandToggle = document.createElement("a"); - node.expandToggle.href = "javascript:void(0)"; - node.expandToggle.onclick = function() { - if (node.expanded) { - $(node.getChildrenUL()).slideUp("fast"); - node.plus_img.innerHTML=arrowRight; - node.expanded = false; - } else { - expandNode(o, node, false, false); - } - } - node.expandToggle.appendChild(imgNode); - domNode.appendChild(node.expandToggle); - } else { - var span = document.createElement("span"); - span.className = 'arrow'; - span.style.width = 16*(level+1)+'px'; - span.innerHTML = ' '; - domNode.appendChild(span); - } -} - -var animationInProgress = false; - -function gotoAnchor(anchor,aname,updateLocation) -{ - var pos, docContent = $('#doc-content'); - var ancParent = $(anchor.parent()); - if (ancParent.hasClass('memItemLeft') || - ancParent.hasClass('memtitle') || - ancParent.hasClass('fieldname') || - ancParent.hasClass('fieldtype') || - ancParent.is(':header')) - { - pos = ancParent.position().top; - } else if (anchor.position()) { - pos = anchor.position().top; - } - if (pos) { - var dist = Math.abs(Math.min( - pos-docContent.offset().top, - docContent[0].scrollHeight- - docContent.height()-docContent.scrollTop())); - animationInProgress=true; - docContent.animate({ - scrollTop: pos + docContent.scrollTop() - docContent.offset().top - },Math.max(50,Math.min(500,dist)),function(){ - if (updateLocation) window.location.href=aname; - animationInProgress=false; - }); - } -} - -function newNode(o, po, text, link, childrenData, lastNode) -{ - var node = new Object(); - node.children = Array(); - node.childrenData = childrenData; - node.depth = po.depth + 1; - node.relpath = po.relpath; - node.isLast = lastNode; - - node.li = document.createElement("li"); - po.getChildrenUL().appendChild(node.li); - node.parentNode = po; - - node.itemDiv = document.createElement("div"); - node.itemDiv.className = "item"; - - node.labelSpan = document.createElement("span"); - node.labelSpan.className = "label"; - - createIndent(o,node.itemDiv,node,0); - node.itemDiv.appendChild(node.labelSpan); - node.li.appendChild(node.itemDiv); - - var a = document.createElement("a"); - node.labelSpan.appendChild(a); - node.label = document.createTextNode(text); - node.expanded = false; - a.appendChild(node.label); - if (link) { - var url; - if (link.substring(0,1)=='^') { - url = link.substring(1); - link = url; - } else { - url = node.relpath+link; - } - a.className = stripPath(link.replace('#',':')); - if (link.indexOf('#')!=-1) { - var aname = '#'+link.split('#')[1]; - var srcPage = stripPath(pathName()); - var targetPage = stripPath(link.split('#')[0]); - a.href = srcPage!=targetPage ? url : "javascript:void(0)"; - a.onclick = function(){ - storeLink(link); - if (!$(a).parent().parent().hasClass('selected')) - { - $('.item').removeClass('selected'); - $('.item').removeAttr('id'); - $(a).parent().parent().addClass('selected'); - $(a).parent().parent().attr('id','selected'); - } - var anchor = $(aname); - gotoAnchor(anchor,aname,true); - }; - } else { - a.href = url; - a.onclick = function() { storeLink(link); } - } - } else { - if (childrenData != null) - { - a.className = "nolink"; - a.href = "javascript:void(0)"; - a.onclick = node.expandToggle.onclick; - } - } - - node.childrenUL = null; - node.getChildrenUL = function() { - if (!node.childrenUL) { - node.childrenUL = document.createElement("ul"); - node.childrenUL.className = "children_ul"; - node.childrenUL.style.display = "none"; - node.li.appendChild(node.childrenUL); - } - return node.childrenUL; - }; - - return node; -} - -function showRoot() -{ - var headerHeight = $("#top").height(); - var footerHeight = $("#nav-path").height(); - var windowHeight = $(window).height() - headerHeight - footerHeight; - (function (){ // retry until we can scroll to the selected item - try { - var navtree=$('#nav-tree'); - navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); - } catch (err) { - setTimeout(arguments.callee, 0); - } - })(); -} - -function expandNode(o, node, imm, showRoot) -{ - if (node.childrenData && !node.expanded) { - if (typeof(node.childrenData)==='string') { - var varName = node.childrenData; - getScript(node.relpath+varName,function(){ - node.childrenData = getData(varName); - expandNode(o, node, imm, showRoot); - }, showRoot); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).slideDown("fast"); - node.plus_img.innerHTML = arrowDown; - node.expanded = true; - } - } -} - -function glowEffect(n,duration) -{ - n.addClass('glow').delay(duration).queue(function(next){ - $(this).removeClass('glow');next(); - }); -} - -function highlightAnchor() -{ - var aname = hashUrl(); - var anchor = $(aname); - if (anchor.parent().attr('class')=='memItemLeft'){ - var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); - glowEffect(rows.children(),300); // member without details - } else if (anchor.parent().attr('class')=='fieldname'){ - glowEffect(anchor.parent().parent(),1000); // enum value - } else if (anchor.parent().attr('class')=='fieldtype'){ - glowEffect(anchor.parent().parent(),1000); // struct field - } else if (anchor.parent().is(":header")) { - glowEffect(anchor.parent(),1000); // section header - } else { - glowEffect(anchor.next(),1000); // normal member - } -} - -function selectAndHighlight(hash,n) -{ - var a; - if (hash) { - var link=stripPath(pathName())+':'+hash.substring(1); - a=$('.item a[class$="'+link+'"]'); - } - if (a && a.length) { - a.parent().parent().addClass('selected'); - a.parent().parent().attr('id','selected'); - highlightAnchor(); - } else if (n) { - $(n.itemDiv).addClass('selected'); - $(n.itemDiv).attr('id','selected'); - } - var topOffset=5; - if (typeof page_layout!=='undefined' && page_layout==1) { - topOffset+=$('#top').outerHeight(); - } - if ($('#nav-tree-contents .item:first').hasClass('selected')) { - topOffset+=25; - } - $('#nav-sync').css('top',topOffset+'px'); - showRoot(); -} - -function showNode(o, node, index, hash) -{ - if (node && node.childrenData) { - if (typeof(node.childrenData)==='string') { - var varName = node.childrenData; - getScript(node.relpath+varName,function(){ - node.childrenData = getData(varName); - showNode(o,node,index,hash); - },true); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).css({'display':'block'}); - node.plus_img.innerHTML = arrowDown; - node.expanded = true; - var n = node.children[o.breadcrumbs[index]]; - if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); - else hash=''; - } - if (hash.match(/^#l\d+$/)) { - var anchor=$('a[name='+hash.substring(1)+']'); - glowEffect(anchor.parent(),1000); // line number - hash=''; // strip line number anchors - } - var url=root+hash; - var i=-1; - while (NAVTREEINDEX[i+1]<=url) i++; - if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath) - } else { - getScript(relpath+'navtreeindex'+i,function(){ - navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); - /* ensures first section is expanded when opening index */ - if ((root=="index.html") && (!navTreeSubIndices[i]["index.html"].length)) { - navTreeSubIndices[i]["index.html"]=[0]; - } - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath); - } - },true); - } -} - -function showSyncOff(n,relpath) -{ - n.html(''); -} - -function showSyncOn(n,relpath) -{ - n.html(''); -} - -function toggleSyncButton(relpath) -{ - var navSync = $('#nav-sync'); - if (navSync.hasClass('sync')) { - navSync.removeClass('sync'); - showSyncOff(navSync,relpath); - storeLink(stripPath2(pathName())+hashUrl()); - } else { - navSync.addClass('sync'); - showSyncOn(navSync,relpath); - deleteLink(); - } -} - -var loadTriggered = false; -var readyTriggered = false; -var loadObject,loadToRoot,loadUrl,loadRelPath; - -$(window).on('load',function(){ - if (readyTriggered) { // ready first - navTo(loadObject,loadToRoot,loadUrl,loadRelPath); - showRoot(); - } - loadTriggered=true; -}); - -function initNavTree(toroot,relpath) -{ - var o = new Object(); - o.toroot = toroot; - o.node = new Object(); - o.node.li = document.getElementById("nav-tree-contents"); - o.node.childrenData = NAVTREE; - o.node.children = new Array(); - o.node.childrenUL = document.createElement("ul"); - o.node.getChildrenUL = function() { return o.node.childrenUL; }; - o.node.li.appendChild(o.node.childrenUL); - o.node.depth = 0; - o.node.relpath = relpath; - o.node.expanded = false; - o.node.isLast = true; - o.node.plus_img = document.createElement("span"); - o.node.plus_img.className = 'arrow'; - o.node.plus_img.innerHTML = arrowRight; - - if (localStorageSupported()) { - var navSync = $('#nav-sync'); - if (cachedLink()) { - showSyncOff(navSync,relpath); - navSync.removeClass('sync'); - } else { - showSyncOn(navSync,relpath); - } - navSync.click(function(){ toggleSyncButton(relpath); }); - } - - if (loadTriggered) { // load before ready - navTo(o,toroot,hashUrl(),relpath); - showRoot(); - } else { // ready before load - loadObject = o; - loadToRoot = toroot; - loadUrl = hashUrl(); - loadRelPath = relpath; - readyTriggered=true; - } - - $(window).bind('hashchange', function(){ - if (window.location.hash && window.location.hash.length>1){ - var a; - if ($(location).attr('hash')){ - var clslink=stripPath(pathName())+':'+hashValue(); - a=$('.item a[class$="'+clslink.replace(/ - - - - - - -CMSIS-View: Usage and Description - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- - - - - - diff --git a/pack/1.2.0/print_spec.png b/pack/1.2.0/print_spec.png deleted file mode 100644 index 3c31509..0000000 Binary files a/pack/1.2.0/print_spec.png and /dev/null differ diff --git a/pack/1.2.0/ram_for_algorithm_area.png b/pack/1.2.0/ram_for_algorithm_area.png deleted file mode 100644 index cd8736e..0000000 Binary files a/pack/1.2.0/ram_for_algorithm_area.png and /dev/null differ diff --git a/pack/1.2.0/reset_and_run.png b/pack/1.2.0/reset_and_run.png deleted file mode 100644 index 11344bd..0000000 Binary files a/pack/1.2.0/reset_and_run.png and /dev/null differ diff --git a/pack/1.2.0/resize.js b/pack/1.2.0/resize.js deleted file mode 100644 index 34a0c1e..0000000 --- a/pack/1.2.0/resize.js +++ /dev/null @@ -1,155 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -var once=1; -function initResizable() -{ - var cookie_namespace = 'doxygen'; - var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight; - - function readSetting(cookie) - { - if (window.chrome) { - var val = localStorage.getItem(cookie_namespace+'_width'); - if (val) return val; - } else { - var myCookie = cookie_namespace+"_"+cookie+"="; - if (document.cookie) { - var index = document.cookie.indexOf(myCookie); - if (index != -1) { - var valStart = index + myCookie.length; - var valEnd = document.cookie.indexOf(";", valStart); - if (valEnd == -1) { - valEnd = document.cookie.length; - } - var val = document.cookie.substring(valStart, valEnd); - return val; - } - } - } - return 0; - } - - function writeSetting(cookie, val) - { - if (window.chrome) { - localStorage.setItem(cookie_namespace+"_width",val); - } else { - var date = new Date(); - date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week - expiration = date.toGMTString(); - document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; - } - } - - function resizeWidth() - { - var windowWidth = $(window).width() + "px"; - var sidenavWidth = $(sidenav).outerWidth(); - content.css({marginLeft:parseInt(sidenavWidth)+"px"}); - if (typeof page_layout!=='undefined' && page_layout==1) { - footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); - } - writeSetting('width',sidenavWidth-barWidth); - } - - function restoreWidth(navWidth) - { - var windowWidth = $(window).width() + "px"; - content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); - if (typeof page_layout!=='undefined' && page_layout==1) { - footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); - } - sidenav.css({width:navWidth + "px"}); - } - - function resizeHeight() - { - var headerHeight = header.outerHeight(); - var footerHeight = footer.outerHeight(); - var windowHeight = $(window).height(); - var contentHeight,navtreeHeight,sideNavHeight; - if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ - contentHeight = windowHeight - headerHeight - footerHeight; - navtreeHeight = contentHeight; - sideNavHeight = contentHeight; - } else if (page_layout==1) { /* DISABLE_INDEX=YES */ - contentHeight = windowHeight - footerHeight; - navtreeHeight = windowHeight - headerHeight; - sideNavHeight = windowHeight; - } - content.css({height:contentHeight + "px"}); - navtree.css({height:navtreeHeight + "px"}); - sidenav.css({height:sideNavHeight + "px"}); - if (location.hash.slice(1)) { - (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); - } - } - - function collapseExpand() - { - var newWidth; - if (sidenav.width()>0) { - newWidth=0; - } - else { - var width = readSetting('width'); - newWidth = (width>250 && width<$(window).width()) ? width : 250; - } - restoreWidth(newWidth); - var sidenavWidth = $(sidenav).outerWidth(); - writeSetting('width',sidenavWidth-barWidth); - } - - header = $("#top"); - sidenav = $("#side-nav"); - content = $("#doc-content"); - navtree = $("#nav-tree"); - footer = $("#nav-path"); - $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); - $(sidenav).resizable({ minWidth: 0 }); - $(window).resize(function() { resizeHeight(); }); - var device = navigator.userAgent.toLowerCase(); - var touch_device = device.match(/(iphone|ipod|ipad|android)/); - if (touch_device) { /* wider split bar for touch only devices */ - $(sidenav).css({ paddingRight:'20px' }); - $('.ui-resizable-e').css({ width:'20px' }); - $('#nav-sync').css({ right:'34px' }); - barWidth=20; - } - var width = readSetting('width'); - if (width) { restoreWidth(width); } else { resizeWidth(); } - resizeHeight(); - var url = location.href; - var i=url.indexOf("#"); - if (i>=0) window.location.hash=url.substr(i); - var _preventDefault = function(evt) { evt.preventDefault(); }; - $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); - if (once) { - $(".ui-resizable-handle").dblclick(collapseExpand); - once=0 - } - $(window).on('load',resizeHeight); -} -/* @license-end */ diff --git a/pack/1.2.0/scvd_evt_stat.html b/pack/1.2.0/scvd_evt_stat.html deleted file mode 100644 index d6f145a..0000000 --- a/pack/1.2.0/scvd_evt_stat.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - -CMSIS-View: EventStatistic - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
EventStatistic
-
-
-

The EventStatistics example project shows how to use start/stop events with the Event Recorder and obtain execution statistics.

-

The start/stop events allow to measure execution times with different slots (0 - 15) in four different groups (A - D). The call to 'EventStart' starts a timer slot; the call to 'EventStop' stops the related timer. A call to EventStop with slot 15 stops the timers of all slots in the specific group.

-

This example project is located in the Examples/EventStatistic/ directory. It uses the CMSIS-Toolbox for project build and runs on Arm Virtual Hardware (AVH) processor simulation and does not require real hardware board.

-

Build and run

-

Follow the instructions in the example's README.md to build and run the project.

-

Use the eventlist Utility to analyze the outcomes.

-

main.c File

-

The application code in the main.c file does some time consuming calculations that are recorded.

-
#include "RTE_Components.h" // Component selection
-
#include CMSIS_device_header // defined in the RTE_Components.h file
-
-
#include "EventRecorder.h"
-
-
#include <math.h>
-
#include <stdio.h>
-
#include <stdlib.h>
-
-
#define TABLE_SIZE 1000
-
float sin_table[TABLE_SIZE];
-
-
// Calculate table with sine values
-
void CalcSinTable (void) {
-
unsigned int i, max_i;
-
float f = 0.0;
-
-
max_i = TABLE_SIZE - (rand () % 500);
-
EventStartAv (15, max_i, 0); // Start group A, slot 15, passing the max_i variable
-
for (i = 0; i < max_i; i++) {
-
if (i == 200) {
-
EventStartAv (0, max_i, 0); // Start group A, slot 0, passing the max_i variable
-
}
-
-
sin_table[i] = sinf(f);
-
f = f + (3.141592 / TABLE_SIZE);
-
-
if (i == 800) { // Measure 800 table entries
-
EventStopA (0); // Stop group A, slot 0
-
}
-
}
-
-
EventStopA (15); // Stop group A, slot 15 (stops also slots 0..14)
-
}
-
-
// Return number of sqrt operations to exceed sum
-
unsigned int FindSqrtSum (float max_sum) {
-
unsigned int i;
-
float sqrt_sum;
-
-
sqrt_sum = 0.0;
-
for (i = 0; i < 10000; i++) {
-
sqrt_sum += sqrtf((float) i);
-
if (sqrt_sum > max_sum) {
-
return (i);
-
}
-
}
-
return (i);
-
}
-
-
unsigned int j, num, MaxSqrtSum;
-
-
-
int main (void) {
-
-
SystemCoreClockUpdate(); // System Initialization
-
-
EventRecorderInitialize (EventRecordAll, 1U); // Initialize and start Event Recorder
- -
EventStartC (0); // start measurement event group C, slot 0
-
printf ("Started\n");
-
for (j = 0; j < 10000; j++) {
-
CalcSinTable (); // calculate table with sinus values
-
-
EventStartB(0); // start group B, slot 0
-
MaxSqrtSum = rand () / 65536; // limit for sqrt calculation
-
num = FindSqrtSum ((float) MaxSqrtSum); // return number of sqrt operations
-
EventStopBv(0, MaxSqrtSum, num); // stop group B, slot 0, output values: MaxSqrtSum, num
-
}
-
-
EventStopC(0); // stop measurement event group C, slot 0
-
-
while (1) {
-
__NOP();
-
}
-
}
-
-
-
- - - - diff --git a/pack/1.2.0/scvd_expression.html b/pack/1.2.0/scvd_expression.html deleted file mode 100644 index f7ed737..0000000 --- a/pack/1.2.0/scvd_expression.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - -CMSIS-View: Expressions - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
CMSIS-View -   - -
-
Record program events, display status information, and analyze execution faults
-
- -   - - - - -
-
-
- -
-
    - -
-
- - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Expressions
-
-
-

The SCVD interpreter has built-in evaluation for expressions that are used in various XML elements and attributes. An expression is a combination of operands and Operators that evaluate to a resulting value where the type of the result is derived from the expression.

-

An operand may be a numeric constant, a variable, a built-in function, a predefined variable, or an expression. Operators are used to combine and compare operands.

-

-Operators

-

Operators combine and compare operands. Operators may be unary (requiring one operand) or binary (requiring two operands). The combination of an operator and its operands is an expression. Parentheses can be used in expressions with multiple operators to specify the order of evaluation. If no parentheses are used in an expression, then the operator precedence determines the evaluation order.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Operators Precedence Description
( ) 1 Parentheses can be used to specify the order of evaluation
.member 2 Type member
typedef_name:member:enum 2 Enumerator value; refer to enum
typedef_name:member 2 Type-member selector for use in __Offset_of intrinsic; refer to member
Unary +, Unary — 3 Unary plus or minus applied to the following operand
* / % 4 Multiplication, Division, or Modulo
+ — 5 Addition, Subtraction
<< >> 6 Shift left, Shift right
& | ^ 7 Binary AND, OR, XOR
== != > >= < <= 8 Comparisons
&& || 9 Logical AND, OR
e ? e : e 10 Conditional operator
= |= &= ^= += -= *= /= %= 11 Assignment operators
-
Note
    -
  • Because the character & is reserved in XML, it is required for logical operations to use &amp; instead.
  • -
  • Use &quot; whenever this quote is not part of an XML structure.
  • -
-
-

Code Examples

<item property="Wait" cond="TCB[i].p_blnk &amp;&amp; TCB[i].State == Thread_CB:State:WaitingSemaphore" value="%S[TCB[i].p_blnk]" />
-
-
<item property="Round Robin Timeout" value="%T[((float) (rrobin &amp; 0xFFFF) * (float) clockrate / 1000)] mSec" />
-
-
<item property="__Symbol_exists (&quot;os_active_TCB&quot;)" value="%t[__Symbol_exists (&quot;os_active_TCB&quot;) ? &quot;Yes&quot; : &quot;No&quot;]" />
-

-Numeric Constants

-

Numeric constants are supported in standard 'C' format, for example: 13, 0xF8, 1.5, 1E+10.

-

-Enumerator Values

-

A symbolic enumerator name (enum) represents a constant value that can be referenced using the syntax :typedef_name:member:enum.

-

-Variables

-

The SCVD interpreter has the following ways to define local variables that can be used in expressions:

    -
  • Element var in the typedef section defines variables which are used in context with typedef, typically for temporary calculations.
    - These are automatically generated with read and readlist.
  • -
  • Element var in the objects section defines scalar or array variables.
    -
  • -
-

-Predefined variables

-

Predefined variables can be used without a declaration or definition.

- - - - - - - - - -
Predefined Variable Description
__Running Indicates program execution at target: 1=run, 0=stop
_count Counts the number of items in readlist and read elements.
_addr Returns the memory address of a readlist member.
-
-
-
- - - - diff --git a/pack/1.2.0/search/all_0.js b/pack/1.2.0/search/all_0.js deleted file mode 100644 index d6e8d76..0000000 --- a/pack/1.2.0/search/all_0.js +++ /dev/null @@ -1,21 +0,0 @@ -var searchData= -[ - ['_2fcomponent_5fviewer_0',['/component_viewer',['../elem_component_viewer.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2f_2e_2e_2e_2f_2e_2e_2e_2fvar_1',['/component_viewer/.../.../var',['../elem_var.html',1,'elem_typedefs']]], - ['_2fcomponent_5fviewer_2fcomponent_2',['/component_viewer/component',['../elem_component.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2fevents_3',['/component_viewer/events',['../elem_events.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2fevents_2fevent_4',['/component_viewer/events/event',['../elem_event.html',1,'elem_events']]], - ['_2fcomponent_5fviewer_2fevents_2fevent_2f_2e_2e_2fprint_5',['/component_viewer/events/event/../print',['../elem_event_print.html',1,'elem_event']]], - ['_2fcomponent_5fviewer_2fevents_2fgroup_6',['/component_viewer/events/group',['../elem_group.html',1,'elem_events']]], - ['_2fcomponent_5fviewer_2fobjects_7',['/component_viewer/objects',['../elem_objects.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2f_2e_2e_2e_2fcalc_8',['/component_viewer/objects/object/.../calc',['../elem_calc.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2f_2e_2e_2e_2flist_9',['/component_viewer/objects/object/.../list',['../elem_list.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2f_2e_2e_2e_2fread_10',['/component_viewer/objects/object/.../read',['../elem_read.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2f_2e_2e_2e_2freadlist_11',['/component_viewer/objects/object/.../readlist',['../elem_readlist.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2fout_12',['/component_viewer/objects/object/out',['../elem_out.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2fout_2f_2e_2e_2e_2fitem_13',['/component_viewer/objects/object/out/.../item',['../elem_item.html',1,'elem_out']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2fout_2f_2e_2e_2e_2fitem_2fprint_14',['/component_viewer/objects/object/out/.../item/print',['../elem_print.html',1,'elem_item']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2fout_2f_2e_2e_2e_2flist_15',['/component_viewer/objects/object/out/.../list',['../elem_listout.html',1,'elem_out']]], - ['_2fcomponent_5fviewer_2ftypedefs_16',['/component_viewer/typedefs',['../elem_typedefs.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2ftypedefs_2ftypedef_2fmember_17',['/component_viewer/typedefs/typedef/member',['../elem_member.html',1,'elem_typedefs']]] -]; diff --git a/pack/1.2.0/search/all_1.js b/pack/1.2.0/search/all_1.js deleted file mode 100644 index 5d06348..0000000 --- a/pack/1.2.0/search/all_1.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['arm_5ffault_5ffault_5finfo_5fver_5fmajor_0',['ARM_FAULT_FAULT_INFO_VER_MAJOR',['../group__Fault__Storage__Macros.html#gad806d6d81404dc3297a9e0097ee41f5e',1,'ARM_Fault.h']]], - ['arm_5ffault_5ffault_5finfo_5fver_5fminor_1',['ARM_FAULT_FAULT_INFO_VER_MINOR',['../group__Fault__Storage__Macros.html#gafa7f6c005137393af25375ed25a3d90d',1,'ARM_Fault.h']]], - ['arm_5ffaultclear_2',['ARM_FaultClear',['../group__Fault__Storage.html#ga798a3b6672c119384b761e5f1fa6d346',1,'ARM_Fault.h']]], - ['arm_5ffaultexit_3',['ARM_FaultExit',['../group__Fault__Storage.html#gad813a8434754f3a2e4bdbd82a11f2292',1,'ARM_Fault.h']]], - ['arm_5ffaultinfo_4',['ARM_FaultInfo',['../group__Fault__Storage.html#ga775536834c48e2014db1157224f0cdac',1,'ARM_FaultInfo(): ref_fault.txt'],['../group__Fault__Storage.html#ga775536834c48e2014db1157224f0cdac',1,'ARM_FaultInfo(): ref_fault.txt']]], - ['arm_5ffaultinfo_5ft_5',['ARM_FaultInfo_t',['../group__Fault__Storage.html#structARM__FaultInfo__t',1,'']]], - ['arm_5ffaultinfo_5ft_2econtent_6',['ARM_FaultInfo_t.Content',['../group__Fault__Storage.html#structARM__FaultInfo__t_8Content',1,'']]], - ['arm_5ffaultinfo_5ft_2eexceptionstate_7',['ARM_FaultInfo_t.ExceptionState',['../group__Fault__Storage.html#structARM__FaultInfo__t_8ExceptionState',1,'']]], - ['arm_5ffaultinfo_5ft_2efaultregisters_8',['ARM_FaultInfo_t.FaultRegisters',['../group__Fault__Storage.html#structARM__FaultInfo__t_8FaultRegisters',1,'']]], - ['arm_5ffaultinfo_5ft_2eregisters_9',['ARM_FaultInfo_t.Registers',['../group__Fault__Storage.html#structARM__FaultInfo__t_8Registers',1,'']]], - ['arm_5ffaultinfo_5ft_2eversion_10',['ARM_FaultInfo_t.Version',['../group__Fault__Storage.html#structARM__FaultInfo__t_8Version',1,'']]], - ['arm_5ffaultoccurred_11',['ARM_FaultOccurred',['../group__Fault__Storage.html#ga46ed1c1d7ede7bea91130d1e93ab4fe1',1,'ARM_Fault.h']]], - ['arm_5ffaultprint_12',['ARM_FaultPrint',['../group__Fault__Storage.html#ga139ab9a8507bbbc389d518a9886f0691',1,'ARM_Fault.h']]], - ['arm_5ffaultrecord_13',['ARM_FaultRecord',['../group__Fault__Record.html#ga0cbe701756d156237511b5a526634558',1,'ARM_Fault.h']]], - ['arm_5ffaultsave_14',['ARM_FaultSave',['../group__Fault__Storage.html#ga4a614184dca42fb415d0a01ba03163e3',1,'ARM_Fault.h']]], - ['arm_5ffaultversion_15',['ARM_FaultVersion',['../group__Fault__Storage.html#gad20ff5240efa780c2875426157710aee',1,'ARM_FaultVersion(): ref_fault.txt'],['../group__Fault__Storage.html#gad20ff5240efa780c2875426157710aee',1,'ARM_FaultVersion(): ref_fault.txt']]] -]; diff --git a/pack/1.2.0/search/all_2.js b/pack/1.2.0/search/all_2.js deleted file mode 100644 index e4ec3ef..0000000 --- a/pack/1.2.0/search/all_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['built_2din_20functions_0',['Built-in functions',['../builtin_function.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/all_3.js b/pack/1.2.0/search/all_3.js deleted file mode 100644 index 15c895e..0000000 --- a/pack/1.2.0/search/all_3.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['component_20number_0',['Component number',['../group__EventRecorder__CompNoDefs.html',1,'']]], - ['component_20viewer_1',['Component Viewer',['../cmp_viewer.html',1,'']]], - ['content_2',['Content',['../group__Fault__Storage.html#ae8be184994d76ddba8448ae13b023ab0',1,'ARM_FaultInfo_t']]], - ['count_3',['Count',['../group__Fault__Storage.html#ad3fa7da84ce75c8b58d9251838377e8f',1,'ARM_FaultInfo_t']]], - ['crc32_4',['CRC32',['../group__Fault__Storage.html#af3387a02ca594eaccf12871dcd771c59',1,'ARM_FaultInfo_t']]] -]; diff --git a/pack/1.2.0/search/all_4.js b/pack/1.2.0/search/all_4.js deleted file mode 100644 index 37d0b80..0000000 --- a/pack/1.2.0/search/all_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['data_20types_0',['Data types',['../data_type.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/all_5.js b/pack/1.2.0/search/all_5.js deleted file mode 100644 index 381b87a..0000000 --- a/pack/1.2.0/search/all_5.js +++ /dev/null @@ -1,57 +0,0 @@ -var searchData= -[ - ['event_20data_20recording_0',['Event Data Recording',['../group__EventRecorder__Data.html',1,'']]], - ['event_20execution_20statistics_1',['Event Execution Statistics',['../group__Event__Execution__Statistic.html',1,'']]], - ['event_20level_2',['Event level',['../group__EventRecorder__leveldefs.html',1,'']]], - ['event_20recorder_3',['Event Recorder',['../evr.html',1,'']]], - ['event_20recorder_20_2d_20timer_4',['Event Recorder - Timer',['../group__EventRecorder__Time.html',1,'']]], - ['event_20recorder_20api_5',['Event Recorder API',['../group__Ref__EventRecorder.html',1,'']]], - ['event_20recorder_20setup_6',['Event Recorder Setup',['../group__EventRecorder__Setup.html',1,'']]], - ['event_20statistics_7',['Event Statistics',['../ev_stat.html',1,'']]], - ['eventid_8',['EventID',['../group__EventRecorder__Data.html#ga44fa52e2007e535753fd4ba59b84d55d',1,'EventRecorder.h']]], - ['eventlevelapi_9',['EventLevelAPI',['../group__EventRecorder__leveldefs.html#ga804697e938a79b0ea388872951ed7b06',1,'EventRecorder.h']]], - ['eventleveldetail_10',['EventLevelDetail',['../group__EventRecorder__leveldefs.html#gae594d8dae31ac1ffd04464f4af4a20ea',1,'EventRecorder.h']]], - ['eventlevelerror_11',['EventLevelError',['../group__EventRecorder__leveldefs.html#ga09458e6018228f12b87671342e77545c',1,'EventRecorder.h']]], - ['eventlevelop_12',['EventLevelOp',['../group__EventRecorder__leveldefs.html#ga45955a55988126e124b2c6595812c9f4',1,'EventRecorder.h']]], - ['eventlist_20utility_13',['eventlist Utility',['../evntlst.html',1,'']]], - ['eventrecord2_14',['EventRecord2',['../group__EventRecorder__Data.html#gab91eb760432ad0a10652a2c922db9566',1,'EventRecorder.h']]], - ['eventrecord4_15',['EventRecord4',['../group__EventRecorder__Data.html#ga1807e8d9b62b51f862a3d3fe36e611f8',1,'EventRecorder.h']]], - ['eventrecordall_16',['EventRecordAll',['../group__EventRecorder__recdefs.html#ga974d33703cba889a6597cb7e6f7a1a49',1,'EventRecorder.h']]], - ['eventrecordapi_17',['EventRecordAPI',['../group__EventRecorder__recdefs.html#ga259409bf85dea63e445ab3936f226110',1,'EventRecorder.h']]], - ['eventrecorddata_18',['EventRecordData',['../group__EventRecorder__Data.html#ga48793c095f887522be941c7b8179dd0a',1,'EventRecorder.h']]], - ['eventrecorddetail_19',['EventRecordDetail',['../group__EventRecorder__recdefs.html#gad65878735749f995be17f7bee2db058b',1,'EventRecorder.h']]], - ['eventrecorderclockupdate_20',['EventRecorderClockUpdate',['../group__EventRecorder__Time.html#ga560a1e7ee682be19357c1cb72d6d081b',1,'EventRecorder.h']]], - ['eventrecorderdisable_21',['EventRecorderDisable',['../group__EventRecorder__Setup.html#gafbdda947535a6f848fa3d7c6d5c19411',1,'EventRecorder.h']]], - ['eventrecorderenable_22',['EventRecorderEnable',['../group__EventRecorder__Setup.html#gaf68b91af7ec83880b2d8068c26fd75c1',1,'EventRecorder.h']]], - ['eventrecorderinitialize_23',['EventRecorderInitialize',['../group__EventRecorder__Setup.html#gac5369fe03bdcb771bacb25d7734a5f23',1,'EventRecorder.h']]], - ['eventrecorderror_24',['EventRecordError',['../group__EventRecorder__recdefs.html#ga3a995270ffbf5ab4d7c617f1d1d3f89f',1,'EventRecorder.h']]], - ['eventrecorderstart_25',['EventRecorderStart',['../group__EventRecorder__Setup.html#gaf768b84b7e03df2e2d2a9de8b0558fcd',1,'EventRecorder.h']]], - ['eventrecorderstop_26',['EventRecorderStop',['../group__EventRecorder__Setup.html#gadfb4f7a90a67608538242a21479b0919',1,'EventRecorder.h']]], - ['eventrecordertimergetcount_27',['EventRecorderTimerGetCount',['../group__EventRecorder__Time.html#ga4ae18fb119e52e1372870b32d3fb4729',1,'EventRecorder.h']]], - ['eventrecordertimergetfreq_28',['EventRecorderTimerGetFreq',['../group__EventRecorder__Time.html#gacca6d72472c548fc787aa6f4fc98289f',1,'EventRecorder.h']]], - ['eventrecordertimersetup_29',['EventRecorderTimerSetup',['../group__EventRecorder__Time.html#ga3000832080ba37770bc3df0822b7a754',1,'EventRecorder.h']]], - ['eventrecordnone_30',['EventRecordNone',['../group__EventRecorder__recdefs.html#ga0c02631a9509e4f0767df86459fb08fa',1,'EventRecorder.h']]], - ['eventrecordop_31',['EventRecordOp',['../group__EventRecorder__recdefs.html#ga57d5e34150a02197cfc98a3438eb155c',1,'EventRecorder.h']]], - ['eventstarta_32',['EventStartA',['../group__Event__Execution__Statistic.html#ga58d4d5218ebaa60b22b61611eb80ec0e',1,'EventRecorder.h']]], - ['eventstartav_33',['EventStartAv',['../group__Event__Execution__Statistic.html#ga04bc2078e175cb140d2d6c63b735de5a',1,'EventRecorder.h']]], - ['eventstartb_34',['EventStartB',['../group__Event__Execution__Statistic.html#gab30990477409902c0a721f5d7ec15cbd',1,'EventRecorder.h']]], - ['eventstartbv_35',['EventStartBv',['../group__Event__Execution__Statistic.html#ga2dfd99f7a775a8fd487ea62aa6e7f00a',1,'EventRecorder.h']]], - ['eventstartc_36',['EventStartC',['../group__Event__Execution__Statistic.html#gaa847ea3ad2a5b60f0fb7db7fc5ab0854',1,'EventRecorder.h']]], - ['eventstartcv_37',['EventStartCv',['../group__Event__Execution__Statistic.html#gada42783add80fbe0a262f07b07235289',1,'EventRecorder.h']]], - ['eventstartd_38',['EventStartD',['../group__Event__Execution__Statistic.html#ga37b71fdaf8f8d7f58d44b16e6140b14a',1,'EventRecorder.h']]], - ['eventstartdv_39',['EventStartDv',['../group__Event__Execution__Statistic.html#ga1d6493b29d069a02e74de12536d45110',1,'EventRecorder.h']]], - ['eventstatistic_40',['EventStatistic',['../scvd_evt_stat.html',1,'ExampleProjects']]], - ['eventstopa_41',['EventStopA',['../group__Event__Execution__Statistic.html#ga272b6974b8639ccdbde641aee2f32f80',1,'EventRecorder.h']]], - ['eventstopav_42',['EventStopAv',['../group__Event__Execution__Statistic.html#ga89d44b68c50e2f54fb31c5c5a49f7323',1,'EventRecorder.h']]], - ['eventstopb_43',['EventStopB',['../group__Event__Execution__Statistic.html#ga17d5e0c80fb41befbbe4c172f3666bbc',1,'EventRecorder.h']]], - ['eventstopbv_44',['EventStopBv',['../group__Event__Execution__Statistic.html#gaf60ad8252136f7e6c051d1d4e46387c7',1,'EventRecorder.h']]], - ['eventstopc_45',['EventStopC',['../group__Event__Execution__Statistic.html#ga6b39b6771769a2a9e1ba9c8fda33e1d7',1,'EventRecorder.h']]], - ['eventstopcv_46',['EventStopCv',['../group__Event__Execution__Statistic.html#ga91c17bf015918bf11f750fe2294112c4',1,'EventRecorder.h']]], - ['eventstopd_47',['EventStopD',['../group__Event__Execution__Statistic.html#ga9d8b1202dbd9cc0118eaca71980b9498',1,'EventRecorder.h']]], - ['eventstopdv_48',['EventStopDv',['../group__Event__Execution__Statistic.html#ga6e558046012c0062d590373c46be19cc',1,'EventRecorder.h']]], - ['evtprintf_5fno_49',['EvtPrintf_No',['../group__EventRecorder__CompNoDefs.html#ga8c9a9414ff48f3f794c2bfa2951c2f98',1,'EventRecorder.h']]], - ['evtstatistics_5fno_50',['EvtStatistics_No',['../group__EventRecorder__CompNoDefs.html#ga0dc3370661899f6f018283bbf65ce8dc',1,'EventRecorder.h']]], - ['examples_51',['Examples',['../ExampleProjects.html',1,'']]], - ['exceptionstate_52',['ExceptionState',['../group__Fault__Storage.html#a0a8f212fe7d2a2d21811ec3d54c00040',1,'ARM_FaultInfo_t']]], - ['expressions_53',['Expressions',['../scvd_expression.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/all_6.js b/pack/1.2.0/search/all_6.js deleted file mode 100644 index 246e20d..0000000 --- a/pack/1.2.0/search/all_6.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['fault_20analysis_0',['Fault Analysis',['../fault.html',1,'']]], - ['fault_20api_1',['Fault API',['../group__Ref__Fault.html',1,'']]], - ['fault_20record_2',['Fault Record',['../group__Fault__Record.html',1,'']]], - ['fault_20storage_3',['Fault Storage',['../group__Fault__Storage.html',1,'']]], - ['fault_2fb_2du585i_2diot02a_4',['Fault/B-U585I-IOT02A',['../flt_example_CM33.html',1,'ExampleProjects']]], - ['fault_2fvht_5fmps2_5fcortex_2dm7_5',['Fault/VHT_MPS2_Cortex-M7',['../flt_example_CM7.html',1,'ExampleProjects']]], - ['faultregisters_6',['FaultRegisters',['../group__Fault__Storage.html#a5e69b516a93cb63d750ad70e64a3d3a5',1,'ARM_FaultInfo_t']]] -]; diff --git a/pack/1.2.0/search/all_7.js b/pack/1.2.0/search/all_7.js deleted file mode 100644 index 5af1f30..0000000 --- a/pack/1.2.0/search/all_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['macros_0',['Macros',['../group__Fault__Storage__Macros.html',1,'']]], - ['magicnumber_1',['MagicNumber',['../group__Fault__Storage.html#ac2d9a2b3478db6dc43ad665d6a6eda8c',1,'ARM_FaultInfo_t']]] -]; diff --git a/pack/1.2.0/search/all_8.js b/pack/1.2.0/search/all_8.js deleted file mode 100644 index 0398f4f..0000000 --- a/pack/1.2.0/search/all_8.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['overview_0',['Overview',['../index.html',1,'']]] -]; diff --git a/pack/1.2.0/search/all_9.js b/pack/1.2.0/search/all_9.js deleted file mode 100644 index 2eed62e..0000000 --- a/pack/1.2.0/search/all_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['recording_20control_0',['Recording Control',['../group__EventRecorder__recdefs.html',1,'']]], - ['registers_1',['Registers',['../group__Fault__Storage.html#a35916cdff844aed0702832d2b2fdd63b',1,'ARM_FaultInfo_t']]], - ['revision_20history_2',['Revision History',['../rev_hist.html',1,'']]] -]; diff --git a/pack/1.2.0/search/all_a.js b/pack/1.2.0/search/all_a.js deleted file mode 100644 index 9b6aa9e..0000000 --- a/pack/1.2.0/search/all_a.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['scvd_20file_20format_0',['SCVD file format',['../SCVD_Format.html',1,'']]], - ['symbol_20access_1',['Symbol Access',['../Symbol_Access.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/all_b.js b/pack/1.2.0/search/all_b.js deleted file mode 100644 index 79805b4..0000000 --- a/pack/1.2.0/search/all_b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['theory_20of_20operation_0',['Theory of operation',['../er_theory.html',1,'evr'],['../flt_theory.html',1,'fault']]] -]; diff --git a/pack/1.2.0/search/all_c.js b/pack/1.2.0/search/all_c.js deleted file mode 100644 index 2b18b8a..0000000 --- a/pack/1.2.0/search/all_c.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['using_20event_20recorder_0',['Using Event Recorder',['../er_use.html',1,'evr']]], - ['using_20fault_20component_1',['Using Fault component',['../flt_use.html',1,'fault']]] -]; diff --git a/pack/1.2.0/search/all_d.js b/pack/1.2.0/search/all_d.js deleted file mode 100644 index 155fb2a..0000000 --- a/pack/1.2.0/search/all_d.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['value_20output_0',['Value output',['../value_output.html',1,'SCVD_Format']]], - ['version_1',['Version',['../group__Fault__Storage.html#ad0d4da7ba1547022215b35809c42a53b',1,'ARM_FaultInfo_t']]] -]; diff --git a/pack/1.2.0/search/all_e.js b/pack/1.2.0/search/all_e.js deleted file mode 100644 index 32178f3..0000000 --- a/pack/1.2.0/search/all_e.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['xml_20elements_0',['XML elements',['../xml_elements.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/classes_0.js b/pack/1.2.0/search/classes_0.js deleted file mode 100644 index 760dc91..0000000 --- a/pack/1.2.0/search/classes_0.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['arm_5ffaultinfo_5ft_0',['ARM_FaultInfo_t',['../group__Fault__Storage.html#structARM__FaultInfo__t',1,'']]], - ['arm_5ffaultinfo_5ft_2econtent_1',['ARM_FaultInfo_t.Content',['../group__Fault__Storage.html#structARM__FaultInfo__t_8Content',1,'']]], - ['arm_5ffaultinfo_5ft_2eexceptionstate_2',['ARM_FaultInfo_t.ExceptionState',['../group__Fault__Storage.html#structARM__FaultInfo__t_8ExceptionState',1,'']]], - ['arm_5ffaultinfo_5ft_2efaultregisters_3',['ARM_FaultInfo_t.FaultRegisters',['../group__Fault__Storage.html#structARM__FaultInfo__t_8FaultRegisters',1,'']]], - ['arm_5ffaultinfo_5ft_2eregisters_4',['ARM_FaultInfo_t.Registers',['../group__Fault__Storage.html#structARM__FaultInfo__t_8Registers',1,'']]], - ['arm_5ffaultinfo_5ft_2eversion_5',['ARM_FaultInfo_t.Version',['../group__Fault__Storage.html#structARM__FaultInfo__t_8Version',1,'']]] -]; diff --git a/pack/1.2.0/search/close.svg b/pack/1.2.0/search/close.svg deleted file mode 100644 index a933eea..0000000 --- a/pack/1.2.0/search/close.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/pack/1.2.0/search/functions_0.js b/pack/1.2.0/search/functions_0.js deleted file mode 100644 index 7ceedfc..0000000 --- a/pack/1.2.0/search/functions_0.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['arm_5ffaultclear_0',['ARM_FaultClear',['../group__Fault__Storage.html#ga798a3b6672c119384b761e5f1fa6d346',1,'ARM_Fault.h']]], - ['arm_5ffaultexit_1',['ARM_FaultExit',['../group__Fault__Storage.html#gad813a8434754f3a2e4bdbd82a11f2292',1,'ARM_Fault.h']]], - ['arm_5ffaultoccurred_2',['ARM_FaultOccurred',['../group__Fault__Storage.html#ga46ed1c1d7ede7bea91130d1e93ab4fe1',1,'ARM_Fault.h']]], - ['arm_5ffaultprint_3',['ARM_FaultPrint',['../group__Fault__Storage.html#ga139ab9a8507bbbc389d518a9886f0691',1,'ARM_Fault.h']]], - ['arm_5ffaultrecord_4',['ARM_FaultRecord',['../group__Fault__Record.html#ga0cbe701756d156237511b5a526634558',1,'ARM_Fault.h']]], - ['arm_5ffaultsave_5',['ARM_FaultSave',['../group__Fault__Storage.html#ga4a614184dca42fb415d0a01ba03163e3',1,'ARM_Fault.h']]] -]; diff --git a/pack/1.2.0/search/functions_1.js b/pack/1.2.0/search/functions_1.js deleted file mode 100644 index 2d1cf27..0000000 --- a/pack/1.2.0/search/functions_1.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['eventrecord2_0',['EventRecord2',['../group__EventRecorder__Data.html#gab91eb760432ad0a10652a2c922db9566',1,'EventRecorder.h']]], - ['eventrecord4_1',['EventRecord4',['../group__EventRecorder__Data.html#ga1807e8d9b62b51f862a3d3fe36e611f8',1,'EventRecorder.h']]], - ['eventrecorddata_2',['EventRecordData',['../group__EventRecorder__Data.html#ga48793c095f887522be941c7b8179dd0a',1,'EventRecorder.h']]], - ['eventrecorderclockupdate_3',['EventRecorderClockUpdate',['../group__EventRecorder__Time.html#ga560a1e7ee682be19357c1cb72d6d081b',1,'EventRecorder.h']]], - ['eventrecorderdisable_4',['EventRecorderDisable',['../group__EventRecorder__Setup.html#gafbdda947535a6f848fa3d7c6d5c19411',1,'EventRecorder.h']]], - ['eventrecorderenable_5',['EventRecorderEnable',['../group__EventRecorder__Setup.html#gaf68b91af7ec83880b2d8068c26fd75c1',1,'EventRecorder.h']]], - ['eventrecorderinitialize_6',['EventRecorderInitialize',['../group__EventRecorder__Setup.html#gac5369fe03bdcb771bacb25d7734a5f23',1,'EventRecorder.h']]], - ['eventrecorderstart_7',['EventRecorderStart',['../group__EventRecorder__Setup.html#gaf768b84b7e03df2e2d2a9de8b0558fcd',1,'EventRecorder.h']]], - ['eventrecorderstop_8',['EventRecorderStop',['../group__EventRecorder__Setup.html#gadfb4f7a90a67608538242a21479b0919',1,'EventRecorder.h']]], - ['eventrecordertimergetcount_9',['EventRecorderTimerGetCount',['../group__EventRecorder__Time.html#ga4ae18fb119e52e1372870b32d3fb4729',1,'EventRecorder.h']]], - ['eventrecordertimergetfreq_10',['EventRecorderTimerGetFreq',['../group__EventRecorder__Time.html#gacca6d72472c548fc787aa6f4fc98289f',1,'EventRecorder.h']]], - ['eventrecordertimersetup_11',['EventRecorderTimerSetup',['../group__EventRecorder__Time.html#ga3000832080ba37770bc3df0822b7a754',1,'EventRecorder.h']]] -]; diff --git a/pack/1.2.0/search/groups_0.js b/pack/1.2.0/search/groups_0.js deleted file mode 100644 index 28b8abc..0000000 --- a/pack/1.2.0/search/groups_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['component_20number_0',['Component number',['../group__EventRecorder__CompNoDefs.html',1,'']]] -]; diff --git a/pack/1.2.0/search/groups_1.js b/pack/1.2.0/search/groups_1.js deleted file mode 100644 index 44fef68..0000000 --- a/pack/1.2.0/search/groups_1.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['event_20data_20recording_0',['Event Data Recording',['../group__EventRecorder__Data.html',1,'']]], - ['event_20execution_20statistics_1',['Event Execution Statistics',['../group__Event__Execution__Statistic.html',1,'']]], - ['event_20level_2',['Event level',['../group__EventRecorder__leveldefs.html',1,'']]], - ['event_20recorder_20_2d_20timer_3',['Event Recorder - Timer',['../group__EventRecorder__Time.html',1,'']]], - ['event_20recorder_20api_4',['Event Recorder API',['../group__Ref__EventRecorder.html',1,'']]], - ['event_20recorder_20setup_5',['Event Recorder Setup',['../group__EventRecorder__Setup.html',1,'']]] -]; diff --git a/pack/1.2.0/search/groups_2.js b/pack/1.2.0/search/groups_2.js deleted file mode 100644 index 435f2fd..0000000 --- a/pack/1.2.0/search/groups_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['fault_20api_0',['Fault API',['../group__Ref__Fault.html',1,'']]], - ['fault_20record_1',['Fault Record',['../group__Fault__Record.html',1,'']]], - ['fault_20storage_2',['Fault Storage',['../group__Fault__Storage.html',1,'']]] -]; diff --git a/pack/1.2.0/search/groups_3.js b/pack/1.2.0/search/groups_3.js deleted file mode 100644 index 62d0f33..0000000 --- a/pack/1.2.0/search/groups_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['macros_0',['Macros',['../group__Fault__Storage__Macros.html',1,'']]] -]; diff --git a/pack/1.2.0/search/groups_4.js b/pack/1.2.0/search/groups_4.js deleted file mode 100644 index cab6812..0000000 --- a/pack/1.2.0/search/groups_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['recording_20control_0',['Recording Control',['../group__EventRecorder__recdefs.html',1,'']]] -]; diff --git a/pack/1.2.0/search/mag.svg b/pack/1.2.0/search/mag.svg deleted file mode 100644 index 9f46b30..0000000 --- a/pack/1.2.0/search/mag.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - diff --git a/pack/1.2.0/search/mag_d.svg b/pack/1.2.0/search/mag_d.svg deleted file mode 100644 index b9a814c..0000000 --- a/pack/1.2.0/search/mag_d.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - diff --git a/pack/1.2.0/search/mag_sel.svg b/pack/1.2.0/search/mag_sel.svg deleted file mode 100644 index 03626f6..0000000 --- a/pack/1.2.0/search/mag_sel.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/pack/1.2.0/search/mag_seld.svg b/pack/1.2.0/search/mag_seld.svg deleted file mode 100644 index 6e720dc..0000000 --- a/pack/1.2.0/search/mag_seld.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/pack/1.2.0/search/pages_0.js b/pack/1.2.0/search/pages_0.js deleted file mode 100644 index d6e8d76..0000000 --- a/pack/1.2.0/search/pages_0.js +++ /dev/null @@ -1,21 +0,0 @@ -var searchData= -[ - ['_2fcomponent_5fviewer_0',['/component_viewer',['../elem_component_viewer.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2f_2e_2e_2e_2f_2e_2e_2e_2fvar_1',['/component_viewer/.../.../var',['../elem_var.html',1,'elem_typedefs']]], - ['_2fcomponent_5fviewer_2fcomponent_2',['/component_viewer/component',['../elem_component.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2fevents_3',['/component_viewer/events',['../elem_events.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2fevents_2fevent_4',['/component_viewer/events/event',['../elem_event.html',1,'elem_events']]], - ['_2fcomponent_5fviewer_2fevents_2fevent_2f_2e_2e_2fprint_5',['/component_viewer/events/event/../print',['../elem_event_print.html',1,'elem_event']]], - ['_2fcomponent_5fviewer_2fevents_2fgroup_6',['/component_viewer/events/group',['../elem_group.html',1,'elem_events']]], - ['_2fcomponent_5fviewer_2fobjects_7',['/component_viewer/objects',['../elem_objects.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2f_2e_2e_2e_2fcalc_8',['/component_viewer/objects/object/.../calc',['../elem_calc.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2f_2e_2e_2e_2flist_9',['/component_viewer/objects/object/.../list',['../elem_list.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2f_2e_2e_2e_2fread_10',['/component_viewer/objects/object/.../read',['../elem_read.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2f_2e_2e_2e_2freadlist_11',['/component_viewer/objects/object/.../readlist',['../elem_readlist.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2fout_12',['/component_viewer/objects/object/out',['../elem_out.html',1,'elem_objects']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2fout_2f_2e_2e_2e_2fitem_13',['/component_viewer/objects/object/out/.../item',['../elem_item.html',1,'elem_out']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2fout_2f_2e_2e_2e_2fitem_2fprint_14',['/component_viewer/objects/object/out/.../item/print',['../elem_print.html',1,'elem_item']]], - ['_2fcomponent_5fviewer_2fobjects_2fobject_2fout_2f_2e_2e_2e_2flist_15',['/component_viewer/objects/object/out/.../list',['../elem_listout.html',1,'elem_out']]], - ['_2fcomponent_5fviewer_2ftypedefs_16',['/component_viewer/typedefs',['../elem_typedefs.html',1,'xml_elements']]], - ['_2fcomponent_5fviewer_2ftypedefs_2ftypedef_2fmember_17',['/component_viewer/typedefs/typedef/member',['../elem_member.html',1,'elem_typedefs']]] -]; diff --git a/pack/1.2.0/search/pages_1.js b/pack/1.2.0/search/pages_1.js deleted file mode 100644 index e4ec3ef..0000000 --- a/pack/1.2.0/search/pages_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['built_2din_20functions_0',['Built-in functions',['../builtin_function.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/pages_2.js b/pack/1.2.0/search/pages_2.js deleted file mode 100644 index c4485d0..0000000 --- a/pack/1.2.0/search/pages_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['component_20viewer_0',['Component Viewer',['../cmp_viewer.html',1,'']]] -]; diff --git a/pack/1.2.0/search/pages_3.js b/pack/1.2.0/search/pages_3.js deleted file mode 100644 index 37d0b80..0000000 --- a/pack/1.2.0/search/pages_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['data_20types_0',['Data types',['../data_type.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/pages_4.js b/pack/1.2.0/search/pages_4.js deleted file mode 100644 index a283614..0000000 --- a/pack/1.2.0/search/pages_4.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['event_20recorder_0',['Event Recorder',['../evr.html',1,'']]], - ['event_20statistics_1',['Event Statistics',['../ev_stat.html',1,'']]], - ['eventlist_20utility_2',['eventlist Utility',['../evntlst.html',1,'']]], - ['eventstatistic_3',['EventStatistic',['../scvd_evt_stat.html',1,'ExampleProjects']]], - ['examples_4',['Examples',['../ExampleProjects.html',1,'']]], - ['expressions_5',['Expressions',['../scvd_expression.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/pages_5.js b/pack/1.2.0/search/pages_5.js deleted file mode 100644 index ad9f09f..0000000 --- a/pack/1.2.0/search/pages_5.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['fault_20analysis_0',['Fault Analysis',['../fault.html',1,'']]], - ['fault_2fb_2du585i_2diot02a_1',['Fault/B-U585I-IOT02A',['../flt_example_CM33.html',1,'ExampleProjects']]], - ['fault_2fvht_5fmps2_5fcortex_2dm7_2',['Fault/VHT_MPS2_Cortex-M7',['../flt_example_CM7.html',1,'ExampleProjects']]] -]; diff --git a/pack/1.2.0/search/pages_6.js b/pack/1.2.0/search/pages_6.js deleted file mode 100644 index 0398f4f..0000000 --- a/pack/1.2.0/search/pages_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['overview_0',['Overview',['../index.html',1,'']]] -]; diff --git a/pack/1.2.0/search/pages_7.js b/pack/1.2.0/search/pages_7.js deleted file mode 100644 index 9341ec2..0000000 --- a/pack/1.2.0/search/pages_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['revision_20history_0',['Revision History',['../rev_hist.html',1,'']]] -]; diff --git a/pack/1.2.0/search/pages_8.js b/pack/1.2.0/search/pages_8.js deleted file mode 100644 index 9b6aa9e..0000000 --- a/pack/1.2.0/search/pages_8.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['scvd_20file_20format_0',['SCVD file format',['../SCVD_Format.html',1,'']]], - ['symbol_20access_1',['Symbol Access',['../Symbol_Access.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/pages_9.js b/pack/1.2.0/search/pages_9.js deleted file mode 100644 index 79805b4..0000000 --- a/pack/1.2.0/search/pages_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['theory_20of_20operation_0',['Theory of operation',['../er_theory.html',1,'evr'],['../flt_theory.html',1,'fault']]] -]; diff --git a/pack/1.2.0/search/pages_a.js b/pack/1.2.0/search/pages_a.js deleted file mode 100644 index 2b18b8a..0000000 --- a/pack/1.2.0/search/pages_a.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['using_20event_20recorder_0',['Using Event Recorder',['../er_use.html',1,'evr']]], - ['using_20fault_20component_1',['Using Fault component',['../flt_use.html',1,'fault']]] -]; diff --git a/pack/1.2.0/search/pages_b.js b/pack/1.2.0/search/pages_b.js deleted file mode 100644 index 37d2ee7..0000000 --- a/pack/1.2.0/search/pages_b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['value_20output_0',['Value output',['../value_output.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/pages_c.js b/pack/1.2.0/search/pages_c.js deleted file mode 100644 index 32178f3..0000000 --- a/pack/1.2.0/search/pages_c.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['xml_20elements_0',['XML elements',['../xml_elements.html',1,'SCVD_Format']]] -]; diff --git a/pack/1.2.0/search/search.css b/pack/1.2.0/search/search.css deleted file mode 100644 index 9ca12c5..0000000 --- a/pack/1.2.0/search/search.css +++ /dev/null @@ -1,297 +0,0 @@ -/*---------------- Search Box */ - -.titlearea table { - width: 100%; -} - -dark-mode-toggle { - position: absolute; - right: 5px; - padding-top: 3px; -} - -#MSearchBox { - position: absolute; - right: 34px; -} - -/*---------------- Search box styling */ - -.SRPage * { - font-weight: normal; - line-height: normal; -} - -dark-mode-toggle { - margin-left: 5px; - display: flex; - float: right; -} - -#MSearchBox { - display: inline-block; - white-space : nowrap; - background: var(--search-background-color); - border-radius: 0.65em; - box-shadow: var(--search-box-shadow); - z-index: 102; -} - -#MSearchBox .left { - display: inline-block; - vertical-align: middle; - height: 1.4em; -} - -#MSearchSelect { - display: inline-block; - vertical-align: middle; - width: 20px; - height: 19px; - background-image: var(--search-magnification-select-image); - margin: 0 0 0 0.3em; - padding: 0; -} - -#MSearchSelectExt { - display: inline-block; - vertical-align: middle; - width: 10px; - height: 19px; - background-image: var(--search-magnification-image); - margin: 0 0 0 0.5em; - padding: 0; -} - - -#MSearchField { - display: inline-block; - vertical-align: middle; - width: 7.5em; - height: 19px; - margin: 0 0.15em; - padding: 0; - line-height: 1em; - border:none; - color: var(--search-foreground-color); - outline: none; - font-family: var(--font-family-search); - -webkit-border-radius: 0px; - border-radius: 0px; - background: none; -} - -@media(hover: none) { - /* to avoid zooming on iOS */ - #MSearchField { - font-size: 16px; - } -} - -#MSearchBox .right { - display: inline-block; - vertical-align: middle; - width: 1.4em; - height: 1.4em; -} - -#MSearchClose { - display: none; - font-size: inherit; - background : none; - border: none; - margin: 0; - padding: 0; - outline: none; - -} - -#MSearchCloseImg { - padding: 0.3em; - margin: 0; -} - -.MSearchBoxActive #MSearchField { - color: var(--search-active-color); -} - - - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid var(--search-filter-border-color); - background-color: var(--search-filter-background-color); - z-index: 10001; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt var(--font-family-search); - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: var(--font-family-monospace); - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: var(--search-filter-foreground-color); - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: var(--search-filter-foreground-color); - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: var(--search-filter-highlight-text-color); - background-color: var(--search-filter-highlight-bg-color); - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - /*width: 60ex;*/ - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid var(--search-results-border-color); - background-color: var(--search-results-background-color); - z-index:10000; - width: 300px; - height: 400px; - overflow: auto; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -div.SRPage { - margin: 5px 2px; - background-color: var(--search-results-background-color); -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: var(--search-results-foreground-color); - font-family: var(--font-family-search); - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: var(--search-results-foreground-color); - font-family: var(--font-family-search); - font-size: 8pt; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; - font-family: var(--font-family-search); -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - font-family: var(--font-family-search); -} - -.SRResult { - display: none; -} - -div.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: var(--nav-gradient-active-image-parent); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/pack/1.2.0/search/search.js b/pack/1.2.0/search/search.js deleted file mode 100644 index e103a26..0000000 --- a/pack/1.2.0/search/search.js +++ /dev/null @@ -1,816 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var jsFile; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; - } - - var loadJS = function(url, impl, loc){ - var scriptTag = document.createElement('script'); - scriptTag.src = url; - scriptTag.onload = impl; - scriptTag.onreadystatechange = impl; - loc.appendChild(scriptTag); - } - - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - var domSearchBox = this.DOMSearchBox(); - var domPopupSearchResults = this.DOMPopupSearchResults(); - var domSearchClose = this.DOMSearchClose(); - var resultsPath = this.resultsPath; - - var handleResults = function() { - document.getElementById("Loading").style.display="none"; - if (typeof searchData !== 'undefined') { - createResults(resultsPath); - document.getElementById("NoMatches").style.display="none"; - } - - searchResults.Search(searchValue); - - if (domPopupSearchResultsWindow.style.display!='block') - { - domSearchClose.style.display = 'inline-block'; - var left = getXPos(domSearchBox) + 150; - var top = getYPos(domSearchBox) + 20; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - var maxWidth = document.body.clientWidth; - var maxHeight = document.body.clientHeight; - var width = 300; - if (left<10) left=10; - if (width+left+8>maxWidth) width=maxWidth-left-8; - var height = 400; - if (height+top+8>maxHeight) height=maxHeight-top-8; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResultsWindow.style.height = height + 'px'; - } - } - - if (jsFile) { - loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); - } else { - handleResults(); - } - - this.lastSearchValue = searchValue; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - this.searchActive = true; - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - this.DOMSearchField().value = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults(resultsPath) -{ - var results = document.getElementById("SRResults"); - results.innerHTML = ''; - for (var e=0; e ' + this.tabTxt + ''; - this.listItem = '
  • ' + this.tabTxt + '
  • '; -}; - -// array of objects -var arr = []; - -// fill array -// arr.push( new tabElement( "Zone", ".", "Zone")); - -// write tabs -// called from the header file. -function writeComponentTabs() { - for ( var i=0; i < arr.length; i++ ) { - str = "/" + arr[i].folderName + "/" - if (strgURL.search(str) > 0) { // if this is the current folder - document.write(arr[i].currentListItem); // then print and highlight the tab - } else { - document.write(arr[i].listItem); // else, print the tab - } - } -}; diff --git a/pack/1.2.0/value_output.html b/pack/1.2.0/value_output.html deleted file mode 100644 index 92a6acd..0000000 --- a/pack/1.2.0/value_output.html +++ /dev/null @@ -1,548 +0,0 @@ - - - - - - - -CMSIS-View: Value output - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - -
    -
    CMSIS-View -   - -
    -
    Record program events, display status information, and analyze execution faults
    -
    - -   - - - - -
    -
    -
    - -
    -
      - -
    -
    - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    Value output
    -
    -
    -

    The elements event and item use the attributes property and value to output information in the Component Viewer or Event Recorder. The string data of these attributes may contain format specifiers to output values, strings, or symbolic information.

    -

    -Format Specifiers

    -

    A format specifier starts with a percent sign followed by a format selector followed by an expression enclosed in brackets.

    -

    Examples:

    <item property="State=%d[TCB.state]" value="delay=%x[time_ticks/10]" />
    -
    -
    <item property="%S [TCB[i].Entry] : %d[i]"
    -
    value="ThreadId=%d[TCB[i].Task_ID] | State=%E[TCB[i].State] | Priority=%E[TCB[i].Priority] | Delay=%d[TCB[i].DelaySum]">
    -

    The following format specifiers are available:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format specifier Description
    %d Integer value as a signed decimal number
    %u Integer value as an unsigned decimal number
    %t Text output from ASCII characters
    %x Integer value as hexadecimal number
    %C Address value as symbolic name with file context, if fails in hexadecimal format
    %E Symbolic enumerator value, if fails in decimal format
    %I IPv4 address, example: 192.168.150.99
    %J IPv6 address, example: 2a00:ee0:d::13
    %N String address (name), example: Instance 1
    %M MAC address, example: 1E-30-6C-A2-45-5F
    %S Address value as symbolic name, if fails in hexadecimal format
    %T Value in format derived from expression type (hexadecimal or floating number)
    %U Text output from USB descriptor
    %% Output % character
    -
    Note
    -
    -

    -Examples

    -

    The following examples show the usage of the various format specifiers.  

    -

    -%d, %x, %T format specifier

    -

    The following example shows how to output integer values using:

      -
    • %d for decimal number format.
    • -
    • %x for hexadecimal number format.
    • -
    • %T for number format that depends on the data type.
    • -
    -

    Example

    -

    C source file:

    uint8_t cval = 1;
    -
    uint16_t sval = 0x2;
    -
    uint32_t ival = 0x46;
    -
    uint64_t llval = 0xFF12001612LL;
    -
    -
    int8_t scval = 1;
    -
    int16_t ssval = -2;
    -
    int32_t sival = 46;
    -
    int64_t sllval = -6899123456;
    -
    -
    float fval = 3.14156;
    -
    double dval = 15300.6711123;
    -

    SCVD file:

    <?xml version="1.0" encoding="utf-8"?>
    -
    <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
    -
    <component name="MyExample" version="1.0.0"/>
    -
    -
    <objects>
    -
    <object name="MyProgram">
    -
    <read name="c_value" type="uint8_t" symbol="cval" />
    -
    <read name="s_value" type="uint16_t" symbol="sval" />
    -
    <read name="i_value" type="uint32_t" symbol="ival" />
    -
    <read name="ll_value" type="uint64_t" symbol="llval" />
    -
    -
    <read name="sc_value" type="int8_t" symbol="scval" />
    -
    <read name="ss_value" type="int16_t" symbol="ssval" />
    -
    <read name="si_value" type="int32_t" symbol="sival" />
    -
    <read name="sll_value" type="int64_t" symbol="sllval" />
    -
    -
    <read name="f_value" type="float" symbol="fval" />
    -
    <read name="d_value" type="double" symbol="dval" />
    -
    -
    <out name="MyProgram">
    -
    <item property="Unsigned integer format %%d"
    -
    value="cval=%d[c_value] | sval=%d[s_value] | ival=%d[i_value] | llval=%d[ll_value]" />
    -
    <item property="Unsigned integer format %%x"
    -
    value="cval=%x[c_value] | sval=%x[s_value] | ival=%x[i_value] | llval=%x[ll_value]" />
    -
    <item property="Unsigned integer format %%T"
    -
    value="cval=%T[c_value] | sval=%T[s_value] | ival=%T[i_value] | llval=%T[ll_value] " />
    -
    -
    <item property="Signed integer format %%d"
    -
    value="scval=%d[sc_value] | ssval=%d[ss_value] | sival=%d[si_value] | sllval=%d[sll_value]" />
    -
    <item property="Signed integer format %%x"
    -
    value="scval=%x[sc_value] | ssval=%x[ss_value] | sival=%x[si_value] | sllval=%x[sll_value]" />
    -
    <item property="Signed integer format %%T"
    -
    value="scval=%T[sc_value] | ssval=%T[ss_value] | sival=%T[si_value] | sllval=%T[sll_value] " />
    -
    -
    <item property="Floating point format %%d"
    -
    value="fval=%d[f_value] | dval=%d[d_value]" />
    -
    <item property="Floating point format %%x"
    -
    value="fval=%x[f_value] | dval=%x[d_value]" />
    -
    <item property="Floating point format %%T"
    -
    value="fval=%T[f_value] | dval=%T[d_value]" />
    -
    </out>
    -
    <object>
    -
    </objects>
    -
    -
    </component_viewer>
    -

    Output:

    - -
    -Output of %d, %x, %T format specifiers
    -

     

    -

    -%t, %U format specifiers

    -

    The following example shows how to output ASCII text, including an USB string:

    -

    C source file

    volatile char string[10] = "MyTest";
    -
    unsigned short wString[15] = L"USB_MSC1";
    -

    *.SCVD file

    <?xml version="1.0" encoding="utf-8"?>
    -
    <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
    -
    <component name="MyExample" version="1.0.0"/>
    -
    -
    <objects>
    -
    <object name="MyProgram">
    -
    <read name="string_val" type="int8_t" symbol="string" size="10" />
    -
    <read name="wstring_val" type="int16_t" symbol="wString" size="15" />
    -
    -
    <out name="MyProgram">
    -
    <item property="string %%t" value="%t[string_val]" />
    -
    <item property="string %%t" value="Status=%t[i_value==0 ? &quot;Free&quot; : &quot;Busy&quot;]" />
    -
    <item property="wString %%U" value="%U[wstring_val]" />
    -
    </out>
    -
    </object>
    -
    </objects>
    -
    -
    </component_viewer>
    -

    Output

    - -
    -Output of %t, %U format specifiers
    -

     

    -

    -%E format specifier

    -

    The following example shows how to output integer values as symbolic enumerator value.

    -

    C source file

    // <!-- \%E Format Specifier -->
    -
    enum color { red=1, yellow=2, green=3, };
    -
    -
    enum color light1;
    -
    enum color light2 = yellow;
    -

    *.SCVD File

    <?xml version="1.0" encoding="utf-8"?>
    -
    <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
    -
    <component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
    -
    -
    <!-- \%E Format Specifier -->
    -
    <typedefs>
    -
    <typedef name="Color" size="4" info="enum color">
    -
    <member name="val" type="uint32_t" offset="0">
    -
    <enum name="red (alert)" value="1" info="alert color" />
    -
    <enum name="yellow (attention)" value="2" info="attention color" />
    -
    <enum name="green (working)" value="3" info="working color" />
    -
    </member>
    -
    </typedef>
    -
    </typedefs>
    -
    -
    <objects>
    -
    <object name="MyProgram">
    -
    <!-- \%E Format Specifier -->
    -
    <read name="light1" type="Color" symbol="light1" />
    -
    <read name="light2" type="Color" symbol="light2" />
    -
    -
    <out name="MyProgram">
    -
    <!-- \%E Format Specifier -->
    -
    <item property="Enum format %%E" value="light1=%E[light1.val] | light2=%E[light2.val]" />
    -
    </out>
    -
    </object>
    -
    </objects>
    -
    -
    </component_viewer>
    -

    Output

    - -
    -Output of %E format specifiers
    -

     

    -

    -%C, %S format specifier

    -

    The following example show how to output an address value as symbol that is part of the user application using:

      -
    • %C as symbolic name with file context.
    • -
    • %S as symbolic name.
    • -
    -

    C source file

    // <!-- \%C, \%S Format Specifier -->
    -
    static void myFunction (void) {
    -
    ;
    -
    }
    -
    -
    typedef void (*function_t) (void);
    -
    function_t myFunction_p = myFunction;
    -
    -
    int32_t * pival=&sival;
    -

    *.SCVD file

    <?xml version="1.0" encoding="utf-8"?>
    -
    <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
    -
    <component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
    -
    -
    <objects>
    -
    <object name="MyProgram">
    -
    <!-- \%C, \%S Format Specifier -->
    -
    <read name="p_func" type="uint32_t" symbol="myFunction_p" />
    -
    <read name="p_ival" type="uint32_t" symbol="pival" />
    -
    -
    <out name="MyProgram">
    -
    <!-- \%C, \%S Format Specifier -->
    -
    <item property="Pointer format %%S" value="myFunction_p=%S[p_func] | pival=%S[p_ival]" />
    -
    <item property="Pointer format %%C" value="myFunction_p=%C[p_func] | pival=%C[p_ival]" />
    -
    </out>
    -
    </object>
    -
    </objects>
    -
    -
    </component_viewer>
    -

    Output

    - -
    -Output of %C, %S format specifiers
    -

     

    -

    -%N format specifier

    -

    The following example show how to output an name string from the target application using the %N format specifier.

    -

    C source file

    volatile char *name = "MyName";
    -

    *.SCVD file

    <?xml version="1.0" encoding="utf-8"?>
    -
    <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
    -
    <component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
    -
    -
    <objects>
    -
    <object name="MyProgram">
    -
    <read name="name_val" type="uint32_t" symbol="name" />
    -
    -
    <out name="MyProgram">
    -
    <item property="name %%N" value="%N[name_val]" />
    -
    </out>
    -
    </object>
    -
    </objects>
    -
    -
    </component_viewer>
    -

    Output

    - -
    -Output of %N format specifier
    -

     

    -

    -%I, %J, %M format specifier

    -

    The following example show how to output MAC and IP addresses that are part of the user application using:

      -
    • %I for IPv4 address information, example: 192.168.150.99.
    • -
    • %J for IPv6 address information, example: 2a00:ee0:d::13
    • -
    • %M for MAC address information, example: 1E-30-6C-A2-45-5F
    • -
    -

    C source file

    // \%I, \%J, %M Format Specifier
    -
    uint8_t ip4_addr[4] = {192, 168, 0, 1};
    -
    uint8_t ip6_addr[16] = {0xFF, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x02 };
    -
    uint8_t mac_addr[6] = {0x5F, 0x3F, 0x10, 0xFF, 0x00, 0x01};
    -

    <*.SCVD file

    <?xml version="1.0" encoding="utf-8"?>
    -
    <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
    -
    <component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
    -
    -
    <objects>
    -
    <object name="MyProgram">
    -
    <!-- \%I, \%J, %M Format Specifier -->
    -
    <read name="IPv4val" type="uint8_t" symbol="ip4_addr" size="4" />
    -
    <read name="IPv6val" type="uint8_t" symbol="ip6_addr" size="16" />
    -
    <read name="MAC_val" type="uint8_t" symbol="mac_addr" size="6" />
    -
    -
    <out name="MyProgram">
    -
    <!-- \%I, \%J, %M Format Specifier -->
    -
    <item property="IPv4 format %%I" value="ip4_addr=%I[IPv4val]" />
    -
    <item property="IPv6 format %%J" value="ip6_addr=%J[IPv6val]" />
    -
    <item property="MAC format %%M" value="mac_addr=%M[MAC_val]" />
    -
    -
    </out>
    -
    </object>
    -
    </objects>
    -
    -
    </component_viewer>
    -

    Output

    - -
    -Output of %I, %J, %M format specifiers
    -

     

    -

    -%% format specifier

    -

    The following example show how to output a percentage sign.

    -

    C source file

    volatile char string[10] = "MyTest";
    -
    unsigned short wString[15] = L"USB_MSC1";
    -

    *.SCVD file

    <?xml version="1.0" encoding="utf-8"?>
    -
    <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
    -
    <component name="MyExample" version="1.0.0"/>
    -
    -
    <objects>
    -
    <object name="MyProgram">
    -
    <read name="string_val" type="int8_t" symbol="string" size="10" />
    -
    <read name="wstring_val" type="int16_t" symbol="wString" size="15" />
    -
    -
    <out name="MyProgram">
    -
    <item property="string %%t" value="%t[string_val]" />
    -
    <item property="string %%t" value="Status=%t[i_value==0 ? &quot;Free&quot; : &quot;Busy&quot;]" />
    -
    <item property="wString %%U" value="%U[wstring_val]" />
    -
    </out>
    -
    </object>
    -
    </objects>
    -
    -
    </component_viewer>
    -

    Output

    -

    The example shows the %-sign output in the Property column.

    -
    - -
    -Output of % format specifier
    -

     

    -

    -alert and bold output

    -

    The following example shows how to emphasis output with the bold and alert attribute of the <item> element.

    -

    *.SCVD file

    <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
    -
    <component name="MyFirstComponent" version="0.0.1"/> <!-- name and version of the component -->
    -
    -
    <typedefs>
    -
    <typedef name="MyGeneralType" info="This is MyType with 2 members" size="12">
    -
    <member name="hi" type="uint32_t" offset="0" info="member 'mysymbol.hi'"/>
    -
    <member name="low" type="uint32_t" offset="4" info="member 'mysymbol.low'"/>
    -
    </typedef>
    -
    </typedefs>
    -
    -
    <objects>
    -
    <object name="MyFirstObject">
    -
    <read name="MyFirstSymbol" type="MyGeneralType" symbol="mysymbol" const="0"/>
    -
    -
    <out name="My First Viewer"> <!-- Window name -->
    -
    <item property="Square of numbers [0..30]"> <!-- Property entry -->
    -
    <!-- These items extend the entry above -->
    -
    <item property="Hi [dec]" value="%d[MyFirstSymbol.hi]" info="Show decimal value of 'mysymbol.hi'" alert="MyFirstSymbol.hi &gt; 100" />
    -
    <item property="Low [dec]" value="%d[MyFirstSymbol.low]" info="Show decimal value of 'mysymbol.low'" bold="MyFirstSymbol.low &lt; 20"/>
    -
    <item property="Hi [hex]" value="%x[MyFirstSymbol.hi]" info="Show HEX value of 'mysymbol.hi'"/>
    -
    <item property="Low [hex]" value="%x[MyFirstSymbol.low]" info="Show HEX value of 'mysymbol.low'" bold="1" alert="1"/>
    -
    </item>
    -
    </out>
    -
    </object>
    -
    </objects>
    -
    -
    </component_viewer>
    -

    Output

    -

    Depending on the values, the item:

      -
    • "Hi [dec]" is displayed in alert color red when the value is > 100
    • -
    • "Low [dec]" is displayed in bold when the value is < 20
    • -
    -

    The value "Low [hex]" is shown in red and bold (both attributes are set).

    -
    - -
    -Output using bold and alert attributes
    -

     

    -

    -Dynamic output formats

    -

    The following example shows how to dynamically change the output format of an <item> element using a <print> child element.

    -

    *.SCVD file

    <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
    -
    <component name="MyFirstComponent" version="0.0.1"/> <!-- name and version of the component -->
    -
    -
    <typedefs>
    -
    <typedef name="MyGeneralType" info="This is MyType with 2 members" size="12">
    -
    <member name="hi" type="uint32_t" offset="0" info="member 'mysymbol.hi'"/>
    -
    <member name="low" type="uint32_t" offset="4" info="member 'mysymbol.low'"/>
    -
    </typedef>
    -
    </typedefs>
    -
    -
    <objects>
    -
    <object name="MyFirstObject">
    -
    <read name="MyFirstSymbol" type="MyGeneralType" symbol="mysymbol" const="0"/>
    -
    -
    <out name="My First Viewer"> <!-- Window name -->
    -
    <item property="Square of numbers [0..30]"> <!-- Property entry -->
    -
    <!-- These items extend the entry above -->
    -
    <item>
    -
    <print cond="MyFirstSymbol.hi &lt;= 100" property="Hi [hex]" value="%x[MyFirstSymbol.hi]" info="Show HEX value of 'mysymbol.hi' bold="1" alert="1" />
    -
    <print cond="MyFirstSymbol.hi &gt; 100" property="Hi [dec]" value="%d[MyFirstSymbol.hi]" info="Show decimal value of 'mysymbol.hi'" />
    -
    </item>
    -
    -
    <item property="Low [dec]" value="%d[MyFirstSymbol.low]" info="Show decimal value of 'mysymbol.low'" />
    -
    <item property="Low [hex]" value="%x[MyFirstSymbol.low]" info="Show HEX value of 'mysymbol.low'" />
    -
    </item>
    -
    </out>
    -
    </object>
    -
    </objects>
    -
    -
    </component_viewer>
    -

    Output

    -

    Depending on the values, the item "Hi" is displayed as:

      -
    • "Hi [hex]" and hex formant with bold and alert color red when the value is <= 100
    • -
    • "Hi [dec]" and decimal format when the value is > 100
    • -
    -
    - -
    -Dynamic output format changes
    -

     

    -
    -
    -
    - - - - diff --git a/pack/1.2.0/version.css b/pack/1.2.0/version.css deleted file mode 100644 index 31cc37a..0000000 --- a/pack/1.2.0/version.css +++ /dev/null @@ -1,58 +0,0 @@ -:root { - --arm_light_blue: #00C1DE; - --arm_blue: #11809F; - --arm_blue1: #0091BD; - --arm_dark_blue: #002B49; - --arm_light_gray: #E5ECEB; - --arm_light_gray1: #EFF5F4; - --arm_light_gray2: #EBEBEB; - --arm_light_gray3: #F7F7F7; - --arm_dark_gray: #7D868C; - --arm_black: #333E48; - --arm_orange: #FF6B00; - --arm_yellow: #FFC700; -} - -/* Dropdown Button */ -.dropbtn { - margin: 0px; - padding: 0px 20px 0px 0em; - background-image: url("dropdown.png"); - background-repeat: no-repeat; - background-size: 0.5em; - background-position: right center; - cursor: pointer; -} - -/* The container
    - needed to position the dropdown content */ -.dropdown { - position: relative; - display: inline-block; -} - -/* Dropdown Content (Hidden by Default) */ -.dropdown-content { - display: none; - position: absolute; - background-color: var(--arm_light_gray3); - min-width: 160px; - box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.4); - white-space: nowrap; - cursor: pointer; - z-index: 1; -} - -/* Links inside the dropdown */ -.dropdown-content a { - # color: black; - color: var(--arm_dark_gray); - padding: 4px 6px; - text-decoration: none; - display: block; -} - -/* Change color of dropdown links on hover */ -.dropdown-content a:hover {background-color: #ddd} - -/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */ -.show {display:block;} diff --git a/pack/1.2.0/xml_elements.html b/pack/1.2.0/xml_elements.html deleted file mode 100644 index 53420a0..0000000 --- a/pack/1.2.0/xml_elements.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -CMSIS-View: XML elements - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - -
    -
    CMSIS-View -   - -
    -
    Record program events, display status information, and analyze execution faults
    -
    - -   - - - - -
    -
    -
    - -
    -
      - -
    -
    - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    XML elements
    -
    -
    -

    The top level elements of an SCVD file are:

      -
    • <component_viewer> — the root element enclosing all other elements
    • -
    • <component> — defines the component for which the viewer is created
    • -
    • <typedefs> — definitions for data types and structures of the software component.
    • -
    • <objects> — defines the data collection and the output for software component objects.
    • -
    • <events> — defines the output for events (system and thread information).
    • -
    -

    The overall XML structure of an SCVD file is shown below.

    -
    - -
    -Example of an SCVD File
    -
    -
    -
    - - - - diff --git a/pack/1.2.0/xml_elements.js b/pack/1.2.0/xml_elements.js deleted file mode 100644 index 5af60f0..0000000 --- a/pack/1.2.0/xml_elements.js +++ /dev/null @@ -1,8 +0,0 @@ -var xml_elements = -[ - [ "/component_viewer", "elem_component_viewer.html", null ], - [ "/component_viewer/component", "elem_component.html", null ], - [ "/component_viewer/typedefs", "elem_typedefs.html", "elem_typedefs" ], - [ "/component_viewer/objects", "elem_objects.html", "elem_objects" ], - [ "/component_viewer/events", "elem_events.html", "elem_events" ] -]; \ No newline at end of file