ceedling 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (991) hide show
  1. data/.gitignore +4 -0
  2. data/.vim +1 -0
  3. data/Gemfile +3 -0
  4. data/LICENSE +19 -0
  5. data/Rakefile +18 -0
  6. data/bin/ceedling +39 -0
  7. data/ceedling.gemspec +23 -0
  8. data/lib/ceedling/version.rb +10 -0
  9. data/lib/ceedling/version.rb.erb +10 -0
  10. data/lib/ceedling.rb +5 -0
  11. data/new_project_template/build/.gitkeep +0 -0
  12. data/new_project_template/project.yml +65 -0
  13. data/new_project_template/rakefile.rb +4 -0
  14. data/new_project_template/src/.gitkeep +0 -0
  15. data/new_project_template/test/.gitkeep +0 -0
  16. data/new_project_template/test/support/.gitkeep +0 -0
  17. data/new_project_template/vendor/ceedling/config/test_environment.rb +12 -0
  18. data/new_project_template/vendor/ceedling/docs/Ceedling Packet.odt +0 -0
  19. data/new_project_template/vendor/ceedling/docs/Ceedling Packet.pdf +0 -0
  20. data/new_project_template/vendor/ceedling/docs/CeedlingLogo.png +0 -0
  21. data/new_project_template/vendor/ceedling/examples/temp_sensor/gcc.yml +42 -0
  22. data/new_project_template/vendor/ceedling/examples/temp_sensor/iar_v4.yml +91 -0
  23. data/new_project_template/vendor/ceedling/examples/temp_sensor/iar_v5.yml +80 -0
  24. data/new_project_template/vendor/ceedling/examples/temp_sensor/project.yml +65 -0
  25. data/new_project_template/vendor/ceedling/examples/temp_sensor/rakefile.rb +5 -0
  26. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcConductor.c +42 -0
  27. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcConductor.h +13 -0
  28. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcHardware.c +27 -0
  29. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcHardware.h +11 -0
  30. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcHardwareConfigurator.c +18 -0
  31. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcHardwareConfigurator.h +10 -0
  32. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcModel.c +33 -0
  33. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcModel.h +13 -0
  34. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcTemperatureSensor.c +51 -0
  35. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/AdcTemperatureSensor.h +10 -0
  36. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/Executor.c +25 -0
  37. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/Executor.h +9 -0
  38. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/IntrinsicsWrapper.c +18 -0
  39. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/IntrinsicsWrapper.h +7 -0
  40. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/Main.c +46 -0
  41. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/Main.h +7 -0
  42. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/Model.c +10 -0
  43. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/Model.h +8 -0
  44. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/ModelConfig.h +7 -0
  45. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TaskScheduler.c +72 -0
  46. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TaskScheduler.h +11 -0
  47. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TemperatureCalculator.c +27 -0
  48. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TemperatureCalculator.h +8 -0
  49. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TemperatureFilter.c +39 -0
  50. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TemperatureFilter.h +10 -0
  51. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerConductor.c +15 -0
  52. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerConductor.h +9 -0
  53. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerConfigurator.c +51 -0
  54. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerConfigurator.h +15 -0
  55. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerHardware.c +15 -0
  56. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerHardware.h +8 -0
  57. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerInterruptConfigurator.c +55 -0
  58. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerInterruptConfigurator.h +13 -0
  59. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerInterruptHandler.c +25 -0
  60. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerInterruptHandler.h +10 -0
  61. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerModel.c +9 -0
  62. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/TimerModel.h +8 -0
  63. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/Types.h +90 -0
  64. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +18 -0
  65. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +8 -0
  66. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartConductor.c +21 -0
  67. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartConductor.h +7 -0
  68. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartConfigurator.c +39 -0
  69. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartConfigurator.h +13 -0
  70. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartHardware.c +22 -0
  71. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartHardware.h +9 -0
  72. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartModel.c +34 -0
  73. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartModel.h +10 -0
  74. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartPutChar.c +16 -0
  75. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartPutChar.h +8 -0
  76. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartTransmitBufferStatus.c +7 -0
  77. data/new_project_template/vendor/ceedling/examples/temp_sensor/src/UsartTransmitBufferStatus.h +8 -0
  78. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestAdcConductor.c +121 -0
  79. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestAdcHardware.c +44 -0
  80. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestAdcModel.c +33 -0
  81. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestExecutor.c +36 -0
  82. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestMain.c +24 -0
  83. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestModel.c +20 -0
  84. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestTaskScheduler.c +104 -0
  85. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestTemperatureCalculator.c +33 -0
  86. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestTemperatureFilter.c +69 -0
  87. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestTimerConductor.c +32 -0
  88. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestTimerHardware.c +26 -0
  89. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestTimerModel.c +18 -0
  90. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +21 -0
  91. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestUsartConductor.c +40 -0
  92. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestUsartHardware.c +36 -0
  93. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/TestUsartModel.c +40 -0
  94. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/support/UnityHelper.c +12 -0
  95. data/new_project_template/vendor/ceedling/examples/temp_sensor/test/support/UnityHelper.h +8 -0
  96. data/new_project_template/vendor/ceedling/lib/cacheinator.rb +42 -0
  97. data/new_project_template/vendor/ceedling/lib/cacheinator_helper.rb +12 -0
  98. data/new_project_template/vendor/ceedling/lib/cmock_builder.rb +15 -0
  99. data/new_project_template/vendor/ceedling/lib/configurator.rb +254 -0
  100. data/new_project_template/vendor/ceedling/lib/configurator_builder.rb +408 -0
  101. data/new_project_template/vendor/ceedling/lib/configurator_plugins.rb +96 -0
  102. data/new_project_template/vendor/ceedling/lib/configurator_setup.rb +114 -0
  103. data/new_project_template/vendor/ceedling/lib/configurator_validator.rb +154 -0
  104. data/new_project_template/vendor/ceedling/lib/constants.rb +66 -0
  105. data/new_project_template/vendor/ceedling/lib/defaults.rb +349 -0
  106. data/new_project_template/vendor/ceedling/lib/dependinator.rb +92 -0
  107. data/new_project_template/vendor/ceedling/lib/file_finder.rb +132 -0
  108. data/new_project_template/vendor/ceedling/lib/file_finder_helper.rb +54 -0
  109. data/new_project_template/vendor/ceedling/lib/file_path_utils.rb +177 -0
  110. data/new_project_template/vendor/ceedling/lib/file_system_utils.rb +59 -0
  111. data/new_project_template/vendor/ceedling/lib/file_wrapper.rb +74 -0
  112. data/new_project_template/vendor/ceedling/lib/generator.rb +131 -0
  113. data/new_project_template/vendor/ceedling/lib/generator_test_results.rb +90 -0
  114. data/new_project_template/vendor/ceedling/lib/generator_test_results_sanity_checker.rb +62 -0
  115. data/new_project_template/vendor/ceedling/lib/generator_test_runner.rb +206 -0
  116. data/new_project_template/vendor/ceedling/lib/loginator.rb +31 -0
  117. data/new_project_template/vendor/ceedling/lib/makefile.rb +46 -0
  118. data/new_project_template/vendor/ceedling/lib/objects.yml +278 -0
  119. data/new_project_template/vendor/ceedling/lib/plugin.rb +63 -0
  120. data/new_project_template/vendor/ceedling/lib/plugin_manager.rb +85 -0
  121. data/new_project_template/vendor/ceedling/lib/plugin_manager_helper.rb +19 -0
  122. data/new_project_template/vendor/ceedling/lib/plugin_reportinator.rb +75 -0
  123. data/new_project_template/vendor/ceedling/lib/plugin_reportinator_helper.rb +52 -0
  124. data/new_project_template/vendor/ceedling/lib/preprocessinator.rb +43 -0
  125. data/new_project_template/vendor/ceedling/lib/preprocessinator_extractor.rb +27 -0
  126. data/new_project_template/vendor/ceedling/lib/preprocessinator_file_handler.rb +21 -0
  127. data/new_project_template/vendor/ceedling/lib/preprocessinator_helper.rb +46 -0
  128. data/new_project_template/vendor/ceedling/lib/preprocessinator_includes_handler.rb +55 -0
  129. data/new_project_template/vendor/ceedling/lib/project_config_manager.rb +38 -0
  130. data/new_project_template/vendor/ceedling/lib/project_file_loader.rb +64 -0
  131. data/new_project_template/vendor/ceedling/lib/rake_utils.rb +17 -0
  132. data/new_project_template/vendor/ceedling/lib/rake_wrapper.rb +31 -0
  133. data/new_project_template/vendor/ceedling/lib/rakefile.rb +60 -0
  134. data/new_project_template/vendor/ceedling/lib/release_invoker.rb +29 -0
  135. data/new_project_template/vendor/ceedling/lib/release_invoker_helper.rb +16 -0
  136. data/new_project_template/vendor/ceedling/lib/reportinator.rb +9 -0
  137. data/new_project_template/vendor/ceedling/lib/rules_cmock.rake +9 -0
  138. data/new_project_template/vendor/ceedling/lib/rules_preprocess.rake +26 -0
  139. data/new_project_template/vendor/ceedling/lib/rules_release.rake +63 -0
  140. data/new_project_template/vendor/ceedling/lib/rules_release_aux_dependencies.rake +15 -0
  141. data/new_project_template/vendor/ceedling/lib/rules_tests.rake +49 -0
  142. data/new_project_template/vendor/ceedling/lib/rules_tests_aux_dependencies.rake +15 -0
  143. data/new_project_template/vendor/ceedling/lib/setupinator.rb +45 -0
  144. data/new_project_template/vendor/ceedling/lib/stream_wrapper.rb +20 -0
  145. data/new_project_template/vendor/ceedling/lib/streaminator.rb +41 -0
  146. data/new_project_template/vendor/ceedling/lib/streaminator_helper.rb +15 -0
  147. data/new_project_template/vendor/ceedling/lib/system_wrapper.rb +67 -0
  148. data/new_project_template/vendor/ceedling/lib/task_invoker.rb +85 -0
  149. data/new_project_template/vendor/ceedling/lib/tasks_base.rake +104 -0
  150. data/new_project_template/vendor/ceedling/lib/tasks_filesystem.rake +89 -0
  151. data/new_project_template/vendor/ceedling/lib/tasks_release.rake +22 -0
  152. data/new_project_template/vendor/ceedling/lib/tasks_tests.rake +49 -0
  153. data/new_project_template/vendor/ceedling/lib/tasks_vendor.rake +36 -0
  154. data/new_project_template/vendor/ceedling/lib/test_includes_extractor.rb +81 -0
  155. data/new_project_template/vendor/ceedling/lib/test_invoker.rb +72 -0
  156. data/new_project_template/vendor/ceedling/lib/test_invoker_helper.rb +41 -0
  157. data/new_project_template/vendor/ceedling/lib/tool_executor.rb +178 -0
  158. data/new_project_template/vendor/ceedling/lib/tool_executor_helper.rb +57 -0
  159. data/new_project_template/vendor/ceedling/lib/verbosinator.rb +10 -0
  160. data/new_project_template/vendor/ceedling/lib/yaml_wrapper.rb +16 -0
  161. data/new_project_template/vendor/ceedling/plugins/stdout_ide_tests_report/stdout_ide_tests_report.rb +44 -0
  162. data/new_project_template/vendor/ceedling/plugins/stdout_ide_tests_report/stdout_ide_tests_report.yml +4 -0
  163. data/new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/stdout_pretty_tests_report.rb +108 -0
  164. data/new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/stdout_pretty_tests_report.yml +4 -0
  165. data/new_project_template/vendor/ceedling/plugins/xml_tests_report/xml_tests_report.rb +106 -0
  166. data/new_project_template/vendor/ceedling/rakefile.rb +59 -0
  167. data/new_project_template/vendor/ceedling/rakefile_helper.rb +23 -0
  168. data/new_project_template/vendor/ceedling/release/build.info +1 -0
  169. data/new_project_template/vendor/ceedling/release/version.info +1 -0
  170. data/new_project_template/vendor/ceedling/test/integration/paths.yml +17 -0
  171. data/new_project_template/vendor/ceedling/test/integration/paths_test.rb +80 -0
  172. data/new_project_template/vendor/ceedling/test/integration/rake_rules_aux_dependencies_test.rb +75 -0
  173. data/new_project_template/vendor/ceedling/test/integration/rake_rules_cmock_test.rb +74 -0
  174. data/new_project_template/vendor/ceedling/test/integration/rake_rules_preprocess_test.rb +178 -0
  175. data/new_project_template/vendor/ceedling/test/integration/rake_rules_test.rb +268 -0
  176. data/new_project_template/vendor/ceedling/test/integration/rake_tasks_test.rb +103 -0
  177. data/new_project_template/vendor/ceedling/test/integration_test_helper.rb +34 -0
  178. data/new_project_template/vendor/ceedling/test/rakefile_rules.rb +10 -0
  179. data/new_project_template/vendor/ceedling/test/rakefile_rules_aux_dependencies.rb +10 -0
  180. data/new_project_template/vendor/ceedling/test/rakefile_rules_cmock.rb +10 -0
  181. data/new_project_template/vendor/ceedling/test/rakefile_rules_preprocess.rb +10 -0
  182. data/new_project_template/vendor/ceedling/test/rakefile_tasks.rb +10 -0
  183. data/new_project_template/vendor/ceedling/test/system/file_system_dependencies.yml +20 -0
  184. data/new_project_template/vendor/ceedling/test/system/file_system_kitchen_sink.yml +20 -0
  185. data/new_project_template/vendor/ceedling/test/system/file_system_mocks.yml +20 -0
  186. data/new_project_template/vendor/ceedling/test/system/file_system_preprocess.yml +20 -0
  187. data/new_project_template/vendor/ceedling/test/system/file_system_simple.yml +20 -0
  188. data/new_project_template/vendor/ceedling/test/system/file_system_test.rb +78 -0
  189. data/new_project_template/vendor/ceedling/test/system/mocks/include/a_file.h +2 -0
  190. data/new_project_template/vendor/ceedling/test/system/mocks/include/other_stuff.h +2 -0
  191. data/new_project_template/vendor/ceedling/test/system/mocks/include/stuff.h +3 -0
  192. data/new_project_template/vendor/ceedling/test/system/mocks/source/a_file.c +9 -0
  193. data/new_project_template/vendor/ceedling/test/system/mocks/test/test_a_file.c +41 -0
  194. data/new_project_template/vendor/ceedling/test/system/mocks/test/test_no_file.c +14 -0
  195. data/new_project_template/vendor/ceedling/test/system/project_mocks.yml +43 -0
  196. data/new_project_template/vendor/ceedling/test/system/project_mocks_test.rb +38 -0
  197. data/new_project_template/vendor/ceedling/test/system/project_simple.yml +36 -0
  198. data/new_project_template/vendor/ceedling/test/system/project_simple_test.rb +39 -0
  199. data/new_project_template/vendor/ceedling/test/system/rule_mocks_test.rb +44 -0
  200. data/new_project_template/vendor/ceedling/test/system/rule_runners_test.rb +44 -0
  201. data/new_project_template/vendor/ceedling/test/system/simple/include/other_stuff.h +2 -0
  202. data/new_project_template/vendor/ceedling/test/system/simple/include/stuff.h +3 -0
  203. data/new_project_template/vendor/ceedling/test/system/simple/source/other_stuff.c +6 -0
  204. data/new_project_template/vendor/ceedling/test/system/simple/source/stuff.c +7 -0
  205. data/new_project_template/vendor/ceedling/test/system/simple/test/test_other_stuff.c +30 -0
  206. data/new_project_template/vendor/ceedling/test/system/simple/test/test_stuff.c +51 -0
  207. data/new_project_template/vendor/ceedling/test/system_test_helper.rb +73 -0
  208. data/new_project_template/vendor/ceedling/test/test_helper.rb +93 -0
  209. data/new_project_template/vendor/ceedling/test/unit/busted/configurator_builder_test.rb +571 -0
  210. data/new_project_template/vendor/ceedling/test/unit/busted/configurator_helper_test.rb +234 -0
  211. data/new_project_template/vendor/ceedling/test/unit/busted/configurator_test.rb +232 -0
  212. data/new_project_template/vendor/ceedling/test/unit/busted/configurator_validator_test.rb +169 -0
  213. data/new_project_template/vendor/ceedling/test/unit/busted/deep_merge_fix_test.rb +55 -0
  214. data/new_project_template/vendor/ceedling/test/unit/busted/dependinator_test.rb +129 -0
  215. data/new_project_template/vendor/ceedling/test/unit/busted/file_finder_helper_test.rb +45 -0
  216. data/new_project_template/vendor/ceedling/test/unit/busted/file_finder_test.rb +114 -0
  217. data/new_project_template/vendor/ceedling/test/unit/busted/file_path_utils_test.rb +97 -0
  218. data/new_project_template/vendor/ceedling/test/unit/busted/file_system_utils_test.rb +21 -0
  219. data/new_project_template/vendor/ceedling/test/unit/busted/generator_test.rb +187 -0
  220. data/new_project_template/vendor/ceedling/test/unit/busted/generator_test_results_test.rb +129 -0
  221. data/new_project_template/vendor/ceedling/test/unit/busted/generator_test_runner_test.rb +478 -0
  222. data/new_project_template/vendor/ceedling/test/unit/busted/preprocessinator_extractor_test.rb +729 -0
  223. data/new_project_template/vendor/ceedling/test/unit/busted/preprocessinator_file_handler_test.rb +38 -0
  224. data/new_project_template/vendor/ceedling/test/unit/busted/preprocessinator_helper_test.rb +156 -0
  225. data/new_project_template/vendor/ceedling/test/unit/busted/preprocessinator_includes_handler_test.rb +93 -0
  226. data/new_project_template/vendor/ceedling/test/unit/busted/preprocessinator_test.rb +57 -0
  227. data/new_project_template/vendor/ceedling/test/unit/busted/project_file_loader_test.rb +142 -0
  228. data/new_project_template/vendor/ceedling/test/unit/busted/setupinator_test.rb +45 -0
  229. data/new_project_template/vendor/ceedling/test/unit/busted/streaminator_test.rb +49 -0
  230. data/new_project_template/vendor/ceedling/test/unit/busted/task_invoker_test.rb +69 -0
  231. data/new_project_template/vendor/ceedling/test/unit/busted/test_includes_extractor_test.rb +111 -0
  232. data/new_project_template/vendor/ceedling/test/unit/busted/test_invoker_helper_test.rb +62 -0
  233. data/new_project_template/vendor/ceedling/test/unit/busted/test_invoker_test.rb +47 -0
  234. data/new_project_template/vendor/ceedling/test/unit/busted/tool_executor_helper_test.rb +100 -0
  235. data/new_project_template/vendor/ceedling/test/unit/busted/tool_executor_test.rb +351 -0
  236. data/new_project_template/vendor/ceedling/test/unit/busted/verbosinator_test.rb +65 -0
  237. data/new_project_template/vendor/ceedling/test/unit_test_helper.rb +16 -0
  238. data/new_project_template/vendor/ceedling/vendor/behaviors/Manifest.txt +9 -0
  239. data/new_project_template/vendor/ceedling/vendor/behaviors/Rakefile +19 -0
  240. data/new_project_template/vendor/ceedling/vendor/behaviors/lib/behaviors/reporttask.rb +158 -0
  241. data/new_project_template/vendor/ceedling/vendor/behaviors/lib/behaviors.rb +76 -0
  242. data/new_project_template/vendor/ceedling/vendor/behaviors/test/behaviors_tasks_test.rb +73 -0
  243. data/new_project_template/vendor/ceedling/vendor/behaviors/test/behaviors_test.rb +50 -0
  244. data/new_project_template/vendor/ceedling/vendor/behaviors/test/tasks_test/Rakefile +19 -0
  245. data/new_project_template/vendor/ceedling/vendor/behaviors/test/tasks_test/lib/user.rb +2 -0
  246. data/new_project_template/vendor/ceedling/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -0
  247. data/new_project_template/vendor/ceedling/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  248. data/new_project_template/vendor/ceedling/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  249. data/new_project_template/vendor/ceedling/vendor/c_exception/docs/license.txt +30 -0
  250. data/new_project_template/vendor/ceedling/vendor/c_exception/docs/readme.txt +236 -0
  251. data/new_project_template/vendor/ceedling/vendor/c_exception/lib/CException.c +39 -0
  252. data/new_project_template/vendor/ceedling/vendor/c_exception/lib/CException.h +70 -0
  253. data/new_project_template/vendor/ceedling/vendor/c_exception/makefile +24 -0
  254. data/new_project_template/vendor/ceedling/vendor/c_exception/rakefile.rb +41 -0
  255. data/new_project_template/vendor/ceedling/vendor/c_exception/release/build.info +2 -0
  256. data/new_project_template/vendor/ceedling/vendor/c_exception/release/version.info +2 -0
  257. data/new_project_template/vendor/ceedling/vendor/c_exception/test/CExceptionConfig.h +27 -0
  258. data/new_project_template/vendor/ceedling/vendor/c_exception/test/TestException.c +291 -0
  259. data/new_project_template/vendor/ceedling/vendor/c_exception/test/TestException_Runner.c +62 -0
  260. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +94 -0
  261. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +39 -0
  262. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -0
  263. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -0
  264. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +303 -0
  265. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +23 -0
  266. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +126 -0
  267. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  268. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  269. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +217 -0
  270. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/docs/license.txt +31 -0
  271. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/helper/UnityHelper.c +10 -0
  272. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/helper/UnityHelper.h +12 -0
  273. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/makefile +40 -0
  274. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/rakefile.rb +32 -0
  275. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/rakefile_helper.rb +260 -0
  276. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/readme.txt +18 -0
  277. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/src/ProductionCode.c +24 -0
  278. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/src/ProductionCode.h +3 -0
  279. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/src/ProductionCode2.c +9 -0
  280. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/src/ProductionCode2.h +2 -0
  281. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/test/TestProductionCode.c +62 -0
  282. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/test/TestProductionCode2.c +26 -0
  283. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/test/no_ruby/TestProductionCode2_Runner.c +46 -0
  284. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/examples/test/no_ruby/TestProductionCode_Runner.c +50 -0
  285. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/build/MakefileWorker.mk +331 -0
  286. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/build/filterGcov.sh +61 -0
  287. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +37 -0
  288. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
  289. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +9 -0
  290. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +381 -0
  291. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +81 -0
  292. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
  293. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
  294. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
  295. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
  296. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +321 -0
  297. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +40 -0
  298. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
  299. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  300. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/makefile +35 -0
  301. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/rakefile.rb +48 -0
  302. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/rakefile_helper.rb +243 -0
  303. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/release/build.info +2 -0
  304. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/release/version.info +2 -0
  305. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/src/unity.c +856 -0
  306. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/src/unity.h +213 -0
  307. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/src/unity_internals.h +355 -0
  308. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/gcc.yml +42 -0
  309. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/gcc_64.yml +43 -0
  310. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/hitech_picc18.yml +101 -0
  311. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/iar_arm_v4.yml +89 -0
  312. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/iar_arm_v5.yml +79 -0
  313. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
  314. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
  315. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
  316. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/iar_msp430.yml +94 -0
  317. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
  318. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +54 -0
  319. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +50 -0
  320. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +76 -0
  321. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +72 -0
  322. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +85 -0
  323. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +85 -0
  324. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +73 -0
  325. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +85 -0
  326. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +85 -0
  327. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +86 -0
  328. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +60 -0
  329. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +63 -0
  330. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +51 -0
  331. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +60 -0
  332. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +63 -0
  333. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +64 -0
  334. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/test_generate_test_runner.rb +94 -0
  335. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -0
  336. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/testdata/sample.yml +9 -0
  337. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/testdata/testsample.c +51 -0
  338. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/testparameterized.c +101 -0
  339. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/test/testunity.c +1510 -0
  340. data/new_project_template/vendor/ceedling/vendor/cmock/config/production_environment.rb +14 -0
  341. data/new_project_template/vendor/ceedling/vendor/cmock/config/test_environment.rb +16 -0
  342. data/new_project_template/vendor/ceedling/vendor/cmock/docs/CMock Summary.odt +0 -0
  343. data/new_project_template/vendor/ceedling/vendor/cmock/docs/CMock Summary.pdf +0 -0
  344. data/new_project_template/vendor/ceedling/vendor/cmock/docs/license.txt +31 -0
  345. data/new_project_template/vendor/ceedling/vendor/cmock/examples/gcc.yml +43 -0
  346. data/new_project_template/vendor/ceedling/vendor/cmock/examples/iar_v4.yml +91 -0
  347. data/new_project_template/vendor/ceedling/vendor/cmock/examples/iar_v5.yml +80 -0
  348. data/new_project_template/vendor/ceedling/vendor/cmock/examples/rakefile.rb +32 -0
  349. data/new_project_template/vendor/ceedling/vendor/cmock/examples/rakefile_helper.rb +274 -0
  350. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AT91SAM7X256.h +2556 -0
  351. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcConductor.c +42 -0
  352. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcConductor.h +11 -0
  353. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcHardware.c +27 -0
  354. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcHardware.h +9 -0
  355. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcHardwareConfigurator.c +18 -0
  356. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcHardwareConfigurator.h +10 -0
  357. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcModel.c +33 -0
  358. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcModel.h +13 -0
  359. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcTemperatureSensor.c +51 -0
  360. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/AdcTemperatureSensor.h +10 -0
  361. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/Executor.c +25 -0
  362. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/Executor.h +9 -0
  363. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/IntrinsicsWrapper.c +18 -0
  364. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/IntrinsicsWrapper.h +7 -0
  365. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/Main.c +46 -0
  366. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/Main.h +7 -0
  367. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/Model.c +10 -0
  368. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/Model.h +8 -0
  369. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/ModelConfig.h +7 -0
  370. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TaskScheduler.c +72 -0
  371. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TaskScheduler.h +11 -0
  372. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TemperatureCalculator.c +27 -0
  373. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TemperatureCalculator.h +6 -0
  374. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TemperatureFilter.c +39 -0
  375. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TemperatureFilter.h +10 -0
  376. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerConductor.c +15 -0
  377. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerConductor.h +9 -0
  378. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerConfigurator.c +51 -0
  379. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerConfigurator.h +15 -0
  380. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerHardware.c +15 -0
  381. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerHardware.h +8 -0
  382. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerInterruptConfigurator.c +55 -0
  383. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerInterruptConfigurator.h +13 -0
  384. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerInterruptHandler.c +25 -0
  385. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerInterruptHandler.h +10 -0
  386. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerModel.c +9 -0
  387. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/TimerModel.h +8 -0
  388. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/Types.h +103 -0
  389. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartBaudRateRegisterCalculator.c +18 -0
  390. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartBaudRateRegisterCalculator.h +6 -0
  391. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartConductor.c +21 -0
  392. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartConductor.h +7 -0
  393. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartConfigurator.c +39 -0
  394. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartConfigurator.h +13 -0
  395. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartHardware.c +22 -0
  396. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartHardware.h +9 -0
  397. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartModel.c +34 -0
  398. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartModel.h +10 -0
  399. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartPutChar.c +16 -0
  400. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartPutChar.h +8 -0
  401. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartTransmitBufferStatus.c +7 -0
  402. data/new_project_template/vendor/ceedling/vendor/cmock/examples/src/UsartTransmitBufferStatus.h +8 -0
  403. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestAdcConductor.c +121 -0
  404. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestAdcHardware.c +44 -0
  405. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestAdcHardwareConfigurator.c +43 -0
  406. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestAdcModel.c +33 -0
  407. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestAdcTemperatureSensor.c +47 -0
  408. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestExecutor.c +36 -0
  409. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestMain.c +24 -0
  410. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestModel.c +20 -0
  411. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestTaskScheduler.c +104 -0
  412. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestTemperatureCalculator.c +33 -0
  413. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestTemperatureFilter.c +69 -0
  414. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestTimerConductor.c +32 -0
  415. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestTimerConfigurator.c +112 -0
  416. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestTimerHardware.c +26 -0
  417. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestTimerInterruptConfigurator.c +78 -0
  418. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestTimerInterruptHandler.c +66 -0
  419. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestTimerModel.c +18 -0
  420. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestUsartBaudRateRegisterCalculator.c +21 -0
  421. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestUsartConductor.c +40 -0
  422. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestUsartConfigurator.c +77 -0
  423. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestUsartHardware.c +37 -0
  424. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestUsartModel.c +40 -0
  425. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestUsartPutChar.c +43 -0
  426. data/new_project_template/vendor/ceedling/vendor/cmock/examples/test/TestUsartTransmitBufferStatus.c +22 -0
  427. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/Resource/SAM7_FLASH.mac +71 -0
  428. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/Resource/SAM7_RAM.mac +94 -0
  429. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/Resource/SAM7_SIM.mac +67 -0
  430. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/Resource/at91SAM7X256_FLASH.xcl +185 -0
  431. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/Resource/at91SAM7X256_RAM.xcl +185 -0
  432. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/Resource/ioat91sam7x256.ddf +2259 -0
  433. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/cmock_demo.dep +3691 -0
  434. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/cmock_demo.ewd +1696 -0
  435. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/cmock_demo.ewp +2581 -0
  436. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/cmock_demo.eww +10 -0
  437. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X-EK.h +61 -0
  438. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256.inc +2314 -0
  439. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256.rdf +4704 -0
  440. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256.tcl +3407 -0
  441. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256_inc.h +2268 -0
  442. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/incIAR/ioat91sam7x256.h +4380 -0
  443. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/incIAR/lib_AT91SAM7X256.h +4211 -0
  444. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/settings/cmock_demo.cspy.bat +32 -0
  445. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/settings/cmock_demo.dbgdt +86 -0
  446. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/settings/cmock_demo.dni +42 -0
  447. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/settings/cmock_demo.wsdt +76 -0
  448. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/srcIAR/Cstartup.s79 +266 -0
  449. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v4/srcIAR/Cstartup_SAM7.c +98 -0
  450. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/Resource/SAM7_FLASH.mac +71 -0
  451. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/Resource/SAM7_RAM.mac +94 -0
  452. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/Resource/SAM7_SIM.mac +67 -0
  453. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/Resource/at91SAM7X256_FLASH.icf +43 -0
  454. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/Resource/at91SAM7X256_RAM.icf +42 -0
  455. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/cmock_demo.dep +4204 -0
  456. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/cmock_demo.ewd +1906 -0
  457. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/cmock_demo.ewp +2426 -0
  458. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/cmock_demo.eww +26 -0
  459. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/incIAR/AT91SAM7X-EK.h +61 -0
  460. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/incIAR/AT91SAM7X256_inc.h +2268 -0
  461. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/incIAR/lib_AT91SAM7X256.h +4211 -0
  462. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/incIAR/project.h +30 -0
  463. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/BasicInterrupt_SAM7X.cspy.bat +33 -0
  464. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/BasicInterrupt_SAM7X.dbgdt +5 -0
  465. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/BasicInterrupt_SAM7X.dni +18 -0
  466. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/BasicInterrupt_SAM7X.wsdt +74 -0
  467. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/BasicInterrupt_SAM7X_FLASH_Debug.jlink +12 -0
  468. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/cmock_demo.cspy.bat +33 -0
  469. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/cmock_demo.dbgdt +85 -0
  470. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/cmock_demo.dni +44 -0
  471. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/cmock_demo.wsdt +73 -0
  472. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/cmock_demo_Binary.jlink +12 -0
  473. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/cmock_demo_FLASH_Debug.jlink +12 -0
  474. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/settings/cmock_demo_RAM_Debug.jlink +12 -0
  475. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/srcIAR/Cstartup.s +299 -0
  476. data/new_project_template/vendor/ceedling/vendor/cmock/iar/iar_v5/srcIAR/Cstartup_SAM7.c +98 -0
  477. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb +65 -0
  478. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_config.rb +123 -0
  479. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_file_writer.rb +33 -0
  480. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator.rb +196 -0
  481. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_array.rb +57 -0
  482. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_callback.rb +78 -0
  483. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +51 -0
  484. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_expect.rb +86 -0
  485. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +85 -0
  486. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_utils.rb +177 -0
  487. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_header_parser.rb +270 -0
  488. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_plugin_manager.rb +40 -0
  489. data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_unityhelper_parser.rb +74 -0
  490. data/new_project_template/vendor/ceedling/vendor/cmock/rakefile.rb +89 -0
  491. data/new_project_template/vendor/ceedling/vendor/cmock/rakefile_helper.rb +383 -0
  492. data/new_project_template/vendor/ceedling/vendor/cmock/release/build.info +2 -0
  493. data/new_project_template/vendor/ceedling/vendor/cmock/release/version.info +2 -0
  494. data/new_project_template/vendor/ceedling/vendor/cmock/src/cmock.c +186 -0
  495. data/new_project_template/vendor/ceedling/vendor/cmock/src/cmock.h +30 -0
  496. data/new_project_template/vendor/ceedling/vendor/cmock/targets/gcc.yml +50 -0
  497. data/new_project_template/vendor/ceedling/vendor/cmock/targets/gcc_32_with_64_support.yml +52 -0
  498. data/new_project_template/vendor/ceedling/vendor/cmock/targets/gcc_64.yml +53 -0
  499. data/new_project_template/vendor/ceedling/vendor/cmock/targets/iar_arm_v4.yml +107 -0
  500. data/new_project_template/vendor/ceedling/vendor/cmock/targets/iar_arm_v5.yml +92 -0
  501. data/new_project_template/vendor/ceedling/vendor/cmock/test/c/TestCMockC.c +280 -0
  502. data/new_project_template/vendor/ceedling/vendor/cmock/test/c/TestCMockC.yml +12 -0
  503. data/new_project_template/vendor/ceedling/vendor/cmock/test/c/TestCMockCDynamic.c +186 -0
  504. data/new_project_template/vendor/ceedling/vendor/cmock/test/c/TestCMockCDynamic.yml +12 -0
  505. data/new_project_template/vendor/ceedling/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +35 -0
  506. data/new_project_template/vendor/ceedling/vendor/cmock/test/c/TestCMockC_Runner.c +37 -0
  507. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/systest_generator.rb +178 -0
  508. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_compilation/config.yml +9 -0
  509. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_compilation/const.h +15 -0
  510. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_compilation/osek.h +275 -0
  511. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_compilation/parsing.h +47 -0
  512. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml +340 -0
  513. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +381 -0
  514. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/array_and_pointer_handling.yml +382 -0
  515. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/basic_expect_and_return.yml +123 -0
  516. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/const_primitives_handling.yml +87 -0
  517. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/enforce_strict_ordering.yml +247 -0
  518. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/expect_and_return_custom_types.yml +108 -0
  519. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/expect_and_return_treat_as.yml +173 -0
  520. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/expect_and_throw.yml +170 -0
  521. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/fancy_pointer_handling.yml +208 -0
  522. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/function_pointer_handling.yml +82 -0
  523. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/ignore_and_return.yml +153 -0
  524. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/newer_standards_stuff1.yml +52 -0
  525. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_1.yml +91 -0
  526. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_2.yml +59 -0
  527. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +222 -0
  528. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return.yml +277 -0
  529. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/stubs_with_callbacks.yml +221 -0
  530. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/unity_64bit_support.yml +82 -0
  531. data/new_project_template/vendor/ceedling/vendor/cmock/test/system/test_interactions/unity_ignores.yml +139 -0
  532. data/new_project_template/vendor/ceedling/vendor/cmock/test/test_helper.rb +44 -0
  533. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_config_test.rb +45 -0
  534. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_config_test.yml +5 -0
  535. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_file_writer_test.rb +30 -0
  536. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_generator_main_test.rb +412 -0
  537. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +114 -0
  538. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +190 -0
  539. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +94 -0
  540. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_generator_plugin_expect_test.rb +206 -0
  541. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +159 -0
  542. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_generator_utils_test.rb +291 -0
  543. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_header_parser_test.rb +1170 -0
  544. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +85 -0
  545. data/new_project_template/vendor/ceedling/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +223 -0
  546. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/behaviors/Manifest.txt +9 -0
  547. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/behaviors/Rakefile +19 -0
  548. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/behaviors/lib/behaviors/reporttask.rb +158 -0
  549. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/behaviors/lib/behaviors.rb +76 -0
  550. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/behaviors/test/behaviors_tasks_test.rb +73 -0
  551. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/behaviors/test/behaviors_test.rb +50 -0
  552. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/behaviors/test/tasks_test/Rakefile +19 -0
  553. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/behaviors/test/tasks_test/lib/user.rb +2 -0
  554. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -0
  555. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  556. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  557. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/docs/license.txt +30 -0
  558. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/docs/readme.txt +236 -0
  559. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/lib/CException.c +39 -0
  560. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/lib/CException.h +70 -0
  561. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/makefile +24 -0
  562. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/rakefile.rb +41 -0
  563. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/release/build.info +2 -0
  564. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/release/version.info +2 -0
  565. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +27 -0
  566. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/test/TestException.c +291 -0
  567. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +62 -0
  568. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +94 -0
  569. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +39 -0
  570. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -0
  571. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -0
  572. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +303 -0
  573. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +23 -0
  574. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +126 -0
  575. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  576. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  577. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +217 -0
  578. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +31 -0
  579. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/helper/UnityHelper.c +10 -0
  580. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/helper/UnityHelper.h +12 -0
  581. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/makefile +40 -0
  582. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/rakefile.rb +32 -0
  583. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/rakefile_helper.rb +260 -0
  584. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/readme.txt +18 -0
  585. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/src/ProductionCode.c +24 -0
  586. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/src/ProductionCode.h +3 -0
  587. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/src/ProductionCode2.c +9 -0
  588. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/src/ProductionCode2.h +2 -0
  589. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/test/TestProductionCode.c +62 -0
  590. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/test/TestProductionCode2.c +26 -0
  591. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/test/no_ruby/TestProductionCode2_Runner.c +46 -0
  592. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/examples/test/no_ruby/TestProductionCode_Runner.c +50 -0
  593. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/build/MakefileWorker.mk +331 -0
  594. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/build/filterGcov.sh +61 -0
  595. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +37 -0
  596. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
  597. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +9 -0
  598. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +381 -0
  599. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +81 -0
  600. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
  601. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
  602. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
  603. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
  604. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +321 -0
  605. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +40 -0
  606. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
  607. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  608. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/makefile +35 -0
  609. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/rakefile.rb +48 -0
  610. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/rakefile_helper.rb +243 -0
  611. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +2 -0
  612. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +2 -0
  613. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +856 -0
  614. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +213 -0
  615. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +355 -0
  616. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/gcc.yml +42 -0
  617. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/gcc_64.yml +43 -0
  618. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/hitech_picc18.yml +101 -0
  619. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_arm_v4.yml +89 -0
  620. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_arm_v5.yml +79 -0
  621. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
  622. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
  623. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
  624. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_msp430.yml +94 -0
  625. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
  626. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +54 -0
  627. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +50 -0
  628. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +76 -0
  629. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +72 -0
  630. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +85 -0
  631. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +85 -0
  632. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +73 -0
  633. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +85 -0
  634. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +85 -0
  635. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +86 -0
  636. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +60 -0
  637. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +63 -0
  638. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +51 -0
  639. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +60 -0
  640. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +63 -0
  641. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +64 -0
  642. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/test_generate_test_runner.rb +94 -0
  643. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -0
  644. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/sample.yml +9 -0
  645. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testsample.c +51 -0
  646. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/testparameterized.c +101 -0
  647. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/c_exception/vendor/unity/test/testunity.c +1510 -0
  648. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/CHANGES +78 -0
  649. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/LICENSE +7 -0
  650. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/README +70 -0
  651. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/Rakefile +8 -0
  652. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/config/environment.rb +12 -0
  653. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/assert_error.rb +23 -0
  654. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/extend_test_unit.rb +14 -0
  655. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/errors.rb +22 -0
  656. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/expectation.rb +229 -0
  657. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/expectation_builder.rb +9 -0
  658. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/expector.rb +26 -0
  659. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/method_cleanout.rb +33 -0
  660. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/mock.rb +180 -0
  661. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/mock_control.rb +53 -0
  662. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/stubbing.rb +210 -0
  663. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/trapper.rb +31 -0
  664. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock/utils.rb +9 -0
  665. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/hardmock.rb +86 -0
  666. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/lib/test_unit_before_after.rb +169 -0
  667. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/rake_tasks/rdoc.rake +19 -0
  668. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/rake_tasks/rdoc_options.rb +4 -0
  669. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/rake_tasks/test.rake +22 -0
  670. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/functional/assert_error_test.rb +52 -0
  671. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/functional/auto_verify_test.rb +178 -0
  672. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/functional/direct_mock_usage_test.rb +396 -0
  673. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/functional/hardmock_test.rb +434 -0
  674. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/functional/stubbing_test.rb +479 -0
  675. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/test_helper.rb +43 -0
  676. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/unit/expectation_builder_test.rb +19 -0
  677. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/unit/expectation_test.rb +372 -0
  678. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/unit/expector_test.rb +57 -0
  679. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/unit/method_cleanout_test.rb +36 -0
  680. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/unit/mock_control_test.rb +175 -0
  681. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/unit/mock_test.rb +279 -0
  682. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/unit/test_unit_before_after_test.rb +452 -0
  683. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/unit/trapper_test.rb +62 -0
  684. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/hardmock/test/unit/verify_error_test.rb +40 -0
  685. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/auto/colour_prompt.rb +94 -0
  686. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/auto/colour_reporter.rb +39 -0
  687. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/auto/generate_config.yml +36 -0
  688. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/auto/generate_module.rb +202 -0
  689. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +303 -0
  690. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/auto/test_file_filter.rb +23 -0
  691. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +126 -0
  692. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/docs/Unity Summary.odt +0 -0
  693. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/docs/Unity Summary.pdf +0 -0
  694. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/docs/Unity Summary.txt +217 -0
  695. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/docs/license.txt +31 -0
  696. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/helper/UnityHelper.c +10 -0
  697. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/helper/UnityHelper.h +12 -0
  698. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/makefile +40 -0
  699. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/rakefile.rb +32 -0
  700. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/rakefile_helper.rb +260 -0
  701. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/readme.txt +18 -0
  702. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/src/ProductionCode.c +24 -0
  703. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/src/ProductionCode.h +3 -0
  704. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/src/ProductionCode2.c +9 -0
  705. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/src/ProductionCode2.h +2 -0
  706. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/test/TestProductionCode.c +62 -0
  707. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/test/TestProductionCode2.c +26 -0
  708. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/test/no_ruby/TestProductionCode2_Runner.c +46 -0
  709. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/examples/test/no_ruby/TestProductionCode_Runner.c +50 -0
  710. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/build/MakefileWorker.mk +331 -0
  711. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/build/filterGcov.sh +61 -0
  712. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +37 -0
  713. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
  714. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/readme.txt +9 -0
  715. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +381 -0
  716. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +81 -0
  717. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
  718. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
  719. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
  720. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
  721. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +321 -0
  722. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +40 -0
  723. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
  724. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  725. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/makefile +35 -0
  726. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/rakefile.rb +48 -0
  727. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/rakefile_helper.rb +243 -0
  728. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/release/build.info +2 -0
  729. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/release/version.info +2 -0
  730. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/src/unity.c +856 -0
  731. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/src/unity.h +213 -0
  732. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/src/unity_internals.h +355 -0
  733. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/gcc.yml +42 -0
  734. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/gcc_64.yml +43 -0
  735. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/hitech_picc18.yml +101 -0
  736. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/iar_arm_v4.yml +89 -0
  737. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/iar_arm_v5.yml +79 -0
  738. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
  739. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
  740. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
  741. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/iar_msp430.yml +94 -0
  742. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
  743. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +54 -0
  744. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +50 -0
  745. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +76 -0
  746. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +72 -0
  747. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +85 -0
  748. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +85 -0
  749. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +73 -0
  750. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +85 -0
  751. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +85 -0
  752. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +86 -0
  753. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +60 -0
  754. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +63 -0
  755. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +51 -0
  756. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +60 -0
  757. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +63 -0
  758. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +64 -0
  759. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/test_generate_test_runner.rb +94 -0
  760. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/testdata/mocksample.c +51 -0
  761. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/testdata/sample.yml +9 -0
  762. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/testdata/testsample.c +51 -0
  763. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/testparameterized.c +101 -0
  764. data/new_project_template/vendor/ceedling/vendor/cmock/vendor/unity/test/testunity.c +1510 -0
  765. data/new_project_template/vendor/ceedling/vendor/constructor/History.rdoc +19 -0
  766. data/new_project_template/vendor/ceedling/vendor/constructor/README.rdoc +72 -0
  767. data/new_project_template/vendor/ceedling/vendor/constructor/Rakefile +33 -0
  768. data/new_project_template/vendor/ceedling/vendor/constructor/homepage/Notes.txt +27 -0
  769. data/new_project_template/vendor/ceedling/vendor/constructor/homepage/Rakefile +15 -0
  770. data/new_project_template/vendor/ceedling/vendor/constructor/homepage/index.erb +27 -0
  771. data/new_project_template/vendor/ceedling/vendor/constructor/homepage/index.html +36 -0
  772. data/new_project_template/vendor/ceedling/vendor/constructor/homepage/page_header.graffle +0 -0
  773. data/new_project_template/vendor/ceedling/vendor/constructor/homepage/page_header.html +9 -0
  774. data/new_project_template/vendor/ceedling/vendor/constructor/homepage/page_header.png +0 -0
  775. data/new_project_template/vendor/ceedling/vendor/constructor/homepage/sample_code.png +0 -0
  776. data/new_project_template/vendor/ceedling/vendor/constructor/homepage/sample_code.rb +12 -0
  777. data/new_project_template/vendor/ceedling/vendor/constructor/lib/constructor.rb +127 -0
  778. data/new_project_template/vendor/ceedling/vendor/constructor/lib/constructor_struct.rb +33 -0
  779. data/new_project_template/vendor/ceedling/vendor/constructor/specs/constructor_spec.rb +407 -0
  780. data/new_project_template/vendor/ceedling/vendor/constructor/specs/constructor_struct_spec.rb +84 -0
  781. data/new_project_template/vendor/ceedling/vendor/deep_merge/MIT-LICENSE +20 -0
  782. data/new_project_template/vendor/ceedling/vendor/deep_merge/README +94 -0
  783. data/new_project_template/vendor/ceedling/vendor/deep_merge/Rakefile +28 -0
  784. data/new_project_template/vendor/ceedling/vendor/deep_merge/lib/deep_merge.rb +211 -0
  785. data/new_project_template/vendor/ceedling/vendor/deep_merge/test/test_deep_merge.rb +553 -0
  786. data/new_project_template/vendor/ceedling/vendor/diy/History.txt +28 -0
  787. data/new_project_template/vendor/ceedling/vendor/diy/README.rdoc +233 -0
  788. data/new_project_template/vendor/ceedling/vendor/diy/Rakefile +33 -0
  789. data/new_project_template/vendor/ceedling/vendor/diy/TODO.txt +9 -0
  790. data/new_project_template/vendor/ceedling/vendor/diy/diy.gemspec +131 -0
  791. data/new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb +36 -0
  792. data/new_project_template/vendor/ceedling/vendor/diy/lib/diy.rb +403 -0
  793. data/new_project_template/vendor/ceedling/vendor/diy/sample_code/car.rb +7 -0
  794. data/new_project_template/vendor/ceedling/vendor/diy/sample_code/chassis.rb +5 -0
  795. data/new_project_template/vendor/ceedling/vendor/diy/sample_code/diy_example.rb +26 -0
  796. data/new_project_template/vendor/ceedling/vendor/diy/sample_code/engine.rb +5 -0
  797. data/new_project_template/vendor/ceedling/vendor/diy/sample_code/objects.yml +10 -0
  798. data/new_project_template/vendor/ceedling/vendor/diy/test/constructor.rb +119 -0
  799. data/new_project_template/vendor/ceedling/vendor/diy/test/diy_test.rb +608 -0
  800. data/new_project_template/vendor/ceedling/vendor/diy/test/factory_test.rb +79 -0
  801. data/new_project_template/vendor/ceedling/vendor/diy/test/files/broken_construction.yml +7 -0
  802. data/new_project_template/vendor/ceedling/vendor/diy/test/files/cat/cat.rb +3 -0
  803. data/new_project_template/vendor/ceedling/vendor/diy/test/files/cat/extra_conflict.yml +5 -0
  804. data/new_project_template/vendor/ceedling/vendor/diy/test/files/cat/heritage.rb +2 -0
  805. data/new_project_template/vendor/ceedling/vendor/diy/test/files/cat/needs_input.yml +3 -0
  806. data/new_project_template/vendor/ceedling/vendor/diy/test/files/cat/the_cat_lineage.rb +1 -0
  807. data/new_project_template/vendor/ceedling/vendor/diy/test/files/dog/dog_model.rb +3 -0
  808. data/new_project_template/vendor/ceedling/vendor/diy/test/files/dog/dog_presenter.rb +3 -0
  809. data/new_project_template/vendor/ceedling/vendor/diy/test/files/dog/dog_view.rb +2 -0
  810. data/new_project_template/vendor/ceedling/vendor/diy/test/files/dog/file_resolver.rb +2 -0
  811. data/new_project_template/vendor/ceedling/vendor/diy/test/files/dog/other_thing.rb +2 -0
  812. data/new_project_template/vendor/ceedling/vendor/diy/test/files/dog/simple.yml +11 -0
  813. data/new_project_template/vendor/ceedling/vendor/diy/test/files/donkey/foo/bar/qux.rb +7 -0
  814. data/new_project_template/vendor/ceedling/vendor/diy/test/files/donkey/foo.rb +8 -0
  815. data/new_project_template/vendor/ceedling/vendor/diy/test/files/factory/beef.rb +5 -0
  816. data/new_project_template/vendor/ceedling/vendor/diy/test/files/factory/dog.rb +6 -0
  817. data/new_project_template/vendor/ceedling/vendor/diy/test/files/factory/factory.yml +19 -0
  818. data/new_project_template/vendor/ceedling/vendor/diy/test/files/factory/farm/llama.rb +7 -0
  819. data/new_project_template/vendor/ceedling/vendor/diy/test/files/factory/farm/pork.rb +7 -0
  820. data/new_project_template/vendor/ceedling/vendor/diy/test/files/factory/kitten.rb +13 -0
  821. data/new_project_template/vendor/ceedling/vendor/diy/test/files/fud/objects.yml +13 -0
  822. data/new_project_template/vendor/ceedling/vendor/diy/test/files/fud/toy.rb +14 -0
  823. data/new_project_template/vendor/ceedling/vendor/diy/test/files/functions/attached_things_builder.rb +2 -0
  824. data/new_project_template/vendor/ceedling/vendor/diy/test/files/functions/invalid_method.yml +5 -0
  825. data/new_project_template/vendor/ceedling/vendor/diy/test/files/functions/method_extractor.rb +3 -0
  826. data/new_project_template/vendor/ceedling/vendor/diy/test/files/functions/nonsingleton_objects.yml +6 -0
  827. data/new_project_template/vendor/ceedling/vendor/diy/test/files/functions/objects.yml +22 -0
  828. data/new_project_template/vendor/ceedling/vendor/diy/test/files/functions/thing.rb +3 -0
  829. data/new_project_template/vendor/ceedling/vendor/diy/test/files/functions/thing_builder.rb +25 -0
  830. data/new_project_template/vendor/ceedling/vendor/diy/test/files/functions/things_builder.rb +3 -0
  831. data/new_project_template/vendor/ceedling/vendor/diy/test/files/gnu/objects.yml +14 -0
  832. data/new_project_template/vendor/ceedling/vendor/diy/test/files/gnu/thinger.rb +7 -0
  833. data/new_project_template/vendor/ceedling/vendor/diy/test/files/goat/base.rb +8 -0
  834. data/new_project_template/vendor/ceedling/vendor/diy/test/files/goat/can.rb +6 -0
  835. data/new_project_template/vendor/ceedling/vendor/diy/test/files/goat/goat.rb +6 -0
  836. data/new_project_template/vendor/ceedling/vendor/diy/test/files/goat/objects.yml +12 -0
  837. data/new_project_template/vendor/ceedling/vendor/diy/test/files/goat/paper.rb +6 -0
  838. data/new_project_template/vendor/ceedling/vendor/diy/test/files/goat/plane.rb +7 -0
  839. data/new_project_template/vendor/ceedling/vendor/diy/test/files/goat/shirt.rb +6 -0
  840. data/new_project_template/vendor/ceedling/vendor/diy/test/files/goat/wings.rb +8 -0
  841. data/new_project_template/vendor/ceedling/vendor/diy/test/files/horse/holder_thing.rb +3 -0
  842. data/new_project_template/vendor/ceedling/vendor/diy/test/files/horse/objects.yml +7 -0
  843. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/animal/bird.rb +5 -0
  844. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/animal/cat.rb +5 -0
  845. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +8 -0
  846. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +7 -0
  847. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/bad_module_specified.yml +8 -0
  848. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/class_name_combine.yml +8 -0
  849. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/hello.txt +1 -0
  850. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/no_module_specified.yml +8 -0
  851. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/objects.yml +21 -0
  852. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/road.rb +2 -0
  853. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/sky.rb +2 -0
  854. data/new_project_template/vendor/ceedling/vendor/diy/test/files/namespace/subcontext.yml +22 -0
  855. data/new_project_template/vendor/ceedling/vendor/diy/test/files/non_singleton/air.rb +2 -0
  856. data/new_project_template/vendor/ceedling/vendor/diy/test/files/non_singleton/fat_cat.rb +3 -0
  857. data/new_project_template/vendor/ceedling/vendor/diy/test/files/non_singleton/objects.yml +19 -0
  858. data/new_project_template/vendor/ceedling/vendor/diy/test/files/non_singleton/pig.rb +3 -0
  859. data/new_project_template/vendor/ceedling/vendor/diy/test/files/non_singleton/thread_spinner.rb +3 -0
  860. data/new_project_template/vendor/ceedling/vendor/diy/test/files/non_singleton/tick.rb +3 -0
  861. data/new_project_template/vendor/ceedling/vendor/diy/test/files/non_singleton/yard.rb +2 -0
  862. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/core_model.rb +3 -0
  863. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/core_presenter.rb +3 -0
  864. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/core_view.rb +1 -0
  865. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/data_source.rb +1 -0
  866. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/fringe_model.rb +3 -0
  867. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/fringe_presenter.rb +3 -0
  868. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/fringe_view.rb +1 -0
  869. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/giant_squid.rb +3 -0
  870. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/krill.rb +2 -0
  871. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/my_objects.yml +21 -0
  872. data/new_project_template/vendor/ceedling/vendor/diy/test/files/yak/sub_sub_context_test.yml +27 -0
  873. data/new_project_template/vendor/ceedling/vendor/diy/test/test_helper.rb +55 -0
  874. data/new_project_template/vendor/ceedling/vendor/hardmock/CHANGES +78 -0
  875. data/new_project_template/vendor/ceedling/vendor/hardmock/LICENSE +7 -0
  876. data/new_project_template/vendor/ceedling/vendor/hardmock/README +70 -0
  877. data/new_project_template/vendor/ceedling/vendor/hardmock/Rakefile +8 -0
  878. data/new_project_template/vendor/ceedling/vendor/hardmock/config/environment.rb +12 -0
  879. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/assert_error.rb +23 -0
  880. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/extend_test_unit.rb +14 -0
  881. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/errors.rb +22 -0
  882. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/expectation.rb +229 -0
  883. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/expectation_builder.rb +9 -0
  884. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/expector.rb +26 -0
  885. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/method_cleanout.rb +33 -0
  886. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/mock.rb +180 -0
  887. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/mock_control.rb +53 -0
  888. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/stubbing.rb +210 -0
  889. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/trapper.rb +31 -0
  890. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock/utils.rb +9 -0
  891. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/hardmock.rb +86 -0
  892. data/new_project_template/vendor/ceedling/vendor/hardmock/lib/test_unit_before_after.rb +169 -0
  893. data/new_project_template/vendor/ceedling/vendor/hardmock/rake_tasks/rdoc.rake +19 -0
  894. data/new_project_template/vendor/ceedling/vendor/hardmock/rake_tasks/rdoc_options.rb +4 -0
  895. data/new_project_template/vendor/ceedling/vendor/hardmock/rake_tasks/test.rake +22 -0
  896. data/new_project_template/vendor/ceedling/vendor/hardmock/test/functional/assert_error_test.rb +52 -0
  897. data/new_project_template/vendor/ceedling/vendor/hardmock/test/functional/auto_verify_test.rb +178 -0
  898. data/new_project_template/vendor/ceedling/vendor/hardmock/test/functional/direct_mock_usage_test.rb +396 -0
  899. data/new_project_template/vendor/ceedling/vendor/hardmock/test/functional/hardmock_test.rb +434 -0
  900. data/new_project_template/vendor/ceedling/vendor/hardmock/test/functional/stubbing_test.rb +479 -0
  901. data/new_project_template/vendor/ceedling/vendor/hardmock/test/test_helper.rb +43 -0
  902. data/new_project_template/vendor/ceedling/vendor/hardmock/test/unit/expectation_builder_test.rb +19 -0
  903. data/new_project_template/vendor/ceedling/vendor/hardmock/test/unit/expectation_test.rb +372 -0
  904. data/new_project_template/vendor/ceedling/vendor/hardmock/test/unit/expector_test.rb +57 -0
  905. data/new_project_template/vendor/ceedling/vendor/hardmock/test/unit/method_cleanout_test.rb +36 -0
  906. data/new_project_template/vendor/ceedling/vendor/hardmock/test/unit/mock_control_test.rb +175 -0
  907. data/new_project_template/vendor/ceedling/vendor/hardmock/test/unit/mock_test.rb +279 -0
  908. data/new_project_template/vendor/ceedling/vendor/hardmock/test/unit/test_unit_before_after_test.rb +452 -0
  909. data/new_project_template/vendor/ceedling/vendor/hardmock/test/unit/trapper_test.rb +62 -0
  910. data/new_project_template/vendor/ceedling/vendor/hardmock/test/unit/verify_error_test.rb +40 -0
  911. data/new_project_template/vendor/ceedling/vendor/unity/auto/colour_prompt.rb +94 -0
  912. data/new_project_template/vendor/ceedling/vendor/unity/auto/colour_reporter.rb +39 -0
  913. data/new_project_template/vendor/ceedling/vendor/unity/auto/generate_config.yml +36 -0
  914. data/new_project_template/vendor/ceedling/vendor/unity/auto/generate_module.rb +202 -0
  915. data/new_project_template/vendor/ceedling/vendor/unity/auto/generate_test_runner.rb +303 -0
  916. data/new_project_template/vendor/ceedling/vendor/unity/auto/test_file_filter.rb +23 -0
  917. data/new_project_template/vendor/ceedling/vendor/unity/auto/unity_test_summary.rb +126 -0
  918. data/new_project_template/vendor/ceedling/vendor/unity/docs/Unity Summary.odt +0 -0
  919. data/new_project_template/vendor/ceedling/vendor/unity/docs/Unity Summary.pdf +0 -0
  920. data/new_project_template/vendor/ceedling/vendor/unity/docs/Unity Summary.txt +217 -0
  921. data/new_project_template/vendor/ceedling/vendor/unity/docs/license.txt +31 -0
  922. data/new_project_template/vendor/ceedling/vendor/unity/examples/helper/UnityHelper.c +10 -0
  923. data/new_project_template/vendor/ceedling/vendor/unity/examples/helper/UnityHelper.h +12 -0
  924. data/new_project_template/vendor/ceedling/vendor/unity/examples/makefile +40 -0
  925. data/new_project_template/vendor/ceedling/vendor/unity/examples/rakefile.rb +32 -0
  926. data/new_project_template/vendor/ceedling/vendor/unity/examples/rakefile_helper.rb +260 -0
  927. data/new_project_template/vendor/ceedling/vendor/unity/examples/readme.txt +18 -0
  928. data/new_project_template/vendor/ceedling/vendor/unity/examples/src/ProductionCode.c +24 -0
  929. data/new_project_template/vendor/ceedling/vendor/unity/examples/src/ProductionCode.h +3 -0
  930. data/new_project_template/vendor/ceedling/vendor/unity/examples/src/ProductionCode2.c +9 -0
  931. data/new_project_template/vendor/ceedling/vendor/unity/examples/src/ProductionCode2.h +2 -0
  932. data/new_project_template/vendor/ceedling/vendor/unity/examples/test/TestProductionCode.c +62 -0
  933. data/new_project_template/vendor/ceedling/vendor/unity/examples/test/TestProductionCode2.c +26 -0
  934. data/new_project_template/vendor/ceedling/vendor/unity/examples/test/no_ruby/TestProductionCode2_Runner.c +46 -0
  935. data/new_project_template/vendor/ceedling/vendor/unity/examples/test/no_ruby/TestProductionCode_Runner.c +50 -0
  936. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/build/MakefileWorker.mk +331 -0
  937. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/build/filterGcov.sh +61 -0
  938. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/rakefile.rb +37 -0
  939. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
  940. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/readme.txt +9 -0
  941. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/src/unity_fixture.c +381 -0
  942. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/src/unity_fixture.h +81 -0
  943. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
  944. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
  945. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
  946. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
  947. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/test/unity_fixture_Test.c +321 -0
  948. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +40 -0
  949. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
  950. data/new_project_template/vendor/ceedling/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  951. data/new_project_template/vendor/ceedling/vendor/unity/makefile +35 -0
  952. data/new_project_template/vendor/ceedling/vendor/unity/rakefile.rb +48 -0
  953. data/new_project_template/vendor/ceedling/vendor/unity/rakefile_helper.rb +243 -0
  954. data/new_project_template/vendor/ceedling/vendor/unity/release/build.info +2 -0
  955. data/new_project_template/vendor/ceedling/vendor/unity/release/version.info +2 -0
  956. data/new_project_template/vendor/ceedling/vendor/unity/src/unity.c +856 -0
  957. data/new_project_template/vendor/ceedling/vendor/unity/src/unity.h +213 -0
  958. data/new_project_template/vendor/ceedling/vendor/unity/src/unity_internals.h +355 -0
  959. data/new_project_template/vendor/ceedling/vendor/unity/targets/gcc.yml +42 -0
  960. data/new_project_template/vendor/ceedling/vendor/unity/targets/gcc_64.yml +43 -0
  961. data/new_project_template/vendor/ceedling/vendor/unity/targets/hitech_picc18.yml +101 -0
  962. data/new_project_template/vendor/ceedling/vendor/unity/targets/iar_arm_v4.yml +89 -0
  963. data/new_project_template/vendor/ceedling/vendor/unity/targets/iar_arm_v5.yml +79 -0
  964. data/new_project_template/vendor/ceedling/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
  965. data/new_project_template/vendor/ceedling/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
  966. data/new_project_template/vendor/ceedling/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
  967. data/new_project_template/vendor/ceedling/vendor/unity/targets/iar_msp430.yml +94 -0
  968. data/new_project_template/vendor/ceedling/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
  969. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_cmd.c +54 -0
  970. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_def.c +50 -0
  971. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_mock_cmd.c +76 -0
  972. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_mock_def.c +72 -0
  973. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_mock_new1.c +85 -0
  974. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_mock_new2.c +85 -0
  975. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_mock_param.c +73 -0
  976. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_mock_run1.c +85 -0
  977. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_mock_run2.c +85 -0
  978. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_mock_yaml.c +86 -0
  979. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_new1.c +60 -0
  980. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_new2.c +63 -0
  981. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_param.c +51 -0
  982. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_run1.c +60 -0
  983. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_run2.c +63 -0
  984. data/new_project_template/vendor/ceedling/vendor/unity/test/expectdata/testsample_yaml.c +64 -0
  985. data/new_project_template/vendor/ceedling/vendor/unity/test/test_generate_test_runner.rb +94 -0
  986. data/new_project_template/vendor/ceedling/vendor/unity/test/testdata/mocksample.c +51 -0
  987. data/new_project_template/vendor/ceedling/vendor/unity/test/testdata/sample.yml +9 -0
  988. data/new_project_template/vendor/ceedling/vendor/unity/test/testdata/testsample.c +51 -0
  989. data/new_project_template/vendor/ceedling/vendor/unity/test/testparameterized.c +101 -0
  990. data/new_project_template/vendor/ceedling/vendor/unity/test/testunity.c +1510 -0
  991. metadata +1058 -0
@@ -0,0 +1,4211 @@
1
+ //* ----------------------------------------------------------------------------
2
+ //* ATMEL Microcontroller Software Support - ROUSSET -
3
+ //* ----------------------------------------------------------------------------
4
+ //* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
5
+ //* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
6
+ //* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
7
+ //* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
8
+ //* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9
+ //* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
10
+ //* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
11
+ //* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
12
+ //* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
13
+ //* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14
+ //* ----------------------------------------------------------------------------
15
+ //* File Name : lib_AT91SAM7X256.h
16
+ //* Object : AT91SAM7X256 inlined functions
17
+ //* Generated : AT91 SW Application Group 01/16/2006 (16:36:21)
18
+ //*
19
+ //* CVS Reference : /lib_MC_SAM7X.h/1.1/Thu Mar 25 15:19:14 2004//
20
+ //* CVS Reference : /lib_pdc.h/1.2/Tue Jul 2 13:29:40 2002//
21
+ //* CVS Reference : /lib_dbgu.h/1.1/Thu Aug 25 12:56:22 2005//
22
+ //* CVS Reference : /lib_VREG_6085B.h/1.1/Tue Feb 1 16:20:47 2005//
23
+ //* CVS Reference : /lib_ssc.h/1.4/Fri Jan 31 12:19:20 2003//
24
+ //* CVS Reference : /lib_spi2.h/1.2/Tue Aug 23 15:37:28 2005//
25
+ //* CVS Reference : /lib_PWM_SAM.h/1.3/Thu Jan 22 10:10:50 2004//
26
+ //* CVS Reference : /lib_tc_1753b.h/1.1/Fri Jan 31 12:20:02 2003//
27
+ //* CVS Reference : /lib_pitc_6079A.h/1.2/Tue Nov 9 14:43:56 2004//
28
+ //* CVS Reference : /lib_adc.h/1.6/Fri Oct 17 09:12:38 2003//
29
+ //* CVS Reference : /lib_pmc_SAM7X.h/1.5/Fri Nov 4 09:41:32 2005//
30
+ //* CVS Reference : /lib_rstc_6098A.h/1.1/Wed Oct 6 10:39:20 2004//
31
+ //* CVS Reference : /lib_rttc_6081A.h/1.1/Wed Oct 6 10:39:38 2004//
32
+ //* CVS Reference : /lib_pio.h/1.3/Fri Jan 31 12:18:56 2003//
33
+ //* CVS Reference : /lib_twi.h/1.3/Mon Jul 19 14:27:58 2004//
34
+ //* CVS Reference : /lib_wdtc_6080A.h/1.1/Wed Oct 6 10:38:30 2004//
35
+ //* CVS Reference : /lib_usart.h/1.5/Thu Nov 21 16:01:54 2002//
36
+ //* CVS Reference : /lib_udp.h/1.5/Tue Aug 30 12:13:47 2005//
37
+ //* CVS Reference : /lib_aic_6075b.h/1.2/Thu Jul 7 07:48:22 2005//
38
+ //* CVS Reference : /lib_can_AT91.h/1.5/Tue Aug 23 15:37:07 2005//
39
+ //* ----------------------------------------------------------------------------
40
+
41
+ #ifndef lib_AT91SAM7X256_H
42
+ #define lib_AT91SAM7X256_H
43
+
44
+ /* *****************************************************************************
45
+ SOFTWARE API FOR AIC
46
+ ***************************************************************************** */
47
+ #define AT91C_AIC_BRANCH_OPCODE ((void (*) ()) 0xE51FFF20) // ldr, pc, [pc, #-&F20]
48
+
49
+ //*----------------------------------------------------------------------------
50
+ //* \fn AT91F_AIC_ConfigureIt
51
+ //* \brief Interrupt Handler Initialization
52
+ //*----------------------------------------------------------------------------
53
+ __inline unsigned int AT91F_AIC_ConfigureIt (
54
+ AT91PS_AIC pAic, // \arg pointer to the AIC registers
55
+ unsigned int irq_id, // \arg interrupt number to initialize
56
+ unsigned int priority, // \arg priority to give to the interrupt
57
+ unsigned int src_type, // \arg activation and sense of activation
58
+ void (*newHandler) () ) // \arg address of the interrupt handler
59
+ {
60
+ unsigned int oldHandler;
61
+ unsigned int mask ;
62
+
63
+ oldHandler = pAic->AIC_SVR[irq_id];
64
+
65
+ mask = 0x1 << irq_id ;
66
+ //* Disable the interrupt on the interrupt controller
67
+ pAic->AIC_IDCR = mask ;
68
+ //* Save the interrupt handler routine pointer and the interrupt priority
69
+ pAic->AIC_SVR[irq_id] = (unsigned int) newHandler ;
70
+ //* Store the Source Mode Register
71
+ pAic->AIC_SMR[irq_id] = src_type | priority ;
72
+ //* Clear the interrupt on the interrupt controller
73
+ pAic->AIC_ICCR = mask ;
74
+
75
+ return oldHandler;
76
+ }
77
+
78
+ //*----------------------------------------------------------------------------
79
+ //* \fn AT91F_AIC_EnableIt
80
+ //* \brief Enable corresponding IT number
81
+ //*----------------------------------------------------------------------------
82
+ __inline void AT91F_AIC_EnableIt (
83
+ AT91PS_AIC pAic, // \arg pointer to the AIC registers
84
+ unsigned int irq_id ) // \arg interrupt number to initialize
85
+ {
86
+ //* Enable the interrupt on the interrupt controller
87
+ pAic->AIC_IECR = 0x1 << irq_id ;
88
+ }
89
+
90
+ //*----------------------------------------------------------------------------
91
+ //* \fn AT91F_AIC_DisableIt
92
+ //* \brief Disable corresponding IT number
93
+ //*----------------------------------------------------------------------------
94
+ __inline void AT91F_AIC_DisableIt (
95
+ AT91PS_AIC pAic, // \arg pointer to the AIC registers
96
+ unsigned int irq_id ) // \arg interrupt number to initialize
97
+ {
98
+ unsigned int mask = 0x1 << irq_id;
99
+ //* Disable the interrupt on the interrupt controller
100
+ pAic->AIC_IDCR = mask ;
101
+ //* Clear the interrupt on the Interrupt Controller ( if one is pending )
102
+ pAic->AIC_ICCR = mask ;
103
+ }
104
+
105
+ //*----------------------------------------------------------------------------
106
+ //* \fn AT91F_AIC_ClearIt
107
+ //* \brief Clear corresponding IT number
108
+ //*----------------------------------------------------------------------------
109
+ __inline void AT91F_AIC_ClearIt (
110
+ AT91PS_AIC pAic, // \arg pointer to the AIC registers
111
+ unsigned int irq_id) // \arg interrupt number to initialize
112
+ {
113
+ //* Clear the interrupt on the Interrupt Controller ( if one is pending )
114
+ pAic->AIC_ICCR = (0x1 << irq_id);
115
+ }
116
+
117
+ //*----------------------------------------------------------------------------
118
+ //* \fn AT91F_AIC_AcknowledgeIt
119
+ //* \brief Acknowledge corresponding IT number
120
+ //*----------------------------------------------------------------------------
121
+ __inline void AT91F_AIC_AcknowledgeIt (
122
+ AT91PS_AIC pAic) // \arg pointer to the AIC registers
123
+ {
124
+ pAic->AIC_EOICR = pAic->AIC_EOICR;
125
+ }
126
+
127
+ //*----------------------------------------------------------------------------
128
+ //* \fn AT91F_AIC_SetExceptionVector
129
+ //* \brief Configure vector handler
130
+ //*----------------------------------------------------------------------------
131
+ __inline unsigned int AT91F_AIC_SetExceptionVector (
132
+ unsigned int *pVector, // \arg pointer to the AIC registers
133
+ void (*Handler) () ) // \arg Interrupt Handler
134
+ {
135
+ unsigned int oldVector = *pVector;
136
+
137
+ if ((unsigned int) Handler == (unsigned int) AT91C_AIC_BRANCH_OPCODE)
138
+ *pVector = (unsigned int) AT91C_AIC_BRANCH_OPCODE;
139
+ else
140
+ *pVector = (((((unsigned int) Handler) - ((unsigned int) pVector) - 0x8) >> 2) & 0x00FFFFFF) | 0xEA000000;
141
+
142
+ return oldVector;
143
+ }
144
+
145
+ //*----------------------------------------------------------------------------
146
+ //* \fn AT91F_AIC_Trig
147
+ //* \brief Trig an IT
148
+ //*----------------------------------------------------------------------------
149
+ __inline void AT91F_AIC_Trig (
150
+ AT91PS_AIC pAic, // \arg pointer to the AIC registers
151
+ unsigned int irq_id) // \arg interrupt number
152
+ {
153
+ pAic->AIC_ISCR = (0x1 << irq_id) ;
154
+ }
155
+
156
+ //*----------------------------------------------------------------------------
157
+ //* \fn AT91F_AIC_IsActive
158
+ //* \brief Test if an IT is active
159
+ //*----------------------------------------------------------------------------
160
+ __inline unsigned int AT91F_AIC_IsActive (
161
+ AT91PS_AIC pAic, // \arg pointer to the AIC registers
162
+ unsigned int irq_id) // \arg Interrupt Number
163
+ {
164
+ return (pAic->AIC_ISR & (0x1 << irq_id));
165
+ }
166
+
167
+ //*----------------------------------------------------------------------------
168
+ //* \fn AT91F_AIC_IsPending
169
+ //* \brief Test if an IT is pending
170
+ //*----------------------------------------------------------------------------
171
+ __inline unsigned int AT91F_AIC_IsPending (
172
+ AT91PS_AIC pAic, // \arg pointer to the AIC registers
173
+ unsigned int irq_id) // \arg Interrupt Number
174
+ {
175
+ return (pAic->AIC_IPR & (0x1 << irq_id));
176
+ }
177
+
178
+ //*----------------------------------------------------------------------------
179
+ //* \fn AT91F_AIC_Open
180
+ //* \brief Set exception vectors and AIC registers to default values
181
+ //*----------------------------------------------------------------------------
182
+ __inline void AT91F_AIC_Open(
183
+ AT91PS_AIC pAic, // \arg pointer to the AIC registers
184
+ void (*IrqHandler) (), // \arg Default IRQ vector exception
185
+ void (*FiqHandler) (), // \arg Default FIQ vector exception
186
+ void (*DefaultHandler) (), // \arg Default Handler set in ISR
187
+ void (*SpuriousHandler) (), // \arg Default Spurious Handler
188
+ unsigned int protectMode) // \arg Debug Control Register
189
+ {
190
+ int i;
191
+
192
+ // Disable all interrupts and set IVR to the default handler
193
+ for (i = 0; i < 32; ++i) {
194
+ AT91F_AIC_DisableIt(pAic, i);
195
+ AT91F_AIC_ConfigureIt(pAic, i, AT91C_AIC_PRIOR_LOWEST, AT91C_AIC_SRCTYPE_HIGH_LEVEL, DefaultHandler);
196
+ }
197
+
198
+ // Set the IRQ exception vector
199
+ AT91F_AIC_SetExceptionVector((unsigned int *) 0x18, IrqHandler);
200
+ // Set the Fast Interrupt exception vector
201
+ AT91F_AIC_SetExceptionVector((unsigned int *) 0x1C, FiqHandler);
202
+
203
+ pAic->AIC_SPU = (unsigned int) SpuriousHandler;
204
+ pAic->AIC_DCR = protectMode;
205
+ }
206
+ /* *****************************************************************************
207
+ SOFTWARE API FOR PDC
208
+ ***************************************************************************** */
209
+ //*----------------------------------------------------------------------------
210
+ //* \fn AT91F_PDC_SetNextRx
211
+ //* \brief Set the next receive transfer descriptor
212
+ //*----------------------------------------------------------------------------
213
+ __inline void AT91F_PDC_SetNextRx (
214
+ AT91PS_PDC pPDC, // \arg pointer to a PDC controller
215
+ char *address, // \arg address to the next bloc to be received
216
+ unsigned int bytes) // \arg number of bytes to be received
217
+ {
218
+ pPDC->PDC_RNPR = (unsigned int) address;
219
+ pPDC->PDC_RNCR = bytes;
220
+ }
221
+
222
+ //*----------------------------------------------------------------------------
223
+ //* \fn AT91F_PDC_SetNextTx
224
+ //* \brief Set the next transmit transfer descriptor
225
+ //*----------------------------------------------------------------------------
226
+ __inline void AT91F_PDC_SetNextTx (
227
+ AT91PS_PDC pPDC, // \arg pointer to a PDC controller
228
+ char *address, // \arg address to the next bloc to be transmitted
229
+ unsigned int bytes) // \arg number of bytes to be transmitted
230
+ {
231
+ pPDC->PDC_TNPR = (unsigned int) address;
232
+ pPDC->PDC_TNCR = bytes;
233
+ }
234
+
235
+ //*----------------------------------------------------------------------------
236
+ //* \fn AT91F_PDC_SetRx
237
+ //* \brief Set the receive transfer descriptor
238
+ //*----------------------------------------------------------------------------
239
+ __inline void AT91F_PDC_SetRx (
240
+ AT91PS_PDC pPDC, // \arg pointer to a PDC controller
241
+ char *address, // \arg address to the next bloc to be received
242
+ unsigned int bytes) // \arg number of bytes to be received
243
+ {
244
+ pPDC->PDC_RPR = (unsigned int) address;
245
+ pPDC->PDC_RCR = bytes;
246
+ }
247
+
248
+ //*----------------------------------------------------------------------------
249
+ //* \fn AT91F_PDC_SetTx
250
+ //* \brief Set the transmit transfer descriptor
251
+ //*----------------------------------------------------------------------------
252
+ __inline void AT91F_PDC_SetTx (
253
+ AT91PS_PDC pPDC, // \arg pointer to a PDC controller
254
+ char *address, // \arg address to the next bloc to be transmitted
255
+ unsigned int bytes) // \arg number of bytes to be transmitted
256
+ {
257
+ pPDC->PDC_TPR = (unsigned int) address;
258
+ pPDC->PDC_TCR = bytes;
259
+ }
260
+
261
+ //*----------------------------------------------------------------------------
262
+ //* \fn AT91F_PDC_EnableTx
263
+ //* \brief Enable transmit
264
+ //*----------------------------------------------------------------------------
265
+ __inline void AT91F_PDC_EnableTx (
266
+ AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
267
+ {
268
+ pPDC->PDC_PTCR = AT91C_PDC_TXTEN;
269
+ }
270
+
271
+ //*----------------------------------------------------------------------------
272
+ //* \fn AT91F_PDC_EnableRx
273
+ //* \brief Enable receive
274
+ //*----------------------------------------------------------------------------
275
+ __inline void AT91F_PDC_EnableRx (
276
+ AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
277
+ {
278
+ pPDC->PDC_PTCR = AT91C_PDC_RXTEN;
279
+ }
280
+
281
+ //*----------------------------------------------------------------------------
282
+ //* \fn AT91F_PDC_DisableTx
283
+ //* \brief Disable transmit
284
+ //*----------------------------------------------------------------------------
285
+ __inline void AT91F_PDC_DisableTx (
286
+ AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
287
+ {
288
+ pPDC->PDC_PTCR = AT91C_PDC_TXTDIS;
289
+ }
290
+
291
+ //*----------------------------------------------------------------------------
292
+ //* \fn AT91F_PDC_DisableRx
293
+ //* \brief Disable receive
294
+ //*----------------------------------------------------------------------------
295
+ __inline void AT91F_PDC_DisableRx (
296
+ AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
297
+ {
298
+ pPDC->PDC_PTCR = AT91C_PDC_RXTDIS;
299
+ }
300
+
301
+ //*----------------------------------------------------------------------------
302
+ //* \fn AT91F_PDC_IsTxEmpty
303
+ //* \brief Test if the current transfer descriptor has been sent
304
+ //*----------------------------------------------------------------------------
305
+ __inline int AT91F_PDC_IsTxEmpty ( // \return return 1 if transfer is complete
306
+ AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
307
+ {
308
+ return !(pPDC->PDC_TCR);
309
+ }
310
+
311
+ //*----------------------------------------------------------------------------
312
+ //* \fn AT91F_PDC_IsNextTxEmpty
313
+ //* \brief Test if the next transfer descriptor has been moved to the current td
314
+ //*----------------------------------------------------------------------------
315
+ __inline int AT91F_PDC_IsNextTxEmpty ( // \return return 1 if transfer is complete
316
+ AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
317
+ {
318
+ return !(pPDC->PDC_TNCR);
319
+ }
320
+
321
+ //*----------------------------------------------------------------------------
322
+ //* \fn AT91F_PDC_IsRxEmpty
323
+ //* \brief Test if the current transfer descriptor has been filled
324
+ //*----------------------------------------------------------------------------
325
+ __inline int AT91F_PDC_IsRxEmpty ( // \return return 1 if transfer is complete
326
+ AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
327
+ {
328
+ return !(pPDC->PDC_RCR);
329
+ }
330
+
331
+ //*----------------------------------------------------------------------------
332
+ //* \fn AT91F_PDC_IsNextRxEmpty
333
+ //* \brief Test if the next transfer descriptor has been moved to the current td
334
+ //*----------------------------------------------------------------------------
335
+ __inline int AT91F_PDC_IsNextRxEmpty ( // \return return 1 if transfer is complete
336
+ AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
337
+ {
338
+ return !(pPDC->PDC_RNCR);
339
+ }
340
+
341
+ //*----------------------------------------------------------------------------
342
+ //* \fn AT91F_PDC_Open
343
+ //* \brief Open PDC: disable TX and RX reset transfer descriptors, re-enable RX and TX
344
+ //*----------------------------------------------------------------------------
345
+ __inline void AT91F_PDC_Open (
346
+ AT91PS_PDC pPDC) // \arg pointer to a PDC controller
347
+ {
348
+ //* Disable the RX and TX PDC transfer requests
349
+ AT91F_PDC_DisableRx(pPDC);
350
+ AT91F_PDC_DisableTx(pPDC);
351
+
352
+ //* Reset all Counter register Next buffer first
353
+ AT91F_PDC_SetNextTx(pPDC, (char *) 0, 0);
354
+ AT91F_PDC_SetNextRx(pPDC, (char *) 0, 0);
355
+ AT91F_PDC_SetTx(pPDC, (char *) 0, 0);
356
+ AT91F_PDC_SetRx(pPDC, (char *) 0, 0);
357
+
358
+ //* Enable the RX and TX PDC transfer requests
359
+ AT91F_PDC_EnableRx(pPDC);
360
+ AT91F_PDC_EnableTx(pPDC);
361
+ }
362
+
363
+ //*----------------------------------------------------------------------------
364
+ //* \fn AT91F_PDC_Close
365
+ //* \brief Close PDC: disable TX and RX reset transfer descriptors
366
+ //*----------------------------------------------------------------------------
367
+ __inline void AT91F_PDC_Close (
368
+ AT91PS_PDC pPDC) // \arg pointer to a PDC controller
369
+ {
370
+ //* Disable the RX and TX PDC transfer requests
371
+ AT91F_PDC_DisableRx(pPDC);
372
+ AT91F_PDC_DisableTx(pPDC);
373
+
374
+ //* Reset all Counter register Next buffer first
375
+ AT91F_PDC_SetNextTx(pPDC, (char *) 0, 0);
376
+ AT91F_PDC_SetNextRx(pPDC, (char *) 0, 0);
377
+ AT91F_PDC_SetTx(pPDC, (char *) 0, 0);
378
+ AT91F_PDC_SetRx(pPDC, (char *) 0, 0);
379
+
380
+ }
381
+
382
+ //*----------------------------------------------------------------------------
383
+ //* \fn AT91F_PDC_SendFrame
384
+ //* \brief Close PDC: disable TX and RX reset transfer descriptors
385
+ //*----------------------------------------------------------------------------
386
+ __inline unsigned int AT91F_PDC_SendFrame(
387
+ AT91PS_PDC pPDC,
388
+ char *pBuffer,
389
+ unsigned int szBuffer,
390
+ char *pNextBuffer,
391
+ unsigned int szNextBuffer )
392
+ {
393
+ if (AT91F_PDC_IsTxEmpty(pPDC)) {
394
+ //* Buffer and next buffer can be initialized
395
+ AT91F_PDC_SetTx(pPDC, pBuffer, szBuffer);
396
+ AT91F_PDC_SetNextTx(pPDC, pNextBuffer, szNextBuffer);
397
+ return 2;
398
+ }
399
+ else if (AT91F_PDC_IsNextTxEmpty(pPDC)) {
400
+ //* Only one buffer can be initialized
401
+ AT91F_PDC_SetNextTx(pPDC, pBuffer, szBuffer);
402
+ return 1;
403
+ }
404
+ else {
405
+ //* All buffer are in use...
406
+ return 0;
407
+ }
408
+ }
409
+
410
+ //*----------------------------------------------------------------------------
411
+ //* \fn AT91F_PDC_ReceiveFrame
412
+ //* \brief Close PDC: disable TX and RX reset transfer descriptors
413
+ //*----------------------------------------------------------------------------
414
+ __inline unsigned int AT91F_PDC_ReceiveFrame (
415
+ AT91PS_PDC pPDC,
416
+ char *pBuffer,
417
+ unsigned int szBuffer,
418
+ char *pNextBuffer,
419
+ unsigned int szNextBuffer )
420
+ {
421
+ if (AT91F_PDC_IsRxEmpty(pPDC)) {
422
+ //* Buffer and next buffer can be initialized
423
+ AT91F_PDC_SetRx(pPDC, pBuffer, szBuffer);
424
+ AT91F_PDC_SetNextRx(pPDC, pNextBuffer, szNextBuffer);
425
+ return 2;
426
+ }
427
+ else if (AT91F_PDC_IsNextRxEmpty(pPDC)) {
428
+ //* Only one buffer can be initialized
429
+ AT91F_PDC_SetNextRx(pPDC, pBuffer, szBuffer);
430
+ return 1;
431
+ }
432
+ else {
433
+ //* All buffer are in use...
434
+ return 0;
435
+ }
436
+ }
437
+ /* *****************************************************************************
438
+ SOFTWARE API FOR DBGU
439
+ ***************************************************************************** */
440
+ //*----------------------------------------------------------------------------
441
+ //* \fn AT91F_DBGU_InterruptEnable
442
+ //* \brief Enable DBGU Interrupt
443
+ //*----------------------------------------------------------------------------
444
+ __inline void AT91F_DBGU_InterruptEnable(
445
+ AT91PS_DBGU pDbgu, // \arg pointer to a DBGU controller
446
+ unsigned int flag) // \arg dbgu interrupt to be enabled
447
+ {
448
+ pDbgu->DBGU_IER = flag;
449
+ }
450
+
451
+ //*----------------------------------------------------------------------------
452
+ //* \fn AT91F_DBGU_InterruptDisable
453
+ //* \brief Disable DBGU Interrupt
454
+ //*----------------------------------------------------------------------------
455
+ __inline void AT91F_DBGU_InterruptDisable(
456
+ AT91PS_DBGU pDbgu, // \arg pointer to a DBGU controller
457
+ unsigned int flag) // \arg dbgu interrupt to be disabled
458
+ {
459
+ pDbgu->DBGU_IDR = flag;
460
+ }
461
+
462
+ //*----------------------------------------------------------------------------
463
+ //* \fn AT91F_DBGU_GetInterruptMaskStatus
464
+ //* \brief Return DBGU Interrupt Mask Status
465
+ //*----------------------------------------------------------------------------
466
+ __inline unsigned int AT91F_DBGU_GetInterruptMaskStatus( // \return DBGU Interrupt Mask Status
467
+ AT91PS_DBGU pDbgu) // \arg pointer to a DBGU controller
468
+ {
469
+ return pDbgu->DBGU_IMR;
470
+ }
471
+
472
+ //*----------------------------------------------------------------------------
473
+ //* \fn AT91F_DBGU_IsInterruptMasked
474
+ //* \brief Test if DBGU Interrupt is Masked
475
+ //*----------------------------------------------------------------------------
476
+ __inline int AT91F_DBGU_IsInterruptMasked(
477
+ AT91PS_DBGU pDbgu, // \arg pointer to a DBGU controller
478
+ unsigned int flag) // \arg flag to be tested
479
+ {
480
+ return (AT91F_DBGU_GetInterruptMaskStatus(pDbgu) & flag);
481
+ }
482
+
483
+ /* *****************************************************************************
484
+ SOFTWARE API FOR PIO
485
+ ***************************************************************************** */
486
+ //*----------------------------------------------------------------------------
487
+ //* \fn AT91F_PIO_CfgPeriph
488
+ //* \brief Enable pins to be drived by peripheral
489
+ //*----------------------------------------------------------------------------
490
+ __inline void AT91F_PIO_CfgPeriph(
491
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
492
+ unsigned int periphAEnable, // \arg PERIPH A to enable
493
+ unsigned int periphBEnable) // \arg PERIPH B to enable
494
+
495
+ {
496
+ pPio->PIO_ASR = periphAEnable;
497
+ pPio->PIO_BSR = periphBEnable;
498
+ pPio->PIO_PDR = (periphAEnable | periphBEnable); // Set in Periph mode
499
+ }
500
+
501
+ //*----------------------------------------------------------------------------
502
+ //* \fn AT91F_PIO_CfgOutput
503
+ //* \brief Enable PIO in output mode
504
+ //*----------------------------------------------------------------------------
505
+ __inline void AT91F_PIO_CfgOutput(
506
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
507
+ unsigned int pioEnable) // \arg PIO to be enabled
508
+ {
509
+ pPio->PIO_PER = pioEnable; // Set in PIO mode
510
+ pPio->PIO_OER = pioEnable; // Configure in Output
511
+ }
512
+
513
+ //*----------------------------------------------------------------------------
514
+ //* \fn AT91F_PIO_CfgInput
515
+ //* \brief Enable PIO in input mode
516
+ //*----------------------------------------------------------------------------
517
+ __inline void AT91F_PIO_CfgInput(
518
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
519
+ unsigned int inputEnable) // \arg PIO to be enabled
520
+ {
521
+ // Disable output
522
+ pPio->PIO_ODR = inputEnable;
523
+ pPio->PIO_PER = inputEnable;
524
+ }
525
+
526
+ //*----------------------------------------------------------------------------
527
+ //* \fn AT91F_PIO_CfgOpendrain
528
+ //* \brief Configure PIO in open drain
529
+ //*----------------------------------------------------------------------------
530
+ __inline void AT91F_PIO_CfgOpendrain(
531
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
532
+ unsigned int multiDrvEnable) // \arg pio to be configured in open drain
533
+ {
534
+ // Configure the multi-drive option
535
+ pPio->PIO_MDDR = ~multiDrvEnable;
536
+ pPio->PIO_MDER = multiDrvEnable;
537
+ }
538
+
539
+ //*----------------------------------------------------------------------------
540
+ //* \fn AT91F_PIO_CfgPullup
541
+ //* \brief Enable pullup on PIO
542
+ //*----------------------------------------------------------------------------
543
+ __inline void AT91F_PIO_CfgPullup(
544
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
545
+ unsigned int pullupEnable) // \arg enable pullup on PIO
546
+ {
547
+ // Connect or not Pullup
548
+ pPio->PIO_PPUDR = ~pullupEnable;
549
+ pPio->PIO_PPUER = pullupEnable;
550
+ }
551
+
552
+ //*----------------------------------------------------------------------------
553
+ //* \fn AT91F_PIO_CfgDirectDrive
554
+ //* \brief Enable direct drive on PIO
555
+ //*----------------------------------------------------------------------------
556
+ __inline void AT91F_PIO_CfgDirectDrive(
557
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
558
+ unsigned int directDrive) // \arg PIO to be configured with direct drive
559
+
560
+ {
561
+ // Configure the Direct Drive
562
+ pPio->PIO_OWDR = ~directDrive;
563
+ pPio->PIO_OWER = directDrive;
564
+ }
565
+
566
+ //*----------------------------------------------------------------------------
567
+ //* \fn AT91F_PIO_CfgInputFilter
568
+ //* \brief Enable input filter on input PIO
569
+ //*----------------------------------------------------------------------------
570
+ __inline void AT91F_PIO_CfgInputFilter(
571
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
572
+ unsigned int inputFilter) // \arg PIO to be configured with input filter
573
+
574
+ {
575
+ // Configure the Direct Drive
576
+ pPio->PIO_IFDR = ~inputFilter;
577
+ pPio->PIO_IFER = inputFilter;
578
+ }
579
+
580
+ //*----------------------------------------------------------------------------
581
+ //* \fn AT91F_PIO_GetInput
582
+ //* \brief Return PIO input value
583
+ //*----------------------------------------------------------------------------
584
+ __inline unsigned int AT91F_PIO_GetInput( // \return PIO input
585
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
586
+ {
587
+ return pPio->PIO_PDSR;
588
+ }
589
+
590
+ //*----------------------------------------------------------------------------
591
+ //* \fn AT91F_PIO_IsInputSet
592
+ //* \brief Test if PIO is input flag is active
593
+ //*----------------------------------------------------------------------------
594
+ __inline int AT91F_PIO_IsInputSet(
595
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
596
+ unsigned int flag) // \arg flag to be tested
597
+ {
598
+ return (AT91F_PIO_GetInput(pPio) & flag);
599
+ }
600
+
601
+
602
+ //*----------------------------------------------------------------------------
603
+ //* \fn AT91F_PIO_SetOutput
604
+ //* \brief Set to 1 output PIO
605
+ //*----------------------------------------------------------------------------
606
+ __inline void AT91F_PIO_SetOutput(
607
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
608
+ unsigned int flag) // \arg output to be set
609
+ {
610
+ pPio->PIO_SODR = flag;
611
+ }
612
+
613
+ //*----------------------------------------------------------------------------
614
+ //* \fn AT91F_PIO_ClearOutput
615
+ //* \brief Set to 0 output PIO
616
+ //*----------------------------------------------------------------------------
617
+ __inline void AT91F_PIO_ClearOutput(
618
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
619
+ unsigned int flag) // \arg output to be cleared
620
+ {
621
+ pPio->PIO_CODR = flag;
622
+ }
623
+
624
+ //*----------------------------------------------------------------------------
625
+ //* \fn AT91F_PIO_ForceOutput
626
+ //* \brief Force output when Direct drive option is enabled
627
+ //*----------------------------------------------------------------------------
628
+ __inline void AT91F_PIO_ForceOutput(
629
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
630
+ unsigned int flag) // \arg output to be forced
631
+ {
632
+ pPio->PIO_ODSR = flag;
633
+ }
634
+
635
+ //*----------------------------------------------------------------------------
636
+ //* \fn AT91F_PIO_Enable
637
+ //* \brief Enable PIO
638
+ //*----------------------------------------------------------------------------
639
+ __inline void AT91F_PIO_Enable(
640
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
641
+ unsigned int flag) // \arg pio to be enabled
642
+ {
643
+ pPio->PIO_PER = flag;
644
+ }
645
+
646
+ //*----------------------------------------------------------------------------
647
+ //* \fn AT91F_PIO_Disable
648
+ //* \brief Disable PIO
649
+ //*----------------------------------------------------------------------------
650
+ __inline void AT91F_PIO_Disable(
651
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
652
+ unsigned int flag) // \arg pio to be disabled
653
+ {
654
+ pPio->PIO_PDR = flag;
655
+ }
656
+
657
+ //*----------------------------------------------------------------------------
658
+ //* \fn AT91F_PIO_GetStatus
659
+ //* \brief Return PIO Status
660
+ //*----------------------------------------------------------------------------
661
+ __inline unsigned int AT91F_PIO_GetStatus( // \return PIO Status
662
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
663
+ {
664
+ return pPio->PIO_PSR;
665
+ }
666
+
667
+ //*----------------------------------------------------------------------------
668
+ //* \fn AT91F_PIO_IsSet
669
+ //* \brief Test if PIO is Set
670
+ //*----------------------------------------------------------------------------
671
+ __inline int AT91F_PIO_IsSet(
672
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
673
+ unsigned int flag) // \arg flag to be tested
674
+ {
675
+ return (AT91F_PIO_GetStatus(pPio) & flag);
676
+ }
677
+
678
+ //*----------------------------------------------------------------------------
679
+ //* \fn AT91F_PIO_OutputEnable
680
+ //* \brief Output Enable PIO
681
+ //*----------------------------------------------------------------------------
682
+ __inline void AT91F_PIO_OutputEnable(
683
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
684
+ unsigned int flag) // \arg pio output to be enabled
685
+ {
686
+ pPio->PIO_OER = flag;
687
+ }
688
+
689
+ //*----------------------------------------------------------------------------
690
+ //* \fn AT91F_PIO_OutputDisable
691
+ //* \brief Output Enable PIO
692
+ //*----------------------------------------------------------------------------
693
+ __inline void AT91F_PIO_OutputDisable(
694
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
695
+ unsigned int flag) // \arg pio output to be disabled
696
+ {
697
+ pPio->PIO_ODR = flag;
698
+ }
699
+
700
+ //*----------------------------------------------------------------------------
701
+ //* \fn AT91F_PIO_GetOutputStatus
702
+ //* \brief Return PIO Output Status
703
+ //*----------------------------------------------------------------------------
704
+ __inline unsigned int AT91F_PIO_GetOutputStatus( // \return PIO Output Status
705
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
706
+ {
707
+ return pPio->PIO_OSR;
708
+ }
709
+
710
+ //*----------------------------------------------------------------------------
711
+ //* \fn AT91F_PIO_IsOuputSet
712
+ //* \brief Test if PIO Output is Set
713
+ //*----------------------------------------------------------------------------
714
+ __inline int AT91F_PIO_IsOutputSet(
715
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
716
+ unsigned int flag) // \arg flag to be tested
717
+ {
718
+ return (AT91F_PIO_GetOutputStatus(pPio) & flag);
719
+ }
720
+
721
+ //*----------------------------------------------------------------------------
722
+ //* \fn AT91F_PIO_InputFilterEnable
723
+ //* \brief Input Filter Enable PIO
724
+ //*----------------------------------------------------------------------------
725
+ __inline void AT91F_PIO_InputFilterEnable(
726
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
727
+ unsigned int flag) // \arg pio input filter to be enabled
728
+ {
729
+ pPio->PIO_IFER = flag;
730
+ }
731
+
732
+ //*----------------------------------------------------------------------------
733
+ //* \fn AT91F_PIO_InputFilterDisable
734
+ //* \brief Input Filter Disable PIO
735
+ //*----------------------------------------------------------------------------
736
+ __inline void AT91F_PIO_InputFilterDisable(
737
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
738
+ unsigned int flag) // \arg pio input filter to be disabled
739
+ {
740
+ pPio->PIO_IFDR = flag;
741
+ }
742
+
743
+ //*----------------------------------------------------------------------------
744
+ //* \fn AT91F_PIO_GetInputFilterStatus
745
+ //* \brief Return PIO Input Filter Status
746
+ //*----------------------------------------------------------------------------
747
+ __inline unsigned int AT91F_PIO_GetInputFilterStatus( // \return PIO Input Filter Status
748
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
749
+ {
750
+ return pPio->PIO_IFSR;
751
+ }
752
+
753
+ //*----------------------------------------------------------------------------
754
+ //* \fn AT91F_PIO_IsInputFilterSet
755
+ //* \brief Test if PIO Input filter is Set
756
+ //*----------------------------------------------------------------------------
757
+ __inline int AT91F_PIO_IsInputFilterSet(
758
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
759
+ unsigned int flag) // \arg flag to be tested
760
+ {
761
+ return (AT91F_PIO_GetInputFilterStatus(pPio) & flag);
762
+ }
763
+
764
+ //*----------------------------------------------------------------------------
765
+ //* \fn AT91F_PIO_GetOutputDataStatus
766
+ //* \brief Return PIO Output Data Status
767
+ //*----------------------------------------------------------------------------
768
+ __inline unsigned int AT91F_PIO_GetOutputDataStatus( // \return PIO Output Data Status
769
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
770
+ {
771
+ return pPio->PIO_ODSR;
772
+ }
773
+
774
+ //*----------------------------------------------------------------------------
775
+ //* \fn AT91F_PIO_InterruptEnable
776
+ //* \brief Enable PIO Interrupt
777
+ //*----------------------------------------------------------------------------
778
+ __inline void AT91F_PIO_InterruptEnable(
779
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
780
+ unsigned int flag) // \arg pio interrupt to be enabled
781
+ {
782
+ pPio->PIO_IER = flag;
783
+ }
784
+
785
+ //*----------------------------------------------------------------------------
786
+ //* \fn AT91F_PIO_InterruptDisable
787
+ //* \brief Disable PIO Interrupt
788
+ //*----------------------------------------------------------------------------
789
+ __inline void AT91F_PIO_InterruptDisable(
790
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
791
+ unsigned int flag) // \arg pio interrupt to be disabled
792
+ {
793
+ pPio->PIO_IDR = flag;
794
+ }
795
+
796
+ //*----------------------------------------------------------------------------
797
+ //* \fn AT91F_PIO_GetInterruptMaskStatus
798
+ //* \brief Return PIO Interrupt Mask Status
799
+ //*----------------------------------------------------------------------------
800
+ __inline unsigned int AT91F_PIO_GetInterruptMaskStatus( // \return PIO Interrupt Mask Status
801
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
802
+ {
803
+ return pPio->PIO_IMR;
804
+ }
805
+
806
+ //*----------------------------------------------------------------------------
807
+ //* \fn AT91F_PIO_GetInterruptStatus
808
+ //* \brief Return PIO Interrupt Status
809
+ //*----------------------------------------------------------------------------
810
+ __inline unsigned int AT91F_PIO_GetInterruptStatus( // \return PIO Interrupt Status
811
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
812
+ {
813
+ return pPio->PIO_ISR;
814
+ }
815
+
816
+ //*----------------------------------------------------------------------------
817
+ //* \fn AT91F_PIO_IsInterruptMasked
818
+ //* \brief Test if PIO Interrupt is Masked
819
+ //*----------------------------------------------------------------------------
820
+ __inline int AT91F_PIO_IsInterruptMasked(
821
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
822
+ unsigned int flag) // \arg flag to be tested
823
+ {
824
+ return (AT91F_PIO_GetInterruptMaskStatus(pPio) & flag);
825
+ }
826
+
827
+ //*----------------------------------------------------------------------------
828
+ //* \fn AT91F_PIO_IsInterruptSet
829
+ //* \brief Test if PIO Interrupt is Set
830
+ //*----------------------------------------------------------------------------
831
+ __inline int AT91F_PIO_IsInterruptSet(
832
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
833
+ unsigned int flag) // \arg flag to be tested
834
+ {
835
+ return (AT91F_PIO_GetInterruptStatus(pPio) & flag);
836
+ }
837
+
838
+ //*----------------------------------------------------------------------------
839
+ //* \fn AT91F_PIO_MultiDriverEnable
840
+ //* \brief Multi Driver Enable PIO
841
+ //*----------------------------------------------------------------------------
842
+ __inline void AT91F_PIO_MultiDriverEnable(
843
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
844
+ unsigned int flag) // \arg pio to be enabled
845
+ {
846
+ pPio->PIO_MDER = flag;
847
+ }
848
+
849
+ //*----------------------------------------------------------------------------
850
+ //* \fn AT91F_PIO_MultiDriverDisable
851
+ //* \brief Multi Driver Disable PIO
852
+ //*----------------------------------------------------------------------------
853
+ __inline void AT91F_PIO_MultiDriverDisable(
854
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
855
+ unsigned int flag) // \arg pio to be disabled
856
+ {
857
+ pPio->PIO_MDDR = flag;
858
+ }
859
+
860
+ //*----------------------------------------------------------------------------
861
+ //* \fn AT91F_PIO_GetMultiDriverStatus
862
+ //* \brief Return PIO Multi Driver Status
863
+ //*----------------------------------------------------------------------------
864
+ __inline unsigned int AT91F_PIO_GetMultiDriverStatus( // \return PIO Multi Driver Status
865
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
866
+ {
867
+ return pPio->PIO_MDSR;
868
+ }
869
+
870
+ //*----------------------------------------------------------------------------
871
+ //* \fn AT91F_PIO_IsMultiDriverSet
872
+ //* \brief Test if PIO MultiDriver is Set
873
+ //*----------------------------------------------------------------------------
874
+ __inline int AT91F_PIO_IsMultiDriverSet(
875
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
876
+ unsigned int flag) // \arg flag to be tested
877
+ {
878
+ return (AT91F_PIO_GetMultiDriverStatus(pPio) & flag);
879
+ }
880
+
881
+ //*----------------------------------------------------------------------------
882
+ //* \fn AT91F_PIO_A_RegisterSelection
883
+ //* \brief PIO A Register Selection
884
+ //*----------------------------------------------------------------------------
885
+ __inline void AT91F_PIO_A_RegisterSelection(
886
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
887
+ unsigned int flag) // \arg pio A register selection
888
+ {
889
+ pPio->PIO_ASR = flag;
890
+ }
891
+
892
+ //*----------------------------------------------------------------------------
893
+ //* \fn AT91F_PIO_B_RegisterSelection
894
+ //* \brief PIO B Register Selection
895
+ //*----------------------------------------------------------------------------
896
+ __inline void AT91F_PIO_B_RegisterSelection(
897
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
898
+ unsigned int flag) // \arg pio B register selection
899
+ {
900
+ pPio->PIO_BSR = flag;
901
+ }
902
+
903
+ //*----------------------------------------------------------------------------
904
+ //* \fn AT91F_PIO_Get_AB_RegisterStatus
905
+ //* \brief Return PIO Interrupt Status
906
+ //*----------------------------------------------------------------------------
907
+ __inline unsigned int AT91F_PIO_Get_AB_RegisterStatus( // \return PIO AB Register Status
908
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
909
+ {
910
+ return pPio->PIO_ABSR;
911
+ }
912
+
913
+ //*----------------------------------------------------------------------------
914
+ //* \fn AT91F_PIO_IsAB_RegisterSet
915
+ //* \brief Test if PIO AB Register is Set
916
+ //*----------------------------------------------------------------------------
917
+ __inline int AT91F_PIO_IsAB_RegisterSet(
918
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
919
+ unsigned int flag) // \arg flag to be tested
920
+ {
921
+ return (AT91F_PIO_Get_AB_RegisterStatus(pPio) & flag);
922
+ }
923
+
924
+ //*----------------------------------------------------------------------------
925
+ //* \fn AT91F_PIO_OutputWriteEnable
926
+ //* \brief Output Write Enable PIO
927
+ //*----------------------------------------------------------------------------
928
+ __inline void AT91F_PIO_OutputWriteEnable(
929
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
930
+ unsigned int flag) // \arg pio output write to be enabled
931
+ {
932
+ pPio->PIO_OWER = flag;
933
+ }
934
+
935
+ //*----------------------------------------------------------------------------
936
+ //* \fn AT91F_PIO_OutputWriteDisable
937
+ //* \brief Output Write Disable PIO
938
+ //*----------------------------------------------------------------------------
939
+ __inline void AT91F_PIO_OutputWriteDisable(
940
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
941
+ unsigned int flag) // \arg pio output write to be disabled
942
+ {
943
+ pPio->PIO_OWDR = flag;
944
+ }
945
+
946
+ //*----------------------------------------------------------------------------
947
+ //* \fn AT91F_PIO_GetOutputWriteStatus
948
+ //* \brief Return PIO Output Write Status
949
+ //*----------------------------------------------------------------------------
950
+ __inline unsigned int AT91F_PIO_GetOutputWriteStatus( // \return PIO Output Write Status
951
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
952
+ {
953
+ return pPio->PIO_OWSR;
954
+ }
955
+
956
+ //*----------------------------------------------------------------------------
957
+ //* \fn AT91F_PIO_IsOutputWriteSet
958
+ //* \brief Test if PIO OutputWrite is Set
959
+ //*----------------------------------------------------------------------------
960
+ __inline int AT91F_PIO_IsOutputWriteSet(
961
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
962
+ unsigned int flag) // \arg flag to be tested
963
+ {
964
+ return (AT91F_PIO_GetOutputWriteStatus(pPio) & flag);
965
+ }
966
+
967
+ //*----------------------------------------------------------------------------
968
+ //* \fn AT91F_PIO_GetCfgPullup
969
+ //* \brief Return PIO Configuration Pullup
970
+ //*----------------------------------------------------------------------------
971
+ __inline unsigned int AT91F_PIO_GetCfgPullup( // \return PIO Configuration Pullup
972
+ AT91PS_PIO pPio) // \arg pointer to a PIO controller
973
+ {
974
+ return pPio->PIO_PPUSR;
975
+ }
976
+
977
+ //*----------------------------------------------------------------------------
978
+ //* \fn AT91F_PIO_IsOutputDataStatusSet
979
+ //* \brief Test if PIO Output Data Status is Set
980
+ //*----------------------------------------------------------------------------
981
+ __inline int AT91F_PIO_IsOutputDataStatusSet(
982
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
983
+ unsigned int flag) // \arg flag to be tested
984
+ {
985
+ return (AT91F_PIO_GetOutputDataStatus(pPio) & flag);
986
+ }
987
+
988
+ //*----------------------------------------------------------------------------
989
+ //* \fn AT91F_PIO_IsCfgPullupStatusSet
990
+ //* \brief Test if PIO Configuration Pullup Status is Set
991
+ //*----------------------------------------------------------------------------
992
+ __inline int AT91F_PIO_IsCfgPullupStatusSet(
993
+ AT91PS_PIO pPio, // \arg pointer to a PIO controller
994
+ unsigned int flag) // \arg flag to be tested
995
+ {
996
+ return (~AT91F_PIO_GetCfgPullup(pPio) & flag);
997
+ }
998
+
999
+ /* *****************************************************************************
1000
+ SOFTWARE API FOR PMC
1001
+ ***************************************************************************** */
1002
+ //*----------------------------------------------------------------------------
1003
+ //* \fn AT91F_PMC_CfgSysClkEnableReg
1004
+ //* \brief Configure the System Clock Enable Register of the PMC controller
1005
+ //*----------------------------------------------------------------------------
1006
+ __inline void AT91F_PMC_CfgSysClkEnableReg (
1007
+ AT91PS_PMC pPMC, // \arg pointer to PMC controller
1008
+ unsigned int mode)
1009
+ {
1010
+ //* Write to the SCER register
1011
+ pPMC->PMC_SCER = mode;
1012
+ }
1013
+
1014
+ //*----------------------------------------------------------------------------
1015
+ //* \fn AT91F_PMC_CfgSysClkDisableReg
1016
+ //* \brief Configure the System Clock Disable Register of the PMC controller
1017
+ //*----------------------------------------------------------------------------
1018
+ __inline void AT91F_PMC_CfgSysClkDisableReg (
1019
+ AT91PS_PMC pPMC, // \arg pointer to PMC controller
1020
+ unsigned int mode)
1021
+ {
1022
+ //* Write to the SCDR register
1023
+ pPMC->PMC_SCDR = mode;
1024
+ }
1025
+
1026
+ //*----------------------------------------------------------------------------
1027
+ //* \fn AT91F_PMC_GetSysClkStatusReg
1028
+ //* \brief Return the System Clock Status Register of the PMC controller
1029
+ //*----------------------------------------------------------------------------
1030
+ __inline unsigned int AT91F_PMC_GetSysClkStatusReg (
1031
+ AT91PS_PMC pPMC // pointer to a CAN controller
1032
+ )
1033
+ {
1034
+ return pPMC->PMC_SCSR;
1035
+ }
1036
+
1037
+ //*----------------------------------------------------------------------------
1038
+ //* \fn AT91F_PMC_EnablePeriphClock
1039
+ //* \brief Enable peripheral clock
1040
+ //*----------------------------------------------------------------------------
1041
+ __inline void AT91F_PMC_EnablePeriphClock (
1042
+ AT91PS_PMC pPMC, // \arg pointer to PMC controller
1043
+ unsigned int periphIds) // \arg IDs of peripherals
1044
+ {
1045
+ pPMC->PMC_PCER = periphIds;
1046
+ }
1047
+
1048
+ //*----------------------------------------------------------------------------
1049
+ //* \fn AT91F_PMC_DisablePeriphClock
1050
+ //* \brief Disable peripheral clock
1051
+ //*----------------------------------------------------------------------------
1052
+ __inline void AT91F_PMC_DisablePeriphClock (
1053
+ AT91PS_PMC pPMC, // \arg pointer to PMC controller
1054
+ unsigned int periphIds) // \arg IDs of peripherals
1055
+ {
1056
+ pPMC->PMC_PCDR = periphIds;
1057
+ }
1058
+
1059
+ //*----------------------------------------------------------------------------
1060
+ //* \fn AT91F_PMC_GetPeriphClock
1061
+ //* \brief Get peripheral clock status
1062
+ //*----------------------------------------------------------------------------
1063
+ __inline unsigned int AT91F_PMC_GetPeriphClock (
1064
+ AT91PS_PMC pPMC) // \arg pointer to PMC controller
1065
+ {
1066
+ return pPMC->PMC_PCSR;
1067
+ }
1068
+
1069
+ //*----------------------------------------------------------------------------
1070
+ //* \fn AT91F_CKGR_CfgMainOscillatorReg
1071
+ //* \brief Cfg the main oscillator
1072
+ //*----------------------------------------------------------------------------
1073
+ __inline void AT91F_CKGR_CfgMainOscillatorReg (
1074
+ AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
1075
+ unsigned int mode)
1076
+ {
1077
+ pCKGR->CKGR_MOR = mode;
1078
+ }
1079
+
1080
+ //*----------------------------------------------------------------------------
1081
+ //* \fn AT91F_CKGR_GetMainOscillatorReg
1082
+ //* \brief Cfg the main oscillator
1083
+ //*----------------------------------------------------------------------------
1084
+ __inline unsigned int AT91F_CKGR_GetMainOscillatorReg (
1085
+ AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
1086
+ {
1087
+ return pCKGR->CKGR_MOR;
1088
+ }
1089
+
1090
+ //*----------------------------------------------------------------------------
1091
+ //* \fn AT91F_CKGR_EnableMainOscillator
1092
+ //* \brief Enable the main oscillator
1093
+ //*----------------------------------------------------------------------------
1094
+ __inline void AT91F_CKGR_EnableMainOscillator(
1095
+ AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
1096
+ {
1097
+ pCKGR->CKGR_MOR |= AT91C_CKGR_MOSCEN;
1098
+ }
1099
+
1100
+ //*----------------------------------------------------------------------------
1101
+ //* \fn AT91F_CKGR_DisableMainOscillator
1102
+ //* \brief Disable the main oscillator
1103
+ //*----------------------------------------------------------------------------
1104
+ __inline void AT91F_CKGR_DisableMainOscillator (
1105
+ AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
1106
+ {
1107
+ pCKGR->CKGR_MOR &= ~AT91C_CKGR_MOSCEN;
1108
+ }
1109
+
1110
+ //*----------------------------------------------------------------------------
1111
+ //* \fn AT91F_CKGR_CfgMainOscStartUpTime
1112
+ //* \brief Cfg MOR Register according to the main osc startup time
1113
+ //*----------------------------------------------------------------------------
1114
+ __inline void AT91F_CKGR_CfgMainOscStartUpTime (
1115
+ AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
1116
+ unsigned int startup_time, // \arg main osc startup time in microsecond (us)
1117
+ unsigned int slowClock) // \arg slowClock in Hz
1118
+ {
1119
+ pCKGR->CKGR_MOR &= ~AT91C_CKGR_OSCOUNT;
1120
+ pCKGR->CKGR_MOR |= ((slowClock * startup_time)/(8*1000000)) << 8;
1121
+ }
1122
+
1123
+ //*----------------------------------------------------------------------------
1124
+ //* \fn AT91F_CKGR_GetMainClockFreqReg
1125
+ //* \brief Cfg the main oscillator
1126
+ //*----------------------------------------------------------------------------
1127
+ __inline unsigned int AT91F_CKGR_GetMainClockFreqReg (
1128
+ AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
1129
+ {
1130
+ return pCKGR->CKGR_MCFR;
1131
+ }
1132
+
1133
+ //*----------------------------------------------------------------------------
1134
+ //* \fn AT91F_CKGR_GetMainClock
1135
+ //* \brief Return Main clock in Hz
1136
+ //*----------------------------------------------------------------------------
1137
+ __inline unsigned int AT91F_CKGR_GetMainClock (
1138
+ AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
1139
+ unsigned int slowClock) // \arg slowClock in Hz
1140
+ {
1141
+ return ((pCKGR->CKGR_MCFR & AT91C_CKGR_MAINF) * slowClock) >> 4;
1142
+ }
1143
+
1144
+ //*----------------------------------------------------------------------------
1145
+ //* \fn AT91F_PMC_CfgMCKReg
1146
+ //* \brief Cfg Master Clock Register
1147
+ //*----------------------------------------------------------------------------
1148
+ __inline void AT91F_PMC_CfgMCKReg (
1149
+ AT91PS_PMC pPMC, // \arg pointer to PMC controller
1150
+ unsigned int mode)
1151
+ {
1152
+ pPMC->PMC_MCKR = mode;
1153
+ }
1154
+
1155
+ //*----------------------------------------------------------------------------
1156
+ //* \fn AT91F_PMC_GetMCKReg
1157
+ //* \brief Return Master Clock Register
1158
+ //*----------------------------------------------------------------------------
1159
+ __inline unsigned int AT91F_PMC_GetMCKReg(
1160
+ AT91PS_PMC pPMC) // \arg pointer to PMC controller
1161
+ {
1162
+ return pPMC->PMC_MCKR;
1163
+ }
1164
+
1165
+ //*------------------------------------------------------------------------------
1166
+ //* \fn AT91F_PMC_GetMasterClock
1167
+ //* \brief Return master clock in Hz which correponds to processor clock for ARM7
1168
+ //*------------------------------------------------------------------------------
1169
+ __inline unsigned int AT91F_PMC_GetMasterClock (
1170
+ AT91PS_PMC pPMC, // \arg pointer to PMC controller
1171
+ AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
1172
+ unsigned int slowClock) // \arg slowClock in Hz
1173
+ {
1174
+ unsigned int reg = pPMC->PMC_MCKR;
1175
+ unsigned int prescaler = (1 << ((reg & AT91C_PMC_PRES) >> 2));
1176
+ unsigned int pllDivider, pllMultiplier;
1177
+
1178
+ switch (reg & AT91C_PMC_CSS) {
1179
+ case AT91C_PMC_CSS_SLOW_CLK: // Slow clock selected
1180
+ return slowClock / prescaler;
1181
+ case AT91C_PMC_CSS_MAIN_CLK: // Main clock is selected
1182
+ return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / prescaler;
1183
+ case AT91C_PMC_CSS_PLL_CLK: // PLLB clock is selected
1184
+ reg = pCKGR->CKGR_PLLR;
1185
+ pllDivider = (reg & AT91C_CKGR_DIV);
1186
+ pllMultiplier = ((reg & AT91C_CKGR_MUL) >> 16) + 1;
1187
+ return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / pllDivider * pllMultiplier / prescaler;
1188
+ }
1189
+ return 0;
1190
+ }
1191
+
1192
+ //*----------------------------------------------------------------------------
1193
+ //* \fn AT91F_PMC_EnablePCK
1194
+ //* \brief Enable Programmable Clock x Output
1195
+ //*----------------------------------------------------------------------------
1196
+ __inline void AT91F_PMC_EnablePCK (
1197
+ AT91PS_PMC pPMC, // \arg pointer to PMC controller
1198
+ unsigned int pck, // \arg Programmable Clock x Output
1199
+ unsigned int mode)
1200
+ {
1201
+ pPMC->PMC_PCKR[pck] = mode;
1202
+ pPMC->PMC_SCER = (1 << pck) << 8;
1203
+ }
1204
+
1205
+ //*----------------------------------------------------------------------------
1206
+ //* \fn AT91F_PMC_DisablePCK
1207
+ //* \brief Disable Programmable Clock x Output
1208
+ //*----------------------------------------------------------------------------
1209
+ __inline void AT91F_PMC_DisablePCK (
1210
+ AT91PS_PMC pPMC, // \arg pointer to PMC controller
1211
+ unsigned int pck) // \arg Programmable Clock x Output
1212
+ {
1213
+ pPMC->PMC_SCDR = (1 << pck) << 8;
1214
+ }
1215
+
1216
+ //*----------------------------------------------------------------------------
1217
+ //* \fn AT91F_PMC_EnableIt
1218
+ //* \brief Enable PMC interrupt
1219
+ //*----------------------------------------------------------------------------
1220
+ __inline void AT91F_PMC_EnableIt (
1221
+ AT91PS_PMC pPMC, // pointer to a PMC controller
1222
+ unsigned int flag) // IT to be enabled
1223
+ {
1224
+ //* Write to the IER register
1225
+ pPMC->PMC_IER = flag;
1226
+ }
1227
+
1228
+ //*----------------------------------------------------------------------------
1229
+ //* \fn AT91F_PMC_DisableIt
1230
+ //* \brief Disable PMC interrupt
1231
+ //*----------------------------------------------------------------------------
1232
+ __inline void AT91F_PMC_DisableIt (
1233
+ AT91PS_PMC pPMC, // pointer to a PMC controller
1234
+ unsigned int flag) // IT to be disabled
1235
+ {
1236
+ //* Write to the IDR register
1237
+ pPMC->PMC_IDR = flag;
1238
+ }
1239
+
1240
+ //*----------------------------------------------------------------------------
1241
+ //* \fn AT91F_PMC_GetStatus
1242
+ //* \brief Return PMC Interrupt Status
1243
+ //*----------------------------------------------------------------------------
1244
+ __inline unsigned int AT91F_PMC_GetStatus( // \return PMC Interrupt Status
1245
+ AT91PS_PMC pPMC) // pointer to a PMC controller
1246
+ {
1247
+ return pPMC->PMC_SR;
1248
+ }
1249
+
1250
+ //*----------------------------------------------------------------------------
1251
+ //* \fn AT91F_PMC_GetInterruptMaskStatus
1252
+ //* \brief Return PMC Interrupt Mask Status
1253
+ //*----------------------------------------------------------------------------
1254
+ __inline unsigned int AT91F_PMC_GetInterruptMaskStatus( // \return PMC Interrupt Mask Status
1255
+ AT91PS_PMC pPMC) // pointer to a PMC controller
1256
+ {
1257
+ return pPMC->PMC_IMR;
1258
+ }
1259
+
1260
+ //*----------------------------------------------------------------------------
1261
+ //* \fn AT91F_PMC_IsInterruptMasked
1262
+ //* \brief Test if PMC Interrupt is Masked
1263
+ //*----------------------------------------------------------------------------
1264
+ __inline unsigned int AT91F_PMC_IsInterruptMasked(
1265
+ AT91PS_PMC pPMC, // \arg pointer to a PMC controller
1266
+ unsigned int flag) // \arg flag to be tested
1267
+ {
1268
+ return (AT91F_PMC_GetInterruptMaskStatus(pPMC) & flag);
1269
+ }
1270
+
1271
+ //*----------------------------------------------------------------------------
1272
+ //* \fn AT91F_PMC_IsStatusSet
1273
+ //* \brief Test if PMC Status is Set
1274
+ //*----------------------------------------------------------------------------
1275
+ __inline unsigned int AT91F_PMC_IsStatusSet(
1276
+ AT91PS_PMC pPMC, // \arg pointer to a PMC controller
1277
+ unsigned int flag) // \arg flag to be tested
1278
+ {
1279
+ return (AT91F_PMC_GetStatus(pPMC) & flag);
1280
+ }
1281
+
1282
+ // ----------------------------------------------------------------------------
1283
+ // \fn AT91F_CKGR_CfgPLLReg
1284
+ // \brief Cfg the PLL Register
1285
+ // ----------------------------------------------------------------------------
1286
+ __inline void AT91F_CKGR_CfgPLLReg (
1287
+ AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
1288
+ unsigned int mode)
1289
+ {
1290
+ pCKGR->CKGR_PLLR = mode;
1291
+ }
1292
+
1293
+ // ----------------------------------------------------------------------------
1294
+ // \fn AT91F_CKGR_GetPLLReg
1295
+ // \brief Get the PLL Register
1296
+ // ----------------------------------------------------------------------------
1297
+ __inline unsigned int AT91F_CKGR_GetPLLReg (
1298
+ AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
1299
+ {
1300
+ return pCKGR->CKGR_PLLR;
1301
+ }
1302
+
1303
+
1304
+ /* *****************************************************************************
1305
+ SOFTWARE API FOR RSTC
1306
+ ***************************************************************************** */
1307
+ //*----------------------------------------------------------------------------
1308
+ //* \fn AT91F_RSTSoftReset
1309
+ //* \brief Start Software Reset
1310
+ //*----------------------------------------------------------------------------
1311
+ __inline void AT91F_RSTSoftReset(
1312
+ AT91PS_RSTC pRSTC,
1313
+ unsigned int reset)
1314
+ {
1315
+ pRSTC->RSTC_RCR = (0xA5000000 | reset);
1316
+ }
1317
+
1318
+ //*----------------------------------------------------------------------------
1319
+ //* \fn AT91F_RSTSetMode
1320
+ //* \brief Set Reset Mode
1321
+ //*----------------------------------------------------------------------------
1322
+ __inline void AT91F_RSTSetMode(
1323
+ AT91PS_RSTC pRSTC,
1324
+ unsigned int mode)
1325
+ {
1326
+ pRSTC->RSTC_RMR = (0xA5000000 | mode);
1327
+ }
1328
+
1329
+ //*----------------------------------------------------------------------------
1330
+ //* \fn AT91F_RSTGetMode
1331
+ //* \brief Get Reset Mode
1332
+ //*----------------------------------------------------------------------------
1333
+ __inline unsigned int AT91F_RSTGetMode(
1334
+ AT91PS_RSTC pRSTC)
1335
+ {
1336
+ return (pRSTC->RSTC_RMR);
1337
+ }
1338
+
1339
+ //*----------------------------------------------------------------------------
1340
+ //* \fn AT91F_RSTGetStatus
1341
+ //* \brief Get Reset Status
1342
+ //*----------------------------------------------------------------------------
1343
+ __inline unsigned int AT91F_RSTGetStatus(
1344
+ AT91PS_RSTC pRSTC)
1345
+ {
1346
+ return (pRSTC->RSTC_RSR);
1347
+ }
1348
+
1349
+ //*----------------------------------------------------------------------------
1350
+ //* \fn AT91F_RSTIsSoftRstActive
1351
+ //* \brief Return !=0 if software reset is still not completed
1352
+ //*----------------------------------------------------------------------------
1353
+ __inline unsigned int AT91F_RSTIsSoftRstActive(
1354
+ AT91PS_RSTC pRSTC)
1355
+ {
1356
+ return ((pRSTC->RSTC_RSR) & AT91C_RSTC_SRCMP);
1357
+ }
1358
+ /* *****************************************************************************
1359
+ SOFTWARE API FOR RTTC
1360
+ ***************************************************************************** */
1361
+ //*--------------------------------------------------------------------------------------
1362
+ //* \fn AT91F_SetRTT_TimeBase()
1363
+ //* \brief Set the RTT prescaler according to the TimeBase in ms
1364
+ //*--------------------------------------------------------------------------------------
1365
+ __inline unsigned int AT91F_RTTSetTimeBase(
1366
+ AT91PS_RTTC pRTTC,
1367
+ unsigned int ms)
1368
+ {
1369
+ if (ms > 2000)
1370
+ return 1; // AT91C_TIME_OUT_OF_RANGE
1371
+ pRTTC->RTTC_RTMR &= ~0xFFFF;
1372
+ pRTTC->RTTC_RTMR |= (((ms << 15) /1000) & 0xFFFF);
1373
+ return 0;
1374
+ }
1375
+
1376
+ //*--------------------------------------------------------------------------------------
1377
+ //* \fn AT91F_RTTSetPrescaler()
1378
+ //* \brief Set the new prescaler value
1379
+ //*--------------------------------------------------------------------------------------
1380
+ __inline unsigned int AT91F_RTTSetPrescaler(
1381
+ AT91PS_RTTC pRTTC,
1382
+ unsigned int rtpres)
1383
+ {
1384
+ pRTTC->RTTC_RTMR &= ~0xFFFF;
1385
+ pRTTC->RTTC_RTMR |= (rtpres & 0xFFFF);
1386
+ return (pRTTC->RTTC_RTMR);
1387
+ }
1388
+
1389
+ //*--------------------------------------------------------------------------------------
1390
+ //* \fn AT91F_RTTRestart()
1391
+ //* \brief Restart the RTT prescaler
1392
+ //*--------------------------------------------------------------------------------------
1393
+ __inline void AT91F_RTTRestart(
1394
+ AT91PS_RTTC pRTTC)
1395
+ {
1396
+ pRTTC->RTTC_RTMR |= AT91C_RTTC_RTTRST;
1397
+ }
1398
+
1399
+
1400
+ //*--------------------------------------------------------------------------------------
1401
+ //* \fn AT91F_RTT_SetAlarmINT()
1402
+ //* \brief Enable RTT Alarm Interrupt
1403
+ //*--------------------------------------------------------------------------------------
1404
+ __inline void AT91F_RTTSetAlarmINT(
1405
+ AT91PS_RTTC pRTTC)
1406
+ {
1407
+ pRTTC->RTTC_RTMR |= AT91C_RTTC_ALMIEN;
1408
+ }
1409
+
1410
+ //*--------------------------------------------------------------------------------------
1411
+ //* \fn AT91F_RTT_ClearAlarmINT()
1412
+ //* \brief Disable RTT Alarm Interrupt
1413
+ //*--------------------------------------------------------------------------------------
1414
+ __inline void AT91F_RTTClearAlarmINT(
1415
+ AT91PS_RTTC pRTTC)
1416
+ {
1417
+ pRTTC->RTTC_RTMR &= ~AT91C_RTTC_ALMIEN;
1418
+ }
1419
+
1420
+ //*--------------------------------------------------------------------------------------
1421
+ //* \fn AT91F_RTT_SetRttIncINT()
1422
+ //* \brief Enable RTT INC Interrupt
1423
+ //*--------------------------------------------------------------------------------------
1424
+ __inline void AT91F_RTTSetRttIncINT(
1425
+ AT91PS_RTTC pRTTC)
1426
+ {
1427
+ pRTTC->RTTC_RTMR |= AT91C_RTTC_RTTINCIEN;
1428
+ }
1429
+
1430
+ //*--------------------------------------------------------------------------------------
1431
+ //* \fn AT91F_RTT_ClearRttIncINT()
1432
+ //* \brief Disable RTT INC Interrupt
1433
+ //*--------------------------------------------------------------------------------------
1434
+ __inline void AT91F_RTTClearRttIncINT(
1435
+ AT91PS_RTTC pRTTC)
1436
+ {
1437
+ pRTTC->RTTC_RTMR &= ~AT91C_RTTC_RTTINCIEN;
1438
+ }
1439
+
1440
+ //*--------------------------------------------------------------------------------------
1441
+ //* \fn AT91F_RTT_SetAlarmValue()
1442
+ //* \brief Set RTT Alarm Value
1443
+ //*--------------------------------------------------------------------------------------
1444
+ __inline void AT91F_RTTSetAlarmValue(
1445
+ AT91PS_RTTC pRTTC, unsigned int alarm)
1446
+ {
1447
+ pRTTC->RTTC_RTAR = alarm;
1448
+ }
1449
+
1450
+ //*--------------------------------------------------------------------------------------
1451
+ //* \fn AT91F_RTT_GetAlarmValue()
1452
+ //* \brief Get RTT Alarm Value
1453
+ //*--------------------------------------------------------------------------------------
1454
+ __inline unsigned int AT91F_RTTGetAlarmValue(
1455
+ AT91PS_RTTC pRTTC)
1456
+ {
1457
+ return(pRTTC->RTTC_RTAR);
1458
+ }
1459
+
1460
+ //*--------------------------------------------------------------------------------------
1461
+ //* \fn AT91F_RTTGetStatus()
1462
+ //* \brief Read the RTT status
1463
+ //*--------------------------------------------------------------------------------------
1464
+ __inline unsigned int AT91F_RTTGetStatus(
1465
+ AT91PS_RTTC pRTTC)
1466
+ {
1467
+ return(pRTTC->RTTC_RTSR);
1468
+ }
1469
+
1470
+ //*--------------------------------------------------------------------------------------
1471
+ //* \fn AT91F_RTT_ReadValue()
1472
+ //* \brief Read the RTT value
1473
+ //*--------------------------------------------------------------------------------------
1474
+ __inline unsigned int AT91F_RTTReadValue(
1475
+ AT91PS_RTTC pRTTC)
1476
+ {
1477
+ register volatile unsigned int val1,val2;
1478
+ do
1479
+ {
1480
+ val1 = pRTTC->RTTC_RTVR;
1481
+ val2 = pRTTC->RTTC_RTVR;
1482
+ }
1483
+ while(val1 != val2);
1484
+ return(val1);
1485
+ }
1486
+ /* *****************************************************************************
1487
+ SOFTWARE API FOR PITC
1488
+ ***************************************************************************** */
1489
+ //*----------------------------------------------------------------------------
1490
+ //* \fn AT91F_PITInit
1491
+ //* \brief System timer init : period in �second, system clock freq in MHz
1492
+ //*----------------------------------------------------------------------------
1493
+ __inline void AT91F_PITInit(
1494
+ AT91PS_PITC pPITC,
1495
+ unsigned int period,
1496
+ unsigned int pit_frequency)
1497
+ {
1498
+ pPITC->PITC_PIMR = period? (period * pit_frequency + 8) >> 4 : 0; // +8 to avoid %10 and /10
1499
+ pPITC->PITC_PIMR |= AT91C_PITC_PITEN;
1500
+ }
1501
+
1502
+ //*----------------------------------------------------------------------------
1503
+ //* \fn AT91F_PITSetPIV
1504
+ //* \brief Set the PIT Periodic Interval Value
1505
+ //*----------------------------------------------------------------------------
1506
+ __inline void AT91F_PITSetPIV(
1507
+ AT91PS_PITC pPITC,
1508
+ unsigned int piv)
1509
+ {
1510
+ pPITC->PITC_PIMR = piv | (pPITC->PITC_PIMR & (AT91C_PITC_PITEN | AT91C_PITC_PITIEN));
1511
+ }
1512
+
1513
+ //*----------------------------------------------------------------------------
1514
+ //* \fn AT91F_PITEnableInt
1515
+ //* \brief Enable PIT periodic interrupt
1516
+ //*----------------------------------------------------------------------------
1517
+ __inline void AT91F_PITEnableInt(
1518
+ AT91PS_PITC pPITC)
1519
+ {
1520
+ pPITC->PITC_PIMR |= AT91C_PITC_PITIEN;
1521
+ }
1522
+
1523
+ //*----------------------------------------------------------------------------
1524
+ //* \fn AT91F_PITDisableInt
1525
+ //* \brief Disable PIT periodic interrupt
1526
+ //*----------------------------------------------------------------------------
1527
+ __inline void AT91F_PITDisableInt(
1528
+ AT91PS_PITC pPITC)
1529
+ {
1530
+ pPITC->PITC_PIMR &= ~AT91C_PITC_PITIEN;
1531
+ }
1532
+
1533
+ //*----------------------------------------------------------------------------
1534
+ //* \fn AT91F_PITGetMode
1535
+ //* \brief Read PIT mode register
1536
+ //*----------------------------------------------------------------------------
1537
+ __inline unsigned int AT91F_PITGetMode(
1538
+ AT91PS_PITC pPITC)
1539
+ {
1540
+ return(pPITC->PITC_PIMR);
1541
+ }
1542
+
1543
+ //*----------------------------------------------------------------------------
1544
+ //* \fn AT91F_PITGetStatus
1545
+ //* \brief Read PIT status register
1546
+ //*----------------------------------------------------------------------------
1547
+ __inline unsigned int AT91F_PITGetStatus(
1548
+ AT91PS_PITC pPITC)
1549
+ {
1550
+ return(pPITC->PITC_PISR);
1551
+ }
1552
+
1553
+ //*----------------------------------------------------------------------------
1554
+ //* \fn AT91F_PITGetPIIR
1555
+ //* \brief Read PIT CPIV and PICNT without ressetting the counters
1556
+ //*----------------------------------------------------------------------------
1557
+ __inline unsigned int AT91F_PITGetPIIR(
1558
+ AT91PS_PITC pPITC)
1559
+ {
1560
+ return(pPITC->PITC_PIIR);
1561
+ }
1562
+
1563
+ //*----------------------------------------------------------------------------
1564
+ //* \fn AT91F_PITGetPIVR
1565
+ //* \brief Read System timer CPIV and PICNT without ressetting the counters
1566
+ //*----------------------------------------------------------------------------
1567
+ __inline unsigned int AT91F_PITGetPIVR(
1568
+ AT91PS_PITC pPITC)
1569
+ {
1570
+ return(pPITC->PITC_PIVR);
1571
+ }
1572
+ /* *****************************************************************************
1573
+ SOFTWARE API FOR WDTC
1574
+ ***************************************************************************** */
1575
+ //*----------------------------------------------------------------------------
1576
+ //* \fn AT91F_WDTSetMode
1577
+ //* \brief Set Watchdog Mode Register
1578
+ //*----------------------------------------------------------------------------
1579
+ __inline void AT91F_WDTSetMode(
1580
+ AT91PS_WDTC pWDTC,
1581
+ unsigned int Mode)
1582
+ {
1583
+ pWDTC->WDTC_WDMR = Mode;
1584
+ }
1585
+
1586
+ //*----------------------------------------------------------------------------
1587
+ //* \fn AT91F_WDTRestart
1588
+ //* \brief Restart Watchdog
1589
+ //*----------------------------------------------------------------------------
1590
+ __inline void AT91F_WDTRestart(
1591
+ AT91PS_WDTC pWDTC)
1592
+ {
1593
+ pWDTC->WDTC_WDCR = 0xA5000001;
1594
+ }
1595
+
1596
+ //*----------------------------------------------------------------------------
1597
+ //* \fn AT91F_WDTSGettatus
1598
+ //* \brief Get Watchdog Status
1599
+ //*----------------------------------------------------------------------------
1600
+ __inline unsigned int AT91F_WDTSGettatus(
1601
+ AT91PS_WDTC pWDTC)
1602
+ {
1603
+ return(pWDTC->WDTC_WDSR & 0x3);
1604
+ }
1605
+
1606
+ //*----------------------------------------------------------------------------
1607
+ //* \fn AT91F_WDTGetPeriod
1608
+ //* \brief Translate ms into Watchdog Compatible value
1609
+ //*----------------------------------------------------------------------------
1610
+ __inline unsigned int AT91F_WDTGetPeriod(unsigned int ms)
1611
+ {
1612
+ if ((ms < 4) || (ms > 16000))
1613
+ return 0;
1614
+ return((ms << 8) / 1000);
1615
+ }
1616
+ /* *****************************************************************************
1617
+ SOFTWARE API FOR VREG
1618
+ ***************************************************************************** */
1619
+ //*----------------------------------------------------------------------------
1620
+ //* \fn AT91F_VREG_Enable_LowPowerMode
1621
+ //* \brief Enable VREG Low Power Mode
1622
+ //*----------------------------------------------------------------------------
1623
+ __inline void AT91F_VREG_Enable_LowPowerMode(
1624
+ AT91PS_VREG pVREG)
1625
+ {
1626
+ pVREG->VREG_MR |= AT91C_VREG_PSTDBY;
1627
+ }
1628
+
1629
+ //*----------------------------------------------------------------------------
1630
+ //* \fn AT91F_VREG_Disable_LowPowerMode
1631
+ //* \brief Disable VREG Low Power Mode
1632
+ //*----------------------------------------------------------------------------
1633
+ __inline void AT91F_VREG_Disable_LowPowerMode(
1634
+ AT91PS_VREG pVREG)
1635
+ {
1636
+ pVREG->VREG_MR &= ~AT91C_VREG_PSTDBY;
1637
+ }/* *****************************************************************************
1638
+ SOFTWARE API FOR MC
1639
+ ***************************************************************************** */
1640
+
1641
+ #define AT91C_MC_CORRECT_KEY ((unsigned int) 0x5A << 24) // (MC) Correct Protect Key
1642
+
1643
+ //*----------------------------------------------------------------------------
1644
+ //* \fn AT91F_MC_Remap
1645
+ //* \brief Make Remap
1646
+ //*----------------------------------------------------------------------------
1647
+ __inline void AT91F_MC_Remap (void) //
1648
+ {
1649
+ AT91PS_MC pMC = (AT91PS_MC) AT91C_BASE_MC;
1650
+
1651
+ pMC->MC_RCR = AT91C_MC_RCB;
1652
+ }
1653
+
1654
+ //*----------------------------------------------------------------------------
1655
+ //* \fn AT91F_MC_EFC_CfgModeReg
1656
+ //* \brief Configure the EFC Mode Register of the MC controller
1657
+ //*----------------------------------------------------------------------------
1658
+ __inline void AT91F_MC_EFC_CfgModeReg (
1659
+ AT91PS_MC pMC, // pointer to a MC controller
1660
+ unsigned int mode) // mode register
1661
+ {
1662
+ // Write to the FMR register
1663
+ pMC->MC_FMR = mode;
1664
+ }
1665
+
1666
+ //*----------------------------------------------------------------------------
1667
+ //* \fn AT91F_MC_EFC_GetModeReg
1668
+ //* \brief Return MC EFC Mode Regsiter
1669
+ //*----------------------------------------------------------------------------
1670
+ __inline unsigned int AT91F_MC_EFC_GetModeReg(
1671
+ AT91PS_MC pMC) // pointer to a MC controller
1672
+ {
1673
+ return pMC->MC_FMR;
1674
+ }
1675
+
1676
+ //*----------------------------------------------------------------------------
1677
+ //* \fn AT91F_MC_EFC_ComputeFMCN
1678
+ //* \brief Return MC EFC Mode Regsiter
1679
+ //*----------------------------------------------------------------------------
1680
+ __inline unsigned int AT91F_MC_EFC_ComputeFMCN(
1681
+ int master_clock) // master clock in Hz
1682
+ {
1683
+ return (master_clock/1000000 +2);
1684
+ }
1685
+
1686
+ //*----------------------------------------------------------------------------
1687
+ //* \fn AT91F_MC_EFC_PerformCmd
1688
+ //* \brief Perform EFC Command
1689
+ //*----------------------------------------------------------------------------
1690
+ __inline void AT91F_MC_EFC_PerformCmd (
1691
+ AT91PS_MC pMC, // pointer to a MC controller
1692
+ unsigned int transfer_cmd)
1693
+ {
1694
+ pMC->MC_FCR = transfer_cmd;
1695
+ }
1696
+
1697
+ //*----------------------------------------------------------------------------
1698
+ //* \fn AT91F_MC_EFC_GetStatus
1699
+ //* \brief Return MC EFC Status
1700
+ //*----------------------------------------------------------------------------
1701
+ __inline unsigned int AT91F_MC_EFC_GetStatus(
1702
+ AT91PS_MC pMC) // pointer to a MC controller
1703
+ {
1704
+ return pMC->MC_FSR;
1705
+ }
1706
+
1707
+ //*----------------------------------------------------------------------------
1708
+ //* \fn AT91F_MC_EFC_IsInterruptMasked
1709
+ //* \brief Test if EFC MC Interrupt is Masked
1710
+ //*----------------------------------------------------------------------------
1711
+ __inline unsigned int AT91F_MC_EFC_IsInterruptMasked(
1712
+ AT91PS_MC pMC, // \arg pointer to a MC controller
1713
+ unsigned int flag) // \arg flag to be tested
1714
+ {
1715
+ return (AT91F_MC_EFC_GetModeReg(pMC) & flag);
1716
+ }
1717
+
1718
+ //*----------------------------------------------------------------------------
1719
+ //* \fn AT91F_MC_EFC_IsInterruptSet
1720
+ //* \brief Test if EFC MC Interrupt is Set
1721
+ //*----------------------------------------------------------------------------
1722
+ __inline unsigned int AT91F_MC_EFC_IsInterruptSet(
1723
+ AT91PS_MC pMC, // \arg pointer to a MC controller
1724
+ unsigned int flag) // \arg flag to be tested
1725
+ {
1726
+ return (AT91F_MC_EFC_GetStatus(pMC) & flag);
1727
+ }
1728
+
1729
+ /* *****************************************************************************
1730
+ SOFTWARE API FOR SPI
1731
+ ***************************************************************************** */
1732
+ //*----------------------------------------------------------------------------
1733
+ //* \fn AT91F_SPI_CfgCs
1734
+ //* \brief Configure SPI chip select register
1735
+ //*----------------------------------------------------------------------------
1736
+ __inline void AT91F_SPI_CfgCs (
1737
+ AT91PS_SPI pSPI, // pointer to a SPI controller
1738
+ int cs, // SPI cs number (0 to 3)
1739
+ int val) // chip select register
1740
+ {
1741
+ //* Write to the CSR register
1742
+ *(pSPI->SPI_CSR + cs) = val;
1743
+ }
1744
+
1745
+ //*----------------------------------------------------------------------------
1746
+ //* \fn AT91F_SPI_EnableIt
1747
+ //* \brief Enable SPI interrupt
1748
+ //*----------------------------------------------------------------------------
1749
+ __inline void AT91F_SPI_EnableIt (
1750
+ AT91PS_SPI pSPI, // pointer to a SPI controller
1751
+ unsigned int flag) // IT to be enabled
1752
+ {
1753
+ //* Write to the IER register
1754
+ pSPI->SPI_IER = flag;
1755
+ }
1756
+
1757
+ //*----------------------------------------------------------------------------
1758
+ //* \fn AT91F_SPI_DisableIt
1759
+ //* \brief Disable SPI interrupt
1760
+ //*----------------------------------------------------------------------------
1761
+ __inline void AT91F_SPI_DisableIt (
1762
+ AT91PS_SPI pSPI, // pointer to a SPI controller
1763
+ unsigned int flag) // IT to be disabled
1764
+ {
1765
+ //* Write to the IDR register
1766
+ pSPI->SPI_IDR = flag;
1767
+ }
1768
+
1769
+ //*----------------------------------------------------------------------------
1770
+ //* \fn AT91F_SPI_Reset
1771
+ //* \brief Reset the SPI controller
1772
+ //*----------------------------------------------------------------------------
1773
+ __inline void AT91F_SPI_Reset (
1774
+ AT91PS_SPI pSPI // pointer to a SPI controller
1775
+ )
1776
+ {
1777
+ //* Write to the CR register
1778
+ pSPI->SPI_CR = AT91C_SPI_SWRST;
1779
+ }
1780
+
1781
+ //*----------------------------------------------------------------------------
1782
+ //* \fn AT91F_SPI_Enable
1783
+ //* \brief Enable the SPI controller
1784
+ //*----------------------------------------------------------------------------
1785
+ __inline void AT91F_SPI_Enable (
1786
+ AT91PS_SPI pSPI // pointer to a SPI controller
1787
+ )
1788
+ {
1789
+ //* Write to the CR register
1790
+ pSPI->SPI_CR = AT91C_SPI_SPIEN;
1791
+ }
1792
+
1793
+ //*----------------------------------------------------------------------------
1794
+ //* \fn AT91F_SPI_Disable
1795
+ //* \brief Disable the SPI controller
1796
+ //*----------------------------------------------------------------------------
1797
+ __inline void AT91F_SPI_Disable (
1798
+ AT91PS_SPI pSPI // pointer to a SPI controller
1799
+ )
1800
+ {
1801
+ //* Write to the CR register
1802
+ pSPI->SPI_CR = AT91C_SPI_SPIDIS;
1803
+ }
1804
+
1805
+ //*----------------------------------------------------------------------------
1806
+ //* \fn AT91F_SPI_CfgMode
1807
+ //* \brief Enable the SPI controller
1808
+ //*----------------------------------------------------------------------------
1809
+ __inline void AT91F_SPI_CfgMode (
1810
+ AT91PS_SPI pSPI, // pointer to a SPI controller
1811
+ int mode) // mode register
1812
+ {
1813
+ //* Write to the MR register
1814
+ pSPI->SPI_MR = mode;
1815
+ }
1816
+
1817
+ //*----------------------------------------------------------------------------
1818
+ //* \fn AT91F_SPI_CfgPCS
1819
+ //* \brief Switch to the correct PCS of SPI Mode Register : Fixed Peripheral Selected
1820
+ //*----------------------------------------------------------------------------
1821
+ __inline void AT91F_SPI_CfgPCS (
1822
+ AT91PS_SPI pSPI, // pointer to a SPI controller
1823
+ char PCS_Device) // PCS of the Device
1824
+ {
1825
+ //* Write to the MR register
1826
+ pSPI->SPI_MR &= 0xFFF0FFFF;
1827
+ pSPI->SPI_MR |= ( (PCS_Device<<16) & AT91C_SPI_PCS );
1828
+ }
1829
+
1830
+ //*----------------------------------------------------------------------------
1831
+ //* \fn AT91F_SPI_ReceiveFrame
1832
+ //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been initializaed with Next Buffer, 0 if PDC is busy
1833
+ //*----------------------------------------------------------------------------
1834
+ __inline unsigned int AT91F_SPI_ReceiveFrame (
1835
+ AT91PS_SPI pSPI,
1836
+ char *pBuffer,
1837
+ unsigned int szBuffer,
1838
+ char *pNextBuffer,
1839
+ unsigned int szNextBuffer )
1840
+ {
1841
+ return AT91F_PDC_ReceiveFrame(
1842
+ (AT91PS_PDC) &(pSPI->SPI_RPR),
1843
+ pBuffer,
1844
+ szBuffer,
1845
+ pNextBuffer,
1846
+ szNextBuffer);
1847
+ }
1848
+
1849
+ //*----------------------------------------------------------------------------
1850
+ //* \fn AT91F_SPI_SendFrame
1851
+ //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been initializaed with Next Buffer, 0 if PDC is bSPIy
1852
+ //*----------------------------------------------------------------------------
1853
+ __inline unsigned int AT91F_SPI_SendFrame(
1854
+ AT91PS_SPI pSPI,
1855
+ char *pBuffer,
1856
+ unsigned int szBuffer,
1857
+ char *pNextBuffer,
1858
+ unsigned int szNextBuffer )
1859
+ {
1860
+ return AT91F_PDC_SendFrame(
1861
+ (AT91PS_PDC) &(pSPI->SPI_RPR),
1862
+ pBuffer,
1863
+ szBuffer,
1864
+ pNextBuffer,
1865
+ szNextBuffer);
1866
+ }
1867
+
1868
+ //*----------------------------------------------------------------------------
1869
+ //* \fn AT91F_SPI_Close
1870
+ //* \brief Close SPI: disable IT disable transfert, close PDC
1871
+ //*----------------------------------------------------------------------------
1872
+ __inline void AT91F_SPI_Close (
1873
+ AT91PS_SPI pSPI) // \arg pointer to a SPI controller
1874
+ {
1875
+ //* Reset all the Chip Select register
1876
+ pSPI->SPI_CSR[0] = 0 ;
1877
+ pSPI->SPI_CSR[1] = 0 ;
1878
+ pSPI->SPI_CSR[2] = 0 ;
1879
+ pSPI->SPI_CSR[3] = 0 ;
1880
+
1881
+ //* Reset the SPI mode
1882
+ pSPI->SPI_MR = 0 ;
1883
+
1884
+ //* Disable all interrupts
1885
+ pSPI->SPI_IDR = 0xFFFFFFFF ;
1886
+
1887
+ //* Abort the Peripheral Data Transfers
1888
+ AT91F_PDC_Close((AT91PS_PDC) &(pSPI->SPI_RPR));
1889
+
1890
+ //* Disable receiver and transmitter and stop any activity immediately
1891
+ pSPI->SPI_CR = AT91C_SPI_SPIDIS;
1892
+ }
1893
+
1894
+ //*----------------------------------------------------------------------------
1895
+ //* \fn AT91F_SPI_PutChar
1896
+ //* \brief Send a character,does not check if ready to send
1897
+ //*----------------------------------------------------------------------------
1898
+ __inline void AT91F_SPI_PutChar (
1899
+ AT91PS_SPI pSPI,
1900
+ unsigned int character,
1901
+ unsigned int cs_number )
1902
+ {
1903
+ unsigned int value_for_cs;
1904
+ value_for_cs = (~(1 << cs_number)) & 0xF; //Place a zero among a 4 ONEs number
1905
+ pSPI->SPI_TDR = (character & 0xFFFF) | (value_for_cs << 16);
1906
+ }
1907
+
1908
+ //*----------------------------------------------------------------------------
1909
+ //* \fn AT91F_SPI_GetChar
1910
+ //* \brief Receive a character,does not check if a character is available
1911
+ //*----------------------------------------------------------------------------
1912
+ __inline int AT91F_SPI_GetChar (
1913
+ const AT91PS_SPI pSPI)
1914
+ {
1915
+ return((pSPI->SPI_RDR) & 0xFFFF);
1916
+ }
1917
+
1918
+ //*----------------------------------------------------------------------------
1919
+ //* \fn AT91F_SPI_GetInterruptMaskStatus
1920
+ //* \brief Return SPI Interrupt Mask Status
1921
+ //*----------------------------------------------------------------------------
1922
+ __inline unsigned int AT91F_SPI_GetInterruptMaskStatus( // \return SPI Interrupt Mask Status
1923
+ AT91PS_SPI pSpi) // \arg pointer to a SPI controller
1924
+ {
1925
+ return pSpi->SPI_IMR;
1926
+ }
1927
+
1928
+ //*----------------------------------------------------------------------------
1929
+ //* \fn AT91F_SPI_IsInterruptMasked
1930
+ //* \brief Test if SPI Interrupt is Masked
1931
+ //*----------------------------------------------------------------------------
1932
+ __inline int AT91F_SPI_IsInterruptMasked(
1933
+ AT91PS_SPI pSpi, // \arg pointer to a SPI controller
1934
+ unsigned int flag) // \arg flag to be tested
1935
+ {
1936
+ return (AT91F_SPI_GetInterruptMaskStatus(pSpi) & flag);
1937
+ }
1938
+
1939
+ /* *****************************************************************************
1940
+ SOFTWARE API FOR USART
1941
+ ***************************************************************************** */
1942
+ //*----------------------------------------------------------------------------
1943
+ //* \fn AT91F_US_Baudrate
1944
+ //* \brief Calculate the baudrate
1945
+ //* Standard Asynchronous Mode : 8 bits , 1 stop , no parity
1946
+ #define AT91C_US_ASYNC_MODE ( AT91C_US_USMODE_NORMAL + \
1947
+ AT91C_US_NBSTOP_1_BIT + \
1948
+ AT91C_US_PAR_NONE + \
1949
+ AT91C_US_CHRL_8_BITS + \
1950
+ AT91C_US_CLKS_CLOCK )
1951
+
1952
+ //* Standard External Asynchronous Mode : 8 bits , 1 stop , no parity
1953
+ #define AT91C_US_ASYNC_SCK_MODE ( AT91C_US_USMODE_NORMAL + \
1954
+ AT91C_US_NBSTOP_1_BIT + \
1955
+ AT91C_US_PAR_NONE + \
1956
+ AT91C_US_CHRL_8_BITS + \
1957
+ AT91C_US_CLKS_EXT )
1958
+
1959
+ //* Standard Synchronous Mode : 8 bits , 1 stop , no parity
1960
+ #define AT91C_US_SYNC_MODE ( AT91C_US_SYNC + \
1961
+ AT91C_US_USMODE_NORMAL + \
1962
+ AT91C_US_NBSTOP_1_BIT + \
1963
+ AT91C_US_PAR_NONE + \
1964
+ AT91C_US_CHRL_8_BITS + \
1965
+ AT91C_US_CLKS_CLOCK )
1966
+
1967
+ //* SCK used Label
1968
+ #define AT91C_US_SCK_USED (AT91C_US_CKLO | AT91C_US_CLKS_EXT)
1969
+
1970
+ //* Standard ISO T=0 Mode : 8 bits , 1 stop , parity
1971
+ #define AT91C_US_ISO_READER_MODE ( AT91C_US_USMODE_ISO7816_0 + \
1972
+ AT91C_US_CLKS_CLOCK +\
1973
+ AT91C_US_NBSTOP_1_BIT + \
1974
+ AT91C_US_PAR_EVEN + \
1975
+ AT91C_US_CHRL_8_BITS + \
1976
+ AT91C_US_CKLO +\
1977
+ AT91C_US_OVER)
1978
+
1979
+ //* Standard IRDA mode
1980
+ #define AT91C_US_ASYNC_IRDA_MODE ( AT91C_US_USMODE_IRDA + \
1981
+ AT91C_US_NBSTOP_1_BIT + \
1982
+ AT91C_US_PAR_NONE + \
1983
+ AT91C_US_CHRL_8_BITS + \
1984
+ AT91C_US_CLKS_CLOCK )
1985
+
1986
+ //*----------------------------------------------------------------------------
1987
+ //* \fn AT91F_US_Baudrate
1988
+ //* \brief Caluculate baud_value according to the main clock and the baud rate
1989
+ //*----------------------------------------------------------------------------
1990
+ __inline unsigned int AT91F_US_Baudrate (
1991
+ const unsigned int main_clock, // \arg peripheral clock
1992
+ const unsigned int baud_rate) // \arg UART baudrate
1993
+ {
1994
+ unsigned int baud_value = ((main_clock*10)/(baud_rate * 16));
1995
+ if ((baud_value % 10) >= 5)
1996
+ baud_value = (baud_value / 10) + 1;
1997
+ else
1998
+ baud_value /= 10;
1999
+ return baud_value;
2000
+ }
2001
+
2002
+ //*----------------------------------------------------------------------------
2003
+ //* \fn AT91F_US_SetBaudrate
2004
+ //* \brief Set the baudrate according to the CPU clock
2005
+ //*----------------------------------------------------------------------------
2006
+ __inline void AT91F_US_SetBaudrate (
2007
+ AT91PS_USART pUSART, // \arg pointer to a USART controller
2008
+ unsigned int mainClock, // \arg peripheral clock
2009
+ unsigned int speed) // \arg UART baudrate
2010
+ {
2011
+ //* Define the baud rate divisor register
2012
+ pUSART->US_BRGR = AT91F_US_Baudrate(mainClock, speed);
2013
+ }
2014
+
2015
+ //*----------------------------------------------------------------------------
2016
+ //* \fn AT91F_US_SetTimeguard
2017
+ //* \brief Set USART timeguard
2018
+ //*----------------------------------------------------------------------------
2019
+ __inline void AT91F_US_SetTimeguard (
2020
+ AT91PS_USART pUSART, // \arg pointer to a USART controller
2021
+ unsigned int timeguard) // \arg timeguard value
2022
+ {
2023
+ //* Write the Timeguard Register
2024
+ pUSART->US_TTGR = timeguard ;
2025
+ }
2026
+
2027
+ //*----------------------------------------------------------------------------
2028
+ //* \fn AT91F_US_EnableIt
2029
+ //* \brief Enable USART IT
2030
+ //*----------------------------------------------------------------------------
2031
+ __inline void AT91F_US_EnableIt (
2032
+ AT91PS_USART pUSART, // \arg pointer to a USART controller
2033
+ unsigned int flag) // \arg IT to be enabled
2034
+ {
2035
+ //* Write to the IER register
2036
+ pUSART->US_IER = flag;
2037
+ }
2038
+
2039
+ //*----------------------------------------------------------------------------
2040
+ //* \fn AT91F_US_DisableIt
2041
+ //* \brief Disable USART IT
2042
+ //*----------------------------------------------------------------------------
2043
+ __inline void AT91F_US_DisableIt (
2044
+ AT91PS_USART pUSART, // \arg pointer to a USART controller
2045
+ unsigned int flag) // \arg IT to be disabled
2046
+ {
2047
+ //* Write to the IER register
2048
+ pUSART->US_IDR = flag;
2049
+ }
2050
+
2051
+ //*----------------------------------------------------------------------------
2052
+ //* \fn AT91F_US_Configure
2053
+ //* \brief Configure USART
2054
+ //*----------------------------------------------------------------------------
2055
+ __inline void AT91F_US_Configure (
2056
+ AT91PS_USART pUSART, // \arg pointer to a USART controller
2057
+ unsigned int mainClock, // \arg peripheral clock
2058
+ unsigned int mode , // \arg mode Register to be programmed
2059
+ unsigned int baudRate , // \arg baudrate to be programmed
2060
+ unsigned int timeguard ) // \arg timeguard to be programmed
2061
+ {
2062
+ //* Disable interrupts
2063
+ pUSART->US_IDR = (unsigned int) -1;
2064
+
2065
+ //* Reset receiver and transmitter
2066
+ pUSART->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS ;
2067
+
2068
+ //* Define the baud rate divisor register
2069
+ AT91F_US_SetBaudrate(pUSART, mainClock, baudRate);
2070
+
2071
+ //* Write the Timeguard Register
2072
+ AT91F_US_SetTimeguard(pUSART, timeguard);
2073
+
2074
+ //* Clear Transmit and Receive Counters
2075
+ AT91F_PDC_Open((AT91PS_PDC) &(pUSART->US_RPR));
2076
+
2077
+ //* Define the USART mode
2078
+ pUSART->US_MR = mode ;
2079
+
2080
+ }
2081
+
2082
+ //*----------------------------------------------------------------------------
2083
+ //* \fn AT91F_US_EnableRx
2084
+ //* \brief Enable receiving characters
2085
+ //*----------------------------------------------------------------------------
2086
+ __inline void AT91F_US_EnableRx (
2087
+ AT91PS_USART pUSART) // \arg pointer to a USART controller
2088
+ {
2089
+ //* Enable receiver
2090
+ pUSART->US_CR = AT91C_US_RXEN;
2091
+ }
2092
+
2093
+ //*----------------------------------------------------------------------------
2094
+ //* \fn AT91F_US_EnableTx
2095
+ //* \brief Enable sending characters
2096
+ //*----------------------------------------------------------------------------
2097
+ __inline void AT91F_US_EnableTx (
2098
+ AT91PS_USART pUSART) // \arg pointer to a USART controller
2099
+ {
2100
+ //* Enable transmitter
2101
+ pUSART->US_CR = AT91C_US_TXEN;
2102
+ }
2103
+
2104
+ //*----------------------------------------------------------------------------
2105
+ //* \fn AT91F_US_ResetRx
2106
+ //* \brief Reset Receiver and re-enable it
2107
+ //*----------------------------------------------------------------------------
2108
+ __inline void AT91F_US_ResetRx (
2109
+ AT91PS_USART pUSART) // \arg pointer to a USART controller
2110
+ {
2111
+ //* Reset receiver
2112
+ pUSART->US_CR = AT91C_US_RSTRX;
2113
+ //* Re-Enable receiver
2114
+ pUSART->US_CR = AT91C_US_RXEN;
2115
+ }
2116
+
2117
+ //*----------------------------------------------------------------------------
2118
+ //* \fn AT91F_US_ResetTx
2119
+ //* \brief Reset Transmitter and re-enable it
2120
+ //*----------------------------------------------------------------------------
2121
+ __inline void AT91F_US_ResetTx (
2122
+ AT91PS_USART pUSART) // \arg pointer to a USART controller
2123
+ {
2124
+ //* Reset transmitter
2125
+ pUSART->US_CR = AT91C_US_RSTTX;
2126
+ //* Enable transmitter
2127
+ pUSART->US_CR = AT91C_US_TXEN;
2128
+ }
2129
+
2130
+ //*----------------------------------------------------------------------------
2131
+ //* \fn AT91F_US_DisableRx
2132
+ //* \brief Disable Receiver
2133
+ //*----------------------------------------------------------------------------
2134
+ __inline void AT91F_US_DisableRx (
2135
+ AT91PS_USART pUSART) // \arg pointer to a USART controller
2136
+ {
2137
+ //* Disable receiver
2138
+ pUSART->US_CR = AT91C_US_RXDIS;
2139
+ }
2140
+
2141
+ //*----------------------------------------------------------------------------
2142
+ //* \fn AT91F_US_DisableTx
2143
+ //* \brief Disable Transmitter
2144
+ //*----------------------------------------------------------------------------
2145
+ __inline void AT91F_US_DisableTx (
2146
+ AT91PS_USART pUSART) // \arg pointer to a USART controller
2147
+ {
2148
+ //* Disable transmitter
2149
+ pUSART->US_CR = AT91C_US_TXDIS;
2150
+ }
2151
+
2152
+ //*----------------------------------------------------------------------------
2153
+ //* \fn AT91F_US_Close
2154
+ //* \brief Close USART: disable IT disable receiver and transmitter, close PDC
2155
+ //*----------------------------------------------------------------------------
2156
+ __inline void AT91F_US_Close (
2157
+ AT91PS_USART pUSART) // \arg pointer to a USART controller
2158
+ {
2159
+ //* Reset the baud rate divisor register
2160
+ pUSART->US_BRGR = 0 ;
2161
+
2162
+ //* Reset the USART mode
2163
+ pUSART->US_MR = 0 ;
2164
+
2165
+ //* Reset the Timeguard Register
2166
+ pUSART->US_TTGR = 0;
2167
+
2168
+ //* Disable all interrupts
2169
+ pUSART->US_IDR = 0xFFFFFFFF ;
2170
+
2171
+ //* Abort the Peripheral Data Transfers
2172
+ AT91F_PDC_Close((AT91PS_PDC) &(pUSART->US_RPR));
2173
+
2174
+ //* Disable receiver and transmitter and stop any activity immediately
2175
+ pUSART->US_CR = AT91C_US_TXDIS | AT91C_US_RXDIS | AT91C_US_RSTTX | AT91C_US_RSTRX ;
2176
+ }
2177
+
2178
+ //*----------------------------------------------------------------------------
2179
+ //* \fn AT91F_US_TxReady
2180
+ //* \brief Return 1 if a character can be written in US_THR
2181
+ //*----------------------------------------------------------------------------
2182
+ __inline unsigned int AT91F_US_TxReady (
2183
+ AT91PS_USART pUSART ) // \arg pointer to a USART controller
2184
+ {
2185
+ return (pUSART->US_CSR & AT91C_US_TXRDY);
2186
+ }
2187
+
2188
+ //*----------------------------------------------------------------------------
2189
+ //* \fn AT91F_US_RxReady
2190
+ //* \brief Return 1 if a character can be read in US_RHR
2191
+ //*----------------------------------------------------------------------------
2192
+ __inline unsigned int AT91F_US_RxReady (
2193
+ AT91PS_USART pUSART ) // \arg pointer to a USART controller
2194
+ {
2195
+ return (pUSART->US_CSR & AT91C_US_RXRDY);
2196
+ }
2197
+
2198
+ //*----------------------------------------------------------------------------
2199
+ //* \fn AT91F_US_Error
2200
+ //* \brief Return the error flag
2201
+ //*----------------------------------------------------------------------------
2202
+ __inline unsigned int AT91F_US_Error (
2203
+ AT91PS_USART pUSART ) // \arg pointer to a USART controller
2204
+ {
2205
+ return (pUSART->US_CSR &
2206
+ (AT91C_US_OVRE | // Overrun error
2207
+ AT91C_US_FRAME | // Framing error
2208
+ AT91C_US_PARE)); // Parity error
2209
+ }
2210
+
2211
+ //*----------------------------------------------------------------------------
2212
+ //* \fn AT91F_US_PutChar
2213
+ //* \brief Send a character,does not check if ready to send
2214
+ //*----------------------------------------------------------------------------
2215
+ __inline void AT91F_US_PutChar (
2216
+ AT91PS_USART pUSART,
2217
+ int character )
2218
+ {
2219
+ pUSART->US_THR = (character & 0x1FF);
2220
+ }
2221
+
2222
+ //*----------------------------------------------------------------------------
2223
+ //* \fn AT91F_US_GetChar
2224
+ //* \brief Receive a character,does not check if a character is available
2225
+ //*----------------------------------------------------------------------------
2226
+ __inline int AT91F_US_GetChar (
2227
+ const AT91PS_USART pUSART)
2228
+ {
2229
+ return((pUSART->US_RHR) & 0x1FF);
2230
+ }
2231
+
2232
+ //*----------------------------------------------------------------------------
2233
+ //* \fn AT91F_US_SendFrame
2234
+ //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been initializaed with Next Buffer, 0 if PDC is busy
2235
+ //*----------------------------------------------------------------------------
2236
+ __inline unsigned int AT91F_US_SendFrame(
2237
+ AT91PS_USART pUSART,
2238
+ char *pBuffer,
2239
+ unsigned int szBuffer,
2240
+ char *pNextBuffer,
2241
+ unsigned int szNextBuffer )
2242
+ {
2243
+ return AT91F_PDC_SendFrame(
2244
+ (AT91PS_PDC) &(pUSART->US_RPR),
2245
+ pBuffer,
2246
+ szBuffer,
2247
+ pNextBuffer,
2248
+ szNextBuffer);
2249
+ }
2250
+
2251
+ //*----------------------------------------------------------------------------
2252
+ //* \fn AT91F_US_ReceiveFrame
2253
+ //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been initializaed with Next Buffer, 0 if PDC is busy
2254
+ //*----------------------------------------------------------------------------
2255
+ __inline unsigned int AT91F_US_ReceiveFrame (
2256
+ AT91PS_USART pUSART,
2257
+ char *pBuffer,
2258
+ unsigned int szBuffer,
2259
+ char *pNextBuffer,
2260
+ unsigned int szNextBuffer )
2261
+ {
2262
+ return AT91F_PDC_ReceiveFrame(
2263
+ (AT91PS_PDC) &(pUSART->US_RPR),
2264
+ pBuffer,
2265
+ szBuffer,
2266
+ pNextBuffer,
2267
+ szNextBuffer);
2268
+ }
2269
+
2270
+ //*----------------------------------------------------------------------------
2271
+ //* \fn AT91F_US_SetIrdaFilter
2272
+ //* \brief Set the value of IrDa filter tregister
2273
+ //*----------------------------------------------------------------------------
2274
+ __inline void AT91F_US_SetIrdaFilter (
2275
+ AT91PS_USART pUSART,
2276
+ unsigned char value
2277
+ )
2278
+ {
2279
+ pUSART->US_IF = value;
2280
+ }
2281
+
2282
+ /* *****************************************************************************
2283
+ SOFTWARE API FOR SSC
2284
+ ***************************************************************************** */
2285
+ //* Define the standard I2S mode configuration
2286
+
2287
+ //* Configuration to set in the SSC Transmit Clock Mode Register
2288
+ //* Parameters : nb_bit_by_slot : 8, 16 or 32 bits
2289
+ //* nb_slot_by_frame : number of channels
2290
+ #define AT91C_I2S_ASY_MASTER_TX_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\
2291
+ AT91C_SSC_CKS_DIV +\
2292
+ AT91C_SSC_CKO_CONTINOUS +\
2293
+ AT91C_SSC_CKG_NONE +\
2294
+ AT91C_SSC_START_FALL_RF +\
2295
+ AT91C_SSC_STTOUT +\
2296
+ ((1<<16) & AT91C_SSC_STTDLY) +\
2297
+ ((((nb_bit_by_slot*nb_slot_by_frame)/2)-1) <<24))
2298
+
2299
+
2300
+ //* Configuration to set in the SSC Transmit Frame Mode Register
2301
+ //* Parameters : nb_bit_by_slot : 8, 16 or 32 bits
2302
+ //* nb_slot_by_frame : number of channels
2303
+ #define AT91C_I2S_ASY_TX_FRAME_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\
2304
+ (nb_bit_by_slot-1) +\
2305
+ AT91C_SSC_MSBF +\
2306
+ (((nb_slot_by_frame-1)<<8) & AT91C_SSC_DATNB) +\
2307
+ (((nb_bit_by_slot-1)<<16) & AT91C_SSC_FSLEN) +\
2308
+ AT91C_SSC_FSOS_NEGATIVE)
2309
+
2310
+
2311
+ //*----------------------------------------------------------------------------
2312
+ //* \fn AT91F_SSC_SetBaudrate
2313
+ //* \brief Set the baudrate according to the CPU clock
2314
+ //*----------------------------------------------------------------------------
2315
+ __inline void AT91F_SSC_SetBaudrate (
2316
+ AT91PS_SSC pSSC, // \arg pointer to a SSC controller
2317
+ unsigned int mainClock, // \arg peripheral clock
2318
+ unsigned int speed) // \arg SSC baudrate
2319
+ {
2320
+ unsigned int baud_value;
2321
+ //* Define the baud rate divisor register
2322
+ if (speed == 0)
2323
+ baud_value = 0;
2324
+ else
2325
+ {
2326
+ baud_value = (unsigned int) (mainClock * 10)/(2*speed);
2327
+ if ((baud_value % 10) >= 5)
2328
+ baud_value = (baud_value / 10) + 1;
2329
+ else
2330
+ baud_value /= 10;
2331
+ }
2332
+
2333
+ pSSC->SSC_CMR = baud_value;
2334
+ }
2335
+
2336
+ //*----------------------------------------------------------------------------
2337
+ //* \fn AT91F_SSC_Configure
2338
+ //* \brief Configure SSC
2339
+ //*----------------------------------------------------------------------------
2340
+ __inline void AT91F_SSC_Configure (
2341
+ AT91PS_SSC pSSC, // \arg pointer to a SSC controller
2342
+ unsigned int syst_clock, // \arg System Clock Frequency
2343
+ unsigned int baud_rate, // \arg Expected Baud Rate Frequency
2344
+ unsigned int clock_rx, // \arg Receiver Clock Parameters
2345
+ unsigned int mode_rx, // \arg mode Register to be programmed
2346
+ unsigned int clock_tx, // \arg Transmitter Clock Parameters
2347
+ unsigned int mode_tx) // \arg mode Register to be programmed
2348
+ {
2349
+ //* Disable interrupts
2350
+ pSSC->SSC_IDR = (unsigned int) -1;
2351
+
2352
+ //* Reset receiver and transmitter
2353
+ pSSC->SSC_CR = AT91C_SSC_SWRST | AT91C_SSC_RXDIS | AT91C_SSC_TXDIS ;
2354
+
2355
+ //* Define the Clock Mode Register
2356
+ AT91F_SSC_SetBaudrate(pSSC, syst_clock, baud_rate);
2357
+
2358
+ //* Write the Receive Clock Mode Register
2359
+ pSSC->SSC_RCMR = clock_rx;
2360
+
2361
+ //* Write the Transmit Clock Mode Register
2362
+ pSSC->SSC_TCMR = clock_tx;
2363
+
2364
+ //* Write the Receive Frame Mode Register
2365
+ pSSC->SSC_RFMR = mode_rx;
2366
+
2367
+ //* Write the Transmit Frame Mode Register
2368
+ pSSC->SSC_TFMR = mode_tx;
2369
+
2370
+ //* Clear Transmit and Receive Counters
2371
+ AT91F_PDC_Open((AT91PS_PDC) &(pSSC->SSC_RPR));
2372
+
2373
+
2374
+ }
2375
+
2376
+ //*----------------------------------------------------------------------------
2377
+ //* \fn AT91F_SSC_EnableRx
2378
+ //* \brief Enable receiving datas
2379
+ //*----------------------------------------------------------------------------
2380
+ __inline void AT91F_SSC_EnableRx (
2381
+ AT91PS_SSC pSSC) // \arg pointer to a SSC controller
2382
+ {
2383
+ //* Enable receiver
2384
+ pSSC->SSC_CR = AT91C_SSC_RXEN;
2385
+ }
2386
+
2387
+ //*----------------------------------------------------------------------------
2388
+ //* \fn AT91F_SSC_DisableRx
2389
+ //* \brief Disable receiving datas
2390
+ //*----------------------------------------------------------------------------
2391
+ __inline void AT91F_SSC_DisableRx (
2392
+ AT91PS_SSC pSSC) // \arg pointer to a SSC controller
2393
+ {
2394
+ //* Disable receiver
2395
+ pSSC->SSC_CR = AT91C_SSC_RXDIS;
2396
+ }
2397
+
2398
+ //*----------------------------------------------------------------------------
2399
+ //* \fn AT91F_SSC_EnableTx
2400
+ //* \brief Enable sending datas
2401
+ //*----------------------------------------------------------------------------
2402
+ __inline void AT91F_SSC_EnableTx (
2403
+ AT91PS_SSC pSSC) // \arg pointer to a SSC controller
2404
+ {
2405
+ //* Enable transmitter
2406
+ pSSC->SSC_CR = AT91C_SSC_TXEN;
2407
+ }
2408
+
2409
+ //*----------------------------------------------------------------------------
2410
+ //* \fn AT91F_SSC_DisableTx
2411
+ //* \brief Disable sending datas
2412
+ //*----------------------------------------------------------------------------
2413
+ __inline void AT91F_SSC_DisableTx (
2414
+ AT91PS_SSC pSSC) // \arg pointer to a SSC controller
2415
+ {
2416
+ //* Disable transmitter
2417
+ pSSC->SSC_CR = AT91C_SSC_TXDIS;
2418
+ }
2419
+
2420
+ //*----------------------------------------------------------------------------
2421
+ //* \fn AT91F_SSC_EnableIt
2422
+ //* \brief Enable SSC IT
2423
+ //*----------------------------------------------------------------------------
2424
+ __inline void AT91F_SSC_EnableIt (
2425
+ AT91PS_SSC pSSC, // \arg pointer to a SSC controller
2426
+ unsigned int flag) // \arg IT to be enabled
2427
+ {
2428
+ //* Write to the IER register
2429
+ pSSC->SSC_IER = flag;
2430
+ }
2431
+
2432
+ //*----------------------------------------------------------------------------
2433
+ //* \fn AT91F_SSC_DisableIt
2434
+ //* \brief Disable SSC IT
2435
+ //*----------------------------------------------------------------------------
2436
+ __inline void AT91F_SSC_DisableIt (
2437
+ AT91PS_SSC pSSC, // \arg pointer to a SSC controller
2438
+ unsigned int flag) // \arg IT to be disabled
2439
+ {
2440
+ //* Write to the IDR register
2441
+ pSSC->SSC_IDR = flag;
2442
+ }
2443
+
2444
+ //*----------------------------------------------------------------------------
2445
+ //* \fn AT91F_SSC_ReceiveFrame
2446
+ //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been initialized with Next Buffer, 0 if PDC is busy
2447
+ //*----------------------------------------------------------------------------
2448
+ __inline unsigned int AT91F_SSC_ReceiveFrame (
2449
+ AT91PS_SSC pSSC,
2450
+ char *pBuffer,
2451
+ unsigned int szBuffer,
2452
+ char *pNextBuffer,
2453
+ unsigned int szNextBuffer )
2454
+ {
2455
+ return AT91F_PDC_ReceiveFrame(
2456
+ (AT91PS_PDC) &(pSSC->SSC_RPR),
2457
+ pBuffer,
2458
+ szBuffer,
2459
+ pNextBuffer,
2460
+ szNextBuffer);
2461
+ }
2462
+
2463
+ //*----------------------------------------------------------------------------
2464
+ //* \fn AT91F_SSC_SendFrame
2465
+ //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been initialized with Next Buffer, 0 if PDC is busy
2466
+ //*----------------------------------------------------------------------------
2467
+ __inline unsigned int AT91F_SSC_SendFrame(
2468
+ AT91PS_SSC pSSC,
2469
+ char *pBuffer,
2470
+ unsigned int szBuffer,
2471
+ char *pNextBuffer,
2472
+ unsigned int szNextBuffer )
2473
+ {
2474
+ return AT91F_PDC_SendFrame(
2475
+ (AT91PS_PDC) &(pSSC->SSC_RPR),
2476
+ pBuffer,
2477
+ szBuffer,
2478
+ pNextBuffer,
2479
+ szNextBuffer);
2480
+ }
2481
+
2482
+ //*----------------------------------------------------------------------------
2483
+ //* \fn AT91F_SSC_GetInterruptMaskStatus
2484
+ //* \brief Return SSC Interrupt Mask Status
2485
+ //*----------------------------------------------------------------------------
2486
+ __inline unsigned int AT91F_SSC_GetInterruptMaskStatus( // \return SSC Interrupt Mask Status
2487
+ AT91PS_SSC pSsc) // \arg pointer to a SSC controller
2488
+ {
2489
+ return pSsc->SSC_IMR;
2490
+ }
2491
+
2492
+ //*----------------------------------------------------------------------------
2493
+ //* \fn AT91F_SSC_IsInterruptMasked
2494
+ //* \brief Test if SSC Interrupt is Masked
2495
+ //*----------------------------------------------------------------------------
2496
+ __inline int AT91F_SSC_IsInterruptMasked(
2497
+ AT91PS_SSC pSsc, // \arg pointer to a SSC controller
2498
+ unsigned int flag) // \arg flag to be tested
2499
+ {
2500
+ return (AT91F_SSC_GetInterruptMaskStatus(pSsc) & flag);
2501
+ }
2502
+
2503
+ /* *****************************************************************************
2504
+ SOFTWARE API FOR TWI
2505
+ ***************************************************************************** */
2506
+ //*----------------------------------------------------------------------------
2507
+ //* \fn AT91F_TWI_EnableIt
2508
+ //* \brief Enable TWI IT
2509
+ //*----------------------------------------------------------------------------
2510
+ __inline void AT91F_TWI_EnableIt (
2511
+ AT91PS_TWI pTWI, // \arg pointer to a TWI controller
2512
+ unsigned int flag) // \arg IT to be enabled
2513
+ {
2514
+ //* Write to the IER register
2515
+ pTWI->TWI_IER = flag;
2516
+ }
2517
+
2518
+ //*----------------------------------------------------------------------------
2519
+ //* \fn AT91F_TWI_DisableIt
2520
+ //* \brief Disable TWI IT
2521
+ //*----------------------------------------------------------------------------
2522
+ __inline void AT91F_TWI_DisableIt (
2523
+ AT91PS_TWI pTWI, // \arg pointer to a TWI controller
2524
+ unsigned int flag) // \arg IT to be disabled
2525
+ {
2526
+ //* Write to the IDR register
2527
+ pTWI->TWI_IDR = flag;
2528
+ }
2529
+
2530
+ //*----------------------------------------------------------------------------
2531
+ //* \fn AT91F_TWI_Configure
2532
+ //* \brief Configure TWI in master mode
2533
+ //*----------------------------------------------------------------------------
2534
+ __inline void AT91F_TWI_Configure ( AT91PS_TWI pTWI ) // \arg pointer to a TWI controller
2535
+ {
2536
+ //* Disable interrupts
2537
+ pTWI->TWI_IDR = (unsigned int) -1;
2538
+
2539
+ //* Reset peripheral
2540
+ pTWI->TWI_CR = AT91C_TWI_SWRST;
2541
+
2542
+ //* Set Master mode
2543
+ pTWI->TWI_CR = AT91C_TWI_MSEN;
2544
+
2545
+ }
2546
+
2547
+ //*----------------------------------------------------------------------------
2548
+ //* \fn AT91F_TWI_GetInterruptMaskStatus
2549
+ //* \brief Return TWI Interrupt Mask Status
2550
+ //*----------------------------------------------------------------------------
2551
+ __inline unsigned int AT91F_TWI_GetInterruptMaskStatus( // \return TWI Interrupt Mask Status
2552
+ AT91PS_TWI pTwi) // \arg pointer to a TWI controller
2553
+ {
2554
+ return pTwi->TWI_IMR;
2555
+ }
2556
+
2557
+ //*----------------------------------------------------------------------------
2558
+ //* \fn AT91F_TWI_IsInterruptMasked
2559
+ //* \brief Test if TWI Interrupt is Masked
2560
+ //*----------------------------------------------------------------------------
2561
+ __inline int AT91F_TWI_IsInterruptMasked(
2562
+ AT91PS_TWI pTwi, // \arg pointer to a TWI controller
2563
+ unsigned int flag) // \arg flag to be tested
2564
+ {
2565
+ return (AT91F_TWI_GetInterruptMaskStatus(pTwi) & flag);
2566
+ }
2567
+
2568
+ /* *****************************************************************************
2569
+ SOFTWARE API FOR PWMC
2570
+ ***************************************************************************** */
2571
+ //*----------------------------------------------------------------------------
2572
+ //* \fn AT91F_PWM_GetStatus
2573
+ //* \brief Return PWM Interrupt Status
2574
+ //*----------------------------------------------------------------------------
2575
+ __inline unsigned int AT91F_PWMC_GetStatus( // \return PWM Interrupt Status
2576
+ AT91PS_PWMC pPWM) // pointer to a PWM controller
2577
+ {
2578
+ return pPWM->PWMC_SR;
2579
+ }
2580
+
2581
+ //*----------------------------------------------------------------------------
2582
+ //* \fn AT91F_PWM_InterruptEnable
2583
+ //* \brief Enable PWM Interrupt
2584
+ //*----------------------------------------------------------------------------
2585
+ __inline void AT91F_PWMC_InterruptEnable(
2586
+ AT91PS_PWMC pPwm, // \arg pointer to a PWM controller
2587
+ unsigned int flag) // \arg PWM interrupt to be enabled
2588
+ {
2589
+ pPwm->PWMC_IER = flag;
2590
+ }
2591
+
2592
+ //*----------------------------------------------------------------------------
2593
+ //* \fn AT91F_PWM_InterruptDisable
2594
+ //* \brief Disable PWM Interrupt
2595
+ //*----------------------------------------------------------------------------
2596
+ __inline void AT91F_PWMC_InterruptDisable(
2597
+ AT91PS_PWMC pPwm, // \arg pointer to a PWM controller
2598
+ unsigned int flag) // \arg PWM interrupt to be disabled
2599
+ {
2600
+ pPwm->PWMC_IDR = flag;
2601
+ }
2602
+
2603
+ //*----------------------------------------------------------------------------
2604
+ //* \fn AT91F_PWM_GetInterruptMaskStatus
2605
+ //* \brief Return PWM Interrupt Mask Status
2606
+ //*----------------------------------------------------------------------------
2607
+ __inline unsigned int AT91F_PWMC_GetInterruptMaskStatus( // \return PWM Interrupt Mask Status
2608
+ AT91PS_PWMC pPwm) // \arg pointer to a PWM controller
2609
+ {
2610
+ return pPwm->PWMC_IMR;
2611
+ }
2612
+
2613
+ //*----------------------------------------------------------------------------
2614
+ //* \fn AT91F_PWM_IsInterruptMasked
2615
+ //* \brief Test if PWM Interrupt is Masked
2616
+ //*----------------------------------------------------------------------------
2617
+ __inline unsigned int AT91F_PWMC_IsInterruptMasked(
2618
+ AT91PS_PWMC pPWM, // \arg pointer to a PWM controller
2619
+ unsigned int flag) // \arg flag to be tested
2620
+ {
2621
+ return (AT91F_PWMC_GetInterruptMaskStatus(pPWM) & flag);
2622
+ }
2623
+
2624
+ //*----------------------------------------------------------------------------
2625
+ //* \fn AT91F_PWM_IsStatusSet
2626
+ //* \brief Test if PWM Interrupt is Set
2627
+ //*----------------------------------------------------------------------------
2628
+ __inline unsigned int AT91F_PWMC_IsStatusSet(
2629
+ AT91PS_PWMC pPWM, // \arg pointer to a PWM controller
2630
+ unsigned int flag) // \arg flag to be tested
2631
+ {
2632
+ return (AT91F_PWMC_GetStatus(pPWM) & flag);
2633
+ }
2634
+
2635
+ //*----------------------------------------------------------------------------
2636
+ //* \fn AT91F_PWM_CfgChannel
2637
+ //* \brief Test if PWM Interrupt is Set
2638
+ //*----------------------------------------------------------------------------
2639
+ __inline void AT91F_PWMC_CfgChannel(
2640
+ AT91PS_PWMC pPWM, // \arg pointer to a PWM controller
2641
+ unsigned int channelId, // \arg PWM channel ID
2642
+ unsigned int mode, // \arg PWM mode
2643
+ unsigned int period, // \arg PWM period
2644
+ unsigned int duty) // \arg PWM duty cycle
2645
+ {
2646
+ pPWM->PWMC_CH[channelId].PWMC_CMR = mode;
2647
+ pPWM->PWMC_CH[channelId].PWMC_CDTYR = duty;
2648
+ pPWM->PWMC_CH[channelId].PWMC_CPRDR = period;
2649
+ }
2650
+
2651
+ //*----------------------------------------------------------------------------
2652
+ //* \fn AT91F_PWM_StartChannel
2653
+ //* \brief Enable channel
2654
+ //*----------------------------------------------------------------------------
2655
+ __inline void AT91F_PWMC_StartChannel(
2656
+ AT91PS_PWMC pPWM, // \arg pointer to a PWM controller
2657
+ unsigned int flag) // \arg Channels IDs to be enabled
2658
+ {
2659
+ pPWM->PWMC_ENA = flag;
2660
+ }
2661
+
2662
+ //*----------------------------------------------------------------------------
2663
+ //* \fn AT91F_PWM_StopChannel
2664
+ //* \brief Disable channel
2665
+ //*----------------------------------------------------------------------------
2666
+ __inline void AT91F_PWMC_StopChannel(
2667
+ AT91PS_PWMC pPWM, // \arg pointer to a PWM controller
2668
+ unsigned int flag) // \arg Channels IDs to be enabled
2669
+ {
2670
+ pPWM->PWMC_DIS = flag;
2671
+ }
2672
+
2673
+ //*----------------------------------------------------------------------------
2674
+ //* \fn AT91F_PWM_UpdateChannel
2675
+ //* \brief Update Period or Duty Cycle
2676
+ //*----------------------------------------------------------------------------
2677
+ __inline void AT91F_PWMC_UpdateChannel(
2678
+ AT91PS_PWMC pPWM, // \arg pointer to a PWM controller
2679
+ unsigned int channelId, // \arg PWM channel ID
2680
+ unsigned int update) // \arg Channels IDs to be enabled
2681
+ {
2682
+ pPWM->PWMC_CH[channelId].PWMC_CUPDR = update;
2683
+ }
2684
+
2685
+ /* *****************************************************************************
2686
+ SOFTWARE API FOR UDP
2687
+ ***************************************************************************** */
2688
+ //*----------------------------------------------------------------------------
2689
+ //* \fn AT91F_UDP_EnableIt
2690
+ //* \brief Enable UDP IT
2691
+ //*----------------------------------------------------------------------------
2692
+ __inline void AT91F_UDP_EnableIt (
2693
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2694
+ unsigned int flag) // \arg IT to be enabled
2695
+ {
2696
+ //* Write to the IER register
2697
+ pUDP->UDP_IER = flag;
2698
+ }
2699
+
2700
+ //*----------------------------------------------------------------------------
2701
+ //* \fn AT91F_UDP_DisableIt
2702
+ //* \brief Disable UDP IT
2703
+ //*----------------------------------------------------------------------------
2704
+ __inline void AT91F_UDP_DisableIt (
2705
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2706
+ unsigned int flag) // \arg IT to be disabled
2707
+ {
2708
+ //* Write to the IDR register
2709
+ pUDP->UDP_IDR = flag;
2710
+ }
2711
+
2712
+ //*----------------------------------------------------------------------------
2713
+ //* \fn AT91F_UDP_SetAddress
2714
+ //* \brief Set UDP functional address
2715
+ //*----------------------------------------------------------------------------
2716
+ __inline void AT91F_UDP_SetAddress (
2717
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2718
+ unsigned char address) // \arg new UDP address
2719
+ {
2720
+ pUDP->UDP_FADDR = (AT91C_UDP_FEN | address);
2721
+ }
2722
+
2723
+ //*----------------------------------------------------------------------------
2724
+ //* \fn AT91F_UDP_EnableEp
2725
+ //* \brief Enable Endpoint
2726
+ //*----------------------------------------------------------------------------
2727
+ __inline void AT91F_UDP_EnableEp (
2728
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2729
+ unsigned char endpoint) // \arg endpoint number
2730
+ {
2731
+ pUDP->UDP_CSR[endpoint] |= AT91C_UDP_EPEDS;
2732
+ }
2733
+
2734
+ //*----------------------------------------------------------------------------
2735
+ //* \fn AT91F_UDP_DisableEp
2736
+ //* \brief Enable Endpoint
2737
+ //*----------------------------------------------------------------------------
2738
+ __inline void AT91F_UDP_DisableEp (
2739
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2740
+ unsigned char endpoint) // \arg endpoint number
2741
+ {
2742
+ pUDP->UDP_CSR[endpoint] &= ~AT91C_UDP_EPEDS;
2743
+ }
2744
+
2745
+ //*----------------------------------------------------------------------------
2746
+ //* \fn AT91F_UDP_SetState
2747
+ //* \brief Set UDP Device state
2748
+ //*----------------------------------------------------------------------------
2749
+ __inline void AT91F_UDP_SetState (
2750
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2751
+ unsigned int flag) // \arg new UDP address
2752
+ {
2753
+ pUDP->UDP_GLBSTATE &= ~(AT91C_UDP_FADDEN | AT91C_UDP_CONFG);
2754
+ pUDP->UDP_GLBSTATE |= flag;
2755
+ }
2756
+
2757
+ //*----------------------------------------------------------------------------
2758
+ //* \fn AT91F_UDP_GetState
2759
+ //* \brief return UDP Device state
2760
+ //*----------------------------------------------------------------------------
2761
+ __inline unsigned int AT91F_UDP_GetState ( // \return the UDP device state
2762
+ AT91PS_UDP pUDP) // \arg pointer to a UDP controller
2763
+ {
2764
+ return (pUDP->UDP_GLBSTATE & (AT91C_UDP_FADDEN | AT91C_UDP_CONFG));
2765
+ }
2766
+
2767
+ //*----------------------------------------------------------------------------
2768
+ //* \fn AT91F_UDP_ResetEp
2769
+ //* \brief Reset UDP endpoint
2770
+ //*----------------------------------------------------------------------------
2771
+ __inline void AT91F_UDP_ResetEp ( // \return the UDP device state
2772
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2773
+ unsigned int flag) // \arg Endpoints to be reset
2774
+ {
2775
+ pUDP->UDP_RSTEP = flag;
2776
+ pUDP->UDP_RSTEP = 0;
2777
+ }
2778
+
2779
+ //*----------------------------------------------------------------------------
2780
+ //* \fn AT91F_UDP_EpStall
2781
+ //* \brief Endpoint will STALL requests
2782
+ //*----------------------------------------------------------------------------
2783
+ __inline void AT91F_UDP_EpStall(
2784
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2785
+ unsigned char endpoint) // \arg endpoint number
2786
+ {
2787
+ pUDP->UDP_CSR[endpoint] |= AT91C_UDP_FORCESTALL;
2788
+ }
2789
+
2790
+ //*----------------------------------------------------------------------------
2791
+ //* \fn AT91F_UDP_EpWrite
2792
+ //* \brief Write value in the DPR
2793
+ //*----------------------------------------------------------------------------
2794
+ __inline void AT91F_UDP_EpWrite(
2795
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2796
+ unsigned char endpoint, // \arg endpoint number
2797
+ unsigned char value) // \arg value to be written in the DPR
2798
+ {
2799
+ pUDP->UDP_FDR[endpoint] = value;
2800
+ }
2801
+
2802
+ //*----------------------------------------------------------------------------
2803
+ //* \fn AT91F_UDP_EpRead
2804
+ //* \brief Return value from the DPR
2805
+ //*----------------------------------------------------------------------------
2806
+ __inline unsigned int AT91F_UDP_EpRead(
2807
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2808
+ unsigned char endpoint) // \arg endpoint number
2809
+ {
2810
+ return pUDP->UDP_FDR[endpoint];
2811
+ }
2812
+
2813
+ //*----------------------------------------------------------------------------
2814
+ //* \fn AT91F_UDP_EpEndOfWr
2815
+ //* \brief Notify the UDP that values in DPR are ready to be sent
2816
+ //*----------------------------------------------------------------------------
2817
+ __inline void AT91F_UDP_EpEndOfWr(
2818
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2819
+ unsigned char endpoint) // \arg endpoint number
2820
+ {
2821
+ pUDP->UDP_CSR[endpoint] |= AT91C_UDP_TXPKTRDY;
2822
+ }
2823
+
2824
+ //*----------------------------------------------------------------------------
2825
+ //* \fn AT91F_UDP_EpClear
2826
+ //* \brief Clear flag in the endpoint CSR register
2827
+ //*----------------------------------------------------------------------------
2828
+ __inline void AT91F_UDP_EpClear(
2829
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2830
+ unsigned char endpoint, // \arg endpoint number
2831
+ unsigned int flag) // \arg flag to be cleared
2832
+ {
2833
+ pUDP->UDP_CSR[endpoint] &= ~(flag);
2834
+ }
2835
+
2836
+ //*----------------------------------------------------------------------------
2837
+ //* \fn AT91F_UDP_EpSet
2838
+ //* \brief Set flag in the endpoint CSR register
2839
+ //*----------------------------------------------------------------------------
2840
+ __inline void AT91F_UDP_EpSet(
2841
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2842
+ unsigned char endpoint, // \arg endpoint number
2843
+ unsigned int flag) // \arg flag to be cleared
2844
+ {
2845
+ pUDP->UDP_CSR[endpoint] |= flag;
2846
+ }
2847
+
2848
+ //*----------------------------------------------------------------------------
2849
+ //* \fn AT91F_UDP_EpStatus
2850
+ //* \brief Return the endpoint CSR register
2851
+ //*----------------------------------------------------------------------------
2852
+ __inline unsigned int AT91F_UDP_EpStatus(
2853
+ AT91PS_UDP pUDP, // \arg pointer to a UDP controller
2854
+ unsigned char endpoint) // \arg endpoint number
2855
+ {
2856
+ return pUDP->UDP_CSR[endpoint];
2857
+ }
2858
+
2859
+ //*----------------------------------------------------------------------------
2860
+ //* \fn AT91F_UDP_GetInterruptMaskStatus
2861
+ //* \brief Return UDP Interrupt Mask Status
2862
+ //*----------------------------------------------------------------------------
2863
+ __inline unsigned int AT91F_UDP_GetInterruptMaskStatus(
2864
+ AT91PS_UDP pUdp) // \arg pointer to a UDP controller
2865
+ {
2866
+ return pUdp->UDP_IMR;
2867
+ }
2868
+
2869
+ //*----------------------------------------------------------------------------
2870
+ //* \fn AT91F_UDP_IsInterruptMasked
2871
+ //* \brief Test if UDP Interrupt is Masked
2872
+ //*----------------------------------------------------------------------------
2873
+ __inline int AT91F_UDP_IsInterruptMasked(
2874
+ AT91PS_UDP pUdp, // \arg pointer to a UDP controller
2875
+ unsigned int flag) // \arg flag to be tested
2876
+ {
2877
+ return (AT91F_UDP_GetInterruptMaskStatus(pUdp) & flag);
2878
+ }
2879
+
2880
+ // ----------------------------------------------------------------------------
2881
+ // \fn AT91F_UDP_InterruptStatusRegister
2882
+ // \brief Return the Interrupt Status Register
2883
+ // ----------------------------------------------------------------------------
2884
+ __inline unsigned int AT91F_UDP_InterruptStatusRegister(
2885
+ AT91PS_UDP pUDP ) // \arg pointer to a UDP controller
2886
+ {
2887
+ return pUDP->UDP_ISR;
2888
+ }
2889
+
2890
+ // ----------------------------------------------------------------------------
2891
+ // \fn AT91F_UDP_InterruptClearRegister
2892
+ // \brief Clear Interrupt Register
2893
+ // ----------------------------------------------------------------------------
2894
+ __inline void AT91F_UDP_InterruptClearRegister (
2895
+ AT91PS_UDP pUDP, // \arg pointer to UDP controller
2896
+ unsigned int flag) // \arg IT to be cleat
2897
+ {
2898
+ pUDP->UDP_ICR = flag;
2899
+ }
2900
+
2901
+ // ----------------------------------------------------------------------------
2902
+ // \fn AT91F_UDP_EnableTransceiver
2903
+ // \brief Enable transceiver
2904
+ // ----------------------------------------------------------------------------
2905
+ __inline void AT91F_UDP_EnableTransceiver(
2906
+ AT91PS_UDP pUDP ) // \arg pointer to a UDP controller
2907
+ {
2908
+ pUDP->UDP_TXVC &= ~AT91C_UDP_TXVDIS;
2909
+ }
2910
+
2911
+ // ----------------------------------------------------------------------------
2912
+ // \fn AT91F_UDP_DisableTransceiver
2913
+ // \brief Disable transceiver
2914
+ // ----------------------------------------------------------------------------
2915
+ __inline void AT91F_UDP_DisableTransceiver(
2916
+ AT91PS_UDP pUDP ) // \arg pointer to a UDP controller
2917
+ {
2918
+ pUDP->UDP_TXVC = AT91C_UDP_TXVDIS;
2919
+ }
2920
+
2921
+ /* *****************************************************************************
2922
+ SOFTWARE API FOR TC
2923
+ ***************************************************************************** */
2924
+ //*----------------------------------------------------------------------------
2925
+ //* \fn AT91F_TC_InterruptEnable
2926
+ //* \brief Enable TC Interrupt
2927
+ //*----------------------------------------------------------------------------
2928
+ __inline void AT91F_TC_InterruptEnable(
2929
+ AT91PS_TC pTc, // \arg pointer to a TC controller
2930
+ unsigned int flag) // \arg TC interrupt to be enabled
2931
+ {
2932
+ pTc->TC_IER = flag;
2933
+ }
2934
+
2935
+ //*----------------------------------------------------------------------------
2936
+ //* \fn AT91F_TC_InterruptDisable
2937
+ //* \brief Disable TC Interrupt
2938
+ //*----------------------------------------------------------------------------
2939
+ __inline void AT91F_TC_InterruptDisable(
2940
+ AT91PS_TC pTc, // \arg pointer to a TC controller
2941
+ unsigned int flag) // \arg TC interrupt to be disabled
2942
+ {
2943
+ pTc->TC_IDR = flag;
2944
+ }
2945
+
2946
+ //*----------------------------------------------------------------------------
2947
+ //* \fn AT91F_TC_GetInterruptMaskStatus
2948
+ //* \brief Return TC Interrupt Mask Status
2949
+ //*----------------------------------------------------------------------------
2950
+ __inline unsigned int AT91F_TC_GetInterruptMaskStatus( // \return TC Interrupt Mask Status
2951
+ AT91PS_TC pTc) // \arg pointer to a TC controller
2952
+ {
2953
+ return pTc->TC_IMR;
2954
+ }
2955
+
2956
+ //*----------------------------------------------------------------------------
2957
+ //* \fn AT91F_TC_IsInterruptMasked
2958
+ //* \brief Test if TC Interrupt is Masked
2959
+ //*----------------------------------------------------------------------------
2960
+ __inline int AT91F_TC_IsInterruptMasked(
2961
+ AT91PS_TC pTc, // \arg pointer to a TC controller
2962
+ unsigned int flag) // \arg flag to be tested
2963
+ {
2964
+ return (AT91F_TC_GetInterruptMaskStatus(pTc) & flag);
2965
+ }
2966
+
2967
+ /* *****************************************************************************
2968
+ SOFTWARE API FOR CAN
2969
+ ***************************************************************************** */
2970
+ #define STANDARD_FORMAT 0
2971
+ #define EXTENDED_FORMAT 1
2972
+
2973
+ //*----------------------------------------------------------------------------
2974
+ //* \fn AT91F_InitMailboxRegisters()
2975
+ //* \brief Configure the corresponding mailbox
2976
+ //*----------------------------------------------------------------------------
2977
+ __inline void AT91F_InitMailboxRegisters(AT91PS_CAN_MB CAN_Mailbox,
2978
+ int mode_reg,
2979
+ int acceptance_mask_reg,
2980
+ int id_reg,
2981
+ int data_low_reg,
2982
+ int data_high_reg,
2983
+ int control_reg)
2984
+ {
2985
+ CAN_Mailbox->CAN_MB_MCR = 0x0;
2986
+ CAN_Mailbox->CAN_MB_MMR = mode_reg;
2987
+ CAN_Mailbox->CAN_MB_MAM = acceptance_mask_reg;
2988
+ CAN_Mailbox->CAN_MB_MID = id_reg;
2989
+ CAN_Mailbox->CAN_MB_MDL = data_low_reg;
2990
+ CAN_Mailbox->CAN_MB_MDH = data_high_reg;
2991
+ CAN_Mailbox->CAN_MB_MCR = control_reg;
2992
+ }
2993
+
2994
+ //*----------------------------------------------------------------------------
2995
+ //* \fn AT91F_EnableCAN()
2996
+ //* \brief
2997
+ //*----------------------------------------------------------------------------
2998
+ __inline void AT91F_EnableCAN(
2999
+ AT91PS_CAN pCAN) // pointer to a CAN controller
3000
+ {
3001
+ pCAN->CAN_MR |= AT91C_CAN_CANEN;
3002
+
3003
+ // Wait for WAKEUP flag raising <=> 11-recessive-bit were scanned by the transceiver
3004
+ while( (pCAN->CAN_SR & AT91C_CAN_WAKEUP) != AT91C_CAN_WAKEUP );
3005
+ }
3006
+
3007
+ //*----------------------------------------------------------------------------
3008
+ //* \fn AT91F_DisableCAN()
3009
+ //* \brief
3010
+ //*----------------------------------------------------------------------------
3011
+ __inline void AT91F_DisableCAN(
3012
+ AT91PS_CAN pCAN) // pointer to a CAN controller
3013
+ {
3014
+ pCAN->CAN_MR &= ~AT91C_CAN_CANEN;
3015
+ }
3016
+
3017
+ //*----------------------------------------------------------------------------
3018
+ //* \fn AT91F_CAN_EnableIt
3019
+ //* \brief Enable CAN interrupt
3020
+ //*----------------------------------------------------------------------------
3021
+ __inline void AT91F_CAN_EnableIt (
3022
+ AT91PS_CAN pCAN, // pointer to a CAN controller
3023
+ unsigned int flag) // IT to be enabled
3024
+ {
3025
+ //* Write to the IER register
3026
+ pCAN->CAN_IER = flag;
3027
+ }
3028
+
3029
+ //*----------------------------------------------------------------------------
3030
+ //* \fn AT91F_CAN_DisableIt
3031
+ //* \brief Disable CAN interrupt
3032
+ //*----------------------------------------------------------------------------
3033
+ __inline void AT91F_CAN_DisableIt (
3034
+ AT91PS_CAN pCAN, // pointer to a CAN controller
3035
+ unsigned int flag) // IT to be disabled
3036
+ {
3037
+ //* Write to the IDR register
3038
+ pCAN->CAN_IDR = flag;
3039
+ }
3040
+
3041
+ //*----------------------------------------------------------------------------
3042
+ //* \fn AT91F_CAN_GetStatus
3043
+ //* \brief Return CAN Interrupt Status
3044
+ //*----------------------------------------------------------------------------
3045
+ __inline unsigned int AT91F_CAN_GetStatus( // \return CAN Interrupt Status
3046
+ AT91PS_CAN pCAN) // pointer to a CAN controller
3047
+ {
3048
+ return pCAN->CAN_SR;
3049
+ }
3050
+
3051
+ //*----------------------------------------------------------------------------
3052
+ //* \fn AT91F_CAN_GetInterruptMaskStatus
3053
+ //* \brief Return CAN Interrupt Mask Status
3054
+ //*----------------------------------------------------------------------------
3055
+ __inline unsigned int AT91F_CAN_GetInterruptMaskStatus( // \return CAN Interrupt Mask Status
3056
+ AT91PS_CAN pCAN) // pointer to a CAN controller
3057
+ {
3058
+ return pCAN->CAN_IMR;
3059
+ }
3060
+
3061
+ //*----------------------------------------------------------------------------
3062
+ //* \fn AT91F_CAN_IsInterruptMasked
3063
+ //* \brief Test if CAN Interrupt is Masked
3064
+ //*----------------------------------------------------------------------------
3065
+ __inline unsigned int AT91F_CAN_IsInterruptMasked(
3066
+ AT91PS_CAN pCAN, // \arg pointer to a CAN controller
3067
+ unsigned int flag) // \arg flag to be tested
3068
+ {
3069
+ return (AT91F_CAN_GetInterruptMaskStatus(pCAN) & flag);
3070
+ }
3071
+
3072
+ //*----------------------------------------------------------------------------
3073
+ //* \fn AT91F_CAN_IsStatusSet
3074
+ //* \brief Test if CAN Interrupt is Set
3075
+ //*----------------------------------------------------------------------------
3076
+ __inline unsigned int AT91F_CAN_IsStatusSet(
3077
+ AT91PS_CAN pCAN, // \arg pointer to a CAN controller
3078
+ unsigned int flag) // \arg flag to be tested
3079
+ {
3080
+ return (AT91F_CAN_GetStatus(pCAN) & flag);
3081
+ }
3082
+
3083
+ //*----------------------------------------------------------------------------
3084
+ //* \fn AT91F_CAN_CfgModeReg
3085
+ //* \brief Configure the Mode Register of the CAN controller
3086
+ //*----------------------------------------------------------------------------
3087
+ __inline void AT91F_CAN_CfgModeReg (
3088
+ AT91PS_CAN pCAN, // pointer to a CAN controller
3089
+ unsigned int mode) // mode register
3090
+ {
3091
+ //* Write to the MR register
3092
+ pCAN->CAN_MR = mode;
3093
+ }
3094
+
3095
+ //*----------------------------------------------------------------------------
3096
+ //* \fn AT91F_CAN_GetModeReg
3097
+ //* \brief Return the Mode Register of the CAN controller value
3098
+ //*----------------------------------------------------------------------------
3099
+ __inline unsigned int AT91F_CAN_GetModeReg (
3100
+ AT91PS_CAN pCAN // pointer to a CAN controller
3101
+ )
3102
+ {
3103
+ return pCAN->CAN_MR;
3104
+ }
3105
+
3106
+ //*----------------------------------------------------------------------------
3107
+ //* \fn AT91F_CAN_CfgBaudrateReg
3108
+ //* \brief Configure the Baudrate of the CAN controller for the network
3109
+ //*----------------------------------------------------------------------------
3110
+ __inline void AT91F_CAN_CfgBaudrateReg (
3111
+ AT91PS_CAN pCAN, // pointer to a CAN controller
3112
+ unsigned int baudrate_cfg)
3113
+ {
3114
+ //* Write to the BR register
3115
+ pCAN->CAN_BR = baudrate_cfg;
3116
+ }
3117
+
3118
+ //*----------------------------------------------------------------------------
3119
+ //* \fn AT91F_CAN_GetBaudrate
3120
+ //* \brief Return the Baudrate of the CAN controller for the network value
3121
+ //*----------------------------------------------------------------------------
3122
+ __inline unsigned int AT91F_CAN_GetBaudrate (
3123
+ AT91PS_CAN pCAN // pointer to a CAN controller
3124
+ )
3125
+ {
3126
+ return pCAN->CAN_BR;
3127
+ }
3128
+
3129
+ //*----------------------------------------------------------------------------
3130
+ //* \fn AT91F_CAN_GetInternalCounter
3131
+ //* \brief Return CAN Timer Regsiter Value
3132
+ //*----------------------------------------------------------------------------
3133
+ __inline unsigned int AT91F_CAN_GetInternalCounter (
3134
+ AT91PS_CAN pCAN // pointer to a CAN controller
3135
+ )
3136
+ {
3137
+ return pCAN->CAN_TIM;
3138
+ }
3139
+
3140
+ //*----------------------------------------------------------------------------
3141
+ //* \fn AT91F_CAN_GetTimestamp
3142
+ //* \brief Return CAN Timestamp Register Value
3143
+ //*----------------------------------------------------------------------------
3144
+ __inline unsigned int AT91F_CAN_GetTimestamp (
3145
+ AT91PS_CAN pCAN // pointer to a CAN controller
3146
+ )
3147
+ {
3148
+ return pCAN->CAN_TIMESTP;
3149
+ }
3150
+
3151
+ //*----------------------------------------------------------------------------
3152
+ //* \fn AT91F_CAN_GetErrorCounter
3153
+ //* \brief Return CAN Error Counter Register Value
3154
+ //*----------------------------------------------------------------------------
3155
+ __inline unsigned int AT91F_CAN_GetErrorCounter (
3156
+ AT91PS_CAN pCAN // pointer to a CAN controller
3157
+ )
3158
+ {
3159
+ return pCAN->CAN_ECR;
3160
+ }
3161
+
3162
+ //*----------------------------------------------------------------------------
3163
+ //* \fn AT91F_CAN_InitTransferRequest
3164
+ //* \brief Request for a transfer on the corresponding mailboxes
3165
+ //*----------------------------------------------------------------------------
3166
+ __inline void AT91F_CAN_InitTransferRequest (
3167
+ AT91PS_CAN pCAN, // pointer to a CAN controller
3168
+ unsigned int transfer_cmd)
3169
+ {
3170
+ pCAN->CAN_TCR = transfer_cmd;
3171
+ }
3172
+
3173
+ //*----------------------------------------------------------------------------
3174
+ //* \fn AT91F_CAN_InitAbortRequest
3175
+ //* \brief Abort the corresponding mailboxes
3176
+ //*----------------------------------------------------------------------------
3177
+ __inline void AT91F_CAN_InitAbortRequest (
3178
+ AT91PS_CAN pCAN, // pointer to a CAN controller
3179
+ unsigned int abort_cmd)
3180
+ {
3181
+ pCAN->CAN_ACR = abort_cmd;
3182
+ }
3183
+
3184
+ //*----------------------------------------------------------------------------
3185
+ //* \fn AT91F_CAN_CfgMessageModeReg
3186
+ //* \brief Program the Message Mode Register
3187
+ //*----------------------------------------------------------------------------
3188
+ __inline void AT91F_CAN_CfgMessageModeReg (
3189
+ AT91PS_CAN_MB CAN_Mailbox, // pointer to a CAN Mailbox
3190
+ unsigned int mode)
3191
+ {
3192
+ CAN_Mailbox->CAN_MB_MMR = mode;
3193
+ }
3194
+
3195
+ //*----------------------------------------------------------------------------
3196
+ //* \fn AT91F_CAN_GetMessageModeReg
3197
+ //* \brief Return the Message Mode Register
3198
+ //*----------------------------------------------------------------------------
3199
+ __inline unsigned int AT91F_CAN_GetMessageModeReg (
3200
+ AT91PS_CAN_MB CAN_Mailbox) // pointer to a CAN Mailbox
3201
+ {
3202
+ return CAN_Mailbox->CAN_MB_MMR;
3203
+ }
3204
+
3205
+ //*----------------------------------------------------------------------------
3206
+ //* \fn AT91F_CAN_CfgMessageIDReg
3207
+ //* \brief Program the Message ID Register
3208
+ //* \brief Version == 0 for Standard messsage, Version == 1 for Extended
3209
+ //*----------------------------------------------------------------------------
3210
+ __inline void AT91F_CAN_CfgMessageIDReg (
3211
+ AT91PS_CAN_MB CAN_Mailbox, // pointer to a CAN Mailbox
3212
+ unsigned int id,
3213
+ unsigned char version)
3214
+ {
3215
+ if(version==0) // IDvA Standard Format
3216
+ CAN_Mailbox->CAN_MB_MID = id<<18;
3217
+ else // IDvB Extended Format
3218
+ CAN_Mailbox->CAN_MB_MID = id | (1<<29); // set MIDE bit
3219
+ }
3220
+
3221
+ //*----------------------------------------------------------------------------
3222
+ //* \fn AT91F_CAN_GetMessageIDReg
3223
+ //* \brief Return the Message ID Register
3224
+ //*----------------------------------------------------------------------------
3225
+ __inline unsigned int AT91F_CAN_GetMessageIDReg (
3226
+ AT91PS_CAN_MB CAN_Mailbox) // pointer to a CAN Mailbox
3227
+ {
3228
+ return CAN_Mailbox->CAN_MB_MID;
3229
+ }
3230
+
3231
+ //*----------------------------------------------------------------------------
3232
+ //* \fn AT91F_CAN_CfgMessageAcceptanceMaskReg
3233
+ //* \brief Program the Message Acceptance Mask Register
3234
+ //*----------------------------------------------------------------------------
3235
+ __inline void AT91F_CAN_CfgMessageAcceptanceMaskReg (
3236
+ AT91PS_CAN_MB CAN_Mailbox, // pointer to a CAN Mailbox
3237
+ unsigned int mask)
3238
+ {
3239
+ CAN_Mailbox->CAN_MB_MAM = mask;
3240
+ }
3241
+
3242
+ //*----------------------------------------------------------------------------
3243
+ //* \fn AT91F_CAN_GetMessageAcceptanceMaskReg
3244
+ //* \brief Return the Message Acceptance Mask Register
3245
+ //*----------------------------------------------------------------------------
3246
+ __inline unsigned int AT91F_CAN_GetMessageAcceptanceMaskReg (
3247
+ AT91PS_CAN_MB CAN_Mailbox) // pointer to a CAN Mailbox
3248
+ {
3249
+ return CAN_Mailbox->CAN_MB_MAM;
3250
+ }
3251
+
3252
+ //*----------------------------------------------------------------------------
3253
+ //* \fn AT91F_CAN_GetFamilyID
3254
+ //* \brief Return the Message ID Register
3255
+ //*----------------------------------------------------------------------------
3256
+ __inline unsigned int AT91F_CAN_GetFamilyID (
3257
+ AT91PS_CAN_MB CAN_Mailbox) // pointer to a CAN Mailbox
3258
+ {
3259
+ return CAN_Mailbox->CAN_MB_MFID;
3260
+ }
3261
+
3262
+ //*----------------------------------------------------------------------------
3263
+ //* \fn AT91F_CAN_CfgMessageCtrl
3264
+ //* \brief Request and config for a transfer on the corresponding mailbox
3265
+ //*----------------------------------------------------------------------------
3266
+ __inline void AT91F_CAN_CfgMessageCtrlReg (
3267
+ AT91PS_CAN_MB CAN_Mailbox, // pointer to a CAN Mailbox
3268
+ unsigned int message_ctrl_cmd)
3269
+ {
3270
+ CAN_Mailbox->CAN_MB_MCR = message_ctrl_cmd;
3271
+ }
3272
+
3273
+ //*----------------------------------------------------------------------------
3274
+ //* \fn AT91F_CAN_GetMessageStatus
3275
+ //* \brief Return CAN Mailbox Status
3276
+ //*----------------------------------------------------------------------------
3277
+ __inline unsigned int AT91F_CAN_GetMessageStatus (
3278
+ AT91PS_CAN_MB CAN_Mailbox) // pointer to a CAN Mailbox
3279
+ {
3280
+ return CAN_Mailbox->CAN_MB_MSR;
3281
+ }
3282
+
3283
+ //*----------------------------------------------------------------------------
3284
+ //* \fn AT91F_CAN_CfgMessageDataLow
3285
+ //* \brief Program data low value
3286
+ //*----------------------------------------------------------------------------
3287
+ __inline void AT91F_CAN_CfgMessageDataLow (
3288
+ AT91PS_CAN_MB CAN_Mailbox, // pointer to a CAN Mailbox
3289
+ unsigned int data)
3290
+ {
3291
+ CAN_Mailbox->CAN_MB_MDL = data;
3292
+ }
3293
+
3294
+ //*----------------------------------------------------------------------------
3295
+ //* \fn AT91F_CAN_GetMessageDataLow
3296
+ //* \brief Return data low value
3297
+ //*----------------------------------------------------------------------------
3298
+ __inline unsigned int AT91F_CAN_GetMessageDataLow (
3299
+ AT91PS_CAN_MB CAN_Mailbox) // pointer to a CAN Mailbox
3300
+ {
3301
+ return CAN_Mailbox->CAN_MB_MDL;
3302
+ }
3303
+
3304
+ //*----------------------------------------------------------------------------
3305
+ //* \fn AT91F_CAN_CfgMessageDataHigh
3306
+ //* \brief Program data high value
3307
+ //*----------------------------------------------------------------------------
3308
+ __inline void AT91F_CAN_CfgMessageDataHigh (
3309
+ AT91PS_CAN_MB CAN_Mailbox, // pointer to a CAN Mailbox
3310
+ unsigned int data)
3311
+ {
3312
+ CAN_Mailbox->CAN_MB_MDH = data;
3313
+ }
3314
+
3315
+ //*----------------------------------------------------------------------------
3316
+ //* \fn AT91F_CAN_GetMessageDataHigh
3317
+ //* \brief Return data high value
3318
+ //*----------------------------------------------------------------------------
3319
+ __inline unsigned int AT91F_CAN_GetMessageDataHigh (
3320
+ AT91PS_CAN_MB CAN_Mailbox) // pointer to a CAN Mailbox
3321
+ {
3322
+ return CAN_Mailbox->CAN_MB_MDH;
3323
+ }
3324
+
3325
+ /* *****************************************************************************
3326
+ SOFTWARE API FOR ADC
3327
+ ***************************************************************************** */
3328
+ //*----------------------------------------------------------------------------
3329
+ //* \fn AT91F_ADC_EnableIt
3330
+ //* \brief Enable ADC interrupt
3331
+ //*----------------------------------------------------------------------------
3332
+ __inline void AT91F_ADC_EnableIt (
3333
+ AT91PS_ADC pADC, // pointer to a ADC controller
3334
+ unsigned int flag) // IT to be enabled
3335
+ {
3336
+ //* Write to the IER register
3337
+ pADC->ADC_IER = flag;
3338
+ }
3339
+
3340
+ //*----------------------------------------------------------------------------
3341
+ //* \fn AT91F_ADC_DisableIt
3342
+ //* \brief Disable ADC interrupt
3343
+ //*----------------------------------------------------------------------------
3344
+ __inline void AT91F_ADC_DisableIt (
3345
+ AT91PS_ADC pADC, // pointer to a ADC controller
3346
+ unsigned int flag) // IT to be disabled
3347
+ {
3348
+ //* Write to the IDR register
3349
+ pADC->ADC_IDR = flag;
3350
+ }
3351
+
3352
+ //*----------------------------------------------------------------------------
3353
+ //* \fn AT91F_ADC_GetStatus
3354
+ //* \brief Return ADC Interrupt Status
3355
+ //*----------------------------------------------------------------------------
3356
+ __inline unsigned int AT91F_ADC_GetStatus( // \return ADC Interrupt Status
3357
+ AT91PS_ADC pADC) // pointer to a ADC controller
3358
+ {
3359
+ return pADC->ADC_SR;
3360
+ }
3361
+
3362
+ //*----------------------------------------------------------------------------
3363
+ //* \fn AT91F_ADC_GetInterruptMaskStatus
3364
+ //* \brief Return ADC Interrupt Mask Status
3365
+ //*----------------------------------------------------------------------------
3366
+ __inline unsigned int AT91F_ADC_GetInterruptMaskStatus( // \return ADC Interrupt Mask Status
3367
+ AT91PS_ADC pADC) // pointer to a ADC controller
3368
+ {
3369
+ return pADC->ADC_IMR;
3370
+ }
3371
+
3372
+ //*----------------------------------------------------------------------------
3373
+ //* \fn AT91F_ADC_IsInterruptMasked
3374
+ //* \brief Test if ADC Interrupt is Masked
3375
+ //*----------------------------------------------------------------------------
3376
+ __inline unsigned int AT91F_ADC_IsInterruptMasked(
3377
+ AT91PS_ADC pADC, // \arg pointer to a ADC controller
3378
+ unsigned int flag) // \arg flag to be tested
3379
+ {
3380
+ return (AT91F_ADC_GetInterruptMaskStatus(pADC) & flag);
3381
+ }
3382
+
3383
+ //*----------------------------------------------------------------------------
3384
+ //* \fn AT91F_ADC_IsStatusSet
3385
+ //* \brief Test if ADC Status is Set
3386
+ //*----------------------------------------------------------------------------
3387
+ __inline unsigned int AT91F_ADC_IsStatusSet(
3388
+ AT91PS_ADC pADC, // \arg pointer to a ADC controller
3389
+ unsigned int flag) // \arg flag to be tested
3390
+ {
3391
+ return (AT91F_ADC_GetStatus(pADC) & flag);
3392
+ }
3393
+
3394
+ //*----------------------------------------------------------------------------
3395
+ //* \fn AT91F_ADC_CfgModeReg
3396
+ //* \brief Configure the Mode Register of the ADC controller
3397
+ //*----------------------------------------------------------------------------
3398
+ __inline void AT91F_ADC_CfgModeReg (
3399
+ AT91PS_ADC pADC, // pointer to a ADC controller
3400
+ unsigned int mode) // mode register
3401
+ {
3402
+ //* Write to the MR register
3403
+ pADC->ADC_MR = mode;
3404
+ }
3405
+
3406
+ //*----------------------------------------------------------------------------
3407
+ //* \fn AT91F_ADC_GetModeReg
3408
+ //* \brief Return the Mode Register of the ADC controller value
3409
+ //*----------------------------------------------------------------------------
3410
+ __inline unsigned int AT91F_ADC_GetModeReg (
3411
+ AT91PS_ADC pADC // pointer to a ADC controller
3412
+ )
3413
+ {
3414
+ return pADC->ADC_MR;
3415
+ }
3416
+
3417
+ //*----------------------------------------------------------------------------
3418
+ //* \fn AT91F_ADC_CfgTimings
3419
+ //* \brief Configure the different necessary timings of the ADC controller
3420
+ //*----------------------------------------------------------------------------
3421
+ __inline void AT91F_ADC_CfgTimings (
3422
+ AT91PS_ADC pADC, // pointer to a ADC controller
3423
+ unsigned int mck_clock, // in MHz
3424
+ unsigned int adc_clock, // in MHz
3425
+ unsigned int startup_time, // in us
3426
+ unsigned int sample_and_hold_time) // in ns
3427
+ {
3428
+ unsigned int prescal,startup,shtim;
3429
+
3430
+ prescal = mck_clock/(2*adc_clock) - 1;
3431
+ startup = adc_clock*startup_time/8 - 1;
3432
+ shtim = adc_clock*sample_and_hold_time/1000 - 1;
3433
+
3434
+ //* Write to the MR register
3435
+ pADC->ADC_MR = ( (prescal<<8) & AT91C_ADC_PRESCAL) | ( (startup<<16) & AT91C_ADC_STARTUP) | ( (shtim<<24) & AT91C_ADC_SHTIM);
3436
+ }
3437
+
3438
+ //*----------------------------------------------------------------------------
3439
+ //* \fn AT91F_ADC_EnableChannel
3440
+ //* \brief Return ADC Timer Register Value
3441
+ //*----------------------------------------------------------------------------
3442
+ __inline void AT91F_ADC_EnableChannel (
3443
+ AT91PS_ADC pADC, // pointer to a ADC controller
3444
+ unsigned int channel) // mode register
3445
+ {
3446
+ //* Write to the CHER register
3447
+ pADC->ADC_CHER = channel;
3448
+ }
3449
+
3450
+ //*----------------------------------------------------------------------------
3451
+ //* \fn AT91F_ADC_DisableChannel
3452
+ //* \brief Return ADC Timer Register Value
3453
+ //*----------------------------------------------------------------------------
3454
+ __inline void AT91F_ADC_DisableChannel (
3455
+ AT91PS_ADC pADC, // pointer to a ADC controller
3456
+ unsigned int channel) // mode register
3457
+ {
3458
+ //* Write to the CHDR register
3459
+ pADC->ADC_CHDR = channel;
3460
+ }
3461
+
3462
+ //*----------------------------------------------------------------------------
3463
+ //* \fn AT91F_ADC_GetChannelStatus
3464
+ //* \brief Return ADC Timer Register Value
3465
+ //*----------------------------------------------------------------------------
3466
+ __inline unsigned int AT91F_ADC_GetChannelStatus (
3467
+ AT91PS_ADC pADC // pointer to a ADC controller
3468
+ )
3469
+ {
3470
+ return pADC->ADC_CHSR;
3471
+ }
3472
+
3473
+ //*----------------------------------------------------------------------------
3474
+ //* \fn AT91F_ADC_StartConversion
3475
+ //* \brief Software request for a analog to digital conversion
3476
+ //*----------------------------------------------------------------------------
3477
+ __inline void AT91F_ADC_StartConversion (
3478
+ AT91PS_ADC pADC // pointer to a ADC controller
3479
+ )
3480
+ {
3481
+ pADC->ADC_CR = AT91C_ADC_START;
3482
+ }
3483
+
3484
+ //*----------------------------------------------------------------------------
3485
+ //* \fn AT91F_ADC_SoftReset
3486
+ //* \brief Software reset
3487
+ //*----------------------------------------------------------------------------
3488
+ __inline void AT91F_ADC_SoftReset (
3489
+ AT91PS_ADC pADC // pointer to a ADC controller
3490
+ )
3491
+ {
3492
+ pADC->ADC_CR = AT91C_ADC_SWRST;
3493
+ }
3494
+
3495
+ //*----------------------------------------------------------------------------
3496
+ //* \fn AT91F_ADC_GetLastConvertedData
3497
+ //* \brief Return the Last Converted Data
3498
+ //*----------------------------------------------------------------------------
3499
+ __inline unsigned int AT91F_ADC_GetLastConvertedData (
3500
+ AT91PS_ADC pADC // pointer to a ADC controller
3501
+ )
3502
+ {
3503
+ return pADC->ADC_LCDR;
3504
+ }
3505
+
3506
+ //*----------------------------------------------------------------------------
3507
+ //* \fn AT91F_ADC_GetConvertedDataCH0
3508
+ //* \brief Return the Channel 0 Converted Data
3509
+ //*----------------------------------------------------------------------------
3510
+ __inline unsigned int AT91F_ADC_GetConvertedDataCH0 (
3511
+ AT91PS_ADC pADC // pointer to a ADC controller
3512
+ )
3513
+ {
3514
+ return pADC->ADC_CDR0;
3515
+ }
3516
+
3517
+ //*----------------------------------------------------------------------------
3518
+ //* \fn AT91F_ADC_GetConvertedDataCH1
3519
+ //* \brief Return the Channel 1 Converted Data
3520
+ //*----------------------------------------------------------------------------
3521
+ __inline unsigned int AT91F_ADC_GetConvertedDataCH1 (
3522
+ AT91PS_ADC pADC // pointer to a ADC controller
3523
+ )
3524
+ {
3525
+ return pADC->ADC_CDR1;
3526
+ }
3527
+
3528
+ //*----------------------------------------------------------------------------
3529
+ //* \fn AT91F_ADC_GetConvertedDataCH2
3530
+ //* \brief Return the Channel 2 Converted Data
3531
+ //*----------------------------------------------------------------------------
3532
+ __inline unsigned int AT91F_ADC_GetConvertedDataCH2 (
3533
+ AT91PS_ADC pADC // pointer to a ADC controller
3534
+ )
3535
+ {
3536
+ return pADC->ADC_CDR2;
3537
+ }
3538
+
3539
+ //*----------------------------------------------------------------------------
3540
+ //* \fn AT91F_ADC_GetConvertedDataCH3
3541
+ //* \brief Return the Channel 3 Converted Data
3542
+ //*----------------------------------------------------------------------------
3543
+ __inline unsigned int AT91F_ADC_GetConvertedDataCH3 (
3544
+ AT91PS_ADC pADC // pointer to a ADC controller
3545
+ )
3546
+ {
3547
+ return pADC->ADC_CDR3;
3548
+ }
3549
+
3550
+ //*----------------------------------------------------------------------------
3551
+ //* \fn AT91F_ADC_GetConvertedDataCH4
3552
+ //* \brief Return the Channel 4 Converted Data
3553
+ //*----------------------------------------------------------------------------
3554
+ __inline unsigned int AT91F_ADC_GetConvertedDataCH4 (
3555
+ AT91PS_ADC pADC // pointer to a ADC controller
3556
+ )
3557
+ {
3558
+ return pADC->ADC_CDR4;
3559
+ }
3560
+
3561
+ //*----------------------------------------------------------------------------
3562
+ //* \fn AT91F_ADC_GetConvertedDataCH5
3563
+ //* \brief Return the Channel 5 Converted Data
3564
+ //*----------------------------------------------------------------------------
3565
+ __inline unsigned int AT91F_ADC_GetConvertedDataCH5 (
3566
+ AT91PS_ADC pADC // pointer to a ADC controller
3567
+ )
3568
+ {
3569
+ return pADC->ADC_CDR5;
3570
+ }
3571
+
3572
+ //*----------------------------------------------------------------------------
3573
+ //* \fn AT91F_ADC_GetConvertedDataCH6
3574
+ //* \brief Return the Channel 6 Converted Data
3575
+ //*----------------------------------------------------------------------------
3576
+ __inline unsigned int AT91F_ADC_GetConvertedDataCH6 (
3577
+ AT91PS_ADC pADC // pointer to a ADC controller
3578
+ )
3579
+ {
3580
+ return pADC->ADC_CDR6;
3581
+ }
3582
+
3583
+ //*----------------------------------------------------------------------------
3584
+ //* \fn AT91F_ADC_GetConvertedDataCH7
3585
+ //* \brief Return the Channel 7 Converted Data
3586
+ //*----------------------------------------------------------------------------
3587
+ __inline unsigned int AT91F_ADC_GetConvertedDataCH7 (
3588
+ AT91PS_ADC pADC // pointer to a ADC controller
3589
+ )
3590
+ {
3591
+ return pADC->ADC_CDR7;
3592
+ }
3593
+
3594
+ //*----------------------------------------------------------------------------
3595
+ //* \fn AT91F_MC_CfgPMC
3596
+ //* \brief Enable Peripheral clock in PMC for MC
3597
+ //*----------------------------------------------------------------------------
3598
+ __inline void AT91F_MC_CfgPMC (void)
3599
+ {
3600
+ AT91F_PMC_EnablePeriphClock(
3601
+ AT91C_BASE_PMC, // PIO controller base address
3602
+ ((unsigned int) 1 << AT91C_ID_SYS));
3603
+ }
3604
+
3605
+ //*----------------------------------------------------------------------------
3606
+ //* \fn AT91F_DBGU_CfgPMC
3607
+ //* \brief Enable Peripheral clock in PMC for DBGU
3608
+ //*----------------------------------------------------------------------------
3609
+ __inline void AT91F_DBGU_CfgPMC (void)
3610
+ {
3611
+ AT91F_PMC_EnablePeriphClock(
3612
+ AT91C_BASE_PMC, // PIO controller base address
3613
+ ((unsigned int) 1 << AT91C_ID_SYS));
3614
+ }
3615
+
3616
+ //*----------------------------------------------------------------------------
3617
+ //* \fn AT91F_DBGU_CfgPIO
3618
+ //* \brief Configure PIO controllers to drive DBGU signals
3619
+ //*----------------------------------------------------------------------------
3620
+ __inline void AT91F_DBGU_CfgPIO (void)
3621
+ {
3622
+ // Configure PIO controllers to periph mode
3623
+ AT91F_PIO_CfgPeriph(
3624
+ AT91C_BASE_PIOA, // PIO controller base address
3625
+ ((unsigned int) AT91C_PA28_DTXD ) |
3626
+ ((unsigned int) AT91C_PA27_DRXD ), // Peripheral A
3627
+ 0); // Peripheral B
3628
+ }
3629
+
3630
+ //*----------------------------------------------------------------------------
3631
+ //* \fn AT91F_PWMC_CH3_CfgPIO
3632
+ //* \brief Configure PIO controllers to drive PWMC_CH3 signals
3633
+ //*----------------------------------------------------------------------------
3634
+ __inline void AT91F_PWMC_CH3_CfgPIO (void)
3635
+ {
3636
+ // Configure PIO controllers to periph mode
3637
+ AT91F_PIO_CfgPeriph(
3638
+ AT91C_BASE_PIOB, // PIO controller base address
3639
+ ((unsigned int) AT91C_PB22_PWM3 ), // Peripheral A
3640
+ ((unsigned int) AT91C_PB30_PWM3 )); // Peripheral B
3641
+ }
3642
+
3643
+ //*----------------------------------------------------------------------------
3644
+ //* \fn AT91F_PWMC_CH2_CfgPIO
3645
+ //* \brief Configure PIO controllers to drive PWMC_CH2 signals
3646
+ //*----------------------------------------------------------------------------
3647
+ __inline void AT91F_PWMC_CH2_CfgPIO (void)
3648
+ {
3649
+ // Configure PIO controllers to periph mode
3650
+ AT91F_PIO_CfgPeriph(
3651
+ AT91C_BASE_PIOB, // PIO controller base address
3652
+ ((unsigned int) AT91C_PB21_PWM2 ), // Peripheral A
3653
+ ((unsigned int) AT91C_PB29_PWM2 )); // Peripheral B
3654
+ }
3655
+
3656
+ //*----------------------------------------------------------------------------
3657
+ //* \fn AT91F_PWMC_CH1_CfgPIO
3658
+ //* \brief Configure PIO controllers to drive PWMC_CH1 signals
3659
+ //*----------------------------------------------------------------------------
3660
+ __inline void AT91F_PWMC_CH1_CfgPIO (void)
3661
+ {
3662
+ // Configure PIO controllers to periph mode
3663
+ AT91F_PIO_CfgPeriph(
3664
+ AT91C_BASE_PIOB, // PIO controller base address
3665
+ ((unsigned int) AT91C_PB20_PWM1 ), // Peripheral A
3666
+ ((unsigned int) AT91C_PB28_PWM1 )); // Peripheral B
3667
+ }
3668
+
3669
+ //*----------------------------------------------------------------------------
3670
+ //* \fn AT91F_PWMC_CH0_CfgPIO
3671
+ //* \brief Configure PIO controllers to drive PWMC_CH0 signals
3672
+ //*----------------------------------------------------------------------------
3673
+ __inline void AT91F_PWMC_CH0_CfgPIO (void)
3674
+ {
3675
+ // Configure PIO controllers to periph mode
3676
+ AT91F_PIO_CfgPeriph(
3677
+ AT91C_BASE_PIOB, // PIO controller base address
3678
+ ((unsigned int) AT91C_PB19_PWM0 ), // Peripheral A
3679
+ ((unsigned int) AT91C_PB27_PWM0 )); // Peripheral B
3680
+ }
3681
+
3682
+ //*----------------------------------------------------------------------------
3683
+ //* \fn AT91F_EMAC_CfgPMC
3684
+ //* \brief Enable Peripheral clock in PMC for EMAC
3685
+ //*----------------------------------------------------------------------------
3686
+ __inline void AT91F_EMAC_CfgPMC (void)
3687
+ {
3688
+ AT91F_PMC_EnablePeriphClock(
3689
+ AT91C_BASE_PMC, // PIO controller base address
3690
+ ((unsigned int) 1 << AT91C_ID_EMAC));
3691
+ }
3692
+
3693
+ //*----------------------------------------------------------------------------
3694
+ //* \fn AT91F_EMAC_CfgPIO
3695
+ //* \brief Configure PIO controllers to drive EMAC signals
3696
+ //*----------------------------------------------------------------------------
3697
+ __inline void AT91F_EMAC_CfgPIO (void)
3698
+ {
3699
+ // Configure PIO controllers to periph mode
3700
+ AT91F_PIO_CfgPeriph(
3701
+ AT91C_BASE_PIOB, // PIO controller base address
3702
+ ((unsigned int) AT91C_PB9_EMDIO ) |
3703
+ ((unsigned int) AT91C_PB17_ERXCK ) |
3704
+ ((unsigned int) AT91C_PB15_ERXDV_ECRSDV) |
3705
+ ((unsigned int) AT91C_PB8_EMDC ) |
3706
+ ((unsigned int) AT91C_PB16_ECOL ) |
3707
+ ((unsigned int) AT91C_PB7_ERXER ) |
3708
+ ((unsigned int) AT91C_PB5_ERX0 ) |
3709
+ ((unsigned int) AT91C_PB6_ERX1 ) |
3710
+ ((unsigned int) AT91C_PB13_ERX2 ) |
3711
+ ((unsigned int) AT91C_PB1_ETXEN ) |
3712
+ ((unsigned int) AT91C_PB14_ERX3 ) |
3713
+ ((unsigned int) AT91C_PB12_ETXER ) |
3714
+ ((unsigned int) AT91C_PB2_ETX0 ) |
3715
+ ((unsigned int) AT91C_PB3_ETX1 ) |
3716
+ ((unsigned int) AT91C_PB10_ETX2 ) |
3717
+ ((unsigned int) AT91C_PB18_EF100 ) |
3718
+ ((unsigned int) AT91C_PB11_ETX3 ) |
3719
+ ((unsigned int) AT91C_PB4_ECRS ) |
3720
+ ((unsigned int) AT91C_PB0_ETXCK_EREFCK), // Peripheral A
3721
+ 0); // Peripheral B
3722
+ }
3723
+
3724
+ //*----------------------------------------------------------------------------
3725
+ //* \fn AT91F_VREG_CfgPMC
3726
+ //* \brief Enable Peripheral clock in PMC for VREG
3727
+ //*----------------------------------------------------------------------------
3728
+ __inline void AT91F_VREG_CfgPMC (void)
3729
+ {
3730
+ AT91F_PMC_EnablePeriphClock(
3731
+ AT91C_BASE_PMC, // PIO controller base address
3732
+ ((unsigned int) 1 << AT91C_ID_SYS));
3733
+ }
3734
+
3735
+ //*----------------------------------------------------------------------------
3736
+ //* \fn AT91F_SSC_CfgPMC
3737
+ //* \brief Enable Peripheral clock in PMC for SSC
3738
+ //*----------------------------------------------------------------------------
3739
+ __inline void AT91F_SSC_CfgPMC (void)
3740
+ {
3741
+ AT91F_PMC_EnablePeriphClock(
3742
+ AT91C_BASE_PMC, // PIO controller base address
3743
+ ((unsigned int) 1 << AT91C_ID_SSC));
3744
+ }
3745
+
3746
+ //*----------------------------------------------------------------------------
3747
+ //* \fn AT91F_SSC_CfgPIO
3748
+ //* \brief Configure PIO controllers to drive SSC signals
3749
+ //*----------------------------------------------------------------------------
3750
+ __inline void AT91F_SSC_CfgPIO (void)
3751
+ {
3752
+ // Configure PIO controllers to periph mode
3753
+ AT91F_PIO_CfgPeriph(
3754
+ AT91C_BASE_PIOA, // PIO controller base address
3755
+ ((unsigned int) AT91C_PA23_TD ) |
3756
+ ((unsigned int) AT91C_PA21_TF ) |
3757
+ ((unsigned int) AT91C_PA25_RK ) |
3758
+ ((unsigned int) AT91C_PA24_RD ) |
3759
+ ((unsigned int) AT91C_PA26_RF ) |
3760
+ ((unsigned int) AT91C_PA22_TK ), // Peripheral A
3761
+ 0); // Peripheral B
3762
+ }
3763
+
3764
+ //*----------------------------------------------------------------------------
3765
+ //* \fn AT91F_SPI1_CfgPMC
3766
+ //* \brief Enable Peripheral clock in PMC for SPI1
3767
+ //*----------------------------------------------------------------------------
3768
+ __inline void AT91F_SPI1_CfgPMC (void)
3769
+ {
3770
+ AT91F_PMC_EnablePeriphClock(
3771
+ AT91C_BASE_PMC, // PIO controller base address
3772
+ ((unsigned int) 1 << AT91C_ID_SPI1));
3773
+ }
3774
+
3775
+ //*----------------------------------------------------------------------------
3776
+ //* \fn AT91F_SPI1_CfgPIO
3777
+ //* \brief Configure PIO controllers to drive SPI1 signals
3778
+ //*----------------------------------------------------------------------------
3779
+ __inline void AT91F_SPI1_CfgPIO (void)
3780
+ {
3781
+ // Configure PIO controllers to periph mode
3782
+ AT91F_PIO_CfgPeriph(
3783
+ AT91C_BASE_PIOA, // PIO controller base address
3784
+ 0, // Peripheral A
3785
+ ((unsigned int) AT91C_PA23_SPI1_MOSI) |
3786
+ ((unsigned int) AT91C_PA21_SPI1_NPCS0) |
3787
+ ((unsigned int) AT91C_PA25_SPI1_NPCS1) |
3788
+ ((unsigned int) AT91C_PA2_SPI1_NPCS1) |
3789
+ ((unsigned int) AT91C_PA24_SPI1_MISO) |
3790
+ ((unsigned int) AT91C_PA22_SPI1_SPCK) |
3791
+ ((unsigned int) AT91C_PA26_SPI1_NPCS2) |
3792
+ ((unsigned int) AT91C_PA3_SPI1_NPCS2) |
3793
+ ((unsigned int) AT91C_PA29_SPI1_NPCS3) |
3794
+ ((unsigned int) AT91C_PA4_SPI1_NPCS3)); // Peripheral B
3795
+ // Configure PIO controllers to periph mode
3796
+ AT91F_PIO_CfgPeriph(
3797
+ AT91C_BASE_PIOB, // PIO controller base address
3798
+ 0, // Peripheral A
3799
+ ((unsigned int) AT91C_PB10_SPI1_NPCS1) |
3800
+ ((unsigned int) AT91C_PB11_SPI1_NPCS2) |
3801
+ ((unsigned int) AT91C_PB16_SPI1_NPCS3)); // Peripheral B
3802
+ }
3803
+
3804
+ //*----------------------------------------------------------------------------
3805
+ //* \fn AT91F_SPI0_CfgPMC
3806
+ //* \brief Enable Peripheral clock in PMC for SPI0
3807
+ //*----------------------------------------------------------------------------
3808
+ __inline void AT91F_SPI0_CfgPMC (void)
3809
+ {
3810
+ AT91F_PMC_EnablePeriphClock(
3811
+ AT91C_BASE_PMC, // PIO controller base address
3812
+ ((unsigned int) 1 << AT91C_ID_SPI0));
3813
+ }
3814
+
3815
+ //*----------------------------------------------------------------------------
3816
+ //* \fn AT91F_SPI0_CfgPIO
3817
+ //* \brief Configure PIO controllers to drive SPI0 signals
3818
+ //*----------------------------------------------------------------------------
3819
+ __inline void AT91F_SPI0_CfgPIO (void)
3820
+ {
3821
+ // Configure PIO controllers to periph mode
3822
+ AT91F_PIO_CfgPeriph(
3823
+ AT91C_BASE_PIOA, // PIO controller base address
3824
+ ((unsigned int) AT91C_PA17_SPI0_MOSI) |
3825
+ ((unsigned int) AT91C_PA12_SPI0_NPCS0) |
3826
+ ((unsigned int) AT91C_PA13_SPI0_NPCS1) |
3827
+ ((unsigned int) AT91C_PA16_SPI0_MISO) |
3828
+ ((unsigned int) AT91C_PA14_SPI0_NPCS2) |
3829
+ ((unsigned int) AT91C_PA18_SPI0_SPCK) |
3830
+ ((unsigned int) AT91C_PA15_SPI0_NPCS3), // Peripheral A
3831
+ ((unsigned int) AT91C_PA7_SPI0_NPCS1) |
3832
+ ((unsigned int) AT91C_PA8_SPI0_NPCS2) |
3833
+ ((unsigned int) AT91C_PA9_SPI0_NPCS3)); // Peripheral B
3834
+ // Configure PIO controllers to periph mode
3835
+ AT91F_PIO_CfgPeriph(
3836
+ AT91C_BASE_PIOB, // PIO controller base address
3837
+ 0, // Peripheral A
3838
+ ((unsigned int) AT91C_PB13_SPI0_NPCS1) |
3839
+ ((unsigned int) AT91C_PB14_SPI0_NPCS2) |
3840
+ ((unsigned int) AT91C_PB17_SPI0_NPCS3)); // Peripheral B
3841
+ }
3842
+
3843
+ //*----------------------------------------------------------------------------
3844
+ //* \fn AT91F_PWMC_CfgPMC
3845
+ //* \brief Enable Peripheral clock in PMC for PWMC
3846
+ //*----------------------------------------------------------------------------
3847
+ __inline void AT91F_PWMC_CfgPMC (void)
3848
+ {
3849
+ AT91F_PMC_EnablePeriphClock(
3850
+ AT91C_BASE_PMC, // PIO controller base address
3851
+ ((unsigned int) 1 << AT91C_ID_PWMC));
3852
+ }
3853
+
3854
+ //*----------------------------------------------------------------------------
3855
+ //* \fn AT91F_TC0_CfgPMC
3856
+ //* \brief Enable Peripheral clock in PMC for TC0
3857
+ //*----------------------------------------------------------------------------
3858
+ __inline void AT91F_TC0_CfgPMC (void)
3859
+ {
3860
+ AT91F_PMC_EnablePeriphClock(
3861
+ AT91C_BASE_PMC, // PIO controller base address
3862
+ ((unsigned int) 1 << AT91C_ID_TC0));
3863
+ }
3864
+
3865
+ //*----------------------------------------------------------------------------
3866
+ //* \fn AT91F_TC0_CfgPIO
3867
+ //* \brief Configure PIO controllers to drive TC0 signals
3868
+ //*----------------------------------------------------------------------------
3869
+ __inline void AT91F_TC0_CfgPIO (void)
3870
+ {
3871
+ // Configure PIO controllers to periph mode
3872
+ AT91F_PIO_CfgPeriph(
3873
+ AT91C_BASE_PIOB, // PIO controller base address
3874
+ ((unsigned int) AT91C_PB23_TIOA0 ) |
3875
+ ((unsigned int) AT91C_PB24_TIOB0 ), // Peripheral A
3876
+ ((unsigned int) AT91C_PB12_TCLK0 )); // Peripheral B
3877
+ }
3878
+
3879
+ //*----------------------------------------------------------------------------
3880
+ //* \fn AT91F_TC1_CfgPMC
3881
+ //* \brief Enable Peripheral clock in PMC for TC1
3882
+ //*----------------------------------------------------------------------------
3883
+ __inline void AT91F_TC1_CfgPMC (void)
3884
+ {
3885
+ AT91F_PMC_EnablePeriphClock(
3886
+ AT91C_BASE_PMC, // PIO controller base address
3887
+ ((unsigned int) 1 << AT91C_ID_TC1));
3888
+ }
3889
+
3890
+ //*----------------------------------------------------------------------------
3891
+ //* \fn AT91F_TC1_CfgPIO
3892
+ //* \brief Configure PIO controllers to drive TC1 signals
3893
+ //*----------------------------------------------------------------------------
3894
+ __inline void AT91F_TC1_CfgPIO (void)
3895
+ {
3896
+ // Configure PIO controllers to periph mode
3897
+ AT91F_PIO_CfgPeriph(
3898
+ AT91C_BASE_PIOB, // PIO controller base address
3899
+ ((unsigned int) AT91C_PB25_TIOA1 ) |
3900
+ ((unsigned int) AT91C_PB26_TIOB1 ), // Peripheral A
3901
+ ((unsigned int) AT91C_PB19_TCLK1 )); // Peripheral B
3902
+ }
3903
+
3904
+ //*----------------------------------------------------------------------------
3905
+ //* \fn AT91F_TC2_CfgPMC
3906
+ //* \brief Enable Peripheral clock in PMC for TC2
3907
+ //*----------------------------------------------------------------------------
3908
+ __inline void AT91F_TC2_CfgPMC (void)
3909
+ {
3910
+ AT91F_PMC_EnablePeriphClock(
3911
+ AT91C_BASE_PMC, // PIO controller base address
3912
+ ((unsigned int) 1 << AT91C_ID_TC2));
3913
+ }
3914
+
3915
+ //*----------------------------------------------------------------------------
3916
+ //* \fn AT91F_TC2_CfgPIO
3917
+ //* \brief Configure PIO controllers to drive TC2 signals
3918
+ //*----------------------------------------------------------------------------
3919
+ __inline void AT91F_TC2_CfgPIO (void)
3920
+ {
3921
+ // Configure PIO controllers to periph mode
3922
+ AT91F_PIO_CfgPeriph(
3923
+ AT91C_BASE_PIOA, // PIO controller base address
3924
+ 0, // Peripheral A
3925
+ ((unsigned int) AT91C_PA15_TCLK2 )); // Peripheral B
3926
+ // Configure PIO controllers to periph mode
3927
+ AT91F_PIO_CfgPeriph(
3928
+ AT91C_BASE_PIOB, // PIO controller base address
3929
+ ((unsigned int) AT91C_PB27_TIOA2 ) |
3930
+ ((unsigned int) AT91C_PB28_TIOB2 ), // Peripheral A
3931
+ 0); // Peripheral B
3932
+ }
3933
+
3934
+ //*----------------------------------------------------------------------------
3935
+ //* \fn AT91F_PITC_CfgPMC
3936
+ //* \brief Enable Peripheral clock in PMC for PITC
3937
+ //*----------------------------------------------------------------------------
3938
+ __inline void AT91F_PITC_CfgPMC (void)
3939
+ {
3940
+ AT91F_PMC_EnablePeriphClock(
3941
+ AT91C_BASE_PMC, // PIO controller base address
3942
+ ((unsigned int) 1 << AT91C_ID_SYS));
3943
+ }
3944
+
3945
+ //*----------------------------------------------------------------------------
3946
+ //* \fn AT91F_ADC_CfgPMC
3947
+ //* \brief Enable Peripheral clock in PMC for ADC
3948
+ //*----------------------------------------------------------------------------
3949
+ __inline void AT91F_ADC_CfgPMC (void)
3950
+ {
3951
+ AT91F_PMC_EnablePeriphClock(
3952
+ AT91C_BASE_PMC, // PIO controller base address
3953
+ ((unsigned int) 1 << AT91C_ID_ADC));
3954
+ }
3955
+
3956
+ //*----------------------------------------------------------------------------
3957
+ //* \fn AT91F_ADC_CfgPIO
3958
+ //* \brief Configure PIO controllers to drive ADC signals
3959
+ //*----------------------------------------------------------------------------
3960
+ __inline void AT91F_ADC_CfgPIO (void)
3961
+ {
3962
+ // Configure PIO controllers to periph mode
3963
+ AT91F_PIO_CfgPeriph(
3964
+ AT91C_BASE_PIOB, // PIO controller base address
3965
+ 0, // Peripheral A
3966
+ ((unsigned int) AT91C_PB18_ADTRG )); // Peripheral B
3967
+ }
3968
+
3969
+ //*----------------------------------------------------------------------------
3970
+ //* \fn AT91F_PMC_CfgPMC
3971
+ //* \brief Enable Peripheral clock in PMC for PMC
3972
+ //*----------------------------------------------------------------------------
3973
+ __inline void AT91F_PMC_CfgPMC (void)
3974
+ {
3975
+ AT91F_PMC_EnablePeriphClock(
3976
+ AT91C_BASE_PMC, // PIO controller base address
3977
+ ((unsigned int) 1 << AT91C_ID_SYS));
3978
+ }
3979
+
3980
+ //*----------------------------------------------------------------------------
3981
+ //* \fn AT91F_PMC_CfgPIO
3982
+ //* \brief Configure PIO controllers to drive PMC signals
3983
+ //*----------------------------------------------------------------------------
3984
+ __inline void AT91F_PMC_CfgPIO (void)
3985
+ {
3986
+ // Configure PIO controllers to periph mode
3987
+ AT91F_PIO_CfgPeriph(
3988
+ AT91C_BASE_PIOA, // PIO controller base address
3989
+ 0, // Peripheral A
3990
+ ((unsigned int) AT91C_PA13_PCK1 ) |
3991
+ ((unsigned int) AT91C_PA30_PCK2 ) |
3992
+ ((unsigned int) AT91C_PA27_PCK3 )); // Peripheral B
3993
+ // Configure PIO controllers to periph mode
3994
+ AT91F_PIO_CfgPeriph(
3995
+ AT91C_BASE_PIOB, // PIO controller base address
3996
+ ((unsigned int) AT91C_PB29_PCK1 ) |
3997
+ ((unsigned int) AT91C_PB30_PCK2 ), // Peripheral A
3998
+ ((unsigned int) AT91C_PB21_PCK1 ) |
3999
+ ((unsigned int) AT91C_PB22_PCK2 ) |
4000
+ ((unsigned int) AT91C_PB20_PCK0 ) |
4001
+ ((unsigned int) AT91C_PB0_PCK0 )); // Peripheral B
4002
+ }
4003
+
4004
+ //*----------------------------------------------------------------------------
4005
+ //* \fn AT91F_RSTC_CfgPMC
4006
+ //* \brief Enable Peripheral clock in PMC for RSTC
4007
+ //*----------------------------------------------------------------------------
4008
+ __inline void AT91F_RSTC_CfgPMC (void)
4009
+ {
4010
+ AT91F_PMC_EnablePeriphClock(
4011
+ AT91C_BASE_PMC, // PIO controller base address
4012
+ ((unsigned int) 1 << AT91C_ID_SYS));
4013
+ }
4014
+
4015
+ //*----------------------------------------------------------------------------
4016
+ //* \fn AT91F_RTTC_CfgPMC
4017
+ //* \brief Enable Peripheral clock in PMC for RTTC
4018
+ //*----------------------------------------------------------------------------
4019
+ __inline void AT91F_RTTC_CfgPMC (void)
4020
+ {
4021
+ AT91F_PMC_EnablePeriphClock(
4022
+ AT91C_BASE_PMC, // PIO controller base address
4023
+ ((unsigned int) 1 << AT91C_ID_SYS));
4024
+ }
4025
+
4026
+ //*----------------------------------------------------------------------------
4027
+ //* \fn AT91F_PIOA_CfgPMC
4028
+ //* \brief Enable Peripheral clock in PMC for PIOA
4029
+ //*----------------------------------------------------------------------------
4030
+ __inline void AT91F_PIOA_CfgPMC (void)
4031
+ {
4032
+ AT91F_PMC_EnablePeriphClock(
4033
+ AT91C_BASE_PMC, // PIO controller base address
4034
+ ((unsigned int) 1 << AT91C_ID_PIOA));
4035
+ }
4036
+
4037
+ //*----------------------------------------------------------------------------
4038
+ //* \fn AT91F_PIOB_CfgPMC
4039
+ //* \brief Enable Peripheral clock in PMC for PIOB
4040
+ //*----------------------------------------------------------------------------
4041
+ __inline void AT91F_PIOB_CfgPMC (void)
4042
+ {
4043
+ AT91F_PMC_EnablePeriphClock(
4044
+ AT91C_BASE_PMC, // PIO controller base address
4045
+ ((unsigned int) 1 << AT91C_ID_PIOB));
4046
+ }
4047
+
4048
+ //*----------------------------------------------------------------------------
4049
+ //* \fn AT91F_TWI_CfgPMC
4050
+ //* \brief Enable Peripheral clock in PMC for TWI
4051
+ //*----------------------------------------------------------------------------
4052
+ __inline void AT91F_TWI_CfgPMC (void)
4053
+ {
4054
+ AT91F_PMC_EnablePeriphClock(
4055
+ AT91C_BASE_PMC, // PIO controller base address
4056
+ ((unsigned int) 1 << AT91C_ID_TWI));
4057
+ }
4058
+
4059
+ //*----------------------------------------------------------------------------
4060
+ //* \fn AT91F_TWI_CfgPIO
4061
+ //* \brief Configure PIO controllers to drive TWI signals
4062
+ //*----------------------------------------------------------------------------
4063
+ __inline void AT91F_TWI_CfgPIO (void)
4064
+ {
4065
+ // Configure PIO controllers to periph mode
4066
+ AT91F_PIO_CfgPeriph(
4067
+ AT91C_BASE_PIOA, // PIO controller base address
4068
+ ((unsigned int) AT91C_PA10_TWD ) |
4069
+ ((unsigned int) AT91C_PA11_TWCK ), // Peripheral A
4070
+ 0); // Peripheral B
4071
+ }
4072
+
4073
+ //*----------------------------------------------------------------------------
4074
+ //* \fn AT91F_WDTC_CfgPMC
4075
+ //* \brief Enable Peripheral clock in PMC for WDTC
4076
+ //*----------------------------------------------------------------------------
4077
+ __inline void AT91F_WDTC_CfgPMC (void)
4078
+ {
4079
+ AT91F_PMC_EnablePeriphClock(
4080
+ AT91C_BASE_PMC, // PIO controller base address
4081
+ ((unsigned int) 1 << AT91C_ID_SYS));
4082
+ }
4083
+
4084
+ //*----------------------------------------------------------------------------
4085
+ //* \fn AT91F_US1_CfgPMC
4086
+ //* \brief Enable Peripheral clock in PMC for US1
4087
+ //*----------------------------------------------------------------------------
4088
+ __inline void AT91F_US1_CfgPMC (void)
4089
+ {
4090
+ AT91F_PMC_EnablePeriphClock(
4091
+ AT91C_BASE_PMC, // PIO controller base address
4092
+ ((unsigned int) 1 << AT91C_ID_US1));
4093
+ }
4094
+
4095
+ //*----------------------------------------------------------------------------
4096
+ //* \fn AT91F_US1_CfgPIO
4097
+ //* \brief Configure PIO controllers to drive US1 signals
4098
+ //*----------------------------------------------------------------------------
4099
+ __inline void AT91F_US1_CfgPIO (void)
4100
+ {
4101
+ // Configure PIO controllers to periph mode
4102
+ AT91F_PIO_CfgPeriph(
4103
+ AT91C_BASE_PIOA, // PIO controller base address
4104
+ ((unsigned int) AT91C_PA5_RXD1 ) |
4105
+ ((unsigned int) AT91C_PA6_TXD1 ) |
4106
+ ((unsigned int) AT91C_PA8_RTS1 ) |
4107
+ ((unsigned int) AT91C_PA7_SCK1 ) |
4108
+ ((unsigned int) AT91C_PA9_CTS1 ), // Peripheral A
4109
+ 0); // Peripheral B
4110
+ // Configure PIO controllers to periph mode
4111
+ AT91F_PIO_CfgPeriph(
4112
+ AT91C_BASE_PIOB, // PIO controller base address
4113
+ 0, // Peripheral A
4114
+ ((unsigned int) AT91C_PB25_DTR1 ) |
4115
+ ((unsigned int) AT91C_PB23_DCD1 ) |
4116
+ ((unsigned int) AT91C_PB24_DSR1 ) |
4117
+ ((unsigned int) AT91C_PB26_RI1 )); // Peripheral B
4118
+ }
4119
+
4120
+ //*----------------------------------------------------------------------------
4121
+ //* \fn AT91F_US0_CfgPMC
4122
+ //* \brief Enable Peripheral clock in PMC for US0
4123
+ //*----------------------------------------------------------------------------
4124
+ __inline void AT91F_US0_CfgPMC (void)
4125
+ {
4126
+ AT91F_PMC_EnablePeriphClock(
4127
+ AT91C_BASE_PMC, // PIO controller base address
4128
+ ((unsigned int) 1 << AT91C_ID_US0));
4129
+ }
4130
+
4131
+ //*----------------------------------------------------------------------------
4132
+ //* \fn AT91F_US0_CfgPIO
4133
+ //* \brief Configure PIO controllers to drive US0 signals
4134
+ //*----------------------------------------------------------------------------
4135
+ __inline void AT91F_US0_CfgPIO (void)
4136
+ {
4137
+ // Configure PIO controllers to periph mode
4138
+ AT91F_PIO_CfgPeriph(
4139
+ AT91C_BASE_PIOA, // PIO controller base address
4140
+ ((unsigned int) AT91C_PA0_RXD0 ) |
4141
+ ((unsigned int) AT91C_PA1_TXD0 ) |
4142
+ ((unsigned int) AT91C_PA3_RTS0 ) |
4143
+ ((unsigned int) AT91C_PA2_SCK0 ) |
4144
+ ((unsigned int) AT91C_PA4_CTS0 ), // Peripheral A
4145
+ 0); // Peripheral B
4146
+ }
4147
+
4148
+ //*----------------------------------------------------------------------------
4149
+ //* \fn AT91F_UDP_CfgPMC
4150
+ //* \brief Enable Peripheral clock in PMC for UDP
4151
+ //*----------------------------------------------------------------------------
4152
+ __inline void AT91F_UDP_CfgPMC (void)
4153
+ {
4154
+ AT91F_PMC_EnablePeriphClock(
4155
+ AT91C_BASE_PMC, // PIO controller base address
4156
+ ((unsigned int) 1 << AT91C_ID_UDP));
4157
+ }
4158
+
4159
+ //*----------------------------------------------------------------------------
4160
+ //* \fn AT91F_AIC_CfgPMC
4161
+ //* \brief Enable Peripheral clock in PMC for AIC
4162
+ //*----------------------------------------------------------------------------
4163
+ __inline void AT91F_AIC_CfgPMC (void)
4164
+ {
4165
+ AT91F_PMC_EnablePeriphClock(
4166
+ AT91C_BASE_PMC, // PIO controller base address
4167
+ ((unsigned int) 1 << AT91C_ID_IRQ0) |
4168
+ ((unsigned int) 1 << AT91C_ID_FIQ) |
4169
+ ((unsigned int) 1 << AT91C_ID_IRQ1));
4170
+ }
4171
+
4172
+ //*----------------------------------------------------------------------------
4173
+ //* \fn AT91F_AIC_CfgPIO
4174
+ //* \brief Configure PIO controllers to drive AIC signals
4175
+ //*----------------------------------------------------------------------------
4176
+ __inline void AT91F_AIC_CfgPIO (void)
4177
+ {
4178
+ // Configure PIO controllers to periph mode
4179
+ AT91F_PIO_CfgPeriph(
4180
+ AT91C_BASE_PIOA, // PIO controller base address
4181
+ ((unsigned int) AT91C_PA30_IRQ0 ) |
4182
+ ((unsigned int) AT91C_PA29_FIQ ), // Peripheral A
4183
+ ((unsigned int) AT91C_PA14_IRQ1 )); // Peripheral B
4184
+ }
4185
+
4186
+ //*----------------------------------------------------------------------------
4187
+ //* \fn AT91F_CAN_CfgPMC
4188
+ //* \brief Enable Peripheral clock in PMC for CAN
4189
+ //*----------------------------------------------------------------------------
4190
+ __inline void AT91F_CAN_CfgPMC (void)
4191
+ {
4192
+ AT91F_PMC_EnablePeriphClock(
4193
+ AT91C_BASE_PMC, // PIO controller base address
4194
+ ((unsigned int) 1 << AT91C_ID_CAN));
4195
+ }
4196
+
4197
+ //*----------------------------------------------------------------------------
4198
+ //* \fn AT91F_CAN_CfgPIO
4199
+ //* \brief Configure PIO controllers to drive CAN signals
4200
+ //*----------------------------------------------------------------------------
4201
+ __inline void AT91F_CAN_CfgPIO (void)
4202
+ {
4203
+ // Configure PIO controllers to periph mode
4204
+ AT91F_PIO_CfgPeriph(
4205
+ AT91C_BASE_PIOA, // PIO controller base address
4206
+ ((unsigned int) AT91C_PA20_CANTX ) |
4207
+ ((unsigned int) AT91C_PA19_CANRX ), // Peripheral A
4208
+ 0); // Peripheral B
4209
+ }
4210
+
4211
+ #endif // lib_AT91SAM7X256_H