summaryrefslogtreecommitdiff
path: root/CMSIS/Documentation/Pack
diff options
context:
space:
mode:
authorDominik Sliwa <dominik.sliwa@toradex.com>2017-05-16 14:31:59 +0200
committerDominik Sliwa <dominik.sliwa@toradex.com>2017-05-16 14:31:59 +0200
commitc9d5d6b248a12f7c6b66d8a64b93fb0c8c6cae4d (patch)
treedc9f3329f9fd2fc67aa8202b2d3cb4e537deb17d /CMSIS/Documentation/Pack
parentd0e5a94a55334b0a27652959fba5066f56128135 (diff)
ksd:ksdk update to 2.2
This include FreeRTOS update to version 9.0.0 Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Diffstat (limited to 'CMSIS/Documentation/Pack')
-rw-r--r--CMSIS/Documentation/Pack/html/BSPBundleDisplay.pngbin0 -> 27165 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/BasicDFPDisplay.pngbin0 -> 20924 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/BoardsSectionMCB1500.pngbin0 -> 88016 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/CMSIS_Logo_Final.pngbin0 -> 12402 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/CodeVerify.pngbin0 -> 18957 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ComponentDisplay.pngbin0 -> 140038 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/Component_Instances.pngbin0 -> 304610 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ConditionsDisplay.pngbin0 -> 18273 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/DFPFlow.pngbin0 -> 78587 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/DebugConnect.pngbin0 -> 104597 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/DebugDisconnect.pngbin0 -> 41800 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/DevBoardDisplay.pngbin0 -> 25592 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/DeviceDatabase2.pngbin0 -> 45952 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ExampleDisplay.pngbin0 -> 23165 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/FPADisplay.pngbin0 -> 16485 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/FPATargetOptions.pngbin0 -> 19281 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/LocalInstallation.pngbin0 -> 33762 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/MVCM3SpecTable.pngbin0 -> 38408 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/PDSC_Example_bottom.pngbin0 -> 417074 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/PDSC_Example_top.pngbin0 -> 244045 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/PackCreateSteps.pngbin0 -> 57612 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/RTX_Conf_CM_Wizard_View.pngbin0 -> 25399 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/Reset.pngbin0 -> 63109 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/SPVariants_small.pngbin0 -> 42974 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/SVDFlow.pngbin0 -> 32030 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/SVDIncluded.pngbin0 -> 25718 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/StartupSystemFilesAdded.pngbin0 -> 6653 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/SystemStartupFiles.pngbin0 -> 40891 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/UserCodeTemplatesDisplay.pngbin0 -> 38332 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/VariantDisplay.pngbin0 -> 30798 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/WebInstallation.pngbin0 -> 59702 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/_algorithm_func.html422
-rw-r--r--CMSIS/Documentation/Pack/html/_c_p__editors.html134
-rw-r--r--CMSIS/Documentation/Pack/html/_c_p__packs.html211
-rw-r--r--CMSIS/Documentation/Pack/html/_c_p__s_w_components.html545
-rw-r--r--CMSIS/Documentation/Pack/html/_c_p__z_i_p_tool.html130
-rw-r--r--CMSIS/Documentation/Pack/html/_config_wizard.html420
-rw-r--r--CMSIS/Documentation/Pack/html/_create_pack__d_f_p.html533
-rw-r--r--CMSIS/Documentation/Pack/html/_create_pack_board.html256
-rw-r--r--CMSIS/Documentation/Pack/html/_create_pack_publish.html172
-rw-r--r--CMSIS/Documentation/Pack/html/_create_pack_util.html134
-rw-r--r--CMSIS/Documentation/Pack/html/_create_pack_util.js8
-rw-r--r--CMSIS/Documentation/Pack/html/_flash_algorithm.html200
-rw-r--r--CMSIS/Documentation/Pack/html/_flash_algorithm.js14
-rw-r--r--CMSIS/Documentation/Pack/html/_pack__example.html237
-rw-r--r--CMSIS/Documentation/Pack/html/_pack_chk.html477
-rw-r--r--CMSIS/Documentation/Pack/html/_pack_format.html221
-rw-r--r--CMSIS/Documentation/Pack/html/_pack_format.js73
-rw-r--r--CMSIS/Documentation/Pack/html/bc_s.pngbin0 -> 676 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/bdwn.pngbin0 -> 147 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/closed.pngbin0 -> 132 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/cmsis.css1269
-rw-r--r--CMSIS/Documentation/Pack/html/component_files.pngbin0 -> 86770 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/doxygen.css1172
-rw-r--r--CMSIS/Documentation/Pack/html/doxygen.pngbin0 -> 3779 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/dynsections.js78
-rw-r--r--CMSIS/Documentation/Pack/html/element_keywords.html152
-rw-r--r--CMSIS/Documentation/Pack/html/element_releases.html181
-rw-r--r--CMSIS/Documentation/Pack/html/element_taxonomy.html259
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2blank.pngbin0 -> 86 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2cl.pngbin0 -> 453 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2doc.pngbin0 -> 746 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2folderclosed.pngbin0 -> 616 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2folderopen.pngbin0 -> 597 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2lastnode.pngbin0 -> 86 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2link.pngbin0 -> 746 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2mlastnode.pngbin0 -> 246 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2mnode.pngbin0 -> 246 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2mo.pngbin0 -> 403 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2node.pngbin0 -> 86 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2ns.pngbin0 -> 388 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2plastnode.pngbin0 -> 229 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2pnode.pngbin0 -> 229 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2splitbar.pngbin0 -> 314 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/ftv2vertline.pngbin0 -> 86 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/index.html177
-rw-r--r--CMSIS/Documentation/Pack/html/jquery.js77
-rw-r--r--CMSIS/Documentation/Pack/html/maxInstancesDisplay.pngbin0 -> 67489 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/nav_f.pngbin0 -> 153 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/nav_g.pngbin0 -> 95 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/nav_h.pngbin0 -> 98 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/navtree.css143
-rw-r--r--CMSIS/Documentation/Pack/html/navtree.js556
-rw-r--r--CMSIS/Documentation/Pack/html/navtreeindex0.js148
-rw-r--r--CMSIS/Documentation/Pack/html/open.pngbin0 -> 123 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/pack_revision_history.html199
-rw-r--r--CMSIS/Documentation/Pack/html/pages.html161
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc__sequence_name_enum_pg.html499
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_apis_pg.html200
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_boards_pg.html503
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_components_pg.html523
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_conditions_pg.html316
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_devices_pg.html251
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_devices_pg.js34
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_examples_pg.html334
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_family_pg.html2421
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_generators_pg.html442
-rw-r--r--CMSIS/Documentation/Pack/html/pdsc_package_pg.html263
-rw-r--r--CMSIS/Documentation/Pack/html/printComponentTabs.js36
-rw-r--r--CMSIS/Documentation/Pack/html/resize.js93
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_61.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_61.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_63.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_63.js5
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_64.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_64.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_66.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_66.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_70.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_70.js10
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_72.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_72.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_75.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_75.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_78.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_78.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_7a.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/all_7a.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/close.pngbin0 -> 273 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/search/mag_sel.pngbin0 -> 563 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/search/nomatches.html12
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_61.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_61.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_63.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_63.js5
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_64.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_64.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_66.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_66.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_70.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_70.js10
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_72.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_72.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_75.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_75.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_78.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_78.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_7a.html25
-rw-r--r--CMSIS/Documentation/Pack/html/search/pages_7a.js4
-rw-r--r--CMSIS/Documentation/Pack/html/search/search.css240
-rw-r--r--CMSIS/Documentation/Pack/html/search/search.js797
-rw-r--r--CMSIS/Documentation/Pack/html/search/search_l.pngbin0 -> 604 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/search/search_m.pngbin0 -> 158 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/search/search_r.pngbin0 -> 612 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/simplepack_rte.pngbin0 -> 27738 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/sync_off.pngbin0 -> 853 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/sync_on.pngbin0 -> 845 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/tab_a.pngbin0 -> 142 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/tab_b.pngbin0 -> 170 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/tab_h.pngbin0 -> 177 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/tab_s.pngbin0 -> 184 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/tab_topnav.pngbin0 -> 232 bytes
-rw-r--r--CMSIS/Documentation/Pack/html/tabs.css71
153 files changed, 16330 insertions, 0 deletions
diff --git a/CMSIS/Documentation/Pack/html/BSPBundleDisplay.png b/CMSIS/Documentation/Pack/html/BSPBundleDisplay.png
new file mode 100644
index 0000000..ce1bed1
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/BSPBundleDisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/BasicDFPDisplay.png b/CMSIS/Documentation/Pack/html/BasicDFPDisplay.png
new file mode 100644
index 0000000..5132c22
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/BasicDFPDisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/BoardsSectionMCB1500.png b/CMSIS/Documentation/Pack/html/BoardsSectionMCB1500.png
new file mode 100644
index 0000000..e49e80f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/BoardsSectionMCB1500.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/CMSIS_Logo_Final.png b/CMSIS/Documentation/Pack/html/CMSIS_Logo_Final.png
new file mode 100644
index 0000000..2056b7e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/CMSIS_Logo_Final.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/CodeVerify.png b/CMSIS/Documentation/Pack/html/CodeVerify.png
new file mode 100644
index 0000000..448b40e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/CodeVerify.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ComponentDisplay.png b/CMSIS/Documentation/Pack/html/ComponentDisplay.png
new file mode 100644
index 0000000..db55d44
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ComponentDisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/Component_Instances.png b/CMSIS/Documentation/Pack/html/Component_Instances.png
new file mode 100644
index 0000000..8ecdc33
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/Component_Instances.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ConditionsDisplay.png b/CMSIS/Documentation/Pack/html/ConditionsDisplay.png
new file mode 100644
index 0000000..0821348
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ConditionsDisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/DFPFlow.png b/CMSIS/Documentation/Pack/html/DFPFlow.png
new file mode 100644
index 0000000..3f82e15
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/DFPFlow.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/DebugConnect.png b/CMSIS/Documentation/Pack/html/DebugConnect.png
new file mode 100644
index 0000000..656edd3
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/DebugConnect.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/DebugDisconnect.png b/CMSIS/Documentation/Pack/html/DebugDisconnect.png
new file mode 100644
index 0000000..5a59438
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/DebugDisconnect.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/DevBoardDisplay.png b/CMSIS/Documentation/Pack/html/DevBoardDisplay.png
new file mode 100644
index 0000000..f769e4e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/DevBoardDisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/DeviceDatabase2.png b/CMSIS/Documentation/Pack/html/DeviceDatabase2.png
new file mode 100644
index 0000000..9c6f51c
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/DeviceDatabase2.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ExampleDisplay.png b/CMSIS/Documentation/Pack/html/ExampleDisplay.png
new file mode 100644
index 0000000..e078c58
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ExampleDisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/FPADisplay.png b/CMSIS/Documentation/Pack/html/FPADisplay.png
new file mode 100644
index 0000000..79a98ef
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/FPADisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/FPATargetOptions.png b/CMSIS/Documentation/Pack/html/FPATargetOptions.png
new file mode 100644
index 0000000..f7b121f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/FPATargetOptions.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/LocalInstallation.png b/CMSIS/Documentation/Pack/html/LocalInstallation.png
new file mode 100644
index 0000000..ba805a3
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/LocalInstallation.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/MVCM3SpecTable.png b/CMSIS/Documentation/Pack/html/MVCM3SpecTable.png
new file mode 100644
index 0000000..2ade29a
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/MVCM3SpecTable.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/PDSC_Example_bottom.png b/CMSIS/Documentation/Pack/html/PDSC_Example_bottom.png
new file mode 100644
index 0000000..5325685
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/PDSC_Example_bottom.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/PDSC_Example_top.png b/CMSIS/Documentation/Pack/html/PDSC_Example_top.png
new file mode 100644
index 0000000..defa79f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/PDSC_Example_top.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/PackCreateSteps.png b/CMSIS/Documentation/Pack/html/PackCreateSteps.png
new file mode 100644
index 0000000..9c4861d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/PackCreateSteps.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/RTX_Conf_CM_Wizard_View.png b/CMSIS/Documentation/Pack/html/RTX_Conf_CM_Wizard_View.png
new file mode 100644
index 0000000..0e00c41
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/RTX_Conf_CM_Wizard_View.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/Reset.png b/CMSIS/Documentation/Pack/html/Reset.png
new file mode 100644
index 0000000..585f140
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/Reset.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/SPVariants_small.png b/CMSIS/Documentation/Pack/html/SPVariants_small.png
new file mode 100644
index 0000000..2b4f5ba
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/SPVariants_small.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/SVDFlow.png b/CMSIS/Documentation/Pack/html/SVDFlow.png
new file mode 100644
index 0000000..1c141db
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/SVDFlow.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/SVDIncluded.png b/CMSIS/Documentation/Pack/html/SVDIncluded.png
new file mode 100644
index 0000000..7faac32
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/SVDIncluded.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/StartupSystemFilesAdded.png b/CMSIS/Documentation/Pack/html/StartupSystemFilesAdded.png
new file mode 100644
index 0000000..3a7f890
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/StartupSystemFilesAdded.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/SystemStartupFiles.png b/CMSIS/Documentation/Pack/html/SystemStartupFiles.png
new file mode 100644
index 0000000..07accb1
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/SystemStartupFiles.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/UserCodeTemplatesDisplay.png b/CMSIS/Documentation/Pack/html/UserCodeTemplatesDisplay.png
new file mode 100644
index 0000000..96371d9
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/UserCodeTemplatesDisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/VariantDisplay.png b/CMSIS/Documentation/Pack/html/VariantDisplay.png
new file mode 100644
index 0000000..7c08d5e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/VariantDisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/WebInstallation.png b/CMSIS/Documentation/Pack/html/WebInstallation.png
new file mode 100644
index 0000000..32f5fc7
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/WebInstallation.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/_algorithm_func.html b/CMSIS/Documentation/Pack/html/_algorithm_func.html
new file mode 100644
index 0000000..641c89e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_algorithm_func.html
@@ -0,0 +1,422 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Algorithm Functions</title>
+<title>CMSIS-Pack: Algorithm Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_algorithm_func.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Algorithm Functions </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Blank Check</p>
+<p>The following functions are available for creating new Flash programming algorithms: </p>
+<table class="doxtable">
+<tr>
+<th>Function Name </th><th>Indication</th><th>Description</th></tr>
+<tr>
+<td><a class="el" href="_algorithm_func.html#BlankCheck">BlankCheck</a> </td><td>optional </td><td>Check and compare patterns. </td></tr>
+<tr>
+<td><a class="el" href="_algorithm_func.html#EraseChip">EraseChip</a> </td><td>optional </td><td>Delete entire Flash memory content. </td></tr>
+<tr>
+<td><a class="el" href="_algorithm_func.html#EraseSector">EraseSector</a></td><td>mandatory </td><td>Delete Flash memory content of a specific sector. </td></tr>
+<tr>
+<td><a class="el" href="_algorithm_func.html#Init">Init</a> </td><td>mandatory </td><td>Initialize and prepare device for Flash programming. </td></tr>
+<tr>
+<td><a class="el" href="_algorithm_func.html#ProgramPage">ProgramPage</a></td><td>mandatory </td><td>Write the application into the Flash memory. </td></tr>
+<tr>
+<td><a class="el" href="_algorithm_func.html#UnInit">UnInit</a> </td><td>mandatory </td><td>De-initialize the microcontroller after one of the Flash programming steps. </td></tr>
+<tr>
+<td><a class="el" href="_algorithm_func.html#Verify">Verify</a> </td><td>optional </td><td>Compare Flash memory content with the program code. </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="BlankCheck"></a>
+BlankCheck</h1>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> BlankCheck (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sz, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> pat);</div>
+</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">adr</td><td>Block start address </td></tr>
+ <tr><td class="paramname">sz</td><td>Block size in bytes </td></tr>
+ <tr><td class="paramname">pat</td><td>Pattern to compare </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status information:<ul>
+<li>0 when the block content is equal to the pattern pat.</li>
+<li>1 when the block content differs from the pattern pat.</li>
+</ul>
+</dd></dl>
+<p>The function <b>BlankCheck</b> can be used to check whether the specified block is empty, or whether the content is equal to a specific pattern defined in the argument <em>pat</em>.</p>
+<p>The argument <em>adr</em> specifies the start address of the block that is to be verified.</p>
+<p>The argument <em>sz</em> specifies the size of the block that is to be verified.</p>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> BlankCheck (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sz, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> pat) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> i, j, k;</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Recalculate address for External SDRAM addresses</span></div>
+<div class="line"> <span class="keywordflow">if</span> (adr &gt;= SDRAM_START)</div>
+<div class="line"> adr = adr - SDRAM_START + USER_OFFSET;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">for</span> (i = 0; i &lt; sz; i += 256) {</div>
+<div class="line"> <span class="comment">// Read 256 bytes</span></div>
+<div class="line"> ReadPage_HW (adr+i, 256, &amp;rd_buf[0]);</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Determine size to compare</span></div>
+<div class="line"> <span class="keywordflow">if</span> ((sz-i) &gt;= 256) k = 256;</div>
+<div class="line"> <span class="keywordflow">else</span> k = (sz-i);</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Check up to 256 bytes if equal to pattern &quot;pat&quot;</span></div>
+<div class="line"> <span class="keywordflow">for</span> (j = 0; j &lt; k; j++)</div>
+<div class="line"> <span class="keywordflow">if</span> (rd_buf[j] != pat) <span class="keywordflow">return</span> (1); <span class="comment">// Memory is not blank</span></div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (0); <span class="comment">// Memory is blank</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="EraseChip"></a>
+EraseChip</h1>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> EraseChip (<span class="keywordtype">void</span>);</div>
+</div><!-- fragment --> <dl class="section return"><dt>Returns</dt><dd>status information:<ul>
+<li>0 on success.</li>
+<li>1 on failure.</li>
+</ul>
+</dd></dl>
+<p>The function <b>EraseChip</b> deletes the content of the entire Flash memory. It is invoked whenever the uVision menu <b>Flash</b> - <b>Erase</b> is used, or whenever an attempt is made to download the program to Flash and the option <b>Erase Full Chip</b> has been set in the <b>Flash Download Setup</b> dialog. If this function is missing in the Flash Programming Algorithm, the <a class="el" href="_algorithm_func.html#EraseSector">EraseSector</a> function is executed until the entire content of the Flash memory area has been deleted.</p>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> EraseChip (<span class="keywordtype">void</span>) {</div>
+<div class="line"> </div>
+<div class="line"> FLASH-&gt;CR |= FLASH_MER; <span class="comment">// Mass Erase Enabled</span></div>
+<div class="line"> FLASH-&gt;CR |= FLASH_STRT; <span class="comment">// Start Erase</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">while</span> (FLASH-&gt;SR &amp; FLASH_BSY) {</div>
+<div class="line"> IWDG-&gt;KR = 0xAAAA; <span class="comment">// Reload IWDG</span></div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> FLASH-&gt;CR &amp;= ~FLASH_MER; <span class="comment">// Mass Erase Disabled</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (0); <span class="comment">// Done</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="EraseSector"></a>
+EraseSector</h1>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> EraseSector (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr);</div>
+</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">adr</td><td>Sector address </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status information:<ul>
+<li>0 on success.</li>
+<li>1 on failure.</li>
+</ul>
+</dd></dl>
+<p>The function <b>EraseSector</b> deletes the content of the sector starting at the address specified by the argument <em>adr</em>. The function is invoked whenever the uVision menu <b>Flash</b> - <b>Erase</b> is used, or whenever an attempt is made to download the program to Flash and the option <b>Erase Sectors</b> has been set in the <b>Flash Download Setup</b> dialog.</p>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> EraseSector (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr) {</div>
+<div class="line"> </div>
+<div class="line"> FLASH-&gt;CR |= FLASH_PER; <span class="comment">// Page Erase Enabled</span></div>
+<div class="line"> FLASH-&gt;AR = adr; <span class="comment">// Page Address</span></div>
+<div class="line"> FLASH-&gt;CR |= FLASH_STRT; <span class="comment">// Start Erase</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">while</span> (FLASH-&gt;SR &amp; FLASH_BSY) {</div>
+<div class="line"> IWDG-&gt;KR = 0xAAAA; <span class="comment">// Reload IWDG</span></div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> FLASH-&gt;CR &amp;= ~FLASH_PER; <span class="comment">// Page Erase Disabled</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (0); <span class="comment">// Done</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="Init"></a>
+Init</h1>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> Init (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> clk, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> fnc);</div>
+</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">adr</td><td>Device base address </td></tr>
+ <tr><td class="paramname">clk</td><td>Clock frequency (Hz) </td></tr>
+ <tr><td class="paramname">fnc</td><td>Function code </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status information:<ul>
+<li>0 on success.</li>
+<li>1 on failure.</li>
+</ul>
+</dd></dl>
+<p>The function <b>Init</b> initializes the microcontroller for Flash programming. It is invoked whenever an attempt is made to download the program to Flash.</p>
+<p>The argument <em>adr</em> specifies the base address of the device.</p>
+<p>The argument <em>clk</em> specifies the clock frequency for prgramming the device.</p>
+<p>The argument <em>fnc</em> is a number:</p>
+<ul>
+<li>1 stands for Erase.</li>
+<li>2 stands for Program.</li>
+<li>3 stands for Verify.</li>
+</ul>
+<p>Thus, different initialization sections can be implemented for each individual Flash programming step.</p>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> Init (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> clk, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> fnc) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Zero Wait State</span></div>
+<div class="line"> FLASH-&gt;ACR = 0x00000000;</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Unlock Flash</span></div>
+<div class="line"> FLASH-&gt;KEYR = FLASH_KEY1;</div>
+<div class="line"> FLASH-&gt;KEYR = FLASH_KEY2;</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Test if IWDG is running (IWDG in HW mode)</span></div>
+<div class="line"> <span class="keywordflow">if</span> ((FLASH-&gt;OBR &amp; 0x04) == 0x00) {</div>
+<div class="line"> <span class="comment">// Set IWDG time out to ~32.768 second</span></div>
+<div class="line"> IWDG-&gt;KR = 0x5555; <span class="comment">// Enable write access to IWDG_PR and IWDG_RLR</span></div>
+<div class="line"> IWDG-&gt;PR = 0x06; <span class="comment">// Set prescaler to 256</span></div>
+<div class="line"> IWDG-&gt;RLR = 4095; <span class="comment">// Set reload value to 4095</span></div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (0);</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="ProgramPage"></a>
+ProgramPage</h1>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> ProgramPage (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sz, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf);</div>
+</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">adr</td><td>Page start address </td></tr>
+ <tr><td class="paramname">sz</td><td>Page size </td></tr>
+ <tr><td class="paramname">buf</td><td>Data to be written </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status information:<ul>
+<li>0 on success.</li>
+<li>1 on failure.</li>
+</ul>
+</dd></dl>
+<p>The function <b>ProgramPage</b> is used to write code into the Flash memory. It is invoked whenever an attempt is made to download a program to Flash.</p>
+<p>The argument <em>adr</em> specifies the start address of the page that is to be programmed.</p>
+<p>The argument <em>sz</em> specifies the size of the page that is to be programmed.</p>
+<p>The argument <em>buf</em> points to the buffer containing the data to be programmed.</p>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> ProgramPage (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sz, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf) {</div>
+<div class="line"> </div>
+<div class="line"> sz = (sz + 1) &amp; ~1; <span class="comment">// Adjust size for Half Words</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">while</span> (sz) {</div>
+<div class="line"> </div>
+<div class="line"> FLASH-&gt;CR |= FLASH_PG; <span class="comment">// Programming Enabled</span></div>
+<div class="line"> </div>
+<div class="line"> M16(adr) = *((<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> *)buf); <span class="comment">// Program Half Word</span></div>
+<div class="line"> <span class="keywordflow">while</span> (FLASH-&gt;SR &amp; FLASH_BSY);</div>
+<div class="line"> </div>
+<div class="line"> FLASH-&gt;CR &amp;= ~FLASH_PG; <span class="comment">// Programming Disabled</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Check for Errors</span></div>
+<div class="line"> <span class="keywordflow">if</span> (FLASH-&gt;SR &amp; (FLASH_PGERR | FLASH_WRPRTERR)) {</div>
+<div class="line"> FLASH-&gt;SR |= FLASH_PGERR | FLASH_WRPRTERR;</div>
+<div class="line"> <span class="keywordflow">return</span> (1); <span class="comment">// Failed</span></div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Go to next Half Word</span></div>
+<div class="line"> adr += 2;</div>
+<div class="line"> buf += 2;</div>
+<div class="line"> sz -= 2;</div>
+<div class="line"> </div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (0); <span class="comment">// Done</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="UnInit"></a>
+UnInit</h1>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> UnInit (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> fnc);</div>
+</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fnc</td><td>Function code </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status information:<ul>
+<li>0 on success.</li>
+<li>1 on failure.</li>
+</ul>
+</dd></dl>
+<p>The function <b>UnInit</b> de-initializes the microcontroller and is invoked at the end of an erasing, programming, or verifying step.</p>
+<p>The argument <em>fnc</em> is a number:</p>
+<ul>
+<li>1 stands for Erase.</li>
+<li>2 stands for Program.</li>
+<li>3 stands for Verify.</li>
+</ul>
+<p>Thus, different de-initialization sections can be implemented for each individual Flash programming step.</p>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> UnInit (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> fnc) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Lock Flash</span></div>
+<div class="line"> FLASH-&gt;CR |= FLASH_LOCK;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (0);</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="Verify"></a>
+Verify</h1>
+<div class="fragment"><div class="line"><span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> Verify (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sz, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf);</div>
+</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">adr</td><td>Start address </td></tr>
+ <tr><td class="paramname">sz</td><td>Size in bytes </td></tr>
+ <tr><td class="paramname">buf</td><td>Data to be compared </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status information:<ul>
+<li>the sum of (adr+sz) - on success.</li>
+<li>any other number - on failure, and represents the failing address.</li>
+</ul>
+</dd></dl>
+<p>The function <b>Verify</b> compares the content of the Flash memory with the program code <em>*buf</em>.</p>
+<p>The argument <em>adr</em> specifies the start address for the verification.</p>
+<p>The argument <em>sz</em> specifies the size of the verification.</p>
+<p>The argument <em>buf</em> points to the buffer containing the data to be verified.</p>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> Verify (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> adr, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sz, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf) {</div>
+<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> i, adr_dest, in_page_ofs;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (adr &lt; block_size) { <span class="comment">// Verifying 2-nd level bootloader data</span></div>
+<div class="line"> adr_dest = adr + page_usr_size; <span class="comment">// skip page 0 of block 0</span></div>
+<div class="line"> } <span class="keywordflow">else</span> { <span class="comment">// Verifying program data</span></div>
+<div class="line"> FindBlock(adr, 0);</div>
+<div class="line"> adr_dest = nand_block_offset + (adr &amp; (block_size-1));</div>
+<div class="line"> }</div>
+<div class="line"> in_page_ofs = adr_dest &amp; (page_usr_size-1);</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (ReadPage_HW(adr_dest, page_usr_size, data_buf)) <span class="keywordflow">return</span> (1);</div>
+<div class="line"> <span class="keywordflow">for</span> (i=0; i&lt;sz; i++)</div>
+<div class="line"> <span class="keywordflow">if</span> (buf[i] != data_buf[i+in_page_ofs])</div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (adr+i);</div>
+<div class="line">}</div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_flash_algorithm.html">Flash Programming Algorithms</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_c_p__editors.html b/CMSIS/Documentation/Pack/html/_c_p__editors.html
new file mode 100644
index 0000000..84b6e94
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_c_p__editors.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>XML Editors</title>
+<title>CMSIS-Pack: XML Editors</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_c_p__editors.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">XML Editors </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Some text editors are capable of verifying XML code against a schema file. This is helpful to identify syntactical or structural problems in a PDSC or SVD file early in the development process. Useful editors are:</p>
+<ul>
+<li><a href="http://notepad-plus-plus.org/" target="_blank">Notepad++</a></li>
+<li><a href="http://www.visualstudio.com/" target="_blank">Visual Studio (Express)</a></li>
+</ul>
+<p>Usually, the XML file that is to be validated and its corresponding schema file need to reside in the same directory. The CMSIS-Pack schema file <b>Pack.xsd</b> and the CMSIS-SVD schema file <b>CMSIS-SVD.xsd</b> are available in the directory <b>.\CMSIS\Utilities</b> of the <b>ARM::CMSIS</b> Pack. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_create_pack_util.html">Utilities for Creating Packs</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_c_p__packs.html b/CMSIS/Documentation/Pack/html/_c_p__packs.html
new file mode 100644
index 0000000..a356e4b
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_c_p__packs.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Create Software Packs</title>
+<title>CMSIS-Pack: Create Software Packs</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_c_p__packs.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Create Software Packs </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The <b>CMSIS-Pack</b> format is used to deliver a Software Pack and is aimed to be scalable for future requirements. It provides a management process and supports a tool independent distribution for:</p>
+<ul>
+<li><a class="el" href="_create_pack__d_f_p.html">Device Support</a> for tool chains and software applications to target a specific device:<ul>
+<li>Information about the processor and it's features.</li>
+<li>C and assembly files for the device startup and access to the memory mapped peripheral registers.</li>
+<li>Parameters, technical information, and data sheets about the device family and the specific devices.</li>
+<li>Device description and available peripherals.</li>
+<li>Memory layout of internal and external RAM and ROM address ranges.</li>
+<li><a class="el" href="_flash_algorithm.html">Flash algorithms</a> for programming the device.</li>
+<li>Debug and trace configurations as well as System View Description files for device specific display of the memory mapped peripheral registers.</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><a class="el" href="_create_pack_board.html">Board Support</a> for rapid development in the prototyping stage:<ul>
+<li>Information about the development board and it's features.</li>
+<li>Parameters, technical information, and data sheets about the board, the mounted microcontroller and peripheral devices.</li>
+<li>Drivers for on-board peripheral devices</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><a class="el" href="_c_p__s_w_components.html">Software Components</a> simplify the re-use of software and the management of 3rd party software. They contain:<ul>
+<li>A collection of source modules, header and <a class="el" href="_config_wizard.html">configuration files</a> as well as libraries.</li>
+<li>Documentation of the software, including features and APIs.</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><a class="el" href="_c_p__s_w_components.html#CP_API">Application Programming Interfaces</a> specify one or more APIs for <a class="el" href="_c_p__s_w_components.html#CP_Components">software components</a> that are part of another <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+</ul>
+<ul>
+<li><a class="el" href="_c_p__s_w_components.html#CP_Examples">Example Projects</a> can be used as a reference and starting point for similar applications. They contain:<ul>
+<li>Fully defined application projects that work out of the box in the specified build and debug environments.</li>
+<li>Documentation about the purpose of the example, how to build, configure and execute the application.</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><a class="el" href="_c_p__s_w_components.html#CP_CodeTemplates">User Code Templates</a> help to understand the basic concepts of a software component better and to give the user a good starting point for implementing his application.</li>
+</ul>
+<h1><a class="anchor" id="CP_PackSteps"></a>
+Steps to Create a Pack</h1>
+<p>The following image shows the basic steps that are required to create a Software Pack:</p>
+<div class="image">
+<img src="PackCreateSteps.png" alt="PackCreateSteps.png"/>
+</div>
+<ol type="1">
+<li><b>Produce input:</b> Create the files that will be delivered with the Pack.</li>
+<li><b>Organize files:</b> Use directories to separate the content of the Pack.</li>
+<li><b>Create PDSC file:</b> The XML based PDSC file can be created using any text editor. Editors that can validate XML code against a schema file help to find bugs early in the Pack development stage.</li>
+<li><b>Generate PACK:</b> Any compression tool supporting the ZIP format can be used to create a PACK file. <a class="el" href="_pack_chk.html">PackChk.exe</a> is helpful for the validation of the contents of a Pack.</li>
+</ol>
+<p>The following pages will show how to create a Software Pack from scratch. The page <a class="el" href="_c_p__s_w_components.html">Pack with Software Components</a> will start with a simple Pack containing only the PDSC file and a single software component and will then explain further elements of a Pack in more detail. The page <a class="el" href="_create_pack__d_f_p.html">Pack with Device Support</a> adds information on the additional requirements that a DFP has, while <a class="el" href="_create_pack_board.html">Pack with Board Support</a> will elaborate on the content specific to a BSP.</p>
+<h1><a class="anchor" id="PackFilenames"></a>
+Pack Conventions</h1>
+<p>All files that belong to a <a class="el" href="_c_p__s_w_components.html">Software Pack</a> are compressed into a *.PACK file using a standard <a href="http://en.wikipedia.org/wiki/Zip_%28file_format%29" target="_blank">ZIP file format</a>. The content of each <a class="el" href="_c_p__s_w_components.html">Software Pack</a> is described in the Pack Description (*.PDSC) file that is part of each <b>Pack</b>. Refer to <a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a> for more information.</p>
+<p>A <a class="el" href="_c_p__s_w_components.html">Software Pack</a> must have a unique filename following this naming convention: <b>&lt;vendor&gt;.&lt;name&gt;.&lt;version&gt;.pack</b>.</p>
+<p><b>Where:</b> </p>
+<ul>
+<li><b>&lt;vendor&gt;</b> is name of the supplier or vendor of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><b>&lt;name&gt;</b> is name of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. It is the vendor's responsibility to ensure unique package names.</li>
+<li><b>&lt;version&gt;</b>specifies the version number of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><b>.pack</b> is the file extension identifying a <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>The XML elements <b>&lt;vendor&gt;</b>, <b>&lt;name&gt;</b>, and <b>&lt;version&gt;</b> are declared in the <a class="el" href="_pack_format.html#Filenames">PDSC</a> file.</li>
+<li><b>&lt;vendor&gt;</b> and <b>&lt;name&gt;</b> <em>must</em> <em>not</em> contain spaces.</li>
+</ul>
+</dd></dl>
+<p>The PDSC file needs to reside at the top-level of the Pack file, using it as the root directory for all file references.</p>
+<h1><a class="anchor" id="PackTutorials"></a>
+Pack Tutorial</h1>
+<p>The <b>ARM::CMSIS</b> Pack contains tutorials that are explained on the following pages. In the <b>\CMSIS\Pack\Tutorials</b> directory the following three ZIP files are available: </p>
+<table class="doxtable">
+<tr>
+<th>ZIP File </th><th>Documentation</th></tr>
+<tr>
+<td>Pack_with_Software_Components.zip </td><td><a class="el" href="_c_p__s_w_components.html">Pack with Software Components</a> </td></tr>
+<tr>
+<td>Pack_with_Device_Support.zip </td><td><a class="el" href="_create_pack__d_f_p.html">Pack with Device Support</a> </td></tr>
+<tr>
+<td>Pack_with_Board_Support.zip </td><td><a class="el" href="_create_pack_board.html">Pack with Board Support</a> </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:42 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_c_p__s_w_components.html b/CMSIS/Documentation/Pack/html/_c_p__s_w_components.html
new file mode 100644
index 0000000..ab08657
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_c_p__s_w_components.html
@@ -0,0 +1,545 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Pack with Software Components</title>
+<title>CMSIS-Pack: Pack with Software Components</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_c_p__s_w_components.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Pack with Software Components </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>This section is a tutorial that explains how to create a Software Pack. Initially, a Software Pack with a simple PDSC file is created that contains only one software component. This Software Pack is then extended to show the various features for describing software components.</p>
+<p><b>Preparations</b></p>
+<ol type="1">
+<li>Create a working directory on you PC, for example <b>C:\temp\working</b>.</li>
+<li>Go to the directory <b>\CMSIS\Pack\Tutorials</b> available in the <b>ARM::CMSIS</b> Pack installation. Please consult your development tool's documentation for more information on the Pack installation directory structure. In a standard µVision installation, you will find it below <b>C:\Keil_v5\ARM\Pack\ARM\CMSIS\<em>version</em></b>.</li>
+<li>Open the file <b>Pack_with_Software_Components.zip</b>.</li>
+<li>Copy the <em>content</em> of the ZIP file's <b>01_Create_PDSC</b> directory into your working directory.</li>
+<li>Make sure that files/directories are not write protected (remove read-only flag).</li>
+<li>Copy from the directory <b>\CMSIS\Utilities</b> available in the <b>ARM::CMSIS</b> Pack installation the following files into your working directory:<ul>
+<li>PackChk.exe</li>
+<li>PACK.xsd</li>
+</ul>
+</li>
+</ol>
+<h1><a class="anchor" id="CP_CreatePDSC"></a>
+Create PDSC File</h1>
+<ol>
+<li>
+<p class="startli">Open the file <b>vendor.pack_name.pdsc</b> in an editor and change it like this: </p>
+<div class="fragment"><div class="line">&lt;?xml version=<span class="stringliteral">&quot;1.0&quot;</span> encoding=<span class="stringliteral">&quot;UTF-8&quot;</span>?&gt;</div>
+<div class="line">&lt;<span class="keyword">package </span>schemaVersion=&quot;1.4&quot; xmlns:xs=&quot;http:<span class="comment">//www.w3.org/2001/XMLSchema-instance&quot; xs:noNamespaceSchemaLocation=&quot;PACK.xsd&quot;&gt;</span></div>
+<div class="line"> &lt;vendor&gt;MyVendor&lt;/vendor&gt;</div>
+<div class="line"> &lt;name&gt;MyPack&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;Internal Software Pack&lt;/description&gt;</div>
+<div class="line"> &lt;url&gt;&lt;/url&gt;</div>
+<div class="line"> &lt;supportContact&gt;&lt;/supportContact&gt;</div>
+<div class="line"> &lt;license&gt;Docs/license.txt&lt;/license&gt;</div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>All code examples in this and the following sections can be found in the <code>snippets.xml</code> file in the <b>01_Create_PDSC</b> directory.</dd></dl>
+<p>A PDSC file starts with information on the XML version and the encoding. The <a class="el" href="pdsc_package_pg.html">&lt;package&gt;</a> element declares the version of the schema file and the XSD file that is used to validate the PDSC file (hence the copy of the PACK.xsd file into the working directory):</p>
+<ul>
+<li><a class="el" href="pdsc_package_pg.html#element_package">&lt;name&gt;</a> specifies the name of the Pack and <em>must</em> <em>not</em> contain spaces. <b>Example:</b> <code>MyPack</code> and <code>My_Pack</code> are ok, <code>My</code> <code>Pack</code> is not ok.</li>
+<li><a class="el" href="pdsc_package_pg.html#element_package">&lt;description&gt;</a> describes the Pack in a few words</li>
+<li><a class="el" href="pdsc_package_pg.html#element_package">&lt;vendor&gt;</a> states the name of the Pack's vendor and <em>must</em> <em>not</em> contain spaces. <b>Example:</b> <code>ACMECorp</code> and <code>ACME_Corp</code> are OK, <code>ACME</code> <code>Corporation</code> is not OK.</li>
+<li><a class="el" href="pdsc_package_pg.html#element_package">&lt;url&gt;</a> defines the download URL of the Pack (may be left empty) <dl class="section note"><dt>Note</dt><dd><ul>
+<li>In this tutorial, the URL is not specified. This means that the Pack will be marked in Pack Installer as <b>Offline</b> and needs to be updated manually. To resolve this issue, it is possible to specify the file "download" location using a <a href="https://en.wikipedia.org/wiki/File_URI_scheme" target="_blank">file URI</a>. For Windows users, this would look like the following: <pre class="fragment"> &lt;url&gt;file:///c:/temp/working&lt;/url&gt;</pre></li>
+<li>It is important to understand how the &lt;url&gt; element works. If you specify a URL, for example <a href="http://www.keil.com/pack/" target="_blank">http://www.keil.com/pack</a>, then you have to make the PDSC file and the corresponding PACK file(s) available for download at that exact location. The naming of the files follow the standard naming rules. For example, the ARM::CMSIS PDSC and Pack files are available here:<br/>
+ <a href="http://www.keil.com/pack/ARM.CMSIS.pdsc" target="_blank">http://www.keil.com/pack/ARM.CMSIS.pdsc</a> and <br/>
+ <a href="http://www.keil.com/pack/ARM.CMSIS.4.3.0.pack" target="_blank">http://www.keil.com/pack/ARM.CMSIS.4.3.0.pack</a> and <br/>
+ <a href="http://www.keil.com/pack/ARM.CMSIS.4.2.0.pack" target="_blank">http://www.keil.com/pack/ARM.CMSIS.4.2.0.pack</a> and ... <br/>
+ At the specified location, you need to have one (unversioned) PDSC file and can have multiple versioned PACK files, but at least the latest one.</li>
+</ul>
+</dd></dl>
+</li>
+<li><a class="el" href="pdsc_package_pg.html#element_package">&lt;supportContact&gt;</a> may provide an email address or web page URL for Pack specific questions/problems</li>
+<li><a class="el" href="pdsc_package_pg.html#element_package">&lt;license&gt;</a> links to an optional license file that will be shown during the installation of the Pack. The installation in development tools will abort if the license agreement is not accepted. </li>
+</ul>
+</li>
+<li>
+<p class="startli">Add release information and keywords: </p>
+<div class="fragment"><div class="line">&lt;releases&gt;</div>
+<div class="line"> &lt;release version=<span class="stringliteral">&quot;1.0.0&quot;</span> date=<span class="stringliteral">&quot;2015-03-09&quot;</span>&gt;</div>
+<div class="line"> Initial version</div>
+<div class="line"> &lt;/release&gt;</div>
+<div class="line">&lt;/releases&gt;</div>
+<div class="line"> </div>
+<div class="line">&lt;keywords&gt;</div>
+<div class="line"> &lt;keyword&gt;MyVendor&lt;/keyword&gt;</div>
+<div class="line"> &lt;keyword&gt;My Software Component&lt;/keyword&gt;</div>
+<div class="line">&lt;/keywords&gt;</div>
+</div><!-- fragment --><p> The information from the <a class="el" href="element_releases.html">&lt;releases&gt;</a> section will be used for:</p>
+<ul>
+<li>Determining the Pack version (required for the file name of the Pack file)</li>
+<li>Display of release information</li>
+</ul>
+<p class="endli"><a class="el" href="element_keywords.html">&lt;keywords&gt;</a> may be used for better visibility for search engines. </p>
+</li>
+<li>
+Add a <a class="el" href="pdsc_components_pg.html">&lt;components&gt;</a> section with the following: <div class="fragment"><div class="line">&lt;components&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;MyClass&quot;</span> Cgroup=<span class="stringliteral">&quot;MyGroup&quot;</span> Csub=<span class="stringliteral">&quot;MySubGroup&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.0&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;MySWComp&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Docs/MySWComp.htm&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/header_mylib.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/config/config_mylib.h&quot;</span> attr=<span class="stringliteral">&quot;config&quot;</span> version=<span class="stringliteral">&quot;1.0.0&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/mylib_one.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/mylib_two.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line">&lt;/components&gt;</div>
+</div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>If you are using a header file with the attribute <span class="XML-Token">config</span>, save it in a separate directory from all other header files as in this example. As development tools usually add header files using an include path, saving the configuration file with other header files will prohibit its use as a configuration file.</dd></dl>
+More information on <b>&lt;components&gt;</b> will be given in section <a class="el" href="_c_p__s_w_components.html#CP_Components">Software Components</a>. Save the file and close your editor. In the next section, the generation of a Pack will be explained in detail. </li>
+</ol>
+<h1><a class="anchor" id="CP_GeneratePack"></a>
+Generate a Pack</h1>
+<ol>
+<li>
+Rename the file <b>vendor.pack_name.pdsc</b> to <b>MyVendor.MyPack.pdsc</b>. </li>
+<li>
+Open the batch file <b>gen_pack.bat</b> from your working directory in a text editor. Check if the following line of code reflects your setup: <div class="fragment"><div class="line"><span class="stringliteral">&quot;C:\Program Files\7-Zip\7z.exe&quot;</span> a %PackName% Files -tzip</div>
+</div><!-- fragment --> If you do not have <a href="http://www.7-zip.org/" target="_blank">7-Zip</a> installed on your PC, you can specify any other ZIP tool that supports command line calls. In that case you have to adapt the command line arguments accordingly. </li>
+<li>
+Having saved <b>gen_pack.bat</b>, you can execute it either by double-clicking or by using the command line which is recommended to see the output of PackChk.exe (open a command window at the location of the files and enter <code>gen_pack.bat</code>). The batch file will:<ul>
+<li>Check the availability of the PDSC file</li>
+<li>Copy the PDSC file to the <b>Files</b> directory</li>
+<li>Run PackChk.exe on the <b>Files</b> directory<br/>
+</li>
+<li>Create a Pack file in the working directory. It will be called <b>MyVendor.MyPack.1.0.0.pack</b>. </li>
+</ul>
+</li>
+<li>
+<p class="startli">Install the Pack by double-clicking it. Depending on the development software that is used, the display of the Pack contents may differ:</p>
+<div class="image">
+<img src="simplepack_rte.png" alt="simplepack_rte.png"/>
+<div class="caption">
+MyClass:MyGroup:MySubGroup shown in development tool</div></div>
+ </li>
+</ol>
+<h1><a class="anchor" id="CP_Components"></a>
+Software Components</h1>
+<p>A component lists the files that belong to it and that are relevant for a project. The component itself or each individual file may refer to a <a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a> that must resolve to true; if it is false, the component or file is not applicable in the given context.</p>
+<p>Each software components must have the following attributes that are used to identify the component:</p>
+<ul>
+<li>Component Class (<code>Cclass</code>): examples are <b>CMSIS</b>, <b>Device</b>, <b>File</b> <b>System</b> </li>
+<li>Component Group (<code>Cgroup</code>): examples are <b>CMSIS:RTOS</b>, <b>Device:Startup</b>, <b>File</b> <b>System:CORE</b> </li>
+<li>Component Version (<code>Cversion</code>): the version number of the software component.</li>
+</ul>
+<p>Optionally, a software component may have additional attributes:</p>
+<ul>
+<li>Component Sub-Group (<code>Csub</code>): examples are <b>CMSIS:RTOS:MyRTOS</b>, <b>Device:Driver</b> <b>USBD:Full-speed</b> </li>
+<li>Component Variant (<code>Cvariant</code>): a variant of the software component.</li>
+<li>Component Vendor (<code>Cvendor</code>): the supplier of the software component.</li>
+</ul>
+<p>The <code>Cclass</code>, <code>Cgroup</code>, <code>Csub</code>, <code>Cvariant</code> and <code>Cversion</code> attributes are used together with the vendor specified by the PACK to identify a component. A component vendor must ensure that the combination <code>Cclass</code>, <code>Cgroup</code>, <code>Csub</code> and <code>Cversion</code> is unique and not used by multiple components within the same Pack.</p>
+<p>The following <code>Cclass</code> names have a special meaning:</p>
+<ul>
+<li><b>Board</b> <b>Support</b> usually contains board specific drivers for external peripheral devices.</li>
+<li><b>CMSIS</b> contains general CMSIS components like the CORE, DSP extensions, RTOSes (e.g. Keil RTX)</li>
+<li><b>Device</b> contains startup files for the target device</li>
+<li><b>CMSIS</b> <b>Driver</b> contain CMSIS-Driver conform peripheral drivers for the target device. These will be listed below the respective <code>Cgroup</code> API entries (for example <b>Ethernet (API)</b>)</li>
+<li><b>File</b> <b>System</b>, <b>Graphics</b>, <b>Network</b>, and <b>USB</b> contain middleware to support these components</li>
+</ul>
+<p>Other <code>Cclass</code> names can be freely assigned to software components.</p>
+<p>In case multiple interdependent components (belonging to the same <code>Cclass</code>) form part of a solution, these can be grouped in a so called <a class="el" href="_c_p__s_w_components.html#CP_Bundles">bundle</a>.</p>
+<p>Use the following syntax to reference to software components and APIs:<br/>
+ <b>&lt;Vendor&gt;::&lt;Cclass&gt;:&lt;Cgroup&gt;:&lt;Csub&gt;</b></p>
+<p><b>Examples:</b> </p>
+<ul>
+<li><b>::CMSIS:RTOS (API)</b> - the CMSIS-RTOS API.</li>
+<li><b>ARM::CMSIS:DSP</b> - the CMSIS-DSP Library.</li>
+<li><b>::File System:Drive:NOR</b> - the NOR Flash Drive of a file system.</li>
+</ul>
+<p>Here is an example for the display of software components in a development tool:</p>
+<div class="image">
+<img src="ComponentDisplay.png" alt="ComponentDisplay.png"/>
+<div class="caption">
+Display of a software component in development tools</div></div>
+ <h2>Software Component Files</h2>
+<p>Each software component consists of a certain number of files. Each file has at least the following attributes:</p>
+<ul>
+<li><code>name:</code> File path, file name, and file extension in the format path/name.extension. The file path is relative to the root directory of the PACK.</li>
+<li><code>category:</code> Defines the purpose of the file. Select the predefined value as listed in the table <a class="el" href="pdsc_components_pg.html#FileCategoryEnum">File Categories</a>.</li>
+</ul>
+<p>Optionally, every file may have the following attributes:</p>
+<ul>
+<li><code>attr:</code> Defines the special use and handling of a file. Select a predefined value as defined in the table <a class="el" href="pdsc_components_pg.html#FileAttributeEnum">File Attributes</a>.</li>
+<li><code>condition:</code> Enter the identifier (attribute <em><b>id</b></em>) of a <a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a>. The element is used if the condition resolves to <span class="XML-Token">true</span>.</li>
+<li><code>select:</code> Brief description and purpose of the file. The <b><em>select</em></b> attribute is <b>required</b> when <b><em>attr</em></b> is set to <span class="XML-Token">template</span> or <span class="XML-Token">interface</span>. When multiple template files of a component have the same <b><em>select</em></b> string, they are treated as a single selectable template. This way, multiple template or interface files can be bundled.</li>
+<li><code>src:</code> Path information. The path is specified relative to the Pack Description File (PDSC).</li>
+<li><code>version:</code> File-specific version information. This is used particularly for files copied into the project workspace. Before a file gets copied, a version check avoids unnecessary copy actions. If a file does not have a version, then the component version is used.</li>
+</ul>
+<h1><a class="anchor" id="CP_Conditions"></a>
+Conditions</h1>
+<p>A condition describes dependencies on:</p>
+<ul>
+<li>a specific device</li>
+<li>a certain processor</li>
+<li>tool attributes</li>
+<li>the presence of other components</li>
+</ul>
+<p>Conditions are used to define <b>AND/OR</b> rules that make components conditional and therefore only available under certain circumstances, for example for specific devices or processors. Conditions are also used to express dependencies between software components.</p>
+<p>Each condition has an <b>id</b> that is unique within the scope of a the PDSC file. An id can be referenced in the <code>condition</code> attribute of components, APIs, examples, files and other conditions. All attributes set in a <b>accept</b>, <b>require</b>, or <b>deny</b> element must resolve to true for the element to become true. A condition becomes true when:</p>
+<ul>
+<li>At least one <b>accept</b> element is true, <em>AND</em> </li>
+<li>all <b>require</b> elements are true, <em>AND</em> </li>
+<li>no <b>deny</b> element is true.</li>
+</ul>
+<p>If a condition resolves to false during processing, the respective element will be ignored.</p>
+<p>Let's modify the example from the <a class="el" href="_c_p__s_w_components.html#CP_CreatePDSC">Create PDSC File</a> section by adding the requirement for a CMSIS-RTOS and libraries that are specific to a certain Cortex-M class core:</p>
+<ul>
+<li><code>mylib_cm0.lib</code> for use with a Cortex-M0 and Cortex-M0+ processor</li>
+<li><code>mylib_cm3.lib</code> for use with a Cortex-M3 processor</li>
+<li><code>mylib_cm4.lib</code> for use with a Cortex-M4 or Cortex-M7 processor</li>
+</ul>
+<p>Copy the <em>content</em> of the <b>02_Conditions</b> directory of the <b>Pack_with_Software_Components.zip</b> file to the <b>Files</b> directory in your working environment: </p>
+<ol>
+<li>
+Add a <a class="el" href="pdsc_conditions_pg.html">&lt;conditions&gt;</a> section with the following: <div class="fragment"><div class="line">&lt;conditions&gt; </div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;ARM Compiler&quot;</span>&gt;</div>
+<div class="line"> &lt;require Tcompiler=<span class="stringliteral">&quot;ARMCC&quot;</span>/&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CM0&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Cortex-M0 based device&lt;/description&gt;</div>
+<div class="line"> &lt;require condition=<span class="stringliteral">&quot;ARM Compiler&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M0&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M0+&quot;</span>/&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CM3&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Cortex-M3 based device&lt;/description&gt;</div>
+<div class="line"> &lt;require condition=<span class="stringliteral">&quot;ARM Compiler&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M3&quot;</span>/&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CM4_CM7&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Cortex-M4 based device&lt;/description&gt;</div>
+<div class="line"> &lt;require condition=<span class="stringliteral">&quot;ARM Compiler&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M4&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M7&quot;</span>/&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CMSIS Core with RTOS&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;CMSIS Core with RTOS <span class="keywordflow">for</span> Cortex-M processor&lt;/description&gt;</div>
+<div class="line"> &lt;accept condition=<span class="stringliteral">&quot;CM0&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept condition=<span class="stringliteral">&quot;CM3&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept condition=<span class="stringliteral">&quot;CM4_CM7&quot;</span>/&gt;</div>
+<div class="line"> &lt;require Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;CORE&quot;</span>/&gt;</div>
+<div class="line"> &lt;require Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;RTOS&quot;</span>/&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line">&lt;/conditions&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Change the first line of the already existing <b>component</b> by adding the condition and increasing the version number of the component: <div class="fragment"><div class="line">&lt;component Cclass=<span class="stringliteral">&quot;MyClass&quot;</span> Cgroup=<span class="stringliteral">&quot;MyGroup&quot;</span> Csub=<span class="stringliteral">&quot;MySubGroup&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.1&quot;</span> condition=<span class="stringliteral">&quot;CMSIS Core with RTOS&quot;</span>&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add the following code to the already existing <b>component</b>: <div class="fragment"><div class="line">&lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM0&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Lib/mylib_cm0.lib&quot;</span>/&gt;</div>
+<div class="line">&lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM3&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Lib/mylib_cm3.lib&quot;</span>/&gt;</div>
+<div class="line">&lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4_CM7&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Lib/mylib_cm4.lib&quot;</span>/&gt;</div>
+</div><!-- fragment --> Note that library files should always have a condition with regards to a specific C/C++ compiler. To accomplish this, each processor condition has the additional requirement for the ARM C/C++ compiler. </li>
+<li>
+Add a new version number to the header of the PDSC file so that a Pack with a new version number will be created: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.1&quot;</span>&gt;</div>
+<div class="line"> Conditions added</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+<p class="startli">Finally, save the PDSC file and regenerate the Pack file using the <b>gen_pack.bat</b> script. See <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">Generate a Pack</a> for further details. Afterwards, install the Pack in your development tool and observe the differences to version 1.0.0.</p>
+<div class="image">
+<img src="ConditionsDisplay.png" alt="ConditionsDisplay.png"/>
+<div class="caption">
+Display of conditionally added files for a Cortex-M3 device in development tools</div></div>
+ </li>
+</ol>
+<dl class="section note"><dt>Note</dt><dd>PackChk.exe will will now display an <b>M362</b> warning: <pre class="fragment">*** WARNING M362: (Line 80)
+ Not all Component Dependencies for 'Cclass=MyClass, Cgroup=MyGroup, Csub=MySubGroup, Cversion=1.0.1, Capiversion=' can be resolved.
+M502: RTE Model reports: #error 511: MyVendor::MyClass:MyGroup:MySubGroup : Additional software components required
+M504: RTE Model reports: MISSING: -- require CMSIS:CORE
+M504: RTE Model reports: MISSING: -- require CMSIS:RTOS
+</pre> This is because it cannot resolve and check dependencies on components that are not part of this Pack (in this case the CMSIS components). You can either safely ignore this warning or add the ARM:CMSIS PDSC to the checking process, so that the dependencies can be correctly examined.</dd></dl>
+<h1><a class="anchor" id="CP_Variants"></a>
+Variants</h1>
+<p>Software components may have <b>variants</b>, for example:</p>
+<ul>
+<li>Debug version with or release version without diagnostic output</li>
+<li>Long/short file names</li>
+<li>Fast/slow modes</li>
+</ul>
+<p>Variants are mutually exclusive (only one variant can be chosen at a time). <code>Cvariant</code> is an optional part of the component ID. The variant specifier is a brief string (e.g. <code>release</code>, <code>debug</code>).</p>
+<dl class="section note"><dt>Note</dt><dd>Version management relies on variants to <b>remain unchanged between versions</b>.</dd></dl>
+<p>The following example introduces a new component to the Pack in two variants: <code>debug</code> and <code>release</code>. Copy the <em>content</em> of the <b>03_Variants</b> directory of the <b>Pack_with_Software_Components.zip</b> file to the <b>Files</b> directory in your working environment. </p>
+<ol>
+<li>
+Add the following lines to the <b>components</b> section in your PDSC file: <div class="fragment"><div class="line">&lt;component Cclass=<span class="stringliteral">&quot;MyVariant&quot;</span> Cgroup=<span class="stringliteral">&quot;MyGroup&quot;</span> Cvariant=<span class="stringliteral">&quot;Release&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.2&quot;</span> condition=<span class="stringliteral">&quot;CMSIS Core with RTOS&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Release version of MyVariant&lt;/description&gt;</div>
+<div class="line"> &lt;RTE_Components_h&gt;</div>
+<div class="line"> &lt;!-- the following content goes into file <span class="stringliteral">&#39;RTE_Components.h&#39;</span> --&gt;</div>
+<div class="line"> #define RTE_MyVariant_Release <span class="comment">/* MyVariant Release Version */</span></div>
+<div class="line"> &lt;/RTE_Components_h&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Docs/MySWComp.htm&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/header_mylib.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/config/config_mylib.h&quot;</span> attr=<span class="stringliteral">&quot;config&quot;</span> version=<span class="stringliteral">&quot;1.0.0&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/mylib_one.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/mylib_two.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM0&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Lib/mylib_cm0.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM3&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Lib/mylib_cm3.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4_CM7&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Lib/mylib_cm4.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line">&lt;/component&gt;</div>
+<div class="line">&lt;component Cclass=<span class="stringliteral">&quot;MyVariant&quot;</span> Cgroup=<span class="stringliteral">&quot;MyGroup&quot;</span> Cvariant=<span class="stringliteral">&quot;Debug&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.2&quot;</span> condition=<span class="stringliteral">&quot;CMSIS Core with RTOS&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Debug version of MyVariant&lt;/description&gt;</div>
+<div class="line"> &lt;RTE_Components_h&gt;</div>
+<div class="line"> &lt;!-- the following content goes into file <span class="stringliteral">&#39;RTE_Components.h&#39;</span> --&gt;</div>
+<div class="line"> #define RTE_MyVariant_Debug <span class="comment">/* MyVariant Debug Version */</span></div>
+<div class="line"> &lt;/RTE_Components_h&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Docs/MySWComp.htm&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/header_mylib.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/config/debug_config_mylib.h&quot;</span> attr=<span class="stringliteral">&quot;config&quot;</span> version=<span class="stringliteral">&quot;1.0.0&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/debug_mylib_one.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/debug_mylib_two.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM0&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Lib/debug_mylib_cm0.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM3&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Lib/debug_mylib_cm3.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4_CM7&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Lib/debug_mylib_cm4.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line">&lt;/component&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new revision to reflect the changes in a newly generated Pack: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.2&quot;</span>&gt;</div>
+<div class="line"> Variants introduced</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+<p class="startli">Finally, save the PDSC file and regenerate the Pack file using the <b>gen_pack.bat</b> script. See <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">Generate a Pack</a> for further details. Afterwards, install the Pack in your development tool and observe the differences to version 1.0.1.</p>
+<div class="image">
+<img src="VariantDisplay.png" alt="VariantDisplay.png"/>
+<div class="caption">
+Display of MyVariant in development tools</div></div>
+ </li>
+</ol>
+<h2><a class="anchor" id="CP_RTEComponents_h"></a>
+RTE_Components.h</h2>
+<p>Sometimes, software components need to know of other components. Depending on the availability or configuration of another component, certain settings may be required. A distinct header file is available to make components aware of each other: <b>RTE_Components.h</b>. To add a line of C code to this header file, simply add this to your component:</p>
+<pre class="fragment">&lt;RTE_Components_h&gt;
+ #define RTE_MyVariant_Debug /* MyVariant Debug Version */
+&lt;/RTE_Components_h&gt;
+</pre><p> The <code>#define</code> can be checked by other components in a project.</p>
+<dl class="section note"><dt>Note</dt><dd>The RTE_components.h file needs to be included somewhere in your source files.</dd></dl>
+<h1><a class="anchor" id="CP_Bundles"></a>
+Bundles</h1>
+<p>A bundle is basically a variant on the <code>Cclass</code> level. It specifies the attributes <code>Cclass</code>, <code>Cversion</code> and optionally <code>Cgroup</code> and <code>Cvendor</code> for a collection of interdependent components. Components within a bundle inherit the attributes set by the bundle and must not set these attributes again. Bundles ensure consistency of attributes across multiple interworking components and restrict the mix and match of components within a <code>Cclass</code> from different solutions. In addition to components, a bundle has the mandatory elements <code>description</code> and <code>doc</code> (for documentation).</p>
+<p>An example of a <b>bundle</b> is shown in the <a class="el" href="_create_pack_board.html#CP_BundleExample">Create a BSP Bundle</a> section where the bundle is used to deliver board support files for a certain development platform.</p>
+<h1><a class="anchor" id="CP_Instances"></a>
+Instances</h1>
+<p>Some <a class="el" href="pdsc_components_pg.html">software components</a> allow several instances. This is useful if more than one peripheral can be connected.</p>
+<ol>
+<li>
+Adding the information about a maximum number of instances is easy. Change the first component (::MyClass:MyGroup:MySub) as follows: <div class="fragment"><div class="line">&lt;component Cclass=<span class="stringliteral">&quot;MyClass&quot;</span> Cgroup=<span class="stringliteral">&quot;MyGroup&quot;</span> Csub=<span class="stringliteral">&quot;MySubGroup&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.3&quot;</span> condition=<span class="stringliteral">&quot;CMSIS Core with RTOS&quot;</span> maxInstances=<span class="stringliteral">&quot;3&quot;</span>&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new version number: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.3&quot;</span>&gt;</div>
+<div class="line"> Maximum number of instances specified</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+<p class="startli">Finally, save the PDSC file and regenerate the Pack file using the <b>gen_pack.bat</b> script. See <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">Generate a Pack</a> for further details. Afterwards, install the Pack in your development tool and observe the differences to version 1.0.2. When selecting a certain number of instances of the component, causes the development tool to copy the required configuration files multiple times into the project. This ensures that each component instance can be configured separately.</p>
+<div class="image">
+<img src="maxInstancesDisplay.png" alt="maxInstancesDisplay.png"/>
+<div class="caption">
+Display of component instances in development tools</div></div>
+ </li>
+</ol>
+<h1><a class="anchor" id="CP_API"></a>
+API Interface</h1>
+<p>An <a class="el" href="pdsc_apis_pg.html">API</a> is a special form of a software component that only defines a C/C++ Application Programming Interface (API). An API does not contain the actual implementation (usually provided by source code or library files) and cannot be selected in a development tool. One example is the CMSIS-RTOS API, which is specified as part of CMSIS. However, the actual RTOS implementation is provided by different vendors. An API consists of a name, a brief description as well as one or more header files, and a document containing a detailed specification of the API.</p>
+<p>Copy the <em>content</em> of the <b>05_APIs</b> directory of the <b>Pack_with_Software_Components.zip</b> file to the <b>Files</b> directory in your working environment: </p>
+<ol>
+<li>
+Add a <a class="el" href="pdsc_apis_pg.html">&lt;apis&gt;</a> section with the following: <div class="fragment"><div class="line">&lt;api Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;MyAPI&quot;</span> exclusive=<span class="stringliteral">&quot;0&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;API <span class="keywordflow">for</span> MyAPI&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Docs/API/MyAPI.htm&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;API/Include/MyAPI.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/api&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new version number: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.4&quot;</span>&gt;</div>
+<div class="line"> MyAPI added</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Finally, save the PDSC file and regenerate the Pack file using the <b>gen_pack.bat</b> script. See <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">Generate a Pack</a> for further details. Afterwards, install the Pack in your development tool and observe the differences to version 1.0.3. Most likely, you will see none as APIs are not selectable and are thus not displayed in the tools. </li>
+</ol>
+<h1><a class="anchor" id="CP_CodeTemplates"></a>
+User Code Templates</h1>
+<p>User code templates provide a quick start for implementing an application. To add user code templates, add source files with the attribute <code>attr=“templateâ€</code> in a <code>&lt;component&gt;</code>. The <code>select</code> attribute is used to identify template files. Template files with the same <code>select</code> attribute will be added to a project simultaneously.</p>
+<p>Copy the <em>content</em> of the <b>06_User_Code_Templates</b> directory of the <b>Pack_with_Software_Components.zip</b> file to the <b>Files</b> directory in your working environment: </p>
+<ol>
+<li>
+Add the following code to both variants (<code>debug</code> and <code>release</code>) of the ::MyVariant:MyGroup component: <div class="fragment"><div class="line">&lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Templates/mylib_template1.c&quot;</span> attr=<span class="stringliteral">&quot;template&quot;</span> select=<span class="stringliteral">&quot;Easy Template&quot;</span>/&gt;</div>
+<div class="line">&lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Templates/mylib_template2.c&quot;</span> attr=<span class="stringliteral">&quot;template&quot;</span> select=<span class="stringliteral">&quot;Complex Template&quot;</span>/&gt;</div>
+<div class="line">&lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Templates/mylib_template3.c&quot;</span> attr=<span class="stringliteral">&quot;template&quot;</span> select=<span class="stringliteral">&quot;Complex Template&quot;</span>/&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new version number: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.5&quot;</span>&gt;</div>
+<div class="line"> User Code Templates added</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+<p class="startli">Finally, save the PDSC file and regenerate the Pack file using the <b>gen_pack.bat</b> script. See <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">Generate a Pack</a> for further details. Afterwards, install the Pack in your development tool and observe the differences to version 1.0.4.</p>
+<div class="image">
+<img src="UserCodeTemplatesDisplay.png" alt="UserCodeTemplatesDisplay.png"/>
+<div class="caption">
+Display of user code templates in development tools</div></div>
+ </li>
+</ol>
+<h1><a class="anchor" id="CP_Examples"></a>
+Example Projects</h1>
+<p>Example projects help to understand a certain MCU or development board better. An example and each individual file of it may refer to a condition that must resolve to true; if it is false, the example or file will be ignored. The board element is used to reference to one or more board descriptions using the board vendor and name an example is targeted for. Each example can specify attributes listing related components using <code>Cclass</code>, <code>Cgroup</code>, <code>Csub</code> and <code>Cversion</code>. The <b>&lt;project&gt;</b> element contains the names of the supported development tools and the project files to be loaded.</p>
+<p>Copy the <em>content</em> of the <b>07_Example_Projects</b> directory of the <b>Pack_with_Software_Components.zip</b> file to the <b>Files</b> directory in your working environment: </p>
+<ol>
+<li>
+Add an <a class="el" href="pdsc_examples_pg.html">&lt;examples&gt;</a> section with the following: <div class="fragment"><div class="line">&lt;examples&gt;</div>
+<div class="line"> &lt;example name=<span class="stringliteral">&quot;MyDevBoard Example&quot;</span> doc=<span class="stringliteral">&quot;Abstract.txt&quot;</span> folder=<span class="stringliteral">&quot;MyPackExample&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;CMSIS-RTOS based example&lt;/description&gt;</div>
+<div class="line"> &lt;board name=<span class="stringliteral">&quot;MyDevBoard&quot;</span> vendor=<span class="stringliteral">&quot;MyVendor&quot;</span>/&gt;</div>
+<div class="line"> &lt;project&gt;</div>
+<div class="line"> &lt;environment name=<span class="stringliteral">&quot;uv&quot;</span> load=<span class="stringliteral">&quot;MyPackExample.uvprojx&quot;</span>/&gt;</div>
+<div class="line"> &lt;/project&gt;</div>
+<div class="line"> &lt;attributes&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;CORE&quot;</span>/&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span>/&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;RTOS&quot;</span>/&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;MyVariant&quot;</span> Cgroup=<span class="stringliteral">&quot;MyGroup&quot;</span>/&gt;</div>
+<div class="line"> &lt;/attributes&gt;</div>
+<div class="line"> &lt;/example&gt;</div>
+<div class="line">&lt;/examples&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new version number: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.6&quot;</span>&gt;</div>
+<div class="line"> Example project added</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+<p class="startli">Finally, save the PDSC file and regenerate the Pack file using the <b>gen_pack.bat</b> script. See <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">Generate a Pack</a> for further details. Afterwards, install the Pack in your development tool and observe the differences to version 1.0.5.</p>
+<div class="image">
+<img src="ExampleDisplay.png" alt="ExampleDisplay.png"/>
+<div class="caption">
+Display of example projects in development tools</div></div>
+ </li>
+</ol>
+<p>Example projects rely on a development board to be present (as the code needs to run on real hardware). In the code above you will notice that a development board called "MyDevBoard" was specified. <a class="el" href="_create_pack_board.html">Pack with Board Support</a> explains how to integrate boards into a Pack. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:42 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_c_p__z_i_p_tool.html b/CMSIS/Documentation/Pack/html/_c_p__z_i_p_tool.html
new file mode 100644
index 0000000..56f367f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_c_p__z_i_p_tool.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>ZIP Compression Tools</title>
+<title>CMSIS-Pack: ZIP Compression Tools</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_c_p__z_i_p_tool.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">ZIP Compression Tools </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Any ZIP software utility supporting the compression method <a href="http://en.wikipedia.org/wiki/DEFLATE" target="_blank">DEFLATE</a> can be used to create a PACK file. Simply, create the ZIP file and rename it to *.PACK.</p>
+<p>The compression tool <a href="http://www.7-zip.org/" target="_blank">7-Zip</a> supports command line calls and can be used in batch scripts like <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">gen_pack.bat</a> for automated Pack file creation (and verification with <a class="el" href="_pack_chk.html">PackChk.exe</a>). Installers for 7-Zip are available for 32-bit and 64-bit Windows operating systems. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_create_pack_util.html">Utilities for Creating Packs</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_config_wizard.html b/CMSIS/Documentation/Pack/html/_config_wizard.html
new file mode 100644
index 0000000..a1f7ece
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_config_wizard.html
@@ -0,0 +1,420 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Configuration Wizard Annotations</title>
+<title>CMSIS-Pack: Configuration Wizard Annotations</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_config_wizard.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Configuration Wizard Annotations </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1><a class="anchor" id="configWizard_annotations"></a>
+Annotation Rules</h1>
+<p><b>Configuration Wizard Annotations</b> consist of annotation items and annotation modifiers. They create GUI-like elements in IDEs for configuration files (see <a class="el" href="_config_wizard.html#configWizard_display">Tool-specific display</a>). Using a GUI-like approach makes it easier for the user to check and adapt configuration files to the application needs. The following rules apply:</p>
+<ul>
+<li>The Configuration Wizard section must begin within the first 100 lines of code and must start with the following comment line: <div class="fragment"><div class="line"><span class="comment">// &lt;&lt;&lt; Use Configuration Wizard in Context Menu &gt;&gt;&gt;</span></div>
+</div><!-- fragment --></li>
+<li>The Configuration Wizard section can end with the following optional comment: <div class="fragment"><div class="line"><span class="comment">// &lt;&lt;&lt; end of configuration section &gt;&gt;&gt;</span></div>
+</div><!-- fragment --></li>
+<li>Annotations are written as comments in the code. Each annotation line must start with a double forward slash (//).</li>
+<li>By default, the next code symbol that follows the annotation is modified.</li>
+<li>Items marked with * in the table below can be followed by a skip-value. A skip-value omits a number of code symbols (see <em>skip example</em> in table). This overwrites the previous rule.</li>
+<li>A descriptive text can be added to items. This text is diplayed on screen (see table).</li>
+<li>Whitespace characters are ignored in anotation items or annotaion modifiers (text excluded).</li>
+</ul>
+<p>The following table lists the Configuration Wizard Annotations:</p>
+<table class="cmtable" summary="Annotations Tab">
+<tr>
+<th>Item </th><th>Text </th><th>Description </th></tr>
+<tr>
+<td>&lt;h&gt; </td><td>yes </td><td>Heading. Creates a header section. All items and options enclosed by &lt;h&gt; and &lt;/h&gt; belong to one group and can be expanded. This entry makes no changes to code symbols. It is just used to group other itmes and modifiers. <br/>
+ Excerpt from the <a class="el" href="_config_wizard.html#configWizard_codeExample">Code Example</a> <div class="fragment"><div class="line"><span class="comment">// &lt;h&gt;Thread Configuration -- header without checkbox to group other items</span></div>
+<div class="line"><span class="comment">// ...</span></div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+</div><!-- fragment --> Is the header entry as shown in <a class="el" href="_config_wizard.html#configWizard_display">Tool-specific display</a>. </td></tr>
+<tr>
+<td>&lt;e&gt;<sup>*</sup> </td><td>yes </td><td>Heading with enable. Creates a header section with a checkbox to enabled or disabled all items and options enclosed by &lt;e&gt; and &lt;/e&gt;. Excerpt from the <a class="el" href="_config_wizard.html#configWizard_codeExample">Code Example</a>. <div class="fragment"><div class="line"><span class="comment">// &lt;e&gt;Round-Robin Thread switching -- header with checkbox</span></div>
+<div class="line"><span class="comment">// ===============================</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Enables Round-Robin Thread switching. -- tooltip information for the header</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_ROBIN</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_ROBIN 1 -- this value is set through the checkbox</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span><span class="comment">// &lt;o&gt;Round-Robin Timeout [ticks] &lt;1-1000&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines how long a thread will execute before a thread switch.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 5</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_ROBINTOUT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_ROBINTOUT 5</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor">// &lt;/e&gt;</span></div>
+</div><!-- fragment --> The entry <code>&lt;e&gt;Round-Robin Thread switching ... &lt;/e&gt;</code> sets OS_ROBIN to <span class="XML-Token">1</span> (checkbox enabled) or <span class="XML-Token">0</span> (checkbox disabled) and encloses the <em>OS_ROBINTOUT</em> (Round-Robin Timeout) setting. See screen outcome in <a class="el" href="_config_wizard.html#configWizard_display">Tool-specific display</a>. </td></tr>
+<tr>
+<td>&lt;e.<em>i</em>&gt;<sup>*</sup> </td><td>yes </td><td>Heading with Enable: modifies a specific bit (<em>i</em>) (example: &lt;e.4&gt; - changes bit 4 of a value). <div class="fragment"><div class="line"><span class="comment">// &lt;e.4&gt;Serial Number</span></div>
+<div class="line"><span class="comment">// &lt;i&gt;Enable Serial Number String.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt;If disabled, Serial Number String will not be assigned to USB Device.</span></div>
+<div class="line"><span class="preprocessor">#define USBD0_STR_DESC_SER_EN 1</span></div>
+</div><!-- fragment --> The example creates the heading <span class="XML-Token">Serial Number</span> and a checkbox to set the value. If enabled, then bit 4 of <span class="XML-Token">USBD0_STR_DESC_SER_EN</span> is set. </td></tr>
+<tr>
+<td>&lt;/h&gt; or &lt;/e&gt; </td><td>yes </td><td>Heading or Enable end. </td></tr>
+<tr>
+<td>&lt;i&gt; </td><td>yes </td><td>Tooltip help for previous item. <div class="fragment"><div class="line"><span class="comment">// &lt;i&gt;This is shown as a tooltip when hovering over a text.</span></div>
+</div><!-- fragment --> Many examples in this table have tooltip examples. </td></tr>
+<tr>
+<td>&lt;q&gt;<sup>*</sup> </td><td>yes </td><td>Option for bit values which can be set via a checkbox. <div class="fragment"><div class="line"><span class="comment">// &lt;h&gt; Chip-select control</span></div>
+<div class="line"><span class="comment">// &lt;q&gt; ASYNCWAIT: Wait signal during asynchronous transfer</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Enables the FSMC to use the wait signal even during an asynchronous protocol.</span></div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+<div class="line"><span class="preprocessor">#define RTE_FSMC_BCR1_ASYNCWAIT 0 -- this is changed via a checkbox</span></div>
+</div><!-- fragment --> </td></tr>
+<tr>
+<td>&lt;o&gt;<sup>*</sup> </td><td>yes </td><td>Option with selection or number entry. <div class="fragment"><div class="line"><span class="comment">// &lt;o&gt;Round-Robin Timeout [ticks] &lt;1-1000&gt; -- text displayed on screen. Range of [ticks] is [1..1000] </span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines how long a thread will execute before a thread switch. -- tooltip info</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 5 -- tooltip info. Both displayed in one tooltip.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_ROBINTOUT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_ROBINTOUT 5</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor">// &lt;/e&gt;</span></div>
+</div><!-- fragment --> The example creates an option with the text <span class="XML-Token">Round-Robin Timeout [ticks]</span> and a field to enter values that can range between {1..1000]. </td></tr>
+<tr>
+<td>&lt;o.<em>i</em>&gt;<sup>*</sup> </td><td>yes </td><td>Modify a single bit (example: &lt;e.4&gt; - modifies bit 4). <div class="fragment"><div class="line"><span class="comment">// &lt;o.4&gt; &lt;o.0&gt;High-speed</span></div>
+<div class="line"><span class="comment">// &lt;i&gt;Enable High-speed functionality (if device supports it).</span></div>
+<div class="line"><span class="preprocessor">#define USBD0_HS 0</span></div>
+</div><!-- fragment --> The example creates a heading with the text <span class="XML-Token">High-speed</span> and a checkbox. If enabled, then bit 4 of <span class="XML-Token">USBD0_HS</span> is set. </td></tr>
+<tr>
+<td>&lt;o.<em>x</em>..<em>y</em>&gt;<sup>*</sup> </td><td>yes </td><td>Modify a range of bits. (example: &lt;o.4..5&gt; - bit 4 to 5). <div class="fragment"><div class="line"><span class="comment">// &lt;h&gt;String Settings</span></div>
+<div class="line"><span class="comment">// &lt;i&gt;These settings are used to create the String Descriptor.</span></div>
+<div class="line"><span class="comment">// &lt;o.0..15&gt;Language ID &lt;0x0000-0xFCFF&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt;English (United States) = 0x0409.</span></div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+<div class="line"><span class="preprocessor">#define USBD0_STR_DESC_LANGID 0x0409</span></div>
+</div><!-- fragment --> This example creates an expandable header with the text <span class="XML-Token">String Settings</span> and an option <span class="XML-Token">Language ID</span>. The range of values is set to <span class="XML-Token">&lt;0x0000-0xFCFF&gt;</span>. Useres can enter a value from within that range. The option changes the bits <span class="XML-Token">0..15</span>. </td></tr>
+<tr>
+<td>&lt;s&gt;<sup>*</sup> </td><td>yes </td><td>Option with ASCII string entry. <div class="fragment"><div class="line"><span class="comment">// &lt;s&gt;Manufacturer String</span></div>
+<div class="line"><span class="comment">// &lt;i&gt;String Descriptor describing Manufacturer.</span></div>
+<div class="line"><span class="preprocessor">#define USBD0_STR_DESC_MAN L&quot;Keil Software&quot;</span></div>
+</div><!-- fragment --> Displays an option with the text <span class="XML-Token">Manufacturer String</span> and creates a field in which the user can enter a text. The size of the string is not limited. </td></tr>
+<tr>
+<td>&lt;s.<em>i</em>&gt;<sup>*</sup> </td><td>yes </td><td>Option with ASCII string entry and a size limit of <em>i</em> characters. <div class="fragment"><div class="line"><span class="comment">// &lt;s.126&gt;Manufacturer String</span></div>
+<div class="line"><span class="comment">// &lt;i&gt;String Descriptor describing Manufacturer.</span></div>
+<div class="line"><span class="preprocessor">#define USBD0_STR_DESC_MAN L&quot;Keil Software&quot;</span></div>
+</div><!-- fragment --> The example sets a size limit od 126 character. default string is "Keil Software". </td></tr>
+<tr>
+<td><em>skip example</em> <br/>
+ &lt;q<em>i&gt;</em>; <br/>
+ &lt;o<em>i&gt;</em>; &lt;o<em>i</em>.<em>x&gt;</em>; <br/>
+ &lt;s<em>i&gt;</em>; &lt;s<em>i</em>.<em>x&gt;</em> </td><td>yes </td><td>Skip <em>i</em> items. Can be applied to all annotation items marked with a * in this table. <div class="fragment"><div class="line"><span class="comment">// &lt;o2&gt;Skip 2 and modify the third item after this entry &lt;1-9&gt;</span></div>
+<div class="line"><span class="preprocessor">#define VALUE1 1000</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VALUE2 2000</span></div>
+<div class="line"><span class="preprocessor">#define MODIFY_THIS 3000</span></div>
+</div><!-- fragment --> The example skips 2 items and modifies the third. </td></tr>
+<tr>
+<th>Modifier </th><th>&#160; </th><th>Description </th></tr>
+<tr>
+<td>&lt;0-31&gt; </td><td>no </td><td>Value range for option fields. </td></tr>
+<tr>
+<td>&lt;0-100:10&gt; </td><td>no </td><td>Value range for option fields with step 10. </td></tr>
+<tr>
+<td>&lt;0x40-0x1000:0x10&gt; </td><td>no </td><td>Value range in hex format and step 10. </td></tr>
+<tr>
+<td>&lt;<em>value</em>=&gt; </td><td>yes </td><td>Creates a drop dow-list and displays the <em><b>text</b></em>. <em><b>value</b></em> is written to the next item. Excerpt from the <a class="el" href="_config_wizard.html#configWizard_codeExample">Code Example</a>. <div class="fragment"><div class="line"><span class="comment">// &lt;o&gt;Timer Thread Priority -- creates a drop-down with the list below.</span></div>
+<div class="line"><span class="comment">// &lt;1=&gt; Low</span></div>
+<div class="line"><span class="comment">// &lt;2=&gt; Below Normal &lt;3=&gt; Normal &lt;4=&gt; Above Normal</span></div>
+<div class="line"><span class="comment">// &lt;5=&gt; High</span></div>
+<div class="line"><span class="comment">// &lt;6=&gt; Realtime (highest)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines priority for Timer Thread -- tooltip info</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: High -- tooltip info</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TIMERPRIO</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_TIMERPRIO 5</span></div>
+<div class="line"><span class="preprocessor">#endif</span></div>
+</div><!-- fragment --> In this example, the screen would show the option <span class="XML-Token">Timer Thread Priority</span>. The field Value would display the text <span class="XML-Token">High</span>. OS_TIMERPRIO is set to <span class="XML-Token">5</span>. When clicking on the field, a drop-down would show all options. See <a class="el" href="_config_wizard.html#configWizard_display">Tool-specific display</a>. </td></tr>
+<tr>
+<td>&lt;#+1&gt;&#160;&#160; &lt;#-1&gt;<br/>
+ &lt;#*8&gt;&#160;&#160; &lt;#/3&gt; </td><td>no </td><td>Modifies the entered or displayed value according to the operator (add, sub, mul, div). The changed value is set for the code symbol. <br/>
+ Excerpt from <a class="el" href="_config_wizard.html#configWizard_codeExample">Code Example</a>. <div class="fragment"><div class="line"><span class="comment">// &lt;o&gt;Default Thread stack size [bytes] &lt;64-4096:8&gt;&lt;#/4&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines default stack size for threads with osThreadDef stacksz = 0</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_STKSIZE</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_STKSIZE 50</span></div>
+<div class="line"><span class="preprocessor">#endif</span></div>
+</div><!-- fragment --> The option <em>Default Thread stack size [bytes]</em> accepts values in the range <span class="XML-Token">[64..4096]</span>. The value (here <span class="XML-Token">200</span>) set in the field is devided by <span class="XML-Token">4</span> (&lt;#/4&gt;) . The result of the division (200/4) is put into the code symbol <em>OS_STKSIZE</em>, which was set to <span class="XML-Token">50</span>. The screen will display the number <span class="XML-Token">200</span>. See <a class="el" href="_config_wizard.html#configWizard_display">Tool-specific display</a>. </td></tr>
+</table>
+<h1><a class="anchor" id="configWizard_codeExample"></a>
+Code Example</h1>
+<p>You can copy the code into a C-file and check the outcome in the uVision Editor.</p>
+<div class="fragment"><div class="line"><span class="comment">//-------- &lt;&lt;&lt; Use Configuration Wizard in Context Menu&gt;&gt;&gt; -----------------</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;h&gt;Thread Configuration</span></div>
+<div class="line"><span class="comment">// =======================</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Number of concurrent running threads &lt;0-250&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines max. number of threads that will run at the same time.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 6</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TASKCNT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TASKCNT 6</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Default Thread stack size [bytes] &lt;64-4096:8&gt;&lt;#/4&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines default stack size for threads with osThreadDef stacksz = 0</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_STKSIZE</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_STKSIZE 50</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Main Thread stack size [bytes] &lt;64-32768:8&gt;&lt;#/4&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines stack size for main thread.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_MAINSTKSIZE</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_MAINSTKSIZE 50</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Number of threads with user-provided stack size &lt;0-250&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines the number of threads with user-provided stack size.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 0</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_PRIVCNT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_PRIVCNT 0</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Total stack size [bytes] for threads with user-provided stack size &lt;0-1048576:8&gt;&lt;#/4&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines the combined stack size for threads with user-provided stack size.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 0</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_PRIVSTKSIZE</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_PRIVSTKSIZE 0</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;q&gt;Check for stack overflow</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Includes the stack checking code for stack overflow.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Note that additional code reduces the Kernel performance.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_STKCHECK</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_STKCHECK 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Processor mode for thread execution </span></div>
+<div class="line"><span class="comment">// &lt;0=&gt; Unprivileged mode </span></div>
+<div class="line"><span class="comment">// &lt;1=&gt; Privileged mode</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: Privileged mode</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_RUNPRIV</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_RUNPRIV 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+<div class="line"></div>
+<div class="line"><span class="comment">// &lt;h&gt;RTX Kernel Timer Tick Configuration</span></div>
+<div class="line"><span class="comment">// ======================================</span></div>
+<div class="line"><span class="comment">// &lt;q&gt; Use Cortex-M SysTick timer as RTX Kernel Timer</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Use the Cortex-M SysTick timer as a time-base for RTX.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_SYSTICK</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_SYSTICK 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Timer clock value [Hz] &lt;1-1000000000&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines the timer clock value.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 12000000 (12MHz)</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_CLOCK</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_CLOCK 12000000</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Timer tick value [us] &lt;1-1000000&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines the timer tick value.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 1000 (1ms)</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TICK</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TICK 1000</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+<div class="line"></div>
+<div class="line"><span class="comment">// &lt;h&gt;System Configuration</span></div>
+<div class="line"><span class="comment">// =======================</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;e&gt;Round-Robin Thread switching</span></div>
+<div class="line"><span class="comment">// ===============================</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Enables Round-Robin Thread switching.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_ROBIN</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_ROBIN 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Round-Robin Timeout [ticks] &lt;1-1000&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines how long a thread will execute before a thread switch.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 5</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_ROBINTOUT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_ROBINTOUT 5</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;/e&gt;</span></div>
+<div class="line"></div>
+<div class="line"><span class="comment">// &lt;e&gt;User Timers</span></div>
+<div class="line"><span class="comment">// ==============</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Enables user Timers</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TIMERS</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERS 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Timer Thread Priority</span></div>
+<div class="line"><span class="comment">// &lt;1=&gt; Low</span></div>
+<div class="line"><span class="comment">// &lt;2=&gt; Below Normal &lt;3=&gt; Normal &lt;4=&gt; Above Normal</span></div>
+<div class="line"><span class="comment">// &lt;5=&gt; High</span></div>
+<div class="line"><span class="comment">// &lt;6=&gt; Realtime (highest)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines priority for Timer Thread</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: High</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TIMERPRIO</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERPRIO 5</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Timer Thread stack size [bytes] &lt;64-4096:8&gt;&lt;#/4&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines stack size for Timer thread.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TIMERSTKSZ</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERSTKSZ 50</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Timer Callback Queue size &lt;1-32&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Number of concurrent active timer callback functions.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 4</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TIMERCBQS</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERCBQS 4</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;/e&gt;</span></div>
+<div class="line"></div>
+<div class="line"><span class="comment">// &lt;o&gt;ISR FIFO Queue size&lt;4=&gt; 4 entries &lt;8=&gt; 8 entries</span></div>
+<div class="line"><span class="comment">// &lt;12=&gt; 12 entries &lt;16=&gt; 16 entries</span></div>
+<div class="line"><span class="comment">// &lt;24=&gt; 24 entries &lt;32=&gt; 32 entries</span></div>
+<div class="line"><span class="comment">// &lt;48=&gt; 48 entries &lt;64=&gt; 64 entries</span></div>
+<div class="line"><span class="comment">// &lt;96=&gt; 96 entries</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; ISR functions store requests to this buffer,</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; when they are called from the interrupt handler.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 16 entries</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_FIFOSZ</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_FIFOSZ 16</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+<div class="line"></div>
+<div class="line"><span class="comment">//------------- &lt;&lt;&lt; end of configuration section&gt;&gt;&gt; -----------------------</span></div>
+</div><!-- fragment --><h1><a class="anchor" id="configWizard_display"></a>
+Tool-specific display</h1>
+<p>It is left to the development tool to interprete and display Configuration Wizard Annotations. The uVision IDE displays the code above in the following way:</p>
+<div class="image">
+<img src="RTX_Conf_CM_Wizard_View.png" alt="RTX_Conf_CM_Wizard_View.png"/>
+<div class="caption">
+Configuration Wizard Display</div></div>
+<p> <b>Where</b></p>
+<p><em>Option</em> are device properties, which can be represented in a tree structure. Each item can have an explanatory tooltip.</p>
+<p><em>Value</em> sets the option value. Can contain controls to encapsulate data in predefined drop-down lists. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_create_pack__d_f_p.html b/CMSIS/Documentation/Pack/html/_create_pack__d_f_p.html
new file mode 100644
index 0000000..2d36f2c
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_create_pack__d_f_p.html
@@ -0,0 +1,533 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Pack with Device Support</title>
+<title>CMSIS-Pack: Pack with Device Support</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_create_pack__d_f_p.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Pack with Device Support </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>A <a class="el" href="_c_p__s_w_components.html">Software Pack</a> that contains a <a class="el" href="pdsc_devices_pg.html">&lt;devices&gt;</a> element is called Device Family Pack (DFP). A DFP may contain additional <b>Software Components</b> or <b>Example Projects</b> or any combination of those. The typical content of a DFP is:</p>
+<ul>
+<li><a class="el" href="_create_pack__d_f_p.html#CP_DeviceProperties">Device Properties</a> explaining the capabilities of a device or a device family in more detail.</li>
+<li><a class="el" href="_c_p__s_w_components.html#CP_Components">Software Components</a> that configure the device and basic device drivers, in particular:<ul>
+<li>CMSIS-compliant <a class="el" href="_create_pack__d_f_p.html#CP_System_Startp">System and Startup Files</a> required to setup the C run-time library, device clock, and memory interface.</li>
+<li>Peripheral Driver Interfaces that provide software routines for physical device peripherals used by middleware stacks. Drivers may adhere to the <a href="http://www.keil.com/cmsis/driver" class="el" target="_blank">CMSIS-Driver</a> standard.</li>
+</ul>
+</li>
+<li>One or more <a class="el" href="_create_pack__d_f_p.html#CP_SVD">System View Description Files</a> describing the programmer's view of the device's peripherals.</li>
+<li><a class="el" href="_create_pack__d_f_p.html#CP_FlashProgrammingAlgorithm">Flash Programming Algorithms</a> for erasing and downloading code into on-chip Flash.</li>
+<li><a class="el" href="_c_p__s_w_components.html#CP_Examples">Example Projects</a> that show the usage of the device and its peripherals.</li>
+<li><a class="el" href="_c_p__s_w_components.html#CP_CodeTemplates">User Code Templates</a> that can be used as a starting point for application development.</li>
+</ul>
+<p>This section explains how to create a DFP. Initially, the PDSC file in the DFP only describes devices. This DFP is then extended to contain also SVD files, Flash algorithms, and device related software components such as system and HAL files. Example projects and code templates may be added as described in the section <a class="el" href="_c_p__s_w_components.html">Pack with Software Components</a>.</p>
+<h2>DFP Use Cases</h2>
+<p>A <a class="el" href="pdsc_devices_pg.html">Device Family Pack (DFP)</a> may be provided by a Silicon Vendor and is used to extend development tools with support for new devices. In general, the DFP enables Silicon Vendors to distribute tool independent device support for their device families.<br/>
+ DFPs can also be used to provide information for the display on <b>web sites</b>. One example is the new device database on <a href="http://www.keil.com/dd2/" class="el" target="_blank">www.keil.com/dd2/</a>:</p>
+<p><a class="anchor" id="DevWebSite"></a></p>
+<div class="image">
+<img src="DeviceDatabase2.png" alt="DeviceDatabase2.png"/>
+<div class="caption">
+Device information on a web site extracted from a DFP</div></div>
+ <h2>Steps to Create a DFP</h2>
+<div class="image">
+<img src="DFPFlow.png" alt="DFPFlow.png"/>
+</div>
+<h1><a class="anchor" id="CP_BasicDFP"></a>
+Basic Device Family Pack</h1>
+<p>In the following sections, a DFP will be created for a fictional device family called <b>MVCM3</b> from the device vendor <b>MyVendor</b>. The device family consists of four member that are separated into two sub-families. The specification of the MVCM3 family is as follows:</p>
+<div class="image">
+<img src="MVCM3SpecTable.png" alt="MVCM3SpecTable.png"/>
+<div class="caption">
+MVCM3 Device Family Specification</div></div>
+<p> <b>Preparations</b></p>
+<ol type="1">
+<li>Create a working directory on you PC, for example <b>C:\temp\working_dfp</b>.</li>
+<li>Go to the directory <b>\CMSIS\Pack\Tutorials</b> available in the <b>ARM::CMSIS</b> Pack installation. Please consult your development tool's documentation for more information on the Pack installation directory structure. In a standard µVision installation, you will find it below <b>C:\Keil_v5\ARM\Pack\ARM\CMSIS\<em>version</em></b>.</li>
+<li>Open the file <b>Pack_with_Device_Support.zip</b>.</li>
+<li>Copy the <em>content</em> of the ZIP file's <b>01_Basic_Pack</b> directory into your working directory.</li>
+<li>Make sure that files/directories are not write protected (remove read-only flag).</li>
+<li>Copy from the directory <b>\CMSIS\Utilities</b> available in the <b>ARM::CMSIS</b> Pack installation the following files into your working directory:<ul>
+<li>PackChk.exe</li>
+<li>PACK.xsd</li>
+<li>SVDConv.exe</li>
+</ul>
+</li>
+<li>Open the <b>MyVendor.MVCM3.pdsc</b> file in an editor.</li>
+</ol>
+<p><b>Code Example</b> </p>
+<ol>
+<li>
+Add a <a class="el" href="pdsc_family_pg.html#element_device">&lt;devices&gt;</a> section in the PDSC file with the following: <div class="fragment"><div class="line">&lt;devices&gt;</div>
+<div class="line"> &lt;family Dfamily=<span class="stringliteral">&quot;MVCM3 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;Generic:5&quot;</span>&gt;</div>
+<div class="line"> &lt;processor Dcore=<span class="stringliteral">&quot;Cortex-M3&quot;</span> DcoreVersion=<span class="stringliteral">&quot;r2p1&quot;</span> Dfpu=<span class="stringliteral">&quot;0&quot;</span> Dmpu=<span class="stringliteral">&quot;0&quot;</span> Dendian=<span class="stringliteral">&quot;Little-endian&quot;</span>/&gt;</div>
+<div class="line"> &lt;description&gt;</div>
+<div class="line"> The MVCM3 device family contains an ARM Cortex-M3 processor, running up to 100 MHz with a versatile <span class="keyword">set</span> of on-chip peripherals.</div>
+<div class="line"> &lt;/description&gt;</div>
+<div class="line"> &lt;!-- ************************ Sub-family <span class="stringliteral">&#39;MVCM3100&#39;</span> **************************** --&gt;</div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;MVCM3100&quot;</span>&gt;</div>
+<div class="line"> &lt;processor Dclock=<span class="stringliteral">&quot;50000000&quot;</span>/&gt;</div>
+<div class="line"> &lt;!-- ************************* Device <span class="stringliteral">&#39;MVCM3110&#39;</span> ***************************** --&gt;</div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;MVCM3110&quot;</span>&gt;</div>
+<div class="line"> &lt;memory <span class="keywordtype">id</span>=<span class="stringliteral">&quot;IROM1&quot;</span> start=<span class="stringliteral">&quot;0x00000000&quot;</span> size=<span class="stringliteral">&quot;0x4000&quot;</span> startup=<span class="stringliteral">&quot;1&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;memory <span class="keywordtype">id</span>=<span class="stringliteral">&quot;IRAM1&quot;</span> start=<span class="stringliteral">&quot;0x20000000&quot;</span> size=<span class="stringliteral">&quot;0x0800&quot;</span> init =<span class="stringliteral">&quot;0&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> &lt;!-- ************************* Device <span class="stringliteral">&#39;MVCM3120&#39;</span> ***************************** --&gt;</div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;MVCM3120&quot;</span>&gt;</div>
+<div class="line"> &lt;memory <span class="keywordtype">id</span>=<span class="stringliteral">&quot;IROM1&quot;</span> start=<span class="stringliteral">&quot;0x00000000&quot;</span> size=<span class="stringliteral">&quot;0x8000&quot;</span> startup=<span class="stringliteral">&quot;1&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;memory <span class="keywordtype">id</span>=<span class="stringliteral">&quot;IRAM1&quot;</span> start=<span class="stringliteral">&quot;0x20000000&quot;</span> size=<span class="stringliteral">&quot;0x1000&quot;</span> init =<span class="stringliteral">&quot;0&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> &lt;/subFamily&gt;</div>
+<div class="line"> &lt;!-- ************************ Sub Family <span class="stringliteral">&#39;MVCM3200&#39;</span> **************************** --&gt;</div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;MVCM3200&quot;</span>&gt;</div>
+<div class="line"> &lt;processor Dclock=<span class="stringliteral">&quot;100000000&quot;</span>/&gt;</div>
+<div class="line"> &lt;!-- ************************* Device <span class="stringliteral">&#39;MVCM3250&#39;</span> ***************************** --&gt;</div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;MVCM3250&quot;</span>&gt;</div>
+<div class="line"> &lt;memory <span class="keywordtype">id</span>=<span class="stringliteral">&quot;IROM1&quot;</span> start=<span class="stringliteral">&quot;0x00000000&quot;</span> size=<span class="stringliteral">&quot;0x4000&quot;</span> startup=<span class="stringliteral">&quot;1&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;memory <span class="keywordtype">id</span>=<span class="stringliteral">&quot;IRAM1&quot;</span> start=<span class="stringliteral">&quot;0x20000000&quot;</span> size=<span class="stringliteral">&quot;0x0800&quot;</span> init =<span class="stringliteral">&quot;0&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> &lt;!-- ************************* Device <span class="stringliteral">&#39;MVCM3260&#39;</span> ***************************** --&gt;</div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;MVCM3260&quot;</span>&gt;</div>
+<div class="line"> &lt;memory <span class="keywordtype">id</span>=<span class="stringliteral">&quot;IROM1&quot;</span> start=<span class="stringliteral">&quot;0x00000000&quot;</span> size=<span class="stringliteral">&quot;0x8000&quot;</span> startup=<span class="stringliteral">&quot;1&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;memory <span class="keywordtype">id</span>=<span class="stringliteral">&quot;IRAM1&quot;</span> start=<span class="stringliteral">&quot;0x20000000&quot;</span> size=<span class="stringliteral">&quot;0x1000&quot;</span> init =<span class="stringliteral">&quot;0&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> &lt;/subFamily&gt;</div>
+<div class="line"> &lt;/family&gt;</div>
+<div class="line">&lt;/devices&gt;</div>
+</div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd><ul>
+<li><code>Dvendor</code> IDs are not freely selectable. The current set of IDs can be found in the PACK.xsd file (available in the <b>ARM::CMSIS</b> Pack in the <b>CMSIS\Pack\Utilities</b> directory).</li>
+<li>All code examples in this and the following sections can be found in the <code>snippets.xml</code> file in the <b>01_Basic_Pack</b> directory.</li>
+</ul>
+</dd></dl>
+</li>
+<li>
+<p class="startli">Save the PDSC file and generate the Pack file using the <b>gen_pack.bat</b> script. See <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">Generate a Pack</a> for further details. Afterwards, install the Pack in your development tool.</p>
+<div class="image">
+<img src="BasicDFPDisplay.png" alt="BasicDFPDisplay.png"/>
+<div class="caption">
+Display of microcontroller devices in development tools</div></div>
+ </li>
+</ol>
+<dl class="section note"><dt>Note</dt><dd>PackChk.exe will display <b>M350</b> informations: <pre class="fragment">*** INFO M350:
+ No 'Startup' found for [Generic:5] 'MVCM3110' ()
+</pre> We will address this problem in the next section.</dd></dl>
+<h1><a class="anchor" id="CP_System_Startp"></a>
+System and Startup Files</h1>
+<p><a href="http://www.keil.com/cmsis/core" class="el" target="_blank">CMSIS-CORE</a> defines the following files to be used by an embedded application:</p>
+<ul>
+<li><code>startup_&lt;device&gt;.s</code> with reset handler and exception vectors. It is executed after reset and calls <code>SystemInit</code> and may contain stack and heap configurations for the user application.</li>
+<li><code>system_&lt;device&gt;.c</code> and <code>system_&lt;device&gt;.h</code> with general system configuration information (i.e. for clock and BUS setup).</li>
+<li><code>&lt;device.h&gt;</code> gives access to processor core and all peripherals. This file should be generated out of the <a class="el" href="_create_pack__d_f_p.html#CP_SVD">SVD</a> file using <a href="../../SVD/html/svd__s_v_d_conv_pg.html"><b>SVDConv.exe</b></a> to ensure consistency between the header file and what is being displayed by the debugger.</li>
+</ul>
+<div class="image">
+<img src="SystemStartupFiles.png" alt="SystemStartupFiles.png"/>
+<div class="caption">
+System and startup files in relation to user code</div></div>
+ <dl class="section note"><dt>Note</dt><dd><a href="http://www.keil.com/pack/doc/CMSIS/Core/html/_templates_pg.html" class="el" target="_blank">CMSIS-CORE</a> explains the structure of the system and startup files and how to create them.</dd></dl>
+<p>Copy the <em>content</em> of the <b>02_System_and_Startup</b> directory of the <b>Pack_with_Device_Support.zip</b> file to the <b>Files</b> directory in your working environment: </p>
+<ol>
+<li>
+Add a <code>&lt;conditions&gt;</code> section in your PDSC with the following (the <a class="el" href="_c_p__s_w_components.html#CP_Conditions">conditions</a> section provides more information on this step): <div class="fragment"><div class="line">&lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;MVCM3 CMSIS-CORE&quot;</span>&gt;</div>
+<div class="line"> &lt;!-- conditions selecting Devices --&gt;</div>
+<div class="line"> &lt;description&gt;MyVendor MVCM3 Series devices and CMSIS-CORE&lt;/description&gt;</div>
+<div class="line"> &lt;require Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;CORE&quot;</span>/&gt;</div>
+<div class="line"> &lt;require Dvendor=<span class="stringliteral">&quot;Generic:5&quot;</span> Dname=<span class="stringliteral">&quot;MVCM3*&quot;</span>/&gt;</div>
+<div class="line">&lt;/condition&gt;</div>
+<div class="line">&lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;Startup ARM&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Startup assembler file <span class="keywordflow">for</span> ARMCC&lt;/description&gt;</div>
+<div class="line"> &lt;require Tcompiler=<span class="stringliteral">&quot;ARMCC&quot;</span>/&gt;</div>
+<div class="line">&lt;/condition&gt;</div>
+<div class="line">&lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;Startup GCC&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Startup assembler file <span class="keywordflow">for</span> GCC&lt;/description&gt;</div>
+<div class="line"> &lt;require Tcompiler=<span class="stringliteral">&quot;GCC&quot;</span>/&gt;</div>
+<div class="line">&lt;/condition&gt;</div>
+<div class="line">&lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;Startup IAR&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Startup assembler file <span class="keywordflow">for</span> IAR&lt;/description&gt;</div>
+<div class="line"> &lt;require Tcompiler=<span class="stringliteral">&quot;IAR&quot;</span>/&gt;</div>
+<div class="line">&lt;/condition&gt;</div>
+</div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>The assembler based <code>startup_&lt;device&gt;.s</code> file is tool dependent. Therefore, separate conditions for the various tool vendors are required. </dd></dl>
+</li>
+<li>
+Add a <code>&lt;components&gt;</code> section in your PDSC with the following (the <a class="el" href="_c_p__s_w_components.html#CP_Components">components</a> section provides more information on this step): <div class="fragment"><div class="line">&lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.0&quot;</span> condition=<span class="stringliteral">&quot;MVCM3 CMSIS-CORE&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;System Startup <span class="keywordflow">for</span> MyVendor MVCM3 Series&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;!-- include folder --&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;include&quot;</span> name=<span class="stringliteral">&quot;Device/Include/&quot;</span>/&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Device/Source/ARM/startup_MVCM3xxx.s&quot;</span> attr=<span class="stringliteral">&quot;config&quot;</span> condition=<span class="stringliteral">&quot;Startup ARM&quot;</span> version=<span class="stringliteral">&quot;1.0.0&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Device/Source/GCC/startup_MVCM3xxx.S&quot;</span> attr=<span class="stringliteral">&quot;config&quot;</span> condition=<span class="stringliteral">&quot;Startup GCC&quot;</span> version=<span class="stringliteral">&quot;1.0.0&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Device/Source/IAR/startup_MVCM3xxx.s&quot;</span> attr=<span class="stringliteral">&quot;config&quot;</span> condition=<span class="stringliteral">&quot;Startup IAR&quot;</span> version=<span class="stringliteral">&quot;1.0.0&quot;</span>/&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Device/Source/system_MVCM3xxx.c&quot;</span> attr=<span class="stringliteral">&quot;config&quot;</span> version=<span class="stringliteral">&quot;1.0.0&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line">&lt;/component&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new version number: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.1&quot;</span>&gt;</div>
+<div class="line"> Startup files included</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+<p class="startli">Finally, save the PDSC file and regenerate the Pack file using the <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">gen_pack.bat</a> script. Afterwards, install the Pack in your development tool and create a new project. Select the software components <b>::CMSIS:CORE</b> and <b>::Device:Startup</b> for the project:</p>
+<div class="image">
+<img src="StartupSystemFilesAdded.png" alt="StartupSystemFilesAdded.png"/>
+<div class="caption">
+Startup and system files added to a project</div></div>
+ </li>
+</ol>
+<dl class="section note"><dt>Note</dt><dd>PackChk.exe will display <b>M350</b> informations: <pre class="fragment">*** INFO M353: .\Files\MyVendor.MVCM3.pdsc (Line 98)
+ No 'Device Headerfile' File found for Component 'Startup' (MyVendor::Device.Startup:1.0.0) for '[Generic:5] MVCM3110' (ARMCC)
+</pre> We will address this problem in the next section.</dd></dl>
+<h1><a class="anchor" id="CP_SVD"></a>
+System View Description File</h1>
+<p><a href="http://www.keil.com/cmsis/svd" class="el" target="_blank">CMSIS-SVD</a> formalizes the description of the programmer's view for the system contained in ARM Cortex-M processor-based microcontrollers, in particular the memory mapped registers of the peripherals. The level of detail contained in system view descriptions is comparable to what is found in device reference manuals published by silicon vendors. The information ranges from a high level functional description of a peripheral all the way down to the definition and purpose of an individual bit field in a memory mapped register. CMSIS-SVD files are developed and maintained by the silicon vendors. The XML based SVD file is the input for <a href="../../SVD/html/svd__s_v_d_conv_pg.html"><b>SVDConv.exe</b></a> that generates the tool dependent debug view and the device header file.</p>
+<div class="image">
+<img src="SVDFlow.png" alt="SVDFlow.png"/>
+<div class="caption">
+SVD file conversion flow</div></div>
+<p> Copy the <em>content</em> of the <b>03_SVD_File</b> directory of the <b>Pack_with_Device_Support.zip</b> file to the <b>Files</b> directory in your working environment: </p>
+<ol>
+<li>
+Open the file MVCM3xxx.svd in the <b>Files\SVD</b> directory in an editor and change the following: <div class="fragment"><div class="line">&lt;device schemaVersion=<span class="stringliteral">&quot;1.1&quot;</span> xmlns:xs=<span class="stringliteral">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> xs:noNamespaceSchemaLocation=<span class="stringliteral">&quot;CMSIS-SVD.xsd&quot;</span> &gt;</div>
+<div class="line"> &lt;vendor&gt;MyVendor&lt;/vendor&gt; &lt;!-- device vendor name --&gt;</div>
+<div class="line"> &lt;vendorID&gt;Generic&lt;/vendorID&gt; &lt;!-- device vendor <span class="keywordtype">short</span> name --&gt;</div>
+<div class="line"> &lt;name&gt;MVCM3xxx&lt;/name&gt; &lt;!-- name of part--&gt;</div>
+<div class="line"> &lt;series&gt;MVCM3xxx&lt;/series&gt; &lt;!-- device series the device belongs to --&gt;</div>
+<div class="line"> &lt;version&gt;1.2&lt;/version&gt; &lt;!-- version of <span class="keyword">this</span> description, adding CMSIS-SVD 1.1 tags --&gt;</div>
+<div class="line"> &lt;description&gt;ARM 32-bit Cortex-M3 Microcontroller based device, CPU clock up to 100 MHz.&lt;/description&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Open a command window in your working directory and enter: <pre class="fragment">C:\temp\working_dfp&gt;SVDConv.exe Files\SVD\MVCM3xxx.svd --generate=header –-fields=macro
+</pre> </li>
+<li>
+You should see some output of SVDConv similar to this: <pre class="fragment">CMSIS-SVD SVD Consistency Checker / Header File Generator V2.86g
+Copyright (C) 2010 - 2014 ARM Ltd and ARM Germany GmbH. All rights reserved.
+Options: "Files\SVD\MVCM3xxx.svd" --generate=header --fields=macro
+Reading file: "Files\SVD\MVCM3xxx.svd"
+
+Decoding using XML SVD Schema V1.1
+
+Found 0 Errors and 0 Warnings
+
+Return Code: 0 (OK)
+</pre> Move the generated header file <b>MVCM3xxx.h</b> to the <b>Device\Include</b> directory. </li>
+<li>
+Add the following two lines at the family level in the PDSC file: <div class="fragment"><div class="line">&lt;compile header=<span class="stringliteral">&quot;Device/Include/MVCM3xxx.h&quot;</span>/&gt;</div>
+<div class="line">&lt;debug svd=<span class="stringliteral">&quot;SVD/MVCM3xxx.svd&quot;</span>/&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new version number: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.2&quot;</span>&gt;</div>
+<div class="line"> SVD and header file included</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+<p class="startli">Finally, save the PDSC file and regenerate the Pack file using the <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">gen_pack.bat</a> script. Afterwards, install the Pack in your development tool and create a new project. Depending on your development environment, you will be able to see the SVD file included in your project:</p>
+<div class="image">
+<img src="SVDIncluded.png" alt="SVDIncluded.png"/>
+<div class="caption">
+Project with SVD file</div></div>
+ <dl class="section note"><dt>Note</dt><dd>For more information on CMSIS-SVD, please visit <a href="http://www.keil.com/cmsis/svd" class="el" target="_blank">www.keil.com/cmsis/svd</a> </dd></dl>
+</li>
+</ol>
+<h1><a class="anchor" id="CP_FlashProgrammingAlgorithm"></a>
+Flash Programming Algorithms</h1>
+<p><a class="el" href="_flash_algorithm.html">Flash Programming Algorithms</a> are used to erase or download applications to Flash devices. A DFP usually contains predefined Flash algorithms for programming its supported devices. The page <a class="el" href="_algorithm_func.html">Algorithm Functions</a> explains the mechanisms in more detail.</p>
+<p>For the MVCM3 device family, two flash algorithms have to be created. MVCM3110/250 have 16 kB of Flash, whereas MVCM3120/260 have 32 kB of Flash memory.</p>
+<p>Copy the <em>content</em> of the <b>04_Flash_Programming</b> directory of the <b>Pack_with_Device_Support.zip</b> file to the <b>working</b> directory: </p>
+<ol>
+<li>
+Rename the project file <b>NewDevice.uvproj</b> (in the <b>_Template_Flash</b> directory) to represent the new Flash ROM device name, for example MVCM3XXX_16.uvproj. </li>
+<li>
+<p class="startli">Open the project with uVision. The selected target (Cortex-M) is fine for the device.</p>
+<dl class="section note"><dt>Note</dt><dd>Creating a Flash programming algorithm with <a href="http://www.keil.com/arm/selector.asp" class="el" target="_blank">MDK-Lite</a> is not supported. </dd></dl>
+</li>
+<li>
+<p class="startli">Open the dialog <b>Project - Options for Target - Output</b> and change the content of the field <b>Name of Executable</b> to represent the device, here MCVM3XXX_16.</p>
+<div class="image">
+<img src="FPATargetOptions.png" alt="FPATargetOptions.png"/>
+<div class="caption">
+Options for Target 'Cortex-M'</div></div>
+ </li>
+<li>
+In the real world, you would now start to adapt the programming algorithms in the file <b>FlashPrg.c</b>. For now, only change the device parameters (Device Name, Device Size, and Sector Size) in the <b>FlashDev.c</b> file: <div class="fragment"><div class="line"><span class="keyword">struct </span>FlashDevice const FlashDevice = {</div>
+<div class="line"> FLASH_DRV_VERS, <span class="comment">// Driver Version, do not modify!</span></div>
+<div class="line"> <span class="stringliteral">&quot;MVCM3110/250 Flash&quot;</span>, <span class="comment">// Device Name </span></div>
+<div class="line"> ONCHIP, <span class="comment">// Device Type</span></div>
+<div class="line"> 0x00000000, <span class="comment">// Device Start Address</span></div>
+<div class="line"> 0x00004000, <span class="comment">// Device Size in Bytes (16kB)</span></div>
+<div class="line"> 1024, <span class="comment">// Programming Page Size</span></div>
+<div class="line"> 0, <span class="comment">// Reserved, must be 0</span></div>
+<div class="line"> 0xFF, <span class="comment">// Initial Content of Erased Memory</span></div>
+<div class="line"> 100, <span class="comment">// Program Page Timeout 100 mSec</span></div>
+<div class="line"> 3000, <span class="comment">// Erase Sector Timeout 3000 mSec</span></div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Specify Size and Address of Sectors</span></div>
+<div class="line"> 0x002000, 0x000000, <span class="comment">// Sector Size 8kB (2 Sectors)</span></div>
+<div class="line"> SECTOR_END</div>
+<div class="line">};</div>
+</div><!-- fragment --> </li>
+<li>
+Use <b>Project - Build Target</b> to generate the new Flash programming algorithm. The algorithm will be created in the parent directory of the <b>_Template_Flash</b> directory. </li>
+<li>
+Copy the output file <b>..\MVCM3XXX_16.FLM</b> to a new subdirectory called <b>Files\Flash</b>. Add these lines to the MVCM3110/250 device sections: <div class="fragment"><div class="line">algorithm name=<span class="stringliteral">&quot;Flash/MVCM3XXX_16.FLM&quot;</span> start=<span class="stringliteral">&quot;0x00000000&quot;</span> size=<span class="stringliteral">&quot;0x4000&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Create a <b>MVCM3XXX_32.flm</b> for the MVCM3120/260 devices. </li>
+<li>
+Add these lines to the MVCM3120/260 device sections: <div class="fragment"><div class="line">algorithm name=<span class="stringliteral">&quot;Flash/MVCM3XXX_32.FLM&quot;</span> start=<span class="stringliteral">&quot;0x00000000&quot;</span> size=<span class="stringliteral">&quot;0x8000&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new version number: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.3&quot;</span>&gt;</div>
+<div class="line"> Flash Programming Algorithms added</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+<p class="startli">Finally, save the PDSC file and regenerate the Pack file using the <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">gen_pack.bat</a> script. Afterwards, install the Pack in your development tool. Depending on your development environment, you will be able to see the Flash Programming Algorithms included in your project (either for a new project or by adding it manually to an existing project):</p>
+<div class="image">
+<img src="FPADisplay.png" alt="FPADisplay.png"/>
+<div class="caption">
+Display of Flash Programming Algorithm</div></div>
+ <dl class="section note"><dt>Note</dt><dd>The page <a class="el" href="_flash_algorithm.html">Flash Programming Algorithms</a> gives more information on the subject. </dd></dl>
+</li>
+</ol>
+<h1><a class="anchor" id="CP_DeviceProperties"></a>
+Device Properties</h1>
+<p>To limit redundancy, devices can be organized in two hierarchy groups:</p>
+<ul>
+<li><a class="el" href="pdsc_family_pg.html#element_family">family</a>: the attributes of a device family which includes also the processor.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a>: attributes of an optional sub-family; this adds or modifies features of a family.</li>
+</ul>
+<p>Parameters of each single device are defined in:</p>
+<ul>
+<li><a class="el" href="pdsc_family_pg.html#element_device">device</a>: attributes of a specific silicon device</li>
+<li><a class="el" href="pdsc_family_pg.html#element_variant">variant</a>: attributes of a device variant (for example, with different package or temperature range) or an OEM device or board that integrates the device.</li>
+</ul>
+<p>A device is described by the following properties:</p>
+<ul>
+<li><a class="el" href="pdsc_family_pg.html#element_description">description</a>: textual device description</li>
+<li><a class="el" href="pdsc_family_pg.html#element_feature">feature</a>: categorized list of device peripherals and features. This list is used on <a class="el" href="_create_pack__d_f_p.html#DevWebSite">web sites</a> for the display of device features.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_book">book</a>: documentation about the device and its processor(s)</li>
+<li><a class="el" href="pdsc_family_pg.html#element_processor">processor</a>: processor and processor features embedded in the device</li>
+<li><a class="el" href="pdsc_family_pg.html#element_compile">compile</a>: device specific general settings for the build tools</li>
+<li><a class="el" href="pdsc_family_pg.html#element_debugconfig">debugconfig</a>: default settings for a debug connection</li>
+<li><a class="el" href="pdsc_family_pg.html#element_debugport">debugport</a>: debug port description of the device for the debugger to configure a debug connection.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_debug">debug</a>: device specific information for the debugger to configure a debug connection including System View Description files.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_trace">trace</a>: device specific information for the debugger to configure trace.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_memory">memory</a>: memory layout of the device for internal and external RAM and ROM regions</li>
+<li><a class="el" href="pdsc_family_pg.html#element_algorithm">algorithm</a>: device specific Flash programming algorithms</li>
+</ul>
+<p>A device inherits all specifications from both the family and sub-family levels. Some properties are required to be unique. For example, the name of the SVD file attribute of the <b>&lt;debug&gt;</b> property. Therefore, the SVD file specified on the family level can be redefined by the attribute on the sub-family or device level. Other information like the &lt;description&gt; and &lt;feature&gt; entries are adding up, starting with the information from the family and sub-family level and finalizing with the information on the device level.</p>
+<p>The following shows how to specify the device properties for the MVCM3110 device (refer to the specification shown in <a class="el" href="_create_pack__d_f_p.html#CP_BasicDFP">Basic Device Family Pack</a>). The other members of the family are specified accordingly.</p>
+<p>Copy the <em>content</em> of the <b>05_Device_Properties</b> directory of the <b>Pack_with_Device_Support.zip</b> file to the <b>Files</b> directory of your working environment: </p>
+<ol>
+<li>
+The <b>MVCM3 Series</b> family properties <a class="el" href="pdsc_family_pg.html#element_processor">processor</a>, <a class="el" href="pdsc_family_pg.html#element_compile">compile</a>, <a class="el" href="pdsc_family_pg.html#element_description">description</a>, and <a class="el" href="pdsc_family_pg.html#element_debug">debug</a> are already specified. There are additional common properties that can be specified on the family level: <a class="el" href="pdsc_family_pg.html#element_book">book</a> and <a class="el" href="pdsc_family_pg.html#element_feature">feature</a>. Add the following lines to the PDSC file in the <b>&lt;family&gt;</b> section: <div class="fragment"><div class="line">&lt;book name=<span class="stringliteral">&quot;Docs/dui0552a_cortex_m3_dgug.pdf&quot;</span> title=<span class="stringliteral">&quot;Cortex-M3 Generic User Guide&quot;</span>/&gt;</div>
+<div class="line">&lt;book name=<span class="stringliteral">&quot;Docs/MVCM3XXX_Datasheet.pdf&quot;</span> title=<span class="stringliteral">&quot;MVCM3 Series Datasheet&quot;</span>/&gt;</div>
+<div class="line">&lt;book name=<span class="stringliteral">&quot;Docs/MVCM3XXX_Product_Brief.pdf&quot;</span> title=<span class="stringliteral">&quot;MVCM3 Product Brief&quot;</span>/&gt;</div>
+<div class="line">&lt;feature type=<span class="stringliteral">&quot;ExtInt&quot;</span> n=<span class="stringliteral">&quot;16&quot;</span>/&gt;</div>
+<div class="line">&lt;feature type=<span class="stringliteral">&quot;Temp&quot;</span> n=<span class="stringliteral">&quot;-40&quot;</span> m=<span class="stringliteral">&quot;105&quot;</span> name=<span class="stringliteral">&quot;Extended Temperature Range&quot;</span>/&gt;</div>
+<div class="line">&lt;feature type=<span class="stringliteral">&quot;VCC&quot;</span> n=<span class="stringliteral">&quot;2.5&quot;</span> m=<span class="stringliteral">&quot;3.6&quot;</span>/&gt;</div>
+<div class="line">&lt;feature type=<span class="stringliteral">&quot;RTC&quot;</span> n=<span class="stringliteral">&quot;32768&quot;</span>/&gt;</div>
+<div class="line">&lt;feature type=<span class="stringliteral">&quot;WDT&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+The <b>MVCM31xx</b> sub-family has some features that are common for the two member devices. Please add the following code to the MVCM31100 <b>&lt;subFamily&gt;</b> section: <div class="fragment"><div class="line">&lt;feature type=<span class="stringliteral">&quot;IOs&quot;</span> n=<span class="stringliteral">&quot;26&quot;</span>/&gt;</div>
+<div class="line">&lt;feature type=<span class="stringliteral">&quot;I2C&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line">&lt;feature type=<span class="stringliteral">&quot;UART&quot;</span> n=<span class="stringliteral">&quot;4&quot;</span>/&gt;</div>
+<div class="line">&lt;feature type=<span class="stringliteral">&quot;Timer&quot;</span> n=<span class="stringliteral">&quot;6&quot;</span> m=<span class="stringliteral">&quot;32&quot;</span>/&gt;</div>
+<div class="line">&lt;feature type=<span class="stringliteral">&quot;QFP&quot;</span> n=<span class="stringliteral">&quot;32&quot;</span>/&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+The <b>MVCM3110</b> device has some features that are unique to that device. Please add the following code to the MVCM3110 <b>&lt;device&gt;</b> section: <div class="fragment"><div class="line">&lt;feature type=<span class="stringliteral">&quot;PWM&quot;</span> n=<span class="stringliteral">&quot;2&quot;</span> m=<span class="stringliteral">&quot;16&quot;</span>/&gt;</div>
+</div><!-- fragment --> </li>
+</ol>
+<h2><a class="anchor" id="CP_DeviceSWComp"></a>
+Device Specific Software Components</h2>
+<p>Finally, <a class="el" href="_c_p__s_w_components.html#CP_Components">software components</a> and <a class="el" href="_c_p__s_w_components.html#CP_Examples">example projects</a> need to be added to the DFP. </p>
+<ol>
+<li>
+Add the following lines to the PDSC file in the <b>&lt;components&gt;</b> section: <div class="fragment"><div class="line">&lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;HAL&quot;</span> Csub=<span class="stringliteral">&quot;GPIO&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.0&quot;</span> condition=<span class="stringliteral">&quot;MVCM3 CMSIS-CORE&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;GPIO HAL <span class="keywordflow">for</span> MyVendor MVCM3 Series&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Device/Include/GPIO.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Device/Source/GPIO.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line">&lt;/component&gt;</div>
+<div class="line"></div>
+<div class="line">&lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;HAL&quot;</span> Csub=<span class="stringliteral">&quot;ADC&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.0&quot;</span> condition=<span class="stringliteral">&quot;MVCM3 CMSIS-CORE&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;ADC HAL <span class="keywordflow">for</span> MyVendor MVCM3 Series&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Device/Include/ADC.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Device/Source/ADC.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line">&lt;/component&gt;</div>
+<div class="line"></div>
+<div class="line">&lt;component Cclass=<span class="stringliteral">&quot;CMSIS Driver&quot;</span> Cgroup=<span class="stringliteral">&quot;I2C&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.0&quot;</span> condition=<span class="stringliteral">&quot;MVCM3 CMSIS-CORE&quot;</span> maxInstances=<span class="stringliteral">&quot;3&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;I2C Driver <span class="keywordflow">for</span> MVCM3 Series&lt;/description&gt;</div>
+<div class="line"> &lt;RTE_Components_h&gt;</div>
+<div class="line"><span class="preprocessor"> #define RTE_Drivers_I2C0 </span><span class="comment">/* Driver I2C0 */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define RTE_Drivers_I2C1 </span><span class="comment">/* Driver I2C1 */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define RTE_Drivers_I2C2 </span><span class="comment">/* Driver I2C2 */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span> &lt;/RTE_Components_h&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Drivers/I2C/I2C_MVCM3.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Drivers/I2C/I2C_MVCM3.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line">&lt;/component&gt;</div>
+<div class="line"></div>
+<div class="line">&lt;component Cclass=<span class="stringliteral">&quot;CMSIS Driver&quot;</span> Cgroup=<span class="stringliteral">&quot;UART&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.0&quot;</span> condition=<span class="stringliteral">&quot;MVCM3 CMSIS-CORE&quot;</span> maxInstances=<span class="stringliteral">&quot;5&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;UART Driver <span class="keywordflow">for</span> MVCM3 Series&lt;/description&gt;</div>
+<div class="line"> &lt;RTE_Components_h&gt;</div>
+<div class="line"><span class="preprocessor"> #define RTE_Drivers_UART0 </span><span class="comment">/* Driver UART0 */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define RTE_Drivers_UART1 </span><span class="comment">/* Driver UART1 */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define RTE_Drivers_UART2 </span><span class="comment">/* Driver UART2 */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define RTE_Drivers_UART3 </span><span class="comment">/* Driver UART3 */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define RTE_Drivers_UART4 </span><span class="comment">/* Driver UART4 */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span> &lt;/RTE_Components_h&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Drivers/UART/UART_MVCM3.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Drivers/UART/UART_MVCM3.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line">&lt;/component&gt;</div>
+</div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>The first two software components are added to <b>Device::HAL</b> because they are specific to the device family and are not using a published API. The drivers for I2C and UART are adhering to the <a href="http://www.keil.com/cmsis/driver" class="el" target="_blank">CMSIS-Driver</a> specification. Thus, they are added to the Cclass <b>CMSIS Driver</b>. </dd></dl>
+</li>
+<li>
+An example project has also been created. Add an <b>&lt;examples&gt;</b> section with the following: <div class="fragment"><div class="line">&lt;examples&gt;</div>
+<div class="line"> &lt;example name=<span class="stringliteral">&quot;Dummy&quot;</span> doc=<span class="stringliteral">&quot;Abstract.txt&quot;</span> folder=<span class="stringliteral">&quot;Examples/dummy&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Dummy project&lt;/description&gt;</div>
+<div class="line"> &lt;board name=<span class="stringliteral">&quot;MVCM3 Starter Kit&quot;</span> vendor=<span class="stringliteral">&quot;MyVendor&quot;</span>/&gt;</div>
+<div class="line"> &lt;project&gt;</div>
+<div class="line"> &lt;environment name=<span class="stringliteral">&quot;uv&quot;</span> load=<span class="stringliteral">&quot;dummy.uvprojx&quot;</span>/&gt;</div>
+<div class="line"> &lt;/project&gt;</div>
+<div class="line"> &lt;attributes&gt;</div>
+<div class="line"> &lt;category&gt;Getting Started&lt;/category&gt;</div>
+<div class="line"> &lt;/attributes&gt;</div>
+<div class="line"> &lt;/example&gt;</div>
+<div class="line">&lt;/examples&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new version number: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.4&quot;</span>&gt;</div>
+<div class="line"> DFP finalized</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Finally, save the PDSC file and regenerate the Pack file using the <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">gen_pack.bat</a> script. Afterwards, install the Pack in your development tool. </li>
+</ol>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:42 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_create_pack_board.html b/CMSIS/Documentation/Pack/html/_create_pack_board.html
new file mode 100644
index 0000000..f34be8c
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_create_pack_board.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Pack with Board Support</title>
+<title>CMSIS-Pack: Pack with Board Support</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_create_pack_board.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Pack with Board Support </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>A <a class="el" href="_c_p__s_w_components.html">Software Pack</a> that contains a <a class="el" href="pdsc_boards_pg.html">&lt;board&gt;</a> element is called Board Support Pack (BSP). A BSP may contain additional <b>Software Components</b>, <b>Example Projects</b>, as well as <b>Code Templates</b>. The typical content of a BSP is:</p>
+<ul>
+<li>Source code, libraries, header/configuration files for the underlying hardware and documentation (for example user manuals, getting started guides, and schematics).</li>
+<li><a class="el" href="_c_p__s_w_components.html#CP_Examples">Example Projects</a> that show the usage of the development board and its peripherals.</li>
+<li><a class="el" href="_c_p__s_w_components.html#CP_CodeTemplates">User Code Templates</a> that can be used as a starting point for using the development board or the mounted device.</li>
+</ul>
+<p>This section is a tutorial that explains how to create a BSP. Initially the PDSC file in the BSP only describes an evaluation board. This BSP is then extended to contain also software components that interface with the hardware of the board. Example projects and code templates may be added as described in the section <a class="el" href="_c_p__s_w_components.html">Pack with Software Components</a>.</p>
+<h2>BSP Use Cases</h2>
+<p>A BSP is typically provided by a Board Vendor and is used to <b>extend development tools</b> with support for development boards. In general, the BSP enables Board Vendors to distribute tool independent board support for their development platforms.<br/>
+ BSPs can also be used to provide information for the display on <b>web sites</b>. One example is the new boards page on <a href="http://www.keil.com/boards2/" class="el" target="_blank">www.keil.com/boards2/</a>:</p>
+<div class="image">
+<img src="BoardsSectionMCB1500.png" alt="BoardsSectionMCB1500.png"/>
+<div class="caption">
+Board information on a web site extracted from a BSP</div></div>
+ <h1><a class="anchor" id="CP_SpecDevBoard"></a>
+Specify a Development Board</h1>
+<p><b>Preparations</b></p>
+<ol type="1">
+<li>Install the Software Pack <a href="http://www.keil.com/dd2/arm/armcm3/" class="el" target="_blank">Keil::ARMCortex_DFP</a> as this will be required for the BSP to function properly.</li>
+<li>Create a working directory on your PC, for example <b>C:\temp\working_bsp</b>.</li>
+<li>Go to the directory <b>\CMSIS\Pack\Tutorials</b> available in the <b>ARM::CMSIS</b> Pack installation. Please consult your development tool's documentation for more information on the Pack installation directory structure. In a standard µVision installation, you will find it below <b>C:\Keil_v5\ARM\Pack\ARM\CMSIS\<em>version</em></b>.</li>
+<li>Open the file <b>Pack_with_Board_Support.zip</b>.</li>
+<li>Copy the <em>content</em> of the ZIP file's <b>01_Specify_Dev_Board</b> directory into your working directory.</li>
+<li>Make sure that files/directories are not write protected (remove read-only flag).</li>
+<li>Copy from the directory <b>\CMSIS\Utilities</b> available in the <b>ARM::CMSIS</b> Pack installation the following files into your working directory:<ul>
+<li>PackChk.exe</li>
+<li>PACK.xsd</li>
+</ul>
+</li>
+<li>Open the <b>MyVendor.MyBSP.pdsc</b> file in an editor.</li>
+</ol>
+<p><b>Code Example</b> </p>
+<ol>
+<li>
+Add a <a class="el" href="pdsc_boards_pg.html#element_boards">&lt;boards&gt;</a> section in the PDSC file with the following: <div class="fragment"><div class="line">&lt;boards&gt;</div>
+<div class="line"> &lt;board vendor=<span class="stringliteral">&quot;MyVendor&quot;</span> name=<span class="stringliteral">&quot;MyDevBoard&quot;</span> revision=<span class="stringliteral">&quot;V1&quot;</span> salesContact=<span class="stringliteral">&quot;sales@keil.com&quot;</span> orderForm=<span class="stringliteral">&quot;http://www.keil.com&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;MyVendor MyDevBoard Board Description&lt;/description&gt;</div>
+<div class="line"> &lt;image small=<span class="stringliteral">&quot;Images/MyDevBoard_small.png&quot;</span> large=<span class="stringliteral">&quot;Images/MyDevBoard_large.png&quot;</span>/&gt;</div>
+<div class="line"> &lt;book category=<span class="stringliteral">&quot;setup&quot;</span> name=<span class="stringliteral">&quot;Docs/MyDevBoard/MyDevBoard_setup.pdf&quot;</span> title=<span class="stringliteral">&quot;Getting Started&quot;</span>/&gt;</div>
+<div class="line"> &lt;book category=<span class="stringliteral">&quot;schematic&quot;</span> name=<span class="stringliteral">&quot;Docs/MyDevBoard/MyDevBoard_schematics.pdf&quot;</span> title=<span class="stringliteral">&quot;Schematics&quot;</span>/&gt;</div>
+<div class="line"> &lt;book category=<span class="stringliteral">&quot;manual&quot;</span> name=<span class="stringliteral">&quot;Docs/MyDevBoard/MyDevBoard_um.pdf&quot;</span> title=<span class="stringliteral">&quot;User Manual&quot;</span>/&gt;</div>
+<div class="line"> &lt;mountedDevice deviceIndex=<span class="stringliteral">&quot;0&quot;</span> Dvendor=<span class="stringliteral">&quot;ARM:82&quot;</span> Dname=<span class="stringliteral">&quot;ARMCM3&quot;</span>/&gt;</div>
+<div class="line"> &lt;compatibleDevice deviceIndex=<span class="stringliteral">&quot;0&quot;</span> Dvendor=<span class="stringliteral">&quot;ARM:82&quot;</span> Dfamily=<span class="stringliteral">&quot;ARM Cortex M3&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;ODbg&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;On-board J-LINK Lite&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;PWR&quot;</span> n=<span class="stringliteral">&quot;5&quot;</span> name=<span class="stringliteral">&quot;USB Powered&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;DIO&quot;</span> n=<span class="stringliteral">&quot;8&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;SPI&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;LED&quot;</span> n=<span class="stringliteral">&quot;6&quot;</span> name=<span class="stringliteral">&quot;User LEDs&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;ArduinoFF&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;debugInterface adapter=<span class="stringliteral">&quot;J-Link Lite&quot;</span> connector=<span class="stringliteral">&quot;Mini-USB&quot;</span>/&gt;</div>
+<div class="line"> &lt;/board&gt;</div>
+<div class="line">&lt;/boards&gt;</div>
+</div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>All code examples in this and the following sections can be found in the <code>snippets.xml</code> file in the <b>01_Specify_Dev_Board</b> directory. </dd></dl>
+</li>
+<li>
+<p class="startli">Finally, save the PDSC file and generate the Pack file using the <b>gen_pack.bat</b> script. See <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">Generate a Pack</a> for further details. Afterwards, install the Pack in your development tool.</p>
+<div class="image">
+<img src="DevBoardDisplay.png" alt="DevBoardDisplay.png"/>
+<div class="caption">
+Display of development boards in development tools</div></div>
+ </li>
+</ol>
+<dl class="section note"><dt>Note</dt><dd>PackChk.exe will display <b>M346</b> informations: <pre class="fragment">*** WARNING M346: .\Files\MyVendor.MyBSP.pdsc (Line 29)
+ Referenced device(s) in 'MyDevBoard' not found: 'ARMCM3'
+
+*** WARNING M346: .\Files\MyVendor.MyBSP.pdsc (Line 29)
+ Referenced device(s) in 'MyDevBoard' not found: 'ARM Cortex M3'
+</pre> This is because this BSP does not contain a device section with the mentioned devices. To work aroung this problem, you might add the ARM:CMSIS PDSC file to the checking process.</dd></dl>
+<h1><a class="anchor" id="CP_BundleExample"></a>
+Create a BSP Bundle</h1>
+<p>A bundle is basically a variant on the <code>Cclass</code> level. It specifies the attributes <code>Cclass</code>, <code>Cversion</code> and optionally <code>Cgroup</code> and <code>Cvendor</code> for a collection of interdependent components. Components within a bundle inherit the attributes set by the bundle and must not set these attributes again. Bundles ensure consistency of attributes across multiple interworking components and restrict the mix and match of components within a <code>Cclass</code> from different solutions. In addition to components, a bundle has the mandatory elements <code>description</code> and <code>doc</code> (for documentation).</p>
+<p>Copy the <em>content</em> of the <b>02_BSP_Bundle</b> directory of the <b>Pack_with_Board_Support.zip</b> file to the <b>Files</b> directory in your working environment: </p>
+<ol>
+<li>
+Add a <code>&lt;conditions&gt;</code> section in your PDSC with the following (the <a class="el" href="_c_p__s_w_components.html#CP_Conditions">conditions</a> section provides more information on this step): <div class="fragment"><div class="line">&lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;ARM Cortex M3 Series&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;ARM Cortex M3 device required&lt;/description&gt;</div>
+<div class="line"> &lt;require Dfamily=<span class="stringliteral">&quot;ARM Cortex M3&quot;</span> Dvendor=<span class="stringliteral">&quot;ARM:82&quot;</span>/&gt;</div>
+<div class="line">&lt;/condition&gt;</div>
+<div class="line">&lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;MyDevBoard Board Setup&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Board Setup Code required&lt;/description&gt;</div>
+<div class="line"> &lt;require condition=<span class="stringliteral">&quot;ARM Cortex M3 Series&quot;</span>/&gt;</div>
+<div class="line"> &lt;require Cclass=<span class="stringliteral">&quot;Board Support&quot;</span> Cgroup=<span class="stringliteral">&quot;Board Setup&quot;</span>/&gt;</div>
+<div class="line">&lt;/condition&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a <code>&lt;components&gt;</code> section in your PDSC with the following (the <a class="el" href="_c_p__s_w_components.html#CP_Components">components</a> section provides more information on this step): <div class="fragment"><div class="line">&lt;bundle Cbundle=<span class="stringliteral">&quot;MyDevBoardSupport&quot;</span> Cclass=<span class="stringliteral">&quot;Board Support&quot;</span> Cversion=<span class="stringliteral">&quot;1.0.1&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;MyDevBoard custom board support package&lt;/description&gt;</div>
+<div class="line"> &lt;doc&gt;Docs/BSP/MyBSP.htm&lt;/doc&gt;</div>
+<div class="line"> &lt;component Cgroup=<span class="stringliteral">&quot;Board Setup&quot;</span> condition=<span class="stringliteral">&quot;ARM Cortex M3 Series&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;Custom board setup code&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Docs/BSP/Setup.htm&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Include/setup.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Source/setup.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line"> &lt;component Cgroup=<span class="stringliteral">&quot;I/O&quot;</span> Csub=<span class="stringliteral">&quot;LED&quot;</span> condition=<span class="stringliteral">&quot;MyDevBoard Board Setup&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;LED code <span class="keywordflow">for</span> custom board&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Docs/BSP/LED.htm&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Include/led.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Include/config_led.h&quot;</span> attr=<span class="stringliteral">&quot;config&quot;</span> version=<span class="stringliteral">&quot;1.0.0&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Source/led.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line"> &lt;component Cgroup=<span class="stringliteral">&quot;I/O&quot;</span> Csub=<span class="stringliteral">&quot;GPIO&quot;</span> condition=<span class="stringliteral">&quot;MyDevBoard Board Setup&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;GPIO code <span class="keywordflow">for</span> custom board&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Docs/BSP/GPIO.htm&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Include/gpio.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Include/config_gpio.h&quot;</span> attr=<span class="stringliteral">&quot;config&quot;</span> version=<span class="stringliteral">&quot;1.0.0&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;MySWComp/Source/gpio.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line">&lt;/bundle&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+Add a new version number: <div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.0.1&quot;</span>&gt;</div>
+<div class="line"> Board support bundle added</div>
+<div class="line">&lt;/release&gt;</div>
+</div><!-- fragment --> </li>
+<li>
+<p class="startli">Finally, save the PDSC file and regenerate the Pack file using the <a class="el" href="_c_p__s_w_components.html#CP_GeneratePack">gen_pack.bat</a> script. Afterwards, install the Pack in your development tool and observe the differences to version 1.0.0.</p>
+<div class="image">
+<img src="BSPBundleDisplay.png" alt="BSPBundleDisplay.png"/>
+<div class="caption">
+BSP bundle display in development tools</div></div>
+ </li>
+</ol>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:42 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_create_pack_publish.html b/CMSIS/Documentation/Pack/html/_create_pack_publish.html
new file mode 100644
index 0000000..5db2967
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_create_pack_publish.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Publish a Pack</title>
+<title>CMSIS-Pack: Publish a Pack</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_create_pack_publish.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Publish a Pack </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>There are multiple ways to distribute a Software Pack:</p>
+<h1><a class="anchor" id="CP_LocalInstallation"></a>
+Local Installation</h1>
+<p>The easiest way to distribute a Software Pack is attaching it to an email or using other means of electronic distribution (for example using a company internal file server). The installation of a Software Pack is usually triggered by double-clicking the PACK file. The Pack management tool is invoked and the Pack is installed on the local machine. After installation, the Pack will be shown in the list of installed Packs (tool dependent). If the PDSC file does not contain a valid <code>&lt;url&gt;</code> element, a manual installation is required to update a Software Pack. Otherwise, Pack management tools can check for updates on the server or the local machine that is specified by <code>&lt;url&gt;</code>.</p>
+<div class="image">
+<img src="LocalInstallation.png" alt="LocalInstallation.png"/>
+<div class="caption">
+Local installation and update from URL</div></div>
+ <dl class="section note"><dt>Note</dt><dd>For automatic updates on a local machine, specify the <code>&lt;url&gt;</code> using the <a href="https://en.wikipedia.org/wiki/File_URI_scheme" target="_blank">file URI scheme</a>.</dd></dl>
+<h1><a class="anchor" id="CP_WebDownload"></a>
+Web Download</h1>
+<p>Any web server can be used to host a Software Pack (specified by the <code>&lt;url&gt;</code> element in the PDSC file). At this location, at least two files need to be present (refer to <a class="el" href="_c_p__packs.html#PackFilenames">Pack Conventions</a>):</p>
+<ol type="1">
+<li><b>&lt;vendor&gt;</b>.<b>&lt;name&gt;</b>.pdsc</li>
+<li><b>&lt;vendor&gt;</b>.<b>&lt;name&gt;</b>.<b>&lt;version&gt;</b>.pack, where <b>&lt;version&gt;</b> refers to the latest version specified in the PDSC file.</li>
+</ol>
+<p>All previous versions listed in the <b>&lt;releases&gt;</b> section of the PDSC file should be present in that folder as well. This will enable customers to revert updates or to be able to download a specific version of a Software Pack (for code maintenance purposes for example).</p>
+<p>Depending on the Pack management tool, a Pack Index Server might be in place that gathers information about published Packs in an index file. This information is then used in the management tool to retrieve version information and to trigger updates of Packs within the development environment.</p>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>It is important to understand how the &lt;url&gt; element works. If you specify a URL, for example <a href="http://www.keil.com/pack/" target="_blank">http://www.keil.com/pack</a>, then you have to make the PDSC file and the corresponding PACK file(s) available for download at that exact location. The naming of the files follow the standard naming rules. For example, the ARM::CMSIS PDSC and Pack files are available here:<br/>
+ <a href="http://www.keil.com/pack/ARM.CMSIS.pdsc" target="_blank">http://www.keil.com/pack/ARM.CMSIS.pdsc</a> and <br/>
+ <a href="http://www.keil.com/pack/ARM.CMSIS.4.3.0.pack" target="_blank">http://www.keil.com/pack/ARM.CMSIS.4.3.0.pack</a> and <br/>
+ <a href="http://www.keil.com/pack/ARM.CMSIS.4.2.0.pack" target="_blank">http://www.keil.com/pack/ARM.CMSIS.4.2.0.pack</a> and ... <br/>
+ At the specified location, you need to have one (unversioned) PDSC file and can have multiple versioned PACK files, but at least the latest one.</li>
+<li>If the URL or the PDSC/PACK files become unavailable (temporarily or permanently), users will not be able to retrieve updates.</li>
+<li>Do not replace PDSC/PACK files without updating the version number because the Pack management tools will not recognize the update unless the version has been changed.</li>
+<li>Older PACKs should remain available.</li>
+</ul>
+</dd></dl>
+<div class="image">
+<img src="WebInstallation.png" alt="WebInstallation.png"/>
+<div class="caption">
+Web installation and update</div></div>
+ <h1><a class="anchor" id="CP_KeilComPack"></a>
+Publishing on www.keil.com/pack</h1>
+<p>ARM tries to maintain a list of all available Software Packs. If a Software Pack is intended to be on that list, its PDSC file needs to be sent to to the following email address: <a href="#" onclick="location.href='mai'+'lto:'+'cms'+'is'+'@ar'+'m.'+'com'; return false;">cmsis<span style="display: none;">.nosp@m.</span>@arm<span style="display: none;">.nosp@m.</span>.com</a>. The PDSC file will be manually XML validated. The following content will be processed in order to generate the web site and index file (<a href="www.keil.com/pack/index.idx" class="el" target="_blank">www.keil.com/pack/index.idx</a>):</p>
+<ul>
+<li>Version</li>
+<li>Release Notes</li>
+<li>Devices</li>
+<li>Boards</li>
+<li>Examples</li>
+<li>Software Components</li>
+</ul>
+<p>Please allow up to seven working days for the process. If the file contains any errors, you will be notified. Otherwise, it will be uploaded to <a href="www.keil.com/pack" class="el" target="_blank">www.keil.com/pack</a>. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_create_pack_util.html b/CMSIS/Documentation/Pack/html/_create_pack_util.html
new file mode 100644
index 0000000..0e1434d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_create_pack_util.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Utilities for Creating Packs</title>
+<title>CMSIS-Pack: Utilities for Creating Packs</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_create_pack_util.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Utilities for Creating Packs </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Software Packs are ZIP files that contain a <a class="el" href="_pack_format.html">PDSC</a> file and other content, that is specified within the PDSC file in XML. While the PDSC file can be created with any text editor, some of the contents have to be generated by additional programs. Also, verification of a PDSC file requires the help of additional tools. This section gives and overview over programs that are either part of the CMSIS Pack or are available for download on the Internet.</p>
+<ul>
+<li><a class="el" href="_pack_chk.html">PackChk.exe</a> is part of the CMSIS Pack and is used to check the validity of a PDSC file.</li>
+<li>Validation of SVD files with <a href="../../SVD/html/svd_validate_file_pg.html"><b>SVDConv.exe</b></a> is required for SVD files that are part of <a class="el" href="index.html#SWPackVariants">Device Family Packs</a>.</li>
+<li>Several <a class="el" href="_c_p__editors.html">XML Editors</a> can verify XML files using the XML schema files that are part of the CMSIS Pack.</li>
+<li><a class="el" href="_c_p__z_i_p_tool.html">ZIP Compression Tools</a> create the actual ZIP archive of a Software Pack. </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_create_pack_util.js b/CMSIS/Documentation/Pack/html/_create_pack_util.js
new file mode 100644
index 0000000..036fa88
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_create_pack_util.js
@@ -0,0 +1,8 @@
+var _create_pack_util =
+[
+ [ "PackChk.exe", "_pack_chk.html", [
+ [ "Error and Warning Messages", "_pack_chk.html#PackChkMessages", null ]
+ ] ],
+ [ "XML Editors", "_c_p__editors.html", null ],
+ [ "ZIP Compression Tools", "_c_p__z_i_p_tool.html", null ]
+]; \ No newline at end of file
diff --git a/CMSIS/Documentation/Pack/html/_flash_algorithm.html b/CMSIS/Documentation/Pack/html/_flash_algorithm.html
new file mode 100644
index 0000000..5630724
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_flash_algorithm.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Flash Programming Algorithms</title>
+<title>CMSIS-Pack: Flash Programming Algorithms</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_flash_algorithm.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Flash Programming Algorithms </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="toc"><h3>Table of Contents</h3>
+<ul><li class="level1"><a href="#CreateFPA">Creating a new Algorithm</a></li>
+<li class="level1"><a href="#AddFPA">Adding an Algorithm to a Pack</a></li>
+</ul>
+</div>
+<div class="textblock"><p><b>Flash Programming Algorithms</b> are a piece of software to erase or download applications to Flash devices. A <a class="el" href="_create_pack__d_f_p.html">Pack with Device Support</a> usually contains predefined Flash algorithms for programming the devices that are supported by the DFP. A template for creating new algorithms are available in the <b>ARM:CMSIS</b> Pack. The following section describes the process in more detail.</p>
+<h1><a class="anchor" id="CreateFPA"></a>
+Creating a new Algorithm</h1>
+<p>Flash programming algorithms are defined with functions to erase and program the Flash device. Special compiler and linker settings are required. Follow these steps to create and configure a new Flash programming algorithm:</p>
+<ol type="1">
+<li>Copy the content from the <b>ARM:CMSIS</b> Pack folder (usually C:\Keil\ARM\Pack\ARM\CMSIS\<em>version</em>\Device\_Template_Flash) to a new folder.</li>
+<li>Rename the project file <b>NewDevice.uvproj</b> to represent the new Flash ROM device name, for example <b>MyDevice.uvproj</b>.</li>
+<li>Open the project with uVision. From the toolbar, use the drop-down <b>Select Target</b> to define the processor architecture. <b>Cortex-M</b> fits for all Cortex-M0/M0+, M3, and M4 devices. The configuration assumes a little-endian microcontroller. In case of a big-endian microcontroller, select the correct processor core with <b>Project</b> - <b>Options for Target</b> - <b>Device</b>.</li>
+<li>Open the dialog <b>Project</b> - <b>Options for Target</b> - <b>Output</b> and change the content of the field <b>Name of Executable</b> to represent the device, for example <b>MyDevice</b>.</li>
+<li>Adapt the programming algorithms in the file <a class="el" href="_flash_algorithm.html#FlashPrg">FlashPrg</a>.</li>
+<li>Adapt the device parameters in the file <a class="el" href="_flash_algorithm.html#FlashDev">FlashDev</a>.</li>
+<li>Use <b>Project</b> - <b>Build Target</b> to generate the new Flash programming algorithm. The output file (for example <b>MyDevice.FLM</b>) has to be <a class="el" href="_flash_algorithm.html#AddFPA">added</a> to the <b>DFP</b>.</li>
+</ol>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>Creating a Flash programming algorithm with <a href="http://www.keil.com/arm/selector.asp" class="el" target="_blank">MDK-Lite</a> is not supported.</li>
+<li>Flash programming algorithms use <b>Read-Only Position Independent</b> and <b>Read-Write Position Independent</b> program code. These options are set in the dialogs <b>Project</b> - <b>Options for Target</b> - <b>C/C++</b> and <b>Project</b> - <b>Options for Target</b> - <b>Asm</b>.</li>
+<li>The dialog <b>Project</b> - <b>Options for Target</b> - <b>Linker</b> defines the linker scatter file <b>Target.lin</b>. The error L6305 is disabled with <code>&ndash;diag_suppress</code> <code>L6305</code>.</li>
+<li>The <a class="el" href="_algorithm_func.html">Flash Algorithm Functions</a> section contains reference for all the available functions.</li>
+</ul>
+</dd></dl>
+<p><a class="anchor" id="FlashPrg"></a></p>
+<h2>FlashPrg.c</h2>
+<p>The file <b>FlashPrg.c</b> contains the mandatory Flash programming functions <a class="el" href="_algorithm_func.html#Init">Init</a>, <a class="el" href="_algorithm_func.html#UnInit">UnInit</a>, <a class="el" href="_algorithm_func.html#EraseSector">EraseSector</a>, and <a class="el" href="_algorithm_func.html#ProgramPage">ProgramPage</a>. Optionally, depending on the device features (or to speed-up execution), the functions <a class="el" href="_algorithm_func.html#EraseChip">EraseChip</a>, <a class="el" href="_algorithm_func.html#BlankCheck">BlankCheck</a>, and <a class="el" href="_algorithm_func.html#Verify">Verify</a> can be implemented.</p>
+<p><a class="anchor" id="FlashDev"></a></p>
+<h2>FlashDev.c</h2>
+<p>The file <b>FlashDev.c</b> contains parameter definitions for:</p>
+<ol type="1">
+<li>the Flash programming functions.</li>
+<li>the <b>FlashDevice</b> structure: <div class="fragment"><div class="line"><span class="keyword">struct </span>FlashDevice const FlashDevice = {</div>
+<div class="line">FLASH_DRV_VERS, <span class="comment">// Driver Version, do not modify!</span></div>
+<div class="line"><span class="stringliteral">&quot;STM32Fxxx High-density Flash&quot;</span>, <span class="comment">// Device Name (512kB/384kB/256kB)</span></div>
+<div class="line">ONCHIP, <span class="comment">// Device Type</span></div>
+<div class="line">0x08000000, <span class="comment">// Device Start Address</span></div>
+<div class="line">0x00080000, <span class="comment">// Device Size in Bytes (512kB)</span></div>
+<div class="line">1024, <span class="comment">// Programming Page Size</span></div>
+<div class="line">0, <span class="comment">// Reserved, must be 0</span></div>
+<div class="line">0xFF, <span class="comment">// Initial Content of Erased Memory</span></div>
+<div class="line">100, <span class="comment">// Program Page Timeout 100 mSec</span></div>
+<div class="line">500, <span class="comment">// Erase Sector Timeout 500 mSec</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// Specify Size and Address of Sectors</span></div>
+<div class="line">0x0800, 0x000000, <span class="comment">// Sector Size 2kB (256 Sectors)</span></div>
+<div class="line">SECTOR_END</div>
+<div class="line">};</div>
+</div><!-- fragment --></li>
+</ol>
+<dl class="section note"><dt>Note</dt><dd>The <b>Device Name</b> will usually be shown in tools to identify the Flash algorithm. Make sure that this is changed to the correct device name from the DFP.</dd></dl>
+<h2>Testing Algorithms</h2>
+<p>The _Template_Flash\Test-folder contains a project that shows how to test a new Flash programming algorithm on behalf of a STM32F10x device. Adapt the code to your needs.</p>
+<h1><a class="anchor" id="AddFPA"></a>
+Adding an Algorithm to a Pack</h1>
+<p>The generated <b>*.FLM</b> file needs to be added to the <a class="el" href="_create_pack__d_f_p.html">Pack with Device Support</a>, so that it is available to the tool user for programming his device. Usually, a directory <b>Flash</b> is created and the algorithm is saved in this directory.</p>
+<p>The algorithm is specified within the the <a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> level: </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;algorithm name=<span class="stringliteral">&quot;Flash/STM32F2xx_512.flm&quot;</span> start=0x08000000 size=0x10000 <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt; &lt;!-- valid <span class="keywordflow">for</span> all devices of the family --&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;STM32F405&quot;</span>&gt;</div>
+<div class="line"> &lt;algorithm name=<span class="stringliteral">&quot;Flash/STM32F2xx_1024.flm&quot;</span> start=0x08000000 size=0x20000 <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt; &lt;!-- valid <span class="keywordflow">for</span> all devices of a subFamily --&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F405OE&quot;</span>&gt;</div>
+<div class="line"> &lt;algorithm name=<span class="stringliteral">&quot;Flash/STM32F2xx_2048.flm&quot;</span> start=0x08000000 size=0x40000 <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt; &lt;!-- <span class="keywordflow">finally</span>, <span class="keyword">this</span> is the <span class="keywordflow">default</span> <span class="keywordflow">for</span> the device --&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>The argument <em>start</em> specifies the base address for the Flash programming algorithm.</p>
+<p>The argument <em>size</em> specifies the size covered by the Flash programming algorithm. End address = start + size - 1.</p>
+<p>The argument <em>default</em> specifies whether a Flash programming algorithm is set as the default algorithm in a project (when <span class="XML-Token">true</span>). If <em>default</em> is not set or false, the Flash programming algorithm can be configured on a lower level. However, the Flash programming algorithm of a project can be changed manually at any time during development. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_flash_algorithm.js b/CMSIS/Documentation/Pack/html/_flash_algorithm.js
new file mode 100644
index 0000000..9002c2c
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_flash_algorithm.js
@@ -0,0 +1,14 @@
+var _flash_algorithm =
+[
+ [ "Creating a new Algorithm", "_flash_algorithm.html#CreateFPA", null ],
+ [ "Adding an Algorithm to a Pack", "_flash_algorithm.html#AddFPA", null ],
+ [ "Algorithm Functions", "_algorithm_func.html", [
+ [ "BlankCheck", "_algorithm_func.html#BlankCheck", null ],
+ [ "EraseChip", "_algorithm_func.html#EraseChip", null ],
+ [ "EraseSector", "_algorithm_func.html#EraseSector", null ],
+ [ "Init", "_algorithm_func.html#Init", null ],
+ [ "ProgramPage", "_algorithm_func.html#ProgramPage", null ],
+ [ "UnInit", "_algorithm_func.html#UnInit", null ],
+ [ "Verify", "_algorithm_func.html#Verify", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/CMSIS/Documentation/Pack/html/_pack__example.html b/CMSIS/Documentation/Pack/html/_pack__example.html
new file mode 100644
index 0000000..cc3913f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_pack__example.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Pack Example</title>
+<title>CMSIS-Pack: Pack Example</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_pack__example.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Pack Example </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The <b>ARM::CMSIS</b> Pack contains an example of a Software Pack that contains device support, board support and software components. This Pack can be used as a reference for user generated Software Packs. It is available in the directory \CMSIS\Pack\Example. It contains a <a class="el" href="_pack__example.html#PE_PDSC">PDSC example file</a> and all sub-directories containing the files referenced in the PDSC. <br/>
+ The example is a <a class="el" href="_create_pack__d_f_p.html">DFP</a> for NXP's LPC1800 series of microcontrollers. It also contains <a class="el" href="_create_pack_board.html">BSP</a> information and software components, mainly peripheral drivers. Some of the drivers adhere to the <a href="../../Driver/html/index.html" class="el" target="_blank">CMSIS-Driver</a> standard. This is the layout of the sub-directories: </p>
+<table class="doxtable">
+<tr>
+<th>Directory </th><th>Content </th><th>Section in PDSC </th></tr>
+<tr>
+<td><b>Boards</b> </td><td>CMSIS-RTOS Blinky uVision project running on the MCB1800 development board </td><td><a class="el" href="pdsc_examples_pg.html">&lt;examples&gt;</a> </td></tr>
+<tr>
+<td><a class="el" href="_pack__example.html#PE_CMSIS_Driver">CMSIS_Driver</a></td><td><a href="../../Driver/html/index.html"><b>CMSIS-Driver</b></a> compliant peripheral drivers</td><td><a class="el" href="pdsc_components_pg.html#element_component">&lt;component&gt;</a> </td></tr>
+<tr>
+<td><a class="el" href="_pack__example.html#PE_Device">Device</a> </td><td><a href="../../Core/html/index.html"><b>CMSIS-CORE</b></a> files for LPC1800 series </td><td><a class="el" href="pdsc_family_pg.html#element_device">&lt;device&gt;</a> </td></tr>
+<tr>
+<td><a class="el" href="_pack__example.html#PE_Documents">Documents</a> </td><td>Documentation for devices and boards </td><td><a class="el" href="pdsc_family_pg.html#element_book">&lt;book&gt;</a> </td></tr>
+<tr>
+<td><b>Flash</b> </td><td><a class="el" href="_flash_algorithm.html">Flash Programming Algorithms</a> and a sub-directory called <b>LPC18xx43xx_IAP</b> containing a uVision project for IAP (In-Application Programming) support</td><td><a class="el" href="pdsc_family_pg.html#element_algorithm">&lt;algorithm&gt;</a> </td></tr>
+<tr>
+<td><b>Images</b> </td><td>Images of the MCB1800 development board </td><td><a class="el" href="pdsc_boards_pg.html">&lt;board&gt;</a> </td></tr>
+<tr>
+<td><b>SVD</b> </td><td><a href="../../SVD/html/index.html"><b>SVD</b></a> file for LPC1800 series </td><td><a class="el" href="pdsc_family_pg.html#element_debug">&lt;debug&gt;</a> </td></tr>
+</table>
+<p><a class="anchor" id="PE_PDSC"></a></p>
+<h2>PDSC Example File</h2>
+<p>The PDSC file that is included in the example Pack is called <b>Keil.LPC1800_DFP.pdsc.txt</b>. The extension <code>txt</code> has been added to hide the file from development tools as it is not intended for installation. The file contains the following top level elements: </p>
+<table class="doxtable">
+<tr>
+<th>XML Element </th><th>Purpose </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html">&lt;package&gt;</a> </td><td>Publish Pack information like vendor, name, version, etc. </td></tr>
+<tr>
+<td><a class="el" href="pdsc_devices_pg.html">&lt;devices&gt;</a> </td><td>Define four sub-families with 16 devices in total. </td></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html">&lt;boards&gt;</a> </td><td>Show MCB1800 development board information. </td></tr>
+<tr>
+<td><a class="el" href="pdsc_conditions_pg.html">&lt;conditions&gt;</a> </td><td>Declare required conditions for software components. </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html">&lt;components&gt;</a> </td><td>Include startup/system files, HAL drivers, and CMSIS-Driver 2.0 compliant peripheral drivers. </td></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html">&lt;examples&gt;</a> </td><td>Contain a CMSIS-RTOS Blinky example project for uVision running on the MCB1800 development board. </td></tr>
+</table>
+<p><a class="anchor" id="PE_CMSIS_Driver"></a></p>
+<h2>Directory CMSIS_Driver</h2>
+<p>The <b>CMSIS_Driver</b> directory contains the following <a href="../../Driver/html/index.html" class="el" target="_blank">CMSIS-Driver</a> compliant peripheral drivers. These drivers are supporting the NXP LPC1800 series: </p>
+<table class="doxtable">
+<tr>
+<th>Driver </th><th>File </th><th>Software Component </th></tr>
+<tr>
+<td><a href="../../Driver/html/group__eth__interface__gr.html" class="el" target="_blank">Ethernet</a> </td><td>EMAC_LPC18xx.c </td><td><b>::CMSIS-Driver:Ethernet MAC</b> </td></tr>
+<tr>
+<td><a href="../../Driver/html/group__spi__interface__gr.html" class="el" target="_blank">SPI</a> </td><td>SSP_LPC18xx.c </td><td><b>::CMSIS-Driver:SPI</b> </td></tr>
+<tr>
+<td><a href="../../Driver/html/group__i2c__interface__gr.html" class="el" target="_blank">I2C</a> </td><td>I2C_LPC18xx.c </td><td><b>::CMSIS-Driver:I2C</b> </td></tr>
+<tr>
+<td><a href="../../Driver/html/group__mci__interface__gr.html" class="el" target="_blank">MCI</a> </td><td>MCI_LPC18xx.c </td><td><b>::CMSIS-Driver:MCI</b> </td></tr>
+<tr>
+<td><a href="../../Driver/html/group__usart__interface__gr.html" class="el" target="_blank">USART</a> </td><td>USART_LPC18xx.c </td><td><b>::CMSIS-Driver:USART</b> </td></tr>
+<tr>
+<td><a href="../../Driver/html/group__usbd__interface__gr.html" class="el" target="_blank">USB Device</a> </td><td>USBD_LPC18xx.c </td><td><b>::CMSIS-Driver:USB Device:USB0/1</b> </td></tr>
+<tr>
+<td><a href="../../Driver/html/group__usbh__interface__gr.html" class="el" target="_blank">USB Host</a> </td><td>USBH_LPC18xx.c </td><td><b>::CMSIS-Driver:USB Host:USB0/1</b> </td></tr>
+</table>
+<p>The following HAL drivers are required for the implementation of the <b>CMSIS-Driver</b> compliant peripheral drivers: </p>
+<table class="doxtable">
+<tr>
+<th>Driver </th><th>File </th><th>Software Component </th></tr>
+<tr>
+<td>General purpose DMA driver </td><td>GPDMA_LPC18xx.c </td><td><b>::Device:GPDMA</b> </td></tr>
+<tr>
+<td>General purpose IO driver </td><td>GPIO_LPC18xx.c </td><td><b>::Device:GPIO</b> </td></tr>
+<tr>
+<td>System control unit driver </td><td>SCU_LPC18xx.c </td><td><b>::Device:SCU</b> </td></tr>
+</table>
+<p><a class="anchor" id="PE_Device"></a></p>
+<h2>Directory Device</h2>
+<p>The <b>Device</b> directory has two sub-directories: <b>Include</b> and <b>Source</b>. </p>
+<table class="doxtable">
+<tr>
+<th>File </th><th>Purpose </th><th>Software Component </th></tr>
+<tr>
+<td>Include\LPC18xx.h </td><td>LPC1800 series header file </td><td><b>::CMSIS:CORE</b> </td></tr>
+<tr>
+<td>Include\system_LPC18xx.h </td><td>LPC1800 series system header file </td><td><b>::CMSIS:Startup</b> </td></tr>
+<tr>
+<td>Source\system_LPC18xx.c </td><td>LPC1800 series system source file </td><td><b>::CMSIS:Startup</b> </td></tr>
+<tr>
+<td>Source\ARM\startup_LPC18xx.s </td><td>LPC1800 series startup assembler file for ARMCC</td><td><b>::CMSIS:Startup</b> </td></tr>
+<tr>
+<td>Source\GCC\startup_LPC18xx.S </td><td>LPC1800 series startup assembler file for GCC </td><td><b>::CMSIS:Startup</b> </td></tr>
+<tr>
+<td>Source\IAR\startup_LPC18xx.s </td><td>LPC1800 series startup assembler file for IAR </td><td><b>::CMSIS:Startup</b> </td></tr>
+</table>
+<p><a class="anchor" id="PE_Documents"></a></p>
+<h2>Directory Documents</h2>
+<p>This directory incorporates the following documents: </p>
+<table class="doxtable">
+<tr>
+<th>File </th><th>Purpose </th><th>Section in PDSC </th></tr>
+<tr>
+<td><b>dui0552a_cortex_m3_dgug.pdf</b> </td><td>Cortex-M3 Generic User Guide</td><td><a class="el" href="pdsc_family_pg.html#element_book">&lt;book&gt;</a> element of the device <a class="el" href="pdsc_family_pg.html#element_family">&lt;family&gt;</a> element </td></tr>
+<tr>
+<td><b>ES_LPC18X0.pdf</b> </td><td>LPC1800 Errata sheet </td><td><a class="el" href="pdsc_family_pg.html#element_book">&lt;book&gt;</a> element of the <a class="el" href="pdsc_family_pg.html#element_device">&lt;device&gt;</a> section </td></tr>
+<tr>
+<td><b>LPC1850_30_20_10.pdf</b> </td><td>LPC1800 Data sheet </td><td><a class="el" href="pdsc_family_pg.html#element_book">&lt;book&gt;</a> element of the <a class="el" href="pdsc_family_pg.html#element_device">&lt;device&gt;</a> section </td></tr>
+<tr>
+<td><b>mcb1800.chm</b> </td><td>MCB1800/4300 User's Guide </td><td><a class="el" href="pdsc_boards_pg.html#element_board_book">&lt;book&gt;</a> element of the <a class="el" href="pdsc_boards_pg.html">&lt;boards&gt;</a> section </td></tr>
+<tr>
+<td><b>MCB1800v1-3-schematics.chm</b> </td><td>MCB1800 schematics </td><td><a class="el" href="pdsc_boards_pg.html#element_board_book">&lt;book&gt;</a> element of the <a class="el" href="pdsc_boards_pg.html">&lt;boards&gt;</a> section </td></tr>
+<tr>
+<td><b>UM10430.pdf</b> </td><td>User manual for LPC1800 </td><td><a class="el" href="pdsc_family_pg.html#element_book">&lt;book&gt;</a> element of the <a class="el" href="pdsc_family_pg.html#element_device">&lt;device&gt;</a> section </td></tr>
+</table>
+<dl class="section note"><dt>Note</dt><dd>Some of these documents are only placeholders for copyright reasons. </dd></dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:42 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_pack_chk.html b/CMSIS/Documentation/Pack/html/_pack_chk.html
new file mode 100644
index 0000000..b3950db
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_pack_chk.html
@@ -0,0 +1,477 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>PackChk.exe</title>
+<title>CMSIS-Pack: PackChk.exe</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_pack_chk.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">PackChk.exe </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p><b>PackChk.exe</b> is a utility for validation of a Software Pack. It operates on the unzipped content of the Software Pack and is located in the directory <b>.\CMSIS\Utilities</b> of the <b>ARM::CMSIS</b> Pack.</p>
+<p><b>PackChk.exe</b> performs the following operations:</p>
+<ol type="1">
+<li>Reads the content of the specified *.PDSC file. The path to this *.PDSC file is considered as root directory of the Software Pack.</li>
+<li>Verifies the existence of all files in the Software Pack that are referenced in the *.PDSC file.</li>
+<li>Checks for presence and correctness of mandatory elements such as &lt;vendor&gt;, &lt;version&gt;, etc.</li>
+<li>Optional, all System View Description files (*.SVD) that are referenced in the *.PDSC file are verified using SVDConv.exe. Refer to <a href="../../SVD/html/svd_validate_file_pg.html">SVD File Validation</a> for details.</li>
+<li>Optional, the element &lt;url&gt; is verified.</li>
+<li>Optional, creates the standardized name of the Software Pack file.</li>
+<li>Sets the exit status reflect the result of the validation to:<ul>
+<li>0 : no errors detected</li>
+<li>1 : errors during validation detected</li>
+</ul>
+</li>
+</ol>
+<h2>Operation</h2>
+<p><b>PackChk.exe</b> is invoked from the command line. The general command is: <br/>
+ </p>
+<div class="fragment"><div class="line">PackChk.exe &lt;pdsc_file&gt; &lt;options&gt;</div>
+</div><!-- fragment --><p><br/>
+ </p>
+<table class="cmtable" summary="PackChk Args">
+<tr>
+<th>&lt;options&gt; </th><th>Short Name </th><th>Description </th></tr>
+<tr>
+<td>-n &lt;file&gt; </td><td>Pack file name </td><td>Write a standardized name for the Software Pack to the specified ASCII file. </td></tr>
+<tr>
+<td>-s </td><td>Verify SVD files </td><td>Each SVD file referenced in the *.PDSC file is <a href="../../SVD/html/svd_validate_file_pg.html"><b>validated</b></a> with <b>SVDConv.exe</b>. With this option set, <b>SVDConv.exe</b> is invoked from the same directory as <b>PackChk.exe</b>. </td></tr>
+<tr>
+<td>-u &lt;url&gt; </td><td>Pack&#160;Server&#160;URL </td><td>Verifies that the specified URL matches the &lt;url&gt; element in the *.PDSC file. </td></tr>
+<tr>
+<td>-v </td><td>Verbose </td><td>Prints extra process information. </td></tr>
+<tr>
+<td>-x&#160;&lt;msg-list&gt; </td><td>Suppress </td><td>Supress all listed validation messages. You can separate the values with blanks to create a list or repeat the option. Ranges are not allowed. Suppressing validation messages does not affect error and warning counters. For a list of messages refer to <a href="#packchk_valid_msgs"><b>Validation Messages</b></a>. </td></tr>
+</table>
+<p><b>Examples</b></p>
+<p>Run <b>PackChk.exe</b> on the package description file called <b>MyVendor.MyPack.pdsc</b>. <b>PackChk.exe</b> verifies the file against the Software Pack that is located in the same directory. </p>
+<pre class="fragment">PackChk.exe MyVendor.MyPack.pdsc
+</pre><p>Run <b>PackChk.exe</b> on the package description file called <b>MyVendor.MVCM3.pdsc</b>, verify SVD files, verify the URL to the Pack Server, and generate a ASCII text file with the standardized name of the Software Pack. </p>
+<pre class="fragment">PackChk.exe "MyVendor.MVCM3.pdsc" -s -u "http://www.myvendor.com/pack" -n packname.txt
+</pre><p>Run <b>PackChk.exe</b> on the package description file called <b>MyVendor.MVCM3.pdsc</b>. Suppress validation messsages M304 and M331. </p>
+<pre class="fragment">PackChk.exe MyVendor.MVCM3.pdsc -x M304 M331 // messages as a list
+PackChk.exe MyVendor.MVCM3.pdsc -x M304 -x M331 // option repeated
+</pre><h1><a class="anchor" id="PackChkMessages"></a>
+Error and Warning Messages</h1>
+<p>The following table shows the errors and warnings issued by PackChk.</p>
+<h2>Internal Errors</h2>
+<p>For internal errors, please sent a problem report via email to <a href="#" onclick="location.href='mai'+'lto:'+'cms'+'is'+'@ar'+'m.'+'com'; return false;">cmsis<span style="display: none;">.nosp@m.</span>@arm<span style="display: none;">.nosp@m.</span>.com</a>.</p>
+<table class="cmtable" summary="PackChk Internal Msgs">
+<tr>
+<th>Message Number </th><th>Type </th><th>Description </th><th>Action </th></tr>
+<tr>
+<td>M100 </td><td>ERROR </td><td>GetModuleHandle failed </td><td>Call support. </td></tr>
+<tr>
+<td>M101 </td><td>ERROR </td><td>Unknown error! </td><td>Call support. </td></tr>
+<tr>
+<td>M102 </td><td>ERROR </td><td>MFC initialization failed </td><td>Call support. </td></tr>
+<tr>
+<td>M103 </td><td>ERROR </td><td>Internal Error: <em>'REF'</em> </td><td>Call support and submit the error message. </td></tr>
+<tr>
+<td>M104 - M106 </td><td>N.A. </td><td><em>not in use</em> </td><td>&mdash; </td></tr>
+<tr>
+<td>M107 </td><td>ERROR </td><td>Lost xml file stream </td><td>Repeat the process. If this error persists, call support. </td></tr>
+<tr>
+<td>M108 </td><td>ERROR </td><td>Reading PDSC File failed! </td><td>Verify file and folder permissions. Verify whether the file is corrupt or in another folder. Repeat the process. If this error persists, call support. </td></tr>
+<tr>
+<td>M109 </td><td>ERROR </td><td>Constructing Model failed! </td><td>Building Model based on the PDSC information failed. Repeat the process. If this error persists, call support. </td></tr>
+<tr>
+<td>M110 </td><td>ERROR </td><td>Verifying Model failed </td><td>Model based verification of the PDCS information failed. Repeat the process. If this error persists, call support. </td></tr>
+</table>
+<h2>Invocation Errors</h2>
+<table class="cmtable" summary="PackChk Invocation Msgs">
+<tr>
+<th>Message Number </th><th>Type </th><th>Description </th><th>Action </th></tr>
+<tr>
+<td>M200 </td><td>ERROR </td><td>Invalid arguments! </td><td>At least one argument is wrong. Correct the argument. </td></tr>
+<tr>
+<td>M201 </td><td>ERROR </td><td>Too many arguments! </td><td>The list of arguments is too long. Verify if you have used one argument twice. </td></tr>
+<tr>
+<td>M202 </td><td>ERROR </td><td>No PDSC input file specified </td><td>Correct the command line. <b>PackChk.exe</b> expects a *.PDSC file name as input. </td></tr>
+<tr>
+<td>M203 </td><td>ERROR </td><td>Error reading PDSC file <em>'PATH/FILENAME'!</em> </td><td>Verify the PDSC file for consistency. </td></tr>
+<tr>
+<td>M204 </td><td>ERROR </td><td>File not found: <em>'PATH'</em> </td><td>The specified PDSC file could not be found in the <em>PATH</em> displayed in the message. Correct the path or the filename. </td></tr>
+<tr>
+<td>M205 </td><td>ERROR </td><td>Cannot create Pack Name file <em>'PATH'</em> </td><td>Check the disk space or your permissions. Correct the path name. </td></tr>
+<tr>
+<td>M206 </td><td>ERROR </td><td>Multiple PDSC files found in package: <em>'FILES'</em> </td><td>Only one PDSC file is allowed in a package. Remove unnecessary PDSC files. The message lists all *.PDSC files found. </td></tr>
+<tr>
+<td>M207 </td><td>ERROR </td><td>PDSC file name mismatch! <br/>
+ Expected: <em>'PDSC1.pdsc'</em> <br/>
+ Actual : <em>'PDSC2.pdsc'</em> </td><td>The PDSC file expected has not been found. Rename or exchange the PDSC file. </td></tr>
+<tr>
+<td>M208 </td><td>ERROR </td><td>Cannot find SVDConv.exe: <em>'PATH'</em> </td><td>SVDConv.exe was not found. Copy the executable into the directory of PackChk.exe or enter the path where SVDConv.exe is located. Default is <span class="XML-Token">CMSIS\Utilities</span>. </td></tr>
+<tr>
+<td>M209 </td><td>ERROR </td><td>Unknown Option: <em>'OPT'</em> </td><td>The command line option entered is not known or invalid. </td></tr>
+</table>
+<p><a class="anchor" id="packchk_valid_msgs"></a></p>
+<h2>Validation Messages</h2>
+<table class="cmtable" summary="PackChk Validation Msgs">
+<tr>
+<th>Message Number </th><th>Type </th><th>Description </th><th>Action </th></tr>
+<tr>
+<td>M300 </td><td>ERROR </td><td>The following files are listed in PDSC but not part of the package: <br/>
+ <em>'PATH'</em>: <br/>
+ <em>'FILES'</em> </td><td>The files listed should be part of the package. However, these files could not be added to the package. Verify whether the files exist. Verify the file permissions. </td></tr>
+<tr>
+<td>M301 </td><td>ERROR </td><td>Checking Pack URL of PDSC file failed: <br/>
+ Expected URL : <em>'URL1'</em> <br/>
+ Package URL : <em>'URL2'</em> </td><td>The URL entered in the package does not match the value entered for comparison. Change the URL in the package. Check for possible misspellings of <em>URL1</em>. </td></tr>
+<tr>
+<td>M302 </td><td>ERROR </td><td>No vendor tag found in the PDSC file! Add the &lt;vendor&gt; tag and provide the vendor name. For example: <code>&lt;vendor&gt;Keil&lt;/vendor&gt;</code>. </td><td>No vendor entered in the PDSC file. Enter the tag <span class="XML-Token">&lt;vendor&gt;</span> and add the vendor name. Refer to <a class="el" href="pdsc_package_pg.html#element_package">/package</a>. </td></tr>
+<tr>
+<td>M303 </td><td>ERROR </td><td>No package name found in the PDSC file! Add the &lt;name&gt; tag and provide the package name. For example: <code>&lt;name&gt;MCU-Name_DFP&lt;/name&gt;</code>. </td><td>No package name found in the PDSC file. Enter the tag <span class="XML-Token">&lt;name&gt;</span> and add the package name. For example <span class="XML-Token">&lt;name&gt;MCU-Name_DFP&lt;/name&gt;</span>. The package name is mandatory to create the package. Refer to <a class="el" href="pdsc_package_pg.html#element_package">/package</a>. </td></tr>
+<tr>
+<td>M304 </td><td>ERROR </td><td>No package URL (&lt;url&gt;-tag and/or value) found in PDSC file! </td><td>Add the tag <span class="XML-Token">&lt;url&gt;</span> and enter a URL in the PDSC file. The URL points to the web page from which users can download the package. Refer to <a class="el" href="pdsc_package_pg.html#element_package">/package</a>. </td></tr>
+<tr>
+<td>M305 </td><td>ERROR </td><td>No package version ("version"-attribute in a &lt;release&gt;-tag) found in PDSC file! </td><td>No version or release information found in the PDSC file. Add the attribute <span class="XML-Token">version</span> to the tag <span class="XML-Token">&lt;release&gt;</span> and enter the version number. Refer to <a class="el" href="element_releases.html#element_release">/package/releases/release</a>. </td></tr>
+<tr>
+<td>M306 </td><td>ERROR </td><td>No package description found in the PDSC file. Add the &lt;description&gt;-tag and provide a descriptive text. </td><td>No package description was found in the PDSC file. Enter the tag <span class="XML-Token">&lt;description&gt;</span> and briefly describe the package content. Refer to <a class="el" href="pdsc_package_pg.html#element_package">/package</a>. </td></tr>
+<tr>
+<td>M307 </td><td>ERROR </td><td>Checking SVD file <em>'PATH'</em> failed! </td><td>Verify the consistency of the *.SVD file. Refer to <a href="../../SVD/html/svd_validate_file_pg.html">SVD File Validation</a>. </td></tr>
+<tr>
+<td>M308 </td><td>ERROR </td><td>SVD file <em>'PATH'</em> not found. Add the SVD file or correct the PDSC entry. </td><td>The *.SVD file was not found in the path specified in the message. Add the SVD file or correct the entry in the *.PDSC file. </td></tr>
+<tr>
+<td>M309 </td><td>ERROR </td><td>Cannot read file information: <em>'PATH'</em>. </td><td>Access to the file specified failed. Verify permissions and spelling. </td></tr>
+<tr>
+<td>M310 </td><td>ERROR </td><td>Filename mismatch (case sensitive):<br/>
+ PDSC name : <em>'PDSC_FILENAME'</em> <br/>
+ Filename : <em>'SYSTEM'</em> </td><td>Filenames are case sensitive. Correct spelling. </td></tr>
+<tr>
+<td>M311 </td><td>WARNING </td><td>Preamble for <em>'UTF'</em> should not be used, specify via '&lt;?xml' </td><td>Specify the character set in the tag mentioned. </td></tr>
+<tr>
+<td>M312 </td><td>WARNING </td><td>Unsupported format or extra characters found before '&lt;?xml': <em>'TEXT'</em> </td><td>Correct the XML file. </td></tr>
+<tr>
+<td>M313 </td><td>WARNING </td><td>UTF Format not supported: <em>'UTF'</em> </td><td>Select another UTF-format. </td></tr>
+<tr>
+<td>M314 </td><td>ERROR </td><td>Cannot decode XML special character: <em>'SPECIALCHAR'</em>. </td><td>Correct the XML file. </td></tr>
+<tr>
+<td>M315 </td><td>N.A. </td><td><em>not in use</em> </td><td>&mdash; </td></tr>
+<tr>
+<td>M316 </td><td>ERROR </td><td><em>'&lt;--'</em> found, should this be a comment '&lt;!--' ? </td><td>Correct the XML file. </td></tr>
+<tr>
+<td>M317 </td><td>ERROR </td><td>Begin Tag seems to end with a Single Tag. Is this a typo? </td><td>Correct the XML file. </td></tr>
+<tr>
+<td>M318 </td><td>ERROR </td><td>Inconsistent XML Structure </td><td>Correct the XML file. </td></tr>
+<tr>
+<td>M319 </td><td>ERROR </td><td>XML Stack deeper than 30 Items! Giving up... </td><td>Reduce the nested nodes. </td></tr>
+<tr>
+<td>M320 </td><td>ERROR </td><td>Begin Tag follows Text. Missing End Tag? </td><td>Correct the XML file. </td></tr>
+<tr>
+<td>M321 </td><td>ERROR </td><td>Missing ' " ' in Attributes: <em>'ATTRLINE'</em> </td><td>Correct the XML file. Enclose values in <span class="XML-Token">" "</span>. </td></tr>
+<tr>
+<td>M322 </td><td>ERROR </td><td>XML Hierachy Error: Missing End Tags. </td><td>Correct the XML file. Verify for enclosing or nested tags. </td></tr>
+<tr>
+<td>M323 </td><td>ERROR </td><td>File/Path not found: <em>'PATH'</em> </td><td><p class="starttd">The file or path entered in the PDSC file could not be found. Verify the path information. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M324 </td><td>ERROR </td><td>Board referenced in Example <em>'EXAMPLE'</em> is undefined: <em>'VENDOR'</em> : <em>'BOARD'</em> </td><td><p class="starttd">The board referenced in the example application could not be found. Define the board (<a class="el" href="pdsc_boards_pg.html#element_board">/package/boards/board</a>) or correct the reference information (<a class="el" href="pdsc_examples_pg.html#element_example_board">/package/examples/example/board</a>). </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M325 </td><td>ERROR </td><td>Board <em>'NAME'</em> redefined, already defined in Line <em>'LINE'</em>: <em>'PATH'</em> </td><td><p class="starttd">This board has been defined already in the line <em>'LINE'</em> of the file <em>'PATH'</em>. Verify and remove one of the board definitions. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M326 - M327 </td><td>N.A. </td><td><em>not in use</em> </td><td><p class="starttd">&mdash; </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M328 </td><td>ERROR </td><td>Version not set for Release Information <em>'DESCR'</em> </td><td><p class="starttd">The release defined through the description <em>'DESCR'</em> requires the attribute <span class="XML-Token">&lt;version&gt;</span>. Refer to <a class="el" href="element_releases.html#element_release">/package/releases/release</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M329 </td><td>ERROR </td><td>Description not set for Release Information <em>'VER'</em> </td><td><p class="starttd">The release defined through the version <em>'VER'</em> needs a description. Refer to <a class="el" href="element_releases.html#element_release">/package/releases/release</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M330 </td><td>ERROR </td><td>Condition redefined: <em>'COND'</em>, already defined in Line <em>'LINE'</em> </td><td><p class="starttd">The condition has been defined already in a previous line. Correct the condition name, or remove the duplicate. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M331 </td><td>WARNING </td><td>Condition unused: <em>'COND'</em> </td><td><p class="starttd">The condition has been defined but not used further. Remove the condition or add condition rules. Refer to <a class="el" href="pdsc_conditions_pg.html#element_condition">/package/conditions/condition</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M332 </td><td>ERROR </td><td>Condition undefined: <em>'COND'</em> </td><td><p class="starttd">A condition has been used but not defined. Correct the name of the condition or define the missing condition. Refer to <a class="el" href="pdsc_conditions_pg.html#element_condition">/package/conditions/condition</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M333 </td><td>WARNING </td><td>Component has no condition: Cclass= <em>'CCLASS'</em>, Cgroup= <em>'CGROUP'</em>, <em>Csub='CSUB'</em>, <em>Cversion=</em> 'CVER' </td><td><p class="starttd">The component defined has no condition. If the component has restrictions, then add a condition to the component definition. Refer to <a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M334 </td><td>WARNING </td><td>Config File has no version: <em>'PATH'</em> </td><td><p class="starttd">Add version information to the configuration file. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M335 </td><td>WARNING </td><td>Component declared as 'Board Support' has no ref to a device: Cclass= <em>'CCLASS'</em>, Cgroup= <em>'CGROUP'</em>, Cversion= <em>'CVER'</em> </td><td><p class="starttd">A component defined as 'board support' needs a reference to a device. Add a device or correct the component definition. Refer to attribute <em>Cclass</em> of <a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a> and <a class="el" href="pdsc_boards_pg.html#element_board_mountedDevice">/package/boards/board/mountedDevice</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M336 </td><td>WARNING </td><td>No reference to a device or device not found: Cclass= <em>'CCLASS'</em>, Cgroup= <em>'CGROUP'</em>, Cversion= <em>'CVER'</em> </td><td><p class="starttd">Define the device <a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> or correct the information about the device in the reference. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M337 </td><td>WARNING </td><td>File with category <em>'CAT'</em> has wrong extension <em>'EXT'</em>: <em>'PATH'</em> </td><td><p class="starttd">The extension of the file does not match the file category. Verify the extension to match the category. Refer to <a class="el" href="pdsc_components_pg.html#element_file">/package/.../files/file</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M338 </td><td>WARNING </td><td>No releases found. </td><td><p class="starttd">The PDSC file is missing release information. Add <span class="XML-Token">&lt;release&gt;</span> information to the file. Refer to <a class="el" href="element_releases.html">/package/releases element</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M339 </td><td>WARNING </td><td>Include Path <em>'PATH'</em> must not be a file! </td><td><p class="starttd">The path specified contains a filename. Correct the path infomation and remove the filename. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M340 </td><td>WARNING </td><td>Include Path <em>'PATH'</em> must end with '//' or '\\' </td><td><p class="starttd">Include paths must end with a slash or backslash. Verify and correct the path name. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M341 </td><td>WARNING </td><td>File with <em>'COMP'</em> dependency must have extension <em>'EXT'</em> : <em>'PATH'</em> </td><td><p class="starttd">A file defining component dependencies must have the extension mentioned in the message. Verify the settings and correct the file extension. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M342 </td><td>WARNING </td><td>File with attribute <em>'ATTR'</em> must not have category <em>'CAT'</em>: <em>'PATH'</em> </td><td><p class="starttd">A file with the attribute mentioned in the message must not have the category specified. Correct the attribute or the category. Refer to <a class="el" href="pdsc_components_pg.html#element_file">/package/.../files/file</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M343 </td><td>WARNING </td><td>File with attribute <em>'ATTR'</em> requires <em>'ATTR2'</em> attribute: <em>'PATH'</em> </td><td><p class="starttd">A file with the attribute <em>'ATTR'</em> requires another attribute <em>'ATTR2'</em>. Add the required attribute or correct attribute <em>'ATTR'</em>. Refer to <a class="el" href="pdsc_components_pg.html#element_file">/package/.../files/file</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M344 </td><td>WARNING </td><td>File shall have condition containing <em>'COND'</em>: <em>'PATH'</em> </td><td><p class="starttd">The file should have a condition. Define a condition in the file specified in the message. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M345 </td><td>WARNING </td><td>URL not found : <em>'URL'</em> </td><td><p class="starttd">The specified URL could not be found. Correct the URL. Refer to <a class="el" href="pdsc_package_pg.html#element_package">/package</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M346 </td><td>WARNING </td><td>Referenced device(s) in <em>'BOARD'</em> not found: <em>'DEVICE'</em> </td><td><p class="starttd">The device or devices specified for the board could not be found. Verify and correct the device name or the board name. Refer to <a class="el" href="pdsc_boards_pg.html#element_board_mountedDevice">/package/boards/board/mountedDevice</a> and <a class="el" href="pdsc_boards_pg.html#element_board_compatibleDevice">/package/boards/board/compatibleDevice</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M347 </td><td>WARNING </td><td>Generator ID in Component Cclass= <em>'CCLASS'</em>, Cgroup= <em>'CGROUP'</em>, Cversion= <em>'CVER'</em> is undefined: <em>'GENID'</em> </td><td><p class="starttd">The generator ID used in the component could not be found. Verify and correct the generator ID (<a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a>), or define the generator ID (ref <a class="el" href="pdsc_generators_pg.html#element_generator">/package/generators/generator</a>). </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M348 </td><td>WARNING </td><td>Feature redefined for <em>'MCU'</em>, see Line <em>'REF_LINE'</em>: <em>'FEATURE'</em> </td><td><p class="starttd">This feature <em>'FEATURE'</em> has been defined already on the same level in line <em>'REF_LINE'</em>. The feature characteristics defined on line <em>'LINE'</em> overwrite those from <em>'REF_LINE'</em>. Correct the feature (<a class="el" href="pdsc_family_pg.html#element_feature">/package/devices/family/.../feature</a>). </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M349 </td><td>WARNING </td><td>Examples found, but no board description(s) found </td><td><p class="starttd">Example projects have been found for a board that was not defined. Correct the entry for the examples (<a class="el" href="pdsc_examples_pg.html#element_example_board">/package/examples/example/board</a>) or define the board (<a class="el" href="pdsc_boards_pg.html#element_board">/package/boards/board</a>). </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M350 </td><td>WARNING </td><td>No <em>'COMP'</em> found for <em>'VENDOR'</em> : <em>'MCU'</em> (<em>'COMPILER'</em>) </td><td><p class="starttd">The package (<a class="el" href="pdsc_package_pg.html#element_package">/package</a>) defines a Vendor-MCU combination for which no component was defined. Define a component (<a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a>) or verify the <em>'VENDOR'</em> - <em>'MCU'</em> settings. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M351 </td><td>WARNING </td><td>Component <em>'COMP'</em> (<em>'COMPID'</em>) error for <em>'VENDOR'</em>: <em>'MCU'</em> ( <em>'COMPILER'</em>): <em>'MSG'</em> </td><td><p class="starttd">An unspecified error was found for the component. The message might give detailed information about the error. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M352 </td><td>WARNING </td><td>No Directories/Files found for <em>'COMP'</em> (<em>'COMPID'</em>) for <em>'VENDOR'</em>: <em>'MCU'</em> (<em>'COMPILER'</em>) </td><td><p class="starttd">No files or directories could be found for the defined component. Add the missing information. Refer to <a class="el" href="pdsc_components_pg.html#element_files">/package/.../files</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M353 </td><td>WARNING </td><td>No <em>'FILECAT'</em> File found for Component <em>'COMP'</em> (<em>'COMPID'</em>) for <em>'VENDOR'</em> : <em>'MCU'</em> (<em>'COMPILER'</em>) </td><td><p class="starttd">No file with the mentioned file category was found for the component. Verify whether the file exists or correct the information. Refer to attribute <em>category</em> in <a class="el" href="pdsc_components_pg.html#element_file">/package/.../files/file</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M354 </td><td>WARNING </td><td>Multiple <em>'FILECAT'</em> Files found for Component <em>'COMP'</em> (<em>'COMPID'</em>) for <em>'VENDOR'</em> : <em>'MCU'</em> (<em>'COMPILER'</em>) </td><td><p class="starttd">Multiple files with the mentioned file category were found for the specified component. Verify and rename the files, or correct the component settings (<a class="el" href="pdsc_components_pg.html#element_file">/package/.../files/file</a>). </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M355 </td><td>WARNING </td><td>No <em>'FILECAT'</em> Directory found for Component <em>'COMP'</em> (<em>'COMPID'</em>) for <em>'VENDOR'</em> : <em>'MCU'</em> (<em>'COMPILER'</em>) </td><td><p class="starttd">The directory specified for the file category was not found. Correct the information in the component settings (<a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a>). </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M356 </td><td>WARNING </td><td>Multiple <em>'FILECAT'</em> Directories found for Component <em>'COMP'</em> (<em>'COMPID'</em>) for <em>'VENDOR'</em> : <em>'MCU'</em> (<em>'COMPILER'</em>) </td><td><p class="starttd">Multiple directories were found for the same file category in the specified component. Remove obsolete information or correct the component settings. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M357 </td><td>N.A. </td><td><em>not in use</em> </td><td><p class="starttd">&mdash; </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M358 </td><td>WARNING </td><td>Header File <em>'HFILE'</em> for <em>'CFILE'</em> missing for Component <em>'COMP'</em> (<em>'COMPID'</em>) for <em>'VENDOR'</em> : <em>'MCU'</em> (<em>'COMPILER'</em>) </td><td><p class="starttd">The header file defined for the component could not be found. Verify the header file settings (<a class="el" href="pdsc_components_pg.html#element_file">/package/.../files/file</a>) or whether the file exists. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M359 </td><td>WARNING </td><td>Family has no Device(s) or Subfamilies: <em>'FAMILY'</em> </td><td><p class="starttd">The device family has no devices or subfamilies. Add the missing information (<a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a>). </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M360 </td><td>WARNING </td><td>Subfamily has no Device(s): <em>'SUBFAMILY'</em> </td><td><p class="starttd">Add the missing information. Refer to <a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M361 </td><td>WARNING </td><td>Generator ID in Taxonomy Cclass= <em>'CCLASS'</em>, Cgroup= <em>'CGROUP'</em> is undefined: <em>'GENID'</em> </td><td><p class="starttd">The generator ID used in the taxonomy is not defined. Define or correct the generator ID (<a class="el" href="element_taxonomy.html">/package/taxonomy element</a>). </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M362 </td><td>WARNING </td><td>Not all Component Dependencies for Cclass= <em>'CCLASS'</em>, Cgroup= <em>'CGROUP'</em>, Csub= <em>'CSUB'</em>, Cversion= <em>'CVER'</em>, Capiversion= <em>'APIVER'</em> can be resolved. <br/>
+ RTE Model reports: <em>'MSG'</em> </td><td><p class="starttd">Some of the component dependencies could not be resolved. The message might contain additional information. Verify and correct component definition and dependency information. Refer to <a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a> attribute <em>condition</em>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M363 </td><td>WARNING </td><td>No API defined for Component Cclass= <em>'CCLASS'</em>, Cgroup= <em>'CGROUP'</em>, Csub= <em>'CSUB'</em>, Cversion= <em>'CVER'</em>, Capiversion= <em>'APIVER'</em> </td><td><p class="starttd">The package is missing the API information for the specified component. Refer to <a class="el" href="pdsc_apis_pg.html#element_apis">/package/apis</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M364 </td><td>WARNING </td><td>No Devices for Condition <em>'COND'</em> available. </td><td><p class="starttd">The specified condition refers to a device that does not exist. Define the device (<a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a>) or correct the information for the condition (<a class="el" href="pdsc_conditions_pg.html#element_condition">/package/conditions/condition</a>). </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M365 - M368 </td><td>N.A. </td><td><em>not in use</em> </td><td><p class="starttd">&mdash; </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M369 </td><td>INFO </td><td>Feature is already defined for <em>'DEVICE'</em> and will be added, see Line <em>'LINE'</em>: <em>'FEATURE'</em>. </td><td><p class="starttd">This feature <em>'FEATURE'</em> has been defined already on a higher level and as such it gets added to this <em>'DEVICE'</em>. This is usually done when some devices have a higher number of basic features. Correct the feature (<a class="el" href="pdsc_family_pg.html#element_feature">/package/devices/family/.../feature</a>) if this is a typo. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M371 </td><td>ERROR </td><td><em>'SECTION'</em> Feature for <em>'MCU'</em>: <em>'FEATURE'</em> unknown. </td><td><p class="starttd">This feature <em>'FEATURE'</em> is unknwon to the specified <em>'MCU'</em>. Correct the feature (<a class="el" href="pdsc_family_pg.html#element_feature">/package/devices/family/.../feature</a>) if this is a typo. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M372 </td><td>ERROR </td><td><em>'SECTION'</em> Feature for <em>'MCU'</em>: <em>'FEATURE'</em> misspelled, did you mean <em>'KNOWNFEATURE'</em> (<em>'DESCR'</em>). </td><td><p class="starttd">This feature <em>'FEATURE'</em> resembles the feature <em>'KNOWNFEATURE'</em>. Correct the feature (<a class="el" href="pdsc_family_pg.html#element_feature">/package/devices/family/.../feature</a>) if this is a typo. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M373 </td><td>ERROR </td><td>Unsupported Schema Version: <em>'VER'</em>. </td><td><p class="starttd">The schema version is not supported. Verify the attribute <span class="XML-Token">schemaVersion</span> of the element <a class="el" href="pdsc_package_pg.html#element_package">/package</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M374 </td><td>ERROR </td><td>While checking Feature for <em>'MCU'</em>: Pname <em>'CPU'</em> not found. </td><td><p class="starttd">The processor could not be found for the specified device. Refer to <a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> and <a class="el" href="pdsc_family_pg.html#element_processor">/package/devices/family/.../processor</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>M375 </td><td>ERROR </td><td><em>'path/pdsc_file'</em>: No &lt;mountedDevice&gt; for board <em>'BOARD'</em> found. </td><td><p class="starttd">If a board element does not contain a &lt;mountedDevice&gt; element, then the examples for this board are not shown in the Pack Installer. and example projects may not appear in the development tools. Refer to <a class="el" href="pdsc_boards_pg.html#element_board_mountedDevice">/package/boards/board/mountedDevice</a> of <a class="el" href="pdsc_boards_pg.html#element_boards">/package/boards</a>. </p>
+<p class="endtd"></p>
+</td></tr>
+</table>
+<p>&#160;</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_create_pack_util.html">Utilities for Creating Packs</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_pack_format.html b/CMSIS/Documentation/Pack/html/_pack_format.html
new file mode 100644
index 0000000..b250335
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_pack_format.html
@@ -0,0 +1,221 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Pack Description (*.PDSC) Format</title>
+<title>CMSIS-Pack: Pack Description (*.PDSC) Format</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_pack_format.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Pack Description (*.PDSC) Format </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="toc"><h3>Table of Contents</h3>
+<ul><li class="level1"><a href="#Filenames">Filename Conventions</a></li>
+<li class="level1"><a href="#PackSchema">Pack Schema</a></li>
+<li class="level1"><a href="#PDSC_Example">Example of a *.PDSC File</a></li>
+<li class="level1"><a href="#PACK_Example">Example of a *.PACK File</a></li>
+</ul>
+</div>
+<div class="textblock"><p>The <a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a> uses standard XML annotations and is defined in the schema file <b>PACK.xsd</b>. Software components are distributed through <b>Software Packs</b>. A <a class="el" href="_c_p__s_w_components.html">Software Pack</a> is a zip file containing a single <b>Pack Description</b> file that describes dependencies to devices, processors, tool chains, or other software components.</p>
+<p>A descriptive text of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>along the text information for devices, components, and examples is part of each a <b>Pack Description</b> (*.PDSC) file. In addition, information is provided which facilitates downloading, updating, and versioning of of a <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. The *.PDSC file contains also the complete version history of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a> with a brief list of the most significant changes.</p>
+<h1><a class="anchor" id="Filenames"></a>
+Filename Conventions</h1>
+<p>A <a class="el" href="_c_p__s_w_components.html">Software Pack</a> must have a unique filename which uses the following format: <b>&lt;vendor&gt;.&lt;name&gt;.&lt;version&gt;.pack</b>.</p>
+<p><b>Where:</b> </p>
+<ul>
+<li><b>&lt;vendor&gt;</b>: name of the supplier or vendor of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><b>&lt;name&gt;</b>: name of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. It is the vendor's responsibility to ensure unique package names.</li>
+<li><b>&lt;version&gt;</b>: version number of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><b>.pack</b>: file extension identifying a <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>&lt;vendor&gt; and &lt;name&gt; <em>must</em> <em>not</em> contain spaces.</dd></dl>
+<p><br/>
+ The <b>Pack Description</b> (*.PDSC) file belonging to such a <a class="el" href="_c_p__s_w_components.html">Software Pack</a> file (&lt;vendor&gt;.&lt;name&gt;.&lt;version&gt;.pack) is version independent and has the format: <b>&lt;vendor&gt;.&lt;name&gt;.pdsc</b>.</p>
+<p><b>Where:</b> </p>
+<ul>
+<li><b>&lt;vendor&gt;</b>: name of the supplier or vendor of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><b>&lt;name&gt;</b>: name of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a> that is described by this *.PDSC file.</li>
+<li><b>.pack</b>: file extension identifying a <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>&lt;vendor&gt; and &lt;name&gt; <em>must</em> <em>not</em> contain spaces.</dd></dl>
+<p>Example filenames for software packs:</p>
+<p>Software Pack for CMSIS Version 4.0 released by ARM.</p>
+<ul>
+<li><b>ARM.CMSIS.4.0.0.pack</b>: filename of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><b>ARM.CMSIS.pdsc</b>: filename of the <b>Pack Description</b> (*.PDSC) file.</li>
+</ul>
+<p>Device Family Pack for STM32F4 Version 1.0.0 released by ST Microelectronics.</p>
+<ul>
+<li><b>ST.STM32F4xx_DFP.1.0.0.pack</b>: filename of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><b>ST.STM32F4xx.pdsc</b>: filename of the <b>Pack Description</b> (*.PDSC) file.</li>
+</ul>
+<h1><a class="anchor" id="PackSchema"></a>
+Pack Schema</h1>
+<p>The XML schema file <b>PACK.xsd</b> defines the sections used in a <b>*.PDSC</b> file. The current <b>PACK.xsd</b> can be found under the ARM.CMSIS.*.Pack in the .\CMSIS\Utilities-directory.</p>
+<p>The <a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a> is structured using grouping elements and contains the following top level elements:</p>
+<ul>
+<li><a class="el" href="pdsc_package_pg.html">&lt;package&gt;</a>: describes package related information like vendor, package name, description, version. Is the root element.</li>
+<li><a class="el" href="element_keywords.html">&lt;keywords&gt;</a>: lists keywords to search for packages. Can be used for search engines.</li>
+<li><a class="el" href="element_releases.html">&lt;releases&gt;</a>: lists release versions with descriptions.</li>
+<li><a class="el" href="element_taxonomy.html">&lt;taxonomy&gt;</a>: lists description elements that define component classes and component group names.</li>
+<li><a class="el" href="pdsc_apis_pg.html">&lt;apis&gt;</a>: describes Application Programming Interfaces (API) Specifications contained in the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><a class="el" href="pdsc_generators_pg.html">&lt;generators&gt;</a>: specifies the tools that have been used to generate the PDSC file.</li>
+<li><a class="el" href="pdsc_devices_pg.html">&lt;devices&gt;</a>: lists the devices supported by this <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. It specifies the device attributes and files like flash programming algorithms, CMSIS device header files, CMSIS System View Descriptions, etc.</li>
+<li><a class="el" href="pdsc_boards_pg.html">&lt;boards&gt;</a>: lists the development boards supported by the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><a class="el" href="pdsc_conditions_pg.html">&lt;conditions&gt;</a>: defines dependencies to devices, processors, components, and tools that are used within the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. It allows making components and files conditional.</li>
+<li><a class="el" href="pdsc_components_pg.html">&lt;components&gt;</a>: lists the software components contained in the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</li>
+<li><a class="el" href="pdsc_examples_pg.html">&lt;examples&gt;</a>: specifies example projects contained in the PACK.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html">&lt;sequence&gt;</a>: specifies sequences of debugger commands.</li>
+</ul>
+<h1><a class="anchor" id="PDSC_Example"></a>
+Example of a *.PDSC File</h1>
+<p>This example of a *.PDSC File explains the sections, particularly how dependencies are used to identify individual files of <a class="el" href="_c_p__s_w_components.html#CP_Components">Software Components</a>.</p>
+<div class="image">
+<img src="PDSC_Example_top.png" alt="PDSC_Example_top.png"/>
+</div>
+ <div class="image">
+<img src="PDSC_Example_bottom.png" alt="PDSC_Example_bottom.png"/>
+<div class="caption">
+Example of a *.PDSC File</div></div>
+ <h1><a class="anchor" id="PACK_Example"></a>
+Example of a *.PACK File</h1>
+<p>The ARM.CMSIS.*.Pack also contains an extracted example of a PACK file. It can be found in the .\CMSIS\Pack\Example-directory. In a real-life *.PACK file this would be the archive's top-level containing the *.PDSC file and the subdirectories with all the files that are part of the Software Pack. Here, an exemplary PDSC file is stored which is renamed to *.pdsc.txt. This PDSC file can be used to examine the contents of the PACK. It is also a starting point for writing your own Software Pack.</p>
+<p>The folder structure of this exemplary Software Pack is as follows:</p>
+<ul>
+<li><b>ARM.STM32F4xx_DFP.pdsc.txt</b>: PDSC file example</li>
+<li><b>CMSIS_Driver:</b> Examples of driver implementations adhering to <a href="../../Driver/html/index.html" class="el">CMSIS-Driver</a><ul>
+<li><b>Config:</b> Driver configuration file</li>
+</ul>
+</li>
+<li><b>Device:</b> used in a <a class="el" href="_create_pack__d_f_p.html">DFP</a><ul>
+<li><b>Include:</b> <a href="../../Core/html/device_h_pg.html" class="el">device header files</a></li>
+<li><b>Source:</b> <a href="../../Core/html/system_c_pg.html" class="el">system configuration files</a><ul>
+<li><b>ARM:</b> <a href="../../Core/html/startup_s_pg.html" class="el">startup files</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><b>Documents:</b> All kinds of documentation (reference manuals, data sheets, board schematics)</li>
+<li><b>Flash:</b> <a class="el" href="_flash_algorithm.html">Programming algorithms</a> for microcontroller devices<ul>
+<li><b>STM32F4xx:</b> uVision project files for generating the Flash programming algorithms</li>
+</ul>
+</li>
+<li><b>Images:</b> Pictures of developments boards used for display on web sites or other documentation</li>
+<li><b>SVD:</b> <a href="../../SVD/html/index.html" class="el">System View Description</a> files for microcontroller devices </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/_pack_format.js b/CMSIS/Documentation/Pack/html/_pack_format.js
new file mode 100644
index 0000000..5c7a61e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/_pack_format.js
@@ -0,0 +1,73 @@
+var _pack_format =
+[
+ [ "Filename Conventions", "_pack_format.html#Filenames", null ],
+ [ "Pack Schema", "_pack_format.html#PackSchema", null ],
+ [ "Example of a *.PDSC File", "_pack_format.html#PDSC_Example", null ],
+ [ "Example of a *.PACK File", "_pack_format.html#PACK_Example", null ],
+ [ "/package element", "pdsc_package_pg.html", [
+ [ "/package", "pdsc_package_pg.html#element_package", null ]
+ ] ],
+ [ "/package/keywords element", "element_keywords.html", null ],
+ [ "/package/releases element", "element_releases.html", [
+ [ "/package/releases/release", "element_releases.html#element_release", null ]
+ ] ],
+ [ "/package/taxonomy element", "element_taxonomy.html", [
+ [ "/package/taxonomy/description", "element_taxonomy.html#element_taxonomyDescription", null ]
+ ] ],
+ [ "/package/apis element", "pdsc_apis_pg.html", [
+ [ "/package/apis", "pdsc_apis_pg.html#element_apis", null ],
+ [ "/package/apis/api", "pdsc_apis_pg.html#element_api", null ]
+ ] ],
+ [ "/package/generators element", "pdsc_generators_pg.html", [
+ [ "/package/generators", "pdsc_generators_pg.html#element_generators", null ],
+ [ "/package/generators/generator", "pdsc_generators_pg.html#element_generator", null ],
+ [ "/package/generators/generator/select", "pdsc_generators_pg.html#element_gen_select", null ],
+ [ "/package/generators/generator/arguments", "pdsc_generators_pg.html#element_gen_arguments", null ],
+ [ "/package/generators/generator/arguments/argument", "pdsc_generators_pg.html#element_gen_argument", null ],
+ [ "/package/generators/generator/project_files", "pdsc_generators_pg.html#element_gen_project_files", null ],
+ [ "/package/generators/generator/files", "pdsc_generators_pg.html#element_gen_files", null ],
+ [ "/package/generators/generator/files/file", "pdsc_generators_pg.html#element_gen_file", null ]
+ ] ],
+ [ "/package/devices element", "pdsc_devices_pg.html", "pdsc_devices_pg" ],
+ [ "/package/boards element", "pdsc_boards_pg.html", [
+ [ "/package/boards", "pdsc_boards_pg.html#element_boards", null ],
+ [ "/package/boards/board", "pdsc_boards_pg.html#element_board", null ],
+ [ "/package/boards/board/feature", "pdsc_boards_pg.html#element_board_feature", null ],
+ [ "/package/boards/board/mountedDevice", "pdsc_boards_pg.html#element_board_mountedDevice", null ],
+ [ "/package/boards/board/compatibleDevice", "pdsc_boards_pg.html#element_board_compatibleDevice", null ],
+ [ "/package/boards/board/image", "pdsc_boards_pg.html#element_board_image", null ],
+ [ "/package/boards/board/debugInterface", "pdsc_boards_pg.html#element_board_debugInterface", null ],
+ [ "/package/boards/board/book", "pdsc_boards_pg.html#element_board_book", null ]
+ ] ],
+ [ "/package/conditions element", "pdsc_conditions_pg.html", [
+ [ "/package/conditions", "pdsc_conditions_pg.html#element_conditions", null ],
+ [ "/package/conditions/condition", "pdsc_conditions_pg.html#element_condition", null ],
+ [ "/package/conditions/condition/accept", "pdsc_conditions_pg.html#element_accept", null ],
+ [ "/package/conditions/condition/require", "pdsc_conditions_pg.html#element_require", null ],
+ [ "/package/conditions/condition/deny", "pdsc_conditions_pg.html#element_deny", null ]
+ ] ],
+ [ "/package/components element", "pdsc_components_pg.html", [
+ [ "Component Bundle", "pdsc_components_pg.html#Component_Bundle", null ],
+ [ "Component Files", "pdsc_components_pg.html#Component_Files", null ],
+ [ "Component Instances", "pdsc_components_pg.html#Component_Instances", null ],
+ [ "RTE_Components.h", "pdsc_components_pg.html#RTE_Components_h", null ],
+ [ "/package/components", "pdsc_components_pg.html#element_components", null ],
+ [ "/package/components/bundle", "pdsc_components_pg.html#element_bundle", null ],
+ [ "/package/components/.../component", "pdsc_components_pg.html#element_component", null ],
+ [ "/package/.../files", "pdsc_components_pg.html#element_files", null ],
+ [ "/package/.../files/file", "pdsc_components_pg.html#element_file", null ]
+ ] ],
+ [ "/package/examples element", "pdsc_examples_pg.html", [
+ [ "/package/examples", "pdsc_examples_pg.html#element_examples", null ],
+ [ "/package/examples/example", "pdsc_examples_pg.html#element_example", null ],
+ [ "/package/examples/example/board", "pdsc_examples_pg.html#element_example_board", null ],
+ [ "/package/examples/project", "pdsc_examples_pg.html#element_example_project", null ],
+ [ "/package/examples/project/environment", "pdsc_examples_pg.html#element_example_project_env", null ],
+ [ "/package/examples/example/attributes", "pdsc_examples_pg.html#element_example_attributes", null ],
+ [ "/package/examples/example/attributes/component", "pdsc_examples_pg.html#element_example_attribute_component", null ]
+ ] ],
+ [ "Debug Access Sequences", "pdsc__sequence_name_enum_pg.html", [
+ [ "Usage of Debug Access Sequences", "pdsc__sequence_name_enum_pg.html#usage_of_sequences", null ],
+ [ "Default Debug Access Sequences", "pdsc__sequence_name_enum_pg.html#default_sequences", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/CMSIS/Documentation/Pack/html/bc_s.png b/CMSIS/Documentation/Pack/html/bc_s.png
new file mode 100644
index 0000000..224b29a
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/bc_s.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/bdwn.png b/CMSIS/Documentation/Pack/html/bdwn.png
new file mode 100644
index 0000000..940a0b9
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/bdwn.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/closed.png b/CMSIS/Documentation/Pack/html/closed.png
new file mode 100644
index 0000000..98cc2c9
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/closed.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/cmsis.css b/CMSIS/Documentation/Pack/html/cmsis.css
new file mode 100644
index 0000000..293d0d0
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/cmsis.css
@@ -0,0 +1,1269 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size: 13px;
+ line-height: 1.3;
+}
+
+/* CMSIS styles */
+
+.style1 {
+ text-align: center;
+}
+.style2 {
+ color: #0000FF;
+ 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: #990000;
+}
+
+.choice
+{
+ background-color:#F7F9D0;
+}
+.seq
+{
+ background-color:#C9DECB;
+}
+.group1
+{
+ background-color:#F8F1F1;
+}
+.group2
+{
+ background-color:#DCEDEA;
+}
+
+
+ul ul {
+ list-style-type: disc;
+}
+
+ul ul ul {
+ list-style-type: disc;
+}
+
+ul.hierarchy {
+ color: green;
+}
+
+em {
+ color: #000000;
+ font-style:italic;
+}
+
+
+
+/* CMSIS Tables */
+table.cmtab1 {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+ text-align: justify;
+ width:70%;
+}
+
+th.cmtab1 {
+ background: #EBEFF6;
+ font-weight: bold;
+ height: 28px;
+}
+
+td.cmtab1 {
+ padding:1px;
+ text-align: left;
+}
+
+table.cmtable {
+ border-collapse:collapse;
+ text-align: justify;
+}
+
+table.cmtable td, table.cmtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.cmtable th {
+ background-color: #EBEFF6;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+}
+
+td.MonoTxt {
+ font-family:"Arial monospaced for SAP";
+}
+
+td.XML-Token
+{
+ azimuth: 180;
+ font-style:italic;
+ color:Maroon;
+ z-index:20;
+
+}
+
+span.XML-Token
+{
+ azimuth: 180;
+ font-style:italic;
+ color:Maroon;
+ z-index:20;
+
+}
+
+span.h2
+{
+ font-size: 120%;
+ font-weight: bold;
+}
+
+
+
+/* @group Heading Levels */
+
+h1 {
+ font-size: 150%;
+}
+
+.title {
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2 {
+ font-size: 120%;
+}
+
+h3 {
+ 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 cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+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 {
+ color: #3A568E;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4464A5;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+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;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px;
+ margin: 4px;
+ background-color: #FBFCFD;
+ border: 1px solid #C3CFE6;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 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;
+}
+
+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;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+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;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ 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;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9AAED5;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.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%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A2B4D8;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4769AD;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td {
+ -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 {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+ border-top: 1px solid #C3CFE6;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4464A5;
+ white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.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 #A7B8DA;
+ border-left: 1px solid #A7B8DA;
+ border-right: 1px solid #A7B8DA;
+ padding: 6px 0px 6px 0px;
+ color: #233456;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E7F3;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A7B8DA;
+ border-left: 1px solid #A7B8DA;
+ border-right: 1px solid #A7B8DA;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* 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: #602020;
+ 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 #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ 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;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.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;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2B4069;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #EBEFF6;
+ color: #000000;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ width: 100%;
+ margin-bottom: 10px;
+ border: 1px solid #A7B8DA;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ 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 #A7B8DA;
+ border-bottom: 1px solid #A7B8DA;
+ vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A7B8DA;
+ width: 100%;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E7F3;
+ font-size: 90%;
+ color: #233456;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A7B8DA;
+}
+
+
+.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-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ height:30px;
+ line-height:30px;
+ color:#889FCE;
+ border:solid 1px #C1CDE5;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ 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;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#344D7E;
+ 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
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C3CFE6;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 7px;
+}
+
+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.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5072B7;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+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 {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D7DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4464A5;
+ 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;
+}
+
+.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/CMSIS/Documentation/Pack/html/component_files.png b/CMSIS/Documentation/Pack/html/component_files.png
new file mode 100644
index 0000000..5d8c3d4
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/component_files.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/doxygen.css b/CMSIS/Documentation/Pack/html/doxygen.css
new file mode 100644
index 0000000..2642e8f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/doxygen.css
@@ -0,0 +1,1172 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+ font: 400 14px/19px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+ font-size: 150%;
+}
+
+.title {
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2.groupheader {
+ border-bottom: 1px solid #879ECB;
+ color: #354C7B;
+ 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 cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9CAFD4;
+ color: #ffffff;
+ border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px;
+ margin: 4px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ 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.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+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;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ 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;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.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%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+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: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #DEE4F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ 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;
+ display: table !important;
+ width: 100%;
+}
+
+.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 #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* 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: #602020;
+ 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 {
+ 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: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ 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;
+}
+
+.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.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.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: #3D578C;
+}
+
+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: #2A3D61;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ width: 100%;
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ 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 #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ width: 100%;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.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-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+ color: #283A5D;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6884BD;
+}
+
+.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:#364D7C;
+ 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
+{
+ font-size: 8pt;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 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.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ 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;
+}
+
+.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/CMSIS/Documentation/Pack/html/doxygen.png b/CMSIS/Documentation/Pack/html/doxygen.png
new file mode 100644
index 0000000..3ff17d8
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/doxygen.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/dynsections.js b/CMSIS/Documentation/Pack/html/dynsections.js
new file mode 100644
index 0000000..116542f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/dynsections.js
@@ -0,0 +1,78 @@
+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');
+}
+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<level+1) {
+ i.attr('src','ftv2folderopen.png');
+ a.attr('src','ftv2mnode.png');
+ $(this).show();
+ } else if (l==level+1) {
+ i.attr('src','ftv2folderclosed.png');
+ a.attr('src','ftv2pnode.png');
+ $(this).show();
+ } else {
+ $(this).hide();
+ }
+ });
+ updateStripes();
+}
+function toggleFolder(id)
+{
+ var n = $('[id^=row_'+id+']');
+ var i = $('[id^=img_'+id+']');
+ var a = $('[id^=arr_'+id+']');
+ var c = n.slice(1);
+ if (c.filter(':first').is(':visible')===true) {
+ i.attr('src','ftv2folderclosed.png');
+ a.attr('src','ftv2pnode.png');
+ c.hide();
+ } else {
+ i.attr('src','ftv2folderopen.png');
+ a.attr('src','ftv2mnode.png');
+ c.show();
+ }
+ updateStripes();
+}
+
+function toggleInherit(id)
+{
+ var rows = $('tr.inherit.'+id);
+ var img = $('tr.inherit_header.'+id+' img');
+ var src = $(img).attr('src');
+ if (rows.filter(':first').is(':visible')===true) {
+ rows.css('display','none');
+ $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ rows.css('display','table-row'); // using show() causes jump in firefox
+ $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+}
+
diff --git a/CMSIS/Documentation/Pack/html/element_keywords.html b/CMSIS/Documentation/Pack/html/element_keywords.html
new file mode 100644
index 0000000..171350b
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/element_keywords.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/keywords element</title>
+<title>CMSIS-Pack: /package/keywords element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('element_keywords.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/keywords element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Is the group element for wrapping keywords, which can be used to find a PACK. Keywords can be exported to web pages to provide information for search engines, such as Google.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;keywords&gt;</div>
+<div class="line"> &lt;keyword&gt;ARM&lt;/keyword&gt; </div>
+<div class="line"> &lt;keyword&gt;Cortex-M&lt;/keyword&gt; </div>
+<div class="line"> &lt;keyword&gt;TCP/IP Stack&lt;/keyword&gt; </div>
+<div class="line"> &lt;/keywords&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Root Element: Package">
+<tr>
+<th>Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html#element_package">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html#element_package">/package</a> </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>keyword </td><td>Element that encloses one keyword. Enter a keyword between the opening and closing tag of this element. </td><td>xs:string </td><td>1..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/element_releases.html b/CMSIS/Documentation/Pack/html/element_releases.html
new file mode 100644
index 0000000..cfc3b0a
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/element_releases.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/releases element</title>
+<title>CMSIS-Pack: /package/releases element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('element_releases.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/releases element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Contains the release history of the PACK. This element is mandatory. No more than one such group can exist in a PACK. It contains the full release history of the PACK.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;releases&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/releases&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Releases">
+<tr>
+<th>Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html#element_package">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html#element_package">/package</a> </td></tr>
+<tr>
+<th>Child Element </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="element_releases.html#element_release">release</a> </td><td>Contains the version number of the release with some brief information about the main changes in that specific release. </td><td>xs:string </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_release"></a>
+/package/releases/release</h1>
+<p>Contains brief information of the main changes in each release version of a PACK. The content is a string written between the opening and closing <em>release</em> tags. The latest release version is always listed on top.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;releases&gt;</div>
+<div class="line"> &lt;release version=<span class="stringliteral">&quot;1.1.1&quot;</span>&gt;Fixed a problem with the feature xyz.</div>
+<div class="line"> &lt;/release&gt; </div>
+<div class="line"> &lt;release version=<span class="stringliteral">&quot;1.1.0&quot;</span>&gt;Introduces a <span class="keyword">new</span> feature xyz.</div>
+<div class="line"> &lt;/release&gt; </div>
+<div class="line"> &lt;release version=<span class="stringliteral">&quot;1.0.0&quot;</span>&gt;First published version.</div>
+<div class="line"> &lt;/release&gt; </div>
+<div class="line">&lt;/releases&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Release">
+<tr>
+<th>Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="element_releases.html">releases</a> </td><td colspan="3"><a class="el" href="element_releases.html">/package/releases element</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>version </td><td>Version number of the release. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>required </td></tr>
+<tr>
+<td>date </td><td>Release date (specified as YYYY-MM-DD, for example 2014-12-14 (14th December 2014). </td><td>xs:date </td><td>optional </td></tr>
+<tr>
+<td>deprecated </td><td>Pack is no longer officially supported after the set date. It will be excluded from checks for update. Deprecated packs may remain available for download from the server. Tools will continue to work but may provide indicators highlighting end of support for the pack and its content. Not recommended for use with new projects. Note this attribute is only relevant when set for the latest release located on top of the releases section. </td><td>xs:date </td><td>optional </td></tr>
+<tr>
+<td>replacement </td><td>Specifies the vendor and name of the Pack that shall be used instead. Use in conjunction with the deprecated attribute. E.g. the maintainer of the PACK A.X_DFP changes from vendor <em>A</em> to vendor <em>B</em>. In this case the attribute deprecated gets set in the A.X_DFP.pdsc and the replacement attribute set to B.X_DFP. Tools use this information to redirect users to a supported pack. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/element_taxonomy.html b/CMSIS/Documentation/Pack/html/element_taxonomy.html
new file mode 100644
index 0000000..7c71615
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/element_taxonomy.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/taxonomy element</title>
+<title>CMSIS-Pack: /package/taxonomy element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('element_taxonomy.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/taxonomy element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Group to list description elements that define component classes and component group names used within a package description. This element is optional.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;taxonomy&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/taxonomy&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Taxonomy">
+<tr>
+<th>Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html#element_package">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html#element_package">/package</a> </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="element_taxonomy.html#element_taxonomyDescription">description</a> </td><td>Describes or defines a component class or class-group combination. </td><td>TaxonomyDescriptionType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_taxonomyDescription"></a>
+/package/taxonomy/description</h1>
+<p>This element describes a component class or the combination between a component class and a component group. Components are categorized by <em>Cclass</em> and <em>Cgroup</em>. The creator of a package can define names for <em>Cclass</em> and <em>Cgroup</em>. Thus, configuration tools can display the set of available components. A document can be referenced using the attribute <em>doc</em>. The attribute <em>generator</em> can be used to reference to a generator tool. The <em>id</em> of the generator needs to be the same as specified in the element <a class="el" href="pdsc_generators_pg.html#element_generator">/package/generators/generator</a>. The description itself is a string entered between the opening and closing tags of the element <b>description</b>.</p>
+<p>It is recommended to use an already agreed taxonomy for interchangeable components. For example, the combination of class <span class="XML-Token">CMSIS</span> and group <span class="XML-Token">Startup</span> is defined for the device-specific CMSIS-CORE files.</p>
+<p>&#160;</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;taxonomy&gt;</div>
+<div class="line"> &lt;description Cclass=<span class="stringliteral">&quot;Board Support&quot;</span>&gt;Generic Interfaces <span class="keywordflow">for</span> Evaluation and Development Boards&lt;/description&gt;</div>
+<div class="line"> &lt;description Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> doc=<span class="stringliteral">&quot;CMSIS/Documentation/General/html/index.html&quot;</span>&gt;Cortex Microcontroller Software Interface Components&lt;/description&gt;</div>
+<div class="line"> &lt;description Cclass=<span class="stringliteral">&quot;Device&quot;</span> doc=<span class="stringliteral">&quot;CMSIS/Documentation/Core/html/index.html&quot;</span>&gt;Startup, System Setup&lt;/description&gt;</div>
+<div class="line"> &lt;description Cclass=<span class="stringliteral">&quot;CMSIS Driver&quot;</span> doc=<span class="stringliteral">&quot;CMSIS/Documentation/Driver/html/index.html&quot;</span>&gt;Unified Device Drivers compliant to CMSIS-Driver Specifications&lt;/description&gt;</div>
+<div class="line"> &lt;description Cclass=<span class="stringliteral">&quot;File System&quot;</span>&gt;File Drive Support and File System&lt;/description&gt;</div>
+<div class="line"> &lt;description Cclass=<span class="stringliteral">&quot;Graphics&quot;</span>&gt;Graphical User Interface&lt;/description&gt;</div>
+<div class="line"> &lt;description Cclass=<span class="stringliteral">&quot;Network&quot;</span>&gt;Network Stack <span class="keyword">using</span> Internet Protocols&lt;/description&gt;</div>
+<div class="line"> &lt;description Cclass=<span class="stringliteral">&quot;USB&quot;</span>&gt;Universal Serial Bus Stack&lt;/description&gt;</div>
+<div class="line">&lt;/taxonomy&gt;</div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>You <b>must</b> <b>not</b> use Windows or Linux <a href="http://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words" target="_blank">reserved characters</a> for <em>Cclass</em>, <em>Cgrouop</em>, and <em>Csub</em> names! Some development tools use these names to create a directory structure for the software components in projects. Reserved characters are: <pre class="fragment">&lt; (less than)
+&gt; (greater than)
+: (colon)
+" (double quote)
+/ (forward slash)
+\ (backslash)
+| (vertical bar or pipe)
+? (question mark)
+* (asterisk)
+</pre></dd></dl>
+<p>&#160;</p>
+<table class="cmtable" summary="Element: Taxonomy">
+<tr>
+<th>Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="element_taxonomy.html">taxonomy</a> </td><td colspan="3"><a class="el" href="element_taxonomy.html">/package/taxonomy element</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Cclass </td><td>Component Class Name. Can be defined by the creator of the package. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CclassType">Component Classes</a>. </td><td>Cclass </td><td>required </td></tr>
+<tr>
+<td>Cgroup </td><td>Component Group Name. Can be defined by the creator of the package. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CgroupType">Component Groups</a>. </td><td>CgroupType </td><td>optional </td></tr>
+<tr>
+<td>doc </td><td>Reference to documentation. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>generator </td><td>Reference to a generator. Enter the <b>id</b> value of the element <a class="el" href="pdsc_generators_pg.html#element_generator">/package/generators/generator</a>. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="CclassType"></a><b>Table: Component Classes</b></p>
+<p>Component Class names are strings with a minimum length of 3 characters and a maximum length of 32 characters. Component class names are specified in the section <a class="el" href="element_taxonomy.html#element_taxonomyDescription">/package/taxonomy/description</a>.</p>
+<p>These values can be used in the elements:</p>
+<ul>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
+<li><a class="el" href="pdsc_examples_pg.html#element_example_attribute_component">/package/examples/example/attributes/component</a></li>
+<li><a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a></li>
+<li><a class="el" href="pdsc_components_pg.html#element_bundle">/package/components/bundle</a></li>
+<li><a class="el" href="pdsc_apis_pg.html#element_api">/package/apis/api</a></li>
+<li><a class="el" href="element_taxonomy.html#element_taxonomyDescription">/package/taxonomy/description</a></li>
+</ul>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;... Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> ...&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<p>The table lists predefined Component Classes. </p>
+<table class="cmtable" summary="Predefined Cclass names">
+<tr>
+<th>Cclass= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">Board Support </td><td>Components providing interfaces for Evaluation and Development Boards </td></tr>
+<tr>
+<td class="XML-Token">CMSIS </td><td>Components defined by Cortex Microcontroller Software Interface Standard (e.g. <a href="../../Core/html/index.html" class="el">CMSIS-CORE</a>, <a href="../../DSP/html/index.html" class="el">CMSIS-DSP</a> and <a href="../../RTOS/html/index.html" class="el">CMSIS-RTOS</a>) </td></tr>
+<tr>
+<td class="XML-Token">Device </td><td>Components containing device specific implementations of non-standard APIs (e.g. HAL drivers, CMSIS Startup files) </td></tr>
+<tr>
+<td class="XML-Token">CMSIS Driver </td><td>Components implementing unified device drivers compliant to <a href="../../Driver/html/index.html" class="el">CMSIS-Driver</a> (e.g. UART, SPI, USB, etc.) </td></tr>
+<tr>
+<td class="XML-Token">File System </td><td>Components implementing some kind of File Systems (e.g. Flash or RAM based file systems) </td></tr>
+<tr>
+<td class="XML-Token">Graphics </td><td>Components implementing some kind of Display and Graphics Software </td></tr>
+<tr>
+<td class="XML-Token">Network </td><td>Components implementing some kind of Network Communications (e.g. TCP/IP Stack) </td></tr>
+<tr>
+<td class="XML-Token">USB </td><td>Components implementing some kind of USB interfaces (e.g. Host and Device interfaces) </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="CgroupType"></a><b>Table: Component Groups</b></p>
+<p>Component Group names are specified by the element <b>Cgroup</b> and create categories within a Component Class specified by the element <b>Cclass</b>. The creator of the PACK can define the names in the element <a class="el" href="element_taxonomy.html#element_taxonomyDescription">/package/taxonomy/description</a>. A Component Group name is string with a length between 3 and 32 characters.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;... Cgroup=<span class="stringliteral">&quot;RTOS&quot;</span> Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span>...&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<p>Component Groups can be used in the elements:</p>
+<ul>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
+<li><a class="el" href="pdsc_examples_pg.html#element_example_attribute_component">/package/examples/example/attributes/component</a></li>
+<li><a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a></li>
+<li><a class="el" href="pdsc_apis_pg.html#element_api">/package/apis/api</a></li>
+<li><a class="el" href="element_taxonomy.html#element_taxonomyDescription">/package/taxonomy/description</a></li>
+</ul>
+<p>The table lists predefined values for the Component Class <b>Cclass="CMSIS"</b>. No other Component Groups have been defined so far. </p>
+<table class="cmtable" summary="Predefined Cgroup names for Component Class CMSIS">
+<tr>
+<th>Cgroup= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">CORE </td><td>A component containing device support in accordance to the <a href="../../Core/html/index.html" class="el">CMSIS-CORE</a> specification (startup, system and device files) </td></tr>
+<tr>
+<td class="XML-Token">DSP </td><td>A component implementing the <a href="../../DSP/html/index.html" class="el">CMSIS-DSP</a> API specification. </td></tr>
+<tr>
+<td class="XML-Token">RTOS </td><td>A component implementing the <a href="../../RTOS/html/index.html" class="el">CMSIS-RTOS</a> API specification. </td></tr>
+</table>
+<p>&#160;</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/ftv2blank.png b/CMSIS/Documentation/Pack/html/ftv2blank.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2blank.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2cl.png b/CMSIS/Documentation/Pack/html/ftv2cl.png
new file mode 100644
index 0000000..132f657
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2cl.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2doc.png b/CMSIS/Documentation/Pack/html/ftv2doc.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2doc.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2folderclosed.png b/CMSIS/Documentation/Pack/html/ftv2folderclosed.png
new file mode 100644
index 0000000..bb8ab35
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2folderclosed.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2folderopen.png b/CMSIS/Documentation/Pack/html/ftv2folderopen.png
new file mode 100644
index 0000000..d6c7f67
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2folderopen.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2lastnode.png b/CMSIS/Documentation/Pack/html/ftv2lastnode.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2lastnode.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2link.png b/CMSIS/Documentation/Pack/html/ftv2link.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2link.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2mlastnode.png b/CMSIS/Documentation/Pack/html/ftv2mlastnode.png
new file mode 100644
index 0000000..0b63f6d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2mlastnode.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2mnode.png b/CMSIS/Documentation/Pack/html/ftv2mnode.png
new file mode 100644
index 0000000..0b63f6d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2mnode.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2mo.png b/CMSIS/Documentation/Pack/html/ftv2mo.png
new file mode 100644
index 0000000..4bfb80f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2mo.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2node.png b/CMSIS/Documentation/Pack/html/ftv2node.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2node.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2ns.png b/CMSIS/Documentation/Pack/html/ftv2ns.png
new file mode 100644
index 0000000..72e3d71
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2ns.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2plastnode.png b/CMSIS/Documentation/Pack/html/ftv2plastnode.png
new file mode 100644
index 0000000..c6ee22f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2plastnode.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2pnode.png b/CMSIS/Documentation/Pack/html/ftv2pnode.png
new file mode 100644
index 0000000..c6ee22f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2pnode.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2splitbar.png b/CMSIS/Documentation/Pack/html/ftv2splitbar.png
new file mode 100644
index 0000000..fe895f2
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2splitbar.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/ftv2vertline.png b/CMSIS/Documentation/Pack/html/ftv2vertline.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/ftv2vertline.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/index.html b/CMSIS/Documentation/Pack/html/index.html
new file mode 100644
index 0000000..cc29e6e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/index.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Main Page</title>
+<title>CMSIS-Pack: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('index.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">CMSIS-Pack Documentation</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p><b>CMSIS-Pack</b> describes a delivery mechanism for software components, device parameters, and evaluation board support. The XML-based package description (PDSC) file describes the content of a <a class="el" href="_c_p__s_w_components.html">Software Pack</a> (file collection) that includes:</p>
+<ul>
+<li>Source code, header files, and software libraries</li>
+<li>Documentation and source code templates</li>
+<li>Device parameters along with startup code and programming algorithms</li>
+<li>Example projects</li>
+</ul>
+<p>The complete file collection along with the PDSC file is shipped in ZIP-format as a Software Pack. The PDSC file is designed for software development environments and describes the user and device relevant context for the files supplied within such a Software Pack. A Software Pack can be used for multiple purposes (see below).</p>
+<p>After installing a <a class="el" href="_c_p__s_w_components.html">Software Pack</a>, all included software components are available to the development tools. <a class="el" href="_c_p__s_w_components.html#CP_Components">Software components</a> are a collection of source modules, header and configuration files as well as libraries. Packs containing software components can also include <a class="el" href="_c_p__s_w_components.html#CP_Examples">Example Projects</a> and <a class="el" href="_c_p__s_w_components.html#CP_CodeTemplates">User Code Templates</a>.</p>
+<h1><a class="anchor" id="SWPackVariants"></a>
+Software Pack Use Cases</h1>
+<div class="image">
+<img src="SPVariants_small.png" alt="SPVariants_small.png"/>
+<div class="caption">
+Software Pack Use Cases</div></div>
+<p> The figure above shows the following use cases for Software Packs:</p>
+<ul>
+<li><b>Device Family Pack (DFP):</b> contains CMSIS system/startup files, drivers, and flash algorithms for a microcontroller device family.</li>
+<li><b>CMSIS Software Pack:</b> contains the generic CMSIS components (CORE, DSP Library, and RTOS implementation) supplied by ARM.</li>
+<li><b>Middleware Pack:</b> contains software components belonging to a middleware (such as source code or libraries).</li>
+<li><b>Board Support Pack (BSP):</b> contains documentation, schematics, and drivers for a certain development board.</li>
+<li><b>In-house Software Packs:</b> usually contain software components that can be distributed within a company or engineering group.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>A Software Pack can address multiple use cases at the same time!</dd></dl>
+<p>The following sections give you more details on the basics:</p>
+<ul>
+<li><a class="el" href="_c_p__packs.html">Create Software Packs</a> explains the steps required for creating a Software Pack in general.</li>
+<li><a class="el" href="_c_p__s_w_components.html">Pack with Software Components</a> gives detailed information on the contents of the PDSC file.</li>
+<li><a class="el" href="_create_pack__d_f_p.html">Pack with Device Support</a> describes additional requirements of Device Family Packs (DFPs).</li>
+<li><a class="el" href="_create_pack_board.html">Pack with Board Support</a> covers the creation of Board Support Packs (BSPs).</li>
+<li><a class="el" href="_pack__example.html">Pack Example</a> explains the Software Pack example that is part of the CMSIS Pack in more detail.</li>
+<li><a class="el" href="_create_pack_publish.html">Publish a Pack</a> shows the options for publishing a Pack.</li>
+<li><a class="el" href="_create_pack_util.html">Utilities for Creating Packs</a> caters to programs that are useful during the creation of a Pack.</li>
+<li><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a> describes all XML elements that can be used in a PDSC file.</li>
+<li><a class="el" href="_config_wizard.html">Configuration Wizard Annotations</a> can be used to create GUI-like elements in development tools for configuration files.</li>
+</ul>
+<hr/>
+<h2>CMSIS-Pack in ARM::CMSIS Pack</h2>
+<p>Files relevant to CMSIS-Pack are present in the following <b>ARM::CMSIS</b> directories: </p>
+<table class="doxtable">
+<tr>
+<th>Folder </th><th>Content </th></tr>
+<tr>
+<td>Utilities </td><td><a class="el" href="_create_pack_util.html">Utilities for Creating Packs</a> </td></tr>
+<tr>
+<td>Pack\Example </td><td><a class="el" href="_pack__example.html">Reference Software Pack</a> </td></tr>
+<tr>
+<td>Pack\Tutorials </td><td>Tutorials for <a class="el" href="_c_p__packs.html">Creating Packs</a> </td></tr>
+</table>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/jquery.js b/CMSIS/Documentation/Pack/html/jquery.js
new file mode 100644
index 0000000..78ad0bd
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/jquery.js
@@ -0,0 +1,77 @@
+/*! jQuery v1.7.1 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function()
+{g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
+f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d
+&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),
+f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
+{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c)
+{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
+/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;if(b[d]>0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}}))})(jQuery);
+/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}});return d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e;if(f&&e.charAt(0)==="_")return h;f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b){h=f;return!1}}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))});return h}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}this._setOptions(e);return this},_setOptions:function(b){var c=this;a.each(b,function(a,b){c._setOption(a,b)});return this},_setOption:function(a,b){this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b);return this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);this.element.trigger(c,d);return!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);
+/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ */
+(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent")){a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation();return!1}}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(b){if(!c){this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted){b.preventDefault();return!0}}!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0;return!0}},_mouseMove:function(b){if(a.browser.msie&&!(document.documentMode>=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);
+/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */
+(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({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("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom: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({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".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");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e<d.length;e++){var f=a.trim(d[e]),g="ui-resizable-"+f,h=a('<div class="ui-resizable-handle '+g+'"></div>');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),e<h.maxWidth&&(h.maxWidth=e),g<h.maxHeight&&(h.maxHeight=g);this._vBoundaries=h},_updateCache:function(a){var b=this.options;this.offset=this.helper.offset(),d(a.left)&&(this.position.left=a.left),d(a.top)&&(this.position.top=a.top),d(a.height)&&(this.size.height=a.height),d(a.width)&&(this.size.width=a.width)},_updateRatio:function(a,b){var c=this.options,e=this.position,f=this.size,g=this.axis;d(a.height)?a.width=a.height*this.aspectRatio:d(a.width)&&(a.height=a.width/this.aspectRatio),g=="sw"&&(a.left=e.left+(f.width-a.width),a.top=null),g=="nw"&&(a.top=e.top+(f.height-a.height),a.left=e.left+(f.width-a.width));return a},_respectSize:function(a,b){var c=this.helper,e=this._vBoundaries,f=this._aspectRatio||b.shiftKey,g=this.axis,h=d(a.width)&&e.maxWidth&&e.maxWidth<a.width,i=d(a.height)&&e.maxHeight&&e.maxHeight<a.height,j=d(a.width)&&e.minWidth&&e.minWidth>a.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d<this._proportionallyResizeElements.length;d++){var e=this._proportionallyResizeElements[d];if(!this.borderDif){var f=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],g=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];this.borderDif=a.map(f,function(a,b){var c=parseInt(a,10)||0,d=parseInt(g[b],10)||0;return c+d})}if(a.browser.msie&&(!!a(c).is(":hidden")||!!a(c).parents(":hidden").length))continue;e.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,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}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p
+&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);
+/*
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ *
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);
+/**
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
+ * Dual licensed under MIT and GPL.
+ * Date: 5/25/2009
+ * @author Ariel Flesler
+ * @version 1.4.2
+ *
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
+ */
+;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
diff --git a/CMSIS/Documentation/Pack/html/maxInstancesDisplay.png b/CMSIS/Documentation/Pack/html/maxInstancesDisplay.png
new file mode 100644
index 0000000..1e2458b
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/maxInstancesDisplay.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/nav_f.png b/CMSIS/Documentation/Pack/html/nav_f.png
new file mode 100644
index 0000000..72a58a5
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/nav_f.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/nav_g.png b/CMSIS/Documentation/Pack/html/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/nav_g.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/nav_h.png b/CMSIS/Documentation/Pack/html/nav_h.png
new file mode 100644
index 0000000..33389b1
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/nav_h.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/navtree.css b/CMSIS/Documentation/Pack/html/navtree.css
new file mode 100644
index 0000000..8001f82
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/navtree.css
@@ -0,0 +1,143 @@
+#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: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+#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 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+#nav-tree .label a {
+ padding:2px;
+}
+
+#nav-tree .selected a {
+ text-decoration:none;
+ color:#fff;
+}
+
+#nav-tree .children_ul {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .item {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree {
+ padding: 0px 0px;
+ background-color: #FAFAFF;
+ 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: 300px;
+}
+
+.ui-resizable .ui-resizable-handle {
+ display:block;
+}
+
+.ui-resizable-e {
+ background:url("ftv2splitbar.png") repeat scroll right center transparent;
+ cursor:e-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-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ -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/CMSIS/Documentation/Pack/html/navtree.js b/CMSIS/Documentation/Pack/html/navtree.js
new file mode 100644
index 0000000..0d9aaa9
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/navtree.js
@@ -0,0 +1,556 @@
+var NAVTREE =
+[
+ [ "CMSIS-Pack", "index.html", [
+ [ "Revision History of CMSIS-Pack", "pack_revision_history.html", null ],
+ [ "Create Software Packs", "_c_p__packs.html", [
+ [ "Steps to Create a Pack", "_c_p__packs.html#CP_PackSteps", null ],
+ [ "Pack Conventions", "_c_p__packs.html#PackFilenames", null ],
+ [ "Pack Tutorial", "_c_p__packs.html#PackTutorials", null ]
+ ] ],
+ [ "Pack with Software Components", "_c_p__s_w_components.html", [
+ [ "Create PDSC File", "_c_p__s_w_components.html#CP_CreatePDSC", null ],
+ [ "Generate a Pack", "_c_p__s_w_components.html#CP_GeneratePack", null ],
+ [ "Software Components", "_c_p__s_w_components.html#CP_Components", null ],
+ [ "Conditions", "_c_p__s_w_components.html#CP_Conditions", null ],
+ [ "Variants", "_c_p__s_w_components.html#CP_Variants", [
+ [ "RTE_Components.h", "_c_p__s_w_components.html#CP_RTEComponents_h", null ]
+ ] ],
+ [ "Bundles", "_c_p__s_w_components.html#CP_Bundles", null ],
+ [ "Instances", "_c_p__s_w_components.html#CP_Instances", null ],
+ [ "API Interface", "_c_p__s_w_components.html#CP_API", null ],
+ [ "User Code Templates", "_c_p__s_w_components.html#CP_CodeTemplates", null ],
+ [ "Example Projects", "_c_p__s_w_components.html#CP_Examples", null ]
+ ] ],
+ [ "Pack with Device Support", "_create_pack__d_f_p.html", [
+ [ "Basic Device Family Pack", "_create_pack__d_f_p.html#CP_BasicDFP", null ],
+ [ "System and Startup Files", "_create_pack__d_f_p.html#CP_System_Startp", null ],
+ [ "System View Description File", "_create_pack__d_f_p.html#CP_SVD", null ],
+ [ "Flash Programming Algorithms", "_create_pack__d_f_p.html#CP_FlashProgrammingAlgorithm", null ],
+ [ "Device Properties", "_create_pack__d_f_p.html#CP_DeviceProperties", [
+ [ "Device Specific Software Components", "_create_pack__d_f_p.html#CP_DeviceSWComp", null ]
+ ] ]
+ ] ],
+ [ "Pack with Board Support", "_create_pack_board.html", [
+ [ "Specify a Development Board", "_create_pack_board.html#CP_SpecDevBoard", null ],
+ [ "Create a BSP Bundle", "_create_pack_board.html#CP_BundleExample", null ]
+ ] ],
+ [ "Pack Example", "_pack__example.html", null ],
+ [ "Utilities for Creating Packs", "_create_pack_util.html", "_create_pack_util" ],
+ [ "Publish a Pack", "_create_pack_publish.html", [
+ [ "Local Installation", "_create_pack_publish.html#CP_LocalInstallation", null ],
+ [ "Web Download", "_create_pack_publish.html#CP_WebDownload", null ],
+ [ "Publishing on www.keil.com/pack", "_create_pack_publish.html#CP_KeilComPack", null ]
+ ] ],
+ [ "Pack Description (*.PDSC) Format", "_pack_format.html", "_pack_format" ],
+ [ "Configuration Wizard Annotations", "_config_wizard.html", [
+ [ "Annotation Rules", "_config_wizard.html#configWizard_annotations", null ],
+ [ "Code Example", "_config_wizard.html#configWizard_codeExample", null ],
+ [ "Tool-specific display", "_config_wizard.html#configWizard_display", null ]
+ ] ],
+ [ "Flash Programming Algorithms", "_flash_algorithm.html", "_flash_algorithm" ]
+ ] ]
+];
+
+var NAVTREEINDEX =
+[
+"_algorithm_func.html"
+];
+
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation';
+var navTreeSubIndices = new Array();
+
+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 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';
+ if ($.browser.msie && $.browser.version<=8) {
+ // script.onload does work with older versions of IE
+ script.onreadystatechange = function() {
+ if (script.readyState=='complete' || script.readyState=='loaded') {
+ func(); if (show) showRoot();
+ }
+ }
+ }
+ head.appendChild(script);
+}
+
+function createIndent(o,domNode,node,level)
+{
+ if (node.parentNode && node.parentNode.parentNode) {
+ createIndent(o,domNode,node.parentNode,level+1);
+ }
+ var imgNode = document.createElement("img");
+ imgNode.width = 16;
+ imgNode.height = 22;
+ if (level==0 && node.childrenData) {
+ 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");
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2plastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2pnode.png";
+ }
+ node.expanded = false;
+ } else {
+ expandNode(o, node, false, false);
+ }
+ }
+ node.expandToggle.appendChild(imgNode);
+ domNode.appendChild(node.expandToggle);
+ } else {
+ domNode.appendChild(imgNode);
+ }
+ if (level==0) {
+ if (node.isLast) {
+ if (node.childrenData) {
+ imgNode.src = node.relpath+"ftv2plastnode.png";
+ } else {
+ imgNode.src = node.relpath+"ftv2lastnode.png";
+ domNode.appendChild(imgNode);
+ }
+ } else {
+ if (node.childrenData) {
+ imgNode.src = node.relpath+"ftv2pnode.png";
+ } else {
+ imgNode.src = node.relpath+"ftv2node.png";
+ domNode.appendChild(imgNode);
+ }
+ }
+ } else {
+ if (node.isLast) {
+ imgNode.src = node.relpath+"ftv2blank.png";
+ } else {
+ imgNode.src = node.relpath+"ftv2vertline.png";
+ }
+ }
+ imgNode.border = "0";
+}
+
+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($(location).attr('pathname'));
+ var targetPage = stripPath(link.split('#')[0]);
+ a.href = srcPage!=targetPage ? url : '#';
+ 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 pos, anchor = $(aname), docContent = $('#doc-content');
+ if (anchor.parent().attr('class')=='memItemLeft') {
+ pos = anchor.parent().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()));
+ docContent.animate({
+ scrollTop: pos + docContent.scrollTop() - docContent.offset().top
+ },Math.max(50,Math.min(500,dist)),function(){
+ window.location.replace(aname);
+ });
+ }
+ };
+ } 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',0,{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);
+ } if (imm || ($.browser.msie && $.browser.version>8)) {
+ // somehow slideDown jumps to the start of tree for IE9 :-(
+ $(node.getChildrenUL()).show();
+ } else {
+ $(node.getChildrenUL()).slideDown("fast");
+ }
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ }
+ }
+}
+
+function glowEffect(n,duration)
+{
+ n.addClass('glow').delay(duration).queue(function(next){
+ $(this).removeClass('glow');next();
+ });
+}
+
+function highlightAnchor()
+{
+ var anchor = $($(location).attr('hash'));
+ if (anchor.parent().attr('class')=='memItemLeft'){
+ var rows = $('.memberdecls tr[class$="'+
+ window.location.hash.substring(1)+'"]');
+ glowEffect(rows.children(),300); // member without details
+ } else if (anchor.parents().slice(2).prop('tagName')=='TR') {
+ glowEffect(anchor.parents('div.memitem'),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($(location).attr('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');
+ }
+ 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()).show();
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ var n = node.children[o.breadcrumbs[index]];
+ if (index+1<o.breadcrumbs.length) {
+ showNode(o,n,index+1,hash);
+ } else {
+ if (typeof(n.childrenData)==='string') {
+ var varName = n.childrenData;
+ getScript(n.relpath+varName,function(){
+ n.childrenData = getData(varName);
+ node.expanded=false;
+ showNode(o,node,index,hash); // retry with child node expanded
+ },true);
+ } else {
+ var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
+ if (rootBase=="index" || rootBase=="pages") {
+ expandNode(o, n, true, true);
+ }
+ selectAndHighlight(hash,n);
+ }
+ }
+ }
+ } else {
+ selectAndHighlight(hash);
+ }
+}
+
+function getNode(o, po)
+{
+ po.childrenVisited = true;
+ var l = po.childrenData.length-1;
+ for (var i in po.childrenData) {
+ var nodeData = po.childrenData[i];
+ po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
+ i==l);
+ }
+}
+
+function gotoNode(o,subIndex,root,hash,relpath)
+{
+ var nti = navTreeSubIndices[subIndex][root+hash];
+ o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
+ if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
+ navTo(o,NAVTREE[0][1],"",relpath);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ if (o.breadcrumbs) {
+ o.breadcrumbs.unshift(0); // add 0 for root node
+ showNode(o, o.node, 0, hash);
+ }
+}
+
+function navTo(o,root,hash,relpath)
+{
+ var link = cachedLink();
+ if (link) {
+ var parts = link.split('#');
+ root = parts[0];
+ if (parts.length>1) hash = '#'+parts[1];
+ else hash='';
+ }
+ if (root==NAVTREE[0][1]) {
+ $('#nav-sync').css('top','30px');
+ } else {
+ $('#nav-sync').css('top','5px');
+ }
+ if (hash.match(/^#l\d+$/)) {
+ var anchor=$('a[name='+hash.substring(1)+']');
+ glowEffect(anchor.parent(),1000); // line number
+ hash=''; // strip line number anchors
+ //root=root.replace(/_source\./,'.'); // source link to doc link
+ }
+ var url=root+hash;
+ var i=-1;
+ while (NAVTREEINDEX[i+1]<=url) i++;
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath)
+ } else {
+ getScript(relpath+'navtreeindex'+i,function(){
+ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath);
+ }
+ },true);
+ }
+}
+
+function showSyncOff(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
+}
+
+function showSyncOn(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_on.png"/ title="'+SYNCONMSG+'">');
+}
+
+function toggleSyncButton(relpath)
+{
+ var navSync = $('#nav-sync');
+ if (navSync.hasClass('sync')) {
+ navSync.removeClass('sync');
+ showSyncOff(navSync,relpath);
+ storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash'));
+ } else {
+ navSync.addClass('sync');
+ showSyncOn(navSync,relpath);
+ deleteLink();
+ }
+}
+
+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("img");
+ o.node.plus_img.src = relpath+"ftv2pnode.png";
+ o.node.plus_img.width = 16;
+ o.node.plus_img.height = 22;
+
+ if (localStorageSupported()) {
+ var navSync = $('#nav-sync');
+ if (cachedLink()) {
+ showSyncOff(navSync,relpath);
+ navSync.removeClass('sync');
+ } else {
+ showSyncOn(navSync,relpath);
+ }
+ navSync.click(function(){ toggleSyncButton(relpath); });
+ }
+
+ navTo(o,toroot,window.location.hash,relpath);
+
+ $(window).bind('hashchange', function(){
+ if (window.location.hash && window.location.hash.length>1){
+ var a;
+ if ($(location).attr('hash')){
+ var clslink=stripPath($(location).attr('pathname'))+':'+
+ $(location).attr('hash').substring(1);
+ a=$('.item a[class$="'+clslink+'"]');
+ }
+ if (a==null || !$(a).parent().parent().hasClass('selected')){
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ var link=stripPath2($(location).attr('pathname'));
+ navTo(o,link,$(location).attr('hash'),relpath);
+ }
+ })
+
+ $(window).load(showRoot);
+}
+
diff --git a/CMSIS/Documentation/Pack/html/navtreeindex0.js b/CMSIS/Documentation/Pack/html/navtreeindex0.js
new file mode 100644
index 0000000..41e1976
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/navtreeindex0.js
@@ -0,0 +1,148 @@
+var NAVTREEINDEX0 =
+{
+"_algorithm_func.html":[10,2],
+"_algorithm_func.html#BlankCheck":[10,2,0],
+"_algorithm_func.html#EraseChip":[10,2,1],
+"_algorithm_func.html#EraseSector":[10,2,2],
+"_algorithm_func.html#Init":[10,2,3],
+"_algorithm_func.html#ProgramPage":[10,2,4],
+"_algorithm_func.html#UnInit":[10,2,5],
+"_algorithm_func.html#Verify":[10,2,6],
+"_c_p__editors.html":[6,1],
+"_c_p__packs.html":[1],
+"_c_p__packs.html#CP_PackSteps":[1,0],
+"_c_p__packs.html#PackFilenames":[1,1],
+"_c_p__packs.html#PackTutorials":[1,2],
+"_c_p__s_w_components.html":[2],
+"_c_p__s_w_components.html#CP_API":[2,7],
+"_c_p__s_w_components.html#CP_Bundles":[2,5],
+"_c_p__s_w_components.html#CP_CodeTemplates":[2,8],
+"_c_p__s_w_components.html#CP_Components":[2,2],
+"_c_p__s_w_components.html#CP_Conditions":[2,3],
+"_c_p__s_w_components.html#CP_CreatePDSC":[2,0],
+"_c_p__s_w_components.html#CP_Examples":[2,9],
+"_c_p__s_w_components.html#CP_GeneratePack":[2,1],
+"_c_p__s_w_components.html#CP_Instances":[2,6],
+"_c_p__s_w_components.html#CP_RTEComponents_h":[2,4,0],
+"_c_p__s_w_components.html#CP_Variants":[2,4],
+"_c_p__z_i_p_tool.html":[6,2],
+"_config_wizard.html":[9],
+"_config_wizard.html#configWizard_annotations":[9,0],
+"_config_wizard.html#configWizard_codeExample":[9,1],
+"_config_wizard.html#configWizard_display":[9,2],
+"_create_pack__d_f_p.html":[3],
+"_create_pack__d_f_p.html#CP_BasicDFP":[3,0],
+"_create_pack__d_f_p.html#CP_DeviceProperties":[3,4],
+"_create_pack__d_f_p.html#CP_DeviceSWComp":[3,4,0],
+"_create_pack__d_f_p.html#CP_FlashProgrammingAlgorithm":[3,3],
+"_create_pack__d_f_p.html#CP_SVD":[3,2],
+"_create_pack__d_f_p.html#CP_System_Startp":[3,1],
+"_create_pack_board.html":[4],
+"_create_pack_board.html#CP_BundleExample":[4,1],
+"_create_pack_board.html#CP_SpecDevBoard":[4,0],
+"_create_pack_publish.html":[7],
+"_create_pack_publish.html#CP_KeilComPack":[7,2],
+"_create_pack_publish.html#CP_LocalInstallation":[7,0],
+"_create_pack_publish.html#CP_WebDownload":[7,1],
+"_create_pack_util.html":[6],
+"_flash_algorithm.html":[10],
+"_flash_algorithm.html#AddFPA":[10,1],
+"_flash_algorithm.html#CreateFPA":[10,0],
+"_pack__example.html":[5],
+"_pack_chk.html":[6,0],
+"_pack_chk.html#PackChkMessages":[6,0,0],
+"_pack_format.html":[8],
+"_pack_format.html#Filenames":[8,0],
+"_pack_format.html#PACK_Example":[8,3],
+"_pack_format.html#PDSC_Example":[8,2],
+"_pack_format.html#PackSchema":[8,1],
+"element_keywords.html":[8,5],
+"element_releases.html":[8,6],
+"element_releases.html#element_release":[8,6,0],
+"element_taxonomy.html":[8,7],
+"element_taxonomy.html#element_taxonomyDescription":[8,7,0],
+"index.html":[],
+"pack_revision_history.html":[0],
+"pages.html":[],
+"pdsc__sequence_name_enum_pg.html":[8,15],
+"pdsc__sequence_name_enum_pg.html#default_sequences":[8,15,1],
+"pdsc__sequence_name_enum_pg.html#usage_of_sequences":[8,15,0],
+"pdsc_apis_pg.html":[8,8],
+"pdsc_apis_pg.html#element_api":[8,8,1],
+"pdsc_apis_pg.html#element_apis":[8,8,0],
+"pdsc_boards_pg.html":[8,11],
+"pdsc_boards_pg.html#element_board":[8,11,1],
+"pdsc_boards_pg.html#element_board_book":[8,11,7],
+"pdsc_boards_pg.html#element_board_compatibleDevice":[8,11,4],
+"pdsc_boards_pg.html#element_board_debugInterface":[8,11,6],
+"pdsc_boards_pg.html#element_board_feature":[8,11,2],
+"pdsc_boards_pg.html#element_board_image":[8,11,5],
+"pdsc_boards_pg.html#element_board_mountedDevice":[8,11,3],
+"pdsc_boards_pg.html#element_boards":[8,11,0],
+"pdsc_components_pg.html":[8,13],
+"pdsc_components_pg.html#Component_Bundle":[8,13,0],
+"pdsc_components_pg.html#Component_Files":[8,13,1],
+"pdsc_components_pg.html#Component_Instances":[8,13,2],
+"pdsc_components_pg.html#RTE_Components_h":[8,13,3],
+"pdsc_components_pg.html#element_bundle":[8,13,5],
+"pdsc_components_pg.html#element_component":[8,13,6],
+"pdsc_components_pg.html#element_components":[8,13,4],
+"pdsc_components_pg.html#element_file":[8,13,8],
+"pdsc_components_pg.html#element_files":[8,13,7],
+"pdsc_conditions_pg.html":[8,12],
+"pdsc_conditions_pg.html#element_accept":[8,12,2],
+"pdsc_conditions_pg.html#element_condition":[8,12,1],
+"pdsc_conditions_pg.html#element_conditions":[8,12,0],
+"pdsc_conditions_pg.html#element_deny":[8,12,4],
+"pdsc_conditions_pg.html#element_require":[8,12,3],
+"pdsc_devices_pg.html":[8,10],
+"pdsc_devices_pg.html#element_devices":[8,10,0],
+"pdsc_examples_pg.html":[8,14],
+"pdsc_examples_pg.html#element_example":[8,14,1],
+"pdsc_examples_pg.html#element_example_attribute_component":[8,14,6],
+"pdsc_examples_pg.html#element_example_attributes":[8,14,5],
+"pdsc_examples_pg.html#element_example_board":[8,14,2],
+"pdsc_examples_pg.html#element_example_project":[8,14,3],
+"pdsc_examples_pg.html#element_example_project_env":[8,14,4],
+"pdsc_examples_pg.html#element_examples":[8,14,0],
+"pdsc_family_pg.html":[8,10,1],
+"pdsc_family_pg.html#element_algorithm":[8,10,1,3],
+"pdsc_family_pg.html#element_book":[8,10,1,4],
+"pdsc_family_pg.html#element_compile":[8,10,1,5],
+"pdsc_family_pg.html#element_dbg_datapatch":[8,10,1,22],
+"pdsc_family_pg.html#element_debug":[8,10,1,21],
+"pdsc_family_pg.html#element_debugconfig":[8,10,1,11],
+"pdsc_family_pg.html#element_debugport":[8,10,1,13],
+"pdsc_family_pg.html#element_debugvars":[8,10,1,12],
+"pdsc_family_pg.html#element_description":[8,10,1,6],
+"pdsc_family_pg.html#element_device":[8,10,1,2],
+"pdsc_family_pg.html#element_dp_cjtag":[8,10,1,16],
+"pdsc_family_pg.html#element_dp_jtag":[8,10,1,14],
+"pdsc_family_pg.html#element_dp_swd":[8,10,1,15],
+"pdsc_family_pg.html#element_environment":[8,10,1,7],
+"pdsc_family_pg.html#element_family":[8,10,1,0],
+"pdsc_family_pg.html#element_feature":[8,10,1,8],
+"pdsc_family_pg.html#element_memory":[8,10,1,9],
+"pdsc_family_pg.html#element_processor":[8,10,1,10],
+"pdsc_family_pg.html#element_seq_block":[8,10,1,20],
+"pdsc_family_pg.html#element_seq_control":[8,10,1,19],
+"pdsc_family_pg.html#element_sequence":[8,10,1,18],
+"pdsc_family_pg.html#element_sequences":[8,10,1,17],
+"pdsc_family_pg.html#element_subFamily":[8,10,1,1],
+"pdsc_family_pg.html#element_trace":[8,10,1,23],
+"pdsc_family_pg.html#element_trace_serialwire":[8,10,1,24],
+"pdsc_family_pg.html#element_trace_tracebuffer":[8,10,1,26],
+"pdsc_family_pg.html#element_trace_traceport":[8,10,1,25],
+"pdsc_family_pg.html#element_variant":[8,10,1,27],
+"pdsc_generators_pg.html":[8,9],
+"pdsc_generators_pg.html#element_gen_argument":[8,9,4],
+"pdsc_generators_pg.html#element_gen_arguments":[8,9,3],
+"pdsc_generators_pg.html#element_gen_file":[8,9,7],
+"pdsc_generators_pg.html#element_gen_files":[8,9,6],
+"pdsc_generators_pg.html#element_gen_project_files":[8,9,5],
+"pdsc_generators_pg.html#element_gen_select":[8,9,2],
+"pdsc_generators_pg.html#element_generator":[8,9,1],
+"pdsc_generators_pg.html#element_generators":[8,9,0],
+"pdsc_package_pg.html":[8,4],
+"pdsc_package_pg.html#element_package":[8,4,0]
+};
diff --git a/CMSIS/Documentation/Pack/html/open.png b/CMSIS/Documentation/Pack/html/open.png
new file mode 100644
index 0000000..30f75c7
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/open.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/pack_revision_history.html b/CMSIS/Documentation/Pack/html/pack_revision_history.html
new file mode 100644
index 0000000..0133050
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pack_revision_history.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Revision History of CMSIS-Pack</title>
+<title>CMSIS-Pack: Revision History of CMSIS-Pack</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pack_revision_history.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Revision History of CMSIS-Pack </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><table class="cmtable" summary="Revision History">
+<tr>
+<th>Version </th><th>Description </th></tr>
+<tr>
+<td>1.4.1 </td><td>Modifications compared to Version 1.4.0<ul>
+<li>pName, Dname, Dvariant type changed from xs:string to RestrictedString </li>
+</ul>
+</td></tr>
+<tr>
+<td>1.4.0 </td><td>Modifications compared to Version 1.3.3:<ul>
+<li>device section <em>memory</em> specification redefined, deprecating <em>id</em> attribute</li>
+<li>device section <em>algorithm</em> support multiple flash programming algorithm styles</li>
+<li>device section <em>debug</em> adding CJTAG debug port type </li>
+</ul>
+</td></tr>
+<tr>
+<td>1.3.3 </td><td>Modifications compared to Version 1.3.1:<ul>
+<li>Schema Version remains unchanged, since no incompatible update</li>
+<li><em>Added</em> generator section can specify a target GPDSC file that it will generate</li>
+<li><em>Added</em> A component can be linked to a generator and the generator's GPDSC file will be automatically included in the project as part of the component.</li>
+<li><em>Added</em> A generator command is optionally extended by a separate description of arguments</li>
+<li><em>Updated</em> Vendor list</li>
+<li><em>Updated</em> Utility PackChk.exe to Version 1.3.0.0:<ul>
+<li>detect redefinitions of boards</li>
+<li>check presence of board image files</li>
+<li>check for duplicate device features</li>
+<li>check for duplicate device definitions</li>
+<li>check for</li>
+<li>minor bug fixes </li>
+</ul>
+</li>
+</ul>
+</td></tr>
+<tr>
+<td>1.3.1 </td><td>Modifications compared to Version 1.3:<ul>
+<li>Schema Version remains unchanged, since no incompatible update</li>
+<li><em>Added</em> Cortex-M7 to the predefined list of processors</li>
+<li><em>Updated</em> Vendor list</li>
+<li><em>Added</em> File version attribute to debugvars element of device description</li>
+<li><em>Updated</em> XML file header encoding tag set to capital "UTF8"</li>
+<li><em>Deprecated</em> init attribute of &lt;memory&gt; element in &lt;devices&gt; section deprecated </li>
+</ul>
+</td></tr>
+<tr>
+<td>1.3 </td><td>Modifications compared to Version 1.2:<ul>
+<li><em>Added</em> attributes to release tag for managing deprecation and changing pack IDs</li>
+<li><em>Removed</em> external RAMn and ROMn memory IDs in memory tag</li>
+<li><em>Added</em> FileCategoryTypes in &lt;file&gt; element for C, C++, Assembler, Linker</li>
+<li><em>Extended</em> specification of &lt;require&gt;, &lt;accept&gt; and &lt;deny&gt; with Cversion and Capiversion ranges</li>
+<li><em>Added</em> <a class="el" href="_create_pack_util.html">Utilities for Creating Packs</a> and <a class="el" href="_pack_chk.html">PackChk.exe</a> for pack validation</li>
+<li><em>Added</em> documentation for the Example PACK based on LPC1800 Device Family</li>
+<li><em>Refined</em> &lt;debug&gt; element description</li>
+<li>Many clarifications in the documentation along with examples </li>
+</ul>
+</td></tr>
+<tr>
+<td>1.2 </td><td>Clarifications for release. </td></tr>
+<tr>
+<td>1.1 - Preliminary </td><td>Update release for review:<ul>
+<li><em>new</em> Boards description</li>
+<li><em>new</em> Debug description</li>
+<li><em>revised</em> Device Feature capture</li>
+<li><em>new</em> Generator description</li>
+<li><em>new</em> Flash Algorithm Specification</li>
+<li><em>new</em> Configuration Wizard Annotation Specification </li>
+</ul>
+</td></tr>
+<tr>
+<td>1.0 - Preliminary </td><td>Preliminary release for review </td></tr>
+<tr>
+<td>0.10 </td><td>Release for beta review </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:42 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pages.html b/CMSIS/Documentation/Pack/html/pages.html
new file mode 100644
index 0000000..444942e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pages.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Usage and Description</title>
+<title>CMSIS-Pack: Usage and Description</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pages.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Usage and Description</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="pack_revision_history.html" target="_self">Revision History of CMSIS-Pack</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="_c_p__packs.html" target="_self">Create Software Packs</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="_c_p__s_w_components.html" target="_self">Pack with Software Components</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="_create_pack__d_f_p.html" target="_self">Pack with Device Support</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="_create_pack_board.html" target="_self">Pack with Board Support</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="_pack__example.html" target="_self">Pack Example</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img id="arr_6_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('6_')"/><a class="el" href="_create_pack_util.html" target="_self">Utilities for Creating Packs</a></td><td class="desc"></td></tr>
+<tr id="row_6_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="_pack_chk.html" target="_self">PackChk.exe</a></td><td class="desc"></td></tr>
+<tr id="row_6_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="_c_p__editors.html" target="_self">XML Editors</a></td><td class="desc"></td></tr>
+<tr id="row_6_2_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="_c_p__z_i_p_tool.html" target="_self">ZIP Compression Tools</a></td><td class="desc"></td></tr>
+<tr id="row_7_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="_create_pack_publish.html" target="_self">Publish a Pack</a></td><td class="desc"></td></tr>
+<tr id="row_8_"><td class="entry"><img id="arr_8_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('8_')"/><a class="el" href="_pack_format.html" target="_self">Pack Description (*.PDSC) Format</a></td><td class="desc"></td></tr>
+<tr id="row_8_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="pdsc_package_pg.html" target="_self">/package element</a></td><td class="desc"></td></tr>
+<tr id="row_8_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="element_keywords.html" target="_self">/package/keywords element</a></td><td class="desc"></td></tr>
+<tr id="row_8_2_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="element_releases.html" target="_self">/package/releases element</a></td><td class="desc"></td></tr>
+<tr id="row_8_3_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="element_taxonomy.html" target="_self">/package/taxonomy element</a></td><td class="desc"></td></tr>
+<tr id="row_8_4_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="pdsc_apis_pg.html" target="_self">/package/apis element</a></td><td class="desc"></td></tr>
+<tr id="row_8_5_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="pdsc_generators_pg.html" target="_self">/package/generators element</a></td><td class="desc"></td></tr>
+<tr id="row_8_6_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_8_6_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('8_6_')"/><a class="el" href="pdsc_devices_pg.html" target="_self">/package/devices element</a></td><td class="desc"></td></tr>
+<tr id="row_8_6_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="pdsc_family_pg.html" target="_self">/package/devices/family element</a></td><td class="desc"></td></tr>
+<tr id="row_8_7_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="pdsc_boards_pg.html" target="_self">/package/boards element</a></td><td class="desc"></td></tr>
+<tr id="row_8_8_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="pdsc_conditions_pg.html" target="_self">/package/conditions element</a></td><td class="desc"></td></tr>
+<tr id="row_8_9_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="pdsc_components_pg.html" target="_self">/package/components element</a></td><td class="desc"></td></tr>
+<tr id="row_8_10_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="pdsc_examples_pg.html" target="_self">/package/examples element</a></td><td class="desc"></td></tr>
+<tr id="row_8_11_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="pdsc__sequence_name_enum_pg.html" target="_self">Debug Access Sequences</a></td><td class="desc">Operations executed by tools for debugging and flash programming.<br/>
+ <br/>
+</td></tr>
+<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="_config_wizard.html" target="_self">Configuration Wizard Annotations</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><img id="arr_10_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('10_')"/><a class="el" href="_flash_algorithm.html" target="_self">Flash Programming Algorithms</a></td><td class="desc"></td></tr>
+<tr id="row_10_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="_algorithm_func.html" target="_self">Algorithm Functions</a></td><td class="desc">Blank Check</td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc__sequence_name_enum_pg.html b/CMSIS/Documentation/Pack/html/pdsc__sequence_name_enum_pg.html
new file mode 100644
index 0000000..f7b8d52
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc__sequence_name_enum_pg.html
@@ -0,0 +1,499 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Debug Access Sequences</title>
+<title>CMSIS-Pack: Debug Access Sequences</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc__sequence_name_enum_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Debug Access Sequences </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Operations executed by tools for debugging and flash programming.<br/>
+ <br/>
+</p>
+<p>Debug Access Sequences define the activities of development tools to connect to a device using the debug channel for debugging, tracing, or flash programming.</p>
+<p>Several Debug Access Sequences are pre-defined and executed in specific context. Refer to <a class="el" href="pdsc_family_pg.html#element_sequences">/package/devices/family/.../sequences</a> for a details.</p>
+<p>The development tools should implement <a class="el" href="pdsc__sequence_name_enum_pg.html#default_sequences">Default Debug Access Sequences</a> for these Pre-defined Debug Access Sequences. These <a class="el" href="pdsc__sequence_name_enum_pg.html#default_sequences">Default Debug Access Sequences</a> can be overwritten by Debug Access Sequences specified with the <a class="el" href="pdsc_family_pg.html#element_sequence">sequence</a> element in the PDSC file. Additionally, a PDSC file can contain user-defined sequences, for example to reuse access sequence fragments.</p>
+<h1><a class="anchor" id="usage_of_sequences"></a>
+Usage of Debug Access Sequences</h1>
+<p>Pre-defined Debug Access Sequences are used in the following context:</p>
+<ul>
+<li><b>Connect Debugger to Device</b> is executed when debugging or flash programming with the target starts.</li>
+<li><b>Reset Device</b> is executed to reset the target.</li>
+<li><b>Verify Code</b> is executed to verify the content after flash programming.</li>
+<li><b>Disconnect Debugger</b> is executed when debugging or flash programming with the target stops.</li>
+</ul>
+<p>The following diagrams show how the Debug Access Sequences are executed by a development tool.</p>
+<p><b>Connect Debugger to Device</b> is executed when debugging or flash programming with the target starts.</p>
+<div class="image">
+<img src="DebugConnect.png" alt="DebugConnect.png"/>
+</div>
+<p><b>Reset Device</b> is executed to reset the target.</p>
+<div class="image">
+<img src="Reset.png" alt="Reset.png"/>
+</div>
+<p><b>Verify Code</b> is executed to verify the content after flash programming.</p>
+<div class="image">
+<img src="CodeVerify.png" alt="CodeVerify.png"/>
+</div>
+<p><b>Disconnect Debugger</b> is executed when debugging or flash programming with the target stops.</p>
+<div class="image">
+<img src="DebugDisconnect.png" alt="DebugDisconnect.png"/>
+</div>
+<h1><a class="anchor" id="default_sequences"></a>
+Default Debug Access Sequences</h1>
+<p>Debug Access Sequences get defined in the <a class="el" href="pdsc_family_pg.html#element_sequence">sequence</a> element. A list of all available pre-defined sequence names is provided in the table <a class="el" href="pdsc_family_pg.html#sequences_names">Pre-defined Debug Access Sequences</a>. The following default sequences should be implemented in a tool. They are executed when no sequence definition exists in the PDSC file.</p>
+<dl class="section note"><dt>Note</dt><dd>Default Debug Access Sequences read the System Control Space (SCS) of the processor and assume that the SCS offset is implemented as defined in the ARMv6-M/ARMv7-M architecture reference manual.</dd></dl>
+<p>The following Default Debug Access Sequences are implemented:</p>
+<ul>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugPortSetup">DebugPortSetup</a> : Prepare the target debug port for connection.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugPortStart">DebugPortStart</a> : Connect to the target debug port and power it up.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugPortStop">DebugPortStop</a> : Power down and disconnect from target debug port.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugCoreStart">DebugCoreStart</a> : Initialize core debug system.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugCoreStop">DebugCoreStop</a> : Uninitialize core debug system.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetSystem">ResetSystem</a> : Execute a system-wide reset via software mechanisms.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetProcessor">ResetProcessor</a> : Execute a processor reset via software mechanisms.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetHardware">ResetHardware</a> : Execute a system-wide reset via the dedicated debugger reset line nRST.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetHardwareAssert">ResetHardwareAssert</a> : Assert a system-wide reset line nRST.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetHardwareDeassert">ResetHardwareDeassert</a> : De-Assert a system-wide reset line nRST.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetCatchSet">ResetCatchSet</a> : Configure the target to stop code execution after a reset.</li>
+<li><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetCatchClear">ResetCatchClear</a> : Free hardware resources allocated by ResetCatchSet.</li>
+</ul>
+<p><b>DebugPortSetup</b> <a class="anchor" id="DebugPortSetup"></a> </p>
+<pre class="fragment"> &lt;sequence name="DebugPortSetup"&gt;
+ &lt;block&gt;
+ __var isSWJ = ((__protocol &amp;amp; 0x00010000) != 0);
+ __var protType = __protocol &amp;amp; 0x0000FFFF;
+ &lt;/block&gt;
+
+ &lt;!-- JTAG Protocol --&gt;
+ &lt;control if="protType == 1"&gt;
+
+ &lt;control if="isSWJ"&gt;
+
+ &lt;block atomic="1"&gt;
+ // Ensure current debug interface is in reset state
+ DAP_SWJ_Sequence(51, 0x0007FFFFFFFFFFFF);
+
+ // Execute SWJ-DP Switch Sequence SWD to JTAG (0xE73C)
+ // Change if SWJ-DP uses deprecated switch code (0xAEAE)
+ DAP_SWJ_Sequence(16, 0xE73C);
+
+ // Ensure JTAG interface is reset
+ DAP_SWJ_Sequence(6, 0x3F);
+ &lt;/block&gt;
+
+ &lt;/control&gt;
+
+ &lt;block atomic="1"&gt;
+ // JTAG "Soft" Reset
+ DAP_JTAG_Sequence(6, 1, 0x3F);
+ DAP_JTAG_Sequence(1, 0, 0x01);
+ &lt;/block&gt;
+
+ &lt;/control&gt;
+
+ &lt;!-- SWD Protocol --&gt;
+ &lt;control if="protType == 2"&gt;
+
+ &lt;control if="isSWJ"&gt;
+
+ &lt;block atomic="1"&gt;
+ // Ensure current debug interface is in reset state
+ DAP_SWJ_Sequence(51, 0x0007FFFFFFFFFFFF);
+
+ // Execute SWJ-DP Switch Sequence JTAG to SWD (0xE79E)
+ // Change if SWJ-DP uses deprecated switch code (0xEDB6)
+ DAP_SWJ_Sequence(16, 0xE79E);
+
+ // Enter SWD Line Reset State
+ DAP_SWJ_Sequence(51, 0x0007FFFFFFFFFFFF); // &amp;gt; 50 cycles SWDIO/TMS High
+ DAP_SWJ_Sequence(3, 0x00); // At least 2 idle cycles (SWDIO/TMS Low)
+ &lt;/block&gt;
+
+ &lt;/control&gt;
+
+ &lt;control if="!isSWJ"&gt;
+
+ &lt;block&gt;
+ // Enter SWD Line Reset State
+ DAP_SWJ_Sequence(51, 0x0007FFFFFFFFFFFF); // &amp;gt; 50 cycles SWDIO/TMS High
+ DAP_SWJ_Sequence(3, 0x00); // At least 2 idle cycles (SWDIO/TMS Low)
+ &lt;/block&gt;
+
+ &lt;/control&gt;
+
+ &lt;block&gt;
+ // Read DPIDR to enable SWD interface (SW-DPv1 and SW-DPv2)
+ ReadDP(0x0);
+ &lt;/block&gt;
+
+ &lt;/control&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>DebugPortStart</b> <a class="anchor" id="DebugPortStart"></a> </p>
+<pre class="fragment"> &lt;sequence name="DebugPortStart"&gt;
+
+ &lt;block&gt;
+ __var SW_DP_ABORT = 0x0;
+ __var DP_CTRL_STAT = 0x4;
+ __var DP_SELECT = 0x8;
+ __var powered_down = 0;
+
+ // Switch to DP Register Bank 0
+ WriteDP(DP_SELECT, 0x00000000);
+
+ // Read DP CTRL/STAT Register and check if CSYSPWRUPACK and CDBGPWRUPACK bits are set
+ powered_down = ((ReadDP(DP_CTRL_STAT) &amp;amp; 0xA0000000) != 0xA0000000);
+ &lt;/block&gt;
+
+ &lt;control if="powered_down"&gt;
+
+ &lt;block&gt;
+ // Request Debug/System Power-Up
+ WriteDP(DP_CTRL_STAT, 0x50000000);
+ &lt;/block&gt;
+
+ &lt;!-- Wait for Power-Up Request to be acknowledged --&gt;
+ &lt;control while="(ReadDP(DP_CTRL_STAT) &amp;amp; 0xA0000000) == 0xA0000000" timeout="1000000"/&gt;
+
+ &lt;block&gt;
+ // Request Debug Reset
+ WriteDP(DP_CTRL_STAT, 0x54000000);
+ &lt;/block&gt;
+
+ &lt;!-- Wait for Debug Reset to be acknowledged, don't issue error on timeout to deal with improperly connected Debug Reset --&gt;
+ &lt;control while="(ReadDP(DP_CTRL_STAT) &amp;amp; 0xA8000000) == 0xA8000000" timeout="300000"/&gt;
+
+ &lt;!-- JTAG Specific Part of sequence --&gt;
+ &lt;control if="__protocol == 1"&gt;
+
+ &lt;block&gt;
+ // Init AP Transfer Mode, Transaction Counter, and Lane Mask (Normal Transfer Mode, Include all Byte Lanes)
+ // Additionally clear STICKYORUN, STICKYCMP, and STICKYERR bits by writing '1'
+ WriteDP(DP_CTRL_STAT, 0x50000F32);
+ &lt;/block&gt;
+
+ &lt;/control&gt;
+
+ &lt;!-- SWD Specific Part of sequence --&gt;
+ &lt;control if="__protocol == 2"&gt;
+
+ &lt;block&gt;
+ // Init AP Transfer Mode, Transaction Counter, and Lane Mask (Normal Transfer Mode, Include all Byte Lanes)
+ WriteDP(DP_CTRL_STAT, 0x50000F00);
+
+ // Clear WDATAERR, STICKYORUN, STICKYCMP, and STICKYERR bits of CTRL/STAT Register by write to ABORT register
+ WriteDP(SW_DP_ABORT, 0x0000001E);
+ &lt;/block&gt;
+
+ &lt;/control&gt;
+
+ &lt;/control&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>DebugPortStop</b> <a class="anchor" id="DebugPortStop"></a> </p>
+<pre class="fragment"> &lt;sequence name="DebugPortStop"&gt;
+
+ &lt;block&gt;
+ __var DP_CTRL_STAT = 0x4;
+ __var DP_SELECT = 0x8;
+
+ // Switch to DP Register Bank 0
+ WriteDP(DP_SELECT, 0x00000000);
+
+ // Power Down Debug port
+ WriteDP(DP_CTRL_STAT, 0x00000000);
+ &lt;/block&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>DebugCoreStart</b> <a class="anchor" id="DebugCoreStart"></a> </p>
+<pre class="fragment"> &lt;sequence name="DebugCoreStart"&gt;
+
+ &lt;block&gt;
+ // System Control Space (SCS) offset as defined in ARMv6-M/ARMv7-M.
+
+ __var SCS_Addr = 0xE000E000;
+ __var DHCSR_Addr = SCS_Addr + 0xDF0;
+
+ // Enable Core Debug via DHCSR
+ Write32(DHCSR_Addr, 0xA05F0001);
+ &lt;/block&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>DebugCoreStop</b> <a class="anchor" id="DebugCoreStop"></a> </p>
+<pre class="fragment"> &lt;sequence name="DebugCoreStop"&gt;
+
+ &lt;block&gt;
+ // System Control Space (SCS) offset as defined in ARMv6-M/ARMv7-M.
+
+ __var SCS_Addr = 0xE000E000;
+ __var DHCSR_Addr = SCS_Addr + 0xDF0;
+ __var DEMCR_Addr = SCS_Addr + 0xDFC;
+
+ // Disable Core Debug via DHCSR
+ Write32(DHCSR_Addr, 0xA05F0000);
+
+ // Disable DWT and ITM blocks, DebugMonitor handler,
+ // halting debug traps, and Reset Vector Catch.
+ Write32(DEMCR_Addr, 0x00000000);
+ &lt;/block&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>ResetSystem</b> <a class="anchor" id="ResetSystem"></a> </p>
+<pre class="fragment"> &lt;sequence name="ResetSystem"&gt;
+
+ &lt;block&gt;
+ // System Control Space (SCS) offset as defined in ARMv6-M/ARMv7-M.
+
+ __var SCS_Addr = 0xE000E000;
+ __var AIRCR_Addr = SCS_Addr + 0xD0C;
+ __var DHCSR_Addr = SCS_Addr + 0xDF0;
+
+ // Execute SYSRESETREQ via AIRCR
+ Write32(AIRCR_Addr, 0xA05F0004);
+ &lt;/block&gt;
+
+ &lt;!-- Reset Recovery: Wait for DHCSR.S_RESET_ST bit to clear on read --&gt;
+ &lt;control while="(Read32(DHCSR_Addr) &amp;amp; 0x02000000) == 0" timeout="500000"/&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>ResetProcessor</b> <a class="anchor" id="ResetProcessor"></a> </p>
+<dl class="section note"><dt>Note</dt><dd>This Default Debug Access Sequence is empty for ARMv6-M based processors.</dd></dl>
+<pre class="fragment"> &lt;sequence name="ResetProcessor"&gt;
+
+ &lt;block&gt;
+ // System Control Space (SCS) offset as defined in ARMv7-M.
+
+ __var SCS_Addr = 0xE000E000;
+ __var AIRCR_Addr = SCS_Addr + 0xD0C;
+ __var DHCSR_Addr = SCS_Addr + 0xDF0;
+
+ // Execute VECTRESET via AIRCR
+ Write32(AIRCR_Addr, 0xA05F0001);
+ &lt;/block&gt;
+
+ &lt;!-- Reset Recovery: Wait for DHCSR.S_RESET_ST bit to clear on read --&gt;
+ &lt;control while="(Read32(DHCSR_Addr) &amp;amp; 0x02000000) == 0" timeout="500000"/&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>ResetHardware</b> <a class="anchor" id="ResetHardware"></a> </p>
+<pre class="fragment"> &lt;sequence name="ResetHardware"&gt;
+
+ &lt;block&gt;
+ __var nReset = 0x80;
+ __var canReadPins = 0;
+
+ // Deassert nRESET line
+ canReadPins = (DAP_SWJ_Pins(0x00, nReset, 0) != 0xFFFFFFFF);
+ &lt;/block&gt;
+
+ &lt;!-- Keep reset active for 50 ms --&gt;
+ &lt;control while="1" timeout="50000"/&gt;
+
+ &lt;control if="canReadPins"&gt;
+
+ &lt;!-- Assert nRESET line and wait for recovery --&gt;
+ &lt;control while="(DAP_SWJ_Pins(nReset, nReset, 0) &amp;amp; nReset) == 0" timeout="1000000"/&gt;
+
+ &lt;/control&gt;
+
+ &lt;control if="!canReadPins"&gt;
+
+ &lt;block&gt;
+ // Assert nRESET line
+ DAP_SWJ_Pins(nReset, nReset, 0);
+ &lt;/block&gt;
+
+ &lt;!-- Wait 100ms for recovery if nRESET not readable --&gt;
+ &lt;control while="1" timeout="1000000"/&gt;
+
+ &lt;/control&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>ResetHardwareAssert</b> <a class="anchor" id="ResetHardwareAssert"></a> </p>
+<pre class="fragment"> &lt;sequence name="ResetHardwareAssert"&gt;
+
+ &lt;block&gt;
+ __var nReset = 0x80;
+
+ // Deassert nRESET line to activate the hardware reset
+ DAP_SWJ_Pins(0, nReset, 0);
+ &lt;/block&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>ResetHardwareDeassert</b> <a class="anchor" id="ResetHardwareDeassert"></a> </p>
+<pre class="fragment"> &lt;sequence name="ResetHardwareDeassert"&gt;
+
+ &lt;block&gt;
+ __var nReset = 0x80;
+ __var canReadPins = 0;
+
+ // Assert nRESET line and check if nRESET is readable
+ canReadPins = (DAP_SWJ_Pins(nReset, nReset, 0) != 0xFFFFFFFF);
+ &lt;/block&gt;
+
+ &lt;!-- Wait for nRESET to recover from reset if readable--&gt;
+ &lt;control if="canReadPins" while="(DAP_SWJ_Pins(nReset, nReset, 0) &amp;amp; nReset) == 0" timeout="1000000"/&gt;
+
+ &lt;!-- Wait 100ms for recovery if nRESET not readable --&gt;
+ &lt;control if="!canReadPins" while="1" timeout="1000000"/&gt;
+
+ &lt;/sequence&gt;</pre><p><b>ResetCatchSet</b> <a class="anchor" id="ResetCatchSet"></a> </p>
+<pre class="fragment"> &lt;sequence name="ResetCatchSet"&gt;
+
+ &lt;block&gt;
+ // System Control Space (SCS) offset as defined
+ // in ARMv6-M/ARMv7-M. Reimplement this sequence
+ // if the SCS is located at a different offset.
+
+ __var SCS_Addr = 0xE000E000;
+ __var DHCSR_Addr = SCS_Addr + 0xDF0;
+ __var DEMCR_Addr = SCS_Addr + 0xDFC;
+ __var value = 0;
+
+ // Enable Reset Vector Catch in DEMCR
+ value = Read32(DEMCR_Addr);
+ Write32(DEMCR_Addr, (value | 0x00000001));
+
+ // Read DHCSR to clear potentially set DHCSR.S_RESET_ST bit
+ Read32(DHCSR_Addr);
+ &lt;/block&gt;
+
+ &lt;/sequence&gt;
+</pre><p><b>ResetCatchClear</b> <a class="anchor" id="ResetCatchClear"></a> </p>
+<pre class="fragment"> &lt;sequence name="ResetCatchClear"&gt;
+
+ &lt;block&gt;
+ // System Control Space (SCS) offset as defined
+ // in ARMv6-M/ARMv7-M. Reimplement this sequence
+ // if the SCS is located at a different offset.
+
+ __var SCS_Addr = 0xE000E000;
+ __var DEMCR_Addr = SCS_Addr + 0xDFC;
+ __var value = 0;
+
+ // Disable Reset Vector Catch in DEMCR
+ value = Read32(DEMCR_Addr);
+ Write32(DEMCR_Addr, (value &amp;amp; (~0x00000001)));
+ &lt;/block&gt;
+
+ &lt;/sequence&gt;
+</pre> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc_apis_pg.html b/CMSIS/Documentation/Pack/html/pdsc_apis_pg.html
new file mode 100644
index 0000000..3c67be8
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_apis_pg.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/apis element</title>
+<title>CMSIS-Pack: /package/apis element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc_apis_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/apis element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Application Programming Interfaces (apis) are C/C++ interface specifications that allow software to be divided into largely independent modules. Such modules can then be developed, tested, and maintained independently, and reused by different projects. One example is the use of device drivers. If device drivers are developed for different devices implementing the same API, the application software itself can be written independent from the device it is build for.</p>
+<p>The <b>apis</b> allow to distribute the Application Programming Interface Specifications decoupled from actual implementation. One example is the CMSIS-RTOS API, which is specified as part of CMSIS, however, the actual RTOS implementation is provided by different vendors.</p>
+<p>Unlike a software component, an API is not selectable. An API consists of a name, a brief description as well as one or more header files, and a document containing a detailed specification of the API.</p>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_apis"></a>
+/package/apis</h1>
+<p>This element is a grouping element for all application programming interfaces included in the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. The element itself is optional. Only one such section can exist in a package.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> &lt;apis&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/apis&gt;</div>
+<div class="line">&lt;/package&gt; </div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: APIs">
+<tr>
+<th>Parents </th><th>Element Chain </th><th>&#160; </th><th>&#160; </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html">package</a> </td><td><a class="el" href="pdsc_package_pg.html">/package</a> </td><td>&#160; </td><td>&#160; </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_apis_pg.html#element_api">api</a> </td><td>Named specification of an API containing a brief description, C/C++ header files and documentation </td><td>ApiType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_api"></a>
+/package/apis/api</h1>
+<p>Application Programming Interfaces (apis) are C/C++ interface specifications that allow components to interwork by either implementing or using a set of functions, data types, and definitions. This element is mandatory and can exist multiple times.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;apis&gt;</div>
+<div class="line"> &lt;api Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Driver UART&quot;</span> exclusive=<span class="stringliteral">&quot;0&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;UART Driver API <span class="keywordflow">for</span> the Cortex-M processor based devices&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Driver/Doc/UART/html/index.html&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Driver/Include/Driver_UART.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/api&gt;</div>
+<div class="line"> &lt;api Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Driver SPI&quot;</span> exclusive=<span class="stringliteral">&quot;0&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;SPI Driver API <span class="keywordflow">for</span> the Cortex-M processor based devices&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Driver/Doc/SPI/html/index.html&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Driver/Include/Driver_SPI.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/api&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/apis&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: api">
+<tr>
+<th>Parent&#160;Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_apis_pg.html#element_apis">apis</a> </td><td colspan="3"><a class="el" href="pdsc_apis_pg.html#element_apis">/package/apis</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Cclass </td><td>Defines the component class to which this component belongs. This is a mandatory part of the component ID. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CclassType">Component Classes</a>. </td><td>CclassType </td><td>required </td></tr>
+<tr>
+<td>Cgroup </td><td>Defines the component group to which this component belongs. This is a mandatory part of the component ID. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CgroupType">Component Groups</a>. </td><td>CgroupType </td><td>required </td></tr>
+<tr>
+<td>exclusive </td><td>Makes the selection of a component implementing the API exclusive. If set to <span class="XML-Token">0</span>, then multiple components implementing the API can be selected. Default is <span class="XML-Token">1</span>. </td><td>xs:boolean </td><td>optional </td></tr>
+<tr>
+<td>Capiversion </td><td>Version of this component. Is a mandatory part of the component ID. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>optional </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>description </td><td>Brief summary about the purpose and scope of an API. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_files">files</a> </td><td>Grouping element for all file descriptions that are part of this component.. </td><td>group </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc_boards_pg.html b/CMSIS/Documentation/Pack/html/pdsc_boards_pg.html
new file mode 100644
index 0000000..9837a61
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_boards_pg.html
@@ -0,0 +1,503 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/boards element</title>
+<title>CMSIS-Pack: /package/boards element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc_boards_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/boards element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The level <b>&lt;boards&gt;</b> describes a development board that is the subject of a Board Support Pack (BSP). It contains information about the board vendor and name, a brief description, images to be displayed on web pages, and different types of documentation. The microcontroller devices that are mounted on the board or that are compatible with the ones mounted are also specified. A list of features concludes the &lt;boards&gt; section.</p>
+<p>A development board is described by the following properties:</p>
+<ul>
+<li>description: a brief description of the development board</li>
+<li><a class="el" href="pdsc_boards_pg.html#element_board_book">book</a>: documentation about the board (user manuals, schematics, etc.)</li>
+<li><a class="el" href="pdsc_boards_pg.html#element_board_mountedDevice">mountedDevice</a>: the microcontroller device mounted on the development board.</li>
+<li><a class="el" href="pdsc_boards_pg.html#element_board_compatibleDevice">compatibleDevice</a>: compatible microcontroller devices.</li>
+<li><a class="el" href="pdsc_boards_pg.html#element_board_image">image</a>: pictures of the board to be displayed on web pages.</li>
+<li><a class="el" href="pdsc_boards_pg.html#element_board_feature">feature</a>: categorized list of the development board's features and peripherals.</li>
+<li><a class="el" href="pdsc_boards_pg.html#element_board_debugInterface">debugInterface</a>: describing the debug capabilities.</li>
+</ul>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;boards&gt;</div>
+<div class="line"> &lt;board vendor=<span class="stringliteral">&quot;STMicroelectronics&quot;</span> name=<span class="stringliteral">&quot;32F429IDISCOVERY&quot;</span> revision=<span class="stringliteral">&quot;Rev.1&quot;</span> salesContact=<span class="stringliteral">&quot;http://www.st.com/stonline/contactus/contacts/index.php&quot;</span> orderForm=<span class="stringliteral">&quot;https://my.st.com/esample/app?page=basket&amp;amp;pn=STM32F429I-DISCO&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;description&gt;STMicroelectronics STM32F429I Discovery Board Support and Examples&lt;/description&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;image small=<span class="stringliteral">&quot;Images/stm32f429i-disco_small.png&quot;</span> large=<span class="stringliteral">&quot;Images/stm32f429i-disco.png&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;book category=<span class="stringliteral">&quot;overview&quot;</span> name=<span class="stringliteral">&quot;http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1199/PF259090&quot;</span> title=<span class="stringliteral">&quot;32F429IDISCOVERY Web Page&quot;</span>/&gt;</div>
+<div class="line"> &lt;book category=<span class="stringliteral">&quot;setup&quot;</span> name=<span class="stringliteral">&quot;Documents/UM1662.pdf&quot;</span> title=<span class="stringliteral">&quot;Getting Started&quot;</span>/&gt;</div>
+<div class="line"> &lt;book category=<span class="stringliteral">&quot;schematic&quot;</span> name=<span class="stringliteral">&quot;Documents/UM1670.pdf&quot;</span> title=<span class="stringliteral">&quot;Schematics&quot;</span>/&gt;</div>
+<div class="line"> &lt;book category=<span class="stringliteral">&quot;manual&quot;</span> name=<span class="stringliteral">&quot;Documents/UM1670.pdf&quot;</span> title=<span class="stringliteral">&quot;User Manual&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;mountedDevice deviceIndex=<span class="stringliteral">&quot;0&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span> Dname=<span class="stringliteral">&quot;STM32F429ZI&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;compatibleDevice deviceIndex=<span class="stringliteral">&quot;0&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span> Dfamily=<span class="stringliteral">&quot;STM32F4 Series&quot;</span> DsubFamily=<span class="stringliteral">&quot;STM32F429 Line&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;ODbg&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;XTAL&quot;</span> n=<span class="stringliteral">&quot;80000000&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;PWR&quot;</span> n=<span class="stringliteral">&quot;5&quot;</span> name=<span class="stringliteral">&quot;USB Powered&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;PWR&quot;</span> n=<span class="stringliteral">&quot;3&quot;</span> m=<span class="stringliteral">&quot;5&quot;</span> name=<span class="stringliteral">&quot;External Supply&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;RAM&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;64 MBit SDRAM&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;DIO&quot;</span> n=<span class="stringliteral">&quot;4&quot;</span> m=<span class="stringliteral">&quot;32&quot;</span> name=<span class="stringliteral">&quot;Extension header for LQFP144 with 2.54 mm Pitch&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;USB&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;High-Speed USB OTG with micro-AB Connector&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;ConnOther&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;JP3 (Idd) for current measurement&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Button&quot;</span> n=<span class="stringliteral">&quot;2&quot;</span> name=<span class="stringliteral">&quot;Push-buttons: User and Reset&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Gyro&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;L3GD20, ST MEMS motion sensor, 3-axis digital output gyroscope&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;LED&quot;</span> n=<span class="stringliteral">&quot;6&quot;</span> name=<span class="stringliteral">&quot;Com, 3.3 V Power, Two user, Two USB OTG LEDs&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;CustomFF&quot;</span> n=<span class="stringliteral">&quot;66&quot;</span> m=<span class="stringliteral">&quot;119.3&quot;</span> name=<span class="stringliteral">&quot;Discovery Board Formfactor&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;GLCD&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> m=<span class="stringliteral">&quot;240.320&quot;</span> name=<span class="stringliteral">&quot;2.4 inch QVGA TFT LCD&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;debugInterface adapter=<span class="stringliteral">&quot;ST-Link&quot;</span> connector=<span class="stringliteral">&quot;Mini-USB&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;/board&gt;</div>
+<div class="line">&lt;/boards&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_boards"></a>
+/package/boards</h1>
+<p>Grouping element for boards. No more than one such group can exist in a PACK. None is required.</p>
+<table class="cmtable" summary="Element: Boards">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html">/package</a> </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board">board</a> </td><td>Description of the board </td><td>BoardType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_board"></a>
+/package/boards/board</h1>
+<p>This element provides information to specify the <a class="el" href="_create_pack_board.html">Board Support Package (BSP)</a>. At least one board must be defined.</p>
+<table class="cmtable" summary="Element: Board">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_boards">boards</a> </td><td colspan="3"><a class="el" href="pdsc_boards_pg.html#element_boards">/package/boards</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>vendor </td><td>name of the board vendor </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>name </td><td>name of the development board </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>revision </td><td>Revision of the board that is suited to be used with the <a class="el" href="_create_pack_board.html">BSP</a>. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>salesContact </td><td>Either an email address or web page to contact the sales department. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>orderForm </td><td>Link to a web page for ordering the development board. </td><td>xs:anyURI </td><td>optional </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>description </td><td>Brief summary of the board </td><td>xs:string </td><td>1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board_feature">feature</a> </td><td>Describes the features of the development board. </td><td>BoardsFeatureType </td><td>1..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board_mountedDevice">mountedDevice</a> </td><td>Specifies the microcontroller device mounted on the development board. </td><td>BoardsDeviceType </td><td>1..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board_compatibleDevice">compatibleDevice</a> </td><td>Specifies compatible microcontroller devices. </td><td>CompatibleDeviceType </td><td>1..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board_image">image</a> </td><td>Carries pictures of the boards to be displayed on web pages. Directory and file names are case-sensitive. </td><td>ComplexType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board_debugInterface">debugInterface</a> </td><td>Describes the debug interface of the development board. </td><td>DebugInterfaceType </td><td>1..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board_book">book</a> </td><td>Describes the documentation files (user manuals, schematics, etc.). Directory and file names are case-sensitive. </td><td>BoardsBookType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_board_feature"></a>
+/package/boards/board/feature</h1>
+<p>This element contains information about the features and capabilities of a board. A list of pre-defined features exists.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;feature type=<span class="stringliteral">&quot;PWR&quot;</span> n=<span class="stringliteral">&quot;3&quot;</span> m=<span class="stringliteral">&quot;5&quot;</span> name=<span class="stringliteral">&quot;Element: Board feature&quot;</span>/&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="BoardFeature">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board">board</a> </td><td colspan="3"><a class="el" href="pdsc_boards_pg.html#element_board">/package/boards/board</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>type </td><td>Defines board features. Select predefined values from the table <a class="el" href="pdsc_boards_pg.html#BoardFeatureTypeEnum">Board Features</a>. </td><td>BoardFeatureTypeEnum </td><td>required </td></tr>
+<tr>
+<td>n </td><td>Depends on attribute <em><b>type</b>.</em> Check table <a class="el" href="pdsc_boards_pg.html#BoardFeatureTypeEnum">Board Features</a> for details. </td><td>xs:decimal </td><td>optional </td></tr>
+<tr>
+<td>m </td><td>Depends on attribute <em><b>type</b>.</em> Check table <a class="el" href="pdsc_boards_pg.html#BoardFeatureTypeEnum">Board Features</a> for details. </td><td>xs:decimal </td><td>optional </td></tr>
+<tr>
+<td>name </td><td>Descriptive name of the feature. If omitted, a <b>Default Name</b> is used (refer to table <a class="el" href="pdsc_boards_pg.html#BoardFeatureTypeEnum">Board Feature Types</a>). <b>Do not repeat</b> the <span class="XML-Token">n</span> or <span class="XML-Token">m</span> values in the name. This will lead to duplicate entries on web sites (they show <span class="XML-Token">n</span> x <span class="XML-Token">name</span>). </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="BoardFeatureTypeEnum"></a><b>Table: Board Features</b></p>
+<p>The table below lists predefined board features.</p>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>The attribute <em>name</em> of the element <a class="el" href="pdsc_boards_pg.html#element_board_feature">/package/boards/board/feature</a> is a descriptive text for a feature. If <em>name</em> is omitted, the <b>Default Name</b> (listed below) is used.</li>
+<li><b>Do not repeat</b> the <em>n</em> or <em>m</em> values in the <em>name</em>. Display on websites follows the rule to show <em>n</em> x <em>name</em>.</li>
+</ul>
+</dd></dl>
+<table class="doxtable">
+<tr>
+<th>type=</th><th>n=</th><th>m=</th><th>Default Name</th><th>Example</th><th>Example shown as</th></tr>
+<tr>
+<td>ODbg</td><td>Number of Debug Adapters</td><td>N/A</td><td>Integrated Debug Adapter</td><td>&lt;feature type="ODbg" n="1" name="Integrated ST-Link on USB Connector J13"/&gt;</td><td>1 x Integrated ST-Link on USB Connector J13 </td></tr>
+<tr>
+<td>XTAL</td><td>Oscillator Frequency</td><td>N/A</td><td>Crystal Oscillator</td><td>&lt;feature type="XTAL" n="8000000"/&gt;</td><td>8 MHz Crystal Oscillator </td></tr>
+<tr>
+<td>PWR</td><td>Minimum Input Voltage</td><td>Maximum Input Voltage</td><td>Power Supply</td><td>&lt;feature type="PWR" n="8" m="12"/&gt;</td><td>8 V - 12 V Power Supply </td></tr>
+<tr>
+<td>PWRSock</td><td>Number of Power Sockets</td><td>N/A</td><td>Power Socket</td><td>&lt;feature type="PWRSock" n="1" name="Coaxial Power Receptacle"/&gt;</td><td>1 x Coaxial Power Receptacle </td></tr>
+<tr>
+<td>Batt</td><td>Number of Batteries</td><td>N/A</td><td>Battery</td><td>&lt;feature type="Batt" n="1" name="CR2032 Battery for RTC"/&gt;</td><td>1 x CR2032 Battery for RTC </td></tr>
+<tr>
+<td>Curr</td><td>Typical Current</td><td>Maximum Current</td><td>Current</td><td>&lt;feature type="Curr" n="0.320" m="0.375"/&gt;</td><td>320 mA (typ), 375 mA (max) Current </td></tr>
+<tr>
+<td>CoreOther</td><td>Number of Features</td><td>N/A</td><td>Other Core Feature</td><td>&lt;feature type="CoreOther" n=1 name="My Other Core Feature"/&gt;</td><td>1 x My Other Core Feature </td></tr>
+<tr>
+<td>RAM</td><td>Number of RAMs</td><td>N/A</td><td>RAM</td><td>&lt;feature type="RAM" n="1" name="512 kB Static RAM"/&gt;</td><td>1 x 512 kB Static RAM </td></tr>
+<tr>
+<td>ROM</td><td>Number of ROMs</td><td>N/A</td><td>Flash</td><td>&lt;feature type="ROM" n="1" name="4 MB NAND-Flash"/&gt;</td><td>1 x 4 MB NAND-Flash </td></tr>
+<tr>
+<td>Memory</td><td>Number of Additional Memory</td><td>N/A</td><td>Memory</td><td>&lt;feature type="Memory" n="128" name="EEPROM"/&gt;</td><td>128 byte EEPROM </td></tr>
+<tr>
+<td>MemCard</td><td>Number of Card Holders</td><td>N/A</td><td>SD/microSD/MMC Card Holder</td><td>&lt;feature type="MemCard" n="2" name="SD Card Holder"/&gt;</td><td>2 x SD Card Holder </td></tr>
+<tr>
+<td>MemoryOther</td><td>Number of Other Memory</td><td>N/A</td><td>Other Memory Type</td><td>&lt;feature type="MemoryOther" n="1" name="1 kB MRAM"/&gt;</td><td>1 x 1 kB MRAM </td></tr>
+<tr>
+<td>DIO</td><td>Number of Digital I/Os</td><td>N/A</td><td>Digital I/Os</td><td>&lt;feature type="DIO" n="26" name="Digital IOs on 2 x 13 pin header (1.27 mm pitch)"/&gt;</td><td>26 x Digital IOs on 2 x 13 pin header (1.27 mm pitch) </td></tr>
+<tr>
+<td>AIO</td><td>Number of Analog I/Os</td><td>N/A</td><td>Analog I/Os</td><td>&lt;feature type="AIO" n="4" name="Analog Inputs on 4 pin header (1.27 mm pitch)"/&gt;</td><td>4 x Analog Inputs on 4 pin header (1.27 mm pitch) </td></tr>
+<tr>
+<td>Proto</td><td>n Rows</td><td>m Columns</td><td>Prototyping Area</td><td>&lt;feature type="Proto" n="4" m="7" name="Prototyping Area with 1.00 mm pitch"/&gt;</td><td>4 x 7 Prototyping Area with 1.00 mm pitch </td></tr>
+<tr>
+<td>USB</td><td>Number of USB Connectors</td><td>N/A</td><td>USB</td><td>&lt;feature type="USB" n="2" name="Full-Speed USB Device, Micro-B receptacle"/&gt;</td><td>2 x Full-Speed USB Device, Micro-B receptacle </td></tr>
+<tr>
+<td>ETH</td><td>Number of Ethernet Connectors</td><td>Data Rate in Bit/s</td><td>Ethernet</td><td>&lt;feature type="ETH" n="1" m="10000000" name="RJ45 Receptacle"/&gt;</td><td>1 x 10 Mbit/s RJ45 Receptacle </td></tr>
+<tr>
+<td>SPI</td><td>Number of SPI Connectors</td><td>N/A</td><td>SPI</td><td>&lt;feature type="SPI" n="1" name="4-Pin Header, 1.27 mm Pitch"/&gt;</td><td>1 x 4-Pin Header, 1.27 mm Pitch </td></tr>
+<tr>
+<td>I2C</td><td>Number of I2C Connectors</td><td>N/A</td><td>I2C</td><td>&lt;feature type="I2C" n="1" name="2-Pin Header, 1.27 mm Pitch"/&gt;</td><td>1 x 2-Pin Header, 1.27 mm Pitch </td></tr>
+<tr>
+<td>RS232</td><td>Number of RS232 Connectors</td><td>N/A</td><td>RS232</td><td>&lt;feature type="RS232" n="1" name="DB9 Male Connector"/&gt;</td><td>1 x DB9 Male Connector </td></tr>
+<tr>
+<td>RS422</td><td>Number of RS422 Connectors</td><td>N/A</td><td>RS422</td><td>&lt;feature type="RS422" n="1" name="4-Pin Header, 1.27 mm Pitch"/&gt;</td><td>1 x 4-Pin Header, 1.27 mm Pitch </td></tr>
+<tr>
+<td>RS485</td><td>Number of RS485 Connectors</td><td>N/A</td><td>RS485</td><td>&lt;feature type="RS485" n="1" name="DB9 Male Connector"/&gt;</td><td>1 x DB9 Male Connector </td></tr>
+<tr>
+<td>CAN</td><td>Number of CAN Connectors</td><td>N/A</td><td>CAN</td><td>&lt;feature type="CAN" n="1" name="DB9 Male Connector"/&gt;</td><td>1 x DB9 Male Connector </td></tr>
+<tr>
+<td>IrDA</td><td>Number of IrDA Diodes</td><td>N/A</td><td>Diode</td><td>&lt;feature type="IrDA" n="1" name="Diode Transceiver"/&gt;</td><td>1 x Diode Transceiver </td></tr>
+<tr>
+<td>LineIn</td><td>Number of Line In Jacks</td><td>N/A</td><td>Line In</td><td>&lt;feature type="LineIn" n="1" name="TRS Audio Jack"/&gt;</td><td>1 x TRS Audio Jack </td></tr>
+<tr>
+<td>LineOut</td><td>Number of Line Out Jacks</td><td>N/A</td><td>Line Out</td><td>&lt;feature type="LineOut" n="1" name="TRS Audio Jack"/&gt;</td><td>1 x TRS Audio Jack </td></tr>
+<tr>
+<td>MIC</td><td>Number of Microphone Jacks</td><td>N/A</td><td>Microphone</td><td>&lt;feature type="MIC" n="1" name="TS Audio Jack (Mono)"/&gt;</td><td>1 x TS Audio Jack (Mono) </td></tr>
+<tr>
+<td>Edge</td><td>n Rows</td><td>m Columns</td><td>Edge</td><td>&lt;feature type="Edge" n="2" m="24"/&gt;</td><td>2 x 24 Pin Edge </td></tr>
+<tr>
+<td>ConnOther</td><td>Number of Other Connectors</td><td>N/A</td><td>Other Connector Type</td><td>&lt;feature type="ConnOther" n="1" name="My Other Connector"/&gt;</td><td>1 x My Other Connector </td></tr>
+<tr>
+<td>Button</td><td>Number of Push-Buttons</td><td>N/A</td><td>Push-buttons</td><td>&lt;feature type="Button" n="3" name="Push-buttons: Reset, Wake Up, User"/&gt;</td><td>3 Push-buttons: Reset, Wake Up, User </td></tr>
+<tr>
+<td>Poti</td><td>Number of Potentiometer</td><td>N/A</td><td>Potentiometer</td><td>&lt;feature type="Poti" n="1"/&gt;</td><td>1 x Potentiometer </td></tr>
+<tr>
+<td>Joystick</td><td>Number of Joysticks</td><td>N/A</td><td>Joystick</td><td>&lt;feature type="Joystick" n="1" name="5-position Joystick"/&gt;</td><td>1 x 5-position Joystick </td></tr>
+<tr>
+<td>Touch</td><td>Number of Touch Keys</td><td>N/A</td><td>Touch Keys/Area</td><td>&lt;feature type="Touch" n="1"/&gt;</td><td>1 x Touch Keys/Area </td></tr>
+<tr>
+<td>ContOther</td><td>Number of Other Controls</td><td>N/A</td><td>Other Control</td><td>&lt;feature type="ContOther" n=1 name="My Other Control Feature"/&gt;</td><td>1 x My Other Control Feature </td></tr>
+<tr>
+<td>Accelerometer</td><td>Number of Accelerometer</td><td>N/A</td><td>Accelerometer</td><td>&lt;feature type="Accelerometer" n="1" name="3-axis digital Accelerometer"/&gt;</td><td>1 x 3-axis digital Accelerometer </td></tr>
+<tr>
+<td>Gyro</td><td>Number of Gyroscopes</td><td>N/A</td><td>Gyroscope</td><td>&lt;feature type="Gyro" n="1" name="3-axis digital Gyroscope"/&gt;</td><td>1 x 3-axis digital Gyroscope </td></tr>
+<tr>
+<td>Compass</td><td>Number of Compass</td><td>N/A</td><td>Digital Compass</td><td>&lt;feature type="Compass" n="1" name="High-Precision Digital Compass"/&gt;</td><td>1 x High-Precision Digital Compass </td></tr>
+<tr>
+<td>TempSens</td><td>Number of Temperature Sensors</td><td>N/A</td><td>Temperature Sensor</td><td>&lt;feature type="TempSens" n="1"/&gt;</td><td>1 x Temperature Sensor </td></tr>
+<tr>
+<td>PressSens</td><td>Number of Pressure Sensors</td><td>N/A</td><td>Pressure Sensor</td><td>&lt;feature type="PressSens" n="1"/&gt;</td><td>1 x Pressure Sensor </td></tr>
+<tr>
+<td>LightSens</td><td>Number of Light Sensors</td><td>N/A</td><td>Ambient Light Sensor</td><td>&lt;feature type="LightSens" n="1"/&gt;</td><td>1 x Ambient Light Sensor </td></tr>
+<tr>
+<td>SensOther</td><td>Number of Other Sensors</td><td>N/A</td><td>Other Sensor</td><td>&lt;feature type="SensOther" n=1 name="My Other Sensor Feature"/&gt;</td><td>1 x My Other Sensor Feature </td></tr>
+<tr>
+<td>CustomFF</td><td>x [mm]</td><td>y [mm]</td><td>Custom Formfactor</td><td>&lt;feature type="CustomFF" n="54" m="26" name="40-Pin DIP with 0.1-inch Pitch"/&gt;</td><td>54 mm x 26 mm, 40-Pin DIP with 0.1-inch Pitch </td></tr>
+<tr>
+<td>ArduinoFF</td><td>1</td><td>N/A</td><td>Arduino Formfactor</td><td>&lt;feature type="ArduinoFF" n="1"/&gt;</td><td>Arduino Formfactor </td></tr>
+<tr>
+<td>FreedomFF</td><td>1</td><td>N/A</td><td>Freedom Formfactor</td><td>&lt;feature type="FreedomFF" n="1"/&gt;</td><td>Freedom Formfactor </td></tr>
+<tr>
+<td>TowerFF</td><td>1</td><td>N/A</td><td>Tower Formfactor</td><td>&lt;feature type="TowerFF" n="1"/&gt;</td><td>Tower Formfactor </td></tr>
+<tr>
+<td>LED</td><td>Number of LEDs</td><td>N/A</td><td>LEDs</td><td>&lt;feature type="LED" n="3" name="Multicolor LEDs"/&gt;</td><td>3 x Multicolor LEDs </td></tr>
+<tr>
+<td>Camera</td><td>Number of Camera Interfaces</td><td>N/A</td><td>Camera</td><td>&lt;feature type="Camera" n="1" name="Digital VGA Camera"/&gt;</td><td>1 x Digital VGA Camera </td></tr>
+<tr>
+<td>LCD</td><td>Number of Segment LCD Controller</td><td>Com.Seg as a decimal number (see example)</td><td>LCD</td><td>&lt;feature type="LCD" n="1" m="16.40" name="Segment LCD Controller"/&gt;</td><td>1 x 16 x 40 Segment LCD Controller </td></tr>
+<tr>
+<td>GLCD</td><td>Number of Graphic LCD Controller</td><td>Maximum Resolution as a decimal number (see example)</td><td>GLCD</td><td>&lt;feature type="GLCD" n="1" m="320.240" name="2.4 inch Color TFT LCD with resistive touchscreen"/&gt;</td><td>320 x 240 Pixel 2.4 inch Color TFT LCD with resistive touchscreen </td></tr>
+<tr>
+<td>Speaker</td><td>Number of Speakers</td><td>N/A</td><td>Speaker</td><td>&lt;feature type="Speaker" n="1"/&gt;</td><td>1 x Speaker </td></tr>
+<tr>
+<td>Other</td><td>Number of Other Features</td><td>N/A</td><td>Other Feature</td><td>&lt;feature type="Other" n=1 name="My Other Feature"/&gt;</td><td>1 x My Other Feature </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_board_mountedDevice"></a>
+/package/boards/board/mountedDevice</h1>
+<p>The element specifies the devices mounted on the board. At least one device must be specified.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;mountedDevice deviceIndex=<span class="stringliteral">&quot;0&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span> Dname=<span class="stringliteral">&quot;STM32F429ZI&quot;</span>/&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="Element: Boards mountedDevice">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board">board</a> </td><td colspan="3"><a class="el" href="pdsc_boards_pg.html#element_board">/package/boards/board</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>deviceIndex </td><td>Index number of the device (in case more than one device is present on the board). </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Dvendor </td><td>Is the name of vendor of the device specified by <span class="XML-Token">Dname</span>. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">Device Vendor</a>. </td><td>DeviceVendorEnum </td><td>required </td></tr>
+<tr>
+<td>Dfamily </td><td>Is the name of the target device family used on the board. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>DsubFamily </td><td>Is the name of the target device sub family used on the board. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Dname </td><td>Is the name of the target device used on the board. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_board_compatibleDevice"></a>
+/package/boards/board/compatibleDevice</h1>
+<p>This element contains information about devices that are compatible to the device used on the board. Compatible means that the user is able to generate code for compatible devices and test it on the development board. At least one compatible device must be specified.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;compatibleDevice deviceIndex=<span class="stringliteral">&quot;0&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span> Dfamily=<span class="stringliteral">&quot;STM32F4 Series&quot;</span> DsubFamily=<span class="stringliteral">&quot;STM32F429 Line&quot;</span>/&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="Element: Board compatibleDevice">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board">board</a> </td><td colspan="3"><a class="el" href="pdsc_boards_pg.html#element_board">/package/boards/board</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>deviceIndex </td><td>Index number of the device (in case more than one device is present on the board). </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Dvendor </td><td>Vendor name of the target device specified by <b>Dname</b>. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">Device Vendor</a>. This element is required if at least one of the following attributs is defined: <b>Dname</b>, <b>DsubFamily</b>, <b>Dfamily</b>. </td><td>DeviceVendorEnum </td><td>optional </td></tr>
+<tr>
+<td>Dfamily </td><td>Name of the target device family used on the board. Requires <b>Dvendor</b> to be specified. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>DsubFamily </td><td>Name of the target device sub-family used on the board. Requires <b>Dvendor</b> to be specified. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Dname </td><td>Name of the target device used on the board. Requires <b>Dvendor</b> to be specified. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_board_image"></a>
+/package/boards/board/image</h1>
+<p>This element specifies the picture of a development board. Maximum one image element can be specified. None must be specified. Two different picture types (<span class="XML-Token">small</span> and <span class="XML-Token">large</span>) can be specified for the same image element at the same time.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;image small=<span class="stringliteral">&quot;Images\board_image_small.png&quot;</span> large=<span class="stringliteral">&quot;Images\board_image.png&quot;</span>/&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="Element: Board Image">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board">board</a> </td><td colspan="3"><a class="el" href="pdsc_boards_pg.html#element_board">/package/boards/board</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>small </td><td>Specifies the path to a small image. The path is relative to the PACK base directory. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>large </td><td>Specifies the path to a large image. The path is relative to the PACK base directory. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_board_debugInterface"></a>
+/package/boards/board/debugInterface</h1>
+<p>This element describes the debug interface of a board. At least debug interface must be specified.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;debugInterface adapter=<span class="stringliteral">&quot;JTAG/SW&quot;</span> connector=<span class="stringliteral">&quot;20-pin ARM Standard JTAG Connector (0.1 inch connector)&quot;</span>/&gt;</div>
+<div class="line">&lt;debugInterface adapter=<span class="stringliteral">&quot;JTAG/SW&quot;</span> connector=<span class="stringliteral">&quot;10-pin Cortex Debug Connector (0.05 inch connector)&quot;</span>/&gt;</div>
+<div class="line">&lt;debugInterface adapter=<span class="stringliteral">&quot;JTAG/SW&quot;</span> connector=<span class="stringliteral">&quot;20-pin Cortex Debug + ETM Connector (0.05 inch connector)&quot;</span>/&gt;</div>
+<div class="line">&lt;debugInterface adapter=<span class="stringliteral">&quot;ST-Link&quot;</span> connector=<span class="stringliteral">&quot;Mini-USB&quot;</span>/&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="Element: BoardDebugInterface">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board">board</a> </td><td colspan="3"><a class="el" href="pdsc_boards_pg.html#element_board">/package/boards/board</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>adapter </td><td>String describing the debug adapter. Common adapters are: <span class="XML-Token">JTAG/SW</span> (for all adapters supporting JTAG and Serial-Wire Debug), <span class="XML-Token">CMSIS-DAP</span>, <span class="XML-Token">OpenSDA</span>, <span class="XML-Token">J-Link</span>, <span class="XML-Token">ST-Link</span>, <span class="XML-Token">Nu-Link</span>. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>connector </td><td>String describing the debug connector. Usually one of these: <span class="XML-Token">10-pin Cortex Debug Connector</span>, <span class="XML-Token">20-pin ARM Standard JTAG Connector</span>, <span class="XML-Token">20-pin Cortex Debug + ETM Connector</span>, <span class="XML-Token">Mini-USB</span>, <span class="XML-Token">Micro-USB</span>. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_board_book"></a>
+/package/boards/board/book</h1>
+<p>The element provides information about documentation parts related to a development board. At least one book must be defined.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;book category=<span class="stringliteral">&quot;setup&quot;</span> name=<span class="stringliteral">&quot;Documents/UM1662.pdf&quot;</span> title=<span class="stringliteral">&quot;Getting Started&quot;</span>/&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="Element: Books">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_board">board</a> </td><td colspan="3"><a class="el" href="pdsc_boards_pg.html#element_board">/package/boards/board</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>category </td><td>Describes the type of documentation. Use predefined values as defined in the table <a class="el" href="pdsc_boards_pg.html#BoardBookCategoryEnum">Board Book Categories</a>. </td><td>BoardBookCategoryEnum </td><td>optional </td></tr>
+<tr>
+<td>name </td><td>Is the name of the document (including the path within the Pack). </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>title </td><td>Is the title of the document to be displayed in the <b>Books</b> window of uVision. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="BoardBookCategoryEnum"></a><b>Table: Board Book Categories</b></p>
+<p>The table lists values to identify a specific type of documentation for development boards. </p>
+<table class="cmtable" summary="Type: BoardBookCategoryEnum">
+<tr>
+<th>category= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">setup </td><td>Documentation about how to setup the development board. </td></tr>
+<tr>
+<td class="XML-Token">schematic </td><td>Schematics of the development board. </td></tr>
+<tr>
+<td class="XML-Token">overview </td><td>Overview/data sheet of the development board. </td></tr>
+<tr>
+<td class="XML-Token">manual </td><td>User manual of the development board </td></tr>
+<tr>
+<td class="XML-Token">layout </td><td>PCB layout file of the board (e.g. in Gerber format) </td></tr>
+<tr>
+<td class="XML-Token">other </td><td>All other documentation. </td></tr>
+</table>
+<p>&#160;</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc_components_pg.html b/CMSIS/Documentation/Pack/html/pdsc_components_pg.html
new file mode 100644
index 0000000..abd91a1
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_components_pg.html
@@ -0,0 +1,523 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/components element</title>
+<title>CMSIS-Pack: /package/components element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc_components_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/components element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The element <a class="el" href="pdsc_components_pg.html#element_components">/package/components</a> describes software components contained in the PACK. A component lists the files that belong to a component and that are relevant for a project. The component itself or each individual file may refer to a <a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a> that must resolve to true; if it is false the component or file is not applicable in the given context.</p>
+<p>Each component must have a Class (Cclass=), a Group (Cgroup=), and a Version (Cversion=) which is used to identify the component. Optionally a component may have a Sub-Group (Csub=) and Variant (Cvariant=) to add further categories. The Class, Group, Sub-Group, Variant and Version is used together with the vendor specified by the PACK, to identify a component. A component vendor must ensure that the combination Class, Group, Sub-Group and Version is unique and not used by multiple components.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;components&gt;</div>
+<div class="line"> &lt;!-- component has dependency described by <span class="stringliteral">&quot;CMSIS Core&quot;</span> condition --&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;CORE&quot;</span> Cversion=<span class="stringliteral">&quot;3.1.0&quot;</span> condition=<span class="stringliteral">&quot;CMSIS Core&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;CMSIS-CORE <span class="keywordflow">for</span> Cortex-M, SC000, and SC300 processor.&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;!-- CPU independent --&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Documentation/Core/html/index.html&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/core_cmFunc.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/core_cmInstr.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;!-- CPU dependent --&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> condition=<span class="stringliteral">&quot;CM0&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/core_cm0.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> condition=<span class="stringliteral">&quot;CM0+&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/core_cm0plus.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> condition=<span class="stringliteral">&quot;CM3&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/core_cm3.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> condition=<span class="stringliteral">&quot;CM4&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/core_cm4.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> condition=<span class="stringliteral">&quot;CM4&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/core_cm4_simd.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> condition=<span class="stringliteral">&quot;SC000&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/core_sc000.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> condition=<span class="stringliteral">&quot;SC300&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/core_sc300.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;DSP&quot;</span> Cversion=<span class="stringliteral">&quot;1.1.0&quot;</span> condition=<span class="stringliteral">&quot;CMSIS DSP&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;CMSIS-DSP Library <span class="keywordflow">for</span> Cortex-M0, Cortex-M3 and Cortex-M4 as well as SC000 and SC300 processor based devices&lt;/description&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;!-- CPU independent --&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Documentation/DSP/html/index.html&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Include/arm_math.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;!-- CPU and Compiler dependent --&gt;</div>
+<div class="line"> &lt;!-- ARMCC --&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM0_LE_ARMCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/ARM/arm_cortexM0l_math.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM0_BE_ARMCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/ARM/arm_cortexM0b_math.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM3_LE_ARMCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/ARM/arm_cortexM3l_math.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM3_BE_ARMCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/ARM/arm_cortexM3b_math.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4_LE_ARMCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/ARM/arm_cortexM4l_math.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4_BE_ARMCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/ARM/arm_cortexM4b_math.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4F_LE_ARMCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/ARM/arm_cortexM4lf_math.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4F_BE_ARMCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/ARM/arm_cortexM4bf_math.lib&quot;</span>/&gt;</div>
+<div class="line"> &lt;!-- GCC --&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM0_LE_GCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/GCC/libarm_cortexM0l_math.a&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM3_LE_GCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/GCC/libarm_cortexM3l_math.a&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4_LE_GCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/GCC/libarm_cortexM4l_math.a&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4F_LE_GCC&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/GCC/libarm_cortexM4lf_math.a&quot;</span>/&gt;</div>
+<div class="line"> &lt;!-- G++ --&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM0_LE_G++&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/G++/libarm_cortexM0l_math.a&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM3_LE_G++&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/G++/libarm_cortexM3l_math.a&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4_LE_G++&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/G++/libarm_cortexM4l_math.a&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;library&quot;</span> condition=<span class="stringliteral">&quot;CM4F_LE_G++&quot;</span> name=<span class="stringliteral">&quot;CMSIS/Lib/G++/libarm_cortexM4lf_math.a&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;component condition=<span class="stringliteral">&quot;ARM_CM0&quot;</span> Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span> Cversion=<span class="stringliteral">&quot;3.1.1&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;System Startup <span class="keywordflow">for</span> <span class="keyword">generic</span> ARM Cortex-M0 device&lt;/description&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Device/ARM/ARMCM0/Include/ARMCM0.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Device/ARM/ARMCM0/Include/system_ARMCM0.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> condition=<span class="stringliteral">&quot;Compiler_ARM&quot;</span> name=<span class="stringliteral">&quot;Device/ARM/ARMCM0/Source/ARM/startup_ARMCM0.s&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> condition=<span class="stringliteral">&quot;Compiler_GCC&quot;</span> name=<span class="stringliteral">&quot;Device/ARM/ARMCM0/Source/GCC/startup_ARMCM0.S&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> condition=<span class="stringliteral">&quot;Compiler_G++&quot;</span> name=<span class="stringliteral">&quot;Device/ARM/ARMCM0/Source/G++/startup_ARMCM0.S&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> condition=<span class="stringliteral">&quot;Compiler_IAR&quot;</span> name=<span class="stringliteral">&quot;Device/ARM/ARMCM0/Source/IAR/startup_ARMCM0.s&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Device/ARM/ARMCM0/Source/system_ARMCM0.c&quot;</span> attr=<span class="stringliteral">&quot;template&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line"> &lt;/components&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<h1><a class="anchor" id="Component_Bundle"></a>
+Component Bundle</h1>
+<p>In case multiple inter-dependent components that belong to the same <b>Cclass</b> form part of a solution, these can be grouped into a <em>bundle</em>. A <em>bundle</em> specifies identical attributes <b>Cclass</b>, <b>Cversion</b> and optionally <b>Cgroup</b> and <b>Cvendor</b> for several components. Components within a bundle inherit these attributes set by the bundle and cannot alter these attributes. Bundles ensure consistency of attributes across multiple interworking components and restrict the mix and match of components within a Cclass from different Software Packs.</p>
+<p>An example of a <b>bundle</b> is shown in the <a class="el" href="_create_pack_board.html#CP_BundleExample">Create a BSP Bundle</a> section where the bundle is used to deliver board support files for a certain development platform.</p>
+<h1><a class="anchor" id="Component_Files"></a>
+Component Files</h1>
+<p>The files of a Software Component will be used in development tool-chains to build an application. Depending on the attributes, the files are handled differently:</p>
+<ul>
+<li>Libraries, source, and header files without an attribute cannot be modified. These files are stored in the folders of the Software Component and get directly included from this location into the project.</li>
+<li>Source and header files that have the attribute <code>"config"</code> are copied to the project so that they can be edited by the user and tailored to the needs of the application. If a Software Component allows multiple instances of files, they can be copied multiple times to a project and will get a suffix <em>_%Instance%</em> (see <a class="el" href="pdsc_components_pg.html#Component_Instances">Component Instances</a>). Please note that header files that are used with the attribute <code>"config"</code> need to be stored separately from other header files (for example in an extra directory). This is to ensure that development tools are able to pick them up correctly.</li>
+<li>Source and header files that have the attribute <code>"template"</code> are part of <a class="el" href="_c_p__s_w_components.html#CP_CodeTemplates">User Code Templates</a> and can be added to a project manually by the user.</li>
+</ul>
+<p>The following image shows the dependency between the attribute and the display in a development environment:</p>
+<div class="image">
+<img src="component_files.png" alt="component_files.png"/>
+<div class="caption">
+Display of files of a Software Component in development tools</div></div>
+ <h1><a class="anchor" id="Component_Instances"></a>
+Component Instances</h1>
+<p>Modern microcontrollers often have multiple instances of the same peripheral interface (for example UART, SPI, USB, etc.). To be able to have separate configuration files for each of these instances, Software Components can have multiple instances as well. The attribute <b>maxInstances</b> declares the maximum number of instances that can be used in a project for a certain Software Component.</p>
+<p>If the user selects for example two instances of the same component, all files with the attribute <code>"config"</code> will be copied twice to the project. The name of the component (for example <code>config_mylib.h</code>) will be expanded with an <code>_%Instance%</code> number:</p>
+<ol type="1">
+<li>Instance: config_mylib<em>_0</em>.h</li>
+<li>Instance: config_mylib<em>_1</em>.h</li>
+</ol>
+<p>The availability of instances in a project can be made public in the <code>RTE_Components.h</code> file. This can be used to check for the availability of a certain instance in the user application code:</p>
+<div class="fragment"><div class="line">&lt;RTE_Components_h&gt;</div>
+<div class="line"> &lt;!-- the following content goes into file <span class="stringliteral">&#39;RTE_Components.h&#39;</span> --&gt;</div>
+<div class="line"> #define RTE_FileSystem_Drive_NOR_%Instance% <span class="comment">/* File System NOR Flash Drive %Instance% */</span></div>
+<div class="line">&lt;/RTE_Components_h&gt;</div>
+</div><!-- fragment --><p> <br/>
+ </p>
+<div class="image">
+<img src="Component_Instances.png" alt="Component_Instances.png"/>
+<div class="caption">
+Component instances in PDSC file and in development tools</div></div>
+ <h1><a class="anchor" id="RTE_Components_h"></a>
+RTE_Components.h</h1>
+<p>The build environment should generate a C/C++ include file with the name <b>RTE_Components.h</b> that contains optional statements when a software component is selected. These statements are specified with the element <b>RTE_Components_h</b> in the grouping element <a class="el" href="pdsc_components_pg.html#element_component">component</a>.</p>
+<p><b>Example</b> </p>
+<p>The following example shows a sample content of a file <b>RTE_Components.h</b>. It contains the statements that are specified with the element <b>RTE_Components_h</b> of four software components.</p>
+<div class="fragment"><div class="line"><span class="comment">/*</span></div>
+<div class="line"><span class="comment"> Auto generated Run-Time-Environment Component Configuration File</span></div>
+<div class="line"><span class="comment"> *** Do not modify ! ***</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#ifndef RTE_COMPONENTS_H</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define RTE_COMPONENTS_H</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="preprocessor">#define RTE_Network_Interface_ETH_0 </span><span class="comment">/* Network Interface ETH 0 */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define RTE_Network_Socket_BSD </span><span class="comment">/* Network Socket BSD */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define RTE_Network_Socket_TCP </span><span class="comment">/* Network Socket TCP */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define RTE_Network_Socket_UDP </span><span class="comment">/* Network Socket UDP */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="preprocessor">#endif </span><span class="comment">/* RTE_COMPONENTS_H */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --><p>The typical usage of the <b>RTE_Components.h</b> file is in header files to control for example the inclusion of files that are related to other components for the same Software Pack.</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;RTE_Components.h&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#ifdef RTE_Network_Interface_ETH_0 // generated when software component Network Interface ETH 0 is included</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#include &quot;Net_Config_ETH_0.h&quot;</span> <span class="comment">// add the related configuration file for these component </span></div>
+<div class="line"><span class="preprocessor">#endif</span></div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_components"></a>
+/package/components</h1>
+<p>Grouping element containing a choice of at least one bundle or component. No more than one element <em>components</em> can exist in a PACK.</p>
+<table class="cmtable" summary="Element: Components">
+<tr>
+<th>Parent </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html">/package</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>generator </td><td>Specifies the generator ID of the generator that has been used to generate all components within this section. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_bundle">bundle</a> </td><td>Grouping element for a collection of inter-operable components belonging to the same Cclass </td><td>ComponentType </td><td>1..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_component">component</a> </td><td>Grouping element for components </td><td>ComponentType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_bundle"></a>
+/package/components/bundle</h1>
+<p>A bundle describes a named collection of inter-operable components of the identical <em>Cvendor</em>, <em>Cclass</em> and <em>Cversion</em>. Components enclosed in a bundle must not specify any of the following attributes <em>Cvendor</em>, <em>Cclass</em> and <em>Cversion</em>.</p>
+<table class="cmtable" summary="Element: Bundle">
+<tr>
+<th>Parent </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_components">components</a> </td><td colspan="3"><a class="el" href="pdsc_components_pg.html#element_components">/package/components</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Cbundle </td><td>Defines the name of the bundle. It becomes a mandatory part of the component ID. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>Cvendor </td><td>Defines the component vendor all components of this bundle belong to. If not explicitly set the component vendor is derived from the package vendor. The component vendor is a mandatory part of the component ID. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Cclass </td><td>Defines the component class to which all components in the bundle belong. Is a mandatory part of the component ID. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CclassType">Component Classes</a>. </td><td>CclassType </td><td>required </td></tr>
+<tr>
+<td>Cversion </td><td>Defines the version of all components contained in the bundle. The component version is a mandatory part of the component ID. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>required </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>description </td><td>Brief description of the bundle </td><td>xs:string </td><td>1..1 </td></tr>
+<tr>
+<td>doc </td><td>Documentation for the bundle: File path, file name, and file extension in the format <b>path/name.extension</b>. The file path is relative to the root directory of the PACK. </td><td>xs:string </td><td><p class="starttd">1..1 </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_component">component</a> </td><td>Grouping element for components. </td><td>ComponentType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_component"></a>
+/package/components/.../component</h1>
+<p>A component describes a collection of files (source, header, configuration, library) that can be versioned and categorized.</p>
+<table class="cmtable" summary="Element: Component">
+<tr>
+<th>Parent </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_components">components</a> </td><td colspan="3"><a class="el" href="pdsc_components_pg.html#element_components">/package/components</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_components">components</a> </td><td colspan="3"><a class="el" href="pdsc_components_pg.html#element_bundle">/package/components/bundle</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Cvendor </td><td>Defines the component vendor this component is shipped by. It is a mandatory part of the component ID and will be inherited from the package vendor if not specified. <br/>
+ <span class="XML-Token">Must not be specified for a component within a bundle.</span> </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Cclass </td><td>Defines the component class to which the component belongs. This is a mandatory part of the component ID. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CclassType">Component Classes</a>. <br/>
+ <span class="XML-Token">Must not be specified for a component within a bundle.</span> </td><td>CclassType </td><td>required </td></tr>
+<tr>
+<td>Cgroup </td><td>Defines the component group to whoch the component belongs. Is a mandatory part of the component ID. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CgroupType">Component Groups</a>. </td><td>CgroupType </td><td>required </td></tr>
+<tr>
+<td>Csub </td><td>Defines the component subgroup. Is an optional part of the component ID. The type is described in <a class="el" href="pdsc_components_pg.html#CsubType">Component Subgroups</a>. </td><td>CsubType </td><td>optional </td></tr>
+<tr>
+<td>Cvariant </td><td>Defines a variant of a component. Is an optional part of the component ID. The variant specifier is a brief string (for example: <span class="XML-Token">release</span>, <span class="XML-Token">debug</span>). </td><td>xs:string [3..32] </td><td>optional </td></tr>
+<tr>
+<td>Cversion </td><td>Defines the version of this component. Is a mandatory part of the component ID. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. <br/>
+ <span class="XML-Token">Must not be specified for a component within a bundle.</span> </td><td>VersionType </td><td>required </td></tr>
+<tr>
+<td>Capiversion </td><td>For components that are based on an API, it defines the version of the API used by this component. It ensures that the API header file with this or any higher version is acceptable for using that component. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>optional </td></tr>
+<tr>
+<td>condition </td><td>Enter the <b>id</b> of a <a class="el" href="pdsc_conditions_pg.html#element_conditions">condition</a>. The component is available and can be selected when the condition is true. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>maxInstances </td><td>Maximum allowed instances of a component in a project. Default is <span class="XML-Token">1</span> for one instance. The range is [<span class="XML-Token">1..10</span>]. </td><td>xs:integer </td><td>optional </td></tr>
+<tr>
+<td>isDefaultVariant </td><td>Identifies this component variant to be the preferred variant for tool driven selection [Version 1.4.0] </td><td>xs:boolean </td><td>optional </td></tr>
+<tr>
+<td>generator </td><td>This links the component with a generator description located in the same file. If this component is selected by the run time configuration, the tool will test whether the configured <a class="el" href="pdsc_generators_pg.html">gpdsc file</a> does already exist or not. If the file is not present, then the command specified by the referenced generator section, will be invoked. If the gpdsc file already exists it will be included into the project </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>deprecated </td><td>When set to <span class="XML-Token">true</span>, then the component is deprecated and no longer maintained. Default is <span class="XML-Token">false</span> to indicate an actively maintained component. </td><td>xs:boolean </td><td>0..1 </td></tr>
+<tr>
+<td>description </td><td>Brief description of the component. </td><td>xs:string </td><td>1..1 </td></tr>
+<tr>
+<td>RTE_Components_h </td><td>Source code that is copied into the file <a class="el" href="pdsc_components_pg.html#RTE_Components_h">RTE_Components.h</a> when the component is included into a software project. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_files">files</a> </td><td>Grouping element for all files that are part of this component. </td><td>group </td><td>1 </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="CsubType"></a><b>Component Subgroups</b></p>
+<p>Component Subgroups are specified by the element <em><b>Csub</b>,</em> and create subcategories within Component Classes (<em><b>Cclass</b>)</em> and Component Groups (<em><b>Cgroup</b>)</em>. A <em><b>Csub</b> name</em> is of type <em>xs:string</em> with a length between 3 and 32 characters. No <b><em>Csub</em> names</b> have been predefined.</p>
+<p>Subgroups exists in the elements:</p>
+<ul>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
+<li><a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a></li>
+<li><a class="el" href="pdsc_examples_pg.html#element_example_attribute_component">/package/examples/example/attributes/component</a></li>
+</ul>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;... Csub=<span class="stringliteral">&quot;MyRTOS&quot;</span> Cgroup=<span class="stringliteral">&quot;RTOS&quot;</span> Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span>...&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_files"></a>
+/package/.../files</h1>
+<p>The group <b>files</b> can appear in various PACK elements. This group is the frame for defining individual file properties.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;apis&gt;</div>
+<div class="line"> &lt;api Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Driver UART&quot;</span> exclusive=<span class="stringliteral">&quot;0&quot;</span>&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/api&gt;</div>
+<div class="line"> &lt;/apis&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;components&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span> Cversion=<span class="stringliteral">&quot;3.1.1&quot;</span> &gt; </div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line"> &lt;/components&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Files">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_apis_pg.html#element_api">api</a> </td><td colspan="3"><a class="el" href="pdsc_apis_pg.html#element_api">/package/apis/api</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_component">component</a> </td><td colspan="3"><a class="el" href="pdsc_components_pg.html#element_component">/package/components/component</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_component">component</a> </td><td colspan="3"><a class="el" href="pdsc_components_pg.html#element_component">/package/components/bundle/component</a> </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_file">file</a> </td><td>Frame for the individual <a class="el" href="pdsc_components_pg.html#element_file">file</a> of a component. </td><td>group </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_file"></a>
+/package/.../files/file</h1>
+<p>The element <b>file</b> is the mechanism to attach files to the software. The file purpose is defined through the <b>category</b> attribute. The <b>name</b> attribute identifies the file.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;apis&gt;</div>
+<div class="line"> &lt;api Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Driver UART&quot;</span> exclusive=<span class="stringliteral">&quot;0&quot;</span>&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;doc&quot;</span> name=<span class="stringliteral">&quot;Driver/Doc/UART/html/index.html&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Driver/Include/Driver_UART.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/api&gt;</div>
+<div class="line"> &lt;/apis&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;components&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span> Cversion=<span class="stringliteral">&quot;3.1.1&quot;</span> &gt; </div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;Device/Include/system_stm32f2xx.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Device/Source/ARM/startup_stm32f2xx.s&quot;</span> attr=<span class="stringliteral">&quot;template&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;Device/Source/system_stm32f2xx.c&quot;</span> attr=<span class="stringliteral">&quot;template&quot;</span>/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line"> &lt;/components&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: File">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_files">files</a> </td><td colspan="3"><a class="el" href="pdsc_components_pg.html#element_files">/package/apis/api/files</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_files">files</a> </td><td colspan="3"><a class="el" href="pdsc_components_pg.html#element_files">/package/components/component/files</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_files">files</a> </td><td colspan="3"><a class="el" href="pdsc_components_pg.html#element_files">/package/components/bundle/component/files</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_files">files</a> </td><td colspan="3"><a class="el" href="pdsc_generators_pg.html#element_gen_project_files">/package/generators/generator/project_files</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>name </td><td>File path, file name, and file extension in the format <b>path/name.extension</b>. The file path is relative to the root directory of the PACK. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>category </td><td>Defines the purpose of the file. Select the predefined value as listed in the table <a class="el" href="pdsc_components_pg.html#FileCategoryEnum">File Categories</a>. </td><td>FileCategoryEnum </td><td>required </td></tr>
+<tr>
+<td>attr </td><td>Defines the special use and handling of a file. Select a predefined value as defined in the table <a class="el" href="pdsc_components_pg.html#FileAttributeEnum">File Attributes</a>. </td><td>FileAttributeEnum </td><td>optional </td></tr>
+<tr>
+<td>condition </td><td>Enter the identifier (attribute <em><b>id</b></em>) of a <a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a>. The element is used if the condition resolves to <span class="XML-Token">true</span>. If the condition resolves to <span class="XML-Token">false</span>, then the element will be ignored. For example, a library might be specific for a certain toolchain or processor instruction set. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>select </td><td>Brief description and purpose of the file. The <b><em>select</em></b> attribute is <b>required</b> when <b><em>attr</em></b> is set to <span class="XML-Token">template</span> or <span class="XML-Token">interface</span>. When multiple template files of a component have the same <b><em>select</em></b> string, they are treated as a single selectable template. This way, multiple template or interface files can be bundled. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>src </td><td>Path information. The path is specified relative to the PACK Description File. If <em><b>category</b> is</em> set to <span class="XML-Token">library</span>, then the <em><b>src</b> string</em> can contain a list of directory paths separated by semicolons. A debugger will search those paths for locating the source files of the modules archived in the library supporting the debugging of library code. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>version </td><td>File-specific version information. This is used particularly for files copied into the project workspace. Before a file gets copied, a version check avoids unnecessary copy actions. If a file does not have a version, then the component version is used. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="FileAttributeEnum"></a><b>Table: File Attributes</b></p>
+<p>The file attribute defines the special handling in the project when being used as configuration, template, or interface file. The table lists the values available as a file attribute. </p>
+<table class="cmtable" summary="Type: FileAttributeEnum">
+<tr>
+<th>attr= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">config </td><td>The file is a configuration file of the component. It is expected that only configuration options are modified. The file is managed as part of the component, as a project-specific file typically copied into the component section of the project. </td></tr>
+<tr>
+<td class="XML-Token">template </td><td><p class="starttd">The file is used as a source code template file. It is expected to be edited and extended by the software developer. The file can be copied into a user section of the project. </p>
+<p class="endtd"></p>
+</td></tr>
+</table>
+<dl class="section note"><dt>Note</dt><dd>If you are using a header file with the attribute <span class="XML-Token">config</span>, save it in a separate directory from all other header files, for example: <pre class="fragment">&lt;file category="header" name="src/config/user_config.h" attr="config" version="1.0.0" /&gt;
+</pre> As development tools usually add header files using an include path, saving the file with other header files will prohibit its use as a configuration file.</dd></dl>
+<p>&#160;</p>
+<p><a class="anchor" id="FileCategoryEnum"></a><b>Table: File Categories</b></p>
+<p>File category types define the use of component files within the application. Typically these files are added to the project and processed by the build tools.</p>
+<p>The table lists the predefined values for a file category. These values can be use also in the element <a class="el" href="pdsc_generators_pg.html#element_gen_file">/package/generators/generator/files/file</a>. </p>
+<table class="cmtable" summary="Type: FileCategoryEnum">
+<tr>
+<th>category= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">doc </td><td>Documentation </td></tr>
+<tr>
+<td class="XML-Token">header </td><td>Header file used in the component. Sets an include file path. </td></tr>
+<tr>
+<td class="XML-Token">include </td><td>Sets an include file path. </td></tr>
+<tr>
+<td class="XML-Token">library </td><td>Library file </td></tr>
+<tr>
+<td class="XML-Token">object </td><td>Object file that can be added to the application </td></tr>
+<tr>
+<td class="XML-Token">source </td><td>Startup-, system-, and other C/C++, assembler, etc. source files </td></tr>
+<tr>
+<td class="XML-Token">sourceC </td><td>C source file </td></tr>
+<tr>
+<td class="XML-Token">sourceCpp </td><td>C++ source file </td></tr>
+<tr>
+<td class="XML-Token">sourceAsm </td><td>Assembly source file </td></tr>
+<tr>
+<td class="XML-Token">linkerScript </td><td>linker script file that can be selected by tool-chains </td></tr>
+<tr>
+<td class="XML-Token">utility </td><td>a command line tool that can be configured for pre- or post-processing during the build process </td></tr>
+<tr>
+<td class="XML-Token">image </td><td>Files of image type are marked for special processing into a File System Image embedded into the application. This category requires the <em>attr</em> being set to <em>template</em>. </td></tr>
+<tr>
+<td class="XML-Token">other </td><td>Other file types not covered in the list above </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc_conditions_pg.html b/CMSIS/Documentation/Pack/html/pdsc_conditions_pg.html
new file mode 100644
index 0000000..9c2692e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_conditions_pg.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/conditions element</title>
+<title>CMSIS-Pack: /package/conditions element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc_conditions_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/conditions element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The grouping element <a class="el" href="pdsc_conditions_pg.html#element_conditions">/package/conditions</a> contains all conditions defined for the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</p>
+<p>A condition describes dependencies on device, processor, and tool attributes as well as the presence of other components. The <b>conditions</b> are used to define AND and OR rules used to make components conditional and therefore only available under certain circumstances, e.g. for specific devices or processors. The conditions are also used to express dependencies between components.</p>
+<p>Each condition has an <b>id</b> that is unique within the scope of a the description. An <b>id</b> can be referenced in the condition attribute of components, apis, examples, files and other conditions to become conditional. If a condition resolves to false during the processing of the description, the respective element will be ignored.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;conditions&gt;</div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CM4&quot;</span>&gt; &lt;!-- defines the condition with the ID <span class="stringliteral">&quot;CM4&quot;</span> --&gt;</div>
+<div class="line"> &lt;description&gt;True <span class="keywordflow">if</span> the active device has a Cortex-M4 processor&lt;/description&gt;</div>
+<div class="line"> &lt;require Dcore=<span class="stringliteral">&quot;Cortex-M4&quot;</span>/&gt; &lt;!-- device has a Cortex-M4 processor --&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;Cortex-M&quot;</span>&gt; &lt;!-- defines the condition with the ID <span class="stringliteral">&quot;Cortex-M&quot;</span> --&gt;</div>
+<div class="line"> &lt;description&gt;True <span class="keywordflow">if</span> the active device has a Cortex-M0 or Cortex-M0+ or Cortex-M3 or Cortex-M4 or SC000 or SC3000 processor &lt;/description&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M0&quot;</span>/&gt; &lt;!-- any of the following cores will make the condition resolve to <span class="keyword">true</span> --&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M0+&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M3&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M4&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;SC000&quot;</span>/&gt;</div>
+<div class="line"> &lt;accept Dcore=<span class="stringliteral">&quot;SC300&quot;</span>/&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CMSIS-CORE&quot;</span>&gt; &lt;!-- defines the condition with the ID <span class="stringliteral">&quot;CMSIS-CORE&quot;</span> --&gt;</div>
+<div class="line"> &lt;description&gt;True <span class="keywordflow">if</span> the component Device Startup is selected and the device has a Cortex-M processor&lt;/description&gt;</div>
+<div class="line"> &lt;require Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span>/&gt; &lt;!-- needs a software component Device Startup AND ... --&gt;</div>
+<div class="line"> &lt;require condition=<span class="stringliteral">&quot;Cortex-M&quot;</span>/&gt; &lt;!-- ... needs that condition with ID=Cortex-M to be <span class="keyword">true</span>. --&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CMSIS-DSP&quot;</span>&gt; &lt;!-- defines the condition with the ID <span class="stringliteral">&quot;CMSIS-DSP&quot;</span> --&gt;</div>
+<div class="line"> &lt;description&gt;True <span class="keywordflow">if</span> CMSIS-CORE == TRUE and either GCC or ARMCC and device running in little-endian byte ordering&lt;/description&gt;</div>
+<div class="line"> &lt;require condition=<span class="stringliteral">&quot;CMSIS-CORE&quot;</span>/&gt; &lt;!-- needs a software component Device Startup AND ... --&gt;</div>
+<div class="line"> &lt;accept Tcompiler=<span class="stringliteral">&quot;GCC&quot;</span>/&gt; &lt;!-- ... works either with the GCC compiler OR ... --&gt;</div>
+<div class="line"> &lt;accept Tcompiler=<span class="stringliteral">&quot;ARMCC&quot;</span>/&gt; &lt;!-- ... the ARMCC compiler AND ... --&gt;</div>
+<div class="line"> &lt;require Dendian=<span class="stringliteral">&quot;Little-endian&quot;</span>/&gt; &lt;!-- ... requires a device running in little-endian byte ordering --&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;No STM32&quot;</span>&gt; &lt;!-- defines the condition with ID <span class="stringliteral">&quot;No STM32&quot;</span> --&gt;</div>
+<div class="line"> &lt;description&gt;False <span class="keywordflow">if</span> the device is from ST and the device name starts with <span class="stringliteral">&quot;STM32&quot;</span>&lt;/description&gt;</div>
+<div class="line"> &lt;deny Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span> Dname=<span class="stringliteral">&quot;STM32*&quot;</span>/&gt; &lt;!-- device name must not start with STM32 and be from vendor ST--&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line">&lt;/conditions&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_conditions"></a>
+/package/conditions</h1>
+<p>This element groups all conditions used in the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</p>
+<table class="cmtable" summary="Element: Conditions">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html">/package</a> </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a> </td><td>Define the individual dependency condition. </td><td>xs:string </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_condition"></a>
+/package/conditions/condition</h1>
+<p>Conditions are dependency rules that can apply to elements such as a <a class="el" href="pdsc_components_pg.html#element_component">component</a> or <a class="el" href="pdsc_components_pg.html#element_file">file</a>. Other elements can refer to a rule using their attribute <b>condition</b>, which links to the attribute <b>id</b> of a condition. If a condition resolves to <span class="XML-Token">false</span>, then the component or file description is ignored.</p>
+<table class="cmtable" summary="Element: Condition">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_conditions_pg.html#element_conditions">conditions</a> </td><td colspan="3"><a class="el" href="pdsc_conditions_pg.html#element_conditions">/package/conditions</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>id </td><td>Condition identifier which is unique within a <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. The condition identifier is referenced by other elements with the attribute <b>condition</b>. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>description </td><td>Descriptive (comment) text that explains the condition in an human readable way. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr class="choice">
+<td><a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a><sup>1</sup> </td><td>At least one <a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a> must be true to signal a true for the complete condition (<b>OR-Rule</b>) </td><td>FilterType </td><td>0..* </td></tr>
+<tr class="choice">
+<td><a class="el" href="pdsc_conditions_pg.html#element_require">require</a><sup>1</sup> </td><td>All <a class="el" href="pdsc_conditions_pg.html#element_require">require</a> must be true to signal a true for the complete condition (<b>AND-Rule</b>). </td><td>FilterType </td><td>0..* </td></tr>
+<tr class="choice">
+<td><a class="el" href="pdsc_conditions_pg.html#element_deny">deny</a><sup>1</sup> </td><td>If one <a class="el" href="pdsc_conditions_pg.html#element_deny">deny</a> is true the complete condition becomes false. This element overrules <a class="el" href="pdsc_conditions_pg.html#element_require">require</a> and <a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a> (<b>AND-NOT-Rule</b>). </td><td>FilterType </td><td>0..* </td></tr>
+</table>
+<dl class="section note"><dt>Note</dt><dd><b>1</b>: At least one of these elements must be present in any condition.</dd></dl>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_accept"></a>
+/package/conditions/condition/accept</h1>
+<h1><a class="anchor" id="element_require"></a>
+/package/conditions/condition/require</h1>
+<h1><a class="anchor" id="element_deny"></a>
+/package/conditions/condition/deny</h1>
+<p>All attributes set in an <a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a>, <a class="el" href="pdsc_conditions_pg.html#element_require">require</a>, or <a class="el" href="pdsc_conditions_pg.html#element_deny">deny</a> must resolve to true for the element to become true. A <a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a> becomes <span class="XML-Token">true</span> when:</p>
+<ul>
+<li>At least one <a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a> element is true, AND</li>
+<li>all <a class="el" href="pdsc_conditions_pg.html#element_require">require</a> elements are true, AND</li>
+<li>no <a class="el" href="pdsc_conditions_pg.html#element_deny">deny</a> element is true.</li>
+</ul>
+<table class="cmtable" summary="Type: FilterType">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_conditions_pg.html#element_condition">accept</a> </td><td colspan="3"><a class="el" href="pdsc_conditions_pg.html#element_condition">/package/conditions/condition/accept</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_conditions_pg.html#element_condition">require</a> </td><td colspan="3"><a class="el" href="pdsc_conditions_pg.html#element_condition">/package/conditions/condition/require</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_conditions_pg.html#element_condition">deny</a> </td><td colspan="3"><a class="el" href="pdsc_conditions_pg.html#element_condition">/package/conditions/condition/deny</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Dfamily<b>*</b> </td><td>Specifies the device family name (for example: STM32F2 Series). </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>DsubFamily<b>*</b> </td><td>Specifies the device sub-family name (for example: STM32F205 Series). </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Dvariant<b>*</b> </td><td>Specifies the variant name of a device (for example: Step A). </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Dvendor </td><td>Specifies the silicon vendor of the device. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">Device Vendor</a>. </td><td>DeviceVendorEnum </td><td>optional </td></tr>
+<tr>
+<td>Dname<b>*</b> </td><td>Specifies the name of the device. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Pname </td><td>Specifies the processor instance in case of multi processor devices. This allows to describe distinct conditions for a specific processor. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Dcore </td><td>Specifies a processor core. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DcoreEnum">Device Cores</a>. </td><td>DcoreEnum </td><td>optional </td></tr>
+<tr>
+<td>Dfpu </td><td>Specifies whether a Floating Point Unit (FPU) must be present or not. Predefined values can be uses as listed in the table <a class="el" href="pdsc_family_pg.html#DfpuEnum">Device FPU</a>. </td><td>DfpuEnum </td><td>optional </td></tr>
+<tr>
+<td>Dmpu </td><td>Specifies whether a Memory Protection Unit (MPU) must be present or not. Predefined values can be uses as listed in the table <a class="el" href="pdsc_family_pg.html#DmpuEnum">Device MPU</a>. </td><td>DmpuEnum </td><td>optional </td></tr>
+<tr>
+<td>Dendian </td><td>Specifies the endianess of a device. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DendianEnum">Endianess</a>. </td><td>DendianEnum </td><td>optional </td></tr>
+<tr>
+<td>Cvendor<b>*</b> </td><td>Specifies a component vendor name. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Cbundle<b>*</b> </td><td>Specifies a component class bundle name. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Cclass<b>*</b> </td><td>Specifies a component class name. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CclassType">Component Classes</a>. </td><td>CclassType </td><td>optional </td></tr>
+<tr>
+<td>Cgroup<b>*</b> </td><td>Specifies a software Component Group. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CgroupType">Component Groups</a>. </td><td>CgroupType </td><td>optional </td></tr>
+<tr>
+<td>Csub<b>*</b> </td><td>Specifies a software component subgroup. The type is described in <a class="el" href="pdsc_components_pg.html#CsubType">Component Subgroups</a>. </td><td>CsubType </td><td>optional </td></tr>
+<tr>
+<td>Cvariant<b>*</b> </td><td>Specifies a software component variant. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Cversion </td><td>Specifies a software component version.<ul>
+<li><b>require Cversion:</b>condition is true if version of component is equal or higher than requested.</li>
+<li><b>deny Cversion:</b> condition is true if version of component is lower than requested.</li>
+<li>Version ranges are specified with <em>min_version</em><b>:</b><em>max_version</em>. The condition is true if the version of the component is equal or higher than <em>min_version</em> and lower or equal than <em>max_version</em>. If <em>min_version</em> and <em>max_version</em> are equal the version must match. For more information refer to <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </li>
+</ul>
+</td><td><a class="el" href="pdsc_package_pg.html#VersionType">VersionType</a> </td><td>optional </td></tr>
+<tr>
+<td>Capiversion </td><td>Specifies an API version.<ul>
+<li><b>require Capiversion:</b>condition is true if version of API is equal or higher than requested.</li>
+<li><b>deny Capiversion:</b> condition is true if version of API is lower than requested.</li>
+<li>Version ranges are specified with <em>min_version</em><b>:</b><em>max_version</em>. The condition is true if the version of the API is equal or higher than <em>min_version</em> and lower or equal than <em>max_version</em>. If <em>min_version</em> and <em>max_version</em> are equal the version must match. For more information refer to <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </li>
+</ul>
+</td><td><a class="el" href="pdsc_package_pg.html#VersionType">VersionType</a> </td><td>optional </td></tr>
+<tr>
+<td>Tcompiler </td><td>Specifies a compiler toolchain (ARMCC, GCC, IAR, Tasking, ...). Use predefined values as listed in table <a class="el" href="pdsc_conditions_pg.html#CompilerEnumType">Compiler Types</a>. </td><td>CompilerEnumType </td><td>optional </td></tr>
+<tr>
+<td>condition </td><td>Refers to another condition identified through the attribute <em><b>id</b>.</em> </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p><b>*)</b> Wild-cards can be used to match names with the following defintions:</p>
+<ul>
+<li>'*' matches any substring</li>
+<li>'?' matches any single character</li>
+<li>[abc] matches any character in the set (a,b,c)</li>
+</ul>
+<p>&#160;</p>
+<p><a class="anchor" id="CompilerEnumType"></a><b>Table: Compiler Types</b></p>
+<p>The tale list values representing a C/C++ compiler toolchains from a specific tool vendor. The tokens can be used in the elements:</p>
+<ul>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
+</ul>
+<table class="cmtable" summary="Enumeration: CompilerEnumType">
+<tr>
+<th>Tcompiler= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">GCC </td><td>GNU Tools for ARM Embedded Processors. Refer to <a href="https://launchpad.net/gcc-arm-embedded/4.7" target="_blank">ARM GCC</a>. </td></tr>
+<tr>
+<td class="XML-Token">G++ </td><td>Code Sourcery GCC compiler for C and C++ (is now Mentor Graphics CodeBench). </td></tr>
+<tr>
+<td class="XML-Token">ARMCC </td><td>ARM compiler for C and C++. Refer to <a href="http://infocenter.arm.com/help/topic/com.arm.doc.subset.swdev.coretools/index.html" target="_blank">ARM Compiler from ARM</a>. </td></tr>
+<tr>
+<td class="XML-Token">IAR </td><td>IAR compiler for C and C++. </td></tr>
+<tr>
+<td class="XML-Token">Tasking </td><td>TASKING compiler for C and C++. </td></tr>
+<tr>
+<td class="XML-Token">GHS </td><td>Green Hills Software compiler for C, C++, and EC++. </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc_devices_pg.html b/CMSIS/Documentation/Pack/html/pdsc_devices_pg.html
new file mode 100644
index 0000000..935eb92
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_devices_pg.html
@@ -0,0 +1,251 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/devices element</title>
+<title>CMSIS-Pack: /package/devices element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc_devices_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/devices element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The level <b>&lt;devices&gt;</b> contains all devices for which support is provided by the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</p>
+<p>Devices can be organized in hierarchy groups to limit redundancy. The hierarchy levels are:</p>
+<ul>
+<li><a class="el" href="pdsc_family_pg.html#element_family">family</a>: the attributes of a device family which includes also the processor.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a>: attributes of an optional sub-family; this adds or modifies features of a family.</li>
+</ul>
+<p>Device characteristics can be defined in:</p>
+<ul>
+<li><a class="el" href="pdsc_family_pg.html#element_device">device</a>: attributes of a specific silicon device</li>
+<li><a class="el" href="pdsc_family_pg.html#element_variant">variant</a>: attributes of a device variant (for example, with different package or temperature range) or an OEM device or board that integrates the device.</li>
+</ul>
+<p>A device is described by the following properties:</p>
+<ul>
+<li><a class="el" href="pdsc_family_pg.html#element_description">description</a>: textual device description</li>
+<li><a class="el" href="pdsc_family_pg.html#element_feature">feature</a>: categorized list of device peripherals and features</li>
+<li><a class="el" href="pdsc_family_pg.html#element_book">book</a>: documentation about the device and its processor(s)</li>
+<li><a class="el" href="pdsc_family_pg.html#element_processor">processor</a>: processor and processor features embedded in the device</li>
+<li><a class="el" href="pdsc_family_pg.html#element_compile">compile</a>: device specific general settings for the build tools</li>
+<li><a class="el" href="pdsc_family_pg.html#element_debugconfig">debugconfig</a>: default settings for a debug connection</li>
+<li><a class="el" href="pdsc_family_pg.html#element_debugvars">debugvars</a>: global debug access variables for use in sequences.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_sequences">sequences</a>: debug access sequences.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_debugport">debugport</a>: debug port description of the device for the debugger to configure a debug connection.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_debug">debug</a>: device specific information for the debugger to configure a debug connection including System View Description files.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_trace">trace</a>: device specific information for the debugger to configure trace.</li>
+<li><a class="el" href="pdsc_family_pg.html#element_memory">memory</a>: memory layout of the device for internal and external RAM and ROM regions</li>
+<li><a class="el" href="pdsc_family_pg.html#element_algorithm">algorithm</a>: device specific Flash programming algorithms</li>
+</ul>
+<p>A device will inherit the specifications from both the family and sub-family levels. Some properties are required to be unique. For example, the name of the svd file attribute of the <b>&lt;debug&gt;</b> property. Therefore, the svd file specified on the family level can be redefined by the attribute on the sub-family or device level. Information like the description and feature entries are concatenated, starting with the information from the family and sub-family level and finalizing with the information on the device level.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;devices&gt;</div>
+<div class="line"> &lt;!-- family level --&gt;</div>
+<div class="line"> &lt;family Dfamily=<span class="stringliteral">&quot;STM32F2&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> &lt;processor Dcore=<span class="stringliteral">&quot;Cortex-M3&quot;</span> DcoreVersion=<span class="stringliteral">&quot;r2p1&quot;</span></div>
+<div class="line"> Dfpu=<span class="stringliteral">&quot;0&quot;</span> Dmpu=<span class="stringliteral">&quot;1&quot;</span> Dendian=<span class="stringliteral">&quot;Little-endian&quot;</span> Dclock=<span class="stringliteral">&quot;120000000&quot;</span>/&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;compile header=<span class="stringliteral">&quot;Device/Include/stm32f2xx.h&quot;</span> define=<span class="stringliteral">&quot;STM32F2XX&quot;</span>/&gt;</div>
+<div class="line"> &lt;debug svd=<span class="stringliteral">&quot;SVD/STM32F20x.svd&quot;</span>/&gt;</div>
+<div class="line"> &lt;algorithm name=<span class="stringliteral">&quot;Flash/STM32F2xx_OPT.flm&quot;</span> start=<span class="stringliteral">&quot;0x1FFFC000&quot;</span> size=<span class="stringliteral">&quot;0x00000010&quot;</span> style=<span class="stringliteral">&quot;Keil&quot;</span>/&gt;</div>
+<div class="line"> &lt;book name=<span class="stringliteral">&quot;doc/STM32F2.PDF&quot;</span> title=<span class="stringliteral">&quot;STM32F2 Reference Manual&quot;</span>/&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;description&gt;</div>
+<div class="line"> ARM 32-bit Cortex-M3 CPU based Microcontroller</div>
+<div class="line"> - 120 MHz maximum frequency producing 150 DMIPS/1.25 DMIPS/MHz</div>
+<div class="line"> - Memory Protection Unit</div>
+<div class="line"> - Flexible <span class="keyword">static</span> memory controller (supports Compact Flash, SRAM, PSRAM, NOR, NAND memories)</div>
+<div class="line"> - LCD parallel interface, 8080/6800 modes</div>
+<div class="line"> - Clock, reset and supply management</div>
+<div class="line"> &lt;/description&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Timer&quot;</span> n=<span class="stringliteral">&quot;10&quot;</span> m=<span class="stringliteral">&quot;32&quot;</span> name=<span class="stringliteral">&quot;General Purpose Timer with 60 MHz&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Timer&quot;</span> n=<span class="stringliteral">&quot;2&quot;</span> m=<span class="stringliteral">&quot;16&quot;</span> name=<span class="stringliteral">&quot;Advanced Control Timer with 120 MHz&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Timer&quot;</span> n=<span class="stringliteral">&quot;2&quot;</span> m=<span class="stringliteral">&quot;16&quot;</span> name=<span class="stringliteral">&quot;Basic Timer with 60 MHz&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;TimerOther&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;Independent Watchdog Timer&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;TimerOther&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;Window Watchdog Timer&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;DAC&quot;</span> n=<span class="stringliteral">&quot;2&quot;</span> m=<span class="stringliteral">&quot;12&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;SPI&quot;</span> n=<span class="stringliteral">&quot;3&quot;</span> name=<span class="stringliteral">&quot;SPI Interface (two of them can be used as I2S)&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;I2C&quot;</span> n=<span class="stringliteral">&quot;3&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;USART&quot;</span> n=<span class="stringliteral">&quot;4&quot;</span> name=<span class="stringliteral">&quot;USART Interface up to 7.5 Mbit/s&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;UART&quot;</span> n=<span class="stringliteral">&quot;2&quot;</span> name=<span class="stringliteral">&quot;UART Interface up to 3.75 Mbit/s&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;USBOTG&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;USB OTG (Full-Speed) with PHY and ULPI&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;USBOTG&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;USB OTG (High-Speed) with PHY and ULPI&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;CAN&quot;</span> n=<span class="stringliteral">&quot;2&quot;</span> name=<span class="stringliteral">&quot;CAN Interface (2.0b Active)&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;SDIO&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> m=<span class="stringliteral">&quot;8&quot;</span> name=<span class="stringliteral">&quot;Supporting SD/MicroSD/MMC&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;VCC&quot;</span> n=<span class="stringliteral">&quot;1.8&quot;</span> m=<span class="stringliteral">&quot;3.6&quot;</span>/&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;!-- sub family level --&gt;</div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;128 Flash&quot;</span>&gt;</div>
+<div class="line"> &lt;memory name=<span class="stringliteral">&quot;SRAM&quot;</span> access=<span class="stringliteral">&quot;rwx&quot;</span> start=<span class="stringliteral">&quot;0x20000000&quot;</span> size=<span class="stringliteral">&quot;0x10000&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;memory name=<span class="stringliteral">&quot;Flash&quot;</span> access=<span class="stringliteral">&quot;rx&quot;</span> start=<span class="stringliteral">&quot;0x08000000&quot;</span> size=<span class="stringliteral">&quot;0x20000&quot;</span> startup=<span class="stringliteral">&quot;1&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;!-- device level --&gt;</div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F205RB&quot;</span>&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;IOs&quot;</span> n=<span class="stringliteral">&quot;51&quot;</span> name=<span class="stringliteral">&quot;Input and Output Ports&quot;</span>/&gt;</div>
+<div class="line"> &lt;variant Dvariant=<span class="stringliteral">&quot;STM32F205RBT6&quot;</span>&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;QFP&quot;</span> count=<span class="stringliteral">&quot;64&quot;</span> name=<span class="stringliteral">&quot;LQFP 64 10x10x1.4&quot;</span> /&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Temp&quot;</span> n=<span class="stringliteral">&quot;-40&quot;</span> m=<span class="stringliteral">&quot;85&quot;</span> name=<span class="stringliteral">&quot;Industrial Temperature Range&quot;</span>/&gt;</div>
+<div class="line"> &lt;/variant&gt;</div>
+<div class="line"> &lt;variant Dvariant=<span class="stringliteral">&quot;STM32F205RBT7&quot;</span>&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;QFP&quot;</span> count=<span class="stringliteral">&quot;64&quot;</span> name=<span class="stringliteral">&quot;LQFP 64 10x10x1.4&quot;</span> /&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Temp&quot;</span> n=<span class="stringliteral">&quot;-40&quot;</span> m=<span class="stringliteral">&quot;105&quot;</span> name=<span class="stringliteral">&quot;Extended Temperature Range&quot;</span>/&gt;</div>
+<div class="line"> &lt;/variant&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F205VB&quot;</span>&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;IOs&quot;</span> n=<span class="stringliteral">&quot;82&quot;</span> name=<span class="stringliteral">&quot;Input and Output Ports&quot;</span>/&gt;</div>
+<div class="line"> &lt;variant Dvariant=<span class="stringliteral">&quot;STM32F205VBT6&quot;</span>&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;QFP&quot;</span> count=<span class="stringliteral">&quot;100&quot;</span> name=<span class="stringliteral">&quot;LQFP 100 14x14x1.4&quot;</span> /&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Temp&quot;</span> n=<span class="stringliteral">&quot;-40&quot;</span> m=<span class="stringliteral">&quot;85&quot;</span> name=<span class="stringliteral">&quot;Industrial Temperature Range&quot;</span>/&gt;</div>
+<div class="line"> &lt;/variant&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> &lt;/subFamily&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;/family&gt;</div>
+<div class="line"> &lt;/devices&gt;</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_devices"></a>
+/package/devices</h1>
+<p>Group level containing device <a class="el" href="pdsc_family_pg.html">family</a> descriptions. A package can contain only one element <b>&lt;devices&gt;</b>. The group is not mandatory.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;devices&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/devices&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: devices">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html#element_package">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html#element_package">/package</a> </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td>Device family group. Define all properties that are in common to devices of a family. </td><td>complexType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc_devices_pg.js b/CMSIS/Documentation/Pack/html/pdsc_devices_pg.js
new file mode 100644
index 0000000..f30b58b
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_devices_pg.js
@@ -0,0 +1,34 @@
+var pdsc_devices_pg =
+[
+ [ "/package/devices", "pdsc_devices_pg.html#element_devices", null ],
+ [ "/package/devices/family element", "pdsc_family_pg.html", [
+ [ "/package/devices/family", "pdsc_family_pg.html#element_family", null ],
+ [ "/package/devices/family/subFamily", "pdsc_family_pg.html#element_subFamily", null ],
+ [ "/package/devices/family/../device", "pdsc_family_pg.html#element_device", null ],
+ [ "/package/devices/family/.../algorithm", "pdsc_family_pg.html#element_algorithm", null ],
+ [ "/package/devices/family/.../book", "pdsc_family_pg.html#element_book", null ],
+ [ "/package/devices/family/.../compile", "pdsc_family_pg.html#element_compile", null ],
+ [ "/package/devices/family/.../description", "pdsc_family_pg.html#element_description", null ],
+ [ "/package/devices/family/.../environment", "pdsc_family_pg.html#element_environment", null ],
+ [ "/package/devices/family/.../feature", "pdsc_family_pg.html#element_feature", null ],
+ [ "/package/devices/family/.../memory", "pdsc_family_pg.html#element_memory", null ],
+ [ "/package/devices/family/.../processor", "pdsc_family_pg.html#element_processor", null ],
+ [ "/package/devices/family/.../debugconfig", "pdsc_family_pg.html#element_debugconfig", null ],
+ [ "/package/devices/family/.../debugvars", "pdsc_family_pg.html#element_debugvars", null ],
+ [ "/package/devices/family/.../debugport", "pdsc_family_pg.html#element_debugport", null ],
+ [ "/package/devices/family/.../debugport/jtag", "pdsc_family_pg.html#element_dp_jtag", null ],
+ [ "/package/devices/family/.../debugport/swd", "pdsc_family_pg.html#element_dp_swd", null ],
+ [ "/package/devices/family/.../debugport/cjtag", "pdsc_family_pg.html#element_dp_cjtag", null ],
+ [ "/package/devices/family/.../sequences", "pdsc_family_pg.html#element_sequences", null ],
+ [ "/package/devices/family/.../sequences/sequence", "pdsc_family_pg.html#element_sequence", null ],
+ [ "/package/devices/family/.../sequences/sequence/control", "pdsc_family_pg.html#element_seq_control", null ],
+ [ "/package/devices/family/.../sequences/sequence/block", "pdsc_family_pg.html#element_seq_block", null ],
+ [ "/package/devices/family/.../debug", "pdsc_family_pg.html#element_debug", null ],
+ [ "/package/devices/family/.../debug/datapatch", "pdsc_family_pg.html#element_dbg_datapatch", null ],
+ [ "/package/devices/family/.../trace", "pdsc_family_pg.html#element_trace", null ],
+ [ "/package/devices/family/.../trace/serialwire", "pdsc_family_pg.html#element_trace_serialwire", null ],
+ [ "/package/devices/family/.../trace/traceport", "pdsc_family_pg.html#element_trace_traceport", null ],
+ [ "/package/devices/family/.../trace/tracebuffer", "pdsc_family_pg.html#element_trace_tracebuffer", null ],
+ [ "/package/devices/family/.../device/variant", "pdsc_family_pg.html#element_variant", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/CMSIS/Documentation/Pack/html/pdsc_examples_pg.html b/CMSIS/Documentation/Pack/html/pdsc_examples_pg.html
new file mode 100644
index 0000000..b07b20f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_examples_pg.html
@@ -0,0 +1,334 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/examples element</title>
+<title>CMSIS-Pack: /package/examples element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc_examples_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/examples element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The element <a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a> describes fully defined examples contained in the PACK. An example lists the files that belong to an example. The example itself and each individual file may refer to a <a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a> that must resolve to true; if it is false the example or file will be ignored. The board element is used to reference to one or more board descriptions using the board vendor and name an example is targeted for. Each example can specify attributes listing related components using Class (Cclass=), Group (Cgroup=), Subgroup (Csub) and a Version (Cversion=)</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;examples&gt;</div>
+<div class="line"> &lt;example name=<span class="stringliteral">&quot;Blinky&quot;</span> folder=<span class="stringliteral">&quot;Boards/MCBSTM32F200/Blinky&quot;</span> doc=<span class="stringliteral">&quot;Abstract.txt&quot;</span> version=<span class="stringliteral">&quot;1.0&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;This is a basic example demonstrating the development flow and letting the LED on the board blink&lt;/description&gt;</div>
+<div class="line"> &lt;board vendor=<span class="stringliteral">&quot;STMicroelectronics&quot;</span> name=<span class="stringliteral">&quot;32F429IDISCOVERY&quot;</span>/&gt;</div>
+<div class="line"> &lt;project&gt;</div>
+<div class="line"> &lt;environment name=<span class="stringliteral">&quot;uv&quot;</span> load=<span class="stringliteral">&quot;ARM/Blinky.uvproj&quot;</span>/&gt;</div>
+<div class="line"> &lt;environment name=<span class="stringliteral">&quot;iar&quot;</span> load=<span class="stringliteral">&quot;IAR/Blinky.ewarm&quot;</span> /&gt;</div>
+<div class="line"> &lt;/project&gt;</div>
+<div class="line"> &lt;attributes&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;CORE&quot;</span>/&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span>/&gt;</div>
+<div class="line"> &lt;keyword&gt;Blinky&lt;/keyword&gt;</div>
+<div class="line"> &lt;keyword&gt;Getting Started&lt;/keyword&gt;</div>
+<div class="line"> &lt;/attributes&gt;</div>
+<div class="line"> &lt;/example&gt;</div>
+<div class="line">&lt;/examples&gt; </div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_examples"></a>
+/package/examples</h1>
+<p>Grouping element for examples. No more than one such group can exist in a PACK.</p>
+<table class="cmtable" summary="Element: Example">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html">/package</a> </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example">example</a> </td><td>Description of fully specified project </td><td>ExampleType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_example"></a>
+/package/examples/example</h1>
+<p>An example section is used to provide the required information for accessing an example project contained in a PACK. All examples contained in the installed packs can be listed including a brief description. A selected example will get copied into a user selected destination folder. Based on the user selected environment the respective project file will be loaded. The ID of an example is the combination of the PACK vendor, the board information and the example name and version. Examples with the same ID are treated as a single example.</p>
+<table class="cmtable" summary="Element: Example">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_examples">examples</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_examples">/package/examples</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>name </td><td>Name of the example </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>folder </td><td>Relative path to the example base folder within the package. If selected, then the directory including all sub-folders and files will be copied, unless the archive attribute gets set. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>archive </td><td>Filename and extension of the archive file containing all files and sub-folders of the example. The archive is located in the path specified by the attribute <b><em>folder</em></b>. If selected, then the whole archive will be extracted. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>doc </td><td>Document that describes the example. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>version </td><td>Example version number. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>optional </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>description </td><td>Briefly documents the purpose and scope of the example. The test can be displayed in an example selector. </td><td>xs:string </td><td>1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example_board">board</a> </td><td>Complex type providing a reference to a board description using board name and vendor.. </td><td>BoardReferenceType </td><td>1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example_project">project</a> </td><td>Complex type describing the project files for different environments </td><td>ExampleProjectType </td><td>1..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example_attributes">attributes</a> </td><td>Group element for project attributes, which list required components, define example categories, and set keywords to filter and search for examples. </td><td>ExampleAttributesType </td><td>1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_example_board"></a>
+/package/examples/example/board</h1>
+<p>This element specifies the board that can be used with the example project.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;board name=<span class="stringliteral">&quot;MV1000A&quot;</span> vendor=<span class="stringliteral">&quot;MyVendor&quot;</span>/&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Example Board">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example">example</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>vendor </td><td>Vendor name of the board. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>name </td><td>Commercial name of the board. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>Dvendor </td><td>Vendor name of the device used on the board. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">Device Vendor</a>. </td><td>DeviceVendorEnum </td><td>optional </td></tr>
+<tr>
+<td>Dfamily </td><td>Name of the target device family used on the board. This attribute is optional if either DsubFamily or Dname is already specified. <br/>
+ <b><span class="XML-Token">Deprecated since version 1.1</span></b> </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>DsubFamily </td><td>Name of the target device sub-family used on the board. This attribute is optional if either Dfamily or Dname is already specified. <br/>
+ <b><span class="XML-Token">Deprecated since version 1.1</span></b> </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Dname </td><td>Name of the target device used on the board. This attribute is optional if either Dfamily or DsubFamily is already specified. <br/>
+ <b><span class="XML-Token">Deprecated since version 1.1</span></b>. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<dl class="section note"><dt>Note</dt><dd>Values for <b><span class="XML-Token">deprecated attributes</span></b> are read from the board description element <a class="el" href="pdsc_boards_pg.html#element_board_mountedDevice">/package/boards/board/mountedDevice</a>.</dd></dl>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_example_project"></a>
+/package/examples/project</h1>
+<p>A project element is a sequence of <em>environment</em> elements that describe the name of the environment and the project file to be loaded.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;project&gt;</div>
+<div class="line"> &lt;environment ... /&gt;</div>
+<div class="line"> &lt;environment ... /&gt;</div>
+<div class="line">&lt;/project&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Example Project">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example">example</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a> </td></tr>
+<tr>
+<th>Element </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example_project_env">environment</a> </td><td>Specifies the environment and project file with extension. </td><td>xs:complexType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_example_project_env"></a>
+/package/examples/project/environment</h1>
+<p>The environment element describes the name of the environment and the project file to be loaded.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;project&gt;</div>
+<div class="line"> &lt;environment name=<span class="stringliteral">&quot;uv&quot;</span> load=<span class="stringliteral">&quot;ARM/Blinky.uvproj&quot;</span>/&gt;</div>
+<div class="line"> &lt;environment name=<span class="stringliteral">&quot;iar&quot;</span> load=<span class="stringliteral">&quot;IAR/Blinky.ewarm&quot;</span> /&gt;</div>
+<div class="line">&lt;/project&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Example Project">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example_project">project</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example_project">/package/examples/project</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>name </td><td>Name of the required tool-chain (for example: <span class="XML-Token">uv</span>, <span class="XML-Token">iar</span>, etc.) </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>load </td><td>Specifies the project file with extension. A path relative to <em>folder</em> attribute of the element <a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a> can be appended. </td><td>xs:string </td><td>required </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_example_attributes"></a>
+/package/examples/example/attributes</h1>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;example&gt;</div>
+<div class="line"> &lt;attributes&gt;</div>
+<div class="line"> &lt;category&gt;Example Project&lt;/category&gt;</div>
+<div class="line"> &lt;category&gt;For a specific board&lt;/category&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;CORE&quot;</span>/&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span>/&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;keyword&gt;Blinky&lt;/keyword&gt;</div>
+<div class="line"> &lt;keyword&gt;Getting Started&lt;/keyword&gt;</div>
+<div class="line"> &lt;/attributes&gt;</div>
+<div class="line">&lt;/example&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Example Attributes">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example">example</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a> </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>category </td><td>Free form string defining an example category. A category can be used to filter examples in an example browser. </td><td>xs:string </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example_attribute_component">component</a> </td><td>Group for defining the components used in the example. </td><td>ComponentCategoryType </td><td>0..* </td></tr>
+<tr>
+<td>keyword </td><td>Free form string defining a keyword that relates to the example. A keyword can be used to search for examples. </td><td>xs:string </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_example_attribute_component"></a>
+/package/examples/example/attributes/component</h1>
+<p>The component element specifies the Cclass to which the example belongs. This can be used to list all related components within an example.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;attributes&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;CORE&quot;</span>/&gt;</div>
+<div class="line"> &lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span>/&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/attributes&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Attribute Component">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_example_attributes">attribute</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example_attributes">/package/examples/example/attributes</a> </td></tr>
+<tr>
+<th>Attribute </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Cclass </td><td>Free form string defining an example class. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CclassType">Component Classes</a>. </td><td>CclassType </td><td>required </td></tr>
+<tr>
+<td>Cgroup </td><td>Free form string defining an example group. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CgroupType">Component Groups</a>. </td><td>CgroupType </td><td>optional </td></tr>
+<tr>
+<td>Csub </td><td>Free form string defining an example subgroup. The type is described in <a class="el" href="pdsc_components_pg.html#CsubType">Component Subgroups</a>. </td><td>CsubType </td><td>optional </td></tr>
+<tr>
+<td>Cversion </td><td>Free form string defining an example version. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>optional </td></tr>
+<tr>
+<td>Cvendor </td><td>Free form string defining the vendor of the example. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc_family_pg.html b/CMSIS/Documentation/Pack/html/pdsc_family_pg.html
new file mode 100644
index 0000000..3d47d65
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_family_pg.html
@@ -0,0 +1,2421 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/devices/family element</title>
+<title>CMSIS-Pack: /package/devices/family element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc_family_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/devices/family element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1><a class="anchor" id="element_family"></a>
+/package/devices/family</h1>
+<p>Define properties that are in common to all devices of a family. These properties are inherited by subgroups or elements. This is a mechanism of granulation to reduce redundancy. Multiple &lt;family&gt; groups can be defined.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;devices&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;family Dfamily=<span class="stringliteral">&quot;STM32F2&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> &lt;processor .../&gt;</div>
+<div class="line"> &lt;debugconfig .../&gt;</div>
+<div class="line"> &lt;debugvars .../&gt;</div>
+<div class="line"> &lt;sequences .../&gt;</div>
+<div class="line"> &lt;compile .../&gt;</div>
+<div class="line"> &lt;memory .../&gt;</div>
+<div class="line"> &lt;algorithm .../&gt;</div>
+<div class="line"> &lt;book .../&gt;</div>
+<div class="line"> &lt;description&gt; Write texte here &lt;/description&gt;</div>
+<div class="line"> &lt;environment&gt; ... &lt;/environment&gt;</div>
+<div class="line"> &lt;feature .../&gt;</div>
+<div class="line"> &lt;debugport .../&gt;</div>
+<div class="line"> &lt;debug .../&gt;</div>
+<div class="line"> &lt;trace .../&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;...&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;...&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/subFamily&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/family&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/devices&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: family">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_devices_pg.html#element_devices">devices</a> </td><td colspan="3"><a class="el" href="pdsc_devices_pg.html#element_devices">/package/devices</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Dfamily </td><td>Name of the device family. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>Dvendor </td><td>Device vendor name. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">Device Vendor</a>. </td><td><a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">DeviceVendorEnum</a> </td><td>required </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_processor">processor</a> </td><td>List all processors that are in common to devices of the family. </td><td>ProcessorType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_compile">compile</a> </td><td>Specify compile or translate options that are relevant to all devices of the family. </td><td>CompileType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugconfig">debugconfig</a> </td><td>Specify default settings for the debug connection relevant to all devices of the family. </td><td>DebugConfigType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugvars">debugvars</a> </td><td>Define global debug access variables for settings relevant to all devices of the family unless replaced by debugvars on subFamily, device or variant level </td><td>DebugVarsType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_sequences">sequences</a> </td><td>Describe debug access sequences relevant to all devices of the family. </td><td>SequencesType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugport">debugport</a> </td><td>Describe a debug port relevant to all devices of the family. </td><td>DebugPortType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debug">debug</a> </td><td>Specify debug options that are relevant to all devices of the family. </td><td>DebugType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_trace">trace</a> </td><td>Specify trace options that are relevant to all devices of the family. </td><td>TraceType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_memory">memory</a> </td><td>Specify memory areas that are available for all devices of the family. </td><td>MemoryType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_algorithm">algorithm</a> </td><td>Specify Flash programming algorithms that are suitable for all devices. </td><td>AlgorithmType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_book">book</a> </td><td>Specify documents that are relevant for all devices of a family. </td><td>BookType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_description">description</a> </td><td>Describe the device family. </td><td>DescriptionType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_environment">environment</a> </td><td>Specify tool specific settings. </td><td>EnvironmentType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_feature">feature</a> </td><td>Specify features that are available in all members of the device family. </td><td>FeatureType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td>A optional sub-family that is used to group devices. </td><td>group </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td>Individual devices that belong to the device family. </td><td>DeviceType </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_subFamily"></a>
+/package/devices/family/subFamily</h1>
+<p>Define properties that are in common to all devices of a subFamily. This is another mechanism of granulation to reduce redundancy. These properties are inherited by subgroups or elements. Multiple &lt;subFamily&gt; groups can be defined.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;STM32F2&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> ... </div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;...&quot;</span>&gt;</div>
+<div class="line"> &lt;processor .../&gt;</div>
+<div class="line"> &lt;debugconfig .../&gt;</div>
+<div class="line"> &lt;debugvars .../&gt;</div>
+<div class="line"> &lt;sequences .../&gt;</div>
+<div class="line"> &lt;compile .../&gt;</div>
+<div class="line"> &lt;memory .../&gt;</div>
+<div class="line"> &lt;algorithm .../&gt;</div>
+<div class="line"> &lt;book .../&gt;</div>
+<div class="line"> &lt;description&gt; Write texte here &lt;/description&gt;</div>
+<div class="line"> &lt;feature .../&gt;</div>
+<div class="line"> &lt;debugport .../&gt;</div>
+<div class="line"> &lt;debug .../&gt;</div>
+<div class="line"> &lt;trace .../&gt;</div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;...&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> &lt;/subFamily&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;STM32F2xx&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/subFamily&gt;</div>
+<div class="line"></div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: subFamily">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>DsubFamily </td><td>Name of the device sub family. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_processor">processor</a> </td><td>Specify processors that are available in all devices of the sub-family. </td><td>ProcessorType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_compile">compile</a> </td><td>Specify compile or translate options that are relevant to all devices of the sub-family. </td><td>CompileType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugconfig">debugconfig</a> </td><td>Specify default settings for the debug connection relevant to all devices of the sub-family. </td><td>DebugConfigType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugvars">debugvars</a> </td><td>Define global debug access variables for user-defined settings relevant to all devices of the sub-family. </td><td>DebugVarsType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_sequences">sequences</a> </td><td>Describe debug access sequences relevant to all devices of the sub-family. </td><td>SequencesType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugport">debugport</a> </td><td>Describe a debug port relevant to all devices of the sub-family. </td><td>DebugPortType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debug">debug</a> </td><td>Specify debug options that are relevant to all devices of the sub-family. </td><td>DebugType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_trace">trace</a> </td><td>Specify trace options that are relevant to all devices of the sub-family. </td><td>TraceType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_memory">memory</a> </td><td>Specify memory areas that are available in all device of the sub-family. </td><td>MemoryType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_algorithm">algorithm</a> </td><td>Specify Flash programming algorithms that can be used by all device of the sub-family. </td><td>AlgorithmType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_book">book</a> </td><td>Specify documents relevant for all device of the sub-family. </td><td>BookType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_description">description</a> </td><td>Description of the device family. </td><td>DescriptionType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_feature">feature</a> </td><td>Specify features available in devices of the sub-family. </td><td>FeatureType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td>List individual devices that belong to the device sub-family. </td><td>DeviceType </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_device"></a>
+/package/devices/family/../device</h1>
+<p>Define properties that are specific to a device. Properties defined on upper levels get inherited, unless they can be overwritten. Multiple &lt;device&gt; elements can be defined.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;subFamily DsubFamily=<span class="stringliteral">&quot;STM32F405&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F405OE&quot;</span>&gt;</div>
+<div class="line"> &lt;memory name=<span class="stringliteral">&quot;Flash&quot;</span> access=<span class="stringliteral">&quot;rx&quot;</span> start=<span class="stringliteral">&quot;0x08000000&quot;</span> size=<span class="stringliteral">&quot;0x80000&quot;</span> startup=<span class="stringliteral">&quot;1&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;algorithm name=<span class="stringliteral">&quot;Flash/STM32F4xx_1024.flm&quot;</span> start=<span class="stringliteral">&quot;0x08000000&quot;</span> size=<span class="stringliteral">&quot;0x80000&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span> style=<span class="stringliteral">&quot;Keil&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;IOs&quot;</span> n=<span class="stringliteral">&quot;72&quot;</span> name=<span class="stringliteral">&quot;Input and Output Ports&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F405OG&quot;</span>&gt;</div>
+<div class="line"> &lt;memory name=<span class="stringliteral">&quot;Flash&quot;</span> access=<span class="stringliteral">&quot;rx&quot;</span> start=<span class="stringliteral">&quot;0x08000000&quot;</span> size=<span class="stringliteral">&quot;0x100000&quot;</span> startup=<span class="stringliteral">&quot;1&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;algorithm name=<span class="stringliteral">&quot;Flash/STM32F4xx_1024.flm&quot;</span> start=<span class="stringliteral">&quot;0x08000000&quot;</span> size=<span class="stringliteral">&quot;0x100000&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span> style=<span class="stringliteral">&quot;Keil&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;IOs&quot;</span> n=<span class="stringliteral">&quot;72&quot;</span> name=<span class="stringliteral">&quot;Input and Output Ports&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/subFamily&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: device">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Dname </td><td>Specifies the name of the device. Only alphabetical characters, decimal digits, '-' and '_' are allowed </td><td>RestrictedString </td><td>required </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_processor">processor</a> </td><td>Specify processors that are specific to this device. </td><td>ProcessorType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_compile">compile</a> </td><td>Specify compile or translate options specific to this device. </td><td>CompileType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugconfig">debugconfig</a> </td><td>Specify default settings for the debug connection specific to this device. </td><td>DebugConfigType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugvars">debugvars</a> </td><td>Define debug access variables for user-defined settings specific to this device. </td><td>DebugVarsType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_sequences">sequences</a> </td><td>Describe debug access sequences specific to this device. </td><td>SequencesType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugport">debugport</a> </td><td>Describe a debug port specific to this device. </td><td>DebugPortType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debug">debug</a> </td><td>Specify debug options specific to this device. </td><td>DebugType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_trace">trace</a> </td><td>Specify trace options specific to this device. </td><td>TraceType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_memory">memory</a> </td><td>Specify memory areas that specific to this device. </td><td>MemoryType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_algorithm">algorithm</a> </td><td>Specify Flash programming algorithms that can be used by this device. </td><td>AlgorithmType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_book">book</a> </td><td>Specify documents specific to this device. </td><td>BookType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_description">description</a> </td><td>Description specific to this device. </td><td>DescriptionType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_feature">feature</a> </td><td>Specify features specific to this device. </td><td>FeatureType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_variant">variant</a> </td><td>Complex element specifying a variant of a device. </td><td>xs:string </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_algorithm"></a>
+/package/devices/family/.../algorithm</h1>
+<p>Specify Flash programming algorithms with the address range and its size. An algorithm with &lt;default&gt; set to <span class="XML-Token">true</span> gets configured automatically to the download options of the project. Algorithms can be defined on various levels. Multiple &lt;algorithm&gt; elements are possible. If the memory range and style are identical, the one on the lower level takes precedence.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;!-- use <span class="keywordflow">for</span> all devices of the family --&gt;</div>
+<div class="line"> &lt;algorithm name=<span class="stringliteral">&quot;Flash\STM32F2xx_512.flm&quot;</span> start=0x08000000 size=0x10000 <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span> style=<span class="stringliteral">&quot;Keil&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;STM32F405&quot;</span>&gt;</div>
+<div class="line"> &lt;!-- use <span class="keywordflow">for</span> all devices of a subFamily --&gt;</div>
+<div class="line"> &lt;algorithm name=<span class="stringliteral">&quot;Flash/STM32F2xx_1024.flm&quot;</span> start=0x08000000 size=0x20000 <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span> style=<span class="stringliteral">&quot;Keil&quot;</span>/&gt; </div>
+<div class="line"></div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F405OE&quot;</span>&gt;</div>
+<div class="line"> &lt;!-- <span class="keywordflow">finally</span>, <span class="keyword">this</span> is the <span class="keywordflow">default</span> <span class="keywordflow">for</span> the device --&gt;</div>
+<div class="line"> &lt;algorithm name=<span class="stringliteral">&quot;Flash/STM32F2xx_2048.flm&quot;</span> start=0x08000000 size=0x40000 <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt; style=<span class="stringliteral">&quot;Keil&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Type: AlgorithmType">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Pname </td><td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors that require different algorithms</b>. Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<td>name </td><td>Flash Programming Algorithm file including the path, which is relative to the root folder of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>start </td><td>Base address for the Flash programming algorithm. </td><td>NonNegativeInteger </td><td>required </td></tr>
+<tr>
+<td>size </td><td>Size covered by the Flash programming algorithm. End address = start + size - 1 </td><td>NonNegativeInteger </td><td>required </td></tr>
+<tr>
+<td>RAMstart </td><td>Base address for the RAM where the Flash programming algorithm will be executed from. If specified, the <a class="el" href="pdsc_family_pg.html#element_memory">memory</a> element does not require a <code>default</code> attribute. </td><td>NonNegativeInteger </td><td>optional </td></tr>
+<tr>
+<td>RAMsize </td><td>Maximum size of RAM available for the execution of the Flash programming algorithm. End address = start + size - 1 is used for the Stack. If specified, the <a class="el" href="pdsc_family_pg.html#element_memory">memory</a> element does not require a <code>default</code> attribute. </td><td>NonNegativeInteger </td><td>optional </td></tr>
+<tr>
+<td>default </td><td>If <span class="XML-Token">true</span>, then this is the default Flash programming algorithm that gets configured in a project. If not specified or set to <span class="XML-Token">false</span>, then the Flash programming algorithm can be configured on a lower level. However, the Flash programming algorithm of a project can be changed manually at any time during development. </td><td>xs:boolean </td><td>optional </td></tr>
+<tr>
+<td>style </td><td>[Version 1.4.0] Today different tool-chains support different styles of incompatible flash programming algorithms. The attribute specifies the style of the specified flash programming algorithm. For backward compatibility the default value is "Keil". The aim is to converge to the <em>CMSIS</em> style. </td><td><a class="el" href="pdsc_family_pg.html#AlgorithmStyleEnum">AlgorithmStyleEnum</a> </td><td><p class="starttd">optional </p>
+<p class="endtd"></p>
+</td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_book"></a>
+/package/devices/family/.../book</h1>
+<p>Specifies documents related to a device. Books can be entered on various levels. The book element contains the location, filename, and extension of the file. The title is used for display purposes.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;book name=<span class="stringliteral">&quot;Documents/STM32F40x_DS.PDF&quot;</span> title=<span class="stringliteral">&quot;STM32F40x Data Sheet&quot;</span>/&gt; &lt;!-- valid <span class="keywordflow">for</span> all devices of the family --&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;STM32F405&quot;</span>&gt;</div>
+<div class="line"> &lt;book name=<span class="stringliteral">&quot;Documents/STM32F4xx_RM.pdf&quot;</span> title=<span class="stringliteral">&quot;STM32F4 Series Reference Manual&quot;</span>/&gt; &lt;!-- valid <span class="keywordflow">for</span> all devices of a subFamily --&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F405OE&quot;</span>&gt;</div>
+<div class="line"> &lt;book name=<span class="stringliteral">&quot;Documents/STM32F405OE_DS.PDF&quot;</span> title=<span class="stringliteral">&quot;STM32F405OE - Data Sheet&quot;</span>/&gt; &lt;!-- valid <span class="keywordflow">for</span> <span class="keyword">this</span> device; Inherits all above --&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Type: BookType">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Pname </td><td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors and where the book refers to a single processor only</b>. Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<td>name </td><td>File name of the document including the extension. The document path is relative to the package base folder. Directory/file names are case-sensitive. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>title </td><td>Book title. Can be used for being displayed in various environments. </td><td>xs:string </td><td>required </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_compile"></a>
+/package/devices/family/.../compile</h1>
+<p>Specify header files and preprocessor defines for programming. This element can occur on various levels. Multiple elements are allowed. The last occurrence in the hierarchy determines the actual define.</p>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>In the example below, the device <b>STM32F407IG</b> will have a define <code>STM32F407IG</code>. Previous defines are overridden.</li>
+<li>It is good practice to add both attributes (<code>header</code> and <code>define</code>) in the attributes list of the <code>compile</code> element together. This clarifies the relationship between header file and define.</li>
+</ul>
+</dd></dl>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;compile header=<span class="stringliteral">&quot;Device/Include/stm32f4xx.h&quot;</span>/&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;STM32F407&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;compile header=<span class="stringliteral">&quot;Device/Include/stm32f4xx.h&quot;</span> define=<span class="stringliteral">&quot;STM32F40XX&quot;</span>/&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F407IG&quot;</span>&gt;</div>
+<div class="line"> &lt;compile header=<span class="stringliteral">&quot;Device/Include/stm32f4xx.h&quot;</span> define=<span class="stringliteral">&quot;STM32F407IG&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> &lt;/subFamily&gt;</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><table class="cmtable" summary="Element: compile">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Pname </td><td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors if the header and define is different for each processor</b>. Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<td>header </td><td>C-header file with path relative to the installation. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>define </td><td>C-file name with device specific preprocessor defines. The path is relative to the installation. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_description"></a>
+/package/devices/family/.../description</h1>
+<p>Brief description of the element. Can occur on various levels. Should only contain the unique features of the device. Number of bullet points should not exceed ten. To create a detailed feature list use the <a class="el" href="pdsc_family_pg.html#element_feature">/package/devices/family/.../feature</a> instead.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> &lt;devices&gt;</div>
+<div class="line"> &lt;family Dfamily=<span class="stringliteral">&quot;STM32F2&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;description&gt;</div>
+<div class="line"> STM32F2 devices are designed <span class="keywordflow">for</span> medical, industrial and consumer</div>
+<div class="line"> applications and provide rich connectivity peripherals.</div>
+<div class="line"> - At 120 MHz CPU clock: 150 DMIPS executing from Flash memory </div>
+<div class="line"> - ART Accelerator <span class="keywordflow">for</span> low-power Flash execution (175 µA/MHz @ 120 MHz)</div>
+<div class="line"> - Flexible Memory Controller supports Compact Flash, SRAM, PSRAM, NOR and NAND</div>
+<div class="line"> &lt;/description&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;/family&gt;</div>
+<div class="line"> &lt;/devices&gt;</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: description">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Pname </td><td>Processor Identifier. This attribute <b>is mandatory for devices that embed multiple processors and where the description is specific to a single processor</b>. Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_environment"></a>
+/package/devices/family/.../environment</h1>
+<p>Tool-specific elements for a device.</p>
+<p>Can occur on various levels.</p>
+<p>Contains information that is specific for a <b>development tool</b> identified by the <em>name</em> attribute. The structure of the <em>element</em> is not specified in the schema file which gives the <b>development tool</b> full control of the <em>element</em> usage.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> &lt;devices&gt;</div>
+<div class="line"> &lt;family Dfamily=<span class="stringliteral">&quot;MySeries&quot;</span> Dvendor=<span class="stringliteral">&quot;Generic:5&quot;</span>&gt;</div>
+<div class="line"> ... </div>
+<div class="line"> &lt;environment name=<span class="stringliteral">&quot;MyConfigTool&quot;</span>&gt;</div>
+<div class="line"> &lt;file&gt;MyConfigFile.cfg&lt;/file&gt;</div>
+<div class="line"> &lt;control&gt;MyControlString&lt;/control&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/environment&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/family&gt;</div>
+<div class="line"> &lt;/devices&gt;</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> &lt;devices&gt;</div>
+<div class="line"> &lt;family Dfamily=<span class="stringliteral">&quot;XMC1000 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;Infineon:7&quot;</span>&gt;</div>
+<div class="line"> ... </div>
+<div class="line"> &lt;environment name=<span class="stringliteral">&quot;uv&quot;</span> Pname=<span class="stringliteral">&quot;M0&quot;</span>&gt;</div>
+<div class="line"> &lt;CMisc&gt;--C99&lt;/CMisc&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/environment&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/family&gt;</div>
+<div class="line"> &lt;/devices&gt;</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: description">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>name </td><td>Name of the development tool (e.g. "uv" for uVision) </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>Pname </td><td>Identifies the processor the setting belongs to. Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>any </td><td>Any element that is available for the specified development tool.<br/>
+ For uVision, the following elements are available: &lt;CMisc&gt;, &lt;AMisc&gt;, &lt;LMisc&gt;, &lt;preBuild1&gt;, &lt;preBuild2&gt;, &lt;preRun1&gt;, &lt;preRun2&gt;, &lt;postBuild1&gt;, &lt;postBuild2&gt;, &lt;postRun1&gt;, &lt;postRun&gt;. </td><td>xs:anyAttribute </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_feature"></a>
+/package/devices/family/.../feature</h1>
+<p>This element specifies the peripherals that devices can have. Many device feature types are already predefined, such as timers, converters, Ethernet, USB, etc (for a complete list refer to table <a class="el" href="pdsc_family_pg.html#DeviceFeatureTypeEnum">Device Feature Types</a>). Features can be defined on various levels. Inner elements supersede outer elements.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> &lt;devices&gt;</div>
+<div class="line"> &lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;!-- Features that are in common to <span class="keyword">this</span> device family. --&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;TimerOther&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;Independent Watchdog Timer&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;TimerOther&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;Window Watchdog Timer&quot;</span>/&gt; &lt;!-- The same feature type can be specified multiple times --&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Other&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;Temperature Sensor&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;CoreOther&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;96-bit Unique Identifier&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;CoreOther&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;CRC Calculation Unit&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;DMA&quot;</span> n=<span class="stringliteral">&quot;16&quot;</span> name=<span class="stringliteral">&quot;General Purpose DMA with Centralized FIFO and Burst Support&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;PowerOther&quot;</span> n=<span class="stringliteral">&quot;1&quot;</span> name=<span class="stringliteral">&quot;POR, PDR, PVD, and BOR&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;XTAL&quot;</span> n=<span class="stringliteral">&quot;4000000&quot;</span> m=<span class="stringliteral">&quot;26000000&quot;</span> name=<span class="stringliteral">&quot;Crystal Oscillator&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;IntRC&quot;</span> n=<span class="stringliteral">&quot;16000000&quot;</span> name=<span class="stringliteral">&quot;Internal Factory-Trimmed RC&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;IntRC&quot;</span> n=<span class="stringliteral">&quot;32000&quot;</span> name=<span class="stringliteral">&quot;Internal RC with Calibration&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;RTC&quot;</span> n=<span class="stringliteral">&quot;32000&quot;</span> name=<span class="stringliteral">&quot;RTC with 32 kHz calibrated Oscillator and Battery Backup&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;PowerMode&quot;</span> n=<span class="stringliteral">&quot;3&quot;</span> name=<span class="stringliteral">&quot;Run, Stop, Standby&quot;</span>/&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Temp&quot;</span> n=<span class="stringliteral">&quot;-40&quot;</span> m=<span class="stringliteral">&quot;85&quot;</span>/&gt; </div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Temp&quot;</span> n=<span class="stringliteral">&quot;-40&quot;</span> m=<span class="stringliteral">&quot;105&quot;</span>/&gt; </div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Timer&quot;</span> n=<span class="stringliteral">&quot;4&quot;</span> m=<span class="stringliteral">&quot;16&quot;</span> name=<span class="stringliteral">&quot;General Purpose Timer&quot;</span>/&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;STM32F407&quot;</span>&gt;</div>
+<div class="line"> &lt;!-- Features that are in common to <span class="keyword">this</span> subFamily. --&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;IOs&quot;</span> n=<span class="stringliteral">&quot;36&quot;</span>/&gt; &lt;!-- Adds <span class="keyword">new</span> feature to subFamily --&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Timer&quot;</span> n=<span class="stringliteral">&quot;7&quot;</span> m=<span class="stringliteral">&quot;32&quot;</span> name=<span class="stringliteral">&quot;General Purpose Timer&quot;</span>/&gt; &lt;!-- Adds to settings from &lt;family&gt; --&gt;</div>
+<div class="line"></div>
+<div class="line"> </div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F407IE&quot;</span>&gt;</div>
+<div class="line"> &lt;!-- Feature specific to <span class="keyword">this</span> device. All above features are inherited. --&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;QFP&quot;</span> n=<span class="stringliteral">&quot;176&quot;</span> name=<span class="stringliteral">&quot;LQFP 176 24x24x1.4&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> &lt;/subFamily&gt;</div>
+<div class="line"> &lt;/family&gt;</div>
+<div class="line"> &lt;/devices&gt;</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: feature">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Pname </td><td>Processor Identifier. This attribute <b>is mandatory for devices that embed multiple processors</b>. Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<td>type </td><td>A feature (peripheral), such as <span class="XML-Token">CAN</span>, <span class="XML-Token">DMA</span>, <span class="XML-Token">I/O</span>, <span class="XML-Token">LCD</span>, etc. Predefined values must be used as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceFeatureTypeEnum">Device Feature Types</a>. </td><td>DeviceFeatureTypeEnum </td><td>required </td></tr>
+<tr>
+<td>n </td><td>Depends on the element <em><b>type</b>.</em> Check table <a class="el" href="pdsc_family_pg.html#DeviceFeatureTypeEnum">Device Feature Types</a>. </td><td>xs:decimal </td><td>optional </td></tr>
+<tr>
+<td>m </td><td>Depends on the elemen <em><b>type</b>.</em> Check table <a class="el" href="pdsc_family_pg.html#DeviceFeatureTypeEnum">Device Feature Types</a>. </td><td>xs:decimal </td><td>optional </td></tr>
+<tr>
+<td>name </td><td>Descriptive name of the feature. For example, "16-bit down counting timer". If omitted, the <b>Default Name</b> is used as described in the table <a class="el" href="pdsc_family_pg.html#DeviceFeatureTypeEnum">Device Feature Types</a>. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="DeviceFeatureTypeEnum"></a><b>Table: Device Feature Types</b></p>
+<p>The table lists predefined device features (peripherals). </p>
+<dl class="section note"><dt>Note</dt><dd>The attribute <em>name</em> of the element <a class="el" href="pdsc_family_pg.html#element_feature">/package/devices/family/.../feature</a> is a descriptive text for a feature. If <em>name</em> is omitted, then the <b>Default Name</b> is used.</dd></dl>
+<table class="doxtable">
+<tr>
+<th>type=</th><th>n=</th><th>m=</th><th>Default Name</th><th>Example</th><th>Example shown as</th></tr>
+<tr>
+<td>NVIC</td><td>Number of NVIC Interrupts</td><td>N/A</td><td>NVIC</td><td>&lt;feature type="NVIC" n="120" name="NVIC"/&gt;</td><td>NVIC with 120 interrupt sources </td></tr>
+<tr>
+<td>DMA</td><td>Number of DMA Channels</td><td>N/A</td><td>DMA</td><td>&lt;feature type="DMA" n="16" name="High-Speed DMA"/&gt;</td><td>16-channel High-Speed DMA </td></tr>
+<tr>
+<td>Crypto</td><td>Bitwidth, given as decimal Number (see example)</td><td>N/A</td><td>Cryptographic Engine</td><td>&lt;feature type="Crypto" n="128.256" name="HW accelerated AES Encryption Engine"/&gt;</td><td>128/256-bit HW accelerated AES Encryption Engine </td></tr>
+<tr>
+<td>RNG</td><td>Number of RNGs</td><td>N/A</td><td>Random Number Generator</td><td>&lt;feature type="RNG" name="True Random Number Generator"/&gt;</td><td>True Random Number Generator </td></tr>
+<tr>
+<td>CoreOther</td><td>Number of Features</td><td>N/A</td><td>Other Core Feature</td><td>&lt;feature type="CoreOther" n=1 name="96-bit Unique Identifier"/&gt;</td><td>1 x 96-bit Unique Identifier </td></tr>
+<tr>
+<td>Memory</td><td>Number of Bytes</td><td>N/A</td><td>Memory</td><td>&lt;feature type="Memory" n="128" name="EEPROM"/&gt;</td><td>128 byte EEPROM </td></tr>
+<tr>
+<td>MemoryOther</td><td>Number of Memories</td><td>N/A</td><td>Other Memory Type</td><td>&lt;feature type="MemoryOther" n="1" name="1 kB MRAM"/&gt;</td><td>1 x 1 kB MRAM </td></tr>
+<tr>
+<td>ExtBus</td><td>Bitwidth of Bus Interface</td><td>N/A</td><td>External Bus Interface</td><td>&lt;feature type="ExtBus" n="16" name="External Bus Interface for SRAM Communication"/&gt;</td><td>16-bit External Bus Interface for SRAM Communication </td></tr>
+<tr>
+<td>XTAL</td><td>Minimum Frequency in Hz</td><td>Maximum Frequency in Hz</td><td>External Crystal Oscillator</td><td>&lt;feature type="XTAL" n="4000000" m="25000000" name="External Crystal Oscillator"/&gt;</td><td>4 MHz .. 25 MHz External Crystal Oscillator </td></tr>
+<tr>
+<td>IntRC</td><td>Minimum Frequency in Hz</td><td>Maximum Frequency in Hz</td><td>Internal RC Oscillator</td><td>&lt;feature type="IntRC" n="16000000" name="Internal RC Oscillator with +/- 1% accuracy"/&gt;</td><td>16 MHz Internal RC Oscillator with +/- 1% accuracy </td></tr>
+<tr>
+<td>PLL</td><td>Number of PLLs</td><td>N/A</td><td>PLL</td><td>&lt;feature type="PLL" n="3" name="Internal PLL"/&gt;</td><td>3 Internal PLL </td></tr>
+<tr>
+<td>RTC</td><td>RTC Frequency</td><td>N/A</td><td>RTC</td><td>&lt;feature type="RTC" n="32000" name="Internal RTC"/&gt;</td><td>32 kHz Internal RTC </td></tr>
+<tr>
+<td>ClockOther</td><td>Number of Peripherals</td><td>N/A</td><td>Other Clock Peripheral</td><td>&lt;feature type="ClockOther" name="My special clock feature"/&gt;</td><td>My special clock feature </td></tr>
+<tr>
+<td>PowerMode</td><td>Number of Power Modes</td><td>N/A</td><td>Power Modes</td><td>&lt;feature type="Mode" n="3" name="Run, Sleep, Deep-Sleep"/&gt;</td><td>3 Power Modes: Run, Sleep, Deep-Sleep </td></tr>
+<tr>
+<td>VCC</td><td>Minimum Supply Voltage</td><td>Maximum Supply Voltage</td><td>Operating Voltage</td><td>&lt;feature type="VCC" n="1.8" m="3.6"/&gt;</td><td>1.8 V .. 3.6 V </td></tr>
+<tr>
+<td>Consumption</td><td>Minimum Power Consumption</td><td>Typical Power Consumption</td><td>Power Consumption</td><td>&lt;feature type="Consumption" n="0.00004" m="0.002" name="Ultra-Low Power Consumption"/&gt;</td><td>40 uW/MHz .. 2 mW/MHz Ultra-Low Power Consumption </td></tr>
+<tr>
+<td>PowerOther</td><td>Number of Features</td><td>N/A</td><td>Other Power Feature</td><td>&lt;feature type="PowerOther" n="1" name="POR"/&gt;</td><td>1 x POR </td></tr>
+<tr>
+<td>BGA</td><td>Number of Balls</td><td>N/A</td><td>BGA</td><td>&lt;feature type="BGA" n="256" name="Plastic Ball Grid Array"/&gt;</td><td>256-ball Plastic Ball Grid Array </td></tr>
+<tr>
+<td>CSP</td><td>Number of Leads</td><td>N/A</td><td>CSP</td><td>&lt;feature type="CSP" n="28" name="Wafer-Level Chip-Scale Package"/&gt;</td><td>28-ball Wafer-Level Chip-Scale Package </td></tr>
+<tr>
+<td>PLCC</td><td>Number of Leads</td><td>N/A</td><td>PLCC</td><td>&lt;feature type="PLCC" n="20" name="PLCC Package"/&gt;</td><td>20-lead PLCC Package </td></tr>
+<tr>
+<td>QFN</td><td>Number of Leads</td><td>N/A</td><td>QFN</td><td>&lt;feature type="QFN" n="33" name="QFN Package"/&gt;</td><td>33-pad QFN Package </td></tr>
+<tr>
+<td>QFP</td><td>Number of Leads</td><td>N/A</td><td>QFP</td><td>&lt;feature type="QFP" n="128" name="Low-Profile QFP Package"/&gt;</td><td>128-lead Low-Profile QFP Package </td></tr>
+<tr>
+<td>SOP</td><td>Number of Leads</td><td>N/A</td><td>SOP</td><td>&lt;feature type="SOP" n="16" name="SSOP Package"/&gt;</td><td>16-lead SSOP Package </td></tr>
+<tr>
+<td>DIP</td><td>Number of Leads</td><td>N/A</td><td>SOP</td><td>&lt;feature type="DIP" n="16" name="Dual In-Line Package"/&gt;</td><td>16-lead Dual In-Line Package </td></tr>
+<tr>
+<td>PackageOther</td><td>Number of Pins</td><td>N/A</td><td>Other Package Type</td><td>&lt;feature type="PackageOther" n="44" name="My other Package"/&gt;</td><td>44-contacts My other Package </td></tr>
+<tr>
+<td>IOs</td><td>Number of I/Os</td><td>N/A</td><td>Inputs/Outputs</td><td>&lt;feature type="IOs" n="112" name="General Purpose I/Os, 5V tolerant"/&gt;</td><td>112 General Purpose I/Os, 5V tolerant </td></tr>
+<tr>
+<td>ExtInt</td><td>Number of External Interrupts</td><td>N/A</td><td>External Interrupts</td><td>&lt;feature type="ExtInt" n="12"/&gt;</td><td>12 External Interrupts </td></tr>
+<tr>
+<td>Temp</td><td>Minimum Operating Temperature</td><td>Maximum Operating Temperature</td><td>Operating Temperature Range</td><td>&lt;feature type="Temp" n="-40" m="105" name="Extended Operating Temperature Range"/&gt;</td><td>-40 °C .. +105 °C Extended Operating Temperature Range </td></tr>
+<tr>
+<td>ADC</td><td>Number of Channels</td><td>Resolution in Bit</td><td>ADC</td><td>&lt;feature type="ADC" n="5" m="12" name="High-Performance ADC"/&gt;</td><td>5-channel x 12-bit High-Performance ADC </td></tr>
+<tr>
+<td>DAC</td><td>Number of Channels</td><td>Resolution in Bit</td><td>DAC</td><td>&lt;feature type="DAC" n="2" m="10"/&gt;</td><td>2 x 12-bit DAC </td></tr>
+<tr>
+<td>TempSens</td><td>Number of Sensors</td><td>N/A</td><td>Temperature Sensor</td><td>&lt;feature type="TempSens" n="1"/&gt;</td><td>1 x Temperature Sensor </td></tr>
+<tr>
+<td>AnalogOther</td><td>Number of Features</td><td>N/A</td><td>Other Analog Peripheral</td><td>&lt;feature type="AnalogOther" n="1" name="My Analog"/&gt;</td><td>1 x My Analog </td></tr>
+<tr>
+<td>Timer</td><td>Number of Channels</td><td>Resolution in Bit</td><td>Timer/Counter Module</td><td>&lt;feature type="Timer" n="2" m="32" name="Timer Module with Quadrature Encoding"/&gt;</td><td>2 x 32-bit Timer Module with Quadrature Encoding </td></tr>
+<tr>
+<td>PWM</td><td>Number of Channels</td><td>Resolution in Bit</td><td>PWM</td><td>&lt;feature type="PWM" n="2" m="16" name="Pulse Width Modulation"/&gt;</td><td>2 x 16-bit Pulse Width Modulation </td></tr>
+<tr>
+<td>WDT</td><td>Number of Watchdogs</td><td>N/A</td><td>Watchdog</td><td>&lt;feature type="WDT" n="1"/&gt;</td><td>1 x Watchdog Timer </td></tr>
+<tr>
+<td>TimerOther</td><td>Number of Features</td><td>N/A</td><td>Other Timer Peripheral</td><td>&lt;feature type="TimerOther" n="1" name="Quadrature En-/Decoder"/&gt;</td><td>1 x Quadrature En-/Decoder </td></tr>
+<tr>
+<td>MPSerial</td><td>Number of Serial Peripherals</td><td>N/A</td><td>Multi-Purpose Serial Peripheral</td><td>&lt;feature type="MPSerial" n="4" name="Multi-Purpose Serial Interface Module: I2C, I2S, SPI, UART"/&gt;</td><td>4 x Multi-Purpose Serial Interface Module: I2C, I2S, SPI, UART </td></tr>
+<tr>
+<td>CAN</td><td>Number of CAN Interfaces</td><td>N/A</td><td>CAN</td><td>&lt;feature type="CAN" n="2" name="CAN 2.0b Controller"/&gt;</td><td>2 x CAN 2.0b Controller </td></tr>
+<tr>
+<td>ETH</td><td>Number of Ethernet Interfaces</td><td>Data Rate in Bit/s</td><td>Ethernet</td><td>&lt;feature type="ETH" n="1" m="10000000" name="Integrated Ethernet MAC with PHY"/&gt;</td><td>1 x 10 Mbit/s Integrated Ethernet MAC with PHY </td></tr>
+<tr>
+<td>I2C</td><td>Number of I2C Interfaces</td><td>N/A</td><td>I2C</td><td>&lt;feature type="I2C" n="2"name="Low-Power I2C"/&gt;</td><td>2 x Low-Power I2C </td></tr>
+<tr>
+<td>I2S</td><td>Number of I2S Interfaces</td><td>N/A</td><td>I2S</td><td>&lt;feature type="I2S" n="3"/&gt;</td><td>3 x I2S </td></tr>
+<tr>
+<td>LIN</td><td>Number of LIN Interfaces</td><td>N/A</td><td>LIN</td><td>&lt;feature type="LIN" n="4"/&gt;</td><td>4 x LIN </td></tr>
+<tr>
+<td>SDIO</td><td>Number of SDIO Interfaces</td><td>Bitwidth of SDIO Interface</td><td>SDIO</td><td>&lt;feature type="SDIO" n="1" m="4" name="SDIO Interface"/&gt;</td><td>1 x 4-bit SDIO Interface </td></tr>
+<tr>
+<td>SPI</td><td>Number of SPI Interfaces</td><td>Data Rate in Bit/s</td><td>SPI</td><td>&lt;feature type="SPI" n="2" m="20000000" name="SPI Interface"/&gt;</td><td>2 x 20 Mbit/s SPI Interface </td></tr>
+<tr>
+<td>UART</td><td>Number of UART Interfaces</td><td>Data Rate in Bit/s</td><td>UART</td><td>&lt;feature type="UART" n="4" m="3000000" name="High-Speed UART Interface"/&gt;</td><td>4 x 3 Mbit/s High-Speed UART Interface </td></tr>
+<tr>
+<td>USART</td><td>Number of USART Interfaces</td><td>Data Rate in Bit/s</td><td>USART</td><td>&lt;feature type="USART" n="2" m="1000000" name="High-Speed USART Interface"/&gt;</td><td>2 x 1 Mbit/s High-Speed USART Interface </td></tr>
+<tr>
+<td>USBD</td><td>Number of USB Dvice Interfaces</td><td>N/A</td><td>USB Device</td><td>&lt;feature type="USBD" n="2" name="Full-Speed USB Device"/&gt;</td><td>2 x Full-Speed USB Device </td></tr>
+<tr>
+<td>USBH</td><td>Number of USB Host Interfaces</td><td>N/A</td><td>USB Host</td><td>&lt;feature type="USBH" n="2" name="High-Speed USB Host"/&gt;</td><td>2 x High-Speed USB Host </td></tr>
+<tr>
+<td>USBOTG</td><td>Number of USB OTG Interfaces</td><td>N/A</td><td>USB OTG</td><td>&lt;feature type="USBOTG" n="1" name="High-Speed USB OTG with PHY"/&gt;</td><td>1 x High-Speed USB OTG with PHY </td></tr>
+<tr>
+<td>ComOther</td><td>Number of other Communication Peripherals</td><td>N/A</td><td>Other Communication Peripheral</td><td>&lt;feature type="ComOther" n="1" name="ZigBee"/&gt;</td><td>1 x ZigBee </td></tr>
+<tr>
+<td>Camera</td><td>Number of Camera Interface</td><td>Resolution in Bit</td><td>Camera Interface</td><td>&lt;feature type="Camera" n="1" m="8" name="Digital Camera Interface"/&gt;</td><td>1 x 8-bit Digital Camera Interface </td></tr>
+<tr>
+<td>GLCD</td><td>Number of Graphic LCD Controller</td><td>Maximum Resolution as a decimal number (see example)</td><td>Graphic LCD Controller</td><td>&lt;feature type="GLCD" n="1" m="320.240" name="TFT LCD Controller"/&gt;</td><td>1 x 320 x 480 pixel TFT LCD Controller </td></tr>
+<tr>
+<td>LCD</td><td>Number of Segment LCD Controller</td><td>Com.Seg as a decimal number (see example)</td><td>Segment LCD Controller</td><td>&lt;feature type="LCD" n="1" m="16.40" name="Segment LCD Controller"/&gt;</td><td>1 x 16 x 40 Segment LCD Controller </td></tr>
+<tr>
+<td>Touch</td><td>Number of Touch Channels</td><td>N/A</td><td>Capacitive Touch Inputs</td><td>&lt;feature type="Touch" n="10" name="Capacitive Touch Inputs"/&gt;</td><td>10 x Capacitive Touch Inputs </td></tr>
+<tr>
+<td>Other</td><td>Number of Features</td><td>N/A</td><td>Other Feature</td><td>&lt;feature type="Other" n="2" name="My other Interface"/&gt;</td><td>2 x My other Interface </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_memory"></a>
+/package/devices/family/.../memory</h1>
+<p>This element specifies memory regions that devices can have. Memory types are predefined and can be selected. This element can be defined on various levels. Inner memory elements supersede outer elements.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;/package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;devices&gt;</div>
+<div class="line"> &lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> &lt;memory name=<span class="stringliteral">&quot;SRAM&quot;</span> access=<span class="stringliteral">&quot;rwx&quot;</span> start=<span class="stringliteral">&quot;0x20000000&quot;</span> size=<span class="stringliteral">&quot;0x20000&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;subFamily DsubFamily=<span class="stringliteral">&quot;STM32F407&quot;</span>&gt;</div>
+<div class="line"> &lt;debug __dp=<span class="stringliteral">&quot;0&quot;</span> __ap=<span class="stringliteral">&quot;0&quot;</span> svd=<span class="stringliteral">&quot;SVD/STM32F40x.svd&quot;</span>/&gt;</div>
+<div class="line"> &lt;memory name=<span class="stringliteral">&quot;SRAM1&quot;</span> access=<span class="stringliteral">&quot;rwx&quot;</span> start=<span class="stringliteral">&quot;0x20020000&quot;</span> size=<span class="stringliteral">&quot;0x20000&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;memory name=<span class="stringliteral">&quot;SRAM2&quot;</span> access=<span class="stringliteral">&quot;rwx&quot;</span> start=<span class="stringliteral">&quot;0x10000000&quot;</span> size=<span class="stringliteral">&quot;0x10000&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;device Dname=<span class="stringliteral">&quot;STM32F407IE&quot;</span>&gt;</div>
+<div class="line"> &lt;memory name=<span class="stringliteral">&quot;Flash&quot;</span> access=<span class="stringliteral">&quot;rx&quot;</span> start=<span class="stringliteral">&quot;0x08000000&quot;</span> size=<span class="stringliteral">&quot;0x80000&quot;</span> startup=<span class="stringliteral">&quot;1&quot;</span> <span class="keywordflow">default</span>=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> &lt;/device&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;/subFamily&gt;</div>
+<div class="line"> &lt;/family&gt;</div>
+<div class="line"> &lt;/devices&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="Element: memory">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Pname </td><td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors</b>. Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<td>id (deprecated in Version 1.4.0) </td><td>(deprecated Version 1.4.0) Identifier of the memory region consisting of a type indicator and an index (for example, <span class="XML-Token">IRAM1</span>). Predefind values can be selected as defined in <a class="el" href="pdsc_family_pg.html#MemoryIDTypeEnum">MemoryIDTypeEnum</a>. </td><td>MemoryIDTypeEnum </td><td>optional </td></tr>
+<tr>
+<td>name (new in Version 1.4.0) </td><td>unique name of the memory (new in Version 1.4.0) to be used in conjunction with <em>access</em> </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>access (new in Version 1.4.0) </td><td>access permission attributes of the memory. See MemoryAccessTypeString for details (new in Version 1.4.0). </td><td><a class="el" href="pdsc_family_pg.html#MemoryAccessTypeString">MemoryAccessTypeString</a> </td><td>optional </td></tr>
+<tr>
+<td>start </td><td>Base address of the memory using a hexadecimal value. </td><td>NonNegativeInteger </td><td>required </td></tr>
+<tr>
+<td>size </td><td>Size of the memory in bytes using a hexadecimal value. </td><td>NonNegativeInteger </td><td>required </td></tr>
+<tr>
+<td>default </td><td>Indicates a general purpose memory region, that does not require any special considerations (access speed, remapping, protection, etc.). If <span class="XML-Token">true</span>, then an IRAM memory region will be used by the linker for locating any data and an IROM memory region will for locating any code. Every device needs at least one default IRAM region. If an <a class="el" href="pdsc_family_pg.html#element_algorithm">algorithm</a> element is specified (without <code>RAMstart</code> and <code>RAMsize</code> attributes), the first listed IRAM region with default="1" will also be used for executing the flash programming algorithm. Default value is <span class="XML-Token">false</span>. </td><td>xs:boolean </td><td>optional </td></tr>
+<tr>
+<td>startup </td><td>If <span class="XML-Token">true</span>, the startup code of the application will be placed into this memory region. Default value is <span class="XML-Token">false</span>. </td><td>xs:boolean </td><td>optional </td></tr>
+<tr>
+<td>alias(new in Version 1.4.0) </td><td>reference to another memory description which shares the same physical memory. Some physical memory is made accessible via different addresses, e.g. chached vs. non-cached accesses. This avoids the impression that the device has twice as much memory available. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="MemoryIDTypeEnum"></a><b>Table: Memory ID Types</b></p>
+<p>The table lists identifiers for memory types. </p>
+<table class="cmtable" summary="Enumeration: MemoryIDTypeEnum">
+<tr>
+<th>id= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">RAM<em>x</em> </td><td>External RAM. <em>x</em> can have a value between 1..8 </td></tr>
+<tr>
+<td class="XML-Token">ROM<em>x</em> </td><td>External ROM. <em>x</em> can have a value between 1..8 </td></tr>
+<tr>
+<td class="XML-Token">IRAM<em>x</em> </td><td>Internal RAM. <em>x</em> can have a value between 1..8 </td></tr>
+<tr>
+<td class="XML-Token">IROM<em>x</em> </td><td>Internal ROM. <em>x</em> can have a value between 1..8 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<p><a class="anchor" id="MemoryAccessTypeString"></a><b>Table: Memory Access Attribute String</b></p>
+<p>The table lists the letters and their meaning for use in the access attribute string. </p>
+<table class="cmtable" summary="Memory Access Permission Attributes">
+<tr>
+<th>access= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">r </td><td><em>R</em>eadable </td></tr>
+<tr>
+<td class="XML-Token">w </td><td><em>W</em>ritable </td></tr>
+<tr>
+<td class="XML-Token">x </td><td>e<em>X</em>ecutable </td></tr>
+<tr>
+<td class="XML-Token">p </td><td><em>P</em>eripheral area. Details described in SVD. </td></tr>
+<tr>
+<td class="XML-Token">s </td><td><em>S</em>ecure attribute </td></tr>
+<tr>
+<td class="XML-Token">n </td><td><em>N</em>on-secure attribute </td></tr>
+<tr>
+<td class="XML-Token">c </td><td>non-secure <em>C</em>allable attribute </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_processor"></a>
+/package/devices/family/.../processor</h1>
+<p>Specifies attributes of the device processor. The element can occur on various levels. Elements of multi-processor devices can be associated with a specific processor using the attribute <b>&lt;Pname&gt;</b>. If the information is relevant to all processors, no processor must be specified in <b>&lt;Pname&gt;</b>.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;package&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;devices&gt;</div>
+<div class="line"> &lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> &lt;processor Dcore=<span class="stringliteral">&quot;Cortex-M4&quot;</span> DcoreVersion=<span class="stringliteral">&quot;r0p1&quot;</span></div>
+<div class="line"> Dfpu=<span class="stringliteral">&quot;1&quot;</span> Dmpu=<span class="stringliteral">&quot;1&quot;</span> Dendian=<span class="stringliteral">&quot;Little-endian&quot;</span> Dclock=<span class="stringliteral">&quot;168000000&quot;</span>/&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/family&gt;</div>
+<div class="line"> &lt;/devices&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: processor">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Pname </td><td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors</b>. Each processor needs a unique identifier and must be used consistently in the <b>Pname</b> attribute of the elements within the scope of the current device family section. Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<td>Dvendor </td><td>Specfies the device vendor using a predefined string. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">Device Vendor</a>. </td><td>DeviceVendorEnum </td><td>optional </td></tr>
+<tr>
+<td>Dcore </td><td>Specifies the processor core. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DcoreEnum">Device Cores</a>. </td><td>DcoreEnum </td><td>optional </td></tr>
+<tr>
+<td>Dfpu </td><td>Specifies whether a hardware Floating Point Unit is present in the processor. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DfpuEnum">Device FPU</a>. </td><td>DfpuEnum </td><td>optional </td></tr>
+<tr>
+<td>Dmpu </td><td>Specifies whether a Memory Protection Unit is present in the processor. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DmpuEnum">Device MPU</a>. </td><td>DmpuEnum </td><td>optional </td></tr>
+<tr>
+<td>Dendian </td><td>Specifies the endianess of the processor. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DendianEnum">Endinaness</a>. </td><td>DendianEnum </td><td>optional </td></tr>
+<tr>
+<td>Dclock </td><td>Specifies the max clock frequency of the processor subsystem </td><td>xs:unsignedInt </td><td>optional </td></tr>
+<tr>
+<td>DcoreVersion </td><td>Hardware revision of the processor core </td><td>xs:string </td><td>required </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="DeviceVendorEnum"></a><b>Table: Device Vendors</b></p>
+<p>The table lists predefined values representing device vendors. The list is extended from time to time (on request by new vendors). Contact <a href="#" onclick="location.href='mai'+'lto:'+'cms'+'is'+'@ar'+'m.'+'com'; return false;">cmsis<span style="display: none;">.nosp@m.</span>@arm<span style="display: none;">.nosp@m.</span>.com</a> to ask for an extension. These values can be used in the elements:</p>
+<ul>
+<li><a class="el" href="pdsc_boards_pg.html#element_board_mountedDevice">/package/boards/board/mountedDevice</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
+<li><a class="el" href="pdsc_examples_pg.html#element_example_board">/package/examples/example/board</a></li>
+<li><a class="el" href="pdsc_boards_pg.html#element_board_compatibleDevice">/package/boards/board/compatibleDevice</a></li>
+<li><a class="el" href="pdsc_generators_pg.html#element_gen_select">/package/generators/generator/select</a></li>
+</ul>
+<table class="cmtable" summary="Enumeration: DeviceVendorEnum">
+<tr>
+<th>Dvendor </th><th>Description </th><th>Web Link </th></tr>
+<tr>
+<td class="XML-Token">Ambiq Micro:120 </td><td>Ambiq Micro </td><td><a href="http://www.ambiqmicro.com">http://www.ambiqmicro.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Analog Devices:1 </td><td>Analog Devices </td><td><a href="http://www.analog.com">http://www.analog.com</a> </td></tr>
+<tr>
+<td class="XML-Token">ARM:82 </td><td>ARM Ltd. </td><td><a href="http://www.arm.com">http://www.arm.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Atmel:3 </td><td>Atmel Corporation </td><td><a href="http://www.atmel.com">http://www.atmel.com</a> </td></tr>
+<tr>
+<td class="XML-Token">CSR:118 </td><td>CSR: </td><td><a href="http://www.csr.com">http://www.csr.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Cypress:19 </td><td>Cypress Semiconductor </td><td><a href="http://www.cypress.com">http://www.cypress.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Dialog Semiconductor:113 </td><td>Dialog Semiconductor </td><td><a href="http://www.dialog-semiconductor.com">http://www.dialog-semiconductor.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Freescale:78 </td><td>Freescale </td><td><a href="http://www.freescale.com">http://www.freescale.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Generic:5 </td><td>Generic: Not a vendor specific device </td><td></td></tr>
+<tr>
+<td class="XML-Token">GigaDevice:123 </td><td>GigaDevice </td><td><a href="http://www.gigadevice.com">http://www.gigadevice.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Holtek:106 </td><td>Holtek Microelectronics </td><td><a href="http://www.holtek.com.tw">http://www.holtek.com.tw</a> </td></tr>
+<tr>
+<td class="XML-Token">Infineon:7 </td><td>Infineon Technologies </td><td><a href="http://www.infineon.com">http://www.infineon.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Lapis Semiconductor:10 </td><td>Lapis Semiconductor </td><td><a href="http://www.lapis-semi.com">http://www.lapis-semi.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Maxim:23 </td><td>Maxim Integrated </td><td><a href="http://www.maximintegrated.com">http://www.maximintegrated.com</a> </td></tr>
+<tr>
+<td class="XML-Token">MicroSemi:112 </td><td>Microsemi </td><td><a href="http://www.microsemi.com">http://www.microsemi.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Milandr:99 </td><td>Milandr </td><td><a href="http://www.milandr.ru">http://www.milandr.ru</a> </td></tr>
+<tr>
+<td class="XML-Token">Nordic Semiconductor:54 </td><td>Nordic Semiconductor </td><td><a href="http://www.nordicsemi.com">http://www.nordicsemi.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Nuvoton:18 </td><td>Nuvoton Technolgy Corp. </td><td><a href="http://www.nuvoton.com">http://www.nuvoton.com</a> </td></tr>
+<tr>
+<td class="XML-Token">NXP:11 </td><td>NXP </td><td><a href="http://www.nxp.com">http://www.nxp.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Realtek Semiconductor:124 </td><td>Realtek Semiconductor </td><td><a href="http://www.realtek.com.tw">http://www.realtek.com.tw</a> </td></tr>
+<tr>
+<td class="XML-Token">Redpine Signals:125 </td><td>Repine Signals </td><td><a href="http://www.redpinesignals.com">http://www.redpinesignals.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Renesas:117 </td><td>Renesas </td><td><a href="http://www.renesas.com">http://www.renesas.com</a> </td></tr>
+<tr>
+<td class="XML-Token">ROHM:103 </td><td>ROHM </td><td><a href="http://www.rohm.com">http://www.rohm.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Samsung:47 </td><td>Samsung Semiconductor </td><td><a href="http://www.samsung.com">http://www.samsung.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Silicon Labs:21 </td><td>Silicon Labs </td><td><a href="http://www.silabs.com">http://www.silabs.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Spansion:100 </td><td>Spansion (previously Fujitsu) </td><td><a href="http://www.spansion.com">http://www.spansion.com</a> </td></tr>
+<tr>
+<td class="XML-Token">STMicroelectronics:13 </td><td>STMicroelectronics </td><td><a href="http://www.st.com">http://www.st.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Texas Instruments:16 </td><td>Texas Instruments </td><td><a href="http://www.ti.com">http://www.ti.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Toshiba:92 </td><td>Toshiba Semiconductor </td><td><a href="http://www.toshiba-components.com">http://www.toshiba-components.com</a> </td></tr>
+<tr>
+<td class="XML-Token">Triad Semiconductor:104 </td><td>Triad Semiconductor </td><td><a href="http://www.triadsemi.com">http://www.triadsemi.com</a> </td></tr>
+<tr>
+<td class="XML-Token">WIZnet:122 </td><td>WIZnet </td><td><a href="http://www.wiznet.co.kr">http://www.wiznet.co.kr</a> </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="AlgorithmStyleEnum"></a><b>Table: Algorithm Styles</b> </p>
+<table class="cmtable" summary="Enumeration: AlgorithmStyleEnum">
+<tr>
+<th>style= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">Keil </td><td><a href="http://www.keil.com/pack/doc/CMSIS/Pack/html/_flash_algorithm.html" target="_blank">Flash Programming Algorithm</a> as defined by ARM/Keil </td></tr>
+<tr>
+<td class="XML-Token">IAR </td><td>Flash Programming Algorithm as defined by IAR </td></tr>
+<tr>
+<td class="XML-Token">CMSIS </td><td><p class="starttd">To be agreed under CMSIS </p>
+<p class="endtd"></p>
+</td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="DcoreEnum"></a><b>Table: Device Cores</b></p>
+<p>The table lists available device cores. The list is extended from time to time to reflect new processor cores. These values can be used in the elements:</p>
+<ul>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
+<li><a class="el" href="pdsc_family_pg.html#element_processor">/package/devices/family/.../processor</a></li>
+</ul>
+<table class="cmtable" summary="Enumeration: DcoreEnum">
+<tr>
+<th>Dcore= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">Cortex-M0 </td><td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m0.php" target="_blank">ARM Cortex-M0</a> processor based device </td></tr>
+<tr>
+<td class="XML-Token">Cortex-M0+ </td><td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m0plus.php" target="_blank">ARM Cortex-M0+</a> processor based device </td></tr>
+<tr>
+<td class="XML-Token">Cortex-M1 </td><td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m1.php" target="_blank">ARM Cortex-M1</a> processor based device </td></tr>
+<tr>
+<td class="XML-Token">Cortex-M3 </td><td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m3.php" target="_blank">ARM Cortex-M3</a> processor based device </td></tr>
+<tr>
+<td class="XML-Token">Cortex-M4 </td><td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m4-processor.php" target="_blank">ARM Cortex-M4</a> processor based device </td></tr>
+<tr>
+<td class="XML-Token">Cortex-M7 </td><td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m7-processor.php" target="_blank">ARM Cortex-M7</a> processor based device </td></tr>
+<tr>
+<td class="XML-Token">SC000 </td><td>SecurCore <a href="http://www.arm.com/products/processors/securcore/sc000.php" target="_blank">SC000</a> based on technology of Cortex-M0. </td></tr>
+<tr>
+<td class="XML-Token">SC300 </td><td>SecurCore <a href="http://www.arm.com/products/processors/securcore/sc300.php" target="_blank">SC300</a> based on technology of Cortex-M3. </td></tr>
+<tr>
+<td class="XML-Token">Cortex-R4 </td><td>ARM Cortex-R4 processor based device </td></tr>
+<tr>
+<td class="XML-Token">Cortex-R5 </td><td>ARM Cortex-R5 processor based device </td></tr>
+<tr>
+<td class="XML-Token">Cortex-A8 </td><td>ARM Cortex-A8 processor based device </td></tr>
+<tr>
+<td class="XML-Token">Cortex-A9 </td><td>ARM Cortex-A9 processor based device </td></tr>
+<tr>
+<td class="XML-Token">Cortex-A15 </td><td>ARM Cortex-A15 processor based device </td></tr>
+<tr>
+<td class="XML-Token">* </td><td>Device based on any processor </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="DfpuEnum"></a><b>Table: Device FPU</b></p>
+<p>The table lists values that identicate whether a CPU has an Floating Point Unit (FPU). The tokens can be used in the elements:</p>
+<ul>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
+<li><a class="el" href="pdsc_family_pg.html#element_processor">/package/devices/family/.../processor</a></li>
+</ul>
+<table class="cmtable" summary="Enumeration: DfpuEnum">
+<tr>
+<th>Dfpu= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">NO_FPU </td><td>Hardware Floating Point Unit not present </td></tr>
+<tr>
+<td class="XML-Token">FPU </td><td>Hardware Floating Point Unit present </td></tr>
+<tr>
+<td class="XML-Token">SP_FPU </td><td>Single Precision Hardware Floating Point Unit present </td></tr>
+<tr>
+<td class="XML-Token">DP_FPU </td><td>Double Precision Hardware Floating Point Unit present </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="DmpuEnum"></a><b>Table: Device MPU</b></p>
+<p>The table shows predefined values that identify whether a CPU has an Memory Protection Unit (MPU). The values can be used in the elements:</p>
+<ul>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
+<li><a class="el" href="pdsc_family_pg.html#element_processor">/package/devices/family/.../processor</a></li>
+</ul>
+<table class="cmtable" summary="Enumeration: DmpuEnum">
+<tr>
+<th>Dmpu= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">MPU </td><td>Memory Protection Unit is present </td></tr>
+<tr>
+<td class="XML-Token">NO_MPU </td><td>No Memory Protection Unit is present </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="DendianEnum"></a><b>Table: Endianness</b></p>
+<p>The table lists values representing the endianness of a device. The values can be used in the elements:</p>
+<ul>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
+<li><a class="el" href="pdsc_family_pg.html#element_processor">/package/devices/family/.../processor</a></li>
+</ul>
+<table class="cmtable" summary="Enumeration: DendianEnum">
+<tr>
+<th>Dendian= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">Little-endian </td><td>The least significant byte of a multi-byte access is located at the specified address. </td></tr>
+<tr>
+<td class="XML-Token">Big-endian </td><td>The most significant byte of a multi-byte access is located at the specified address. </td></tr>
+<tr>
+<td class="XML-Token">Configurable </td><td>The byte ordering of multi-byte accesses is configurable. </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_debugconfig"></a>
+/package/devices/family/.../debugconfig</h1>
+<p>Default debugger configuration for a target connection.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;LPC4300 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;NXP:11&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debugconfig <span class="keywordflow">default</span>=<span class="stringliteral">&quot;jtag&quot;</span> clock=<span class="stringliteral">&quot;10000000&quot;</span> swj=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: debugconfig">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>default </td><td>Specifies the default debug protocol to use for target connections. Predefined tokens must be used as defined in <a class="el" href="pdsc_family_pg.html#DebugProtocolEnum">Table: Debug Protocol Type</a>. Default value is <span class="XML-Token">swd</span>. </td><td>DebugProtocolEnum </td><td>optional </td></tr>
+<tr>
+<td>clock </td><td>Specifies the default debug clock setting in Hz for a target connection. Default value is <span class="XML-Token">10000000</span>. </td><td>xs:unsignedInt </td><td>optional </td></tr>
+<tr>
+<td>swj </td><td>The device is accessed via a CoreSight SWJ-DP capable of switching between Serial Wire Debug (SWD) and JTAG protocols. Default value is <span class="XML-Token">true</span>. </td><td>xs:bool </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="DebugProtocolEnum"></a><b>Table: Debug Protocol Type</b></p>
+<p>The table lists the values for debug protocol types. </p>
+<table class="cmtable" summary="Enumeration: DataPatchAccessTypeEnum">
+<tr>
+<th>type= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">jtag </td><td>JTAG debug protocol. </td></tr>
+<tr>
+<td class="XML-Token">swd </td><td>ARM Serial Wire Debug (SWD) protocol. </td></tr>
+<tr>
+<td class="XML-Token">cjtag </td><td>CJTAG concurrent jtag debug protocol. </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_debugvars"></a>
+/package/devices/family/.../debugvars</h1>
+<p>Specify <a class="el" href="pdsc_family_pg.html#DebugVars">global debug access variables</a>. Use these in addition to the <a class="el" href="pdsc_family_pg.html#PredefinedDebugVars">pre-defined variables</a> in order to query settings from a debug access sequences.<br/>
+ <br/>
+ Define debug access variables with statements of the following form. </p>
+<div class="fragment"><div class="line">__var uservar = value; <span class="comment">// Comment: Define &quot;uservar&quot; and initialize to &quot;value&quot;</span></div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd><ul>
+<li>Initialization values must be constant unsigned numbers. No expressions are allowed.</li>
+<li>User-defined debug access variables are <b>read-only</b> in a debug access sequence.</li>
+<li>Pre-defined debug access variables cannot be set in this element.</li>
+</ul>
+</dd></dl>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;EFM32WG Series&quot;</span> Dvendor=<span class="stringliteral">&quot;Energy Micro:97&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debugvars configfile=<span class="stringliteral">&quot;Debug/EFM32WGxxx.dbgconf&quot;</span> version=<span class="stringliteral">&quot;1.0&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> __var __TPIU_pinlocation = 0; <span class="comment">// Select one of four possible TPIU pin locations</span></div>
+<div class="line"> </div>
+<div class="line"> __var __SWO_pinlocation = 0; <span class="comment">// Select one of four possible SWO pin locations</span></div>
+<div class="line"> </div>
+<div class="line"> &lt;/debugvars&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequences&gt;</div>
+<div class="line"> &lt;sequence name=<span class="stringliteral">&quot;TraceStart&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;block <span class="keywordflow">if</span>=<span class="stringliteral">&quot;__TPIU_pinlocation == 2&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;!-- Configure device to use pins as defined <span class="keywordflow">for</span> TPIU pin location 2 --&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequence&gt;</div>
+<div class="line"> &lt;/sequences&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debug __dp=<span class="stringliteral">&quot;0&quot;</span> __ap=<span class="stringliteral">&quot;0&quot;</span>/&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: debugvars">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>configfile </td><td>Configuration file with path relative to the package base folder (extension *.DBGCONF). This file contains assignments of a default value to global debug access variables. This file gets copied to the project folder and is editable by the end-user. This file is read by the debugger after processing the global debug access variables. By editing the values of the debug access variables, the end-user effectively controls the behavior of sequences. The file can only assign new values but must not specify any new debug access variables. <a class="el" href="_config_wizard.html">Configuration Wizard Annotations</a> shall be used within the file to provide a graphical user interface for editing configuration options. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html#VersionType">version</a> </td><td>Version refers to the file version of the configfile attribute. If a configfile is specified the version attribute becomes mandatory. The version shall be incremented if any changes have been made to the global debug access variable names or default values. Based on the version information the tool environment will load a configfile with the version required by the debug description. The end-user may be required to update the settings after updating to a new version. </td><td><a class="el" href="pdsc_package_pg.html#VersionType">VersionType</a> </td><td>optional </td></tr>
+<tr>
+<td>Pname </td><td>Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set for this <b>debugvars</b> element, the debug access variables and <b>configfile</b> of this element are only valid for a debug connection to the referenced processor. Otherwise, they are valid for all processors. <b>This attribute must be set if defining multiple <em>debugvars</em> sections for a device.</b> Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<p><b>Example:</b> Configuration File </p>
+<div class="fragment"><div class="line"><span class="comment">// File: EFM32WGxxx.dbgconf </span></div>
+<div class="line"><span class="comment">// Version: 1.0</span></div>
+<div class="line"><span class="comment">// &lt;&lt;&lt; Use Configuration Wizard in Context Menu &gt;&gt;&gt;</span></div>
+<div class="line"><span class="comment">// &lt;h&gt;Trace Pin Setup</span></div>
+<div class="line"> <span class="comment">// &lt;o&gt; TPIU Pin Location</span></div>
+<div class="line"><span class="comment">// &lt;0=&gt; Pin Location 0</span></div>
+<div class="line"><span class="comment">// &lt;1=&gt; Pin Location 1</span></div>
+<div class="line"><span class="comment">// &lt;2=&gt; Pin Location 2</span></div>
+<div class="line"><span class="comment">// &lt;3=&gt; Pin Location 3</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Select TPIU pin location for your board configuration:</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; - Pin Location 0 (TRACECLK: PD7, TRACEDATA0: PD6, TRACEDATA1: PD3, TRACEDATA2: PD4, TRACEDATA3: PD5)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; - Pin Location 1 (TRACECLK: PF8, TRACEDATA0: PF9, TRACEDATA1: PD13, TRACEDATA2: PB15, TRACEDATA3: PF3)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; - Pin Location 2 (TRACECLK: PC6, TRACEDATA0: PC7, TRACEDATA1: PD3, TRACEDATA2: PD4, TRACEDATA3: PD5)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; - Pin Location 3 (TRACECLK: PA6, TRACEDATA0: PA2, TRACEDATA1: PA3, TRACEDATA2: PA4, TRACEDATA3: PA5)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: Pin Location 0</span></div>
+<div class="line">__TPIU_pinlocation = 0;</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// &lt;o&gt; SWO Pin Location</span></div>
+<div class="line"><span class="comment">// &lt;0=&gt; Pin Location 0</span></div>
+<div class="line"><span class="comment">// &lt;1=&gt; Pin Location 1</span></div>
+<div class="line"><span class="comment">// &lt;2=&gt; Pin Location 2</span></div>
+<div class="line"><span class="comment">// &lt;3=&gt; Pin Location 3</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Select SWO pin location for your board configuration:</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; - Pin Location 0 (SWO: PF2)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; - Pin Location 1 (SWO: PC15)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; - Pin Location 2 (SWO: PD1)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; - Pin Location 3 (SWO: PD2)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: Pin Location 0</span></div>
+<div class="line">__SWO_pinlocation = 0;</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+<div class="line"><span class="comment">// &lt;&lt;&lt; end of configuration section &gt;&gt;&gt;</span></div>
+</div><!-- fragment --><p>&#160;</p>
+<p><a class="anchor" id="DebugVars"></a><b>Debug Access Variables</b></p>
+<p>Debug access variables hold 64-bit unsigned integer values and are used in debug access sequences to query debugger settings and states. They are <b>read-only</b> within a sequence except from a limited set of the <a class="el" href="pdsc_family_pg.html#PredefinedDebugVars">pre-defined debug access variables</a>. Use the <b>debugvars</b> element to specify additional user-defined debug access variables.</p>
+<p><a class="anchor" id="PredefinedDebugVars"></a><b>Table: Pre-defined Debug Access Variables</b><br/>
+ A debugger needs to support a set of pre-defined debug access variables. These are described in the following table.</p>
+<table class="cmtable" summary="ExpressionType: Pre-defined Debug Access Variables">
+<tr>
+<th>Variable </th><th>Access </th><th>Description </th><th>Value= </th></tr>
+<tr>
+<td style="white-space: nowrap"><pre>__protocol</pre> </td><td>Read-Only </td><td>Debug protocol selection and parameters for target connection. </td><td>The following bit map applies:<br/>
+<ul>
+<li>Bit 0..15: Type<ul>
+<li><span class="XML-Token">0</span>: Error<br/>
+</li>
+<li><span class="XML-Token">1</span>: JTAG<br/>
+</li>
+<li><span class="XML-Token">2</span>: Serial Wire Debug (SWD)<br/>
+</li>
+<li><span class="XML-Token">3</span>: CJTAG<br/>
+</li>
+</ul>
+</li>
+<li>Bit 16: SWJ-DP</li>
+<li>Bit 17..63: Reserved </li>
+</ul>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>__connection</pre> </td><td>Read-Only </td><td>Target connection configuration. </td><td>The following bit map applies:<br/>
+<ul>
+<li>Bit 0..7: Connection type<ul>
+<li><span class="XML-Token">0</span>: Error or target is disconnected.</li>
+<li><span class="XML-Token">1</span>: Connection for target debug.</li>
+<li><span class="XML-Token">2</span>: Connection for downloading application to flash.</li>
+</ul>
+</li>
+<li>Bit 8..15: Reset type.<ul>
+<li><span class="XML-Token">0</span>: Error.</li>
+<li><span class="XML-Token">1</span>: Hardware Reset (debugger reset line).</li>
+<li><span class="XML-Token">2</span>: System Reset Request.</li>
+<li><span class="XML-Token">3</span>: Processor Reset Request ("Vector Reset").</li>
+</ul>
+</li>
+<li>Bit 16..63: Reserved </li>
+</ul>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>__dp</pre> </td><td>Read/Write </td><td>Debug Port selected for target accesses.<br/>
+ This variable is initialized when entering a pre-defined debug access sequence because of a debug event. The initialization value is the <b>__dp</b> as defined for the used <b>debug</b> element. </td><td>Debug port ID as specified in a <b>debugport</b> element or <span class="XML-Token">0</span> if no <b>debugport</b> element exists. </td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>__ap</pre> </td><td>Read/Write </td><td>Access Port selected for target accesses.<br/>
+ This variable is initialized when entering a pre-defined debug access sequence because of a debug event. The initialization value is the <b>__ap</b> as defined for the used <b>debug</b> element. </td><td>Access Port index. </td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>__traceout</pre> </td><td>Read-Only </td><td>Activated trace outputs (sinks). Additionally holds information on the selected port width if a parallel trace port is enabled. </td><td style="white-space: nowrap">The following bit map applies:<br/>
+<ul>
+<li>Bit 0: Serial Wire Output (SWO) Trace enabled.</li>
+<li>Bit 1: Parallel Trace Port enabled.</li>
+<li>Bit 2: Trace Buffer enabled.</li>
+<li>Bit 3..15: Reserved.</li>
+<li>Bit 16..21: Selected Parallel Trace Port size.</li>
+<li>Bit 22..63: Reserved. </li>
+</ul>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>__errorcontrol</pre> </td><td>Read/Write </td><td>Control variable for debug access error handling. All of its bit fields are intialized to <span class="XML-Token">0</span> when entering a pre-defined debug access sequence because of a debug event. </td><td>The following bit map applies:<br/>
+<ul>
+<li>Bit 0: Skip errors if set to <span class="XML-Token">1</span>. A debugger must continue the sequence execution.</li>
+<li>Bit 1..63: Reserved </li>
+</ul>
+</td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_debugport"></a>
+/package/devices/family/.../debugport</h1>
+<p>Describes a CoreSight debug port of the device and its capabilities. The element can occur on various levels. Use unique ID values for the attribute <b>__dp</b> to distinguish multiple <b>debugport</b> elements in later references.<br/>
+<br/>
+ <b>debugport</b> elements are required for targets with multiple debug ports. For devices with a single debug port these elements can be omitted. If no <b>debugport</b> element exists the only allowed <b>__dp</b> ID in later references is <span class="XML-Token">0</span>.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;LPC4300 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;NXP:11&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debugconfig <span class="keywordflow">default</span>=<span class="stringliteral">&quot;jtag&quot;</span> clock=<span class="stringliteral">&quot;10000000&quot;</span> swj=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;debugport __dp=<span class="stringliteral">&quot;0&quot;</span>&gt;</div>
+<div class="line"> &lt;jtag tapindex=<span class="stringliteral">&quot;0&quot;</span>/&gt;</div>
+<div class="line"> &lt;swd/&gt;</div>
+<div class="line"> &lt;/debugport&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;debugport __dp=<span class="stringliteral">&quot;1&quot;</span>&gt;</div>
+<div class="line"> &lt;jtag tapindex=<span class="stringliteral">&quot;1&quot;</span>/&gt; </div>
+<div class="line"> &lt;/debugport&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: debugport">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>__dp </td><td>Unique ID of this <b>debugport</b>. It must be used consistently in references within the scope of the parent section. </td><td>xs:unsignedInt </td><td>required </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_dp_jtag">jtag</a> </td><td>Describe JTAG Test Access Port (TAP) properties of this debug port. </td><td>JtagType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_dp_swd">swd</a> </td><td>Describe CoreSight Serial Wire Debug Port (SW-DP) properties of this debug port. </td><td>SwdType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_dp_cjtag">cjtag</a> </td><td>Describe CJTAG Test Access Port (TAP) properties of this debug port. </td><td>CjtagType </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_dp_jtag"></a>
+/package/devices/family/.../debugport/jtag</h1>
+<p>Indicates availability of a JTAG interface for the <b>debugport</b> parent element. Its attributes allow the manual override of a debugger's automatic JTAG Test Access Port (TAP) detection.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debugconfig <span class="keywordflow">default</span>=<span class="stringliteral">&quot;swd&quot;</span> clock=<span class="stringliteral">&quot;10000000&quot;</span> swj=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;debugport __dp=<span class="stringliteral">&quot;0&quot;</span>&gt;</div>
+<div class="line"> &lt;jtag tapindex=<span class="stringliteral">&quot;0&quot;</span> idcode=<span class="stringliteral">&quot;0x4BA00477&quot;</span> irlen=<span class="stringliteral">&quot;4&quot;</span>/&gt;</div>
+<div class="line"> &lt;swd idcode=<span class="stringliteral">&quot;0x2BA01477&quot;</span>/&gt;</div>
+<div class="line"> &lt;/debugport&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: jtag">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugport">debugport</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_debugport">/package/devices/family/.../debugport</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>tapindex </td><td>Specifies the TAP index relative to the JTAG scan chain of this device. A debugger needs to determine the absolute index if the device is part of an extended scan chain. Default value is <span class="XML-Token">0</span>. </td><td>NonNegativeInteger </td><td>optional </td></tr>
+<tr>
+<td>idcode </td><td>Specifies the IDCODE of the JTAG TAP. This value overrides the IDCODE read from the target. </td><td>NonNegativeInteger </td><td><p class="starttd">optional </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>irlen </td><td>Specifies the instruction register length of the JTAG TAP. This value overrides the instruction register length detected by a debugger. </td><td>xs:unsignedInt </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_dp_swd"></a>
+/package/devices/family/.../debugport/swd</h1>
+<p>Indicates availability of an ARM Serial Wire Debug (SWD) interface for the <b>debugport</b> parent element. Its attributes allow the manual override of SWD port characteristics as read from the target and provide information for the port selection in a system with multi-drop SWD support.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debugconfig <span class="keywordflow">default</span>=<span class="stringliteral">&quot;swd&quot;</span> clock=<span class="stringliteral">&quot;10000000&quot;</span> swj=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;debugport __dp=<span class="stringliteral">&quot;0&quot;</span>&gt;</div>
+<div class="line"> &lt;jtag tapindex=<span class="stringliteral">&quot;0&quot;</span> idcode=<span class="stringliteral">&quot;0x4BA00477&quot;</span> irlen=<span class="stringliteral">&quot;4&quot;</span>/&gt;</div>
+<div class="line"> &lt;swd idcode=<span class="stringliteral">&quot;0x2BA01477&quot;</span>/&gt;</div>
+<div class="line"> &lt;/debugport&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: swd">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugport">debugport</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_debugport">/package/devices/family/.../debugport</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>idcode </td><td>Specifies the IDCODE of the SWD port. It overrides the value read from the port's IDCODE register. </td><td>NonNegativeInteger </td><td><p class="starttd">optional </p>
+<p class="endtd"></p>
+</td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_dp_cjtag"></a>
+/package/devices/family/.../debugport/cjtag</h1>
+<p>Indicates availability of a CJTAG interface for the <b>debugport</b> parent element. Its attributes allow the manual override of a debugger's automatic CJTAG Test Access Port (TAP) detection.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;STM32F4&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debugconfig <span class="keywordflow">default</span>=<span class="stringliteral">&quot;swd&quot;</span> clock=<span class="stringliteral">&quot;10000000&quot;</span> swj=<span class="stringliteral">&quot;1&quot;</span>/&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;debugport __dp=<span class="stringliteral">&quot;0&quot;</span>&gt;</div>
+<div class="line"> &lt;cjtag tapindex=<span class="stringliteral">&quot;0&quot;</span> idcode=<span class="stringliteral">&quot;0x4BA00477&quot;</span> irlen=<span class="stringliteral">&quot;4&quot;</span>/&gt;</div>
+<div class="line"> &lt;swd idcode=<span class="stringliteral">&quot;0x2BA01477&quot;</span>/&gt;</div>
+<div class="line"> &lt;/debugport&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: cjtag">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debugport">debugport</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_debugport">/package/devices/family/.../debugport</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>tapindex </td><td>Specifies the TAP index relative to the JTAG scan chain of this device. A debugger needs to determine the absolute index if the device is part of an extended scan chain. Default value is <span class="XML-Token">0</span>. </td><td>NonNegativeInteger </td><td>optional </td></tr>
+<tr>
+<td>idcode </td><td>Specifies the IDCODE of the JTAG TAP. This value overrides the IDCODE read from the target. </td><td>NonNegativeInteger </td><td>optional </td></tr>
+<tr>
+<td>irlen </td><td>Specifies the instruction register length of the JTAG TAP. This value overrides the instruction register length detected by a debugger. </td><td>xs:unsignedInt </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_sequences"></a>
+/package/devices/family/.../sequences</h1>
+<p>Container for debug access sequences for this device.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;LPC4300 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;NXP:11&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequences&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequence name=<span class="stringliteral">&quot;DebugCoreStart&quot;</span> Pname=<span class="stringliteral">&quot;Cortex-M0&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequence&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequence name=<span class="stringliteral">&quot;ResetSystem&quot;</span> Pname=<span class="stringliteral">&quot;Cortex-M4&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequence&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequence name=<span class="stringliteral">&quot;TraceStart&quot;</span> Pname=<span class="stringliteral">&quot;Cortex-M4&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequence&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequences&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="Element: sequences">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_sequence">sequence</a> </td><td>Describe a debug access sequence. </td><td>SequenceType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_sequence"></a>
+/package/devices/family/.../sequences/sequence</h1>
+<p>Describes a Debug Access Sequence which contains <b>control</b> and <b>block</b> elements. <b>block</b> elements contains statements including calls to <a class="el" href="pdsc_family_pg.html#DebugFunctions">Debug Access Functions</a>. A Debug Access Sequence overrides or extends the default functionality of a development tool. Refer to <a class="el" href="pdsc__sequence_name_enum_pg.html#usage_of_sequences">Usage of Debug Access Sequences</a> for details.<br/>
+</p>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li><b>control</b> elements can contain other <b>control</b> and <b>block</b> elements. <b>The maximum nesting of <em>control</em> elements is 10.</b></li>
+</ul>
+</dd></dl>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;Generic Family&quot;</span> Dvendor=<span class="stringliteral">&quot;Generic:5&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequences&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequence name=<span class="stringliteral">&quot;UserSequence&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;block info=<span class="stringliteral">&quot;Define variables and do debug accesses&quot;</span>&gt;</div>
+<div class="line"> __var tpWidth = (__traceout &amp;amp; 0x003F0000) &gt;&gt; 16;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;control <span class="keywordflow">if</span>=<span class="stringliteral">&quot;__traceout &amp;amp; 0x2&quot;</span> info=<span class="stringliteral">&quot;Parallel Trace Port enabled&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;block&gt;</div>
+<div class="line"> <span class="comment">// Do something generic for parallel trace port trace</span></div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;control <span class="keywordflow">if</span>=<span class="stringliteral">&quot;tpWidth == 1&quot;</span> info=<span class="stringliteral">&quot;Configure device for 1-bit TPIU trace.&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;block&gt;</div>
+<div class="line"> <span class="comment">// Do debug accesses</span></div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;/control&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;control <span class="keywordflow">if</span>=<span class="stringliteral">&quot;tpWidth == 2&quot;</span> info=<span class="stringliteral">&quot;Configure device for 2-bit TPIU trace.&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;block&gt;</div>
+<div class="line"> <span class="comment">// Do debug accesses</span></div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;/control&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;control <span class="keywordflow">if</span>=<span class="stringliteral">&quot;tpWidth == 4&quot;</span> info=<span class="stringliteral">&quot;Configure device for 4-bit TPIU trace.&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;block&gt;</div>
+<div class="line"> <span class="comment">// Do debug accesses</span></div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;/control&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;/control&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequence&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequences&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: sequence">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_sequences">sequences</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_sequences">/package/devices/family/.../sequences</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>name </td><td>Name of the Debug Access Sequence:<br/>
+<ul>
+<li>Pre-defined names are executed by the development tool described under <a class="el" href="pdsc__sequence_name_enum_pg.html#usage_of_sequences">Usage of Debug Access Sequences</a>.</li>
+<li>Any Debug Access Sequence can be executed the <a class="el" href="pdsc_family_pg.html#DebugFunctions">debug access function</a> <b>Sequence</b>. </li>
+</ul>
+</td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>Pname </td><td>Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set for this <b>sequence</b> element, a debugger executes the debug access sequence only for a debug connection to the referenced processor. Otherwise, it is executed for all processors. <b>This attribute must be set if defining multiple implementations of the same debug access sequence.</b> Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<td>disable </td><td>Disables execution of the <a class="el" href="pdsc__sequence_name_enum_pg.html#default_sequences">Default Debug Access Sequence</a>. </td><td>xs:boolean </td><td>optional </td></tr>
+<tr>
+<td>info </td><td>Descriptive text to display for example for error diagnostics. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_seq_control">control</a> </td><td>Describe a debug access sequence flow control element. </td><td>SequenceControlType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_seq_block">block</a> </td><td>Describe a block of debug accesses. </td><td>SequenceBlockType </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="sequences_names"></a><b>Table: Pre-defined Debug Access Sequences</b></p>
+<p>The following table list the Pre-defined Debug Access Sequences. For sequences that are not specified in a <b>sequence</b> element <a class="el" href="pdsc__sequence_name_enum_pg.html#default_sequences">Default Debug Access Sequences</a> are executed. Refer to <a class="el" href="pdsc__sequence_name_enum_pg.html#usage_of_sequences">Usage of Debug Access Sequences</a> Usage for more information about the execution of these sequences.</p>
+<table class="cmtable" summary="Enumeration: SequenceNameEnum">
+<tr>
+<th>name= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugPortSetup">DebugPortSetup</a> </td><td>Prepare the target debug port for connection; is executed before acquiring access to the debug port.<br/>
+ May include for example an SWJ-DP switch sequence as defined in the ARM Debug Interface (ADI) Architecture Specification.<br/>
+ <b>This sequence must not contain debug port/access port register and target memory accesses other than:</b><ul>
+<li><b>Reading the <em>DPIDR</em> debug port register to release an SWD connection from its line reset.</b></li>
+<li><b>Writing the <em>TARGETSEL</em> debug port register (SWD protocol v2).</b> </li>
+</ul>
+</td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugPortStart">DebugPortStart</a> </td><td>Connect to the target debug port and power it up; is executed after DebugPortSetup.<br/>
+ The parent <b>debugport</b> is default debug port for this sequence.<br/>
+ <b>This sequence must not contain access port register and target memory accesses.</b> </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugPortStop">DebugPortStop</a> </td><td>Power down and disconnect from target debug port.<br/>
+ Executed as last step during target disconnect unless another debugger connection to this port is active. The parent <b>debugport</b> is default debug port for this sequence.<br/>
+ <b>This sequence must not contain access port register and target memory accesses.</b> </td></tr>
+<tr>
+<td class="XML-Token">DebugDeviceUnlock </td><td>Check if the device is in a locked state and unlock it. Use <b>query</b> command elements for user confirmation.<br/>
+ Executed after having powered up the debug port. </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugCoreStart">DebugCoreStart</a> </td><td>Initialize core debug system.<br/>
+ Executed after having connected and powered up the default debug port for the connection. </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#DebugCoreStop">DebugCoreStop</a> </td><td>Uninitialize core debug system.<br/>
+ Executed as last step during disconnect before powering down any debug ports no longer required for concurrent connections. </td></tr>
+<tr>
+<td class="XML-Token">DebugCodeMemRemap </td><td>Remap memory to execution location.<br/>
+ Executed before verifying memory content after flash programming. This is required to replicate a memory remap of a device bootloader (that is not executed during debug connection). </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetSystem">ResetSystem</a> </td><td>Execute a system-wide reset via software mechanisms. </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetProcessor">ResetProcessor</a> </td><td>Execute a processor reset via software mechanisms. </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetHardware">ResetHardware</a> </td><td>Execute a system-wide reset via the dedicated debugger reset line, e.g. nRST. </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetHardwareAssert">ResetHardwareAssert</a> </td><td>Assert a system-wide reset via the dedicated debugger reset line, e.g. nRST. </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetHardwareDeassert">ResetHardwareDeassert</a> </td><td>Deassert a system-wide reset via the dedicated debugger reset line, e.g. nRST. </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetCatchSet">ResetCatchSet</a> </td><td>Executed before a target reset to configure the vector catch to stop code execution after the reset.<br/>
+ The implementation of <b>ResetCatchSet</b> requires an implementation of <b>ResetCatchClear</b> to free any hardware resources used for stopping the core. </td></tr>
+<tr>
+<td class="XML-Token"><a class="el" href="pdsc__sequence_name_enum_pg.html#ResetCatchClear">ResetCatchClear</a> </td><td>Executed after a target reset to free hardware resources allocated by <b>ResetCatchSet</b>. </td></tr>
+<tr>
+<td class="XML-Token">FlashEraseDone </td><td>Executed after erasing flash memory. </td></tr>
+<tr>
+<td class="XML-Token">FlashProgramDone </td><td>Eexecuted after programming flash memory. </td></tr>
+<tr>
+<td class="XML-Token">TraceStart </td><td>Enable target trace capture.<br/>
+ Executed before the debugger powers up and configures standard CoreSight trace components, e.g. after the initial target connection as well as after a system-wide reset. </td></tr>
+<tr>
+<td class="XML-Token">TraceStop </td><td>Disable target trace capture.<br/>
+ Executed after the debugger disabled and powered down standard CoreSight trace components. </td></tr>
+<tr>
+<td class="XML-Token">RecoverySupportStart </td><td>Executed before step or run command to support recovery from a lost target connection, e.g. after a low power mode. </td></tr>
+<tr>
+<td class="XML-Token">RecoverySupportStop </td><td>Executed after step or run command in context of the <b>RecoverySupportStart</b> sequence. </td></tr>
+<tr>
+<td class="XML-Token">RecoveryAcknowledge </td><td>Debugger acknowledge after recovering from a lost target connection. Can be executed independently from a <b>RecoverySupportStart</b> sequence. </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_seq_control"></a>
+/package/devices/family/.../sequences/sequence/control</h1>
+<p>Describes flow control like <b>if</b> and <b>while</b> blocks for debug access sequences.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;Generic Family&quot;</span> Dvendor=<span class="stringliteral">&quot;Generic:5&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequences&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequence name=<span class="stringliteral">&quot;UserSequence&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;block info=<span class="stringliteral">&quot;Define variables and do debug accesses&quot;</span>&gt;</div>
+<div class="line"> __var doIfBlock = 1;</div>
+<div class="line"> __var whileCondition = 1;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;control <span class="keywordflow">if</span>=<span class="stringliteral">&quot;doIfBlock&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;block&gt;</div>
+<div class="line"> <span class="comment">// Do debug accesses</span></div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;/control&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;control <span class="keywordflow">while</span>=<span class="stringliteral">&quot;whileCondition&quot;</span> timeout=<span class="stringliteral">&quot;5000&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;block&gt;</div>
+<div class="line"> <span class="comment">// Execute while &quot;whileCondition&quot; different from &#39;0&#39; with a timeout of 5ms</span></div>
+<div class="line"> whileCondition = 0;</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;/control&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequence&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequences&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: control">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_sequence">sequence</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_sequence">/package/devices/family/.../sequences/sequence</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_seq_control">control</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_seq_control">/package/devices/family/.../sequences/sequence/control</a> </td></tr>
+<tr>
+<th>Attribute </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>if </td><td>Expression describing the condition under which to execute this sequence block. The block is skipped if the condition resolved to <span class="XML-Token">false</span>. Defaults to <span class="XML-Token">true</span> if not set. Refer to <a class="el" href="pdsc_family_pg.html#ExpressionType">Expression Rules</a> for the syntax. </td><td>ExpressionType </td><td>optional </td></tr>
+<tr>
+<td>while </td><td>Expression describing a while-condition. The execution of the block contents is repeated while the condition resolves to <span class="XML-Token">true</span>, or until an optional <b>timeout</b> is reached. Refer to <a class="el" href="pdsc_family_pg.html#ExpressionType">Expression Rules</a> for the syntax. </td><td>ExpressionType </td><td>optional </td></tr>
+<tr>
+<td>timeout </td><td>Timeout in microseconds for a <b>block</b> with a <b>while</b> condition. A debugger must extend the timeout to the closest possible time granularity. If the timeout is reached, the current iteration including a last evaluation of the <b>while</b> condition must finish. A value of <span class="XML-Token">0</span> disables the timeout.<br/>
+ This attribute defaults to <span class="XML-Token">0</span>. </td><td>xs:unsignedInt </td><td>optional </td></tr>
+<tr>
+<td>info </td><td>Descriptive text to display for example for error diagnostics. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_seq_control">control</a> </td><td>Describe a debug access sequence flow control element. </td><td>SequenceControlType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_seq_block">block</a> </td><td>Describe a block of debug accesses. </td><td>SequenceBlockType </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_seq_block"></a>
+/package/devices/family/.../sequences/sequence/block</h1>
+<p>Describes a block of debug accesses. See <a class="el" href="pdsc_family_pg.html#DebugSyntaxRules">Debug Access Syntax Rules</a> for details on the allowed syntax of the block contents.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;Generic Family&quot;</span> Dvendor=<span class="stringliteral">&quot;Generic:5&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequences&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sequence name=<span class="stringliteral">&quot;UserSequence&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;block info=<span class="stringliteral">&quot;Define condition variales for later use in block elements.&quot;</span>&gt;</div>
+<div class="line"> <span class="comment">// Variable definition by __var keyword</span></div>
+<div class="line"> __var doIfBlock = 1;</div>
+<div class="line"> __var whileCondition = 1;</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequence&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/sequences&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: block">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_sequence">sequence</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_sequence">/package/devices/family/.../sequences/sequence</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_seq_control">control</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_seq_control">/package/devices/family/.../sequences/sequence/control</a> </td></tr>
+<tr>
+<th>Attribute </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>atomic </td><td>Instruct the debugger to execute the block contents atomically; a debugger needs to download and buffer all debug accesses to the debug probe and finish the execution without further communication to the host PC. If a debugger cannot support an atomic block it must abort the execution of the debug access sequence.<br/>
+ </td><td>xs:boolean </td><td>optional </td></tr>
+<tr>
+<td>info </td><td>Descriptive text to display for example for error diagnostics. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p><b>Atomic Blocks:</b></p>
+<ul>
+<li>Do not use debug access results for subsequent accesses in the same atomic block.</li>
+<li>Support for atomic blocks is highly debugger dependent. Keep them as short and simple as possible to address a wide range of debuggers.</li>
+<li><b>Query</b> and <b>Sequence</b> debug access functions must not be used in an atomic block.</li>
+</ul>
+<p>&#160;</p>
+<p><a class="anchor" id="DebugSyntaxRules"></a><b>Debug Access Syntax Rules</b></p>
+<p>Debug accesses are described in <b>block</b> elements of a debug access sequence (<b>sequence</b> element). The following syntax is used for this purpose:</p>
+<ul>
+<li>The contents of a <b>block</b> element is a series of statements.</li>
+<li>Each statement must begin in a new line and is terminated by a <span class="XML-Token">;</span> character.</li>
+<li>A typical statement consists of variable, followed by a <span class="XML-Token">=</span> character and an expression, where the <span class="XML-Token">=</span> character is an assignment of the <a class="el" href="pdsc_family_pg.html#ExpressionType">expression</a> result to the variable: <div class="fragment"><div class="line">variable = expression;</div>
+</div><!-- fragment --></li>
+<li>Alternatively, a statement can be a sole <a class="el" href="pdsc_family_pg.html#ExpressionType">expression</a> without storing its result to a variable. <div class="fragment"><div class="line">expression;</div>
+</div><!-- fragment --></li>
+<li>Comments begin with two slashes (<span class="XML-Token">//</span>) and end with a linebreak: <div class="fragment"><div class="line"><span class="comment">// Whole line is a comment</span></div>
+<div class="line">variable = expression; <span class="comment">// Comment appended to statement</span></div>
+</div><!-- fragment --></li>
+<li>Variables must be defined using the keyword <span class="XML-Token">__var</span>. The definition must include an initalization of the variable: <div class="fragment"><div class="line">__var variable = 0;</div>
+</div><!-- fragment --></li>
+<li>Variables can be defined only once within a scope. Scopes beging with entering a debug access sequence or a <b>control</b> element. They are extended to child <b>control</b> elements. Variables of a parent scope can be modified. Leaving a scope destroys all variables defined in it.<br/>
+ <b><em>block</em> elements do not begin a new scope.</b> <div class="fragment"><div class="line">&lt;sequence name=<span class="stringliteral">&quot;MySequence&quot;</span>&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;block info=<span class="stringliteral">&quot;Block 1&quot;</span>&gt;</div>
+<div class="line"> __var condvar = 1;</div>
+<div class="line"> __var myvar1 = 5;</div>
+<div class="line"> __var myvar2 = 0;</div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;control <span class="keywordflow">if</span>=<span class="stringliteral">&quot;condvar&quot;</span>&gt;</div>
+<div class="line"> &lt;block&gt;</div>
+<div class="line"> <span class="comment">// __var myvar1 = 2; // Redefinition, not allowed!</span></div>
+<div class="line"> __var myvar3 = 2;</div>
+<div class="line"> myvar2 = myvar1 + myvar3; <span class="comment">// Assign value (5+2) = 7</span></div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> &lt;/control&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;block info=<span class="stringliteral">&quot;Block 2&quot;</span>&gt;</div>
+<div class="line"> myvar1 = myvar2 + 1; <span class="comment">// Variable myvar1 holds the value &#39;8&#39; after this statement</span></div>
+<div class="line"> <span class="comment">// myvar2 = myvar3; // myvar3 does not exist in this scope, not allowed!</span></div>
+<div class="line"> &lt;/block&gt;</div>
+<div class="line"> </div>
+<div class="line">&lt;/sequence&gt;</div>
+</div><!-- fragment --></li>
+<li>The debug access variables <b>__dp</b>, <b>__ap</b>, and <b>__errorcontrol</b> can be modified within a debug access sequence. An assigned value is held until leaving the sequence. Calling another sequence by the <b>Sequence</b> debug access function will push their values on a sequence execution stack. The values are restored when returning from such a call.</li>
+</ul>
+<p><a class="anchor" id="ExpressionType"></a><b>Expression Rules</b></p>
+<p>Expressions are used in various places to describe one of the following:</p>
+<ul>
+<li>A value as assigned in a <a class="el" href="pdsc_family_pg.html#DebugSyntaxRules">debug access statement</a>.</li>
+<li>A condition to use in the <b>if</b> attribute of a <b>control</b> element.</li>
+<li>A condition to use in the <b>while</b> attribute of a <b>control</b> element.</li>
+<li>A parameter to a debug access function as described below.</li>
+</ul>
+<p>An expression may consist of the following:</p>
+<ul>
+<li>Constant numbers in decimal and hexadecimal representation (prefix <span class="XML-Token">0x</span>).</li>
+<li>Arithmetic operators such as <span class="XML-Token">+</span>, <span class="XML-Token">-</span>, <span class="XML-Token">*</span>, <span class="XML-Token">/</span>, and <span class="XML-Token">%</span>.</li>
+<li>Bit-arithmetic operators such as <span class="XML-Token">&amp;</span>, <span class="XML-Token">|</span>, <span class="XML-Token">~</span>, <span class="XML-Token">^</span>, <span class="XML-Token">&gt;&gt;</span>, and <span class="XML-Token">&lt;&lt;</span>.</li>
+<li>Comparison-operators such as <span class="XML-Token">==</span>, <span class="XML-Token">!=</span>, <span class="XML-Token">&lt;</span>, <span class="XML-Token">&gt;</span>, <span class="XML-Token">&lt;=</span>, and <span class="XML-Token">&gt;=</span>.</li>
+<li>Logic operators such as <span class="XML-Token">!</span>, <span class="XML-Token">&amp;&amp;</span>, <span class="XML-Token">||</span>, and <span class="XML-Token">==</span>.</li>
+<li>Conditional expression operations like: <div class="fragment"><div class="line">(x &lt; y) ? a : b </div>
+</div><!-- fragment --></li>
+<li>Precedence of sub-expressions is indicated by brackets (<span class="XML-Token">(</span>, <span class="XML-Token">)</span>). C-like precedence applies if brackets are omitted.</li>
+<li>References to <a class="el" href="pdsc_family_pg.html#DebugVars">debug access variables</a> for evaluating debug settings.</li>
+<li>Calls to <a class="el" href="pdsc_family_pg.html#DebugFunctions">debug access functions</a>.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>All values used in expressions resolve to 64-bit unsigned integer values.</li>
+<li>All logic-operations and comparisons resolve to the value <span class="XML-Token">1</span> if true, to <span class="XML-Token">0</span> otherwise.</li>
+<li>XML prohibits the use of the characters <span class="XML-Token">&amp;</span>, <span class="XML-Token">&lt;</span>, and <span class="XML-Token">&gt;</span>. Use the corresponding XML entity names instead: <span class="XML-Token">&amp;amp;</span>, <span class="XML-Token">&amp;lt;</span>, and <span class="XML-Token">&amp;gt;</span>.</li>
+</ul>
+</dd></dl>
+<p>&#160;</p>
+<p><a class="anchor" id="DebugFunctions"></a><b>Table: Debug Access Functions</b></p>
+<p>Debug access functions can be called in expressions in order to interact with the target device and the user. Parameters to functions can again be expressions.<br/>
+ By default, a debugger must abort the execution of a debug access sequence if a function call fails. However, this behavior can be controlled from a sequence by the <b>__errorcontrol</b> <a class="el" href="pdsc_family_pg.html#DebugVars">debug access variable</a>.<br/>
+ <br/>
+ The following table describes the existing debug access functions, their parameters and the debug access variables which are evaluated for the function call.</p>
+<table class="cmtable" summary="ExpressionType: debug access functions">
+<tr>
+<th>Function </th><th>Description </th></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Sequence("name")</pre> </td><td><p class="starttd">Execute a debug access sequence. Calling a sequence by this function causes the modifiable debug access variables <b>__dp</b>, <b>__ap</b>, and <b>__errorcontrol</b> to be pushed on a sequence execution stack. Returning from such a call will restore the state of these variables.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>name: Name of the sequence to execute. It must be enclosed by quotes.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Read8(addr)</pre> </td><td><p class="starttd">Read an 8-bit value from target memory. <b>A device must support native 8-bit memory accesses for this function to succeed.</b><br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to read from.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ The 8-bit value as read from target memory. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Read16(addr)</pre> </td><td><p class="starttd">Read an 16-bit value from target memory. <b>A device must support native 16-bit memory accesses for this function to succeed.</b><br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to read from.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ The 16-bit value as read from target memory. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Read32(addr)</pre> </td><td><p class="starttd">Read an 32-bit value from target memory. <b>A device must support native 32-bit memory accesses for this function to succeed.</b><br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to read from.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ The 32-bit value as read from target memory. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Read64(addr)</pre> </td><td><p class="starttd">Read an 64-bit value from target memory. <b>A device must support native 64-bit memory accesses for this function to succeed.</b><br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to read from.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ The 64-bit value as read from target memory. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>ReadAP(addr)</pre> </td><td><p class="starttd">Read a 32-bit value from an access port register.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: AP register address to read from. Addresses larger than <span class="XML-Token">0xF</span> automatically cause an AP register bank switch.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ The 32-bit value as read from the AP register. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>ReadDP(addr)</pre> </td><td><p class="starttd">Read a 32-bit value from a debug port register.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: DP register address to read from.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ The 32-bit value as read from the DP register. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Write8(addr, val)</pre> </td><td><p class="starttd">Write an 8-bit value to target memory. <b>A device must support native 8-bit memory accesses for this function to succeed.</b><br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to write to.</li>
+<li>val: Value to write.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Write16(addr, val)</pre> </td><td><p class="starttd">Write a 16-bit value to target memory. <b>A device must support native 16-bit memory accesses for this function to succeed.</b><br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to write to.</li>
+<li>val: Value to write.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Write32(addr, val)</pre> </td><td><p class="starttd">Write a 32-bit value to target memory. <b>A device must support native 32-bit memory accesses for this function to succeed.</b><br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to write to.</li>
+<li>val: Value to write.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Write64(addr, val)</pre> </td><td><p class="starttd">Write a 64-bit value to target memory. <b>A device must support native 64-bit memory accesses for this function to succeed.</b><br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to write to.</li>
+<li>val: Value to write.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>WriteAP(addr, val)</pre> </td><td><p class="starttd">Write a 32-bit value to an access port register. Addresses larger than 0xF automatically cause an AP register bank switch.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to write to.</li>
+<li>val: Value to write.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+<li>__ap: The access port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>WriteDP(addr, val)</pre> </td><td><p class="starttd">Write a 32-bit value to a debug port register.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>addr: Memory address to write to.</li>
+<li>val: Value to write.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>DAP_Delay(delay)</pre> </td><td><p class="starttd">Debug probe command to wait for a specific delay.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>delay: Wait time in microseconds.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>DAP_WriteABORT(value)</pre> </td><td><p class="starttd">Debug probe command to write an abort request to the CoreSight ABORT register of the target debug port.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>value: 32-bit value to write into the CoreSight ABORT register.</li>
+</ul>
+<p><b>Debug Access Variables:</b><br/>
+</p>
+<ul>
+<li>__dp: The debug port to use for this memory access.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>DAP_SWJ_Pins(pinout, pinselect, pinwait)</pre> </td><td><p class="starttd">Debug proble command to monitor and control the I/O Pins including the nRESET device reset line.<br/>
+ <b>I/O Pin Mapping</b> for <b>pinout</b>, <b>pinselect</b>, and <b>pinwait</b>:</p>
+<ul>
+<li>Bit 0: SWCLK/TCK</li>
+<li>Bit 1: SWDIO/TMS</li>
+<li>Bit 2: TDI</li>
+<li>Bit 3: TDO</li>
+<li>Bit 5: nTRST</li>
+<li>Bit 7: nRESET</li>
+</ul>
+<p><br/>
+ The <b>pinwait</b> time is useful in systems where the nRESET pin is implemented as open-drain output. After nRESET is de-asserted by the debugger, external circuit may still hold the target Device under reset for a time. Using the <b>pinwait</b> time, the debugger may monitor selected I/O Pins and wait until they the expected value appears or a timeout expires.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>pinout: Value for selected output pins.</li>
+<li>pinselect: Selects which output pins will be modified.</li>
+<li>pinwait: Wait timeout for the selected output to stabilize. A debugger must extend this timeout to the closest possible time granularity.<ul>
+<li>0 = no wait</li>
+<li>1 .. 3000000 = time in microseconds (max 3s)</li>
+</ul>
+</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ The state of the I/O Pins at the end of this operation. If a debugger is not capable of monitoring the I/O Pins, it must return a value of <span class="XML-Token">0xFFFFFFFF</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>DAP_SWJ_Clock(val)</pre> </td><td><p class="starttd">Debug probe command to set the clock frequency for JTAG and SWD communication mode.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>val: Maximum SWD/JTAG Clock (SWCLK/TCK) value in Hz.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>DAP_SWJ_Sequence(cnt, val)</pre> </td><td><p class="starttd">Debug probe command to generate required SWJ sequences, e.g. for SWD/JTAG Reset, SWD&lt;-&gt;JTAG switch and Dormant operation.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>cnt: Number of bits in sequence: 1..64. Larger sequences need to be implemented by multiple subsequent <b>DAP_SWJ_Sequence</b> calls. Such a sequence of <b>DAP_SWJ_Sequence</b> commands must be encapsulated in an atomic <b>block</b> to ensure correct execution.</li>
+<li>val: Sequence generated on SWDIO/TMS (with clock @SWCLK/TCK), LSB transmitted first.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Always returns <span class="XML-Token">0</span>. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>DAP_JTAG_Sequence(cnt, tms, tdi)</pre> </td><td><p class="starttd">Debug probe command to generate a JTAG sequence with fixed TMS value and capture TDO.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>cnt: Length of the JTAG sequence (number of TCK cycles and TDI bits): 1..64</li>
+<li>tms: Fixed TMS value: 0..1</li>
+<li>tdi: Data generated on TDI with one bit per TCK cycle, LSB transmitted first.</li>
+</ul>
+<p class="endtd"><b>Return Value:</b><br/>
+ Data captured from TDO with one bit per TCK cycle, LSB captured first and padded with <span class="XML-Token">0</span>s. </p>
+</td></tr>
+<tr>
+<td style="white-space: nowrap"><pre>Query(type, "message", default)</pre> </td><td><p class="starttd">Query user input. The sequence execution stalls depending on the used <b>type</b>. If the debugger runs in a batch mode, this function returns the value <b>default</b>.<br/>
+ <br/>
+ <b>Parameters:</b><br/>
+</p>
+<ul>
+<li>type: Query type. Can be one of:<ul>
+<li><span class="XML-Token">0</span> : <b>Query_Ok</b>, displays an informative message which has to be confirmed by the user. This type allows the result <b>OK</b>.</li>
+<li><span class="XML-Token">1</span> : <b>Query_YesNo</b>, displays a query with the allowed results <b>Yes</b> and <b>No</b>.</li>
+<li><span class="XML-Token">2</span> : <b>Query_YesNoCancel</b>, displays a query with the allowed results <b>Yes</b>, <b>No</b>, and <b>Cancel</b>.</li>
+<li><span class="XML-Token">3</span> : <b>Query_OkCancel</b>, displays a query with the allowed results <b>OK</b> and <b>Cancel</b>.</li>
+</ul>
+</li>
+<li>message: A constant string with the query message to display. It must not be an expression and it must be enclosed by quotes.</li>
+<li>default: The default value to return if the debugger runs in batch mode. See <b>Return Values</b> for a list of allowed values.</li>
+</ul>
+<p><b>Return Value:</b><br/>
+ The result of the query. The user input maps to the following numbers:</p>
+<ul>
+<li>Error : <span class="XML-Token">0</span></li>
+<li>OK : <span class="XML-Token">1</span></li>
+<li>Cancel : <span class="XML-Token">2</span></li>
+<li>Yes : <span class="XML-Token">3</span></li>
+<li>No : <span class="XML-Token">4</span></li>
+</ul>
+<p class="endtd"></p>
+</td></tr>
+</table>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>Target memory access functions must perform a debug access of the size indicated by their name. The target system must support debug accesses of this size.</li>
+<li>Results of all functions are casted to 64-bit unsigned integer values.</li>
+<li>Some target access functions determine the used debug and access port by the current values of the <b>__dp</b> and <b>__ap</b> debug access variables. If a target access requires a different debug or access port than the default ones, it must change these values. This change is held until finishing the sequence the change has occurred in.</li>
+</ul>
+</dd></dl>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_debug"></a>
+/package/devices/family/.../debug</h1>
+<p>Describes configuration settings, default values, and patches for data accesses for a debug connection. Multiple <b>debug</b> elements can be defined which are either specific to a processor identified by attribute <b>Pname</b>, or which apply to all connections.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;LPC4300 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;NXP:11&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debug Pname=<span class="stringliteral">&quot;Cortex-M4&quot;</span> __dp=<span class="stringliteral">&quot;0&quot;</span> __ap=<span class="stringliteral">&quot;0&quot;</span> svd=<span class="stringliteral">&quot;SVD/LPC43xx.svd&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/debug&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debug Pname=<span class="stringliteral">&quot;Cortex-M0&quot;</span> __dp=<span class="stringliteral">&quot;1&quot;</span> __ap=<span class="stringliteral">&quot;0&quot;</span> svd=<span class="stringliteral">&quot;SVD/LPC43xx.svd&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/debug&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: debug">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Pname </td><td>Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set this <b>debug</b> element's settings and data patches only apply for target connections to the referenced processor. Otherwise, they apply for all processors. <b>This attribute must be set if defining multiple <em>debug</em> elements within the same section.</b> Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<td>__dp </td><td>Default debug port ID to use for target accesses in this debug connection. The allowed values are defined in <b>debugport</b> elements for this device. If no <b>debugport</b> element exists, the only allowed value is <span class="XML-Token">0</span>.<br/>
+ The debug access variable <b>__dp</b> is initialized to this value when entering a pre-defined debug access sequence because of a debug event.<br/>
+ This attribute defaults to <span class="XML-Token">0</span> if not set. </td><td>xs:unsignedInt </td><td>optional </td></tr>
+<tr>
+<td>__ap </td><td>Default access port index to use for target accesses in this debug connection.<br/>
+ The debug access variable <b>__ap</b> is initialized to this value when entering a pre-defined debug access sequence because of a debug event.<br/>
+ This attribute defaults to <span class="XML-Token">0</span> if not set. </td><td>xs:unsignedInt </td><td>optional </td></tr>
+<tr>
+<td>svd </td><td>The system viewer description (*.SVD) file to load for this debug connection. The file path is relative to the package base folder. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_dbg_datapatch">datapatch</a> </td><td>Define a patch to apply for data reads in this debug connection. </td><td>DataPatchType </td><td><p class="starttd">0..* </p>
+<p class="endtd"></p>
+</td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_dbg_datapatch"></a>
+/package/devices/family/.../debug/datapatch</h1>
+<p>Describes a patch a debugger shall apply when reading data from the device.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;LPC800 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;NXP:11&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;debug svd=<span class="stringliteral">&quot;SVD\LPC800.svd&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;datapatch type=<span class="stringliteral">&quot;Mem&quot;</span> __ap=<span class="stringliteral">&quot;0&quot;</span> address=<span class="stringliteral">&quot;0x1400000C&quot;</span> value=<span class="stringliteral">&quot;0x10000000&quot;</span> mask=<span class="stringliteral">&quot;0xFFFFFFFF&quot;</span> info=<span class="stringliteral">&quot;Patch MTB BASE register&quot;</span>/&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/debug&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: datapatch">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_debug">debug</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_debug">/package/devices/family/.../debug</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>type </td><td>The type of data access to patch. Predefined tokens must be used as defined in <a class="el" href="pdsc_family_pg.html#DataPatchAccessTypeEnum">Table: Data Patch Access Type</a>. This attribute defaults to <span class="XML-Token">Mem</span> if not set. </td><td>DataPatchAccessTypeEnum </td><td>optional </td></tr>
+<tr>
+<td>__dp </td><td>The debug port ID to apply the patch for. The allowed values are defined by the <b>__dp</b> attribute of <b>debugport</b> elements for this device. If no debugport element exists, the only allowed value is 0. If this attribute is not set, the debug port ID for the data patch is set to the default <b>__dp</b> of this <b>debug</b> section. </td><td>xs:unsignedInt </td><td>optional </td></tr>
+<tr>
+<td>__ap </td><td>The CoreSight access port index to apply the patch for. If this attribute is not set, the access port index for the data patch is set to the default <b>__ap</b> of this <b>debug</b> section. </td><td>xs:unsignedInt </td><td>optional </td></tr>
+<tr>
+<td>address </td><td>The address for which to apply the patch. </td><td>NonNegativeInteger </td><td>required </td></tr>
+<tr>
+<td>value </td><td>The value with which the debugger patches the data access. <b>value</b> is specified in little-endian format. </td><td>NonNegativeInteger </td><td>required </td></tr>
+<tr>
+<td>mask </td><td>The bits of the data access to patch. The mask value is specified in little-endian format. </td><td>NonNegativeInteger </td><td>optional </td></tr>
+<tr>
+<td>info </td><td>Descriptive text to display for example for error diagnostics. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="DataPatchAccessTypeEnum"></a><b>Table: Data Patch Access Type</b></p>
+<p>The table lists the allowed values for data patch access types. </p>
+<table class="cmtable" summary="Enumeration: DataPatchAccessTypeEnum">
+<tr>
+<th>type= </th><th>Description </th></tr>
+<tr>
+<td class="XML-Token">DP </td><td>CoreSight Debug Port register access.<br/>
+ <b>Note:</b> This type refers to accesses via the <b>DPACC</b> instruction for <b>CoreSight JTAG-DPs</b>. Please refer to the corresponding documentation for differences in the register interface between JTAG and Serial Wire debug ports. </td></tr>
+<tr>
+<td class="XML-Token">AP </td><td>CoreSight Access Port register access. </td></tr>
+<tr>
+<td class="XML-Token">Mem </td><td>Memory access. </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_trace"></a>
+/package/devices/family/.../trace</h1>
+<p>Describes device capabilities and possible configuration settings for capturing trace. Multiple <b>trace</b> elements can be defined which are either specific to a processor identified by attribute <b>Pname</b>, or which apply to all connections.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;LPC4300 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;NXP:11&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;trace Pname=<span class="stringliteral">&quot;Cortex-M4&quot;</span>&gt;</div>
+<div class="line"> &lt;serialwire/&gt;</div>
+<div class="line"> &lt;traceport width=<span class="stringliteral">&quot;0x0000000B&quot;</span>/&gt; &lt;!-- support <span class="keywordflow">for</span> port widths 1, 2, and 4 --&gt;</div>
+<div class="line"> &lt;tracebuffer start=<span class="stringliteral">&quot;0x2000C000&quot;</span> size=<span class="stringliteral">&quot;0x4000&quot;</span>/&gt;</div>
+<div class="line"> &lt;/trace&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;trace Pname=<span class="stringliteral">&quot;Cortex-M0&quot;</span>&gt;</div>
+<div class="line"> &lt;!-- Empty trace section <span class="keywordflow">for</span> Cortex-M0, no trace capabilities --&gt;</div>
+<div class="line"> &lt;/trace&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: trace">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_family">family</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_family">/package/devices/family</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_subFamily">subFamily</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_subFamily">/package/devices/family/subFamily</a> </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Pname </td><td>Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set this <b>trace</b> section only applies for target connections to the referenced processor. Otherwise, it applies for all processors. <b>This attribute must be set if defining multiple <em>trace</em> elements within the same section.</b> Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td><td>RestrictedString </td><td>optional </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_trace_serialwire">serialwire</a> </td><td>Describe the serial wire trace output capabilities of the processor. </td><td>SerialWireType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_trace_traceport">traceport</a> </td><td>Describe the parallel trace port output capabilities of the processor. </td><td>TracePortType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_trace_tracebuffer">tracebuffer</a> </td><td>Describe the on-device trace buffer capabilities of the processor. </td><td>TraceBufferType </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_trace_serialwire"></a>
+/package/devices/family/.../trace/serialwire</h1>
+<p>Indicates serial wire trace output capabilities of the specified processor.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;LPC4300 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;NXP:11&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;trace Pname=<span class="stringliteral">&quot;Cortex-M4&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;serialwire/&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/trace&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: serialwire">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_trace">trace</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_trace">/package/devices/family/.../trace</a> </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_trace_traceport"></a>
+/package/devices/family/.../trace/traceport</h1>
+<p>Indicates parallel trace port output capabilities of the specified processor. This element describes possible configuration settings for capturing trace.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;LPC4300 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;NXP:11&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;trace Pname=<span class="stringliteral">&quot;Cortex-M4&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;traceport width=<span class="stringliteral">&quot;0x0000000B&quot;</span>/&gt; &lt;!-- support <span class="keywordflow">for</span> port widths 1, 2, and 4 --&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/trace&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: traceport">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_trace">trace</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_trace">/package/devices/family/.../trace</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>width </td><td>Parallel trace port widths supported for the processor connection (see table below). </td><td>NonNegativeInteger </td><td>optional </td></tr>
+</table>
+<p>The attribute <b>width</b> specifies the available trace port width that is supported by the device. Each bit of this value represents an available trace port size. If bit <span class="XML-Token">n</span> is set a trace port width of <span class="XML-Token">n+1</span> is supported. The value <b>width=0x00008088</b> (as shown in the table) indicates that three port sizes (16-bit, 8-bit, and 4-bit) are supported by the device.</p>
+<table class="cmtable" summary="Element: traceportwidth">
+<tr>
+<th>Bit </th><th>31 </th><th>30 </th><th>29 </th><th>28 </th><th>27 </th><th>26 </th><th>25 </th><th>24 </th><th>23 </th><th>22 </th><th>21 </th><th>20 </th><th>19 </th><th>18 </th><th>17 </th><th>16 </th><th>15 </th><th>14 </th><th>13 </th><th>12 </th><th>11 </th><th>10 </th><th>9 </th><th>8 </th><th>7 </th><th>6 </th><th>5 </th><th>4 </th><th>3 </th><th>2 </th><th>1 </th><th>0 </th></tr>
+<tr>
+<td>width </td><td>32 </td><td>31 </td><td>30 </td><td>29 </td><td>28 </td><td>27 </td><td>26 </td><td>25 </td><td>24 </td><td>23 </td><td>22 </td><td>21 </td><td>20 </td><td>19 </td><td>18 </td><td>17 </td><td>16 </td><td>15 </td><td>14 </td><td>13 </td><td>12 </td><td>11 </td><td>10 </td><td>9 </td><td>8 </td><td>7 </td><td>6 </td><td>5 </td><td>4 </td><td>3 </td><td>2 </td><td>1 </td></tr>
+<tr>
+<td>Value </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>1 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>1 </td><td>0 </td><td>0 </td><td>0 </td><td>1 </td><td>0 </td><td>0 </td><td>0 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_trace_tracebuffer"></a>
+/package/devices/family/.../trace/tracebuffer</h1>
+<p>Indicates on-device trace buffer capabilities of the specified processor. This element describes possible configuration settings for capturing trace and reading it from the buffer.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;family Dfamily=<span class="stringliteral">&quot;LPC4300 Series&quot;</span> Dvendor=<span class="stringliteral">&quot;NXP:11&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;trace Pname=<span class="stringliteral">&quot;CoreCM4&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;tracebuffer start=<span class="stringliteral">&quot;0x2000C000&quot;</span> size=<span class="stringliteral">&quot;0x4000&quot;</span>/&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/trace&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/family&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: tracebuffer">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_trace">trace</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_trace">/package/devices/family/.../trace</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>start </td><td>Start address of the on-chip memory used as trace buffer for a supported configuration. </td><td>NonNegativeInteger </td><td>optional </td></tr>
+<tr>
+<td>size </td><td>Size of the on-chip memory used as trace buffer in bytes for a supported configuration. </td><td>NonNegativeInteger </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_variant"></a>
+/package/devices/family/.../device/variant</h1>
+<p>Defines a device variant. The element is optional. Can exist multiple times.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;device Dname=<span class="stringliteral">&quot;STM32F205RB&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;variant Dvariant=<span class="stringliteral">&quot;STM32F205RBT6&quot;</span>&gt;</div>
+<div class="line"> &lt;book name=<span class="stringliteral">&quot;doc\STM32F2_RM.PDF&quot;</span> title=<span class="stringliteral">&quot;STM32F2 Reference Manual&quot;</span>/&gt;</div>
+<div class="line"> &lt;description&gt;Use <span class="keyword">this</span> device as an alternative.&lt;/description&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;QFP&quot;</span> count=<span class="stringliteral">&quot;64&quot;</span> name=<span class="stringliteral">&quot;LQFP 64 10x10x1.4&quot;</span> /&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Temp&quot;</span> n=<span class="stringliteral">&quot;-40&quot;</span> m=<span class="stringliteral">&quot;85&quot;</span> name=<span class="stringliteral">&quot;Industrial Temperature Range&quot;</span>/&gt;</div>
+<div class="line"> &lt;/variant&gt;</div>
+<div class="line"> &lt;variant Dvariant=<span class="stringliteral">&quot;STM32F205RBT7&quot;</span>&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;QFP&quot;</span> count=<span class="stringliteral">&quot;64&quot;</span> name=<span class="stringliteral">&quot;LQFP 64 10x10x1.4&quot;</span> /&gt;</div>
+<div class="line"> &lt;feature type=<span class="stringliteral">&quot;Temp&quot;</span> n=<span class="stringliteral">&quot;-40&quot;</span> m=<span class="stringliteral">&quot;105&quot;</span> name=<span class="stringliteral">&quot;Extended Temperature Range&quot;</span>/&gt;</div>
+<div class="line"> &lt;/variant&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/device&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: variant">
+<tr>
+<th>Parents </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_device">device</a> </td><td colspan="3"><a class="el" href="pdsc_family_pg.html#element_device">/package/devices/family/../device</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Dvariant </td><td>Name of the device variant. Only alphabetical characters, decimal digits, '-' and '_' are allowed </td><td>RestrictedString </td><td>required </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_book">book</a> </td><td>List books that are specific to this variant. </td><td>BookType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_description">description</a> </td><td>Device description. </td><td>DescriptionType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="pdsc_family_pg.html#element_feature">feature</a> </td><td>Define features for this device variant. </td><td>FeatureType </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li><li class="navelem"><a class="el" href="pdsc_devices_pg.html">/package/devices element</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc_generators_pg.html b/CMSIS/Documentation/Pack/html/pdsc_generators_pg.html
new file mode 100644
index 0000000..18f9a17
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_generators_pg.html
@@ -0,0 +1,442 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package/generators element</title>
+<title>CMSIS-Pack: /package/generators element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc_generators_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package/generators element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The element <a class="el" href="pdsc_generators_pg.html#element_generator">/package/generators/generator</a> specifies a tool or utility that is used to generate and/or configure software (source code, header files, configuration files, etc.) in the context of a project. For this purpose, a generator package description file (GPDSC) needs to be created (see <a class="el" href="pdsc_generators_pg.html#pdsc_generators_gpdsc">&lt;gpdsc&gt;</a>). The GPDSC file details the selected device, components, project files and conditions, as well as information about the generator and how it can be launched again for iterative development cycles. A GPDSC file follows the same schema as a static PACK. However, the files generated by the utility are not installed and managed centrally in the PACK folder, but locally within the project folder.</p>
+<p>A generator can be associated with a component by it's name. Selecting the component will automatically include the files provided by the generator in the project. If the specified GPDSC file is not present, the generator command is executed by the environment to generate the files and GPDSC. In this way project specific configurations can be made, files being generated and included and maintained as part of the project.</p>
+<p><a class="anchor" id="pdsc_generators_gen_sec"></a><b>Example</b> Generator Section </p>
+<div class="fragment"><div class="line">&lt;generators&gt;</div>
+<div class="line"> &lt;generator <span class="keywordtype">id</span>=<span class="stringliteral">&quot;STM32CubeMX&quot;</span> Gvendor=<span class="stringliteral">&quot;STMicroelectronics&quot;</span> Gtool=<span class="stringliteral">&quot;STM32CubeMX&quot;</span> Gversion=<span class="stringliteral">&quot;4.10.0&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;STM32CubeMX Environment&lt;/description&gt;</div>
+<div class="line"> &lt;select Dname=<span class="stringliteral">&quot;STM32F746NGHx&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>/&gt;</div>
+<div class="line"> &lt;command&gt;$SMDK/CubeMX/STM32CubeMXLauncher&lt;/command&gt;</div>
+<div class="line"> &lt;workingDir&gt;$PRTE/Device/STM32F746NGHx&lt;/workingDir&gt;</div>
+<div class="line"> &lt;project_files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;STCubeGenerated/Src/main.c&quot;</span> /&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;STCubeGenerated/Inc/stm32f7xx_it.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;STCubeGenerated/Src/stm32f7xx_it.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;/project_files&gt;</div>
+<div class="line"> &lt;/generator&gt;</div>
+<div class="line">&lt;/generators&gt;</div>
+</div><!-- fragment --><p><a class="anchor" id="pdsc_generators_gpdsc"></a><b>Example</b> Generator Package Description File (gpdsc) </p>
+<div class="fragment"><div class="line">&lt;?xml version=<span class="stringliteral">&quot;1.0&quot;</span> encoding=<span class="stringliteral">&quot;UTF-8&quot;</span> standalone=<span class="stringliteral">&quot;no&quot;</span>?&gt;</div>
+<div class="line">&lt;!-- ******************************************************************************</div>
+<div class="line"> File Name : FrameworkCubeMX.gpdsc</div>
+<div class="line"> Date : 02/09/2015 14:27:06</div>
+<div class="line"> Description : Generator PDSC File generated by STM32CubeMX (DO NOT EDIT!)</div>
+<div class="line"> --&gt;</div>
+<div class="line"></div>
+<div class="line">&lt;<span class="keyword">package </span>xmlns:xs=&quot;http:<span class="comment">//www.w3.org/2001/XMLSchema-instance&quot; schemaVersion=&quot;1.0&quot; xs:noNamespaceSchemaLocation=&quot;PACK.xsd&quot;&gt;</span></div>
+<div class="line"> &lt;vendor&gt;Keil&lt;/vendor&gt;</div>
+<div class="line"> &lt;name&gt;FrameworkCubeMX&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;STM32CubeMX generated pack description&lt;/description&gt;</div>
+<div class="line"> &lt;url&gt;project-path&lt;/url&gt;</div>
+<div class="line"> &lt;releases&gt;</div>
+<div class="line"> &lt;release version=&quot;1.0.0&quot;&gt;</div>
+<div class="line"> - Generated: 02/09/2015 14:27:06</div>
+<div class="line"> &lt;/release&gt;</div>
+<div class="line"> &lt;/releases&gt;</div>
+<div class="line"> &lt;generators&gt;</div>
+<div class="line"> &lt;generator id=&quot;STM32CubeMX&quot; Gvendor=&quot;STMicroelectronics&quot; Gtool=&quot;STM32CubeMX&quot; Gversion=&quot;4.10.0&quot;&gt;</div>
+<div class="line"> &lt;description&gt;STM32CubeMX Environment&lt;/description&gt;</div>
+<div class="line"> &lt;select Dname=&quot;STM32F746NGHx&quot; Dvendor=&quot;STMicroelectronics:13&quot;/&gt;</div>
+<div class="line"> &lt;command&gt;$SMDK/CubeMX/STM32CubeMXLauncher&lt;/command&gt;</div>
+<div class="line"> &lt;workingDir&gt;$PRTE/Device/STM32F746NGHx&lt;/workingDir&gt;</div>
+<div class="line"> &lt;project_files&gt;</div>
+<div class="line"> &lt;file category=&quot;source&quot; name=&quot;STCubeGenerated/Src/main.c&quot; /&gt;</div>
+<div class="line"> &lt;file category=&quot;header&quot; name=&quot;STCubeGenerated/Inc/stm32f7xx_it.h&quot;/&gt;</div>
+<div class="line"> &lt;file category=&quot;source&quot; name=&quot;STCubeGenerated/Src/stm32f7xx_it.c&quot;/&gt;</div>
+<div class="line"> &lt;/project_files&gt;</div>
+<div class="line"> &lt;/generator&gt;</div>
+<div class="line"> &lt;/generators&gt;</div>
+<div class="line"> &lt;taxonomy&gt;</div>
+<div class="line"> &lt;description Cclass=&quot;Device&quot; Cgroup=&quot;STM32Cube Framework&quot; generator=&quot;STM32CubeMX&quot;&gt;STM32Cube Framework&lt;/description&gt;</div>
+<div class="line"> &lt;/taxonomy&gt;</div>
+<div class="line"> &lt;conditions&gt;</div>
+<div class="line"> &lt;condition id=&quot;STCubeMX&quot;&gt;</div>
+<div class="line"> &lt;description&gt;Condition to include CMSIS core and Device Startup components&lt;/description&gt;</div>
+<div class="line"> &lt;require Dvendor=&quot;STMicroelectronics:13&quot; Dname=&quot;STM32F7*&quot;/&gt;</div>
+<div class="line"> &lt;require Cclass=&quot;CMSIS&quot; Cgroup=&quot;CORE&quot; Csub=&quot;&quot;/&gt;</div>
+<div class="line"> &lt;require Cclass=&quot;Device&quot; Cgroup=&quot;Startup&quot;/&gt;</div>
+<div class="line"> &lt;require Cclass=&quot;Device&quot; Cgroup=&quot;STM32Cube HAL&quot; Csub=&quot;Common&quot;/&gt;</div>
+<div class="line"> &lt;require Cclass=&quot;Device&quot; Cgroup=&quot;STM32Cube HAL&quot; Csub=&quot;GPIO&quot;/&gt;</div>
+<div class="line"> &lt;/condition&gt;</div>
+<div class="line"> &lt;/conditions&gt;</div>
+<div class="line"> &lt;components&gt;</div>
+<div class="line"> &lt;component generator=&quot;STM32CubeMX&quot; Cvendor=&quot;Keil&quot; Cclass=&quot;Device&quot; Cgroup=&quot;STM32Cube Framework&quot; Csub=&quot;STM32CubeMX&quot; Cversion=&quot;1.0.0&quot; condition=&quot;STCubeMX&quot;&gt;</div>
+<div class="line"> &lt;description&gt;Configuration via STM32CubeMX&lt;/description&gt;</div>
+<div class="line"> &lt;RTE_Components_h&gt;</div>
+<div class="line"> #define RTE_DEVICE_FRAMEWORK_CUBE_MX</div>
+<div class="line"> &lt;/RTE_Components_h&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=&quot;header&quot; name=&quot;MX_Device.h&quot;/&gt;</div>
+<div class="line"> &lt;file category=&quot;header&quot; name=&quot;STCubeGenerated/Inc/stm32f7xx_hal_conf.h&quot;/&gt;</div>
+<div class="line"> &lt;file category=&quot;source&quot; name=&quot;STCubeGenerated/Src/stm32f7xx_hal_msp.c&quot;/&gt;</div>
+<div class="line"> &lt;/files&gt;</div>
+<div class="line"> &lt;/component&gt;</div>
+<div class="line"> &lt;/components&gt;</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_generators"></a>
+/package/generators</h1>
+<p>Grouping element for <b>generators</b>. Only one such group can exist in a PACK.</p>
+<table class="cmtable" summary="Element: Generator">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_package_pg.html">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html">/package</a> </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_generator">generator</a> </td><td>Description of the generator and the related files </td><td><a class="el" href="pdsc_generators_pg.html#element_generator">GeneratorType</a> </td><td>1..* </td></tr>
+</table>
+<p>The following variables can be used in the elements <code>&lt;command&gt;</code>, <code>&lt;workingDir&gt;</code>, <code>&lt;argument&gt;</code>, <code>&lt;gpdsc&gt;</code>:</p>
+<table class="cmtable" summary="Supported Variables within Generator">
+<tr>
+<th>Variable </th><th>Description </th></tr>
+<tr>
+<td>$P </td><td>PATH to current project </td></tr>
+<tr>
+<td>#P </td><td>PATH and name of the current project </td></tr>
+<tr>
+<td>$S </td><td>PATH to PACK folder containing the Device description used by the current project </td></tr>
+<tr>
+<td>$D </td><td>Name of the device configured in the current project </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_generator"></a>
+/package/generators/generator</h1>
+<p>The generator section is used to provide the details about the tool that has been used to create the GPDSC file. At least one generator element must exist.</p>
+<table class="cmtable" summary="Element: Generator">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_generators">generators</a> </td><td colspan="3"><a class="el" href="pdsc_generators_pg.html#element_generators">/package/generators</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>id </td><td>Identifier of the generator tool. Can be used by other elements to determine the generator. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>Gvendor </td><td>Vendor name of the generator tool. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Gtool </td><td>Plain text name of the generator. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Gversion </td><td>Version of the generator tool. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>description </td><td>Briefly describes the generator tool. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_gen_select">select</a> </td><td>Complex type specifying the configured device. A device is uniquely identified by vendor, name or variant and processor name in case of devices with multiple processors. </td><td>GeneratorSelectType </td><td>0..1 </td></tr>
+<tr>
+<td>workingDir </td><td>Directory to be set as current directory before launching the <code>&lt;command&gt;</code>. This is either an absolute or relative path to PDSC or GPDSC file. If not specified, the current directory is the directory of the project configured by the environment. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>command </td><td>Invocation command for the generator tool (for an example see <a class="el" href="pdsc_generators_pg.html#pdsc_generators_gen_sec">top of the page</a>). Command line options should be passed via <code>arguments</code>. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_gen_arguments">arguments</a> </td><td>Section for command line arguments of the format <code>&lt;argument</code> <code>switch="-data"&gt;myFileName&lt;/argument&gt;</code>. Path information for files can be specified absolute or relative to the location (path) of the GPDSC file. </td><td><a class="el" href="pdsc_generators_pg.html#element_gen_arguments">GeneratorCommandArgumentsType</a> </td><td>0..1 </td></tr>
+<tr>
+<td>gpdsc </td><td>Path and name of the GPDSC that the generator creates and updates. The path is either absolute or relative to the working directory. If no explicit gpdsc file is provided a gpdsc file named after the project with extension gpdsc in the working directory is assumed (<code>&lt;project&gt;</code>.gpdsc). </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_gen_project_files">project_files</a> </td><td>Grouping element for all project files generated by the tool. </td><td>group </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_files">files</a> </td><td>Grouping element for generator tool files. </td><td>group </td><td>0..1 </td></tr>
+<tr>
+<td>extensions </td><td>Generator vendor specific section ignored by other tools </td><td>N/A </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_gen_select"></a>
+/package/generators/generator/select</h1>
+<p>This element contains information about the vendor and device the GPDSC file has been generated for. Only one such element can exist in <code>&lt;generators&gt;</code>.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;generators&gt;</div>
+<div class="line"> &lt;generator <span class="keywordtype">id</span>=<span class="stringliteral">&quot;STM32CubeMX&quot;</span> Gvendor=<span class="stringliteral">&quot;STMicroelectronics&quot;</span> Gtool=<span class="stringliteral">&quot;STM32CubeMX&quot;</span> Gversion=<span class="stringliteral">&quot;4.10.0&quot;</span>&gt;</div>
+<div class="line"> &lt;select Dname=<span class="stringliteral">&quot;STM32F746NGHx&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>/&gt;</div>
+<div class="line"> &lt;/generator&gt;</div>
+<div class="line">&lt;/generators&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="Element: Generator Select">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_generator">generator</a> </td><td colspan="3"><a class="el" href="pdsc_generators_pg.html#element_generator">/package/generators/generator</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>Dvendor </td><td>Vendor name of the targeted device. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">Device Vendor</a>. </td><td>DeviceVendorEnum </td><td>required </td></tr>
+<tr>
+<td>Dname </td><td>Name of the targeted device. If no Dvariant is specified this tag is required </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Dvariant </td><td>Name of the targeted device variant. If a variant is specified, the device name will be ignored and the variant rules. If no Dname is specified, this tag is required. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>Pname </td><td>Name of the targeted processor of a device with multiple processors. For devices with multiple processors this tag is required. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_gen_arguments"></a>
+/package/generators/generator/arguments</h1>
+<p>This element contains information about the <b>arguments</b> passed along the <code>&lt;command&gt;</code> string.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;generators&gt;</div>
+<div class="line"> &lt;generator <span class="keywordtype">id</span>=<span class="stringliteral">&quot;DAVE3&quot;</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;command&gt;%DAVE3%/eclipse/DAVE-3.1.6.exe&lt;/command&gt;</div>
+<div class="line"> &lt;arguments&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/arguments&gt;</div>
+<div class="line"> &lt;/generator&gt;</div>
+<div class="line">&lt;/generators&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<table class="cmtable" summary="Element: Arguments">
+<tr>
+<th>Parent </th><th colspan="3">Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_generator">generator</a> </td><td colspan="3"><a class="el" href="pdsc_generators_pg.html#element_generator">/package/generators/generator</a> </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_gen_argument">argument</a> </td><td>Arguments passed along with the <code>&lt;command&gt;</code>. </td><td><a class="el" href="pdsc_generators_pg.html#element_gen_argument">GeneratorCommandArgumentType</a> </td><td>required </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_gen_argument"></a>
+/package/generators/generator/arguments/argument</h1>
+<p>This element describes a single command line argument passed along with <code>&lt;command&gt;</code> for launching the generator. The argument is split up in a switch value pair. The switch is passed as an attribute and the value as the element value. Both <code>switch</code> and <code>element</code> values are of type xs:string.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;generators&gt;</div>
+<div class="line"> &lt;generator <span class="keywordtype">id</span>=<span class="stringliteral">&quot;STM32CubeMX&quot;</span>&gt;</div>
+<div class="line"> &lt;arguments&gt;</div>
+<div class="line"> &lt;argument <span class="keywordflow">switch</span>=<span class="stringliteral">&quot;-data&quot;</span>&gt;$PRTE/Device/STM32F746NGHx&lt;/argument&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/arguments&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/generator&gt;</div>
+<div class="line">&lt;/generators&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Generator Command Argument">
+<tr>
+<th>Parent </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_gen_arguments">arguments</a> </td><td colspan="3"><a class="el" href="pdsc_generators_pg.html#element_gen_arguments">/package/generators/generator/arguments</a> </td></tr>
+<tr>
+<th>Current </th><th>Description </th><th colspan="2">Type </th></tr>
+<tr>
+<td>argument </td><td>value of argument without command line switch </td><td colspan="2">xs:string </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>switch </td><td>Specifies the command line switch separated from the argument value. </td><td>xs:string </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_gen_project_files"></a>
+/package/generators/generator/project_files</h1>
+<p>The group <b>project_files</b> specifies all files that are required for the project setup. Only one such group can exist.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;generators&gt;</div>
+<div class="line"> &lt;generator <span class="keywordtype">id</span>=<span class="stringliteral">&quot;STM32CubeMX&quot;</span> Gvendor=<span class="stringliteral">&quot;STMicroelectronics&quot;</span> Gtool=<span class="stringliteral">&quot;STM32CubeMX&quot;</span> Gversion=<span class="stringliteral">&quot;4.10.0&quot;</span>&gt;</div>
+<div class="line"> &lt;description&gt;STM32CubeMX Environment&lt;/description&gt;</div>
+<div class="line"> &lt;select Dname=<span class="stringliteral">&quot;STM32F746NGHx&quot;</span> Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span>/&gt;</div>
+<div class="line"> &lt;command&gt;$SMDK/CubeMX/STM32CubeMXLauncher&lt;/command&gt;</div>
+<div class="line"> &lt;workingDir&gt;$PRTE/Device/STM32F746NGHx&lt;/workingDir&gt;</div>
+<div class="line"> &lt;project_files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;STCubeGenerated/Src/main.c&quot;</span> /&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;header&quot;</span> name=<span class="stringliteral">&quot;STCubeGenerated/Inc/stm32f7xx_it.h&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;source&quot;</span> name=<span class="stringliteral">&quot;STCubeGenerated/Src/stm32f7xx_it.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;/project_files&gt;</div>
+<div class="line"> &lt;/generator&gt;</div>
+<div class="line">&lt;/generators&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Project Files">
+<tr>
+<th>Parent </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_generator">generator</a> </td><td colspan="3"><a class="el" href="pdsc_generators_pg.html#element_generator">/package/generators/generator</a> </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_file">file</a> </td><td>Frame for files created by the generator and used in a project. </td><td>group </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_gen_files"></a>
+/package/generators/generator/files</h1>
+<p>The group <b>files</b> specifies files that are required by the generator tool. Only one such group can exist.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;generators&gt;</div>
+<div class="line"> &lt;generator <span class="keywordtype">id</span>=<span class="stringliteral">&quot;MyGenerator&quot;</span>&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;/generator&gt;</div>
+<div class="line">&lt;/generators&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Generator Files">
+<tr>
+<th>Parent </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_generator">generator</a> </td><td colspan="3"><a class="el" href="pdsc_generators_pg.html#element_generator">/package/generators/generator</a> </td></tr>
+<tr>
+<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_gen_file">file</a> </td><td>Frame for files used by the generator. </td><td>group </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="element_gen_file"></a>
+/package/generators/generator/files/file</h1>
+<p>This element contains information about files used by a generator.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;generators&gt;</div>
+<div class="line"> &lt;generator <span class="keywordtype">id</span>=<span class="stringliteral">&quot;MyGenerator&quot;</span>&gt;</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;generator&quot;</span> name=<span class="stringliteral">&quot;Main.c&quot;</span>/&gt;</div>
+<div class="line"> &lt;file category=<span class="stringliteral">&quot;you_name_it&quot;</span> name=<span class="stringliteral">&quot;database/connection.odbc&quot;</span> version=<span class="stringliteral">&quot;1.2.3&quot;</span>/&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;files&gt;</div>
+<div class="line"> &lt;/generator&gt;</div>
+<div class="line">&lt;/generators&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="Element: Generator File">
+<tr>
+<th>Parent </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_gen_files">files</a> </td><td colspan="3"><a class="el" href="pdsc_generators_pg.html#element_gen_files">/package/generators/generator/files</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>condition </td><td>Reference using the name of the respective condition specified in the conditions section of this package (<a class="el" href="pdsc_conditions_pg.html#element_conditions">/package/conditions</a>). If the condition resolves to <span class="XML-Token">false</span>, then the element will be ignored and treated as if not present. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<td>category </td><td>Describes the file type (for example: <span class="XML-Token">doc</span>, <span class="XML-Token">header</span>, <span class="XML-Token">library</span>). You can use predefined values as listed in the table <a class="el" href="pdsc_components_pg.html#FileCategoryEnum">File Categories</a>, however, this is not mandatory. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>name </td><td>Can consist of the path (relative to the PACK base directory) and the file name with extension. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>version </td><td>File-specific version information. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>optional </td></tr>
+</table>
+<p>&#160;</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/pdsc_package_pg.html b/CMSIS/Documentation/Pack/html/pdsc_package_pg.html
new file mode 100644
index 0000000..1f60dc9
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/pdsc_package_pg.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/package element</title>
+<title>CMSIS-Pack: /package element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="stylsheetf" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-Pack
+ &#160;<span id="projectnumber">Version 1.4.1</span>
+ </div>
+ <div id="projectbrief">Delivery Mechanism for Software Packs</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pdsc_package_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/package element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The basic package information captures the package vendor, the package name, a brief description of the package, and the schema version. Additional elements support the logistics of handling packages. The url specifies the origin of the description. It may be left empty if the pack will not be uploaded onto a web server. A license file might point to license agreements. A list of keywords assists searching for packages.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;<span class="keyword">package </span>schemaVersion=&quot;1.4&quot; xmlns:xs=&quot;http:<span class="comment">//www.w3.org/2001/XMLSchema-instance&quot; xs:noNamespaceSchemaLocation=&quot;PACK.xsd&quot;&gt;</span></div>
+<div class="line"> &lt;vendor&gt;ExampleVendor&lt;/vendor&gt;</div>
+<div class="line"> &lt;name&gt;STM32F2xx_DFP&lt;/name&gt; &lt;!-- name of package --&gt;</div>
+<div class="line"> &lt;description&gt;Device Family Package for STMicroelectronics STM32F2 Family of ARM Cortex-M3 based Microcontroller&lt;/description&gt;</div>
+<div class="line"> &lt;url&gt;&lt;/url&gt;</div>
+<div class="line"> &lt;supportContact&gt;http:<span class="comment">//www.arm.com/support&lt;/supportContact&gt;</span></div>
+<div class="line"> &lt;license&gt;./END_USER_LICENCE_AGREEMENT.rtf&lt;/license&gt;</div>
+<div class="line"> &lt;releases&gt;</div>
+<div class="line"> &lt;release version=&quot;1.0.0&quot; date=&quot;2014-12-14&quot;&gt;</div>
+<div class="line"> First Release version of STM32F2 Device Family Pack.</div>
+<div class="line"> &lt;/release&gt;</div>
+<div class="line"> &lt;release version=&quot;0.9.0&quot;&gt;</div>
+<div class="line"> Beta version of STM32F2 Device Family Pack.</div>
+<div class="line"> &lt;/release&gt;</div>
+<div class="line"> &lt;/releases&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;keywords&gt; &lt;!-- keywords for indexing --&gt;</div>
+<div class="line"> &lt;keyword&gt;ST&lt;/keyword&gt;</div>
+<div class="line"> &lt;keyword&gt;Device Support&lt;/keyword&gt;</div>
+<div class="line"> &lt;keyword&gt;Device Family Package ST&lt;/keyword&gt;</div>
+<div class="line"> &lt;keyword&gt;STM32F2&lt;/keyword&gt;</div>
+<div class="line"> &lt;keyword&gt;STM32F2xx&lt;/keyword&gt;</div>
+<div class="line"> &lt;/keywords&gt;</div>
+<div class="line"> </div>
+<div class="line"> &lt;taxonomy&gt; &lt;!-- class and group descriptions --&gt;</div>
+<div class="line"> &lt;description Cclass=&quot;Board Support&quot;&gt;</div>
+<div class="line"> Generic Interfaces and Templates for Evaluation and Development Boards</div>
+<div class="line"> &lt;/description&gt;</div>
+<div class="line"> &lt;/taxonomy&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/package&gt;</div>
+</div><!-- fragment --> <p>&#160;</p>
+<h1><a class="anchor" id="element_package"></a>
+/package</h1>
+<table class="cmtable" summary="Root Element: Package">
+<tr>
+<th>Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td>root </td><td colspan="3">Document root </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>schemaVersion </td><td>CMSIS-PDSC schema version used for describing the <a class="el" href="_c_p__s_w_components.html">Software Pack</a> (for example, <span class="XML-Token">"1.2"</span>). The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>required </td></tr>
+<tr>
+<td>xmlns:xs </td><td>Is set to: <span class="XML-Token">"http://www.w3.org/2001/XMLSchema-instance"</span> to indicate compliance to the XML format. </td><td>xs:decimal </td><td>required </td></tr>
+<tr>
+<td>xs:noNamespaceSchemaLocation </td><td>Path and file name of the PACK.xsd Schema. For example, <span class="XML-Token">"PACK.xsd"</span>. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>name </td><td>Name of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. Could be displayed by an installer. </td><td>xs:string </td><td>1..1 </td></tr>
+<tr>
+<td>vendor </td><td>Name of the supplier or vendor of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. </td><td>xs:string </td><td>1..1 </td></tr>
+<tr>
+<td>description </td><td>Brief description of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. </td><td>xs:string </td><td>1..1 </td></tr>
+<tr>
+<td>url </td><td><a href="https://en.wikipedia.org/wiki/Uniform_resource_locator" target="_blank">HTTP URL</a> or <a href="https://en.wikipedia.org/wiki/File_URI_scheme" target="_blank">file URI</a> location of the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. The URL can be used by installers for downloading, updating, or checking versions. If left empty, the Pack cannot be updated automatically from a server location. </td><td>xs:anyURI </td><td>1..1 </td></tr>
+<tr>
+<td>supportContact </td><td>HTTP URL or e-mail address for users to get support for the content of the PACK </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>license </td><td>Path to a license document. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="element_releases.html">releases</a> </td><td>Version release history with brief information about a <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. </td><td>ReleasesGroup </td><td>1..1 </td></tr>
+<tr>
+<td><a class="el" href="element_keywords.html">keywords</a> </td><td>Defines keywords that might be used to find a <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. Keywords may be also exported to web page to provide information for search engines, such as Google. </td><td>group </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_generators_pg.html#element_generators">generators</a> </td><td>Specifies generator tools that have been used to create the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. </td><td>GeneratorsType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_devices_pg.html#element_devices">devices</a> </td><td>Defines the device family, the devices, and optionally variants (such as boards). </td><td>group </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_boards_pg.html#element_boards">boards</a> </td><td>Defines the development board support package. </td><td>BoardsType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="element_taxonomy.html">taxonomy</a> </td><td>Contains the description for a component class or for the combination between a component class and component group. </td><td>TaxonomyType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_apis_pg.html#element_apis">apis</a> </td><td>Defines the API (Application Programming Interfaces) specifications contained in the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. </td><td>ApisType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_conditions_pg.html#element_conditions">conditions</a> </td><td>Is a group that contains dependency definitions used within the PACK. These rules can describe dependencies on various levels: device attributes, components, or tools. Conditions are referenced by components and files. </td><td>ConditionsType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_examples_pg.html#element_examples">examples</a> </td><td>Lists the examples that are included in the PACK. </td><td>group </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="pdsc_components_pg.html#element_components">components</a> </td><td>Lists the software components that are included in the PACK. </td><td>group </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+<p><a class="anchor" id="VersionType"></a><b>Version Type</b></p>
+<p>CMSIS-PACK version specification is inspired by the <a href="http://semver.org" target="_blank">Semantic Versioning 2.0.0</a>. Under this scheme, version numbers and the way they are incremented convey a meaning about the underlying content quality and the significance of changes from one version to the next. A version consists of 3 mandatory and 2 optional sections:</p>
+<div class="fragment"><div class="line">MAJOR.MINOR.PATCH[-Pre Release][+Build Metadata]</div>
+</div><!-- fragment --><ol type="1">
+<li><b>MAJOR:</b> increment MAJOR for backwards incompatible changes<ul>
+<li>non-negative integer</li>
+<li>0 indicates initial development, unstable and anything may change at any time <div class="fragment"><div class="line">ARM.CMSIS.0.9.0.pack &lt; ARM.CMSIS.1.0.0.pack</div>
+</div><!-- fragment --></li>
+</ul>
+</li>
+<li><b>MINOR:</b> increment MINOR for backwards compatible additions and changes<ul>
+<li>non-negative integer</li>
+<li>accepted: &ndash; trailing zeros are accepted but effectively ignored for version comparison <div class="fragment"><div class="line">ARM.CMSIS.1.02.0.pack equal to ARM.CMSIS.1.2.0.pack</div>
+</div><!-- fragment --></li>
+</ul>
+</li>
+<li><b>PATCH:</b> increment PATCH for bug fixes not affecting compatibility<ul>
+<li>non-negative integer</li>
+<li>accepted:<ul>
+<li>trailing zeros are accepted but effectively ignored for version comparison</li>
+<li>a version ending after MINOR without specifying PATCH. In this case PATCH == 0 is assumed. <div class="fragment"><div class="line">ARM.CMSIS.1.1.pack equal to ARM.CMSIS.1.1.0.pack</div>
+</div><!-- fragment --></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><em>pre release:</em> the optional pre-release string must start with a hyphen ('-') immediately after the <em>PATCH</em> and consists of a series of dot separated ASCII alphanumerics and hyphen ([0-9A-Za-z-]).<ul>
+<li>accepted: the pre-release string immediately following the PATCH without a hyphen if the first item is a character. <div class="fragment"><div class="line">ARM.CMSIS.4.3.0-alpha.1</div>
+</div><!-- fragment --></li>
+</ul>
+</li>
+<li><em>build metadata:</em> the optional build metadata must be denoted by appending a plus sign ('+') and a series of dot separated identifiers. Identifiers comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]+. Two versions that differ only in the build metadata, have the same precedence. <div class="fragment"><div class="line">ARM.CMSIS.4.3.0-alpha.1+build.102 </div>
+</div><!-- fragment --></li>
+</ol>
+<p>The above is extending the recommendation that was given in previous version of this specification.:</p>
+<p>Version types are used in:</p>
+<ul>
+<li><a class="el" href="pdsc_package_pg.html#element_package">/package</a> (attribute: <em>schemaVersion</em>)</li>
+<li><a class="el" href="element_releases.html#element_release">/package/releases/release</a> (attribute: <em>version</em>)</li>
+<li><a class="el" href="pdsc_apis_pg.html#element_api">/package/apis/api</a> (attribute: <em>Capiversion</em>)</li>
+<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a> (attributes: <em>Capiversion</em> and <em>Cversion</em>)</li>
+<li><a class="el" href="pdsc_components_pg.html#element_bundle">/package/components/bundle</a> (attribute: <em>Cversion</em>)</li>
+<li><a class="el" href="pdsc_components_pg.html#element_component">/package/components/.../component</a> (attributes: <em>Capiversion</em> and <em>Cversion</em>)</li>
+<li><a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a> (attribute: <em>version</em>)</li>
+<li><a class="el" href="pdsc_examples_pg.html#element_example_attribute_component">/package/examples/example/attributes/component</a> (attribute: <em>Cversion</em>)</li>
+</ul>
+<p><b>Example:</b> this example applies to <a class="el" href="element_releases.html#element_release">/package/releases/release</a>. </p>
+<div class="fragment"><div class="line">&lt;release version=<span class="stringliteral">&quot;1.4.2-RC2&quot;</span> ...&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
+ <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/printComponentTabs.js b/CMSIS/Documentation/Pack/html/printComponentTabs.js
new file mode 100644
index 0000000..64d846b
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/printComponentTabs.js
@@ -0,0 +1,36 @@
+var strgURL = location.pathname; // path of current component
+
+// constuctor for the array of objects
+function tabElement(id, folderName, tabTxt ) {
+ this.id = id; // elementID as needed in html;
+ this.folderName = folderName; // folder name of the component
+ this.tabTxt = tabTxt; // Text displayed as menu on the web
+ this.currentListItem = '<li id="' + this.id + '" class="current"> <a href="../..' + this.folderName + 'index.html"><span>' + this.tabTxt + '</span></a></li>';
+ this.listItem = '<li id="' + this.id + '"> <a href="../..' + this.folderName + 'index.html"><span>' + this.tabTxt + '</span></a></li>';
+};
+
+// array of objects
+var arr = [];
+
+// fill array
+ arr.push( new tabElement( "GEN", "/General/html/", "General") );
+ arr.push( new tabElement( "CORE", "/Core/html/", "Core") );
+ arr.push( new tabElement( "DRV", "/Driver/html/", "Driver") );
+ arr.push( new tabElement( "DSP", "/DSP/html/", "DSP") );
+ arr.push( new tabElement( "RTOS", "/RTOS/html/", "RTOS API") );
+ arr.push( new tabElement( "RTX", "/RTX/html/", "RTX") );
+ arr.push( new tabElement( "PACK", "/Pack/html/", "Pack") );
+ arr.push( new tabElement( "SVD", "/SVD/html/", "SVD") );
+ arr.push( new tabElement( "DAP", "/DAP/html/", "DAP") );
+
+// write tabs
+// called from the header file.
+function writeComponentTabs() {
+ for ( var i=0; i < arr.length; i++ ) {
+ if (strgURL.search(arr[i].folderName) > 0) { // if this is the current folder
+ document.write(arr[i].currentListItem); // then print and hightlight the tab
+ } else {
+ document.write(arr[i].listItem); // else, print the tab
+ }
+ }
+};
diff --git a/CMSIS/Documentation/Pack/html/resize.js b/CMSIS/Documentation/Pack/html/resize.js
new file mode 100644
index 0000000..9fe82ba
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/resize.js
@@ -0,0 +1,93 @@
+var cookie_namespace = 'doxygen';
+var sidenav,navtree,content,header;
+
+function readCookie(cookie)
+{
+ 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 writeCookie(cookie, val, expiration)
+{
+ if (val==undefined) return;
+ if (expiration == null)
+ {
+ 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 + "; expires=" + expiration+"; path=/";
+}
+
+function resizeWidth()
+{
+ var windowWidth = $(window).width() + "px";
+ var sidenavWidth = $(sidenav).width();
+ content.css({marginLeft:parseInt(sidenavWidth)+6+"px"}); //account for 6px-wide handle-bar
+ writeCookie('width',sidenavWidth, null);
+}
+
+function restoreWidth(navWidth)
+{
+ var windowWidth = $(window).width() + "px";
+ content.css({marginLeft:parseInt(navWidth)+6+"px"});
+ sidenav.css({width:navWidth + "px"});
+}
+
+function resizeHeight()
+{
+ var headerHeight = header.height();
+ var footerHeight = footer.height();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ content.css({height:windowHeight + "px"});
+ navtree.css({height:windowHeight + "px"});
+ sidenav.css({height:windowHeight + "px",top: headerHeight+"px"});
+}
+
+function initResizable()
+{
+ header = $("#top");
+ sidenav = $("#side-nav");
+ content = $("#doc-content");
+ navtree = $("#nav-tree");
+ footer = $("#nav-path");
+ $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+ $(window).resize(function() { resizeHeight(); });
+ var width = readCookie('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);
+ $(document).bind('touchmove',function(e){
+ try {
+ var target = e.target;
+ while (target) {
+ if ($(target).css('-webkit-overflow-scrolling')=='touch') return;
+ target = target.parentNode;
+ }
+ e.preventDefault();
+ } catch(err) {
+ e.preventDefault();
+ }
+ });
+}
+
+
diff --git a/CMSIS/Documentation/Pack/html/search/all_61.html b/CMSIS/Documentation/Pack/html/search/all_61.html
new file mode 100644
index 0000000..a3164d5
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_61.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/all_61.js b/CMSIS/Documentation/Pack/html/search/all_61.js
new file mode 100644
index 0000000..98a3e1d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_61.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['algorithm_20functions',['Algorithm Functions',['../_algorithm_func.html',1,'FlashAlgorithm']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/all_63.html b/CMSIS/Documentation/Pack/html/search/all_63.html
new file mode 100644
index 0000000..56b5ad1
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_63.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/all_63.js b/CMSIS/Documentation/Pack/html/search/all_63.js
new file mode 100644
index 0000000..953a75d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_63.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['configuration_20wizard_20annotations',['Configuration Wizard Annotations',['../_config_wizard.html',1,'']]],
+ ['create_20software_20packs',['Create Software Packs',['../_c_p__packs.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/all_64.html b/CMSIS/Documentation/Pack/html/search/all_64.html
new file mode 100644
index 0000000..b53ff08
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_64.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_64.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/all_64.js b/CMSIS/Documentation/Pack/html/search/all_64.js
new file mode 100644
index 0000000..6804df6
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_64.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['debug_20access_20sequences',['Debug Access Sequences',['../pdsc__sequence_name_enum_pg.html',1,'PackFormat']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/all_66.html b/CMSIS/Documentation/Pack/html/search/all_66.html
new file mode 100644
index 0000000..3d1f8b3
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_66.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/all_66.js b/CMSIS/Documentation/Pack/html/search/all_66.js
new file mode 100644
index 0000000..140b722
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_66.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['flash_20programming_20algorithms',['Flash Programming Algorithms',['../_flash_algorithm.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/all_70.html b/CMSIS/Documentation/Pack/html/search/all_70.html
new file mode 100644
index 0000000..0340151
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_70.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/all_70.js b/CMSIS/Documentation/Pack/html/search/all_70.js
new file mode 100644
index 0000000..96127c9
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_70.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['pack_20with_20software_20components',['Pack with Software Components',['../_c_p__s_w_components.html',1,'']]],
+ ['pack_20with_20device_20support',['Pack with Device Support',['../_create_pack__d_f_p.html',1,'']]],
+ ['pack_20with_20board_20support',['Pack with Board Support',['../_create_pack_board.html',1,'']]],
+ ['publish_20a_20pack',['Publish a Pack',['../_create_pack_publish.html',1,'']]],
+ ['pack_20example',['Pack Example',['../_pack__example.html',1,'']]],
+ ['packchk_2eexe',['PackChk.exe',['../_pack_chk.html',1,'CreatePackUtil']]],
+ ['pack_20description_20_28_2a_2epdsc_29_20format',['Pack Description (*.PDSC) Format',['../_pack_format.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/all_72.html b/CMSIS/Documentation/Pack/html/search/all_72.html
new file mode 100644
index 0000000..0ab18d6
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_72.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/all_72.js b/CMSIS/Documentation/Pack/html/search/all_72.js
new file mode 100644
index 0000000..cb00313
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_72.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['revision_20history_20of_20cmsis_2dpack',['Revision History of CMSIS-Pack',['../pack_revision_history.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/all_75.html b/CMSIS/Documentation/Pack/html/search/all_75.html
new file mode 100644
index 0000000..ab8455e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_75.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/all_75.js b/CMSIS/Documentation/Pack/html/search/all_75.js
new file mode 100644
index 0000000..da9c8b1
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_75.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['utilities_20for_20creating_20packs',['Utilities for Creating Packs',['../_create_pack_util.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/all_78.html b/CMSIS/Documentation/Pack/html/search/all_78.html
new file mode 100644
index 0000000..10780d6
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_78.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_78.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/all_78.js b/CMSIS/Documentation/Pack/html/search/all_78.js
new file mode 100644
index 0000000..0656130
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_78.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['xml_20editors',['XML Editors',['../_c_p__editors.html',1,'CreatePackUtil']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/all_7a.html b/CMSIS/Documentation/Pack/html/search/all_7a.html
new file mode 100644
index 0000000..0593a62
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_7a.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/all_7a.js b/CMSIS/Documentation/Pack/html/search/all_7a.js
new file mode 100644
index 0000000..4801116
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/all_7a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['zip_20compression_20tools',['ZIP Compression Tools',['../_c_p__z_i_p_tool.html',1,'CreatePackUtil']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/close.png b/CMSIS/Documentation/Pack/html/search/close.png
new file mode 100644
index 0000000..9342d3d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/close.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/search/mag_sel.png b/CMSIS/Documentation/Pack/html/search/mag_sel.png
new file mode 100644
index 0000000..81f6040
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/mag_sel.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/search/nomatches.html b/CMSIS/Documentation/Pack/html/search/nomatches.html
new file mode 100644
index 0000000..b1ded27
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_61.html b/CMSIS/Documentation/Pack/html/search/pages_61.html
new file mode 100644
index 0000000..d5d1efa
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_61.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_61.js b/CMSIS/Documentation/Pack/html/search/pages_61.js
new file mode 100644
index 0000000..98a3e1d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_61.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['algorithm_20functions',['Algorithm Functions',['../_algorithm_func.html',1,'FlashAlgorithm']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/pages_63.html b/CMSIS/Documentation/Pack/html/search/pages_63.html
new file mode 100644
index 0000000..3971181
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_63.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_63.js b/CMSIS/Documentation/Pack/html/search/pages_63.js
new file mode 100644
index 0000000..953a75d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_63.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['configuration_20wizard_20annotations',['Configuration Wizard Annotations',['../_config_wizard.html',1,'']]],
+ ['create_20software_20packs',['Create Software Packs',['../_c_p__packs.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/pages_64.html b/CMSIS/Documentation/Pack/html/search/pages_64.html
new file mode 100644
index 0000000..f416a91
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_64.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_64.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_64.js b/CMSIS/Documentation/Pack/html/search/pages_64.js
new file mode 100644
index 0000000..6804df6
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_64.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['debug_20access_20sequences',['Debug Access Sequences',['../pdsc__sequence_name_enum_pg.html',1,'PackFormat']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/pages_66.html b/CMSIS/Documentation/Pack/html/search/pages_66.html
new file mode 100644
index 0000000..4051434
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_66.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_66.js b/CMSIS/Documentation/Pack/html/search/pages_66.js
new file mode 100644
index 0000000..140b722
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_66.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['flash_20programming_20algorithms',['Flash Programming Algorithms',['../_flash_algorithm.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/pages_70.html b/CMSIS/Documentation/Pack/html/search/pages_70.html
new file mode 100644
index 0000000..f85921e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_70.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_70.js b/CMSIS/Documentation/Pack/html/search/pages_70.js
new file mode 100644
index 0000000..96127c9
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_70.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['pack_20with_20software_20components',['Pack with Software Components',['../_c_p__s_w_components.html',1,'']]],
+ ['pack_20with_20device_20support',['Pack with Device Support',['../_create_pack__d_f_p.html',1,'']]],
+ ['pack_20with_20board_20support',['Pack with Board Support',['../_create_pack_board.html',1,'']]],
+ ['publish_20a_20pack',['Publish a Pack',['../_create_pack_publish.html',1,'']]],
+ ['pack_20example',['Pack Example',['../_pack__example.html',1,'']]],
+ ['packchk_2eexe',['PackChk.exe',['../_pack_chk.html',1,'CreatePackUtil']]],
+ ['pack_20description_20_28_2a_2epdsc_29_20format',['Pack Description (*.PDSC) Format',['../_pack_format.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/pages_72.html b/CMSIS/Documentation/Pack/html/search/pages_72.html
new file mode 100644
index 0000000..ee0d002
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_72.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_72.js b/CMSIS/Documentation/Pack/html/search/pages_72.js
new file mode 100644
index 0000000..cb00313
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_72.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['revision_20history_20of_20cmsis_2dpack',['Revision History of CMSIS-Pack',['../pack_revision_history.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/pages_75.html b/CMSIS/Documentation/Pack/html/search/pages_75.html
new file mode 100644
index 0000000..25bde52
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_75.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_75.js b/CMSIS/Documentation/Pack/html/search/pages_75.js
new file mode 100644
index 0000000..da9c8b1
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_75.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['utilities_20for_20creating_20packs',['Utilities for Creating Packs',['../_create_pack_util.html',1,'']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/pages_78.html b/CMSIS/Documentation/Pack/html/search/pages_78.html
new file mode 100644
index 0000000..fe624f1
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_78.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_78.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_78.js b/CMSIS/Documentation/Pack/html/search/pages_78.js
new file mode 100644
index 0000000..0656130
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_78.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['xml_20editors',['XML Editors',['../_c_p__editors.html',1,'CreatePackUtil']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/pages_7a.html b/CMSIS/Documentation/Pack/html/search/pages_7a.html
new file mode 100644
index 0000000..71ecf37
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_7a.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_7a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/CMSIS/Documentation/Pack/html/search/pages_7a.js b/CMSIS/Documentation/Pack/html/search/pages_7a.js
new file mode 100644
index 0000000..4801116
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/pages_7a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['zip_20compression_20tools',['ZIP Compression Tools',['../_c_p__z_i_p_tool.html',1,'CreatePackUtil']]]
+];
diff --git a/CMSIS/Documentation/Pack/html/search/search.css b/CMSIS/Documentation/Pack/html/search/search.css
new file mode 100644
index 0000000..1746d13
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/search.css
@@ -0,0 +1,240 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+ float: left;
+}
+
+#searchli {
+ float: right;
+ display: block;
+ width: 170px;
+ height: 24px;
+}
+
+#MSearchBox {
+ white-space : nowrap;
+ position: absolute;
+ float: none;
+ display: inline;
+ margin-top: 3px;
+ right: 0px;
+ width: 170px;
+ z-index: 102;
+}
+
+#MSearchBox .left
+{
+ display:block;
+ position:absolute;
+ left:10px;
+ width:20px;
+ height:19px;
+ background:url('search_l.png') no-repeat;
+ background-position:right;
+}
+
+#MSearchSelect {
+ display:block;
+ position:absolute;
+ width:20px;
+ height:19px;
+}
+
+.left #MSearchSelect {
+ left:4px;
+}
+
+.right #MSearchSelect {
+ right:5px;
+}
+
+#MSearchField {
+ display:block;
+ position:absolute;
+ height:19px;
+ background:url('search_m.png') repeat-x;
+ border:none;
+ width:116px;
+ margin-left:20px;
+ padding-left:4px;
+ color: #909090;
+ outline: none;
+ font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+ margin-left:15px;
+}
+
+#MSearchBox .right {
+ display:block;
+ position:absolute;
+ right:10px;
+ top:0px;
+ width:20px;
+ height:19px;
+ background:url('search_r.png') no-repeat;
+ background-position:left;
+}
+
+#MSearchClose {
+ display: none;
+ position: absolute;
+ top: 4px;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+.left #MSearchClose {
+ left: 6px;
+}
+
+.right #MSearchClose {
+ right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #90A5CE;
+ background-color: #F9FAFC;
+ z-index: 1;
+ 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 Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #3D578C;
+ 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 #000;
+ background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+}
+
+.SRResult {
+ display: none;
+}
+
+DIV.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
diff --git a/CMSIS/Documentation/Pack/html/search/search.js b/CMSIS/Documentation/Pack/html/search/search.js
new file mode 100644
index 0000000..ed01575
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/search.js
@@ -0,0 +1,797 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+ 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101101000000000101001001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101101000000000101001001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "pages"
+};
+
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.insideFrame = inFrame;
+ this.searchLabel = label;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ if (this.insideFrame)
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ left += searchField.offsetWidth + 6;
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ left -= searchSelectWindow.offsetWidth;
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+ else
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else if (window.frames.MSearchResults.searchResults)
+ {
+ var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='&#8226;';
+ }
+ else
+ {
+ node.innerHTML='&#160;';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // 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 hexCode;
+ if (code<16)
+ {
+ hexCode="0"+code.toString(16);
+ }
+ else
+ {
+ hexCode=code.toString(16);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1')
+ {
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline';
+ if (this.insideFrame)
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ domPopupSearchResultsWindow.style.position = 'relative';
+ domPopupSearchResultsWindow.style.display = 'block';
+ var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ domPopupSearchResults.style.width = width + 'px';
+ }
+ else
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ }
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- 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';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ 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 == 'DIV' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName == '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
+ {
+ parent.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
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.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
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.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()
+{
+ var results = document.getElementById("SRResults");
+ for (var e=0; e<searchData.length; e++)
+ {
+ var id = searchData[e][0];
+ var srResult = document.createElement('div');
+ srResult.setAttribute('id','SR_'+id);
+ setClassAttr(srResult,'SRResult');
+ var srEntry = document.createElement('div');
+ setClassAttr(srEntry,'SREntry');
+ var srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+e);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ setClassAttr(srLink,'SRSymbol');
+ srLink.innerHTML = searchData[e][1][0];
+ srEntry.appendChild(srLink);
+ if (searchData[e][1].length==2) // single result
+ {
+ srLink.setAttribute('href',searchData[e][1][1][0]);
+ if (searchData[e][1][1][1])
+ {
+ srLink.setAttribute('target','_parent');
+ }
+ var srScope = document.createElement('span');
+ setClassAttr(srScope,'SRScope');
+ srScope.innerHTML = searchData[e][1][1][2];
+ srEntry.appendChild(srScope);
+ }
+ else // multiple results
+ {
+ srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+ var srChildren = document.createElement('div');
+ setClassAttr(srChildren,'SRChildren');
+ for (var c=0; c<searchData[e][1].length-1; c++)
+ {
+ var srChild = document.createElement('a');
+ srChild.setAttribute('id','Item'+e+'_c'+c);
+ setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+ setClassAttr(srChild,'SRScope');
+ srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ if (searchData[e][1][c+1][1])
+ {
+ srChild.setAttribute('target','_parent');
+ }
+ srChild.innerHTML = searchData[e][1][c+1][2];
+ srChildren.appendChild(srChild);
+ }
+ srEntry.appendChild(srChildren);
+ }
+ srResult.appendChild(srEntry);
+ results.appendChild(srResult);
+ }
+}
+
diff --git a/CMSIS/Documentation/Pack/html/search/search_l.png b/CMSIS/Documentation/Pack/html/search/search_l.png
new file mode 100644
index 0000000..c872f4d
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/search_l.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/search/search_m.png b/CMSIS/Documentation/Pack/html/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/search_m.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/search/search_r.png b/CMSIS/Documentation/Pack/html/search/search_r.png
new file mode 100644
index 0000000..97ee8b4
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/search/search_r.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/simplepack_rte.png b/CMSIS/Documentation/Pack/html/simplepack_rte.png
new file mode 100644
index 0000000..e5c824e
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/simplepack_rte.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/sync_off.png b/CMSIS/Documentation/Pack/html/sync_off.png
new file mode 100644
index 0000000..3b443fc
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/sync_off.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/sync_on.png b/CMSIS/Documentation/Pack/html/sync_on.png
new file mode 100644
index 0000000..e08320f
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/sync_on.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/tab_a.png b/CMSIS/Documentation/Pack/html/tab_a.png
new file mode 100644
index 0000000..3b725c4
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/tab_a.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/tab_b.png b/CMSIS/Documentation/Pack/html/tab_b.png
new file mode 100644
index 0000000..5f6601a
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/tab_b.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/tab_h.png b/CMSIS/Documentation/Pack/html/tab_h.png
new file mode 100644
index 0000000..fd5cb70
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/tab_h.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/tab_s.png b/CMSIS/Documentation/Pack/html/tab_s.png
new file mode 100644
index 0000000..ab478c9
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/tab_s.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/tab_topnav.png b/CMSIS/Documentation/Pack/html/tab_topnav.png
new file mode 100644
index 0000000..b257b77
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/tab_topnav.png
Binary files differ
diff --git a/CMSIS/Documentation/Pack/html/tabs.css b/CMSIS/Documentation/Pack/html/tabs.css
new file mode 100644
index 0000000..ffbab50
--- /dev/null
+++ b/CMSIS/Documentation/Pack/html/tabs.css
@@ -0,0 +1,71 @@
+.tabs, .tabs1, .tabs2, .tabs3 {
+ background-image: url('tab_b.png');
+ width: 100%;
+ z-index: 101;
+ font-size: 10px;
+}
+
+.tabs1 {
+ background-image: url('tab_topnav.png');
+ font-size: 12px;
+}
+
+.tabs2 {
+ font-size: 10px;
+}
+.tabs3 {
+ font-size: 9px;
+}
+
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
+ line-height: 24px;
+}
+
+.tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_b.png');
+ list-style: none;
+}
+
+.tabs1 .tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_topnav.png');
+ list-style: none;
+}
+
+.tablist a {
+ display: block;
+ padding: 0 20px;
+ font-weight: bold;
+ background-image:url('tab_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color: #283A5D;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+ outline: none;
+}
+
+.tabs3 .tablist a {
+ padding: 0 10px;
+}
+
+.tablist a:hover {
+ background-image: url('tab_h.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+ text-decoration: none;
+}
+
+.tablist li.current a {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}