From 4c72a2b0f9066d4d37e3c37e87b9986da5c6cefd Mon Sep 17 00:00:00 2001 From: Frank Voorburg Date: Wed, 22 May 2013 13:27:28 +0000 Subject: [PATCH] - Removed STM32P103 Eclipse demo git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@41 5dc33758-31d5-4daf-9ae8-b24bf3d40d73 --- .../.metadata/.lock | 0 .../.metadata/.log | 237 - .../.metadata/.mylyn/repositories.xml.zip | Bin 437 -> 0 bytes .../dialog_settings.xml | 4 - .../.plugins/org.eclipse.cdt.core/.log | 12 - .../Boot.1322834671001.pdom | Bin 1236992 -> 0 bytes .../Prog.1322831217304.pdom | Bin 2412544 -> 0 bytes .../org.eclipse.cdt.core/shareddefaults.xml | 1 - .../.plugins/org.eclipse.cdt.make.core/.log | 0 .../org.eclipse.cdt.make.core/Boot.sc | 405 - .../org.eclipse.cdt.make.core/Prog.sc | 405 - .../org.eclipse.cdt.make.core/specs.c | 1 - .../org.eclipse.cdt.make.core/specs.cpp | 1 - .../org.eclipse.cdt.ui/Boot.build.log | 16 - .../org.eclipse.cdt.ui/Prog.build.log | 195 - .../org.eclipse.cdt.ui/dialog_settings.xml | 25 - .../org.eclipse.cdt.ui/global-build.log | 195 - .../0/302f3cf1091d00111358d2931fee7772 | 27 - .../0/70994e1a0b1d00111358d2931fee7772 | 45 - .../0/70f636a1f31c00111565e8bbe12141cd | 0 .../0/804030d8221d0011116edf0151d9d887 | 27 - .../0/f035cf3f021d00111358d2931fee7772 | 24 - .../0/f0a432570e1d00111358d2931fee7772 | 24 - .../1/302c66b00a1d00111358d2931fee7772 | 24 - .../1/602d9d2d201d00111c63a4b3c7bd9f5b | 0 .../1/a058473c0b1d00111358d2931fee7772 | 24 - .../10/60252d5d041d00111358d2931fee7772 | 24 - .../10/7079cdd10d1d00111358d2931fee7772 | 24 - .../10/c032227c0a1d00111358d2931fee7772 | 90 - .../11/6034d2d10d1d00111358d2931fee7772 | 24 - .../11/909d1c3efa1c00111358d2931fee7772 | 24 - .../11/e06e5a75221d0011116edf0151d9d887 | 0 .../12/80021471e91c00111565e8bbe12141cd | 24 - .../12/c010082d091d00111358d2931fee7772 | 90 - .../13/8046912d201d00111c63a4b3c7bd9f5b | 0 .../13/f0b60204e91c00111565e8bbe12141cd | 26 - .../14/8034d03c071d00111358d2931fee7772 | 90 - .../14/90f50097051d00111358d2931fee7772 | 48 - .../15/00dc4856201d00111c63a4b3c7bd9f5b | 82 - .../15/10c046ffe91c00111565e8bbe12141cd | 90 - .../15/403939ace71c00111565e8bbe12141cd | 81 - .../16/00ce7c1a0e1d00111358d2931fee7772 | 82 - .../16/9015cc3fea1c00111565e8bbe12141cd | 0 .../17/70458efa071d00111358d2931fee7772 | 24 - .../17/7055a2000b1d00111358d2931fee7772 | 90 - .../18/10ad587cff1c00111358d2931fee7772 | 162 - .../18/703ff89ff41c00111565e8bbe12141cd | 28 - .../18/d009b9e4f61c00111565e8bbe12141cd | 166 - .../19/20c814a0f41c00111565e8bbe12141cd | 24 - .../19/20ec95440a1d00111358d2931fee7772 | 27 - .../19/b076c93d091d00111358d2931fee7772 | 24 - .../19/e0b71172f31c00111565e8bbe12141cd | 0 .../1b/a0f7132d091d00111358d2931fee7772 | 24 - .../1b/f0c22d570e1d00111358d2931fee7772 | 27 - .../1c/00a8a240011d00111358d2931fee7772 | 350 - .../1c/20fbfe76f61c00111565e8bbe12141cd | 24 - .../1c/5081ab3f021d00111358d2931fee7772 | 26 - .../1d/10450177f61c00111565e8bbe12141cd | 83 - .../1d/4032521e091d00111358d2931fee7772 | 24 - .../1d/7066e47b0a1d00111358d2931fee7772 | 27 - .../1d/70e32413f71c00111565e8bbe12141cd | 166 - .../1d/d09b3db6221d0011116edf0151d9d887 | 8 - .../1f/201632030d1d00111358d2931fee7772 | 205 - .../1f/70d6a0220a1d00111358d2931fee7772 | 24 - .../1f/b1841a04e91c00111565e8bbe12141cd | 0 .../1f/c111bc440a1d00111358d2931fee7772 | 82 - .../2/30cff776f61c00111565e8bbe12141cd | 27 - .../2/709de046201d00111c63a4b3c7bd9f5b | 0 .../2/9061d663e81c00111565e8bbe12141cd | 42 - .../2/f0425375221d0011116edf0151d9d887 | 0 .../2/f0fc0c72f31c00111565e8bbe12141cd | 0 .../21/90f12fa1f31c00111565e8bbe12141cd | 0 .../22/20968bf0041d00111358d2931fee7772 | 26 - .../23/9055eedb041d00111358d2931fee7772 | 182 - .../23/9082f7d1001d00111358d2931fee7772 | 121 - .../23/a0ee8eb5091d00111358d2931fee7772 | 45 - .../23/c0d9bf3d091d00111358d2931fee7772 | 90 - .../23/e037ed360a1d00111358d2931fee7772 | 24 - .../24/203e379d091d00111358d2931fee7772 | 45 - .../24/60983ed8221d0011116edf0151d9d887 | 45 - .../24/80b11b56201d00111c63a4b3c7bd9f5b | 27 - .../24/90630369041d00111358d2931fee7772 | 81 - .../25/50e8eb76f61c00111565e8bbe12141cd | 34 - .../25/d024de9c0d1d00111358d2931fee7772 | 82 - .../25/f135cf3f021d00111358d2931fee7772 | 81 - .../26/000a49ffe91c00111565e8bbe12141cd | 24 - .../26/f0b431b6221d0011116edf0151d9d887 | 90 - .../27/f03550ffe91c00111565e8bbe12141cd | 8 - .../29/30753b75221d0011116edf0151d9d887 | 31 - .../29/8071d946201d00111c63a4b3c7bd9f5b | 0 .../29/90ee3e31071d00111358d2931fee7772 | 48 - .../29/e0710704e91c00111565e8bbe12141cd | 42 - .../29/e0d4a5f0041d00111358d2931fee7772 | 90 - .../2b/10160172f31c00111565e8bbe12141cd | 0 .../2c/d09a6175221d0011116edf0151d9d887 | 86 - .../2d/1039b583f61c00111565e8bbe12141cd | 74 - .../2d/a0aa67fa071d00111358d2931fee7772 | 26 - .../2d/f022627cff1c00111358d2931fee7772 | 375 - .../2e/e01de8fa0a1d00111358d2931fee7772 | 24 - .../2f/4070bdbf091d00111358d2931fee7772 | 668 -- .../2f/7047733c071d00111358d2931fee7772 | 224 - .../3/105d23b6221d0011116edf0151d9d887 | 45 - .../3/40be7d7c201d00111c63a4b3c7bd9f5b | 0 .../3/602da9b5091d00111358d2931fee7772 | 24 - .../3/e0afd8450b1d00111358d2931fee7772 | 45 - .../31/b07d855ee91c00111565e8bbe12141cd | 24 - .../32/00e4bde90a1d00111358d2931fee7772 | 90 - .../32/60c14f99221d0011116edf0151d9d887 | 27 - .../32/70774d99221d0011116edf0151d9d887 | 28 - .../32/80911171e91c00111565e8bbe12141cd | 90 - .../32/80e2db46201d00111c63a4b3c7bd9f5b | 0 .../32/e04656f1091d00111358d2931fee7772 | 24 - .../33/702b43a1f31c00111565e8bbe12141cd | 0 .../33/c0fb0b3efa1c00111358d2931fee7772 | 34 - .../34/802fcbd10d1d00111358d2931fee7772 | 90 - .../34/c04aaff0041d00111358d2931fee7772 | 81 - .../36/00349d030d1d00111358d2931fee7772 | 24 - .../36/f0eea1030d1d00111358d2931fee7772 | 24 - .../37/0067f0eafe1c00111358d2931fee7772 | 79 - .../37/106277fa071d00111358d2931fee7772 | 48 - .../37/80118e6a201d00111c63a4b3c7bd9f5b | 0 .../37/a08a307c0a1d00111358d2931fee7772 | 24 - .../37/b0ec28a1f31c00111565e8bbe12141cd | 0 .../37/f01a4ff1091d00111358d2931fee7772 | 90 - .../38/7024bbd70a1d00111358d2931fee7772 | 45 - .../38/80b854dc041d00111358d2931fee7772 | 90 - .../38/c014277c0a1d00111358d2931fee7772 | 24 - .../39/a0b97f6a201d00111c63a4b3c7bd9f5b | 0 .../3a/30e63d75221d0011116edf0151d9d887 | 27 - .../3a/404540a1f31c00111565e8bbe12141cd | 0 .../3a/71bd1871e91c00111565e8bbe12141cd | 8 - .../3a/c0e46375221d0011116edf0151d9d887 | 0 .../3b/40c2642f051d00111358d2931fee7772 | 26 - .../3b/e0ace5fa0a1d00111358d2931fee7772 | 24 - .../3d/10847a1a0e1d00111358d2931fee7772 | 24 - .../3e/4055c9d70a1d00111358d2931fee7772 | 90 - .../3e/c0337e56e71c00111565e8bbe12141cd | 0 .../3e/d068e6890b1d00111358d2931fee7772 | 90 - .../3e/f0bb832f051d00111358d2931fee7772 | 24 - .../3f/90512342221d0011116edf0151d9d887 | 28 - .../3f/a05507b5e91c00111565e8bbe12141cd | 81 - .../3f/a07302b5e91c00111565e8bbe12141cd | 24 - .../4/7090411e091d00111358d2931fee7772 | 48 - .../4/a1c7875ee91c00111565e8bbe12141cd | 81 - .../4/e0c391b5001d00111358d2931fee7772 | 118 - .../40/5065de3c071d00111358d2931fee7772 | 81 - .../40/604868cdfe1c00111358d2931fee7772 | 79 - .../41/00e0de360a1d00111358d2931fee7772 | 90 - .../41/b0deef890b1d00111358d2931fee7772 | 24 - .../42/a0fb327c0a1d00111358d2931fee7772 | 82 - .../43/60e0e5e20a1d00111358d2931fee7772 | 27 - .../43/70efd43c071d00111358d2931fee7772 | 24 - .../43/b02900b5e91c00111565e8bbe12141cd | 24 - .../43/d0c43eedf31c00111565e8bbe12141cd | 74 - .../44/70cc926a201d00111c63a4b3c7bd9f5b | 0 .../44/905dd53d091d00111358d2931fee7772 | 82 - .../45/00a4233c0b1d00111358d2931fee7772 | 27 - .../45/10a79a440a1d00111358d2931fee7772 | 45 - .../45/70ca42b5091d00111358d2931fee7772 | 668 -- .../46/312c66b00a1d00111358d2931fee7772 | 24 - .../46/60e2f3af0a1d00111358d2931fee7772 | 668 -- .../46/708f45000b1d00111358d2931fee7772 | 668 -- .../47/3045c864f41c00111565e8bbe12141cd | 28 - .../47/a08473e20c1d00111358d2931fee7772 | 90 - .../47/a0f575e20c1d00111358d2931fee7772 | 24 - .../48/4087a8e90a1d00111358d2931fee7772 | 45 - .../48/70c6a4000b1d00111358d2931fee7772 | 24 - .../48/f0d97e2f051d00111358d2931fee7772 | 90 - .../49/30456599221d0011116edf0151d9d887 | 74 - .../49/50b6621a0e1d00111358d2931fee7772 | 45 - .../49/706a285d041d00111358d2931fee7772 | 90 - .../49/e08219a2221d0011116edf0151d9d887 | 24 - .../4a/e0093aedf31c00111565e8bbe12141cd | 28 - .../4b/b05e297c0a1d00111358d2931fee7772 | 24 - .../4b/b0bb3d3c0b1d00111358d2931fee7772 | 90 - .../4c/2058731a0e1d00111358d2931fee7772 | 90 - .../4c/40a85b99221d0011116edf0151d9d887 | 74 - .../4c/40ac611a0b1d00111358d2931fee7772 | 24 - .../4c/b051e9450b1d00111358d2931fee7772 | 24 - .../4d/30c196c50c1d00111358d2931fee7772 | 90 - .../4e/10da04e30a1d00111358d2931fee7772 | 24 - .../4e/80a95e52201d00111c63a4b3c7bd9f5b | 24 - .../4e/a00cee450b1d00111358d2931fee7772 | 82 - .../4e/a037fc68041d00111358d2931fee7772 | 24 - .../4e/f0a7ad0f001d00111358d2931fee7772 | 120 - .../4f/30d71a570e1d00111358d2931fee7772 | 74 - .../4f/4014571e091d00111358d2931fee7772 | 81 - .../5/3064fbe20a1d00111358d2931fee7772 | 24 - .../5/a0d59f64f41c00111565e8bbe12141cd | 161 - .../50/009509e30a1d00111358d2931fee7772 | 82 - .../50/2088d0360a1d00111358d2931fee7772 | 45 - .../50/30f3f8e20a1d00111358d2931fee7772 | 90 - .../50/40c836ace71c00111565e8bbe12141cd | 24 - .../50/60b5459c0d1d00111358d2931fee7772 | 205 - .../50/a0e11c89e71c00111565e8bbe12141cd | 90 - .../50/e03cfdc0011d00111358d2931fee7772 | 24 - .../51/e138a4030d1d00111358d2931fee7772 | 82 - .../52/2021141a0e1d00111358d2931fee7772 | 214 - .../52/d0bd80b5091d00111358d2931fee7772 | 27 - .../53/507c5499221d0011116edf0151d9d887 | 24 - .../53/60a215c0091d00111358d2931fee7772 | 24 - .../53/c0c91504e91c00111565e8bbe12141cd | 0 .../54/a01313ace71c00111565e8bbe12141cd | 26 - .../54/a0c6f968041d00111358d2931fee7772 | 90 - .../54/b01c4dedf31c00111565e8bbe12141cd | 27 - .../54/b1eb5ada011d00111358d2931fee7772 | 81 - .../54/c03056da011d00111358d2931fee7772 | 90 - .../54/d0a6f6d70a1d00111358d2931fee7772 | 82 - .../56/502d5931071d00111358d2931fee7772 | 24 - .../57/00dc5fd8221d0011116edf0151d9d887 | 24 - .../57/104a6c99221d0011116edf0151d9d887 | 34 - .../59/3012309d091d00111358d2931fee7772 | 27 - .../59/40a5a3e90a1d00111358d2931fee7772 | 27 - .../59/c010569d091d00111358d2931fee7772 | 82 - .../59/c03adc3b0b1d00111358d2931fee7772 | 668 -- .../59/e06a725ee91c00111565e8bbe12141cd | 26 - .../5a/0055c0e90a1d00111358d2931fee7772 | 24 - .../5a/80f8b3d70a1d00111358d2931fee7772 | 27 - .../5a/a0388a5ee91c00111565e8bbe12141cd | 8 - .../5a/e0460f72f31c00111565e8bbe12141cd | 0 .../5a/f0beaeca041d00111358d2931fee7772 | 26 - .../5b/0047dafe071d00111358d2931fee7772 | 216 - .../5b/1064ef93ea1c00111565e8bbe12141cd | 8 - .../5b/d0a939570e1d00111358d2931fee7772 | 83 - .../5b/f0c44dffe91c00111565e8bbe12141cd | 81 - .../5c/500d32ace71c00111565e8bbe12141cd | 90 - .../5c/8082906a201d00111c63a4b3c7bd9f5b | 0 .../5c/d03d1ea2221d0011116edf0151d9d887 | 82 - .../5c/f017acf8071d00111358d2931fee7772 | 39 - .../5d/30ad3da1f31c00111565e8bbe12141cd | 0 .../5d/910d2489e71c00111565e8bbe12141cd | 8 - .../5e/a04dc43c071d00111358d2931fee7772 | 48 - .../5e/a0fd07dae91c00111565e8bbe12141cd | 8 - .../5f/d00d8df9221d0011116edf0151d9d887 | 24 - .../6/4003ee71f31c00111565e8bbe12141cd | 0 .../6/b0b8fdb4e91c00111565e8bbe12141cd | 90 - .../6/f07053f9061d00111358d2931fee7772 | 41 - .../60/90b2182d091d00111358d2931fee7772 | 82 - .../60/a0d58e450b1d00111358d2931fee7772 | 668 -- .../60/c0c27b56e71c00111565e8bbe12141cd | 0 .../60/e07433dc041d00111358d2931fee7772 | 26 - .../61/50747b7c201d00111c63a4b3c7bd9f5b | 0 .../62/b0ebc3c50c1d00111358d2931fee7772 | 82 - .../62/e09a4c9d091d00111358d2931fee7772 | 90 - .../63/60d65b98201d00111c63a4b3c7bd9f5b | 24 - .../64/b010c53fea1c00111565e8bbe12141cd | 0 .../65/714d0f97051d00111358d2931fee7772 | 24 - .../66/10ea8afa071d00111358d2931fee7772 | 24 - .../66/60325299221d0011116edf0151d9d887 | 24 - .../66/7001a2b5091d00111358d2931fee7772 | 90 - .../66/a0c32189e71c00111565e8bbe12141cd | 24 - .../66/d01a3c570e1d00111358d2931fee7772 | 8 - .../66/d081ef360a1d00111358d2931fee7772 | 24 - .../66/e0b758f1091d00111358d2931fee7772 | 82 - .../68/c071f778e01c00111cadaab22f5679ad | 161 - .../69/90dba4f9221d0011116edf0151d9d887 | 83 - .../69/c0b951d10d1d00111358d2931fee7772 | 214 - .../69/e0f31ba2221d0011116edf0151d9d887 | 24 - .../6a/20dfcdfa0a1d00111358d2931fee7772 | 45 - .../6b/00c07b96051d00111358d2931fee7772 | 182 - .../6b/500cede20a1d00111358d2931fee7772 | 45 - .../6c/007b4bffe91c00111565e8bbe12141cd | 24 - .../6c/7062e709001d00111358d2931fee7772 | 104 - .../6d/40005fb00a1d00111358d2931fee7772 | 90 - .../6d/602e5edc041d00111358d2931fee7772 | 81 - .../6d/c011bc440a1d00111358d2931fee7772 | 24 - .../6d/e014003efa1c00111358d2931fee7772 | 74 - .../6e/408fc05e071d00111358d2931fee7772 | 81 - .../6e/a0a45752201d00111c63a4b3c7bd9f5b | 34 - .../6f/306ace9c091d00111358d2931fee7772 | 655 -- .../6f/405e30c50c1d00111358d2931fee7772 | 173 - .../6f/e048ab440a1d00111358d2931fee7772 | 90 - .../7/00be64d8221d0011116edf0151d9d887 | 8 - .../7/603113c0091d00111358d2931fee7772 | 90 - .../7/c034fc70e91c00111565e8bbe12141cd | 26 - .../70/50774d1e091d00111358d2931fee7772 | 90 - .../70/515d1ac0091d00111358d2931fee7772 | 82 - .../70/b07cd683f61c00111565e8bbe12141cd | 24 - .../71/70aa5498201d00111c63a4b3c7bd9f5b | 34 - .../73/20d02ef0041d00111358d2931fee7772 | 182 - .../73/b02c403c0b1d00111358d2931fee7772 | 24 - .../73/d088e964f41c00111565e8bbe12141cd | 83 - .../74/302d9ce20a1d00111358d2931fee7772 | 668 -- .../74/60655998201d00111c63a4b3c7bd9f5b | 27 - .../75/502fee63e81c00111565e8bbe12141cd | 8 - .../75/b0f0f996051d00111358d2931fee7772 | 26 - .../76/006c7cf9221d0011116edf0151d9d887 | 28 - .../76/60bca6b5091d00111358d2931fee7772 | 24 - .../77/60b9767c201d00111c63a4b3c7bd9f5b | 0 .../77/e05ce264f41c00111565e8bbe12141cd | 24 - .../78/20aef5d9e91c00111565e8bbe12141cd | 42 - .../79/b0cf84b8011d00111358d2931fee7772 | 319 - .../7a/507646ff071d00111358d2931fee7772 | 24 - .../7a/8050a65e071d00111358d2931fee7772 | 48 - .../7a/a03f1f04e91c00111565e8bbe12141cd | 8 - .../7a/e02ec330071d00111358d2931fee7772 | 198 - .../7b/200b99c50c1d00111358d2931fee7772 | 24 - .../7b/c042c4ca041d00111358d2931fee7772 | 24 - .../7c/0012cb9c0d1d00111358d2931fee7772 | 24 - .../7c/a0c25252201d00111c63a4b3c7bd9f5b | 74 - .../7d/202604a2221d0011116edf0151d9d887 | 45 - .../7d/40ca5c1a0b1d00111358d2931fee7772 | 90 - .../7e/50205e98201d00111c63a4b3c7bd9f5b | 24 - .../7e/b0c2eb450b1d00111358d2931fee7772 | 24 - .../7f/50bc5631071d00111358d2931fee7772 | 24 - .../8/90ecd23d091d00111358d2931fee7772 | 24 - .../80/000ac83f021d00111358d2931fee7772 | 24 - .../80/601bdc3c071d00111358d2931fee7772 | 24 - .../80/70bd1871e91c00111565e8bbe12141cd | 81 - .../80/900d2489e71c00111565e8bbe12141cd | 81 - .../80/d05365e20c1d00111358d2931fee7772 | 45 - .../80/e038a4030d1d00111358d2931fee7772 | 24 - .../81/c014c446201d00111c63a4b3c7bd9f5b | 0 .../82/30cdcb360a1d00111358d2931fee7772 | 27 - .../82/6020a3220a1d00111358d2931fee7772 | 82 - .../82/81c9233efa1c00111358d2931fee7772 | 8 - .../82/e04bc883f61c00111565e8bbe12141cd | 27 - .../83/e0a03bff071d00111358d2931fee7772 | 90 - .../84/206fc7890b1d00111358d2931fee7772 | 27 - .../84/3040fa76f61c00111565e8bbe12141cd | 24 - .../84/6021e97b0a1d00111358d2931fee7772 | 45 - .../84/b0841a04e91c00111565e8bbe12141cd | 0 .../85/50916098201d00111c63a4b3c7bd9f5b | 83 - .../86/10a7613f021d00111358d2931fee7772 | 355 - .../86/60fafc9ff41c00111565e8bbe12141cd | 74 - .../86/9041162d091d00111358d2931fee7772 | 24 - .../87/d0efaf02f71c00111565e8bbe12141cd | 166 - .../88/6074e963e81c00111565e8bbe12141cd | 24 - .../89/5063b95e071d00111358d2931fee7772 | 24 - .../89/b0fdc8ca041d00111358d2931fee7772 | 81 - .../89/d0f2f1360a1d00111358d2931fee7772 | 82 - .../8a/400c395d041d00111358d2931fee7772 | 81 - .../8a/907e92220a1d00111358d2931fee7772 | 24 - .../8a/c0a158da011d00111358d2931fee7772 | 24 - .../8b/104b48ff071d00111358d2931fee7772 | 24 - .../8b/10cd4975221d0011116edf0151d9d887 | 24 - .../8b/30218a030d1d00111358d2931fee7772 | 45 - .../8b/307e12a0f41c00111565e8bbe12141cd | 24 - .../8b/8005e584011d00111358d2931fee7772 | 319 - .../8c/10214456201d00111c63a4b3c7bd9f5b | 24 - .../8c/a031ce3d091d00111358d2931fee7772 | 24 - .../8c/f0f13f7c201d00111c63a4b3c7bd9f5b | 0 .../8d/00ad5ee90a1d00111358d2931fee7772 | 668 -- .../8d/30b3c6fa0a1d00111358d2931fee7772 | 27 - .../8d/a03490220a1d00111358d2931fee7772 | 90 - .../8d/a035cf63e81c00111565e8bbe12141cd | 26 - .../8f/40aa3bace71c00111565e8bbe12141cd | 8 - .../8f/50f2b65e071d00111358d2931fee7772 | 90 - .../8f/a091a2f9221d0011116edf0151d9d887 | 34 - .../8f/d073fe2c091d00111358d2931fee7772 | 45 - .../9/006b4656201d00111c63a4b3c7bd9f5b | 24 - .../9/a0664fedf31c00111565e8bbe12141cd | 24 - .../90/11214456201d00111c63a4b3c7bd9f5b | 24 - .../90/60643642221d0011116edf0151d9d887 | 24 - .../90/60725431071d00111358d2931fee7772 | 90 - .../90/70dc0c97051d00111358d2931fee7772 | 90 - .../90/c0a1c1c50c1d00111358d2931fee7772 | 24 - .../90/f03dd29c0d1d00111358d2931fee7772 | 24 - .../92/e005862f051d00111358d2931fee7772 | 81 - .../93/31eb7620021d00111358d2931fee7772 | 81 - .../94/e0ee34570e1d00111358d2931fee7772 | 24 - .../95/207f5a56e71c00111565e8bbe12141cd | 0 .../95/60e7e246201d00111c63a4b3c7bd9f5b | 0 .../95/d0204252201d00111c63a4b3c7bd9f5b | 28 - .../96/408480030d1d00111358d2931fee7772 | 27 - .../96/7072e276f61c00111565e8bbe12141cd | 74 - .../96/a0cbc93fea1c00111565e8bbe12141cd | 0 .../97/41307220021d00111358d2931fee7772 | 24 - .../97/80dc81e20c1d00111358d2931fee7772 | 24 - .../97/e0464aff071d00111358d2931fee7772 | 81 - .../98/d05e8c68041d00111358d2931fee7772 | 168 - .../98/f0f4d3450b1d00111358d2931fee7772 | 27 - .../99/a0d4fdbf091d00111358d2931fee7772 | 27 - .../9a/60eca49c0d1d00111358d2931fee7772 | 90 - .../9a/d077ba46201d00111c63a4b3c7bd9f5b | 0 .../9a/d095eb68041d00111358d2931fee7772 | 48 - .../9c/00792b570e1d00111358d2931fee7772 | 34 - .../9d/001f74890b1d00111358d2931fee7772 | 169 - .../9d/2071cf64f41c00111565e8bbe12141cd | 74 - .../9d/c09a62ca041d00111358d2931fee7772 | 212 - .../9d/d040073efa1c00111358d2931fee7772 | 74 - .../9e/80d58e2d201d00111c63a4b3c7bd9f5b | 0 .../9e/d0d8ecfa0a1d00111358d2931fee7772 | 82 - .../9f/905f5c52201d00111c63a4b3c7bd9f5b | 24 - .../9f/9086ce3fea1c00111565e8bbe12141cd | 0 .../9f/f01d43da011d00111358d2931fee7772 | 26 - .../a/20e76ab00a1d00111358d2931fee7772 | 82 - .../a/6010a7000b1d00111358d2931fee7772 | 24 - .../a/90a2493c0b1d00111358d2931fee7772 | 82 - .../a/d0011472f31c00111565e8bbe12141cd | 0 .../a/e0af682d201d00111c63a4b3c7bd9f5b | 0 .../a0/802957dc041d00111358d2931fee7772 | 24 - .../a0/c0b2e8890b1d00111358d2931fee7772 | 24 - .../a1/1013781a0e1d00111358d2931fee7772 | 24 - .../a1/20e301dae91c00111565e8bbe12141cd | 24 - .../a2/6003e763e81c00111565e8bbe12141cd | 24 - .../a2/6087976a201d00111c63a4b3c7bd9f5b | 0 .../a2/80731671e91c00111565e8bbe12141cd | 24 - .../a2/c0b4786a201d00111c63a4b3c7bd9f5b | 0 .../a3/a0b391000b1d00111358d2931fee7772 | 45 - .../a4/507e34ace71c00111565e8bbe12141cd | 24 - .../a5/407f3356201d00111c63a4b3c7bd9f5b | 90 - .../a5/6048747c201d00111c63a4b3c7bd9f5b | 0 .../a5/a0ee822d201d00111c63a4b3c7bd9f5b | 0 .../a5/c068a62c091d00111358d2931fee7772 | 655 -- .../a5/e0e038b6221d0011116edf0151d9d887 | 24 - .../a6/f01a0872f31c00111565e8bbe12141cd | 0 .../a9/c03994f9221d0011116edf0151d9d887 | 74 - .../a9/f081f8c0011d00111358d2931fee7772 | 90 - .../aa/50c31897051d00111358d2931fee7772 | 81 - .../aa/601953b00a1d00111358d2931fee7772 | 45 - .../aa/b00c835ee91c00111565e8bbe12141cd | 90 - .../aa/e0f2b33d091d00111358d2931fee7772 | 45 - .../aa/f01fc183f61c00111565e8bbe12141cd | 34 - .../ab/a0dc39a1f31c00111565e8bbe12141cd | 0 .../ab/d0b07a220a1d00111358d2931fee7772 | 27 - .../ab/e0faff5c041d00111358d2931fee7772 | 45 - .../ac/00d10572f31c00111565e8bbe12141cd | 0 .../ac/50ec17c0091d00111358d2931fee7772 | 24 - .../ac/b0ce673d091d00111358d2931fee7772 | 655 -- .../ac/c06b7f220a1d00111358d2931fee7772 | 45 - .../ad/004d62d8221d0011116edf0151d9d887 | 82 - .../ad/30e1a683f61c00111565e8bbe12141cd | 28 - .../ae/10925dd8221d0011116edf0151d9d887 | 24 - .../b/10ddb745ed1c00111565e8bbe12141cd | 8 - .../b/601f86c50c1d00111358d2931fee7772 | 45 - .../b/80df1bffe91c00111565e8bbe12141cd | 26 - .../b0/80c9233efa1c00111358d2931fee7772 | 83 - .../b0/80d53c1e091d00111358d2931fee7772 | 26 - .../b1/3082eed9e91c00111565e8bbe12141cd | 26 - .../b1/a0521f89e71c00111565e8bbe12141cd | 24 - .../b1/e016edb4e91c00111565e8bbe12141cd | 26 - .../b1/f08b51f1091d00111358d2931fee7772 | 24 - .../b2/80d904c0091d00111358d2931fee7772 | 45 - .../b2/e0fe33b6221d0011116edf0151d9d887 | 24 - .../b2/f0922fff071d00111358d2931fee7772 | 48 - .../b3/c0793adc041d00111358d2931fee7772 | 48 - .../b3/c0bd4b52201d00111c63a4b3c7bd9f5b | 74 - .../b3/f0a1dd64f41c00111565e8bbe12141cd | 34 - .../b4/9095a15e071d00111358d2931fee7772 | 26 - .../b4/91dba4f9221d0011116edf0151d9d887 | 8 - .../b4/b0edd883f61c00111565e8bbe12141cd | 83 - .../b4/e07aefd70a1d00111358d2931fee7772 | 24 - .../b5/703d956a201d00111c63a4b3c7bd9f5b | 0 .../b5/70b9e463e81c00111565e8bbe12141cd | 90 - .../b5/a0af9df9221d0011116edf0151d9d887 | 74 - .../b5/c0f5b53c071d00111358d2931fee7772 | 26 - .../b6/20304075221d0011116edf0151d9d887 | 24 - .../b6/306bffa1221d0011116edf0151d9d887 | 27 - .../b6/60f33342221d0011116edf0151d9d887 | 27 - .../b6/a07a5c7c201d00111c63a4b3c7bd9f5b | 0 .../b7/20e0e7c0011d00111358d2931fee7772 | 26 - .../b7/403cb03f021d00111358d2931fee7772 | 45 - .../b7/608f90fa071d00111358d2931fee7772 | 81 - .../b7/609eabb5091d00111358d2931fee7772 | 82 - .../b7/c023eb890b1d00111358d2931fee7772 | 24 - .../b8/d0d1f1b4e91c00111565e8bbe12141cd | 42 - .../b9/c0bfbcc50c1d00111358d2931fee7772 | 24 - .../ba/00c39a030d1d00111358d2931fee7772 | 90 - .../ba/5060d9d10d1d00111358d2931fee7772 | 82 - .../ba/707359dc041d00111358d2931fee7772 | 24 - .../ba/d0077756e71c00111565e8bbe12141cd | 0 .../bb/300d10a0f41c00111565e8bbe12141cd | 27 - .../bb/b00312e20c1d00111358d2931fee7772 | 205 - .../bb/c0f045edf31c00111565e8bbe12141cd | 74 - .../bb/d0e5b4440a1d00111358d2931fee7772 | 24 - .../bb/f0aedf68041d00111358d2931fee7772 | 26 - .../bc/203917a0f41c00111565e8bbe12141cd | 83 - .../bc/40307220021d00111358d2931fee7772 | 90 - .../bc/908e9c3dee1c00111565e8bbe12141cd | 103 - .../bd/10215bd8221d0011116edf0151d9d887 | 24 - .../bd/e0eab5ca041d00111358d2931fee7772 | 48 - .../be/50d45d1a0e1d00111358d2931fee7772 | 27 - .../bf/c06148edf31c00111565e8bbe12141cd | 34 - .../c/505d1ac0091d00111358d2931fee7772 | 24 - .../c0/a0fa34a1f31c00111565e8bbe12141cd | 0 .../c0/f0dd9dd10d1d00111358d2931fee7772 | 27 - .../c1/0051e1360a1d00111358d2931fee7772 | 24 - .../c1/109becc0011d00111358d2931fee7772 | 45 - .../c1/40c30da0f41c00111565e8bbe12141cd | 34 - .../c1/d07160e20c1d00111358d2931fee7772 | 27 - .../c1/e0ebf1d70a1d00111358d2931fee7772 | 24 - .../c2/80625a20021d00111358d2931fee7772 | 26 - .../c2/a086112d091d00111358d2931fee7772 | 24 - .../c2/e0f8d69c0d1d00111358d2931fee7772 | 24 - .../c3/2079f771f31c00111565e8bbe12141cd | 0 .../c3/4024ed9fe61c00111565e8bbe12141cd | 206 - .../c3/502604a0f41c00111565e8bbe12141cd | 74 - .../c3/901a8a2d201d00111c63a4b3c7bd9f5b | 0 .../c4/a0c7875ee91c00111565e8bbe12141cd | 24 - .../c5/3099ffd9e91c00111565e8bbe12141cd | 90 - .../c5/a0fd30220a1d00111358d2931fee7772 | 668 -- .../c6/0099c53f021d00111358d2931fee7772 | 90 - .../c6/a0d751edf31c00111565e8bbe12141cd | 83 - .../c6/a0f517ace71c00111565e8bbe12141cd | 42 - .../c6/d025775ee91c00111565e8bbe12141cd | 42 - .../c7/10a2751a0e1d00111358d2931fee7772 | 24 - .../c8/8046db76f61c00111565e8bbe12141cd | 74 - .../c8/900e1f3efa1c00111358d2931fee7772 | 24 - .../c8/90bb969c0d1d00111358d2931fee7772 | 45 - .../c9/606e0aedf31c00111565e8bbe12141cd | 161 - .../c9/f00fc5e90a1d00111358d2931fee7772 | 24 - .../cb/50e84f1e091d00111358d2931fee7772 | 24 - .../cb/90ee5952201d00111c63a4b3c7bd9f5b | 27 - .../cb/e0c38af9221d0011116edf0151d9d887 | 24 - .../cc/00e7d864f41c00111565e8bbe12141cd | 74 - .../cc/a0ce1c04e91c00111565e8bbe12141cd | 81 - .../cc/f03817a2221d0011116edf0151d9d887 | 24 - .../cd/207668b00a1d00111358d2931fee7772 | 24 - .../ce/c0f25a9d091d00111358d2931fee7772 | 8 - .../ce/f0bfead70a1d00111358d2931fee7772 | 24 - .../cf/b0eb5ada011d00111358d2931fee7772 | 24 - .../cf/b11c4dedf31c00111565e8bbe12141cd | 24 - .../d/b04ff2890b1d00111358d2931fee7772 | 82 - .../d/f0cef85c041d00111358d2931fee7772 | 26 - .../d0/30535356e71c00111565e8bbe12141cd | 0 .../d2/8041d33fea1c00111565e8bbe12141cd | 0 .../d3/8000d746201d00111c63a4b3c7bd9f5b | 0 .../d3/c0f857440a1d00111358d2931fee7772 | 668 -- .../d3/d08faaf0041d00111358d2931fee7772 | 24 - .../d3/f014cb9ff41c00111565e8bbe12141cd | 161 - .../d4/30eb7620021d00111358d2931fee7772 | 24 - .../d4/60b42a5d041d00111358d2931fee7772 | 24 - .../d4/60b814faf61c00111565e8bbe12141cd | 166 - .../d4/60c407570e1d00111358d2931fee7772 | 28 - .../d4/7072a4b5091d00111358d2931fee7772 | 24 - .../d4/a0e2173efa1c00111358d2931fee7772 | 27 - .../d4/e00b4f9d091d00111358d2931fee7772 | 24 - .../d5/40a3541e091d00111358d2931fee7772 | 0 .../d5/801a6152201d00111c63a4b3c7bd9f5b | 83 - .../d6/104b07e30a1d00111358d2931fee7772 | 24 - .../d6/c0d1c1ca041d00111358d2931fee7772 | 90 - .../d7/703e1950011d00111358d2931fee7772 | 352 - .../d7/a0eecc76f61c00111565e8bbe12141cd | 28 - .../d7/b151e9450b1d00111358d2931fee7772 | 24 - .../d7/e047f72c091d00111358d2931fee7772 | 27 - .../d8/41f7b2000b1d00111358d2931fee7772 | 82 - .../d8/5003797c201d00111c63a4b3c7bd9f5b | 0 .../d9/00d76856e71c00111565e8bbe12141cd | 0 .../da/c0a0b9440a1d00111358d2931fee7772 | 24 - .../da/d0c6539d091d00111358d2931fee7772 | 24 - .../db/803997220a1d00111358d2931fee7772 | 24 - .../db/c007e7450b1d00111358d2931fee7772 | 90 - .../db/e0192d3c0b1d00111358d2931fee7772 | 45 - .../dc/1000d8d9011d00111358d2931fee7772 | 173 - .../dc/20ea40f1091d00111358d2931fee7772 | 45 - .../dc/408f6cd70a1d00111358d2931fee7772 | 668 -- .../dc/b0600371e91c00111565e8bbe12141cd | 42 - .../dc/c0fa1089e71c00111565e8bbe12141cd | 42 - .../dc/d055519d091d00111358d2931fee7772 | 24 - .../dd/20d944a1f31c00111565e8bbe12141cd | 0 .../dd/90f20069041d00111358d2931fee7772 | 24 - .../dd/f0c714a2221d0011116edf0151d9d887 | 90 - .../de/00e5d0890b1d00111358d2931fee7772 | 45 - .../de/80ef4f98201d00111c63a4b3c7bd9f5b | 74 - .../de/b01eb08ce01c00111cadaab22f5679ad | 161 - .../df/704d0f97051d00111358d2931fee7772 | 24 - .../df/e0d25bc3ec1c00111565e8bbe12141cd | 8 - .../e/10a889f0091d00111358d2931fee7772 | 121 - .../e0/30f735ffe91c00111565e8bbe12141cd | 42 - .../e2/c0efd52e051d00111358d2931fee7772 | 121 - .../e2/e0494ada011d00111358d2931fee7772 | 45 - .../e3/10be26570e1d00111358d2931fee7772 | 74 - .../e3/20878e7c201d00111c63a4b3c7bd9f5b | 0 .../e3/5049fb190b1d00111358d2931fee7772 | 668 -- .../e3/e0e185f9221d0011116edf0151d9d887 | 27 - .../e4/4042987b0a1d00111358d2931fee7772 | 668 -- .../e4/c078792d201d00111c63a4b3c7bd9f5b | 0 .../e4/c0f0b0d10d1d00111358d2931fee7772 | 45 - .../e4/e0840789e71c00111565e8bbe12141cd | 26 - .../e5/403b5f1a0b1d00111358d2931fee7772 | 24 - .../e5/d07589b9fe1c00111358d2931fee7772 | 164 - .../e6/30ee6b2f051d00111358d2931fee7772 | 48 - .../e6/e0adffc0011d00111358d2931fee7772 | 24 - .../e8/10bb6e99221d0011116edf0151d9d887 | 83 - .../e8/30f6631a0b1d00111358d2931fee7772 | 24 - .../e8/60a5d4d10d1d00111358d2931fee7772 | 24 - .../e8/702684e20c1d00111358d2931fee7772 | 82 - .../e8/f0fc53f1091d00111358d2931fee7772 | 24 - .../e9/e03be3fa0a1d00111358d2931fee7772 | 90 - .../ea/f04a812f051d00111358d2931fee7772 | 24 - .../eb/0001ce1f021d00111358d2931fee7772 | 352 - .../eb/c03b2aff071d00111358d2931fee7772 | 26 - .../eb/f012e064f41c00111565e8bbe12141cd | 27 - .../ec/70f37ec50c1d00111358d2931fee7772 | 27 - .../ec/d00106dae91c00111565e8bbe12141cd | 81 - .../ec/d0f53098201d00111c63a4b3c7bd9f5b | 74 - .../ed/002ef43dfa1c00111358d2931fee7772 | 28 - .../ed/806d471a0b1d00111358d2931fee7772 | 27 - .../ed/a05f852d201d00111c63a4b3c7bd9f5b | 0 .../ee/a0e7443c0b1d00111358d2931fee7772 | 24 - .../ef/f02a88fa071d00111358d2931fee7772 | 90 - .../f0/203376360a1d00111358d2931fee7772 | 668 -- .../f0/60e5eb63e81c00111565e8bbe12141cd | 81 - .../f0/701d5f20021d00111358d2931fee7772 | 45 - .../f0/d067eafa0a1d00111358d2931fee7772 | 24 - .../f1/000604dae91c00111565e8bbe12141cd | 24 - .../f1/60b62256201d00111c63a4b3c7bd9f5b | 45 - .../f1/60d1b496051d00111358d2931fee7772 | 37 - .../f1/d02a3bb6221d0011116edf0151d9d887 | 82 - .../f1/f0206b56e71c00111565e8bbe12141cd | 0 .../f2/60d53842221d0011116edf0151d9d887 | 24 - .../f2/70ed4bb00a1d00111358d2931fee7772 | 27 - .../f2/b08cc6ca041d00111358d2931fee7772 | 24 - .../f2/d000adf0041d00111358d2931fee7772 | 24 - .../f3/2187c869ea1c00111565e8bbe12141cd | 0 .../f3/40f7b2000b1d00111358d2931fee7772 | 24 - .../f3/50903d42221d0011116edf0151d9d887 | 83 - .../f3/e0c92998201d00111c63a4b3c7bd9f5b | 28 - .../f4/b0284777eb1c00111565e8bbe12141cd | 94 - .../f4/c0bc315e071d00111358d2931fee7772 | 210 - .../f4/f09ec2e90a1d00111358d2931fee7772 | 24 - .../f5/5163b95e071d00111358d2931fee7772 | 24 - .../f6/304e0831071d00111358d2931fee7772 | 26 - .../f6/90d9919c0d1d00111358d2931fee7772 | 27 - .../f6/f0ba81fa0a1d00111358d2931fee7772 | 668 -- .../f7/00eeac3d091d00111358d2931fee7772 | 27 - .../f7/3067661a0b1d00111358d2931fee7772 | 82 - .../f7/e06f36b6221d0011116edf0151d9d887 | 24 - .../f8/207890f0041d00111358d2931fee7772 | 48 - .../f8/702cde46201d00111c63a4b3c7bd9f5b | 0 .../f9/40bb12b6221d0011116edf0151d9d887 | 27 - .../f9/806b7fe20c1d00111358d2931fee7772 | 24 - .../f9/f0aebe83f61c00111565e8bbe12141cd | 74 - .../fb/20d758d8221d0011116edf0151d9d887 | 90 - .../fb/40e85d31071d00111358d2931fee7772 | 81 - .../fb/d0295f75221d0011116edf0151d9d887 | 0 .../fb/e059c7e90a1d00111358d2931fee7772 | 82 - .../fc/e01e02c1011d00111358d2931fee7772 | 81 - .../fd/e03ee764f41c00111565e8bbe12141cd | 24 - .../fe/b0878a000b1d00111358d2931fee7772 | 27 - .../ff/a15507b5e91c00111565e8bbe12141cd | 8 - .../ff/d077cf83f61c00111565e8bbe12141cd | 24 - .../33/85/13/9/79/61/1e/history.index | Bin 90 -> 0 bytes .../Boot/.indexes/33/85/13/9/f0/history.index | Bin 75 -> 0 bytes .../Boot/.indexes/33/e5/f9/e7/history.index | Bin 73 -> 0 bytes .../Boot/.indexes/33/e5/f9/history.index | Bin 69 -> 0 bytes .../Boot/.indexes/33/e5/history.index | Bin 56 -> 0 bytes .../.projects/Boot/.indexes/33/history.index | Bin 182 -> 0 bytes .../.indexes/7/85/13/9/79/61/1e/history.index | Bin 160 -> 0 bytes .../Boot/.indexes/7/85/13/9/f0/history.index | Bin 145 -> 0 bytes .../Boot/.indexes/7/c5/f9/e7/history.index | Bin 143 -> 0 bytes .../Boot/.indexes/7/c5/f9/history.index | Bin 139 -> 0 bytes .../Boot/.indexes/7/c5/history.index | Bin 126 -> 0 bytes .../Boot/.indexes/7/e5/f9/e7/history.index | Bin 311 -> 0 bytes .../Boot/.indexes/7/e5/f9/history.index | Bin 307 -> 0 bytes .../Boot/.indexes/7/e5/history.index | Bin 294 -> 0 bytes .../.projects/Boot/.indexes/7/history.index | Bin 390 -> 0 bytes .../Boot/.indexes/e5/f9/e7/history.index | Bin 115 -> 0 bytes .../.projects/Boot/.indexes/properties.index | Bin 449 -> 0 bytes .../33/85/5e/13/9/79/61/1e/history.index | Bin 319 -> 0 bytes .../.indexes/33/85/5e/13/9/f0/history.index | Bin 304 -> 0 bytes .../.indexes/33/85/5e/3f/e4/history.index | Bin 313 -> 0 bytes .../.projects/Prog/.indexes/33/history.index | Bin 1046 -> 0 bytes .../7/33/85/5e/13/9/79/61/1e/history.index | Bin 107 -> 0 bytes .../.indexes/7/33/85/5e/13/9/f0/history.index | Bin 92 -> 0 bytes .../.indexes/7/33/85/5e/3f/e4/history.index | Bin 101 -> 0 bytes .../Prog/.indexes/7/33/history.index | Bin 53 -> 0 bytes .../7/85/5e/13/9/79/61/1e/history.index | Bin 221 -> 0 bytes .../.indexes/7/85/5e/13/9/f0/history.index | Bin 206 -> 0 bytes .../Prog/.indexes/7/85/5e/3f/e4/history.index | Bin 215 -> 0 bytes .../Prog/.indexes/7/85/history.index | Bin 171 -> 0 bytes .../.projects/Prog/.indexes/7/history.index | Bin 582 -> 0 bytes .../.indexes/85/5e/3f/de/properties.index | Bin 299 -> 0 bytes .../.projects/Prog/.indexes/85/history.index | Bin 458 -> 0 bytes .../Prog/.indexes/85/properties.index | Bin 135 -> 0 bytes .../.projects/Prog/.indexes/history.index | Bin 1172 -> 0 bytes .../.projects/Prog/.indexes/properties.index | Bin 1250 -> 0 bytes .../.projects/Prog/.markers | Bin 444 -> 0 bytes .../.root/.indexes/history.version | 1 - .../.root/.indexes/properties.index | Bin 104 -> 0 bytes .../.root/.indexes/properties.version | 1 - .../org.eclipse.core.resources/.root/10.tree | Bin 21996 -> 0 bytes .../.safetable/org.eclipse.core.resources | Bin 776 -> 0 bytes .../org.eclipse.cdt.codan.core.prefs | 66 - .../.settings/org.eclipse.cdt.core.prefs | 4 - .../org.eclipse.cdt.core.prj-Boot.prefs | 3 - .../org.eclipse.cdt.core.prj-Prog.prefs | 3 - .../org.eclipse.cdt.debug.core.prefs | 3 - .../.settings/org.eclipse.cdt.make.core.prefs | 3 - .../org.eclipse.cdt.managedbuilder.core.prefs | 6 - .../.settings/org.eclipse.cdt.mylyn.ui.prefs | 3 - .../.settings/org.eclipse.cdt.ui.prefs | 10 - .../org.eclipse.cdt.ui.prj-Prog.prefs | 4 - .../org.eclipse.core.resources.prefs | 4 - .../.settings/org.eclipse.debug.core.prefs | 6 - .../.settings/org.eclipse.debug.ui.prefs | 5 - .../org.eclipse.epp.usagedata.recording.prefs | 3 - .../org.eclipse.mylyn.context.core.prefs | 3 - .../org.eclipse.mylyn.monitor.ui.prefs | 3 - .../.settings/org.eclipse.rse.core.prefs | 3 - .../.settings/org.eclipse.rse.ui.prefs | 3 - .../.settings/org.eclipse.search.prefs | 3 - .../.settings/org.eclipse.team.cvs.ui.prefs | 3 - .../.settings/org.eclipse.team.ui.prefs | 3 - .../org.eclipse.tm.terminal.view.prefs | 9 - .../.settings/org.eclipse.ui.editors.prefs | 5 - .../.settings/org.eclipse.ui.ide.prefs | 10 - .../.settings/org.eclipse.ui.prefs | 3 - .../.settings/org.eclipse.ui.workbench.prefs | 6 - .../.launches/Microboot Download.launch | 12 - .../.launches/OpenOCD Flash.launch | 10 - .../org.eclipse.debug.ui/dialog_settings.xml | 35 - .../launchConfigurationHistory.xml | 25 - .../upload0.csv | 255 - .../upload1.csv | 249 - .../upload10.csv | 251 - .../upload11.csv | 251 - .../upload12.csv | 251 - .../upload13.csv | 251 - .../upload14.csv | 276 - .../upload15.csv | 251 - .../upload16.csv | 265 - .../upload17.csv | 261 - .../upload2.csv | 246 - .../upload3.csv | 273 - .../upload4.csv | 263 - .../upload5.csv | 276 - .../upload6.csv | 276 - .../upload7.csv | 276 - .../upload8.csv | 267 - .../upload9.csv | 276 - .../usagedata.csv | 171 - .../dialog_settings.xml | 41 - .../2011/12/48/refactorings.history | 3 - .../.workspace/2011/12/48/refactorings.index | 10 - .../dialog_settings.xml | 7 - .../.plugins/org.eclipse.rse.core/.log | 0 ...al.core.RSELocalConnectionInitializer.mark | 0 .../FP.local.files_0/node.properties | 57 - .../H.local_16/node.properties | 25 - .../PRF.voorburg-pc_3/node.properties | 7 - .../.plugins/org.eclipse.rse.ui/.log | 0 .../org.eclipse.search/dialog_settings.xml | 32 - .../dialog_settings.xml | 10 - .../dialog_settings.xml | 5 - .../dialog_settings.xml | 32 - .../dialog_settings.xml | 27 - .../org.eclipse.ui.workbench/workbench.xml | 305 - .../org.eclipse.ui.workbench/workingsets.xml | 4 - .../.metadata/version.ini | 1 - .../Boot/.cproject | 94 - .../Boot/.project | 125 - .../Boot/.settings/org.eclipse.cdt.core.prefs | 163 - .../Boot/.settings/org.eclipse.cdt.ui.prefs | 4 - .../Boot/bin/openbtl_olimex_stm32p103.map | 545 -- .../Boot/bin/openbtl_olimex_stm32p103.srec | 295 - .../Boot/cmd/flash.cfg | 20 - .../Boot/config.h | 128 - .../Boot/hooks.c | 179 - .../Boot/ide/readme.txt | 10 - .../Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.c | 784 -- .../Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.h | 1818 ---- .../ST/STM32F10x/Release_Notes.html | 284 - .../DeviceSupport/ST/STM32F10x/stm32f10x.h | 8336 ----------------- .../ST/STM32F10x/system_stm32f10x.c | 1094 --- .../ST/STM32F10x/system_stm32f10x.h | 98 - .../Boot/lib/CMSIS/CMSIS debug support.htm | 243 - .../Boot/lib/CMSIS/CMSIS_changes.htm | 320 - .../lib/CMSIS/Documentation/CMSIS_Core.htm | 1337 --- .../Boot/lib/CMSIS/License.doc | Bin 39936 -> 0 bytes .../Boot/main.c | 193 - .../Prog/.cproject | 93 - .../Prog/.project | 82 - .../Prog/.settings/org.eclipse.cdt.core.prefs | 163 - .../Prog/.settings/org.eclipse.cdt.ui.prefs | 4 - .../Prog/bin/demoprog_olimex_stm32p103.map | 2009 ---- .../Prog/bin/demoprog_olimex_stm32p103.srec | 282 - .../Prog/boot.c | 324 - .../Prog/boot.h | 42 - .../Prog/cstart.c | 91 - .../Prog/header.h | 48 - .../Prog/ide/readme.txt | 16 - .../Prog/irq.c | 97 - .../Prog/irq.h | 43 - .../Prog/led.c | 103 - .../Prog/led.h | 42 - .../Prog/lib/stdio_mini.c | 668 -- .../CMSIS/CM3/CoreSupport/core_cm3.c | 784 -- .../CMSIS/CM3/CoreSupport/core_cm3.h | 1818 ---- .../ST/STM32F10x/Release_Notes.html | 284 - .../DeviceSupport/ST/STM32F10x/stm32f10x.h | 8336 ----------------- .../ST/STM32F10x/system_stm32f10x.c | 1094 --- .../ST/STM32F10x/system_stm32f10x.h | 98 - .../CMSIS/CMSIS debug support.htm | 243 - .../lib/stdperiphlib/CMSIS/CMSIS_changes.htm | 320 - .../CMSIS/Documentation/CMSIS_Core.htm | 1337 --- .../Prog/lib/stdperiphlib/CMSIS/License.doc | Bin 39936 -> 0 bytes .../Release_Notes.html | 342 - .../STM32F10x_StdPeriph_Driver/inc/misc.h | 220 - .../inc/stm32f10x_adc.h | 483 - .../inc/stm32f10x_bkp.h | 195 - .../inc/stm32f10x_can.h | 697 -- .../inc/stm32f10x_cec.h | 210 - .../inc/stm32f10x_crc.h | 94 - .../inc/stm32f10x_dac.h | 317 - .../inc/stm32f10x_dbgmcu.h | 119 - .../inc/stm32f10x_dma.h | 439 - .../inc/stm32f10x_exti.h | 184 - .../inc/stm32f10x_flash.h | 426 - .../inc/stm32f10x_fsmc.h | 733 -- .../inc/stm32f10x_gpio.h | 385 - .../inc/stm32f10x_i2c.h | 684 -- .../inc/stm32f10x_iwdg.h | 140 - .../inc/stm32f10x_pwr.h | 156 - .../inc/stm32f10x_rcc.h | 727 -- .../inc/stm32f10x_rtc.h | 135 - .../inc/stm32f10x_sdio.h | 531 -- .../inc/stm32f10x_spi.h | 487 - .../inc/stm32f10x_tim.h | 1164 --- .../inc/stm32f10x_usart.h | 412 - .../inc/stm32f10x_wwdg.h | 115 - .../STM32F10x_StdPeriph_Driver/src/misc.c | 225 - .../src/stm32f10x_adc.c | 1307 --- .../src/stm32f10x_bkp.c | 308 - .../src/stm32f10x_can.c | 1415 --- .../src/stm32f10x_cec.c | 433 - .../src/stm32f10x_crc.c | 160 - .../src/stm32f10x_dac.c | 571 -- .../src/stm32f10x_dbgmcu.c | 162 - .../src/stm32f10x_dma.c | 714 -- .../src/stm32f10x_exti.c | 269 - .../src/stm32f10x_flash.c | 1684 ---- .../src/stm32f10x_fsmc.c | 866 -- .../src/stm32f10x_gpio.c | 650 -- .../src/stm32f10x_i2c.c | 1331 --- .../src/stm32f10x_iwdg.c | 190 - .../src/stm32f10x_pwr.c | 307 - .../src/stm32f10x_rcc.c | 1470 --- .../src/stm32f10x_rtc.c | 339 - .../src/stm32f10x_sdio.c | 799 -- .../src/stm32f10x_spi.c | 908 -- .../src/stm32f10x_tim.c | 2890 ------ .../src/stm32f10x_usart.c | 1058 --- .../src/stm32f10x_wwdg.c | 224 - .../Prog/lib/stdperiphlib/stm32f10x_conf.h | 77 - .../Prog/main.c | 214 - .../Prog/memory.x | 38 - .../Prog/timer.c | 115 - .../Prog/timer.h | 44 - .../Prog/uart.c | 121 - .../Prog/uart.h | 43 - .../Prog/vectors.c | 166 - 843 files changed, 112571 deletions(-) delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.lock delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.log delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.mylyn/repositories.xml.zip delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.codan.ui/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/Boot.1322834671001.pdom delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/Prog.1322831217304.pdom delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/Boot.sc delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/Prog.sc delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/Boot.build.log delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/Prog.build.log delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/302f3cf1091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/70994e1a0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/70f636a1f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/804030d8221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/f035cf3f021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/f0a432570e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/302c66b00a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/602d9d2d201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/a058473c0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/60252d5d041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/7079cdd10d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/c032227c0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/6034d2d10d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/909d1c3efa1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/e06e5a75221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/80021471e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/c010082d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/8046912d201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/f0b60204e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/8034d03c071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/90f50097051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/00dc4856201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/10c046ffe91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/403939ace71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/00ce7c1a0e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/9015cc3fea1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/70458efa071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/7055a2000b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/10ad587cff1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/703ff89ff41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/d009b9e4f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/20c814a0f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/20ec95440a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/b076c93d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/e0b71172f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/a0f7132d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/f0c22d570e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/00a8a240011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/20fbfe76f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/5081ab3f021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/10450177f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/4032521e091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/7066e47b0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/70e32413f71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/d09b3db6221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/201632030d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/70d6a0220a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/b1841a04e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/c111bc440a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/30cff776f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/709de046201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/9061d663e81c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/f0425375221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/f0fc0c72f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/90f12fa1f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/20968bf0041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/9055eedb041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/9082f7d1001d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/a0ee8eb5091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/c0d9bf3d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/e037ed360a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/203e379d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/60983ed8221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/80b11b56201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/90630369041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/50e8eb76f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/d024de9c0d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/f135cf3f021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/000a49ffe91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/f0b431b6221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/f03550ffe91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/30753b75221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/8071d946201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/90ee3e31071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/e0710704e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/e0d4a5f0041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/10160172f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/d09a6175221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/1039b583f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/a0aa67fa071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/f022627cff1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/e01de8fa0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/4070bdbf091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/7047733c071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/105d23b6221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/40be7d7c201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/602da9b5091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/e0afd8450b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/b07d855ee91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/00e4bde90a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/60c14f99221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/70774d99221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/80911171e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/80e2db46201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/e04656f1091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/702b43a1f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/c0fb0b3efa1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/802fcbd10d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/c04aaff0041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/00349d030d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/f0eea1030d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/0067f0eafe1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/106277fa071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/80118e6a201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/a08a307c0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/b0ec28a1f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/f01a4ff1091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/7024bbd70a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/80b854dc041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/c014277c0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/39/a0b97f6a201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/30e63d75221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/404540a1f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/71bd1871e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/c0e46375221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/40c2642f051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/e0ace5fa0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/10847a1a0e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/4055c9d70a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/c0337e56e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/d068e6890b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/f0bb832f051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/90512342221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a05507b5e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a07302b5e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/7090411e091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/a1c7875ee91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/e0c391b5001d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/5065de3c071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/604868cdfe1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/00e0de360a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/b0deef890b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/42/a0fb327c0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/60e0e5e20a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/70efd43c071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/b02900b5e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/d0c43eedf31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/70cc926a201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/905dd53d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/00a4233c0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/10a79a440a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/70ca42b5091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/312c66b00a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/60e2f3af0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/708f45000b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/3045c864f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/a08473e20c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/a0f575e20c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/4087a8e90a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/70c6a4000b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/f0d97e2f051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/30456599221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/50b6621a0e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/706a285d041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/e08219a2221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/e0093aedf31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b05e297c0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b0bb3d3c0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/2058731a0e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/40a85b99221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/40ac611a0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/b051e9450b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/30c196c50c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/10da04e30a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/80a95e52201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/a00cee450b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/a037fc68041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/f0a7ad0f001d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/30d71a570e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/4014571e091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/3064fbe20a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/a0d59f64f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/009509e30a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/2088d0360a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/30f3f8e20a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/40c836ace71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/60b5459c0d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/a0e11c89e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/e03cfdc0011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/51/e138a4030d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/2021141a0e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/d0bd80b5091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/507c5499221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/60a215c0091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/c0c91504e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a01313ace71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a0c6f968041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/b01c4dedf31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/b1eb5ada011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/c03056da011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/d0a6f6d70a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/502d5931071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/00dc5fd8221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/104a6c99221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/3012309d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/40a5a3e90a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c010569d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c03adc3b0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/e06a725ee91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/0055c0e90a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/80f8b3d70a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/a0388a5ee91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/e0460f72f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/f0beaeca041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/0047dafe071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/1064ef93ea1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/d0a939570e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/f0c44dffe91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/500d32ace71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/8082906a201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/d03d1ea2221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/f017acf8071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/30ad3da1f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/910d2489e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/a04dc43c071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/a0fd07dae91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/d00d8df9221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/4003ee71f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/b0b8fdb4e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/f07053f9061d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/90b2182d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/a0d58e450b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/c0c27b56e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/e07433dc041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/50747b7c201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/b0ebc3c50c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/e09a4c9d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/60d65b98201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/b010c53fea1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/714d0f97051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/10ea8afa071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/60325299221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/7001a2b5091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/a0c32189e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/d01a3c570e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/d081ef360a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/e0b758f1091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/c071f778e01c00111cadaab22f5679ad delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/90dba4f9221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/c0b951d10d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/e0f31ba2221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6a/20dfcdfa0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/00c07b96051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/500cede20a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/007b4bffe91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/7062e709001d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/40005fb00a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/602e5edc041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/c011bc440a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/e014003efa1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/408fc05e071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/a0a45752201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/306ace9c091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/405e30c50c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/e048ab440a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/00be64d8221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/603113c0091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/c034fc70e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/50774d1e091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/515d1ac0091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/b07cd683f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/70aa5498201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/20d02ef0041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/b02c403c0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/d088e964f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/302d9ce20a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/60655998201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/502fee63e81c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/b0f0f996051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/006c7cf9221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/60bca6b5091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/60b9767c201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/e05ce264f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/20aef5d9e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/79/b0cf84b8011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/507646ff071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/8050a65e071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/a03f1f04e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/e02ec330071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/200b99c50c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/c042c4ca041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/0012cb9c0d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/a0c25252201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/202604a2221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/40ca5c1a0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/50205e98201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/b0c2eb450b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/50bc5631071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/90ecd23d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/000ac83f021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/601bdc3c071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/70bd1871e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/900d2489e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/d05365e20c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e038a4030d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/81/c014c446201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/30cdcb360a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/6020a3220a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/81c9233efa1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/e04bc883f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/e0a03bff071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/206fc7890b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/3040fa76f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/6021e97b0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/b0841a04e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/50916098201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/10a7613f021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/60fafc9ff41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/9041162d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/d0efaf02f71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/6074e963e81c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/5063b95e071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/b0fdc8ca041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/d0f2f1360a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/400c395d041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/907e92220a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/c0a158da011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/104b48ff071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/10cd4975221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/30218a030d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/307e12a0f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/8005e584011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/10214456201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/a031ce3d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/f0f13f7c201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/00ad5ee90a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/30b3c6fa0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/a03490220a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/a035cf63e81c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/40aa3bace71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/50f2b65e071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/a091a2f9221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/d073fe2c091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/006b4656201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/a0664fedf31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/11214456201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/60643642221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/60725431071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/70dc0c97051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/c0a1c1c50c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/f03dd29c0d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/e005862f051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/31eb7620021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/e0ee34570e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/207f5a56e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/60e7e246201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/d0204252201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/408480030d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/7072e276f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/a0cbc93fea1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/41307220021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/80dc81e20c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/e0464aff071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/d05e8c68041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/f0f4d3450b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/a0d4fdbf091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/60eca49c0d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/d077ba46201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/d095eb68041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/00792b570e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/001f74890b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/2071cf64f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/c09a62ca041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/d040073efa1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/80d58e2d201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/d0d8ecfa0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/905f5c52201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/9086ce3fea1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/f01d43da011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/20e76ab00a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/6010a7000b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/90a2493c0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/d0011472f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/e0af682d201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/802957dc041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/c0b2e8890b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/1013781a0e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/20e301dae91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/6003e763e81c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/6087976a201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/80731671e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/c0b4786a201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/a0b391000b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/507e34ace71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/407f3356201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/6048747c201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/a0ee822d201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/c068a62c091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/e0e038b6221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/f01a0872f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/c03994f9221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/f081f8c0011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/50c31897051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/601953b00a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/b00c835ee91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/e0f2b33d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/f01fc183f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/a0dc39a1f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/d0b07a220a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/e0faff5c041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/00d10572f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/50ec17c0091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/b0ce673d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/c06b7f220a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/004d62d8221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/30e1a683f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/10925dd8221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/10ddb745ed1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/601f86c50c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/80df1bffe91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/80c9233efa1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/80d53c1e091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/3082eed9e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/a0521f89e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/e016edb4e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/f08b51f1091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/80d904c0091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/e0fe33b6221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/f0922fff071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/c0793adc041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/c0bd4b52201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/f0a1dd64f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/9095a15e071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/91dba4f9221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/b0edd883f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/e07aefd70a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/703d956a201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/70b9e463e81c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/a0af9df9221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/c0f5b53c071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/20304075221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/306bffa1221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/60f33342221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/a07a5c7c201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/20e0e7c0011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/403cb03f021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/608f90fa071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/609eabb5091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/c023eb890b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/d0d1f1b4e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/c0bfbcc50c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/00c39a030d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/5060d9d10d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/707359dc041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d0077756e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/300d10a0f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/b00312e20c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/c0f045edf31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/d0e5b4440a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/f0aedf68041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/203917a0f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/40307220021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/908e9c3dee1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/10215bd8221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0eab5ca041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/50d45d1a0e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bf/c06148edf31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/505d1ac0091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/a0fa34a1f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/f0dd9dd10d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/0051e1360a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/109becc0011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/40c30da0f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/d07160e20c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/e0ebf1d70a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/80625a20021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/a086112d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/e0f8d69c0d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/2079f771f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/4024ed9fe61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/502604a0f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/901a8a2d201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/a0c7875ee91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/3099ffd9e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/a0fd30220a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/0099c53f021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/a0d751edf31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/a0f517ace71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/d025775ee91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/10a2751a0e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/8046db76f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/900e1f3efa1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/90bb969c0d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/606e0aedf31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f00fc5e90a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/50e84f1e091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/90ee5952201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/e0c38af9221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/00e7d864f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/a0ce1c04e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/f03817a2221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/207668b00a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/c0f25a9d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/f0bfead70a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/b0eb5ada011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/b11c4dedf31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/b04ff2890b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/f0cef85c041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/30535356e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/8041d33fea1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/8000d746201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/c0f857440a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/d08faaf0041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/f014cb9ff41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/30eb7620021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60b42a5d041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60b814faf61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60c407570e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/7072a4b5091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/a0e2173efa1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/e00b4f9d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/40a3541e091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/801a6152201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/104b07e30a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/c0d1c1ca041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/703e1950011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/a0eecc76f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/b151e9450b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/e047f72c091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/41f7b2000b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/5003797c201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/00d76856e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/c0a0b9440a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/d0c6539d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/803997220a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/c007e7450b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/e0192d3c0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/1000d8d9011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/20ea40f1091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/408f6cd70a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/b0600371e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/c0fa1089e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/d055519d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/20d944a1f31c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/90f20069041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/f0c714a2221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/00e5d0890b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/80ef4f98201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/b01eb08ce01c00111cadaab22f5679ad delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/704d0f97051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/e0d25bc3ec1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/10a889f0091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/30f735ffe91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/c0efd52e051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/e0494ada011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/10be26570e1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/20878e7c201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/5049fb190b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/e0e185f9221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/4042987b0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/c078792d201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/c0f0b0d10d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/e0840789e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/403b5f1a0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/d07589b9fe1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/30ee6b2f051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/e0adffc0011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/10bb6e99221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/30f6631a0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/60a5d4d10d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/702684e20c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f0fc53f1091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/e03be3fa0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ea/f04a812f051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/0001ce1f021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/c03b2aff071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/f012e064f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/70f37ec50c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/d00106dae91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/d0f53098201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/002ef43dfa1c00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/806d471a0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/a05f852d201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/a0e7443c0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/f02a88fa071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/203376360a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/60e5eb63e81c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/701d5f20021d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d067eafa0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/000604dae91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/60b62256201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/60d1b496051d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/d02a3bb6221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/f0206b56e71c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/60d53842221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/70ed4bb00a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/b08cc6ca041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/d000adf0041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/2187c869ea1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/40f7b2000b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/50903d42221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/e0c92998201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/b0284777eb1c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/c0bc315e071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/f09ec2e90a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/5163b95e071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/304e0831071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/90d9919c0d1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/f0ba81fa0a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/00eeac3d091d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/3067661a0b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/e06f36b6221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/207890f0041d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/702cde46201d00111c63a4b3c7bd9f5b delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/40bb12b6221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/806b7fe20c1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/f0aebe83f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/20d758d8221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/40e85d31071d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/d0295f75221d0011116edf0151d9d887 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/e059c7e90a1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fc/e01e02c1011d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/e03ee764f41c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fe/b0878a000b1d00111358d2931fee7772 delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a15507b5e91c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/d077cf83f61c00111565e8bbe12141cd delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/85/13/9/79/61/1e/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/85/13/9/f0/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/e5/f9/e7/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/e5/f9/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/e5/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/85/13/9/79/61/1e/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/85/13/9/f0/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/c5/f9/e7/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/c5/f9/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/c5/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/e5/f9/e7/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/e5/f9/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/e5/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/e5/f9/e7/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/properties.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/85/5e/13/9/79/61/1e/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/85/5e/13/9/f0/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/85/5e/3f/e4/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/85/5e/13/9/79/61/1e/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/85/5e/13/9/f0/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/85/5e/3f/e4/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/85/5e/13/9/79/61/1e/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/85/5e/13/9/f0/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/85/5e/3f/e4/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/85/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/85/5e/3f/de/properties.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/85/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/85/properties.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/history.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/properties.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.markers delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/10.tree delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.codan.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-Boot.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-Prog.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.make.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.mylyn.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prj-Prog.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.tm.terminal.view.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/Microboot Download.launch delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Flash.launch delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload0.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload1.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload10.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload11.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload12.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload13.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload14.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload15.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload16.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload17.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload2.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload3.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload4.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload5.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload6.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload7.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload8.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload9.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/usagedata.csv delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2011/12/48/refactorings.history delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2011/12/48/refactorings.index delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/.log delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/FP.local.files_0/node.properties delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/H.local_16/node.properties delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/node.properties delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.ui/.log delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.tm.terminal.view/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/version.ini delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.cproject delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.project delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.settings/org.eclipse.cdt.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.settings/org.eclipse.cdt.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/bin/openbtl_olimex_stm32p103.map delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/bin/openbtl_olimex_stm32p103.srec delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/cmd/flash.cfg delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/config.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/hooks.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/ide/readme.txt delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/Release_Notes.html delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CMSIS debug support.htm delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CMSIS_changes.htm delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/Documentation/CMSIS_Core.htm delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/License.doc delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/main.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.cproject delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.project delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.settings/org.eclipse.cdt.core.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.settings/org.eclipse.cdt.ui.prefs delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/bin/demoprog_olimex_stm32p103.map delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/bin/demoprog_olimex_stm32p103.srec delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/boot.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/boot.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/cstart.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/header.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/ide/readme.txt delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/irq.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/irq.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/led.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/led.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdio_mini.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/Release_Notes.html delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CMSIS debug support.htm delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CMSIS_changes.htm delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/Documentation/CMSIS_Core.htm delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/License.doc delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/Release_Notes.html delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/misc.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_adc.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_bkp.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_can.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_cec.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_crc.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dac.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dbgmcu.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dma.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_flash.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_fsmc.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_i2c.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_iwdg.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_pwr.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rtc.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_sdio.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_spi.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_tim.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_usart.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_wwdg.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/stm32f10x_conf.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/main.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/memory.x delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/timer.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/timer.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/uart.c delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/uart.h delete mode 100644 Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/vectors.c diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.lock b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.lock deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.log b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.log deleted file mode 100644 index 1aaf79e3..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.log +++ /dev/null @@ -1,237 +0,0 @@ -!SESSION 2011-12-02 13:17:52.411 ----------------------------------------------- -eclipse.buildId=M20110909-1335 -java.version=1.6.0_24 -java.vendor=Sun Microsystems Inc. -BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE -Framework arguments: -product org.eclipse.epp.package.cpp.product -Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.cpp.product - -!ENTRY org.eclipse.cdt.core 1 0 2011-12-02 13:20:06.676 -!MESSAGE Indexed 'Prog' (0 sources, 8 headers) in 0,56 sec: 0 declarations; 0 references; 8 unresolved inclusions; 0 syntax errors; 0 unresolved names (0,00 %) - -!ENTRY org.eclipse.cdt.core 1 0 2011-12-02 13:22:13.863 -!MESSAGE Indexed 'Boot' (0 sources, 8 headers) in 0,03 sec: 0 declarations; 0 references; 8 unresolved inclusions; 0 syntax errors; 0 unresolved names (0,00 %) -!SESSION 2011-12-02 14:05:43.345 ----------------------------------------------- -eclipse.buildId=M20110909-1335 -java.version=1.6.0_24 -java.vendor=Sun Microsystems Inc. -BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE -Framework arguments: -product org.eclipse.epp.package.cpp.product -Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.cpp.product - -!ENTRY org.eclipse.cdt.core 1 0 2011-12-02 14:06:58.006 -!MESSAGE Indexed 'Prog' (0 sources, 21 headers) in 0,67 sec: 138 declarations; 317 references; 3 unresolved inclusions; 0 syntax errors; 1 unresolved names (0,22 %) - -!ENTRY org.eclipse.cdt.core 1 0 2011-12-02 14:38:32.428 -!MESSAGE Indexed 'Prog' (32 sources, 56 headers) in 3,39 sec: 4.171 declarations; 17.052 references; 3 unresolved inclusions; 0 syntax errors; 1 unresolved names (0,00 %) - -!ENTRY org.eclipse.core.resources 4 368 2011-12-02 14:45:51.606 -!MESSAGE Variable references non-existent resource : ${workspace_loc:/Prog../../../Host/MicroBoot.exe} - -!ENTRY org.eclipse.core.resources 4 368 2011-12-02 14:46:42.647 -!MESSAGE Variable references non-existent resource : ${workspace_loc:/../../Host/MicroBoot.exe} - -!ENTRY org.eclipse.core.resources 4 368 2011-12-02 14:47:26.513 -!MESSAGE Variable references non-existent resource : ${workspace_loc:/../../../Host/MicroBoot.exe} - -!ENTRY org.eclipse.core.variables 4 120 2011-12-02 14:48:57.176 -!MESSAGE Reference to undefined variable BuildArtifactFileBaseName - -!ENTRY org.eclipse.core.variables 4 120 2011-12-02 14:53:58.690 -!MESSAGE Reference to undefined variable OUTPUT_FILE_NAME - -!ENTRY org.eclipse.cdt.core 1 0 2011-12-02 15:04:31.173 -!MESSAGE Indexed 'Boot' (0 sources, 21 headers) in 0,16 sec: 138 declarations; 317 references; 3 unresolved inclusions; 0 syntax errors; 1 unresolved names (0,22 %) - -!ENTRY org.eclipse.cdt.core 1 0 2011-12-02 15:42:19.740 -!MESSAGE Indexed 'Boot' (18 sources, 40 headers) in 1,51 sec: 1.524 declarations; 4.095 references; 3 unresolved inclusions; 0 syntax errors; 1 unresolved names (0,02 %) -!SESSION 2011-12-02 16:15:01.226 ----------------------------------------------- -eclipse.buildId=M20110909-1335 -java.version=1.6.0_24 -java.vendor=Sun Microsystems Inc. -BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE -Framework arguments: -product org.eclipse.epp.package.cpp.product -Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.cpp.product - -!ENTRY org.eclipse.cdt.codan.core 4 1 2011-12-02 17:08:50.823 -!MESSAGE Internal Error -!STACK 0 -java.lang.UnsupportedOperationException - at org.eclipse.cdt.codan.internal.core.cfg.ExitNode.addOutgoing(ExitNode.java:46) - at org.eclipse.cdt.codan.core.cxx.internal.model.cfg.ControlFlowGraphBuilder.build(ControlFlowGraphBuilder.java:90) - at org.eclipse.cdt.codan.core.cxx.internal.model.cfg.CxxControlFlowGraph.build(CxxControlFlowGraph.java:33) - at org.eclipse.cdt.codan.core.cxx.model.CxxModelsCache.getControlFlowGraph(CxxModelsCache.java:90) - at org.eclipse.cdt.codan.internal.checkers.ReturnChecker.endsWithNoExitNode(ReturnChecker.java:228) - at org.eclipse.cdt.codan.internal.checkers.ReturnChecker.processFunction(ReturnChecker.java:172) - at org.eclipse.cdt.codan.core.cxx.model.AbstractAstFunctionChecker$1.visit(AbstractAstFunctionChecker.java:32) - at org.eclipse.cdt.internal.core.dom.parser.c.CASTFunctionDefinition.accept(CASTFunctionDefinition.java:118) - at org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit.accept(ASTTranslationUnit.java:279) - at org.eclipse.cdt.codan.core.cxx.model.AbstractAstFunctionChecker.processAst(AbstractAstFunctionChecker.java:25) - at org.eclipse.cdt.codan.core.cxx.model.AbstractIndexAstChecker.processModel(AbstractIndexAstChecker.java:103) - at org.eclipse.cdt.codan.internal.core.CodanBuilder.processResource(CodanBuilder.java:149) - at org.eclipse.cdt.codan.internal.core.CodanBuilder.runInEditor(CodanBuilder.java:218) - at org.eclipse.cdt.codan.core.cxx.internal.model.CxxCodanReconciler.reconciledAst(CxxCodanReconciler.java:38) - at org.eclipse.cdt.codan.internal.ui.cxx.CodanCReconciler.reconciled(CodanCReconciler.java:81) - at org.eclipse.cdt.internal.ui.editor.CEditor.reconciled(CEditor.java:3198) - at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.reconcile(CReconcilingStrategy.java:108) - at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.reconcile(CReconcilingStrategy.java:73) - at org.eclipse.cdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:84) - at org.eclipse.cdt.internal.ui.text.CCompositeReconcilingStrategy.reconcile(CCompositeReconcilingStrategy.java:90) - at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77) - at org.eclipse.cdt.internal.ui.text.CReconciler.process(CReconciler.java:408) - at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) - -!ENTRY org.eclipse.cdt.core 1 0 2011-12-02 18:52:56.461 -!MESSAGE Indexed 'Boot' (18 sources, 40 headers) in 1,51 sec: 1.524 declarations; 4.095 references; 3 unresolved inclusions; 0 syntax errors; 1 unresolved names (0,02 %) -!SESSION 2011-12-02 20:58:40.527 ----------------------------------------------- -eclipse.buildId=M20110909-1335 -java.version=1.6.0_24 -java.vendor=Sun Microsystems Inc. -BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE -Framework arguments: -product org.eclipse.epp.package.cpp.product -Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.cpp.product - -!ENTRY org.eclipse.core.resources 4 2 2011-12-02 20:59:27.327 -!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources". -!STACK 1 -org.eclipse.core.internal.resources.ResourceException: Resource '/Boot/bin/sources.mk' does not exist. - at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:320) - at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:194) - at org.eclipse.core.internal.resources.File.setContents(File.java:357) - at org.eclipse.core.internal.resources.File.setContents(File.java:464) - at org.eclipse.cdt.internal.core.model.Util.save(Util.java:154) - at org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.populateSourcesMakefile(GnuMakefileGenerator.java:1129) - at org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.regenerateMakefiles(GnuMakefileGenerator.java:894) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.performMakefileGeneration(CommonBuilder.java:997) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.performPrebuildGeneration(CommonBuilder.java:864) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:739) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:504) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:450) - at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) - at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) - at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) - at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) - at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) - at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) - at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513) - at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:432) - at org.eclipse.ui.actions.BuildAction$1.runInWorkspace(BuildAction.java:305) - at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) - at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) -!SUBENTRY 1 org.eclipse.core.resources 4 368 2011-12-02 20:59:27.327 -!MESSAGE Resource '/Boot/bin/sources.mk' does not exist. -!SUBENTRY 1 org.eclipse.core.resources 4 368 2011-12-02 20:59:27.327 -!MESSAGE Resource '/Boot/bin/sources.mk' does not exist. - -!ENTRY org.eclipse.core.resources 4 75 2011-12-02 20:59:29.870 -!MESSAGE Errors occurred during the build. -!SUBENTRY 1 org.eclipse.cdt.managedbuilder.core 4 75 2011-12-02 20:59:29.870 -!MESSAGE Errors running builder 'CDT Builder' on project 'Boot'. -!STACK 1 -org.eclipse.core.internal.resources.ResourceException: Resource '/Boot/bin/sources.mk' does not exist. - at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:320) - at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:194) - at org.eclipse.core.internal.resources.File.setContents(File.java:357) - at org.eclipse.core.internal.resources.File.setContents(File.java:464) - at org.eclipse.cdt.internal.core.model.Util.save(Util.java:154) - at org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.populateSourcesMakefile(GnuMakefileGenerator.java:1129) - at org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.regenerateMakefiles(GnuMakefileGenerator.java:894) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.performMakefileGeneration(CommonBuilder.java:997) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.performPrebuildGeneration(CommonBuilder.java:864) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:739) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:504) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:450) - at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) - at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) - at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) - at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) - at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) - at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) - at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513) - at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:432) - at org.eclipse.ui.actions.BuildAction$1.runInWorkspace(BuildAction.java:305) - at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) - at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) -!SUBENTRY 2 org.eclipse.core.resources 4 368 2011-12-02 20:59:29.870 -!MESSAGE Resource '/Boot/bin/sources.mk' does not exist. -!SUBENTRY 1 org.eclipse.core.resources 4 368 2011-12-02 20:59:29.870 -!MESSAGE Resource '/Boot/bin/sources.mk' does not exist. -!SESSION 2011-12-02 21:05:12.118 ----------------------------------------------- -eclipse.buildId=M20110909-1335 -java.version=1.6.0_24 -java.vendor=Sun Microsystems Inc. -BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE -Framework arguments: -product org.eclipse.epp.package.cpp.product -Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.cpp.product - -!ENTRY org.eclipse.core.resources 4 2 2011-12-02 21:14:39.147 -!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources". -!STACK 1 -org.eclipse.core.internal.resources.ResourceException: Resource '/Boot/bin/Source' does not exist. - at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:320) - at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:194) - at org.eclipse.core.internal.resources.Container.members(Container.java:266) - at org.eclipse.core.internal.resources.Container.members(Container.java:249) - at org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.generateDependencies(GnuMakefileGenerator.java:592) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.performPostbuildGeneration(CommonBuilder.java:847) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:758) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:501) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:450) - at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) - at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) - at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) - at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) - at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) - at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) - at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513) - at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:432) - at org.eclipse.ui.actions.BuildAction$1.runInWorkspace(BuildAction.java:305) - at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) - at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) -!SUBENTRY 1 org.eclipse.core.resources 4 368 2011-12-02 21:14:39.147 -!MESSAGE Resource '/Boot/bin/Source' does not exist. -!SUBENTRY 1 org.eclipse.core.resources 4 368 2011-12-02 21:14:39.147 -!MESSAGE Resource '/Boot/bin/Source' does not exist. - -!ENTRY org.eclipse.core.resources 4 75 2011-12-02 21:14:40.723 -!MESSAGE Errors occurred during the build. -!SUBENTRY 1 org.eclipse.cdt.managedbuilder.core 4 75 2011-12-02 21:14:40.723 -!MESSAGE Errors running builder 'CDT Builder' on project 'Boot'. -!STACK 1 -org.eclipse.core.internal.resources.ResourceException: Resource '/Boot/bin/Source' does not exist. - at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:320) - at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:194) - at org.eclipse.core.internal.resources.Container.members(Container.java:266) - at org.eclipse.core.internal.resources.Container.members(Container.java:249) - at org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.generateDependencies(GnuMakefileGenerator.java:592) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.performPostbuildGeneration(CommonBuilder.java:847) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:758) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:501) - at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:450) - at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) - at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) - at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) - at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) - at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) - at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) - at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) - at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513) - at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:432) - at org.eclipse.ui.actions.BuildAction$1.runInWorkspace(BuildAction.java:305) - at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) - at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) -!SUBENTRY 2 org.eclipse.core.resources 4 368 2011-12-02 21:14:40.723 -!MESSAGE Resource '/Boot/bin/Source' does not exist. -!SUBENTRY 1 org.eclipse.core.resources 4 368 2011-12-02 21:14:40.723 -!MESSAGE Resource '/Boot/bin/Source' does not exist. diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.mylyn/repositories.xml.zip b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.mylyn/repositories.xml.zip deleted file mode 100644 index bd81524bb7a10c38cc94a42596b248dd17ea0b94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437 zcmWIWW@Zs#-~hs+tR{N~Bp?7}7o`^D7iX5_7iFdv>s93Dybba7W;PV~tF2hRxl2LG zm)psfvn%ZV<-0GXtY){ISyJ}<_1#L4Qul)_(?JRA z#&&Dpes@>?0a(P^*(jNlYdX`ahKdy(=`2=$nX6Q|Cs~4**Po?>XMZi85rzX7#IS)8JR>F g5J8MA2MS_TfF9rh-mGjO6^uY=2c#2$rZO-90Pd-z{Qv*} diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.codan.ui/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.codan.ui/dialog_settings.xml deleted file mode 100644 index 0971b1e8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.codan.ui/dialog_settings.xml +++ /dev/null @@ -1,4 +0,0 @@ - -
- -
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log deleted file mode 100644 index 50a1af18..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log +++ /dev/null @@ -1,12 +0,0 @@ -*** SESSION Dez 02, 2011 13:18:07.08 ------------------------------------------- -*** SESSION Dez 02, 2011 13:58:50.63 ------------------------------------------- -*** SESSION Dez 02, 2011 13:59:44.84 ------------------------------------------- -*** SESSION Dez 02, 2011 14:01:56.95 ------------------------------------------- -*** SESSION Dez 02, 2011 14:04:30.84 ------------------------------------------- -*** SESSION Dez 02, 2011 14:06:03.20 ------------------------------------------- -*** SESSION Dez 02, 2011 16:15:10.31 ------------------------------------------- -*** SESSION Dez 02, 2011 18:53:52.79 ------------------------------------------- -*** SESSION Dez 02, 2011 20:59:08.37 ------------------------------------------- -*** SESSION Dez 02, 2011 21:05:21.49 ------------------------------------------- -*** SESSION Mär 04, 2012 17:55:12.82 ------------------------------------------- -*** SESSION Mär 04, 2012 18:32:33.31 ------------------------------------------- diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/Boot.1322834671001.pdom b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/Boot.1322834671001.pdom deleted file mode 100644 index 8b9237e17182aa03f4d90488de0dfbb396567087..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1236992 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 z z#%u$Qx?kj_!+wxH=L*}vYu&?n^k0XZaq!tb1NJbICK%Iy3-Y-D>6+}CX65037wIU6zv6kqZtxDd@>^Vkw!sy>OZ!A*iZDsk&pO|Z9P%Li zSM9IkXMBVGb=pTk9(&^*I@l`-(7Fe0y_M8E(-&Z^6Rr|aYtP~fg{(IQ!iS-Ke^>NZ zSFh`p>d|9_>y>o%6Z;PBt;ol7fHu3>z8LsWKa{=TPp{YU>s#l*LdraG`@sqQ_9JnB ze89=w)_$R@VMx(inZStu&-Dv_ed&I9iE=Lfr&eniUCcB1a<@b0+t(!&il%RR{X+Zc z35=ApQl58f`M9oCznM9gSjksA+n>p~{Vd#Hn9z$RTRUPoi?Cmeg;Y7uOJJm&HF@;* z!+(BlbYCg6U=X@!k1^fLaBuxLGemQ3U8K^TWMos%9ooN;z!WU!Jb6mC3t@#G`(0no zuX&7mjh3a#IoYR5d9vECwxjQ7V0#~A@a^}Q-}@XAGO^|*^HDjaX>*M-2SFSNMe}TY zMV{J!qyT3XpGbg=U@5eR6IL~@mEDq3;23W>9!-zLeVF^U+L@PVNGdA-j20)|58vN$vp9?;#n>Y@V{*N|76%vANb^T zJRi$>qIT9PLc8S+*HLQ<@NL9h4a#*Y%EcY|k45SDhVmM$>)_e=l5)NWTs$y0;N{Cs zmi#l$LeaIZCe6p&n!>yqX84=HGzRqmno=&rS%|)3e!uXCzMbj9-#)m< z{NNAr`5Uj09muPp0Dsh}KIVrz1_Lh-$Rn1^o=TT-7NY<0dWyc3{(i?taUfqRM2MTy zgQyNs7LiL8-tXXw9$!bC9p%h1>_7Cga>R^C8OH0a(q5|pJq?FgP{mF?#yTQ>u74`v zSRS7bK2V2^0VH3s-Eo*E_R5zt{T3-8 zAMjep*0^1ha(nv)ZSJ@f$3BkfGEX4-XMHm5QUITp%O?RB^xcw=ayeJzvY!8iZ$3Bm zIewjvOi!2lZlqa0kHi%t?l)5IA2H6#t?eKzH}roB$}NiDQ6ddLRsJ6U&(C74 ziYF`ey~>`p$(#MLyqN!2IDVoqLHP^Ii}`wP zcYMz=J#If9h-GAeOjGIH7nlBi9KMl^&!zpr2jKp>gD^g+e;2vlHGh%zuhi`D3kuzV zysT&R$NXwF*XDD^#qSX+nPNTo2Y4Y43q>Q6alO#}r_L)dxefV>Hsqzh1NY-z;J}pu z#>*@!>Nai(9d&aqxF--ncVd^>1bf`8B~+=o6y z*QUprgLX?`MBghh-r5(`X5h=Sd{dNbFy~^;A_DmuggalJLGy7Rwzv7I@z+FOWU(XG zz6R}|z(_f3^XTdR%5yQMW~ujz=`IZDF7cS{>fgI(e-_EwX-N?LS#8&Yj?}!=S04tQ z9{9aws5g#jmPr31Stt*dm3nD7n8Wcpjt3H) zTjCD%ql!0NRPsGn^v)g5?e|Yt^zt?Mj>C~IDuaDkxU(zz*Y{BqkGQC)4BwP^BF#nP zSuUzBcTr}wiyDpq?1L^U-Wz)lt#DD}^?*MQ@I8S2sEZ=(1^4&u)9`V=NBbhkUcGVFvSuKW58k8M2YJmlahxIPQ{{1s(3`P}`T!txmkyTu^$w9EhF`x|}3 zKa|Tl_!nb!?@ZDAJ7Evd?{IE5nkhx!q9@v;s!K7X?8LM4fp~U41lO%_Mf*JTP1Muf z{gW@LLwzF4=;?s_HQ>&3(f%*t`lO3Sz2MyT@Jsp&vJC1|5OYjb!4Or

3B8&>Zrbk{yexr{a+k;Sc1G#M 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¿R|cBSxb6V!mW04VK7((P7up}yAt3TLQ+ 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

qo9+3^?Vg;u-s$GVc?i}H;!N`* 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%0D$ z<}(vNV*&GaBK~7S{7JhP>HQMgymsm$*~wO&ra#0#qu!o{V-&wyQyP!7)5ITwTKIIi z!)BW&^$>HlVZ1Ci{j*|wJ;O_ekCx7SNPAlJs637Npf5i8qr_iE4tK)`IxF9<)p@?{ za>~EhZL^Vt*zQ=5AhaJBay-PhkYPY>92Vd`Kb56 zXK(1uBaZ269Z3zmQ0da&jOy4D%GG2V6r7*i$GIUR0$tiEEVV>_iT}e(~N#}?D>vZ$62|zJQShfdBjJV>b`yh`AhO4 z`wUK}7F!tV@9cgH>D4b`9S-ssTqw)a{p7R5Ni$dF6!C%GicagdoCDpY{B6kX<)Ohv3P) zM!e35r|Q7vC>lS9y8*#Lim_NJ-r~5_2M1OKgZ$u_I{JtvBpO&^D|-Jj>uPN7euOl zinUK(_Gpzo54+@}gU5Z`8lBaVc{mw!v-R*2K-OV}{zCIn;XXU>+QHL2YPRfnop@E3 z;pahph|*)KA$%~rI%7>pbd3G?5h1=MdXR-YcG}75m+eUZDW;J zRzAY#2mG;ZWDZvISNM39|C98KcZn#v{<})QIPh5$j6_)%EqlC8`PB8_U*;FBy|w&( zSHt?!^C|nE$#oaqz~=%aDf=8A%<&-cul)Kc|AIa?m5kv_{PO;ad?&qNgL?5x z=@<0=p3~81*pN%)hrwDfdCdkKFcm!2WMc8yPophv!CJNzPx7DqhkbYM&2 zeCb)p8`~hHBQ@F;LzUZl4Hyn#KH@M+1HE9C6Lk&oBP-S-SbefB+9_Y86+hA++&9RVry5@`5=Fh$ zlH{?FqTZ7u{gAn$S1rW@xmCTFaawu*cMET0BHsap(R*UbwuwpQPCL-j#$VP02B+zW zZaAyIF80;KUtj45hqgV|)0P$u?929wi452!na9?-^JxBb))@2<3+K!*e=2&!_ki_1 zpJmr`-OQ9o>bu2K9_vbsel#w~-Jly}9$WG&lHZ&-Zn-e|^+0~BRDKIoe&S!oZS4JN zS!J+>^}4pQpo={O(U&dn*CKi>@?=i0rGo3=RDQwUX-W0x!}G<|JB#TH>DYn<$@t$d z5Q&~|jbHO01L~i6i$0{E_+k85^Mm)Id;@i8A@45W>j*Y-6_vw#V@xg*d0wjW{H4mX10?$%Zf0cd^JwnV7Mtj2*Xh~he9Oy8Jer=gUW9yUy2<=VdYb50lMj7+hxADOxck?5_IGV( z<=ZTN_f~htc99(r<;!1_c(_W^^G8k3M{#;&d_PG~G(v1Eu;k5rTzBbdrM+tTOnjK@ zDm}t)3w?N;pYu08%i)aCEXj!SkNsW6=^jUV#cc2qo${wOFCcbG((|#Tr?p?KXIt98 zq?>$c-2n=N68c@GL&^(#C8?8qscX@^Vah$xGoFdly^!>ZbX?G>ytM8d5Ie=`Xzj1* zDC{O3*?mj8O9wV#>)3>TSLu-bJgVO@KYa8va(Ukj@2_b(t*_?mBb0Q!(>XsH6OgMU z9mSds8U8kVD7!z1)uz$@CEcZizH)2Ivd&4zI>uOLJKsY6Am4zN{F60rEtIeJ%ZT`Y z>|(uLW)X=#v>vWH(XU5JA9yBC_jod&u3vw7-+d!@p`5lZ4~U%-Iku=A59&sa*?m^J zlOuLY>*|DljvPCz9ca~F9Q6t5n2Jr-y2SNcl1|52N<;UA3e@@?+*u#GY5!Xf)^wbz z>3E*dkv$vjXS0gBQ{L@Lr3gN|tUp`n)3l!XCDL<_`H}Tqt@qQ0?Cu8tF!TphzpqtX zzD*Fh!9V4@=b3!DB!bMZ+UM9at*2>vuGI8MK1TM8rDrPkrMw3wJBURV<|3XQCRDmj z*UQkoM&r>#xA~;~PV2|8XN}+eW;a;BYdw(h%1^NWY}iBXqtc5Qt6-jW_5;K#d`9{f z+WZh(qHphLx_%PpQ?{MU?3=-O{{D=qbf2DwNl(fy=q^3=PZ}4JPgCC|%vo;mpHlrc z+BM(G+5uSyxBGPRakg9c{ixp-rRVXG5<4a7(f9aTpVIVn0A}rvOnSP_7v8;WP1yxq zr9;}cR%DFxbCNc9-L2t$OVu~}x6yYfrf#c#WlK`)e@5xBHc~;M73opm3CW7le%uxbqhSdXMW_^Rl1b#kB#sA^|W=5k_Qu=@!etd25Hg#zu2QQ z?Dgq}ed5@!?oo(_bWKg7k*g$KPfNO{_LOu*PW5z4>6=E$TB#}2Al;>J>M$txji`2? zK1oxYFXhPOg=C$m+F4~v!_V0i(>j@@yqWrY>JBj`7jgQg@?|Wz*!fH4oArK@eU-YY z|E5+!u_%eJyL_8UT4Y}~?DnvisN1f$5vQ(suW*_Aw;#HQ&=@0YZWcKuND2m7WSU2COXlW$~+ z{n>sbXY7UcF;2%hWKHT+tXBE9J?~flS6q;r>@TYNBIRM~o?0ek>)yDZAhn-ZKeK8U$DR72uT)mwMgQ=(^B&@+olSyXN;UjAfu#5Y-l>yX}oEY=sCQ7dWK1QPEnJ^ zNqJly$Z;+BiZq;OnqOxs_h{Tlrqk0wehE+EujP3&^p~4X?+5d=YTF+~rGNI~nR9l! z^W3C;#m;X`UqHIYUz?myr1*Llzny$I#<*cWO7rXa!A)d?F zef-wcAmF+_!M6e8gpYS!f6RBWG5!>^^u01Z7>}PZQP-{RJ$cO^Nt4IvgW=cpw;}$V z!^yvbLHIYDuCE5;-tjM3obw8!@h|h9^FTEnnB*VN#GW2@1EcY;sfc1SF2Q#P^wKUp zrzYhR{56ZS?iLkXLH~N6IdXa!ztC9z!aPErBQZ&p(7$Er-Fb>4V=DfR$|UD+d3V&W z-FM5HKawYJk$*D&+Kc`?VvhPnFisx-k;5f_#s8E!>V+`>7#}IU;NpMZ9QDr-ho{F2 zy5s-Ie5*9T3l4HP@$(Iai~+xOau9#PA&Sd5J;E>U=p1LqL*y@zd?ydwI6i`3#^ew` z%<{*MhuH9lD&IBTR|ff8(AMHof7O4p>3(U5cMb3y!W?G0yK~01of5fnKlfRi+`WF1 zCUIUq@n`;@`yNZ>Cr=8x+Wa50ow)Xz%&lSidpex_m2XzaEhRK zW_s#T&Iz99=!svynaN4RCnzqq@uPyXZTwUNiQncg<;%f5`#CQkc_uEj+nL?YeWxhn zx9S4;&amwRWAvzCnmN6@QPmoA+PlF#hWV$;$$q?dr~NCahmyB^FJ#L>^17eNUMczDm zZ>nvv?AgWVD5Zp#vBn8DI(^>QdwvbJoh>*`5C zPS1H*9fT<6|3mN}!I!(ZHhD&81u;(lt@v$(fmfSn((v2JyS+*p^*lt+$!IQr#q>XR z^gp(7#OHdr@*9z5@mkS$c!hXrG4C@y#(o2BNYIaVU*hb2364Ej!L|HzTJZNJCS!S! ze&$8uqFgtx#NT1Iv#YA~zffGhv-PfLq3NvswBo;n=l#r&7jgeT;-a0HZ#roCEB=2< z7Gd<)yX;(ZL_+@?=-{FBzr+6vlRYb>ckBPyllBf#?E13u7nc;=*5?$k_XLri1E_(*MD-?L*l(*Y|EWzgPT^%0v0*oPhtgrtgM?zmP~A;e4d; z^J35GJwN&kYyb6UTpKO<=#Ru$AJ{o|(Q&;L*VxQ4-J>wu$iwzr=Aw>k!x0!M2CcMzmS+ z_s4Qhc+Nsck3Qm$(3zGyyuN@JcC&czH|?F@mfK`~vO&MGkod&OoY%Xqyox8d%p?8# zNORKlAq}7VU+{VV1&`06^+KfZ9}-(#@UXULvQO*36Uly%Z-;-TG9S9$oincGmuX34 zTt8q4`B7rJzT)~@#q%A`8fWi6lYf_)u5Mf=yraUxguXBze4XivN$!J@&)RWz^Rix# z*mt^QpZGo(f7xl4HmBC!<+tf8vYKVvV~@+(yZvn|)0OFVni43puiA4)&h;db6Ce;oP` z(=x&5JA9tK3(mMw@kvKxx6ILHyZ#KkWhdG1m-Z^$ue5)s*s;d2PBdhNMv;r-$it`Ksk}FZeps{KAm_UQ3_T)ZY1ReuZgk^+)1=(D9e_U%<7= zH23`-^2aVGBlb4G+Z^iY^&uU2?3(^fzE-yNOZwBo$CxP5Cl7v)^@D+ox0<={JSjiH zd9LHJ!tFXHGi+XJi>vz6pZc=LvJUD;C+u*<bJa$ zvy}2k=jY-tq|f*9i@)#_(`}D$Uy%=a5*&Zw=ce1`A^u5#iyu?cgG2oD02hA~bL5Kw zPWYI=`kR>}SA=+z02hBNbEMAuoct4*LwNbcU-r2<;x_?3f5*7`>HpgVIEU55xca-8 zuJ?s_hX5CUH`8@Sh%+XM;}?I1>9Q}xy9K!TGfkH}LOdhD#h-7wObl`K6Bp$T)w}#0 zHr46B=nvoQi;H^QWul7D)!%A_IZW%P;*3EiK&$Is&zb0$E~dr5O$Xb53jIJwZ^wP| zM~m;vzDR@BPoc#{z0PoVCc`w%3IAMuuI=vx>M(s=vo~D(r157G$HP{?NqaPb$;7*1 z`tk!@{3WLIH6dOY;NqWbI_HLXNq~#L!gSgl;*$eh{8gqC`#wqfD*{~nwWd>6h*t%; z_-C4q+e5rIz{Nk?bUZc0X9l?V=bDb4LVR|Bi=WBVLm@slz{S5v=4*lc^8;M`OH7AD zLVQtxi+`zU|C11365!%rZrYcJ_|gCu{|eLY!w_E{;No9p+T9T1D*{~n7npY64)Ik1 zF8(#9?O#Itf&dr)Wv1<#5MLAE;=jtY?HA&g1-SUvnKpjiP4)At02lxDrp=il{ki}b z|4pV%w-CQRz{Ov0T0a`%HwC!(?=Y>u8{+i=F8&Rsb;}UHBf#xg;_xjYzQN&A|LJRS zhgZ9GJx$*xhuiwA_~GWzIdT2oqPW)IinsA^XEGet-+L{6R*CYKpTj;gcK=cNKd8^6 ztQiUZri?EeBqZNMTML8xeKQ)z|FESG+qd0r{G$AAnxZiN$juKGf6~S)lo7t zlXgk{rccL3S;K8Oep}scΦ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

DcJ(wOH7n6{-L18o*$t6H}ULVizC0L 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ν&7z9G??8 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 )=?lh( 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 -Kk92LH|KT`C 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�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 zALclX�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

#x#c61K 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≠ha6oXq)Mh|kogd}C z>Ig84(`YUuLgknpI!9>L|jh9b26X1oQP z%h$GF%Om?%;5bTDvHVv5oqt>V)^j}ZZ5Z7n?0Dv|DorrAMNfgxAP(Df3vr@lc4)TuQt`szhDm6S7nbL7u;V`d6VFrk6WR0 zy&*iF4~)Ia^9fQpT*vwNEk$yB+aCF#JJoGFbGZOc`N&otXg`%aBM{Z8`M8yFYHv1- zo)g@MUipmRoR8#qgsKYIQ%JwcVX%Dvo6^pV1L&0!d2Cf_hW2o`(WN2aHmVkss12+3vtX$ z;o1ByV?2Uh8^+eteHIo!O`>U^q~Su;ml8vG+#eYKtCVMz(EPpXME1wpJVZjDyk{Wu z`XPFnJ^5=V>=RS*4{ngli10P22bd331#^tld=n4nF{-czV)^8}!PXbzor2@I6rRoh zS&TP0?rlDdS{R zb)N9>Iqn&AruXN)63_m87y8a(-1kp!3(oBmV@g%I;x8Z`d#?1HnyN=}C{Nhf39ld9)MXR5zR-&;6dPT^U9 z>-?kYL1*LsbIlpv-ycdm`MY|1=)2Pp?)+V?``F~~+MR*lt9a<|t&mloO9kz}nx6|) z^;I4s+28cu8LHpm9D%(J{HNOgCrJBSr#;huTYzERPz4^kvZ(4`o=e|S{YZSQ|Es{C?RerBuJP2XTI zU*Cf~Q;5K~Vf?D#I<@Ml63zaZ4&L^L@VI{_AYOS^3Hzs({Zo*KNcIoCHzz*R)LPUA z|6os|y3A=$_Yd(fhE^8~H`PDHn}VYvg=hUE<8@Tcvm@q?|J)qy>(3z~&;B_K`t~)1 z$Ne)8@yZi6J~8jAUe5kmNO4>b=zXc-ol`V^;J#*geh!VVs6I5qvwXCh>KQneQH+Gt z{1WeA9E($UHou24PI_&aa0uO}ZSf-{n)8dXsCv2~-1j?Yi9F5Ut1m)(8mf5E?^I)) zuNIz7gV#;fr?Njzrbwvn3o>Ob-at~sba!>i5khs}qKW5l;% z!j)!spU;aVn)7)VbRK31_xY6lcbRXa-^ZML!c&R)cJ<|m7oJUn*D2M!PhWi{MF!>W z&ooK7`*ljtYq7xK{}p*|58nX4Nb#^e{1x%SbBS>O@EQB# zeTrm%bmI14pHnF9;HUbBH=)~)ed+!n-WNDN5))GW!MzW7Z#q*a76$9E>Te{T{8592 zd-Y3(aOaPjy&30rQ!^I$Yl;W{sKMB(JeLT~18aJdKWaKsWQITJoj$T2=^oCvdB{a- zuH9fSrzSXOk&#c^Ziv?nM`tmiRbEf;r)J(up%PH_j zS~)UrD!5g`ZI#yqUR?@L`;D5}j8pnH;FW^DpRAcL(d@_5p>LES-1|}XDa4Pso*jOV z<2*|8(*>iN^KpLUT*X5_*v#1PXxU-Ogi5b`1*RbM6;jofWFy= zaPQ~yMV|WSntO1}PvEx*PR|2u&Ii6o@zBqgAzpaa2J!O^?B`$SA(s72>!`%_?b2&; zf3{1epZ&gM&Cig=)n0vuKdgU=cRh})gxf0b_u%OqB7|cx_HK!ZGy?A9tpFHyj>Suh% zTs;iDZ-w=%%t!5Wfq5}&$Jd&VV8b?_Oom^q|AV)nkw5GSV z6Y{1SGI&}p@HK@9_S%rY#gw~xjXe_%TrSv~s(I58?#cze=8(GqV=~gK`Y?fyW0=dW z7W>;Z@0o(#66I2x2Rnr)%IFh$tQ|$=Qaglx2J;-hCr|Sn+?VLiV`zBg||ia6>29k9zm}S1$&z!@83d+X8$gSz8wwW-oHyk zp8DlljAQV3!K$SHsu3?dn+E)bIDRf)EsxM#uW8?58D@w64RF5SpyymC>NWdO<81w- zIauvMBiHAM++6Lja%EP`uZF3uVi@=llMCSb6`g=L+p}C?BcvVe}_xDPPW`AD* zeG?7g-rwhlJo_8_-l(&J2mN&II>ZalrXlt9bgr+*w>>;MJ%4 zkLJp!;y7Not@6$S@1zu-_1^`I(;VD}g2&Bq-hUTMH2d#%=v!_G_x`(CyO(dKhSGKVP&xHt-V{K*&nnZLgo&U>fO3rEWgf4q1U@N&2kYd?D}YCe2km9@6vPY9+Q{u? zGN1RK+>nP@&bRct{!TdQcZ2pKjU~KZg!g4yyxP=qtbz@5aOfPORo+7IW{S=Xp7pz| zcWGb9hN9x&ybXN8f&IP_`t~=3d%s`7u(X$JftM*B`fV-Zg=f=1J3t&i*JtvP6dAM! zebT+QhmTEn+#f|P!kxFE$KJd8g~{CH~{jO;8NjQ!XZmYc0!8@T1ymP=i zC55-aM2A0NqB_dwn^^N>j#*cW1NV;Cy^jNPj=JkiwD{-Xedg`|PkqDuiOgesuMNeMg8l!=-$*q1tFAxvJ#Pqi{vsbBu)pf^fWM?T)dT5&ZT@UM7M$Q9P(eb$dd; z@I)DXQvSzs{`aPzY&ZFtW-s=Q7BbFtmG^yzwJ6BvQ0NKfMydWF-gq1%DYYzqv;HV# zII7cm2!7#l=l(o%T`A)*2D*;G(Vubek4llJ^+nx@IPwzsVIoiSin^oWuOd_Ye4@V8 zk#6M)8=si()vaWI@ks6b6~1|i{I%H(P0aVQzJAHo6B}7pTMFL1fR|;y$GjEb>HH_P+{nH|aU2-v^X5{!k#=|lN79&RL-DJo(arbZYYtp) zS3+N*A>5anj`>_J#{;iS;3tYa;ZrUIeslu=730zlt_EJJc-RhbzNAigqKrPN9bCfY zdLI4ca>+$Ih@DO4_*U21JpSum0P9KX7igYv8IB8y)k-_Kl3|)x*nr1z@9F({wM4T& zAA`Ol4B_6N4~smvgFga4QSs0pzel|AY#QQ^``I77(&y`byT<&HxH6yn4Dws+{=wX+ z?p~ivYJDT#A8_0y+zg(rZ;wg-Fz2$NWWL$Y`{$1m&HjN*-Ia!L@1M6sp8PZAK;Ty^ z9{T5h5HCEN249a-_Zs`>6^catr{@9q`eLu-$6hQ2*su4IP?yE^h_7qodE*;Q;g8gO zZef__nKqRCB6x3U-M=K7^GS1w#|+`I^=sWHh*zFfLiZcheaZRYn#%VF?2;uPSxdW> ze7z67G8f>aQuFm4!!&oc0gocy$Ccld?h;M;n$jCOw-~}>`I>@0+48IsYR^-4qI^y1 zL~)7sth*g-KknD&Z4MgP-2K{hKSFW`r!BodCLZ<$rts{6^?4ymSL-Qkrw~D}4JF?M z?RZKso=w3zw(dJacs!qjk&g1L63*w|oX_3z5b5e+{P{aP7bF>!gFbJWvg_|ppMtsA zl)Z={A)~x>{9)cmaEGVxHkjy$T}(9gLlcd{zS*gF8q@tf{C*KKNMjA=O;a$ItiZn7 znn5Ny5cOomr}$omwZX4#>i_qDoxgSbN18U2?h!mse#!!g=6balHuW}y$Nf!pPI*=d z`+GL~dwL!sxn9wHDRI^@)z8TLl$lOjYP}*KO__(IS-2VHVe8dm#>uBPlwKV?4*`7| z2hQiY&{t^)cm3a#Ga2Uba>|#ecYic^OlAE1;FQB4Cp?=5?~hF3`|zi%qevbfy1@_r zER>ul4DSq~dC?ZrCwX2fxIIMtiFL`8gK@NB{m;CUz&%Dx%kYz}x1{fM94DmktUu3X zoYJ=ekIwYxr7-8MZ#4c*TS9WXi7~r#zbo*Q?)hy}E+p zT)hh4utol(_RIJ2CED-Lq4R2|Exle5?|K|p2{*%E)(?8VV#?2*&ax$DwC|ULadpa{ zpzmBmc)b1Gi+JTZEz~bR%K3aC50ODW>Aj_^a39e!)FR2J+aC)0soNpH$!SZ^C-I)Z z@dx3i=JQXCM^ku~!{5s;51tn^ zCco4VhrT}^8ZV zp#E&gpdDg;8?Bv$?`T5@W6rz$M&Jv*J^!!Y;6GlMp^PX{{%t6)4fe56MjW_2>%jZm z5bn#fnqe-_hEBl0R6H!tama`8Y#O|ds4t^-P@hkcZhmRY%g&RtmKv82?)TNL7;GKd za;(Q3q#nO*NGl)aVLnwa`w5xlZT%w~PZ9Vwl%El-BkE;8ohI*5{R$kz4dJnVpuPq1 z%CkzSU#~xa^FN#7P#&^QNao+K6SC)*(p^9rB&6n-cuR21P2t)6u3$W>Z%~EC;8AdX zU0Hv!#B+WzZr0Z^9?viK|1HmHq5SgogY`#JT%zBL&%1582J_H*?B~}X=d@*(m$pyl zVPB_S_Y*SwVe@%9>x#g)q5OY?^R4w)Ni^s48t7YL2#@Cz`wW(6m2kQKip!N(`p*vdG@?f){TEj^#qPvE+M`b&hHn$K$(kD%9virs_py8bbV=6wDU`c5~5$McE# z%-UcNk0sC_ujTWb^|!T0L@b~7O@)-t*nM99N+VbPYw#44!_C1owv%4YM}%Js@B||C zJ>Yd6*4|ERegGqPt>e)b4Xh9S@>;Af4sWuts?Yy)>#lm4e{f%`d8=4p>fJb2zeR-D zFIbDzUtrPvG`4jJL9IpyD zwftrMOyh_R6?X*B!=D;SH05(D`fvD!@OVBkzp*^4gyu2zKXN|5%tIviUv!;n;yIa! zk#d#i#!&&%a+OY1)jDa>}hM4wq>559TZN?;FBn{+Wt#-tw#x^3PO$U%=F!d5CoVd;EEs>K*n&a6fdS zouFP%?SiAf)1F!{n1}WA)IP$^$hZ2DdAor(AcbfBBjZ1%Z$stp&55p^Or0jt?4M@n z>tqOz`v>E{r3QP%4b?6je3j5*Ewah620A5Vh55r%L#&zibk za9%&2hI!V7iU;$osf!_}Jevsn`Dpg@fq94w+G&=%pt&Bl?q}>hOg+SDPxmwN4#y$$ ziPm{Xf_JFsO!YJAI}Qi;{;+eaw}HMPUp$|kdJ@M+Q|CFnYLhwD`}s79XFuNnea(h& z@8@d;CqFk}ortx%;Gv%{K)mu?D%9S8!+yRv50OE8PrIIxo}-!CA5J|B`hMxOXXe+o zW8&d_$<$v6H^VO>5A&F*m#6To|88JBLi#pTPY$kUoT_6J`|mH%cakAI-rny-d@zQw zBJ$7U?4Nt`5W(%1=0)N2MbXj`-+DiYxyV#qyOZA3{1Wd`9QPCJCwQ3mOno?ohk8I` z6Ze8I-sazVUZ@s|~9xs=VfFC-p1cx6pm9}>HVo%aos@W`r*Gq-~akVQp<;USocnq{e<*#Bp%LNO#O%G z%%X3n9%KzxplTEot>54a3enWR@?ZMEEo3F$Z=EEb{WcK1zcB9lgNA;L%la1mYyAjQ zgVS>{zcyg}SDq-N&vuCG$$tGe{S5qi2=*lG6SzXZ@_C;IjPngTcC%bcKi4pjP;mXY zTys@$-lt(apqjM?+wM!Gu3HL&oA+saMTGmBfr{Dvp(z( zH|V@7gJ=D+fb~S++fa)~Px^YjSfbf4=R#k;A>7w%*|+CQyA3~dJmQx=Xl~zT?Za7B*FRdKwa z8?NJ&_#@Tt#JdTH>?fp`5Aklp@jKDks=m9y(=oJF-UHy>k)qF*&m)XS4L=tiK5L&a z=lS-a_v>@{Y=gdY8TaM$w8-(i?|X~`rzP;O1gG*t)1+r(k^Xr3;d;pijYO$4~74HxLi=oQ5r;GqpU3_jep0w1M{}c%P*3 zY`JY?JVN?5OrC4b_2u@xL{qs<+Y|a8F@(Ev({9pGxlR8)@Fx=ZZX(a+wh!>96%YEk zY1=`!@~jcm&rKUd3GfMF$4bGW(fD?FGMz74o!&Clnj1@oF|r$FDHhH&ra4I;*VJ_GnZiidt)ig@MO zMA*;AvY!v4IQBE`+a;e|s3XZw`WbVsX}Wf2eJSJdG~(gBz_gWONvfZTcQlT}+Q3^6 z-ntZ?_46r=M@ZiW>^k}9`As`RqPad}y*O=#A>8}Y4u z&zr_O^g(^jdM7{dKCV97^^B|4C?{KA&p}$hcB!QIAH>^;L-!C;{Y|{#WneaS`FuJQTgSNwUUS-Dg z#Ts>I2G{0!kXb`b+9l z8pNVjdDw$&Y;FS&ZK!c}3eT3ua>l8@wgIP^{5+&l$7?Q+i=l6vA>5b8YLTb@vI+A& zlwTabK-6-1TnfBU@vuCOLA>&;5wt(kcsBKyjq52cXdhXxV8!^T?|YT&-+q7$(sbh{ zk42|A?Wz4F^Ug%7Cki*U9M*z!9*)yec-FrcGfrcn4O2G;_ggkzD$(rU2cd7dA>8}- zUcuRan}DxYJoMj2#4FDx!v4F1{dX9>0-Cj=+CedgnIy?{VmR*=bL&f5dwo$Nva7)z8Gk`TxdOQ+U>Y?=v3G z!5Xd#o}i#Wd-~fp09NaVfOb9(1L63r|a0w`jYvj^0&O<;N}r4i(f(>=5fh7@dLejN&Mk;no=t?y`4BE=9-+CMWj&Df3K8JJ{t};dvqK!KbmdL{ zJiw)rS-)-h5N{cd`NB;tN8%lfV{sdJtHE2I!n5s4*6UR6HZ%@1r@Q&z^kXEN+tu%& zui6mq{ry|P+20svP(Ff({yqiq%Cm{k{h8CRVt=1OaqMq7Z;|zi6X1QD-FXXty@_?Y z^EcJq^IaZvH-j>$;Q64dXD%S>(fV!#@9X+>3(;s z`rZKV#T0$E+_o@I{ih8WQqK0}CgVSk?@isH?{|i9UvAVNAW*qAVcv^9^cdc>gWyzd zO+A3$rg&Ix82>F#*!aXa*3^mH+t(DwS+1CDP* z)|D%bH63xN%G7co9_B?&IVzt_N6P`er9fkt4bxu<*0t~*2Wme}Mc{2Qgu8NRnj|>; zxeWNniU)pf8VFhC*+kgSjl)ekcC+4OzNy||-oU(l z@ppIC-x?2lH%%kjz?%Txs1%;{cM;>1z70+Dg6rv;$|RcojcavKK7@OJ%l^AP5lwYl z@X+5=Ag4T=2wm6F)X4sBpg68i^qyS0ZeO0d##Gd&tnY_w!nuZ~W~VK)9^3rQVNL|T z4b4&TzSO1#g7dojT+A<58p3`4P8G2}+mN1&CCvj&ZtQ$z(?P(LXA|N2w1M+?2*tVj zWba^Jg6BWb`zIM?yiWxUihZ{E*E#XHNn14PAF3ydajYec64Kfm^Nt4hur}~8wl&Fo zBGZqyep0$8<2W`&pY`{djFX)2SjxA_|AJJS&E{reKb z;@>xcpR0J-ULQle@N61^~mu1OKhj_PQ3n{K@AeHvIv*pY>`p@@eZE@%{(L z)56W*S%17H`GH;=W_Jp%YifE^qPhRV_=PcpaPNz2o7aYiM%_oBQ8spAy%^ex$dW7#0{7mv5A0Oc5?Av+RCXe-- z&0P^MJV}f`vA$>?O@3|Wl_cjY7vln5PiF6Z2JOeE%;;u!ey>}5Tm#&#{h$*0+nv53 zgHe9OPXWZ=lJ-5o@P49q+BWmffFvE1pMPWbGPBD1mH9&;(>LJL{U~(htvr_t?1cV3 zz|RZ#(%&43_Hq#J!(ED8#r0$SM`y@^(-r;pIft40$AWL?0aQxVXy43#!K9vFW6)zEVboMb(o&A(DveY?S!5y*E|pM z8h*0;iN6@fY!L{`Cwuu5AM=9dg#o{{@+bbGIF<$c*281^+e}6)GxGP-=OISL%6ReI{tG#!a4|bDUM&xYN;Mkh?-AT zd^3J^!7zh!gUuHyhCT3>PV}AY$7THODSYuKpppi*lVqjenw#wx_< zTnXjX&5rBnD5&OOhz#1tRro>n===oV7am}Gws-9ZV`(#N=XnR#*O&_~oMm!z9e$7C zJnlXW{4TTb=k&a*FkipdG{9})euVRNC&i*aGp1J}U%sbE%^C8wv(J}Y=s+2Bc0EAa zVcYfmmp&HWZhHBA!Pe$`IA4U(oND0>VZJa16HfV>_a44qV-|jy%oo{Cvf#GtLti;x z&-1rz^_^L8@FVzgR|mO>i$ zG0V+FGun(bqwsH>;hvfMg~+uiSC3R@)ciMAM<0v#Fg;v7LObRBNG_POs6Tpl=a-%w z7q+iOSDT(PALz`vkD94flFh=!SE@%XJ9Dglz`k7W{o2j9T3Ko$b*PTC}piI^aouI;MO3q`|R$`LL}!jsbyv z+)gCU+V>aJ!P{3TX$SRu(T53twTxH$go__+-$d2Nf7rgr%~7abssE$_v3=w_^5N*f zJ~@xgajI|8kD>n>IX0~4i*u9ys}oL(aPfoft5<#ehwbZt`cCguN5A0hlLo~0k?+Wd zm4SWI&^S)@EzS%5cMQk!{IumH)UR^0xHvH%X;}!J!t*BOAZ{(&xr8E7pNygRzT3HH zIPwr4d!MzOHljwt^8?JsTV~@}0ip)gNAt$ySha>IF}cGad!Pt%d`C#p8=((H3&z}z zLX3YT_^X2WR_22(>zPOP*|50M%yZ*Bd`5w?qJ5Mh+>P@sI+pR~1hvu@v-r13|DJ<* z;n_66MBMf4-wP>{`z5*#Kf8zhyf54PPrSRmA5Me*OMP-}_BY90i9^@bKk0AcBf~8+ zpON&l`TJwoLiK?7H{#eRwsF1pX8L|h_AQ8S!{Qr*`^;s$kn?CmR-$}PG=$r7u`;%w zj!@1a9<^Xyz5mZF4aKo1p8ARaKk+)D8&w!thWSuD?;s@ zzWDoV=zlNJ|GMd#q5n(O|Fzmp=WP~1H_dLtyU7-Ky)&?v(ej1Y+pSc~G4#j3Mepk6 zYWGg8ce-gZjj+88e;2?X_3U#>5yARpMn~xX7Ug_`q|xo}csb9&`g%fvVD!0jf2>Xs zocxZ!Ybi#;&Icy&oq^A=DC8eb;Fu!}#@Igt=S;?-&UNpOUK+va?+f|Oz?X@R9)C~B zV=UeYZDHP_CWr1!=<)9aJ{WcLameHE;2*K%n1z*UsDC%bcLN8ydLEs?F=t@;Jw->) zUnFph|BPdiJOjFV-j%>H7Bh}>|1+Sg=c@^PoZ{nvLszez6F6o8ERXfn4Cv}LK7nJ- zz<4Qe=<2mHftSKR2Lh`U{{crW3H*zAmahc|Y4v&|A&;_Ud93+oAT8j_V)FGW-v}IO z^{!0FW6r?x*h?TAfXC}!i^^ksoq@D^-&8^J3}GSNTQ2kyf7_6Y`5x zeg$x(1$<>p9=YNCuL6#=`fNzZLyqg;;lO(`zA7ee=%0yx zdd9je_*ts|Ea0%E?@I~&=P7<3aOmor%-=xy82z8z^_&OTHw&t@9_kFgW@*;hpv7fB=DORzZp1m z^>3HJZ&&8SO1y>en0SWz#c;Xcm(6)V)gGKm46N#q}Bh7g#0ri zKO1X<8AuCwA3|7-`SXfIf?P_Tb2J7IMN!J$UoXG_g^zHAD;nT1E;BeI&Tp1nMrz9 zq$>~bxWAe?6#SEz9~%#5Vsxke5Pzc?NPFPJaeJwp8Se@XbPaqjfg_&k!)*GCx|erd zygtnAuJTw5Qd)z$Cggi7o(CK=s6qJ&9Gek2H<<{VUnb{H;AiMOYm3Z#XXc4NXU#|Y z@cp3gMRDL9IN-Hs5%p9rmIJZw}0Y|G1 zSjWe?PEvRkiq9{lQ%rOTLq3bouV&V(J&oYO_95RS>}gbcP#!a3JMd+s=|@{$ zEh;}7c&#x*6Z4muvw>fTb;e7QKJdOV`S~ip2=Yj4=sAh>7is#-fWubc2gT%J4cF%t zz>(I_?-KIx9*yraSK&Zfz|dqwhXY4i!|*bVnEu06ejRY61$c*yTEjag|2ftFD)5K0;4iBFH-N*IJ@-!NhaBsF z8#rtMzA~o&4b}fH@Mp5%Z>#o??B|JT4_3-EaR_)_(M3;f+I_}8lc2jH+}uf+UyCge!}toFcR3-Gvqeh~e$ zIs*SZ6Neo4Z?m=o4qNt0^v@*6`ga5lTYxVM{R27fKW6O={M#(}j;g;WaM&_pY25!L z$NKwn9td9&)8A9|4*=eg<>Po?)jt?GY#D)<&&1>*$NF~z4qJdPj^Tq<|DM2i&Vuiz z`u712TlP+@uV+Dy^^XP)TY$&v&#Zk^|2W_Svf!gt|3u)hW$)i7?1vodF9Z%-fXn`| zj*qh@s{T^oduG84RevRL*s{-V3H^{`{k6bh3-F_2{;5>`^}xqv!E052BXHQV&ov4C zkYoKVz+nsUBV+m-RsU?@rCIP6)xQWhY}t2ELObHR|XDev;xR0f(+p*Cp`N z6h93(bd7pCfuE)LS-_!d)aMEOJjKrg4qc;rB=CzAzX&*VjUJc4FH!sw;LtUCP6Gd> z;=cqAU8C10@GBI@nqU@mjZUoZXI(Gle<;q6V@+W8yHd+Pm=DkTE!8OC;PQMp7kyN0 zHtfgKS(MI3=JUsXcbQ!JV#o7Yx2ipNf(P68dn94+omyY1PRwRJw%;@BUX{NW_)W%) zN%lt%D*hmF=o*t)pUv8&_*1~4YixZYeWXk6X%5z3vsxIBt#4*MrS?4w9C?9!9Di2z zzW^Mzj4Ms(e?jG62L3qXytC~5^Rmj*n1-~*J(G~%tnzOGM_Ryf_95`^TPlzKaTe0r ze{Mp4i^{(b9BBbRBPRd8%6|+TY3=_>LjGfw{|q?N0*+P@r2m=9Q=fvg#;;1qZ&mrP zfFmv7Xmx@7S1P{^IMN!QY){)nes&&kqy_xwnEdxD|2=S|HQ|tW`lwRe-{5aF3%VvG z=0me1#UtR*H6byc;-X5C$NHaiO-!thXLnJ&3vlR~SeQt^tKz6%q-)}u1de#xAHZG{ z?-@U(uXump-GL|eli)Y8e<*P1n)G@?eyI8v>;G9O3*g6x z{+&HsUMr0!LbSnM+*$PQ~v84qbS8NF2Xc@q2+oS9xMT zfA)ilKL{MU$`kX8*_#yK1RT2Xl7_hc#}%hK1YLN!K^%Wd@uz@8SH*$^{;c9J0EaF- z96v7qg8JuW;P53qJU`~2msNf$pso7gp z{(ay`3pig1`y=@K&qUn&D*rLQBdw}2iS$2K`OknOE#Rlc(*I25w*p66RmuKktIB^R zX#qbqCjXVnZv&3B@UZB3{wuM?A0B=kx}SwCJJ7 zq5Pak<-8?_d!}z?3@tFVS^w<0ih5hgaJv20yzdY4H9Qt7k9!eS44>{I90yu1;hgQbq zhpYaPzz8KdJIo3ZOIBcPZGsg6fQT_SAhi1XYtNvo(umukjjO&LS z>n{fmTj*hfG5y7=zZ&?+EO@!!T9t7BWw$Q`OV)~b; z{*}O+vf#^A|7zf{1rNW9>xUfcUke!T9`+Q|f1K(+1^CJ=_y*N~25{JdhY!W|Lyq;I101%{!--=0&rtmr06!`VevazD z7&vUf!+GNRA;H& z$NC=x4qNCUDKY)`s{T#Dug`)%sQMoV4qNbWjktcuvHquk!xrH2`v17I{*P7vR^Xen;Ge1fuYkiA+_WCo z4>{Jq4LEF}o7!Xgzf%3*1AjjYzD@McHNasDZo-c1haB`%h~~f+x=B0K4>=zHSA7J0 zYZg3G{Sk23f}5mc`sa31yc5Ouy8?$U+>{!}yXtkLy>VUP6TmNzUr#u< zyUKTmJkr7*L0rDK;{Aa`7j8z3EzBD+4cAyc{@mW#H9{R|AKx47^V8Lwf;-t_-|E%IAp7fuk%B zNS03%9}Tz zuG8i4;})6k&s`4QOyLr+^wKQ)ma<3$uGhB;*WsPKaNZJ@;6>F8gG(pGS;2^q9=+pJ)6a^2BxdJOSw) z#qs=c==pj*w)F$)`xe(x;GQ>JQ*2fbOSBvG;$2Pwj(zgEYmGT9x3*iO=3izHq};w6K%tT>K{grH}1~o62@SZgs!;OUCalh{pB$OHd9& z>f>Dc#r0+flQa1$6J4~ygn?ZbG4>tuJ#HQSXb z9?eI8$9SpYADSKRF?}39_ZG&@o(l|f=RRO|xXA3p_X9wGH1`gb-%jOUG&`JZx_Eiq ziwONJPu#hWnH}btu3jGHPU)ZemC8S3cBnHudU=$)lLvS1n`Vb0W*0C2n99GS@{gJw zx|*(D{*Q`3qxeIn%U?tNe^UMTo1D4`-@BMDC)53W;=gDv+B>EHF`sQP(Vzzt_)Cg! z6#aAmVY(b`I(zxoR6qQOyhn3CHCT^y#u1h;Vs2|9$XTvfPQU*eUd+t-xbHexDLp(e}-TzLWmYm zba;m^%~-NO%EMTF(WNF@kY}QT2@daytt+WtR6cXj?mu&w`@;6+;yDy_uPybFi{<)# zOK|D0mKeI9d+@F3^Kczqiy6!HpUY3`b%gQO2Ew!VqaEPo1vu}w)Ev#}lYO|pU|t#O zU~elfe;JqYH?{sy|FvMDX}4ZPqW;Agx^?SJ0YCR%i-(~;AQT5g`nnNp6U7{@s#XTm0w#l|N zE?UG_$MN^}8|6Mk(n5FJ()dJeEEYKbxdFZ;&S3j)5fQpiWdY``Gx}m|oG8~(vVCJ< z+X%ML?1}zy3g(6fj5huMY_{k6vBTZk2CqaOPd3pJ-#{PEI$vpWJCS~>U-L0nM2PaL z`7eER#uSU|-$E(#oXNj)7+v!z{@sG=P5LqZ%sU-(repD!R;0P6U5@G>hI9MCDMaJG zL0V7Y+xDhiPqTgJl=7ixHXeieGlKo2^R{_EgC49)=5HcZ5*Y7@n!OVL4n^%gz#nY{u53S|H1BP{}b>&+z6abrrp)1Q)i?v{o5Rt zixz2F;aARD++xf2<+62jxAi)-3(SsuaPn7kT(syihqZsl)$78x!oPSP z5*@^K@;9nH&7CB)$1o=H5%$oJfOn8G^hNV-lVcIMPW}$WJq(?Ewwx8TzX3JZ;SX?J zwCEJojv3n5rlaJqBl4FucdXw&2RZi~eVS_S2B*W$f1-KMn|43D0QDPncR>@{cQEhe z_FoJf{l|haI2r<++H)d*2XsN1;8=82kUyPwEPC6eor9#Z`Zo{Py3n!ceJ{UYHOq0F zYRH*KvGi9X2B5(9PYJS*syvSTH*w)d5$fL{-}g8P z=%@aJ>b0%m4&yJVn+sk>+5OA3yAt8ScPr z#9z5fl9S!h5s1*fz+gXW$#zPwNG&Gorb_L>j|ma15sh;>_3jVp;4z`vZS7es4jf z>YqOX@?!!r@k1OZO_Bk4@O*vyd=Pqqg6TdLA1qJzEgyop!bD+TjCh~g1@#$ zyRsR}=0CQ7e!0lP{s^{4L%N&JFPh!F{WBSl7C$dMd=f76$e*acTs~Nb%wOna-51!` zxrePkh~@I_;JwZH>xkbe?cDl*KI%R~wD@WMOCOy#nmxomn&;B}c}GBx+j$V4^WW33 zZ!L}u5^p~l7kPT706k-iuS1UERR2i+I2-H#LVkx~s7)9kPK?^&zlZpnvwt=J49Ahq zzmj>Zl+PK0FMiA^=zN;lC42p$`;%nc@%00P-uw%ktoy?LCjJ3D7bgGb_6RI>_MuNk zh!+3BiFPiR=NA4S?%q4VucGSzpWVI5Zh8-?ut^96X`x3zAksn$C6Su4DO-{)Nwy@r zo3@+Kdy^t4APA_aC_IRQ0*V3(0)mQ)5)=i+f`|wYV7{+&rrf#rv!5i-^MgO0-z4|5 zpU=F{oHOUlnR@5Wwe?TNV7JpwL=A*cs{O=1ZzBJVkT!f#+>c}GG1Fp`ERTF#ax|f^hPohp9cehJFFOc=$$Mn;FO8C#OB!A-= z3#ENc|C`Ks+df+VUWkokwvY*uKON&OBafG*P|2>e>V%O0Jyk~8ah87>_lE}UY$~*V zO_p&WeNp8acraF6@oy3`4!mE+ft&a)_M1a`^sH>>cN9GTEAQ61P??Owuc0qsEI#b_ zZXAyO$(7bO%Z|G_Bpx`}R0RF!-r)4VE#UobapPn!f8K-8JQ;BPqWRlG{nv3geeVf% zv?-O?_cnOEph;8yzJ5yWly)`>%3pBldF5GtnX5%X{dY^hrF^jM+(VTpS#($+?!8Ch zJh%Z#S^lIK|Co2b+9&qE{->G&)<3qKf9-!ao?!dm*TyiOxu122#Pr+G^f_G0Py26K zyP0ar#y0S`in1PM`u@h%f5qujwEw1mXN@PBKiKqrJX%MZPn^f~`#970>&Bitrs)SO zUb5Zes(%^pn(q46+r8~?!=GTMJ3^5@R76G&O4^9GwC z<+1$p6<7K5ku~A*9DcFI&wn}aAN-CPnC73l!~CFZ>;dEtTkJ6341V0C>%{Y~cJk+= zM=Sm1n?{z3G`-sQVda}Fd^_+@UN*a{eXDF#QW=$B?`NI=<@)@B_IeYErTod$oL4QQ z_*2TSDvd}Y`;~7teXalWW!`1)bIfMf!r{!zLNB5I_ce6J2j|%_faO+UO3U0j1^kow zcWHD|m98_E|DlloDLwKR|6Xjh23({}zgA(r3E^!b?SrRz*pBL9Ay zzABx+lz+!ml+b@BlPHhlS=y3${)8K8gEpn}Sk({tmH5xxMYNAiUc4ziU1pY*npWnz zCD-o=uXg6a6={0m&m1|aJi_vy|D@$V@@7*eoP@u&pC?kksn>*L+zg70$)o(({0two zq@@RBCF6&O(cAW^$preA zD#kj;$r!nm0^4VE_n!MKIeLeFlRjO3-c_}e`lk2k=HG1DIQ}wc)FA833uuEUw(I@4 zP=6;d{_y>~+|!|t@ArVw`pZm5?I(Iyf*z~XDPi)M1B*pLDAu zfd2BUMojN6wFQj7_#or`vg2v@7Fnwhrvjai~w#hp53(z)zsaVFXI;yij>*o}(#SV(^+(20Iv$*VFy)PHqIFrVPnRD-xs$IeWG)v4pPq4~ju)@I zm-L5mGz^`+kO?m1S?*`Zc^ne-OpZa9rRAmL-3wW2|DnaZX({{8aL?bl^i`LVjdGKm zgFmjG1wJ9@r~Iq%xq*}!Jd*Oi2DzVC{`%2ZW~2o2C*Q>X?26}f&a#=# zceg`CaW|i@`kbVI&u8?net7*PPR8q(G=YB!U83j3RQ~N2uVPK1>Z{;C%GyWL=y?B2 z;P-(q$>F5Y^GtZY^7K*Q$K>qy4VV6_r2jTeMD)Cf%7>@&zYqMo;P>VDlSXmIi!%2p zzb1#1M)B`bmb6>tD+6xZ+r#j|*3>Tko7zvtLoefJc1-IbZ$FzJyy~Z1Kgz&`>w9nH z@J;-7{HvZP{Z9&T9V=D+R^uffKJ;xhQ+2#2W2q|FmXu#iyRtz^1P|lI1)Vloc^CM( z)V&Jhap|w@daAEs(VRQz|0**6=0&G}d+bkAIP@orB>fv)e~v)DX88X%_?tOAZ?F9C zP0)+|g#Y_o>3CQf#r)?A&3|(IH`%cuZLWl55`FoVReY;3wZAUVH4!)MVFC=pi`XM{s--++62R&!U3)+6^9LCO9G#|A2!w-qtdz}M; z>wISq(yuYYd1NrO*E)wfoB0&}&pp*-etQlVnS$H?Nahs7&y40<3qGc}=I^Qscnmee zo8tV5OypnCSF)#J_(OKRz~*0M+WZM9bF$$~Ieh*!PUVxoD=!D%K7%I<4m2f0Y}=lU zy@mFV!HguL{4D=NOv%875@X7~brm>^De@!Wp9DWaVoce$8GFcLjQj}rQO5l8Qi-ua zHm%6FfFEm0Zu~g;Iuri%X)>70;4@9hH6y_1fp6>qKZWu7E#M0oi?#QFpK8bRtOb;v zxTXjEO!9ZLNVGvV^~kr7zj>NJiAolri)<>&;0rZ>7C*KJyhih9@tHl~OWl0qB>11w z1Kwmx*4TC>8ONMRHce&ZH-o<*G0aD%fwL(q#^=9iO4eTJ@PonG^yP7BzqqF>LF<%$ zV+6)_Gab(e&KO*A>bVbnzhq7c?VoG&^nGWOW>e2;-@w!M?_8Tq+Q&(|f&Vs#+q~(y z@sp~+f0xB4O|j{@36)G@-hTXc0hjrfj7y~T%&nGEexpdY%pA;q&C?kf9-{Xu<-XN{ z+`T+pKTl$2wTyW}Go$cEGno_4r*amn%*U!3liS}@nCDJ2`e3AVu&#-4$`uNY||98^uo^Fzj9kg$>88SE6{{w4_5A##T&F}QDDe=$mJ=vtJZlhM*nyX{exxohi>=jB!4GJ!?)& zNdGW>rEPn+kevFBf6S-cXp1Ezl~+@KQ==q}uD_xW=)HSH$Gm0Xe(Xp33j2}h(Mww0 zIy7|Ul@Z-_&>cvelpmqwLbq=Vxs^9Ybf1ClP)j49WnVY_<*&{=Z;R;eg6;@GY$$s? zqN9BZdOQf-8J-G$o7}vti#hnC#u;Y1Izmpz9el4H}nPPSkzVn!4dj03traa}_ z(2=HG{zAtffa-Z5_W!EHxcWO-zA}h*E1ODJVd)mO2!@|Xo@`*8T%zBUZXjn!h3WoF_#4wN&=C{5t@LmY^pRe3zpr$;NX&oOHnvBk(fm06bI*YPjVWvW2LGxl zBZg%7JNhb_(>`2CKlk-$J-Ex5`rjK zJm>Z!Kkmka_;)+~cl&cDnO@1o9ChG50AXXBp2Sqx&7=rUsP+#MxDY{C6pgc zi1Ry%es1DBIXUEalD@xb(m+9C`ib-v6JN{G;};X(7%{|;7&7#4gT2@T{VOAe$U8bE zWat@VO?=YEhfm@E{D{&Cu3}~A9|zOkF;L6AD4BS_*n8rm5}ToCY&-F~h*rJ|{mn{$ zr~J&&(;rS;Be78^Bd$y7FPB)U=Zn~Lwuo{(<|?iS*lMCm`| zubSW9wx5~UO5QSlT{A!2IE{1+?#!u%`+J0eFf{5dp)&)Eh152j7OCP$w@ zxueog%hOkN(t7NPh^jD>S!Bl=q-}fzVG?jr? z^w@;{*6rGva$0aHb#h9MFM3YWe9!%p@_j~FSwEOG73`!OJ$g=>A^DiJuhPGf#bdvi zw3z2&b=OlwgWiiPG`%f{eEQd*9bliQUEB{l-(k}h+~?S&bEssot^e};tq=WL%-&&L zaG zEuJoVF5X$CgwB`GI>nR4^DG^o{rkoBY=ezg`#%7`nTn_OKiA=6fBG}Z zK+>nUn~SS`9|GTC`X8FN@8!gYIlIe;)U&UueXo|7P|xI!Ky2aS^(<%ZsPPnjzW#9E zeDP$yiFcT{9AJRy|VW6(brQWut&x5xWRlPrEL(Dr}Y zj4H{r?=Qj2(gh+Je=L5LG5iEOVpX{nnjd*DX~Lz=v(UkKfwxqfG93+S*b z&rIog6S61b!dIC0us(bKH@F^8`F~X3s9&;nnN*Kb3CZGL21)(@YPQeVt-5!h3qDUWi-N#aHk&e9p)jBKbp&onvKBjyU z`1&wlh~fFP$WN;$!pG8i8uioa$;{u~h*|Zpej0g2>ZjG?;4vjlUXX8}AM0ib^gawY zDCeiu`@+l8c^VxjS0CJ?pQia~iSn}tJPu5g7v#s=Tj=QjtBdvjKHsyHS5m!4;5p!o zyq_EgA4?aAq`p_r%++_nqik zE)Yq5udb7Rrh0)yYCj|I8O^ppVdoC=`%k8|k}jOF+=P%%+QjOblx;yiy?uqQo@wcY4sb4L&+Uvz!a`@cIfJYwgwD+d#)WrrM1s3ix@u=x6}CHp`FCfqR*K z!g#X!TQ*+p@*U__D4w;;=ZJT7flET%y=s@wOPtz8-mjXsiyPTvhXF^1d75kVB%Rlr zxp4KJfqP*;71OcKRs97^TcCGLM_*9=rEQ>N99?biZ4}D&cKnX=Nvf|4c^tUZd_1+| zt2SQk_&WTqHiBpENMBs-=mHn1Pd`;V{#fEN^(k$c;`$`d?Rx)8?e_?Lq)m3As9l7P zezW>1OISeH#k~XC;uh8d8ZV-c{Wa?^G8bTeC41Xi7^_8f%!~Wb{-VF_S6^3_N%bRv z^}sJi^|_|6jTd{@3?xtAF@k69{Vy;_7r0QLYkH}@-<3GEx1EpHN8^=rK3c3kvo={R zrQkw=9lakyS0io6dzNsEbnJKYO=1C^vkSUPNUHyC`SCgM#i%~l>}=!JF1teay5bqT z)Qm!oqYGT{!y0*EZ&EW>;aSJMbH51kdWZAMyGAlyciV>G^p=Seg4QWuUc z;GcOu+1D@TBoY$z@L|xG%!1UuXW3|(ht`}${pX=L@G$?WX^3#ECf?C` zAu^t+sg3T_y#bQ2_OpP!J1kxWeda^AG^8r@r%kq#1iM;Ew=zBj49*Gin~TY=qUeQA7( z>dRQ8=ElHn>-q})=ee%8X^QH5r{YP?rGfY0HRfZfzTdX-qHo0kNadB`2I{`M$5 zEnOgzadXYnYX8S1Qsu|zTzNTfn2N~@xH(g5XHFrX-zEK%DLajq_IW;el$tZ2=Ph{u ze1`s~qe z^x;9T{o#|&xwmcyp+Ao6lQt_sZjpLlEA%IG&2aR2JGlCxbf-c$GorI!^>efLmpS?~ zf!>Fq>&(e%{a9n8wSF)+sCmZ-o~<7>$gy9u67d`)lr-|TqD>nrr!&#m?M0VIA4?PsmfbHB3It}EE_M^FBAtIAKH_hINu z=FqG^vCdy>={${5fBKy2uRT8YW&>=d{S*tN^FHfWeKIX+>{ngLxIAUQReK2iHC&h2 zG+Xs6p}&#qDo0<;uY~RvuDIV%vlZIi+B-BdsqG5jusx#ZC~94QE`C*K;5Wwzp7kr% z`8{3WLcd>oZ?tbn%30do4(*xTsen;^{4(_U{$I}Z@;#aCDX)colO1o?{zN4uwO?@wmZ#`cLKi4!`9?}ld@7Mk~Wux(S z9w0ee&c51K<>&LaNoggW55u08b7P<3Cw+tLpR1*Btli{c_gC`wE7lp^7EqVJ2F>4s z$X<*oWbc{}Tg}gVN}1ID)Tc1R-ZNvf`S~+EEnOhe{_}0M*Iy+v$niPy<7U>C()C4` zc~39)dxh(tDcitjzV6*m?dRJGp?{Z4{F|V5uwU(OY$xl9_@o5k@5As)vqy>l;r*p< zjEzx0W<3?Z7rKle*Y$;;qx0!S|GMF#f879ybNQB22Bqb1C-=78?fHn4hfJ4AN?J~J z^jCH1+}Y}3&zY4cZfcbu_EEa+_{*NeAjh_&ne&%}KD#NIr1N3;Y;!=SJnMFZpQZCO zdOx6Ur)Xc3*jMs%q}3(lXM57_k|xvmv_8tI#BJ2%P#^0KRobL(`;cb%RdW7V}Kp37IWdQ;R+)SaQUN!`?tX82RNc|zSW z@U(P+NXvb;mizG%sdA*BvYu*lCgW;*e&2r}k!5vDC*^rKSG@i&ex2Gc&8PEsrDu)3 zZY$$}y19}Y<*#4(82)Co?o_wdMysE9Luc`8>{wVKO6QGJgleG-C=Q==Qe(kanzj-kNx;E(m6UWMD2Hr`pcCPr~V@ST{Sf& z_G8XdmY&ZM)#kWty{7-Kvvh$-##MDcQhVGhk)i&? z7Loe%ni-tlj|gT-^UJuP&W%Bo&n7;_FSlkFN%shs8&jzKE!jorALDZUwbJ)w7w@-1 z{}k7wk}LF+b~Fm1oqkRule%=AGU7fnKaAV!TsrZ`rBWBVjo{h(`WxbN{MFxHSNpys z5>$S|2x$@CLXX7n^8HFDEbupeRUc`We!-RYm4*5C`U%~ixL&qO73de!{SCT57NK)~ zv}C;EBHxFRJDAF>AN{vU9G$0;xnr_K_vh8UFOiy$UO`Ve_h0lpxj@giNLP}wDVl$w zV_!g>G-QM=()EM3tOy%iu%)^!~Qw zP-UFdy%hwEoRPEhlAY1R(gh-^uS*UTe_EowzS<$->EzU(`W&hLG`%!#x0XyG#U3e} zV)j$IeW2ad(r%G%8gx^)f$kH~?N@}(``rS?6Xg3aaz$>Qu;du{SUOLG9f+Hw_Bc)= zHNU-rJ;d+C9{63(9`yT5PDBcICK;}ZC!?YCvvi@4j>9+yjm>tDP*q&_~*Pv=id(caN{8d+OPmToWhSX!D!I=dv?mysRrwDI`afNH6a+HkWb z?1)2sW6fb{MarS5-a^NCYH2S^yG6R8(7AgETcq0#xI z-~D~s9`5fgouRan&WG)OA?Gny&zP~b;CpZGXI=zSP9(Xda{AL*Ua_BDLOv~>r_p_^ORv{*y+R^Gxn?brmaD9f`f~L~ zlyts)>6e$fzFYa_{V=9u{eS7zLPh#KoiAtI4G3M@FOOPdrlo#xpG~iR@H6NZ7{RlC zz&-h;j?Pl^DSq&E)mwWk=Lbs*{DAwZ@}2^(YS8m`(%&1n70>^(N|P+TJ)Wl((ns&ntOT)qvzAEoRI?Cr}%=$__!%+eOn`EvQ0 z;>prPIQA&z;oo1>MgS&y+*` zU}QNuOU)A^%LP`={$|i z&lD+#`kf>)Du=k`PRoJ$iq>0M55Wn&zsO$H`dw4DMeVwm(#YObA4Y#m{Keb-a2u`u zJqMn>jo?|k9z?vO^GwvPhZNYgv8Y|yb67t;q%LmP)0IZg>~Peh|CqPy3GlLXDMKk| z-G@+rvP1^EW^=T4yB-Z69T`~GMeRCA@udD}OULJ!-mzVm+jzC>W$@ff@vL2Ih<9{> zi|A3W{;@>joWC{|*tJM|USCCew|1}Ti}XkJ7pX)&4@JL`|9x`pNPQ=~ES)3a5A8_( zxthOq5*h5A&0%V1_Bm~-J+Ei)LH*e&`vQCWdMR`laCKYS0y^){mnojW*M~7xaXWIW zjn;B`1b%aj;MsDyo_I&+nW(?(zJz+6scX5|`w6la&b8*)L*LItd+8efP+zZt=PiL- zasRh-=%oItKs)9ehW9c&!|!s;&-l3hD_qfBTPdYn^gM$4yXCjawfoNOXkKzisSrPS zvgFO*DT@0i#wy z+4A@?@s7?j(en6->|-p^DAiZ?$;7QFNU;A8;1P{Y3iR^%`Kz)^>VFU zJgHCT?_+01`$!vXzpMRf!({k9Vg%3H|2@uBadaVPv{Mawen4KjBB7K>Ub>(E|pPBcTct2^FptMPSy6!Ue?A-p12Ks+TmolbaH0XIN z4Z|c-<;#7fkW;A@8ZYPmALgrtKlk6~SI(4a7@e}!_@46X%17yUAdMSK6e}NWEJQ%G)%M6Qa>8LLHYc{2%agQhCRU?oo6ETqhTNM#|9k%xbl$`AoX1W{MPb8 zWla+F+=UeT2QEeHwLLcsTD?1=^kd&Lqtkq!rg8CmOveo}<=K26MS4q@3Y79XS@S(Z zBBOlk8`{XHdq3RQ$hyzHD_7dDhQqjKrtDNNd!I4$KDwZ<(9h;N&ZddzGw;6(ez;2M zM2-*Rw#%*0G%SFhrSmj;->jio^;#^EPENc_vO(kRK2fPREQY1~L>tb6r;Z3LOHFV6 zZy_Zb-m@0;68dFaH4*(5_Vp?MHt01M&h9udO`@=KuiVccoCeSHnx@Ue8B20tWD z=jRRQNF?^m@9PuaOxs7huP>^PYL3vJH>`$VG&b3)J%s)WuJc8@v;UUtA@tXBUFzs% z92MKc*K?s`{@+k+{@-Pi)>$UG=-(!}cyIPEuun?zF8fRy{>WeOrh`m!;>*x+U$XNH zCON4;*CYmHM_SqcUp|B1enYv4Y#+vb-poqt>+fu|v@?xTk0u+zv-R~s;vJo5BKLzE zo>ISlNaC~{D)2|Y+g)~R;#1UP+5bGFz_0Hky{-&cj$189q5lz=9amU+TPjDPe}?NZ z$3I_=U7U?2dkMd6%%=|EI)m#d-ktM2X9Tv}G#}-sFQ3LfDkW)1$6n+6n!_^Vj)uQb zHkK~U67{MvQTvN#wqD78jC={WnuUF3ANGv2pUc%Ne6r!~l>JuAL+Ib<`ln5!^jj(q z=o_Vtf7j9H%fr_zp(}?D)g)*?V87bmo9uo=d{u(fB_GDmkIt)T+}=j3U)w%Z@QhzK zZig&K=b1?V**H2nKTPu3i`APNMhlFnRZr?k;}EWNZe2W|+6yba7cu_n-1AtCQ@|~q zr_uF-#$9v!b}P7>*`#fL*vl01GZ7wpq{%hDr+qWtes*0tX`C3+jQ^9oXYLt(yZJ^V z?Ng(r3q&&BZPau38V{97ZO_H;@;UQVdC`GwLSOPc96 zO;Nu%N$~`FAGRN94hrpE<3<~;esLcB1{lG!esL!8j?Oc|CP|~-cW=}?3z}aUU-&y( zUfloMl)#zlc^q2G9Yg|3dP%F-6-8`CvHSG^5%&Co5~2D(+yE!zgV zHPE^F_7?NUxS+A42tV(S=P8~v&bD-XZvU*Ak(S#nHeSn(zOwNo#k1u`Ki}x+0vGYu z8>O9W)Sg<)LE5SKP05rU@yw6?#7q|5%DaR|D7TB?@EM7*p{Tw>$Nm4tYm3l%eZQc% zJX7w&4*Nv=BiZw)LG^tKe&-p%!~V#|CoE1blg4Mce{_z+Y)-aFHyFB#B6QA=&{;x)d>?lBqd73O&lnr6_BjB$ zH;v%IkDB(excEtHCHT)A9{EYrj^xA9c_HE_O?!x+H0>;Lp&mBs2u@Zh^vs2&qwmKKe^?q`N@{xS{Q27~iY-Zfp zv;jVr&eQ1qgQknsKIfDYtNO;zH#RVml6ZN3r@Oa%Ue?ixT^MULU6`^fs;|&--=)cp zCyMLAypJG!eVA~#DbMP01GuI0G*%DYZ`ky?NRRYXL9YknK&yxLnirSq#H;+`P|lx* z_iZWLqWTCO`~RBUxTb*4my7NKfbP?Q=Y&|J)M#rQA489z4tn)e`{s`#V~{%d0VaJ{_Ei6HSzD;^!9tzrT?eqLGax(>0jqv=C!?fCS2dAWdFgmY{(BZ*b~re^3UI2n*ms$X3&=~a zv$FgpUi@Pja|?XL^g1_dzh&hvJ@c$4Wc9i+m%g9F>HFbjdi^+u4|4b*aCr54Glvgz z_%LvI_1+_gZ|Cr_;PC2wY7QR@zCYLw_|FXRoPQB-^*mmY7@^pn7m1%792 z-(^@^@m*C$A-*d(KF-(`n_j|M+0;QPxrU%&AiYoDW`!ItIGdl=>U(Pc-2Q~#EoNcrQ7 z<#%N34}Ndc&xZzCfhvE_EDU6$j<;dWSDl9;RY# z4qpaN+sZp?ll^Hw!FSH&uf?Tb4Gpp?^7dP0(^p*sjx6v4GwDgE_4fhnyBYi+x%#`_ z@n27R^3vysT>dsXd?Wa3@N;wcc@Dn{9A14spTjQ#r~WNZz$vRfPv!jcGH}Xo`8aUO zy3bE@<#!c0<+FT8aLN*Vr;L8rI{DXvlh;1~$;rRL;WvQ8tM8N?ev`v*0*4nbam}=^ z%Wie}t>EzDC5T!44u{_X4zGTtIsD5G|1vnd`sL++&Ea1IhZl#LXZhdb@O!}F#Ua>P z{F@H{COEwM_siiAIQ;wI@ZxabZ2E_+e=KJ$lQ!P;zb)q<->2VvgZ`82jL(5T$kT&_ z&^|oo_&-K^^3wn59RD9X{Kw$%;!xSF{HGoMG&sCClr@V#=kVvi;l&}TS^O6c{{=X_ zIE*xl|Jva%fx~M+R}O#4wLkv`KTdHSNeBIY@6!Js99bN;ndSeg!(Ro57l%@2@z)*x zI=Jv!n#2F@@V|o#uP^5Ce>(i1;KJ+09R6>MFQbLxIaBLxm%W3&> zUrX9=(rNp;d^q@t;J4ZKRcIu5J5YbM9b7&bI`YIJX&E`onXhX-uK+(!aXX)K{mgPk zg^Ksrwm=VA%kUrU@KNCKf`2ysa3_DN%`=CiW#x|oryp8A4f*ISho@!uv*xezE1@AT zgLlrhL(40{X@^#vP5O(#cgwazv_CfeZlp(+99EX$KLwn2YQ_1azpMwGbkYtlKOX!6 z@Y-xWTRzqC-xnJ4GI&)kfBS;d4=tyErwruqu&n;mT>36>#`|)(SSEi5gNuFEaABFj zU(5ER%MWw>4+AGJ90r!SCjHHhW#;;^PHev-3K z9XPfea!bxWq~kq%Aq*{(yB(2#p6>WFzg|vWI1DMve~!cHYnRUkUzfwH99{(uFAl%S zreEyv#o+Mb5SJ`o=kNw_cyX9Y7AKzammof1hJ7=q-*T6JIXJR7>?E7M)#0t+4dCzP z@OFo{gTrfhWe#8C@QcCW#bFm&{$1eWANVhINbmzBvzs@$cH(Ss>Bp%b%lGX8Ki}au zg2SsI{l$*|i{RvC_$4|2yBu8n`)V$9;qZ%W{;sA?sFfU1e`xdMa18ko@^_s}e;w(O z#UT~h^fx;EW|bj_K4kHm!9~B@xX^V(zJ0jOrN0v#SsZ$hO^>a(MCZQ5N3>F8==(*ZGQXX9%02*M9O9m;M!S zWbx2XHvMZ3e+?X7JOq=)|Kjk!fWwQ2MY8xC4u1n2UOcRk#ou!HJK*r*p@uB}4!Gq1 zeJ*qzy<@I^y>HX6FyP4IA%skN;x+w>3UFkNJ~^9yMdH#Y;K*XLe>Q!E!~0VQ;Kk

c!z;nz#pdcPzN5o;1c%p{svJJW;Zwlj#U|iv`rRBp6&zk{n$6-;o;*39BZ zIQ$53c(JK5i_dWQ3~+d{xiE_#@9^Wn;l(DrEPj&1PXdP*o7A%SY=_SVhZmcjviRu^ zKOG!iY{tpra~!@H9A0cH$>LSaP0j{e!#w#R@b6~VIae$uy_C;&T$IK5Cvx_!bNm~? z$qSoBviuvsrGMzc|8G-#xFKxbWZRb&%U$~A&>)LV9oh7)4sQpC7n>ilcsu#85sv&7 zd?BX-5(57<^N)EblqW(?D&*%uN^;Mj(+37 z_sNc*S6mD(0JX_}>LiUbvZ><$oKvl;53P=pr{;GyLy#^6v#FuLbyBF8$r$ z$l8JZgPHVqt9*${R*+Y2R%YejYtvt{6dYM{Gc%L^ewA<2lh*?LL2%LkQ7&v%IWedI z!{CBF%+(H_Tc;qM#UBTUS7pBad))G0y(2hz;eF((ozA(#hwyy~yD6%%?w;mw{XB`g zfXjFSP@Yt1G?RG;^;C0|qiS)#r*Qh)G|m{@MN=)~o>;Y+MJjn)_#(bHb8h3F1u>S_ z(Pmfv+3&}@6RP$^Rx{Fe=kB9Ce^|}8YT_1x@5$8!S2>$XG(jZ%cnObb{%xZHI8$yos?W zYgbCA9t)l9-54ZOtU-MQPbw8BlD8kSj3*`}h8-Z#S&mmEKemr z3`mB~;wf-K!F@Q=^+E>vNl2O}=wH)oto=K5i5V>4dP;|mR<9|f!w1(7GD-I!O_!{% zEYUBTE(v=Bv^`c^?q}(mC+T1L7|Ie}iRcmd?gL*(*GijWL&Ud?5|@1k1j@md(Z`i4 zY2L$9^EvcUQ>OP5RqiKj{8-uu7luA#?EOZ?xrZiU?9c6AK8J2H6`A|1%}0|jM;EBr z7tuO!vsmz0iPQ3xeT?F#@_w0W-D6_!6Z?II(;eLalWd@@npuDH!P(8%M$4}^KE9Be zB)ce8YtoA!lxdA^lC;4NXDTOokFXD8Dn$=(r*$@3_Y25<@7ZR|E~YZGU!Zw0d2)1~ z39WY0+@X4MT(--<__3U2X-}_FP0@d7=3KU+6H2LARuA-TW-mf>W8hloU$23AI`;oH zFSWDE~l20GToND@{_LH`Pp!VZFH+wD^5+9wlA7h1P zM`x+|6#MCWWScJw_7gvmlWU{}bI%l@Xa8Wo>C?mehnmkNeW(kr`~&mIzCw3B*A*5l zYB!<#9M?75K*v3R<{OI8dAog4@q~Q(Fy`La@3_Y!LGAVk{5F^|-^o3{)qD@}j?Pl^ zSwh_X>UZ}AyV?C|^1hFHTf5XAeb{~cA1flV$5%-IK;TyBZ$AHzC{6rs;xTW-!3eGD$1>Ay}MokKec5%znpaOQ!_- zA?5yWwcEc!xl4Ofi-xUew*yFB z)o(mJUom4_a^>FA7u_9Q;6lI9qUZm1V_jG7lK;3QZT_V^<}-fLlGF00{cEAUXc-!~ z*>aR~_3S7uw5LM1;UZ{l|7+>WeCZ?C>p5O|311(^-Vp0~kd0P74}~A)^o3l%(8Aha zi=*>Q#J^kimvU@0a>_`n*`n1XAu9xb^I>Vh^F)muojmTTq^^ zKTx`lL$_BEI&Y6d6&JofjQwd;-&<#KemgTYpY!t^R^sn#toO}pnZDRPq0p(wA^Zv<5{v`$vtbgOW`Uv9kP?bmt`b@k-Hy=eWp{&eVmnWKyAkNB0; z+rt^DpTRp?j^w+H*X{VrwX&{$OL@Evzu)Hg#r3v}cY3wy`@iJfX!3q6Ih#TDvBqZs zqzpdfZ=sxSQpWP0I3LEH6}9V>odzxEAEMVnGj6fGpUs!^_bg61OGsL393HjnEngwt z(OGIf%ZU4qmh;`Aen>gn_fIaN&+`4@fVh6R;!WGVJK%F);99)h5V{Ar?y^a9;}5Z_^t(Ei2()|w-%i_^;fMQnCcHyT=zKdP?^$fsJF+&l zYZv4ha2@St{)nzOEvq21HY2k_ z>;J-!23P5vy|JMLX_tH$zh`9c)=C?#_C5f*znSp|n5m(jx9(%{@-FhvJfCMvEbj6< z^G@=+vuEw{k^T&JQo7xs-O+-@{7C8cf^L^0bY8Cm6i=X+kj(tP8Q&U>XIhWecpaCv z9tXd1X8gL`c^xzFCEn3lYCajaZ8$>e;mmJIoG-sa{>vnnUmU1Hyp(^-+3<1WD*Q&* zBakT}p&#;L{G+kmU4N~1Z-VXsGyX}lQ)+kDE|*((6&@Ck+Sk@INayIh5NTgqt0n)f zb29CSJZCGulC~rA_G;-ndH(?0`}rn=bg!>G3qJF~z%?6BztuY5VljPd9q|iYy!4Mz z2zJrc3g~79aQx=jE?R5se4_Po=#Denm&>^~-mbO`bUx8VnKZxV@YpWQ^IM~`Qc09+ z>v?LI^}#OE@3c}=8>vC*dv1qvzD9UYkD6tV)DPs@_ttYl-i!7-N_Qc&8!T;szk7Wy zS6rT{_hI`}qW;9Mf2p5*9ezz_`?Jh0sXb&(Qi_f|x?u6x9?bJwEuE)PKX1KL?Qu)6 zhm3RNx!7o|O1^u19=7#5c;23}E6~ri4@&oCXx(_CfX>_D>&h#E-iPh4i0kvOY_!^e zehc5&{syr_tS9|^tE2Nwq&~O)K=u4?&{Nv|Rn!J~D}t{N@_bvU59$1*6(4K;e&ANT zyoK&@u7@pcfu3Dpf8?z94u(L?C$3mz%yG1*=MQGj2K~pejE9e9UF^6r{@OMDROpBB zEz}=7HcimW2X2X_>!8x7N)S7@^&`(;H{1WxObq_kMqVY*|4K+&c)l#j^}nsmy*-^$ zDJAV{g_gtL<)`b%q#XR)DYPWW=cs(YJ3PE4#HEw-M5_Ia*-B7*mvV=~&-=XpVe^g5 zXInpr=;HBsMAx#OHt)L;U8%0oXoTk1t($CQeeIlh+?1qw@pi^`5~R$1*kM3aujxxQ zsGXVDw*J=aFjCITarL2Xs>RFkoAz74D;*yBd)sL2?C87@Y5&`H6+5?Wum1i5$RO-x z*G+tDw~Up9#nga~;Qy@Kru_k}o*8>v{63;K?iIATzFTCey=C1(TF_3j-1h@Y$Jsn> z6NJjqC5~>nD?jE*O1B4pcZ%rjSN#lj*jIlFy$?IwXao0=09yWvrqjg_UAp7?gLhQ2Il<~ z_zZB?$XHC*8WQr)cueu*Ew3?EIs7DtOMQbEi=x@|vmHJg99}FsX7SS<&OEjaUM#L< z@i`7>?%xJ47O%2+mBXvR;l-j)7GLb}#o+K_5hRP(Ih?+~4PGn;Wbp=vH-N*7Nn{qs zC)7U6!QsVZDT_1yQM?r#UQ7nEc)P>f!QsW=G>flsIAek~crggf;$05!0*4oatSo-E z!_NnY7lV;3em?gJ-JE62li)LQ{&TTQe=+HiMdzGNf4Rdi2ZtA(S{A?B;a7vhi^e#M zU*~Z8<2HEFh-C2_6*q*W4PI1^EPgZjuMwF0%g2MimF~~Pzcq;euO3JG!?^$a4d?$4 zE0na+=dIic>=#^j5l5pV_n#lWuE_o8ziK+Oxstz)|Htn?%b5&|X!~VlPwq$i)|I=_ zn>VSRN!xAu*MB5!Pnr_$LreQ4_oVGp#gei^=lL!EPIlbiv_0qSi|sUBf7;U%%yibI zX0R%C4By?V6!;6!KEq|@CT%bBJ?(>VaJRqU4WA|ZHzV(5O_Ov|{(4__F!By(W_co? z$8k4b-c@`gcd+O4{Yc{GJGqR@g51}${LO=Au*7J;QARI4m4EVklcq`9{=wg8B*uk` zbRPsfleT}c4EGm{^^yAa>C}(Cjr&fv_<*zc`%b{kfcx-K{F{9M$z1LguKor%wScCe zLiLt&pq9`>Hc_4pwgfgm3_WXkZSO)a>1p3rR*=s5cd`8yoln|4Y!>aR|Bw53)}M7> zh1!w&&c2i69NHFX4X%)V6|Ni=|CqIbehxGxUp527ehJ0t_nTSoI_EklDop9ivR`5o z`zt!Iv6R!^COP0D`Wl%d_cNt$TmGj1t`6Uyc5p|wY&-xy&Y?c00KG5JhL?oRX%|dN^>4wNSZ8{a<+^m*ttPq~Bjzn+hoHbo;Ab zAZ}agb*wjI0MASFS+4mxj`}}aTLxIF`~{JG`hD4l;zQ||T)hWQAyaM_q-n*k$zj@h${RCh(sqB6_Vh?|gvvcPl6xiJrCzx(tR&K}#LsS=9^N0X zP1C?HYuEYa2t0FED$z1lxr`}-zRWRJe#uMa_R2}lPu?J|#J1IfX7s#0P1A#()6r1+ zjMIXiw?^{5#`h;8d5>&^p7*9{RL{W~yLvq%spPlIl)dx|t`E2_;9{S`gdZ7m_)KFy z`RP>tNA*qZ%(_jm^H2CLW#j_SgAA6h+AkKfGyT6$(?j{nPBO8zZ-JDv%4Hl7^gBE4@btKqHe>0>UPDeqTO9N6RL?fEXE-uzwDtXw@%#>&K-CdDn)!v?DD{>p%ngrx3mvx&} zqVvv?+>@PL;#?>@F)#OEMUqt~dy*n@r5_M|8+EU#606*K$P}ITM{XB?@f*HN*(R&# z16Q?heae`lziP^+{l=8-bUV*oFy0$I!OQ#b{s#Z5a(a^|7s}@4%UQ;~`2MOY{mVxY zy?r@%;McO>mY{k!l2&YvZb9xcCzm)E${O42SxO) zaQ-EGein1JI=P=grs%vOl6#kvOPrT`y{X97r)!;DnP+P#B3IV&?aoZu1Ga$gd#S#( zS*t|nE0Bv{@4;AVk4;>E=X#d$>=|5)l{)KK-+h$p4zB<5vOe6u!QQOdYdMoA7s|e9 z`egOKPmyHR1D<4?_1;_cmNrvtes^T=hn!sETqygt$i*JokNniej(XR_rtFE_x!|jw zfTyDiR3*geIm4@dEOE$}d4t^zOz+C?iV^=IZq&O&6qi1E0BOF@^^C;Wpy~V%{)T-0 zO(TWghqC9*sLVd)Rm}NUSvpT6^VVe5YqBo9>LrQP{;dM9T*69l4W4Q5f=T?q$qOWd zqkGv;%R=cTpFijNgN>6<*H5PR(e~qV$XK%d7T|(7mL?SNyVO8-lKczEml7+@%C&N4t8AN>19rw+Q;wXbo#ZA zRI-G0J|z3fIk+AlV{zmp?Z?{h;K4rawoj&X!S_OcY&18wKWo*0z#N?yqWbQv`ZDv@ za*y>Aej0*a+r#5yHcmdBeNw%eEf(@^{U&MOKBP%%<-G}BucK_d=6eCWDLe4Y{lE5u zh<9{>iB;TaEIgcGI$Jn>__^;12>;u^jOGRk(@qS zuY7$zoz2_#3u%%&%xB<ikA|LLm7sVdL6D^7Xt#7;hRiLK_BPc^J;M1(En~8%bhO+Ck8m|e3(0w0&~piVqDtZT1U>C22R>fk z^)|olOF~w94KY*Fa@uI)RbS4>XkTCiPxZatrq^q_~ zt~#dv`~~<$V-ode+4scQN`msIpK2GnZ*zUa#oP8>p0^Os%F;0wX#b|8lm6K5M_j;@ zEwV1$DQiR-zCVEe!HBQOcjLw2U)uXa_XSJGXRmH|-up^J{L?mG?0L?<{Jur;)ZTwm z+}5YRf^T&AGsKtM`EmO%iMMo?nS9dEx4)wHeo=mEzWe0bJMOd-KVWj&-jz-eVnWc9 zHHUWBXKTFJFA5pDSD}5$f?6Iiov&|y)ySm%xd8UsWcCR4tplA1s&B_2_&sd|&$b_| zIXk+*MD*<_ReiPR*L;;nZM)y!5$Q|QQK;`f;FEH-8>h7k9d)Gr0}B?@mpUXN zf!>GSqs%U;zOK*L`o?;AJLfuphw|^ReW$etbM1D{k2*HjzI2QxFHs+>g2Wz^#U35w z*lEQ`pyEwn<5W17NW)z|G_B&Pa1bQEOUugDD z{pw5`E%xi|4?oW90Z;8`o!t7>TJZfH9?&)>7wTA+J-fnA^kI46-`~Z0$ zkjF2zIDRD|={VB}o@swN=yN+Pof7E>;HyyEsi& zG@qYWnxvyU(3Wq^z1OXSd;J}jE)dDMqT{n#J~v3DDT~4g$BDW833y~g{Ei+NM zTuJ(yiEyE4{#ffGBpp{eLVBay<-LF2j^DBIFi$QX!Z=}H#mjVEx4-STI=-efNym5a zQC*A`Kk2wfVzu54Ag?y(&Fn{%r_$w@-XV|Ihdb_fd>+xi@{x2rRiZzXPWCG+Z+mye3MW+_*?VS@h>{;FL| zkzQw`_?>k88aqha`GY7wzv1^IHqIq3e=AzYR(ZcvBvPoeUp-$uudmm_)aI(fvoP*I+j z_b)|~j(0stQF&pNP~>$oU+)kdsmor!&I%{b)^A~0F<9hD`&;5iZ(a`Rq&@6I8Yx%X z*C+6Bp~rkAozfqpYbR7euC&3Fqr|yTFmT6zsitCkKdyH2J4b5D z1X>rQ`jR3Fsz-12D|xTF?Do^3_Q1EqCY^($e0|L2i#Qi5CP(YZqIc(HMUu`i#_(^k z^hw|+_Up|&SXPm=#j}`}J3b~h>D(cbd$N;DoC_8Eirg3Y<=ThNeH2MLq3zT*Q`(2l z10)u^$$FWu*Ru1b2I)Pv51j`~3Q~Sb|Jv^hOY}#seMtG_+lMY=PWX~ZX1~N5X}#tm z>14d7enDF?d|2T9k$ee$Vs#MNK2-c9YM(mkv(;W|B_*j?6SYrRFX^1G@d>mp^x(%* zo_77%-r<&~tXtX7B=u?q*STD0MCIASZ}vY*oC_6KN9(sL*R}>pXNxB(B3I^Jw!IE_ zCRDD-T*y@y$)(R%xx{(7Uy${3U$4%$c-)?UUG{;vdae2D)|5%-`JRRJpPgs>U-CEf zquG8$`uRSKjE^n-7U|q2i%9pSNgird)sP^XcY!o!7v_(s>@b zZqljm3F`ceL~6Z|_gbYpeLESG+1eqvzVBD-(H=5ZQN0+CbzaVOlW?#Bx=aXqd{v`` z-iM06n(=nsxwq}tJDLA?S~^D)w-==vr*g%={D`qr@4ZzAIS(kAykF3V{y&%J0HoZ! zocobu=^Rb$PdPdEj*mRiP)ncN8st2#Nt4cRcrm6wN33M!FwgI_bdHD;4>QL|PEY$m ztRH&jN#{fUs~Nx+%`je)^Z(f=l!i0hz98?%&ojW<-6WUbTTP5FN_gH#h=U&N_i6iW zn!Myux1YeLXBB|=07yuhenB~vru#c(zSX&j=JW%TY`6ma`wa7wbl;uguekGzUSZD{ zw%}$1r4Y$~&Ecj9MZPSKwG~gm;l-j@7O!wP z;|t-%B2N~lPt){_16ISU*QOjk*x`f0;nh1jKUVC&dbq>cU$7cpOop@kM>)I_99~TJ zviLagekM8RHp-7W)cc|Id^6==$w26bq&*8ix*7bZS^ILXmCZk62+0eRqAdR@;P}q! z-QfQyc)RS9OUs9No1QhU)yQHplTAO>rJo9pEbx(;^!qyeV3lFYZ^-eV=J-zoCofD! zviuLWc=svb@S@Sm;zuig5t*zeFVd)~{MYzI6WNEd`f!QiFSMIC@vT4mZl{}5*>^MF z9L?u!_E=5l^T7_Po&!)HNr9QbQF{4|SK zF>iCc@SaFM<+-xmONX{Tr}unU?u$r|j|})xuG|+P^K6rJf0A-tgN;gaepBnx*OLA$ z4og~@Nw0#%uezn&;Wf6(;SU=XQqB&)xz-;>qX@V9ic3mRASV{;|Y(js=|yg(Rpst-^z2z|FiSlyj==*!>eEGKJL|w!DT8<$cOTh&Hu7&iI-lWUzFXp%4aY$Bw&y<{3Z2xdvesO#8 z1bpyo@mXyzWL!3j(<5Z(yzG#Zwn9#kATSR}R!jS9JVK zB2A;?H@Uxe3}^M7U}h`-=Og~V<@>8CuU`HtgcWOw(rM$#V~}Jl2AP{r=k|Ysw=1+6v^! zIfnLMPCuHtkTxSv_Uh6GOHln7FL`-u==az7#Xs;~Unr2be^Ge@)3h0RvZIr}MuNy& z(=U=YlHWU6Og?-0^Gv-x?UNNf>o+b+@4 z#$%Fm5I)-VR}X`CIUC6Qg-pW^cf;ihsrt}c3eW5=1AW2J;?JlFE4Ldnl>lzR9ec@g{$h<5Xocyzvl8(Uip9? zBj`uY;h>w80*R`sn=KRt$>`KM5xcHAoU0-Zv6-pcR0B6(~^lwZzXzDC#* z_3_?cznG@Y*jLV)mFLBTUgX^#$@@CLqkg-bhtieKw`*2n`rKITuis45M)Kr23+)4g zyn7>g-1A@axF9xE4Cz5$F@I%Uz^7Gty`4RSG^gM9B6*Al*8I#%W9(ex+8L?$aep1_ z#aO_niS)|!xN1l4O@wm$6={AS$ypQW)l+{R%iENu&B+TruFB)yM3Be4e@%Li+pzeT zmYbIsQak_ge)6|8ZBAb3aaA7mFUWhFG@B#+{PV1$hnE*p=j5>l;M3;hg&tSsF}C#b z)+W?*oe^4@6&&Is-!#3K7gA^Ct?iqp&B+Tr?q=E;}sJ-*7ro5uTR`>`0@;?bNU^Trp?GZg_iVmdy{ar1JWYD^kuUGOn7DE9b(v)0vkDUACN`O=aZrWvN9E`i-@; zqiYx=N_nsS2^aNyEk3!H{H~=9TF2VnI>yQCF5K+7 z2k|t5>gD~6`MXb>(f2fG9ibP$X51a*{TrQ9ai;%B z>qVMDslfiPT-r9yN)%5Aa^)vRRb$~z`(GM zn(aSq4;1$wzO^chJ2C5T>vl+Gs68rJp^~R)qnzPyWj|>#Wj}tO>vLRBalLCw&Mz}1 zH#}(b_ECOH`LARBBG}~se$PxL4mi$@8@h-)DDH7vI&L_{wb-#Pz7>z-PH{CZj`Ov!P`{cqkC}QjOP_An6(ubcP6Erunn|f3l7_{5tyob>E8YcfPBa{}cP!@%PsAcV8+i zXTLBb)BN4z?Dqrc>GRk9Cd%Kv{|ozB?px2_k5XB={Dm2m_T%(3YnPj{>g!F}+DiVe zFeNws+LU~DeVWgY>YLh!buRTU`tWtXGs*grRNBCo{ulPK+HKuFe@kWM{41;wt9`y= zO0GTElw93nO0N2EzPFgt1AbvjP8yZwv&gq(jjZE6WlDbeDbn2n4<6Dv;2Kjp?GvPb zx=5-hTJ7_?wa@wikQIjv-O|gx3>rLf6W(hE|dOmf~j2a1Wc( z(f&E(KAdwST%{eny=?PY)TKw=ZhP8gk*i_$2DJR3cyUhYIFIb-&-#>qb|s}cbDIrlHsp$ z-UH{zOzz~W;W~xi=ct^I^ds1X^?$WXx`tAEWbEI!Deh~xv>&A>=IvtVfXVvXe3sQN zh3!GPYY&>!7D3BP+8Qad>rGl-cdA^Cb6iVLjs5$Ziks2bD4KlgXQq@#DYNa=H!QaP zo0)vs6fP=L@4{1giPbyly?~uATi&+0XLr z!4F)%ew4{qFaJyaX6l{nKM`=^3+&-?HS~xpU&hetbfmw zY_mP|{D&^-x5XxJ7+psYeY-?QkxQHl$#Cr9fB5q15*q1et(NL56LNOx>Z_>|XkFNf zU7{z?#ech)*RIDlU5N>H>Doi(YMf)5Ov%}$YqTN>v@UG3UG`DA2b)A})5Tar##xks z^bt~*r7ns8hW4h3U(a{eYX8^ zdQw1(%4JN|CAR-$BzKOJOPmYIg1p}B`6DD_^UtF48XSD{|LYl2&v+Ig-25 z$tBJO-u>jxUtz^u_CIzp&+kh69ZOb9-15zmn>vYrzud=^=bCg>#BVuIeYif$%@9iS zCB9b0)d;N%8ZY-<>?urcGzCAgpQmpzN!L=FAflHxk0%pc{3bhYc4Iq{DQHd@Dl*P%Nv^8~l;oY(hklXN*c&qSUx?z&9%Jx}6XKIH9vPGd`n-hC!dpDqo6 z4jh9Xtjl&?Y-!{((jyv0MtTeVm0TAHHSuC!dycl8+@1RCbqXh4>-4XD4En%5*RT41 z-NviF+)u_nf@k%m@9c7PmYPq|_b$~}M+>fe!&~e4-4{Le0SM}3T3$Dj?u&s-tY-@+ zX0-9Nj)q_tq5m4!?JmBUo_3Uyblqs__#C{edu~|uwEdcnmw6YdylYPItey`cC++_% zBhm8-)$3YS| z$mdq|6?*#IF4wO|^gY+xe+XCTf3AP!WAJrm-%xM6``LKWyIcCBpDLc!o3Vtav($W| zcXuz<`vZy7@{Qk1Yu|4XUVx(cly>J|qzj{gjJ`elvCxyZE<{P#n!fm`1d-#z;Gddl zslK-V^Yj0Ncby2X&vA<%bWgF#)E>LR=O1QBe?Km9?O6Btl+Fv0=Y+c_iaok_kT~b> zZM52QCQd#19-!wHjj0H2n9{lSxO+QNP7d5+Jsk&&d4KNSO@Ak(^I^y^vxC>u$N5>d zl&#>Yp8L|SNA--=7WIU{{}8(my_RQ-Mb-3i0F`M*X-3O_dq#If-7kSPs-iJG% z_)WI|kp1r6(?Yh4`KDXn@%T}8U;L%?5xg_rlr*RN;g+utNf+l@WN@cc$399TmlX+3OkEa zj;DQ3?US52nCB~(nIVyV6p-f%sxBq{zMNgZF}fe7X!uCF*YQ2%$#oITQ9I^>e!qRr;GK zC_k6qjh`^d2I__c%~$??W6;Ta$y)5XS#z=c0`_IL`V*BNcsulzazC^g3Stlzttr`3oO>gV_gE10+@1@Qp&ARgI z$9P2M&8_77XlBo?I-1i_Hh3cW?f$c-PtHqi-uoKKZ!GUev5fe8PF~+g-bsA7@-%_w zN6LeGv+-wKVeW7F75Iy_w~U*uKl%JVtn|rwSJ-rX_Fn1j3xD)Ty6qSv5Xcvm@BQm{ zCOP-BCb@2TN}{+epPuc%30j~2Z={dLfWjr%^GouJe0)~_%17_}eEur5{M#Ad7L>5+ zZ^yrj6Q!8-XGt&TGEX5tQpR#eRQ94Dz`tFB{(g75wTINVPg*%qdD-`i zH&d&k5c_ZQvk~CGGEQhde#CT|6b;JH>&qI!dA1&V>Wu%i_QxK>17y=neW9h7{OKFtDIQ_=UNIxx?{$c9Hvs~oy`W@--7`vad2^xxDo&&u9@y8E4 z>4E?3x&Mxt{#xHvE}WDS?NK_=F zfTH3tG*BuS24RlO409qau~5;}uqZ9H(5$G;c#Dk8bV@5LUn3>c;?3`O-)pVC*M1I& zy?K4t_gyX6^XzB+@6)>1`LOo`Z&Xzc{&W@&kK!xPF%e|&TmCgk zJ{AAbxBF5~nLkxMoaps;@QZy?%IrHkFQab=LM;Dojf~d(IR=Y=Ao8>O$?Wf4(2M>* zqyOtMZ+zqQ+i{7E3=8RZ>l17K5VICv7N(EA^{Su8SbP)6FEp;ya$NNtWr^0j5VQ7t z`kkcj1@!+c=8bOx|K_R1arud=Y#$M=`Blu?Gw!#=f4@ThKVmGt3FH@Q$87q3tt`=+ z#78~bz5n(#F6e?!^wY;yy&0>GZ}vO?r7d!63^6k|LH-nOCq@4c;nx}$a=ZGzuYRWs z^S_4ews)4_CW=;XG=?(I!?XN8k!v4T-^*O?QR1n?^JXw_^5+huJO@G38-92E(spS( zRgImrH4I`??Vz+>+D;C|7TOvHjUJE3b*sja&YJ__+`jF&stY1Nj>=bm#D4kR#<6@7 zRGy4uKIp!8@#)4Lt3GL>o1e4s{%=se^0yBnKi@b{##EzY`~7p!K0V3zF8ICvHuUfH zn(e30pDMfF7OhFfQax|*T0Xf^*+_~({&KR z=l;pzw3Bn6H<@$ynBEIb@f4SSX`kfzZaFEDJ&v^X3)zHdjcq68p03W#yTrb`>38ZS zIvoP}h3aqOANG%K{&XIG|7hcH zW?!vyX<|c=KACr3#aQOb1l9bB<*!-||H~oja6gXUhyPdk{^>h0f6o(=_S=r*f#UK% z)6%8vKL-8B$NYK|*ncVcf053d0}{pkI4zHdQ}S=ee-!~Uw@!Y6QJ%ARU-iqiKdVkx zxzbMh&~vsge=dJkZYF(`JZwMJAF{3>PofZF|IBfC7oR?V-;e#l8ii1V>AQIb@-HI) zgBlXzEAIyn#;`HJZ@=EId|U~Cqi`ibJ36soy#C zx)gu@@+tO8`+rYncbvjMT`erYr_Cia^b6d*tMKzTF>WLL&7QB7h)W{|v3v`xrNx#hO6R{ikaBrRo`;-G0XD6a4%%Cg1Q^vAmyK z%B}mJB2s=|KIW6UWhq$ejg-&o$r>N6O~x(VmfPPWQ2!GjRkPM#y&#K!Kl4xdE7QF4 zEzAG1im^DPiv2%FW23ddi_vapnrD#3CymLs zcUXS2T31biKa);?wF_$zpl{-@x1j;kxi^(M!jLgi2RpXGWni(lkP`4s%`X-vLh zKm9K0?^ZS-Z@=3GQBRkCIRSG6o(MvmewVMB{v9S-U1o|Fy7%O3{#(1FwcBH6!Sl5r zF@fB~`L`YW-#~5(P2;P3fG7Q%Qtr3^kiR<05^nXsy?=c9*jM|$$I4d!>_*pEQ*@Mj zU%vPUe@Teee%aFTSMa2K$a=$JTq9y!Z}vNV!e7ocDvQ61?@~SlKRJ!bH!UBuzxym7 zN%{-6zpIB>*^++JD!)x)^n6p7tv~ofLbUc)ODBKzd{lOM&;H&8q1aE`x0-fm^;F?Z zLR@|XKbtGNf6tbe{k;oWUjDR1uD?TmAE`fOz5(%o`&9jjfAY2e^7{qh_|^W3rSqin z`|;gXtQ*XyE?$!;QM@}tbM|Xi&&3ZNCTeWW!uMakm3~t_|$Z&hPB+UC{Q@ zb*@=F>34IO`{M?tOT&E~z+Wd{rOb;W!U< z_lq_nP^PO2o9J@Z4X&KUn%l`-BS{msTrR$P7ei?8^_1fvu)jIKo6%W;#P(N6o>RM? zxrF%q+y_~Qz@On6l9ImGuR^zy@hEhe>D!>|#bx^ll~Z!2qZ`H7OUy*hk<8%@1t)WV zna)Eeuq-`A-zPa!=Y)1vf2FbSfIP!d<$Isx6nc3%-}^y6)9;hajKvLnSCHZ^&A{-1p^Nxy_>w4ouNADnR{X?7@7n_peN{;t`w8Q?P8X_oFGzVqU+nKy|BanTC;Ccw7E`_n z-Ku2)-BHj5Yn>&V0y_3Oeg3U#fUY8t_vM7Hihjk@t-KSuU~RGFv4n2beF@#F2cSDG zkhdeDtD2S2Rh2<^W#sjSdm&B-!ZYtumf znWGobY=4)g`3Ww@8mri+EUo7LP`VKA-_4-;!g)sg7_EAqv|Pd!tOJ$)#Ql!=MyxnW z>q~Z;>@QeK?2%fJmLZ@dhI@m7@*L3^Lbb6#d z4~N^!%AbcG&7+C;8B9{$T5DA=byWR)Ejrh8eHI-q@Q!GkzJHfqNi9M2u4I0wdOwcN z&vV`FwbC~~?(}XaPM&YxU%$!qhMfUw%Ukl{3&L!XerF@&C`6hZa->M>~ zhc@o!hq)e4^z4-r@X4$47TzoeFFZrO6N zYNge8A^CRmU$~MrO4IjiPTywq*;-n-rSzrJ*Rq*fE_|)FTIKI)Qc`T1G`*)f{XH08 z7jZH6^`Y;pPQR~j`&;hCmVEl1X4QMW)jN-VVoiUp!Cou<@sa;>Ihx|iY33Z-YN^lj z=quI?;|lu6e*S$I<>*|jwRs@}dKp{UQO?zTN?Ik4Z{n}q`?gJ5ZI4-h$eUT@ZYiJg zewHLBPGTHYV&*a%D9`%mX}r{V*pc*l7F|kO3&kxyNklp%ZFE*W;Q?gR(y=zC8 z*`vX7M&fDDSbFCLThFSP+o>P!!Uq>}1$(3{&e?wD|CS$;UB!3e2N?YEA+Ai;xx6K~*C1KURSL0%VOzOmXy?>3V78!HirCetkGxPUce>LWe*R$mPFTaN8sE2=%wA5q?l=Phy*c;^M zD#7l~L*G3wedZj}>dsLlOvtGEpS<)@6@98Zmz1XeYXN%lv+CCgsoshF0{LIX+{T>? zOqhiJ7X{@12<$rvX)M1`d4CN0ujZkDw1E5vpwHvas`~~7} zv0J~w*Aqu`Zs};s6KAg0kXFuKM$KdR?YEUCa}e)qI%s~t_iw%p*MF+$zp8Fm1yRRR z`E;9>8l}@``+J2wKxkL0q~F`1p!<`to5&&k3g(o5I{~G(`sgt@xv%7teW!*QUd9F~NcyHJy{#`n{i?128ou`C_b_3PNA3@^j0V;oRNG6t$L@nsT9E^`;>HT%??`MzIcq0)>irEh?6rA1FGR|5%@nb#<^+jT zyZpYdJT>X}vtQ!8i965rPw3F2Ax;Nb@?nX~@ryeVNPOP&ud!bw zZ|22P3;RXr=yPi3TH1ns5xUE`E-FAr{@48$yswGsKSJNZ*tUKp*F(gWQST>k|4Z(r z+$BCs4E$f-#pUtSDk!Sa+N$@NABE*rTR|;HQO$R-Wrh(voi8=SJG$5`+JTz&nlJSd zm&%uGcz3{cj9MjL-V>y!JMCCL&W}~_2kl)!KMP$u7i+~%p1pB@wf}nqyqJqTxnwWz zmFQ#+e7ngEVNNx4K#Dy3OVMeZ>AK)@c&{KoZlw;tOuPIOc)w{fuhMo54fZCondN)z z=f@O{YF5QmQ6%S2gZ8n8b%z>D7ZXYQTl0weQD=ZDKgx*^cj5*Aq|Yt-dQ2Zz^NmDY zK|c!Jx40g(v^jLX9@}|qRC8}EGa7G(C+*wwHeTv+E&W*yb@{@q_p#Lcn0QAQOObRw zqv`yK#A!PHxz6C!GVyuOJICeb`^ec9OD$ZFg^syw&Ce`t!SueNcvSQKSY~vIoXZXK z?GMPYbTN_U+iRMhmnAYQJu;rxfZqJ&{{>|J#nQ;%9Q%C!3f=2muUOg~I+t&?2PhuZ zykP108+}I7(Z!wjvpn6RwKAqj^{+L1$x|yQAt2vs`$#%#dq^bu)91CFojS$|_7!sM z4C(qKt=Ou_q4ViEP;nVM`4GJz=XpIo&PHoFWS@$*tNQ_2<*>FKJ&w)`k^ZE1jHYL} z#A&|yes(GA{@2md+V}&;*$y`KOocCpGG?o_V*w#An14#g{Gs-JO15u0#s#%U7NGO# zw*9q?8GYz}P|%*&e#l0vUzQ>7KqGjnJ+GZYyrc6%)Gz0&U(S#?O{YIMXUmO!Uj*+7 z^Us;cZ-mGGV0>FUJ(gBDokB-DT|3Rv=H$OGCql=%Xze)#=)6C!S6s%|K6I}$V^a0E z_9En1I!~kHz*>E;U+sK}R68R2EjQ94T{_OnKDQaCmoa?pWr?_g=@7cBxGu4@`=n!E zy7r0!bUwYy6pv~@8td-d)^M4ibjxLrW^`b@df3?J^o!!+R zS93;V8R_mbPMpy#eat!b$0y;hi=`FLf1zvQT5D+w`a|g2xEc!3d4JrZcvPFLd34`v zpZn19c#TYI3fWLM;A*e zBJSJ4dhu?M4DH_~?Aa0G^gImRcVn*H^mseFlqRZuIHv7!ffy`v*?DDzTpxN|Z4OP_ z|3`eBJ^y4+zxFM)|G$M%{pQd6&!;s><|qA5ch3p9MGi|i`h4mEbsNiY8j3eIBc_D^!RX1JzQXz4g zPJa&GK24*fjE4qEx$;k+#5Yb*>>r+~t~=C9=+a=vs6x0cZ|2l^el4kiPZ8n$HuE4=OB;sBjEA#L3P&#_9`3w!N6DvB^|3Z9iNi#E*-Mt64WB~f8OzX-SzOV@+y@s`QqiV zZlrW;`CMV)oP77`u>G3Q`_Pla)9G}u-dgASKTjm%(7H{U4jrLrI_&sdo@@=<(|xY@ z)HNa}n7ilL>Fc@BeV*$x1=17JajvB9wgPlM-S;UTq2Gs|w*=$!y6@R&DaZ9kBX5oo zJl!5JPVsbJi1d?nkE>s_ho!t2c5v;ETE6E-WS$m2_vzEYn4@l6EVXcX6*|^~>K?VU zIsWtM{k7sz-2<`Ao;##p2+Qk#A;;3iM4FywH9bF*$h_&XsZ$>G=bcB_aTcQPnM7=k zoj%<{_dM6nEo}~+Pmk?`Bjox}+%r2pe?m^sS1Tdosk&EKxAxE3ie5kOUJ#sf_V)Z1 z`hCs+ojvt^RJyDs`cQm|Ja-@Zmww*Sc^VzR*6X@>y~b%hD&hQ>^{KUp86EL`WPMJi zx`)k7_S=N|Vq^*s`?Iezo$5xU-78B3c(=hHJlagpmoF+b-Jk7w(Tu+fJxrl>!k zGYEGY!Bh34{$Mai=Y>dlsvjxkss23@7qlDlUV}IXu&dOrN7~7~PiOrgIETm53f2py z8wG8-r7f7wqZN;!_o4VU^S&gV=h|p(2Uz#6yUz%oPG<#r9Gw>;?PL8}nojMZUA^)7 z>Qkz7b>Sg>17*G*=dVq+^$+=5e;n6ovGl^}7P>RJPO-E(>2~En<;{R@Y5_W54$fCx z^!rf!l$ntDXSR)|97u@j2N=QQ{=VMzE9yViIcQ5Q9@LBaO5&6L#|jkx>Ab&wfkdR* zo#g!wiU0KZ=0i{I=H99imzR$qXFuluvi4tp71!I$|CNsUfBoCc|LfiSA9^232Dta& z%Q>&4bl1%%SUN8^II5xw)z0Tfmo@l9RI5&Fa?>@94Y|Eq5JS?sVjls$Yxgm)(=? z#P4(6O!q*VVyT78+e&O;{$Jl{-)f^ZU$$cNCyn4qzWp@7e-6IIlzcop z-@Zw_qw`8M-=5NZdrabT@-3O4?mOQeLbe;bsGQxg2EB>vh0rnQu7ASf1@lel7#Gxk zzW|;0o9(Y<-^_=Sn?k?2enkED59Dn%f~VWjUlX77H&%|c1Fx!Iv}e_JU|-MqzRkX? z?B&(}$(x9u3;9Rrc5_L4N!TadU!nW&0(9O#|4>}^5`8Gy63mc~Uw_v1TxX8RgTiCsEQ^#j2;owPR%$=tSJzDv8*FqUg{EH5@eZhU*vFioSS z9rK~rp_0xWe0B5PhRMjWbe@Johr~^hajIoZrDHMg-@VR~#&$DrZg6vVK??fa_D8a> z?L)5*n89g#7|%5%{g$N@doCzokDQs$wuiAr!yK=opgo>I&e!ngFwmy?S*N7dvZ zK0n~j!+MmR3Y18Ce%zwF&_tZ*=s+#%xlCkx`^Iyedk0)U3b(}rj0?rkztiFOfFrBu z@htuKIQ{p7V=FJ?N$bDg@;CMeN0+>;C#C<(j{nQx=;CEXY5uP{{A=LIqPnK>Z#euL z;K=HBb{76khchNfH`QLT;cfpa>tt$)vfx~|Qjx1ibmgaxT z;ZK1hia2o zAN1`(Beh%US$A$gHk)K=dBqNAk4a>+36;ia{gl5H99eAsr1Aa^F9Sywn=5I&4EzMJ zA?T-W^`KoqP264*Z{?4G23>4Er1^(A{$b$glFf+}f4RfU!I71Nk8n71`$lB-U~Z7& zr}fqJ(Kk0@D~tGP{i7ZKXmE7NB7cg1jKjx(BP$0V>+lM2Wc6Syo8qqkm;9W}g{>@p zr}eWMp#GZ(jxJdoPw`JyT%w{zkQ{s}xX7Q%g)J;Pr{zy`_%v{2v6!32XE>bx85y#u znZ{>2oW89QSu7H!@mUU^1&%Bh-O~6RhtB~=7K>nMe6GV;XKzFni$-a@(&3fh$YQZ2 zjW2Nc0&rxpn2^R7IeZZ~vY1q-@x=~b42~=&Z)yA*hhGDZEG8*we2K%CfFp}RdKzEq z@TK6$V$hn#mpgnpIIw_j z&LMdYAr8GiBcsru{x*T5*N5IuX5p>iq}zwy|8(c~yNu4C<-I$rD?N%W$ER=wct4MX zX!R!W`<;E;Ow`7Cv<>BoDc%Uqc-|Bp|JF|z9kgT0>u-H`_wwU@w7TX8OWV8EDP7bV zS$dvFkXO$v=IM-!X;EbLRDQMPYF1LO)F(DBv%j767Irq?YNGY%>v)Lgr;>5`bbhaF zxW^msc6eVapTB26AL8s?34hZrCu_Gk`^y2|y3wX*on1#2A-!%k-Mg7`=*5P=k~HCc z(aJycT$hh8@tyU)rUS8Uvc=@Drmq;D3GjYLp(D%}7bkK6ZF$P?1@ z@xxX6M!W0qjCkcLpU(BqT00xxRCf8(t3rO)eY@N_eLssae-o|KQ6gWhT0^=t=)7hi zPihy+feGeVTD&pl1fGkQfInKP2ZX5c0sGlGgwJAATrKZ~+QB{LMbh2yPluP``$hJ? z@hSa`?RaYieqI;y*;iQcbw~eheUP5UuahS7q=~&5@>)ar zM01ebgz0ItbN;B2u~|ojl0~FP>?FbZ-Ol48p5UJ$qX1h^krl1$V~W;K;qzE@Y&B-! z3#=d!Liy`lJ(E1{n5^=we93EHZ+3Iv9mz9!Q_vK1x|9o*KhzZ6HWc}%ApaqL_iTI~ z`GcLzuOh#HB7a?X?kTGhbROCr=^w!UbIsIP{zy}_0V~#>gZxJd$RDmEBB@Iqt@d90 zqjk#a^Zxk=?}a)a9XbwC`;Wyx*tKph@+r%C?bne9ZO#njmk07?ZNh%{_MfTJFEBG> z`%iKHzY-nPfs}mKVH&p)f0C8i_ATVot~TCE0ggHu&6A?ImhJ(Yv|;?DO(=ohu3$O)Aum?Dn;L^i6VFB^nHR>U;%C9BECoKKEgGLYf7MR zuFId*#1Ac???X=CgXp7<<<<8RG$q;|$@}u;O#`<55xtT|N$Yum-YZ?c-A??-Kread z+oN@ty2KJFYP>aEbVXC9V(!CtXHqqC4%LQVTxH2D`? zA2LO!T*&7JBWJN9-dAph)}gCLsNTI0r|&*jPMCL6$MgH|i)u&I_5~BQHradipV;Wj zhs~cEcu(GVn6w`cyZmSWcioj)@_l`K(8<4z{C~sO?+wm#iuv}*zgtAU+qx!o?twtx zc2^!=BYv4NgU-V1gs|UV_k`1T3;OnmK4^E^0*_x9Oi{PwT~!NdNo0>~9%CWCTgdz$y=|j-xB$ft{3R@`t$i@kgng_d}>0@ zy4wrr>vHGrOZK-F;g4JYOn!;);}%hW{sr0e^Xph2h|9-oHvgI?6MtU;y?=Ik z*P&PD3x(RtBHkzCg6PvUlGb&9Nc7=P?Jt|IBmQCZ-Q@Bw^s8HkY@?pE(=X-KC+%f- z@=xAxAHQ`CJu6H!=6hV6O*-y=F7oO4m0ajM_Hu9CyZ5Pn79WeR{}!ZsqAO1~5KkMO zO1E3zZW?ByHufr8ALH{+l5Xtmh97HWoxZ8OKVP-{_R=)VNhtX(%6Z9Y0B~8aAK*53 zC7DCy4`bvxTIQ4AMYZKp-iAnT3ZM8>#?v=)9RYoV^4WS>M33Zx_?Izobo!&DV}OY! zjpzF|=D$mLW*6I=&+wG*&ZjT8lvf?MG|{fEdphuEmmQZiUFFL4XTg6P;8M=Kzt6_c zpQeoM#pi3Czq_-3U8Vm1fckqE^nE!+EWe^4zmzQgPPZPKQ0y9f!2sSzdMGDmWcae~ zTlQ0&Ls0*gFt<9IS=aT*kzX&BcLs=(AjJ7_2fm~XOkyl6fqYE`SI_pJI_|$%mq@u+i7J9 zF@A%q_w<45UNiiXg{${Izc#q~u>%_p2=Fk!D0^+3DQNpW{d|+luMG5+nqRBq{OV85 z5D&{fR^C~i+BIk#&8PgA>}uSmM@ll)Hu*_?V1C)u4F0GEH2p7&vIKGYm6_gXGSlt6O&Mapeb$w8+7$YRT)#1Xk@-y%?JRX77k`p` z`54&mP3D3<;JvBkqBr#G7xC$(^py|s`CjK&X?NzRU%#Y&?SiS7TQ|5NHE$MiQa*d@ z`8-JjUet6kc98k#`rS$rwK6wR|H--hD=AaL=ls`1`D^|Kw6^V!<0nnWj;+eCf293c zj1MnnEV-2SW*PDs(?(bH;vK&U*}HZZ=L^4QAoITFcI>+jzi!Mb&pT~-Zr%ufLmvDE zo3G8tpbbm-C0|&n62CP)r^$%gK8jzqNxo=){8}f-uHkU?+K(@!FVKLWd%AYWe(!Sa z;_q#FX+8w`pAGanyt#*#7vYJT7>68qPf%XGU4K!LQQHTxi~8*B+Oto)u2vq&|Fm5z zcvrxCxJGbICLcK?AZtZUw0*2OMa_K~HOUq7_`me3X~)wWVvZT;Qj*zc#ge3^&ukvsTKmoK*6$V}hL@9N#*WybA` z{q1C;V>vTi{#}b4*6U(9;wLvAIC)zlCw-UtJ#bz3X`bow<$B~X?~mpAe3|9)r3UmOG&`{(PRBf6UrW7ceSr6>Z-Va?gZ3bu*Q&oH zO3Jbsa+32`kk01I1lAC>{@vXbG1fRu+LuYEA4Zhs;{o)ZGB>)O-hZ)<0puN%()Zi* znRXPT0<>LsqU0mC_j>iaL`mIA?D2l8aemwcJ|n=w}A@+4863Zwa^{$U@-5c0(e)==$am(2L(7ACkt?5*g7V2&iZ(MIA!KGx1)pfNILGPP>eBNB{O#aZr29wo z>bhn#>n`+>x%eZ_KKhqt%6Sg|HfJB>#pca<@Fz^sJs(#4^v}>WS^jqG2+hyKzXg8Y zS0jY6{fwJ7NSS3^)x0$iPXDj|W9~p&a`}I0?Q4G-{E-0Pjgm-5r>S{YuV*-I>ap?Zm5)&DKU$fLgGr1SU29Qt#olaGVmG=t@v_al6ozb#@9{brm_S3g=x zoqXox&3p6U{cZlXl$!`!a{0?l(HD_R$jsgd{=IZQq1XC(6!NikSod^3wG4Ciji#NC z^5EspzA@m%dGHa=zOmq?dGJw;^X_!^QGSQ@PtVs{Mmzf^!e0hHEz7SjFx8lE+QQ)^_**DeN*E#}x zbS{owEkCW~UkmMVz@M3MFmVgGW>FT$stxj|&poDC&Y8+S+bl}1Jhgb8naW>T50Kxv zASm94So_PqvRko?9UXa>zH)$D`O}12>y6&hd!dXI|<prFPG; zWh3{?P5-54pzbTf8?~r6k(Jojf21i+^uv4MPRDO)`_3~1r=VZ*$9bFlvEvn8s{qmZ zFYn7_?<*a8n&QaxEb;cs-dIaDm-tQs_TTO77wkg%ot93M8Q(?yZ!(#kGt9th(`~-^ zPkHMVx4(b0g?u>94E(goNd8&8$?c=d%ILKw8Al4IB`6(o*RQuJx@Ol5YbV1)_%2tN{f5PEH#~7l$Ubj9H`?f1? z^M|}_Uz>%)qw>+eek%75nKGuNiGH8|B7YaxHrvYY!y%%Byae?+FY?`7_v z)g`+`zQlR`Z*ad$mzEM-WO{zdqZhMqiF5kb8}7TzfjvyO;c@yzrsvaHLHQVFGPjlLl0m{>7RWD$Cd$HxSoz1@05-y8KKmmxc#6r) z_x?eq_0Lh@qfGSP_v#cok&jGCpXwhC4f>fHC-{g!{}}N8SvWG4U-XaVDl>!c3-u!t z+#DhLE4YT}6g82LOs8M{gS|4|2N>B%vGL+Bh%@({3FZ|mR9D+>6bjW`Yk?6 zr%Z`_WD393kM%RSe?zAz2|m^Fi~ea`W3q7Kl%I0CeirxJ&CroS{Z^TxU-)NoP1Y$+ zBA>We|6K5iIz>rvk?Hy8fKSW9iHr3w0H11xUK8p^X3Sp+KGVn)CXr8EtbZ~144r}` zI5K1YMc{L?aN=V9OTcHDp^t?6ks0%2*!oJHY9#WBi}hE7&($G#f+I8LUkbh`3nwnt zUk|>(95f)*zdYdQe*HD(pb4g5B7a4IbH9G6IcSC%kl@%9>t74L+#Iyt^iOc&V*6Xc z7wZr{!LcdkZvtPDg%juPZygK1#2n0$^!&K|A~WXi1YfIDfJ8oVvHnfq)j9=8@LL1^ zjo?jLIC09~1$HkNL)czH`@SBTvHs2AojSx%O6O1V?7fzXg0_7EYYg zZ|mo+X4pAF`zkU$f7`d=->gIUL_YI>J(tBgPJ5Tp!H)=v{m1-Y&sDJ}*~(ZmKDR}B zrT<^g{9WefoVkfw7pHLKFOQv-1CB`T2YHYA=5$a+!N~`wqNiPJXQ&->CjwYJ=+c z=Q4-A#RyXZ_O*6eyShQw$~a8Idyh}XN2;H-8#xE6XUHr`uX+C5w5ss5LU@4`N@<7JBUXI*soOKY&m&Hfq!C60`d|G@|9-Q@qyCx}~nZ1X~`47`izIppv z-TDD`M9f9au;;CPn*YNzU!qn%b?zjLZvFwDIcJ*YfyBxj#fD`5qVr!y$N}+wj%i$ZNYGr;Bee5Q^FPUYcBDH@szyCSM;v42L zzq!}q$C*C*yqeVC)(YfG|GkI%sie2w4BHg6pRLgN_M>$&KKiy9_9Hw0wdo^H`M1G8 z!$h<K6Bp~paN6);FNXS&8S~EspR8G!$S2O}m&8TbD@7>5ks0&j zgVt$TIB`zD<)3N}nQfxsasJGW`7J)v{eEhfZU0&;E&udn)AK!_H$4;m3ml%z-{13N zQ{r)zDf-X;t=wvO?@{Iek4u}X`M>@llX>P1lhZ!aCTjWNOlszty}3ANZMFQ-PG^3J zc$xgFmU4Wtl=kVD`YBP-hI0P8bIe+PmV+(f;*&i$8z|o!n4c@Y!pdmna|3lx1N^*l z!s6AImo`4yFgn2>cQ|cx1g{U#hB35thnZp?CD!^W?W^opY5zgpAw(T7o9UODzUm*v zXW9011La`D5M!o2n{JLNCDvUYn3uc&pE5|nUuis_c zUpfCSf%boZ-hdM)eT25(wDUH4Vp_kP)z$uiy(brXu_f8fO!i;nPf0t%Xb{Iecki(a zSGBw__<~-=3)0UINFS`h`a5d-hklEi-1-6EGSkE-E?@{!%fbJ*+$Nr+mXHiw@m^0)JieL~rXZ{49- z{y#-7y4-&5$2nSiu76x|j#lkptl;dBJ+7$jU~_n{Fr80ZoOkX^h+3aB@8gk}B%RO1 zc+|>$>+j6Sb3&XoIgx*9rSi+45&Rx>!q0PqiXW)5qt-u~;cX#5&ke>n_pPs(!+1n5 z;s0ZRbKm-^IdoZwzY^fwx4v%5FAecm1N>FB@x459m&kwJ;?46Fi`s@8hD?n2gM4c1 zu2}v*KA#-Te&mxq?|fWVKK~oZUfVHdShpabD4*)5%E>h5cd01{KNsTt6qh41 zQ5$P#ZHJqK+k$*(8)(zVxfdS}<|sm3UL_COj@0rhWmUqETGJ=?6XiznraL^l8L~Lk z|6a#GAN%dzFGJtK3IA}#t$hQzpKpeY4DCBy<;uA~9|r%^^hoT(wziXOeN|r^Zw4I^ z>OUsH<^Du7Xi$hBAK=HUin7;2+^xr){8g{sls#(KMYX*^w*+ZVd>Gi%l<2ra>X|=} z5IoN`;18kwQzSQfZ~vUp5@c> zcR2VJrho4+e_j0w%1^(SO|Qg%mj?Wnw%?AB{|akg<2KrBDdV3o{o35TT>Wp)0m;6( z5B)AP{S)~gPx#v`ZNHO4{!dt3{bSS8FACFllf~Ib^r3I3>6^&^w2kh$g7Qzn;r$wY zKNYky^dA!BxiTO6ULK}@4QaZCe*JGAHhrdq^|Q|5oOyPk^mS8|)Q@!zxBDwXQp%&u z3BKOpPkMG!+7y=W4vm-m^`Uf`-S@HOAKSFww_^*TDW$3>@^5o^(ms?@T@(BZ4rkBb zh0*~gli+tb{F5Fwy3iSQ!<~og+#4(9;xdR8yJ5}IO|lquW!HE`L*i#o0TK| zbjNn?%gi`_&QhF&W?cUu z9i&U;OFG)bmLX>B9@62{NxBr*ajn=g%#3ARn#iY|iG9MawB=^(Qz5_D1g`u-JHm{8 zFytQ=@I%WudTevZUmoy7%UEXYjUhi{ZSNoQSi;z8Ax?e>F8*mRw)hF5e@0te$^m{<2IR+ME1VV}H5IAMuPi4 zuU$K+^VUa_euBN*h&}8w9wp64`4XJ{V!M6=e+yT8XBJ-XaOhh^7W>a92kZ0fSI7O3 z%G#oj#wPMx9lyv%7UvD*(OJcZuOM!tF{ionJ9ECD-k%58aM~yIBlCl`X&WZH`^Zqr=QH>2Uq#xyG^YB1pE6cU)KLc z{&ud-d2rVMRld|8+Wj2Nd`pikAQz9%Ra^#oPV(RHt_$-vhP{7&*D$y z!MoHxi*L`tC0_lE0LB3!At_ElG&dXQ+7s2fqFEg9+DVuj5*Z#R0yZ6$5 zd<$Flp#MyBZA-d6MZHk5klU8Rtm*P=T!Fh8b(pKG5bQ=_3t{wZ`+) zBJ<<)6Q|=aX`d#8FEQg!3)&~?Q~WrsqYRqJj9(t|6Q{VQ3jWDv{OXW@NWeb~{!%mk zTOmJj$}i)OG4L0g@l+M9|C&GL0sjbS%FKjrAwO}-|9qt`TO!=1@OzvHh*!L(GIPhxU^vG5zT*epNw^x{x`UKW@uU`W;PANo%nJCqN5@I@e^X+7PJnaYG1Hv%!!Z4G z1DyMgS>~iSLcB7-x$l@`CYFWr@rnA!&Xb~!xn^Q{$WNZe{%eANqM3MX=)c7lC;ufx z9iz;|38DY4ar`nq;+`?k#LIb0P@KLc0nR;RsEMzJ_|gDht}-S~331|_f35x*X3~Pt zzbgWM?mL#4N$nwjb%1lfOFqbZ6>`L%ExEwKih^y z$UFI`(0sm%bI?c&lAwO|y|FvMxT7HUiCeFWm1O6>)!zukke&Uq>lVDxSf6Cyn zd~6N)cR{n+oN`vk|B%D)0DH;u&kXg`XA+`d9qLqm;yr2Kx54)iofmzJ(6N?!>PnNW zXUm*V=Gl$g9R7ki^+&-xw{tm@cI@h0!L`Vksk@T?SKHSoEx*nmcTm0=Zp{ehKOMx0 ze4VH6ME~E+X;%jGs}AA>hhKusK~LKg@XPb7o?rKxo-|Vih5XN2oOd7SI}e>z3~z2@{GVg9`2aLNzww1_%xHK(r#%g@UWCx2SS z)~)7rwh$8eyDd)tD`zbvoY5Zak4c{`>1)Er?tMjPyke61i@XOyaJP;X(Vw6Bo1lN! zGztEI%8ojAnQ5g#`ZZ00U+eH^&9oB(`!r30f70PyX4)5n^mi7M|M<4ERPogL56ORt zm-8E)GaT;DZ+QQAGFpOPg1%eJpWpEKhRL>kZJ4Swx#u_N%w!$OwXZ_di}|URZy6uS znHkop^n4q8%hCEx$vTzVS8nBZj$r>09h~oo&(A7Oyqw?Y90fj2@qSN;mML2x`4=&x}6q^)x_n^7~f z>?dCNCxfF4d}xY)vg4=xbu#}Ld2|*(@yb6999`gP{rE)d|19u{#=Ngv7XJ*#KL;FL z;A#Gu@Jsoa$wgUWvo7ubS&ECvT87wEOyhH${zc&A-$@_N!sj~ui@~uKe4q%6^QY28 zE2)s3*GMdQi|Hw!F}}b=tJt6FTq3cG>ue*&(YtCH_|gLSVryT=6VQ;BiEQ!+Wz2t# zvu`>09L3Z2Em8Y~CF-1Or1MVOw^Z%3c%|Yg`$RAHS$sh*F73AFZ#D9XR`6XWXH+3p~Y7du7|d8^tOO zQ$8i<54Usg_LVztaY()ozh7By!Ts2;wEM~@y8X&f&*ppzT%6Zq$I1Ku9;mT-^n7(c z^psng{Z3Cs9zBomhn{zu9={(?x$3-~i+zO7XSrA->HGuvoZ+1VEHGV6e|hm%V=f(K z%)*;_jrC9VVavY&N%__J`6!-$dQt^sW_Pg zf8+D`dv}iXB*N=?C;lFf7WZDmRC@kL#YSy*4<*qdcV17qjo#1noWMKFbOaFU*+Bgx zL~UQOvQmG&o_Cra?>F*K`ajwQ?O!+>6m_npeF)x%t~l}9ehdSrtpQK9pBsi*{#M$j z4fH(Ig7-BGzr-s){g>zhA1vvh{FrXcX;sGvO<8o}Dn9*tBC)TEK1FfLa2(wEDk*>R zzIMe&$Efnl`6|ILV!uQ2F=<@RR|#He6!&0s=)Ktb!PNOG!Tk8w-tRQi{~XMpHcYhX zYi%Wc^gm~v5~ojf6EFT%Ud~|2`KeU@#F)tXXPVN)=cmLzwVinF|Hc3KmpYf?XH2C0 zjC~>*%YmoHKk}|Z-DkDyE25;=&R`!>&UA@ \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/Boot.sc b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/Boot.sc deleted file mode 100644 index 9468ee54..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/Boot.sc +++ /dev/null @@ -1,405 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/Prog.sc b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/Prog.sc deleted file mode 100644 index 901d0ec1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/Prog.sc +++ /dev/null @@ -1,405 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c deleted file mode 100644 index 8b137891..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp deleted file mode 100644 index 8b137891..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/Boot.build.log b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/Boot.build.log deleted file mode 100644 index b5b9199c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/Boot.build.log +++ /dev/null @@ -1,16 +0,0 @@ - -**** Build of configuration bin for project Boot **** - -cs-make all -Invoking: ARM Sourcery Windows GNU Create Flash Image -arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec -Finished building: openbtl_olimex_stm32p103.hex - -Invoking: ARM Sourcery Windows GNU Print Size -arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - text data bss dec hex filename - 4688 0 1520 6208 1840 openbtl_olimex_stm32p103.elf -Finished building: openbtl_olimex_stm32p103.siz - - -**** Build Finished **** diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/Prog.build.log b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/Prog.build.log deleted file mode 100644 index 523c08d3..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/Prog.build.log +++ /dev/null @@ -1,195 +0,0 @@ - -**** Build of configuration bin for project Prog **** - -cs-make all -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -Building file: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d" -MT"lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o" "../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c" -Finished building: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -Building file: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d" -MT"lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o" "../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c" -Finished building: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -Building file: ../lib/stdio_mini.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdio_mini.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdio_mini.d" -MT"lib/stdio_mini.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdio_mini.o" "../lib/stdio_mini.c" -Finished building: ../lib/stdio_mini.c - -Building file: ../boot.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="boot.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"boot.d" -MT"boot.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "boot.o" "../boot.c" -Finished building: ../boot.c - -Building file: ../cstart.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="cstart.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"cstart.d" -MT"cstart.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "cstart.o" "../cstart.c" -Finished building: ../cstart.c - -Building file: ../irq.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="irq.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"irq.d" -MT"irq.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "irq.o" "../irq.c" -Finished building: ../irq.c - -Building file: ../led.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="led.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"led.d" -MT"led.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "led.o" "../led.c" -Finished building: ../led.c - -Building file: ../main.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="main.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"main.d" -MT"main.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "main.o" "../main.c" -Finished building: ../main.c - -Building file: ../timer.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="timer.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"timer.d" -MT"timer.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "timer.o" "../timer.c" -Finished building: ../timer.c - -Building file: ../uart.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="uart.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"uart.d" -MT"uart.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "uart.o" "../uart.c" -Finished building: ../uart.c - -Building file: ../vectors.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="vectors.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"vectors.d" -MT"vectors.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "vectors.o" "../vectors.c" -Finished building: ../vectors.c - -Building target: demoprog_olimex_stm32p103.elf -Invoking: ARM Sourcery Windows GCC C Linker -arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o ./lib/stdio_mini.o ./boot.o ./cstart.o ./irq.o ./led.o ./main.o ./timer.o ./uart.o ./vectors.o -Finished building target: demoprog_olimex_stm32p103.elf - -Invoking: ARM Sourcery Windows GNU Create Listing -arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" -Finished building: demoprog_olimex_stm32p103.lst - -Invoking: ARM Sourcery Windows GNU Create Flash Image -arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec -Finished building: demoprog_olimex_stm32p103.hex - -Invoking: ARM Sourcery Windows GNU Print Size -arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - text data bss dec hex filename - 4440 24 1120 5584 15d0 demoprog_olimex_stm32p103.elf -Finished building: demoprog_olimex_stm32p103.siz - - -**** Build Finished **** diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml deleted file mode 100644 index c6656cb8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml +++ /dev/null @@ -1,25 +0,0 @@ - -

- - - - - - - - - - - -
-
-
- - - - - -
-
-
-
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log deleted file mode 100644 index 523c08d3..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log +++ /dev/null @@ -1,195 +0,0 @@ - -**** Build of configuration bin for project Prog **** - -cs-make all -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c - -Building file: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d" -MT"lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o" "../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c" -Finished building: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -Building file: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d" -MT"lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o" "../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c" -Finished building: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -Building file: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d" -MT"lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o" "../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c" -Finished building: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -Building file: ../lib/stdio_mini.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="lib/stdio_mini.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"lib/stdio_mini.d" -MT"lib/stdio_mini.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "lib/stdio_mini.o" "../lib/stdio_mini.c" -Finished building: ../lib/stdio_mini.c - -Building file: ../boot.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="boot.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"boot.d" -MT"boot.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "boot.o" "../boot.c" -Finished building: ../boot.c - -Building file: ../cstart.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="cstart.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"cstart.d" -MT"cstart.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "cstart.o" "../cstart.c" -Finished building: ../cstart.c - -Building file: ../irq.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="irq.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"irq.d" -MT"irq.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "irq.o" "../irq.c" -Finished building: ../irq.c - -Building file: ../led.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="led.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"led.d" -MT"led.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "led.o" "../led.c" -Finished building: ../led.c - -Building file: ../main.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="main.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"main.d" -MT"main.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "main.o" "../main.c" -Finished building: ../main.c - -Building file: ../timer.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="timer.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"timer.d" -MT"timer.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "timer.o" "../timer.c" -Finished building: ../timer.c - -Building file: ../uart.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="uart.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"uart.d" -MT"uart.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "uart.o" "../uart.c" -Finished building: ../uart.c - -Building file: ../vectors.c -Invoking: ARM Sourcery Windows GCC C Compiler -arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="vectors.o.lst" -c -fmessage-length=0 -mlong-calls -MMD -MP -MF"vectors.d" -MT"vectors.d" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "vectors.o" "../vectors.c" -Finished building: ../vectors.c - -Building target: demoprog_olimex_stm32p103.elf -Invoking: ARM Sourcery Windows GCC C Linker -arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o ./lib/stdio_mini.o ./boot.o ./cstart.o ./irq.o ./led.o ./main.o ./timer.o ./uart.o ./vectors.o -Finished building target: demoprog_olimex_stm32p103.elf - -Invoking: ARM Sourcery Windows GNU Create Listing -arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" -Finished building: demoprog_olimex_stm32p103.lst - -Invoking: ARM Sourcery Windows GNU Create Flash Image -arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec -Finished building: demoprog_olimex_stm32p103.hex - -Invoking: ARM Sourcery Windows GNU Print Size -arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - text data bss dec hex filename - 4440 24 1120 5584 15d0 demoprog_olimex_stm32p103.elf -Finished building: demoprog_olimex_stm32p103.siz - - -**** Build Finished **** diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/302f3cf1091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/302f3cf1091d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/302f3cf1091d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/70994e1a0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/70994e1a0b1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/70994e1a0b1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/70f636a1f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/70f636a1f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/804030d8221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/804030d8221d0011116edf0151d9d887 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/804030d8221d0011116edf0151d9d887 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/f035cf3f021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/f035cf3f021d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/f035cf3f021d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/f0a432570e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/f0a432570e1d00111358d2931fee7772 deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/f0a432570e1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/302c66b00a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/302c66b00a1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/302c66b00a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/602d9d2d201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/602d9d2d201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/a058473c0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/a058473c0b1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/a058473c0b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/60252d5d041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/60252d5d041d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/60252d5d041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/7079cdd10d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/7079cdd10d1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/7079cdd10d1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/c032227c0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/c032227c0a1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/c032227c0a1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/6034d2d10d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/6034d2d10d1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/6034d2d10d1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/909d1c3efa1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/909d1c3efa1c00111358d2931fee7772 deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/909d1c3efa1c00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/e06e5a75221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/11/e06e5a75221d0011116edf0151d9d887 deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/80021471e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/80021471e91c00111565e8bbe12141cd deleted file mode 100644 index 9bf68be5..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/80021471e91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/c010082d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/c010082d091d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/c010082d091d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/8046912d201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/8046912d201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/f0b60204e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/f0b60204e91c00111565e8bbe12141cd deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/f0b60204e91c00111565e8bbe12141cd +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/8034d03c071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/8034d03c071d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/8034d03c071d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/90f50097051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/90f50097051d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/90f50097051d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/00dc4856201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/00dc4856201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/00dc4856201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/10c046ffe91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/10c046ffe91c00111565e8bbe12141cd deleted file mode 100644 index 7dff3cbf..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/10c046ffe91c00111565e8bbe12141cd +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/403939ace71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/403939ace71c00111565e8bbe12141cd deleted file mode 100644 index 1ab9db6d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/403939ace71c00111565e8bbe12141cd +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -Prog.hex \ - -SECONDARY_LIST += \ -Prog.lst \ - -SECONDARY_SIZE += \ -Prog.siz \ - - -# All Target -all: Prog.elf secondary-outputs - -# Tool invocations -Prog.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -Wl,-Map,Prog.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "Prog.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -Prog.hex: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec Prog.elf "Prog.hex" - @echo 'Finished building: $@' - @echo ' ' - -Prog.lst: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S Prog.elf > "Prog.lst" - @echo 'Finished building: $@' - @echo ' ' - -Prog.siz: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley Prog.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) Prog.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/00ce7c1a0e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/00ce7c1a0e1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/00ce7c1a0e1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/9015cc3fea1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/9015cc3fea1c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/70458efa071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/70458efa071d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/70458efa071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/7055a2000b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/7055a2000b1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/7055a2000b1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/10ad587cff1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/10ad587cff1c00111358d2931fee7772 deleted file mode 100644 index 505ccbce..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/10ad587cff1c00111358d2931fee7772 +++ /dev/null @@ -1,162 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/703ff89ff41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/703ff89ff41c00111565e8bbe12141cd deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/703ff89ff41c00111565e8bbe12141cd +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/d009b9e4f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/d009b9e4f61c00111565e8bbe12141cd deleted file mode 100644 index 7f0ed4d5..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/d009b9e4f61c00111565e8bbe12141cd +++ /dev/null @@ -1,166 +0,0 @@ -/**************************************************************************************** -| Description: bootloader interrupt vector table source file -| File Name: vectors.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* External functions -****************************************************************************************/ -extern void reset_handler(void); /* implemented in cstart.c */ - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -extern unsigned long _estack; /* stack end address (memory.x) */ - - -/**************************************************************************************** -** NAME: UnusedISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Catch-all for unused interrrupt service routines. -** -****************************************************************************************/ -void UnusedISR(void) -{ - /* unexpected interrupt occured, so halt the system */ - while (1) { ; } -} /*** end of UnusedISR ***/ - - -/**************************************************************************************** -* I N T E R R U P T V E C T O R T A B L E -****************************************************************************************/ -typedef union -{ - void (*func)(void); /* for ISR function pointers */ - unsigned long ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ - -__attribute__ ((section(".isr_vector"))) -const tIsrFunc _vectab[] = -{ - { .ptr = (unsigned long)&_estack }, /* the initial stack pointer */ - reset_handler, /* the reset handler */ - UnusedISR, /* NMI Handler */ - UnusedISR, /* Hard Fault Handler */ - UnusedISR, /* MPU Fault Handler */ - UnusedISR, /* Bus Fault Handler */ - UnusedISR, /* Usage Fault Handler */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* SVCall Handler */ - UnusedISR, /* Debug Monitor Handler */ - UnusedISR, /* Reserved */ - UnusedISR, /* PendSV Handler */ - TimerISRHandler, /* SysTick Handler */ - UnusedISR, /* Window Watchdog */ - UnusedISR, /* PVD through EXTI Line detect */ - UnusedISR, /* Tamper */ - UnusedISR, /* RTC */ - UnusedISR, /* Flash */ - UnusedISR, /* RCC */ - UnusedISR, /* EXTI Line 0 */ - UnusedISR, /* EXTI Line 1 */ - UnusedISR, /* EXTI Line 2 */ - UnusedISR, /* EXTI Line 3 */ - UnusedISR, /* EXTI Line 4 */ - UnusedISR, /* DMA1 Channel 1 */ - UnusedISR, /* DMA1 Channel 2 */ - UnusedISR, /* DMA1 Channel 3 */ - UnusedISR, /* DMA1 Channel 4 */ - UnusedISR, /* DMA1 Channel 5 */ - UnusedISR, /* DMA1 Channel 6 */ - UnusedISR, /* DMA1 Channel 7 */ - UnusedISR, /* ADC1 and ADC2 */ - UnusedISR, /* CAN1 TX */ - UnusedISR, /* CAN1 RX0 */ - UnusedISR, /* CAN1 RX1 */ - UnusedISR, /* CAN1 SCE */ - UnusedISR, /* EXTI Line 9..5 */ - UnusedISR, /* TIM1 Break */ - UnusedISR, /* TIM1 Update */ - UnusedISR, /* TIM1 Trigger and Commutation */ - UnusedISR, /* TIM1 Capture Compare */ - UnusedISR, /* TIM2 */ - UnusedISR, /* TIM3 */ - UnusedISR, /* TIM4 */ - UnusedISR, /* I2C1 Event */ - UnusedISR, /* I2C1 Error */ - UnusedISR, /* I2C2 Event */ - UnusedISR, /* I2C1 Error */ - UnusedISR, /* SPI1 */ - UnusedISR, /* SPI2 */ - UnusedISR, /* USART1 */ - UnusedISR, /* USART2 */ - UnusedISR, /* USART3 */ - UnusedISR, /* EXTI Line 15..10 */ - UnusedISR, /* RTC alarm through EXTI line */ - UnusedISR, /* USB OTG FS Wakeup */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* TIM5 */ - UnusedISR, /* SPI3 */ - UnusedISR, /* UART4 */ - UnusedISR, /* UART5 */ - UnusedISR, /* TIM6 */ - UnusedISR, /* TIM7 */ - UnusedISR, /* DMA2 Channel1 */ - UnusedISR, /* DMA2 Channel2 */ - UnusedISR, /* DMA2 Channel3 */ - UnusedISR, /* DMA2 Channel4 */ - UnusedISR, /* DMA2 Channel5 */ - UnusedISR, /* Ethernet */ - UnusedISR, /* Ethernet Wakeup */ - UnusedISR, /* CAN2 TX */ - UnusedISR, /* CAN2 RX0 */ - UnusedISR, /* CAN2 RX1 */ - UnusedISR, /* CAN2 SCE */ - UnusedISR, /* USB OTG FS */ - (void*)0x55AA11EE, /* Reserved for OpenBLT checksum */ -}; - - -/************************************ end of hw.c **************************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/20c814a0f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/20c814a0f41c00111565e8bbe12141cd deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/20c814a0f41c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/20ec95440a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/20ec95440a1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/20ec95440a1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/b076c93d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/b076c93d091d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/b076c93d091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/e0b71172f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/e0b71172f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/a0f7132d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/a0f7132d091d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/a0f7132d091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/f0c22d570e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/f0c22d570e1d00111358d2931fee7772 deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/f0c22d570e1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/00a8a240011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/00a8a240011d00111358d2931fee7772 deleted file mode 100644 index 98966035..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/00a8a240011d00111358d2931fee7772 +++ /dev/null @@ -1,350 +0,0 @@ -/**************************************************************************************** -| Description: demo program bootloader interface source file -| File Name: boot.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: BootActivate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Bootloader activation function. -** -****************************************************************************************/ -static void BootActivate(void) -{ - void (*pEntryFromProgFnc)(void); - - /* set pointer to the address of function EntryFromProg in the bootloader. note that - * 1 is added to this address to enable a switch from Thumb2 to Thumb mode - */ - pEntryFromProgFnc = (void*)0x08000150 + 1; - /* call EntryFromProg to activate the bootloader. */ - pEntryFromProgFnc(); -} /*** end of BootActivate ***/ - - -#if (BOOT_COM_UART_ENABLE > 0) -/**************************************************************************************** -* U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data); - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - UartInit(BOOT_COM_UART_BAUDRATE); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - static unsigned char xcpCtoReqPacket[BOOT_COM_UART_RX_MAX_DATA+1]; - static unsigned char xcpCtoRxLength; - static unsigned char xcpCtoRxInProgress = 0; - - /* start of cto packet received? */ - if (xcpCtoRxInProgress == 0) - { - /* store the message length when received */ - if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1) - { - /* indicate that a cto packet is being received */ - xcpCtoRxInProgress = 1; - - /* reset packet data count */ - xcpCtoRxLength = 0; - } - } - else - { - /* store the next packet byte */ - if (UartReceiveByte(&xcpCtoReqPacket[xcpCtoRxLength+1]) == 1) - { - /* increment the packet data count */ - xcpCtoRxLength++; - - /* check to see if the entire packet was received */ - if (xcpCtoRxLength == xcpCtoReqPacket[0]) - { - /* done with cto packet reception */ - xcpCtoRxInProgress = 0; - - /* check if this was an XCP CONNECT command */ - if ((xcpCtoReqPacket[1] == 0xff) && (xcpCtoReqPacket[2] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } - } -} /*** end of BootComCheckActivationRequest ***/ - - -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: 1 if a byte was received, 0 otherwise. -** DESCRIPTION: Receives a communication interface byte if one is present. -** -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data) -{ - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == SET) - { - /* retrieve and store the newly received byte */ - *data = (unsigned char)USART_ReceiveData(USART2); - /* all done */ - return 1; - } - /* still here to no new byte received */ - return 0; -} /*** end of UartReceiveByte ***/ -#endif /* BOOT_COM_UART_ENABLE > 0 */ - - -#if (BOOT_COM_CAN_ENABLE > 0) -/**************************************************************************************** -* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Type definitions -****************************************************************************************/ -typedef struct t_can_bus_timing -{ - unsigned char tseg1; /* CAN time segment 1 */ - unsigned char tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta - * (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1. - * The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains - * possible and valid time quanta configurations with a sample point between 68..78%. - */ -static const tCanBusTiming canTiming[] = -{ /* TQ | TSEG1 | TSEG2 | SP */ - /* ------------------------- */ - { 5, 2 }, /* 8 | 5 | 2 | 75% */ - { 6, 2 }, /* 9 | 6 | 2 | 78% */ - { 6, 3 }, /* 10 | 6 | 3 | 70% */ - { 7, 3 }, /* 11 | 7 | 3 | 73% */ - { 8, 3 }, /* 12 | 8 | 3 | 75% */ - { 9, 3 }, /* 13 | 9 | 3 | 77% */ - { 9, 4 }, /* 14 | 9 | 4 | 71% */ - { 10, 4 }, /* 15 | 10 | 4 | 73% */ - { 11, 4 }, /* 16 | 11 | 4 | 75% */ - { 12, 4 }, /* 17 | 12 | 4 | 76% */ - { 12, 5 }, /* 18 | 12 | 5 | 72% */ - { 13, 5 }, /* 19 | 13 | 5 | 74% */ - { 14, 5 }, /* 20 | 14 | 5 | 75% */ - { 15, 5 }, /* 21 | 15 | 5 | 76% */ - { 15, 6 }, /* 22 | 15 | 6 | 73% */ - { 16, 6 }, /* 23 | 16 | 6 | 74% */ - { 16, 7 }, /* 24 | 16 | 7 | 71% */ - { 16, 8 } /* 25 | 16 | 8 | 68% */ -}; - - -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 will be stored. -** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise. -** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus -** timing configuration. -** -****************************************************************************************/ -static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, - unsigned char *tseg1, unsigned char *tseg2) -{ - unsigned char cnt; - - /* loop through all possible time quanta configurations to find a match */ - for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) - { - if (((BOOT_CPU_SYSTEM_SPEED_KHZ/2) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) - { - /* compute the prescaler that goes with this TQ configuration */ - *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/2)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); - - /* make sure the prescaler is valid */ - if ( (*prescaler > 0) && (*prescaler <= 1024) ) - { - /* store the bustiming configuration */ - *tseg1 = canTiming[cnt].tseg1; - *tseg2 = canTiming[cnt].tseg2; - /* found a good bus timing configuration */ - return 1; - } - } - } - /* could not find a good bus timing configuration */ - return 0; -} /*** end of CanGetSpeedConfig ***/ - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - CAN_InitTypeDef CAN_InitStructure; - CAN_FilterInitTypeDef CAN_FilterInitStructure; - unsigned short prescaler; - unsigned char tseg1, tseg2; - - /* GPIO clock enable */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); - /* Configure CAN pin: RX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Configure CAN pin: TX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Remap CAN1 pins to PortB */ - GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE); - /* CAN1 Periph clock enable */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); - /* CAN register init */ - CAN_DeInit(CAN1); - CAN_StructInit(&CAN_InitStructure); - /* obtain the bittiming configuration for this baudrate */ - CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); - /* CAN controller init */ - CAN_InitStructure.CAN_TTCM = DISABLE; - CAN_InitStructure.CAN_ABOM = DISABLE; - CAN_InitStructure.CAN_AWUM = DISABLE; - CAN_InitStructure.CAN_NART = DISABLE; - CAN_InitStructure.CAN_RFLM = DISABLE; - CAN_InitStructure.CAN_TXFP = DISABLE; - CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; - /* CAN Baudrate init */ - CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; - CAN_InitStructure.CAN_BS1 = tseg1 - 1; - CAN_InitStructure.CAN_BS2 = tseg2 - 1; - CAN_InitStructure.CAN_Prescaler = prescaler; - CAN_Init(CAN1, &CAN_InitStructure); - /* CAN filter init - receive all messages */ - CAN_FilterInitStructure.CAN_FilterNumber = 0; - CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; - CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; - CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; - CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; - CAN_FilterInit(&CAN_FilterInitStructure); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - CanRxMsg RxMessage; - - /* check if a new message was received */ - if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0) - { - /* receive the message */ - CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); - if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) - { - /* check if this was an XCP CONNECT command */ - if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_CAN_ENABLE > 0 */ - - -/*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/20fbfe76f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/20fbfe76f61c00111565e8bbe12141cd deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/20fbfe76f61c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/5081ab3f021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/5081ab3f021d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/5081ab3f021d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/10450177f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/10450177f61c00111565e8bbe12141cd deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/10450177f61c00111565e8bbe12141cd +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/4032521e091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/4032521e091d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/4032521e091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/7066e47b0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/7066e47b0a1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/7066e47b0a1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/70e32413f71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/70e32413f71c00111565e8bbe12141cd deleted file mode 100644 index 6ecc6da6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/70e32413f71c00111565e8bbe12141cd +++ /dev/null @@ -1,166 +0,0 @@ -/**************************************************************************************** -| Description: bootloader interrupt vector table source file -| File Name: vectors.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* External functions -****************************************************************************************/ -extern void reset_handler(void); /* implemented in cstart.c */ - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -extern unsigned long _estack; /* stack end address (memory.x) */ - - -/**************************************************************************************** -** NAME: UnusedISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Catch-all for unused interrrupt service routines. -** -****************************************************************************************/ -void UnusedISR(void) -{ - /* unexpected interrupt occured, so halt the system */ - while (1) { ; } -} /*** end of UnusedISR ***/ - - -/**************************************************************************************** -* I N T E R R U P T V E C T O R T A B L E -****************************************************************************************/ -typedef union -{ - void (*func)(void); /* for ISR function pointers */ - unsigned long ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ - -__attribute__ ((section(".isr_vector"))) -const tIsrFunc _vectab[] = -{ - { .ptr = (unsigned long)&_estack }, /* the initial stack pointer */ - { reset_handler }, /* the reset handler */ - { UnusedISR }, /* NMI Handler */ - { UnusedISR }, /* Hard Fault Handler */ - { UnusedISR }, /* MPU Fault Handler */ - { UnusedISR }, /* Bus Fault Handler */ - { UnusedISR }, /* Usage Fault Handler */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* SVCall Handler */ - { UnusedISR }, /* Debug Monitor Handler */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* PendSV Handler */ - TimerISRHandler, /* SysTick Handler */ - { UnusedISR }, /* Window Watchdog */ - { UnusedISR }, /* PVD through EXTI Line detect */ - { UnusedISR }, /* Tamper */ - { UnusedISR }, /* RTC */ - { UnusedISR }, /* Flash */ - { UnusedISR }, /* RCC */ - { UnusedISR }, /* EXTI Line 0 */ - { UnusedISR }, /* EXTI Line 1 */ - { UnusedISR }, /* EXTI Line 2 */ - { UnusedISR }, /* EXTI Line 3 */ - { UnusedISR }, /* EXTI Line 4 */ - { UnusedISR }, /* DMA1 Channel 1 */ - { UnusedISR }, /* DMA1 Channel 2 */ - { UnusedISR }, /* DMA1 Channel 3 */ - { UnusedISR }, /* DMA1 Channel 4 */ - { UnusedISR }, /* DMA1 Channel 5 */ - { UnusedISR }, /* DMA1 Channel 6 */ - { UnusedISR }, /* DMA1 Channel 7 */ - { UnusedISR }, /* ADC1 and ADC2 */ - { UnusedISR }, /* CAN1 TX */ - { UnusedISR }, /* CAN1 RX0 */ - { UnusedISR }, /* CAN1 RX1 */ - { UnusedISR }, /* CAN1 SCE */ - { UnusedISR }, /* EXTI Line 9..5 */ - { UnusedISR }, /* TIM1 Break */ - { UnusedISR }, /* TIM1 Update */ - { UnusedISR }, /* TIM1 Trigger and Commutation */ - { UnusedISR }, /* TIM1 Capture Compare */ - { UnusedISR }, /* TIM2 */ - { UnusedISR }, /* TIM3 */ - { UnusedISR }, /* TIM4 */ - { UnusedISR }, /* I2C1 Event */ - { UnusedISR }, /* I2C1 Error */ - { UnusedISR }, /* I2C2 Event */ - { UnusedISR }, /* I2C1 Error */ - { UnusedISR }, /* SPI1 */ - { UnusedISR }, /* SPI2 */ - { UnusedISR }, /* USART1 */ - { UnusedISR }, /* USART2 */ - { UnusedISR }, /* USART3 */ - { UnusedISR }, /* EXTI Line 15..10 */ - { UnusedISR }, /* RTC alarm through EXTI line */ - { UnusedISR }, /* USB OTG FS Wakeup */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* TIM5 */ - { UnusedISR }, /* SPI3 */ - { UnusedISR }, /* UART4 */ - { UnusedISR }, /* UART5 */ - { UnusedISR }, /* TIM6 */ - { UnusedISR }, /* TIM7 */ - { UnusedISR }, /* DMA2 Channel1 */ - { UnusedISR }, /* DMA2 Channel2 */ - { UnusedISR }, /* DMA2 Channel3 */ - { UnusedISR }, /* DMA2 Channel4 */ - { UnusedISR }, /* DMA2 Channel5 */ - { UnusedISR }, /* Ethernet */ - { UnusedISR }, /* Ethernet Wakeup */ - { UnusedISR }, /* CAN2 TX */ - { UnusedISR }, /* CAN2 RX0 */ - { UnusedISR }, /* CAN2 RX1 */ - { UnusedISR }, /* CAN2 SCE */ - { UnusedISR }, /* USB OTG FS */ - { (void*)0x55AA11EE }, /* Reserved for OpenBLT checksum */ -}; - - -/************************************ end of hw.c **************************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/d09b3db6221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/d09b3db6221d0011116edf0151d9d887 deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/d09b3db6221d0011116edf0151d9d887 +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/201632030d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/201632030d1d00111358d2931fee7772 deleted file mode 100644 index e44afbf4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/201632030d1d00111358d2931fee7772 +++ /dev/null @@ -1,205 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void DisplayUptime(void); -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* Output uptime on terminal */ - DisplayUptime(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: DisplayUptime -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Outputs the program's runtime on the terminal every second. -** -****************************************************************************************/ -static void DisplayUptime(void) -{ - static unsigned long uptime_ms_last = 0; - unsigned long uptime_ms_now; - unsigned char hr, min, sec; - - uptime_ms_now = TimerGet(); - - /* output info on terminal just once a second */ - if ( (uptime_ms_now - uptime_ms_last) < 1000) - { - /* not yet time to toggle */ - return; - } - /* calculate uptime */ - sec = uptime_ms_now/1000; - min = sec/60; - hr = min/60; - - /* output time on terminal */ - printf("Program uptime: %d:%02d:%02d\r", hr, min, sec); - - /* store for next comparison */ - uptime_ms_last = uptime_ms_now; -} /*** end of DisplayUptime ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/70d6a0220a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/70d6a0220a1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/70d6a0220a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/b1841a04e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/b1841a04e91c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/c111bc440a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/c111bc440a1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/c111bc440a1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/30cff776f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/30cff776f61c00111565e8bbe12141cd deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/30cff776f61c00111565e8bbe12141cd +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/709de046201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/709de046201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/9061d663e81c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/9061d663e81c00111565e8bbe12141cd deleted file mode 100644 index ad2dac46..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/9061d663e81c00111565e8bbe12141cd +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/f0425375221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/f0425375221d0011116edf0151d9d887 deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/f0fc0c72f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/f0fc0c72f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/90f12fa1f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/90f12fa1f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/20968bf0041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/20968bf0041d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/20968bf0041d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/9055eedb041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/9055eedb041d00111358d2931fee7772 deleted file mode 100644 index 8378f15f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/9055eedb041d00111358d2931fee7772 +++ /dev/null @@ -1,182 +0,0 @@ -/**************************************************************************************** -| Description: Newlib system calls remapping source file -| File Name: syscalls.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -** NAME: _read_r -** PARAMETER: len number of character to read. -** RETURN VALUE: number of characters read -** DESCRIPTION: Reentrant function for reading data from a file. In this case the -** read is performed from the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _read_r(struct _reent *r, int file, void *ptr, size_t len) -{ - char c; - int i; - unsigned char *p; - - p = (unsigned char*)ptr; - - /* receive all characters with echo */ - for (i = 0; i < len; i++) - { - c = UartRxChar(1); - - *p++ = c; - UartTxChar(c); - - /* was this a \n newline code? */ - if (c == 0x0D && i <= (len - 2)) - { - /* automatically add cariage return after a new line */ - *p = 0x0A; - UartTxChar(0x0A); - return i + 2; - } - } - return i; -} /*** end of _read_r ***/ - - -/**************************************************************************************** -** NAME: _write_r -** PARAMETER: len number of character to write -** RETURN VALUE: number of characters written. -** DESCRIPTION: Reentrant function for writing data from a file. In this case the -** write is performed to the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _write_r(struct _reent *r, int file, const void *ptr, size_t len) -{ - int i; - const unsigned char *p; - - p = (const unsigned char*) ptr; - - /* transmit all characters */ - for (i = 0; i < len; i++) - { - if (*p == '\n' ) - { - /* automatically add cariage return after a new line */ - UartTxChar('\r'); - } - UartTxChar(*p++); - } - - return len; -} /*** end of _write_r ***/ - - -/**************************************************************************************** -** NAME: _close_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for closing a file. Since UART is used, no further -** action is required here. -** -****************************************************************************************/ -int _close_r(struct _reent *r, int file) -{ - return 0; -} /*** end of _close_r ***/ - - -/**************************************************************************************** -** NAME: _lseek_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for obtaining the file pointer. Since UART is -** used, no further action is required here. -** -****************************************************************************************/ -_off_t _lseek_r(struct _reent *r, int file, _off_t ptr, int dir) -{ - /* always at the beginning of the file */ - return (_off_t)0; -} /*** end of _lseek_r ***/ - - -/**************************************************************************************** - * -** NAME: _fstat_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for setting the device mode. -** -****************************************************************************************/ -int _fstat_r(struct _reent *r, int file, struct stat *st) -{ - /* set as character device */ - st->st_mode = S_IFCHR; - return 0; -} /*** end of _fstat_r ***/ - - - -/**************************************************************************************** -** NAME: _isatty_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -int _isatty_r(int file) -{ - return 1; -} /*** end of _isatty_r ***/ - - -/**************************************************************************************** -** NAME: _sbrk_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -void * _sbrk_r(struct _reent *_s_r, ptrdiff_t nbytes) -{ - -} /*** end of _sbrk_r ***/ - - -/*********************************** end of syscalls.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/9082f7d1001d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/9082f7d1001d00111358d2931fee7772 deleted file mode 100644 index cc3d00cc..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/9082f7d1001d00111358d2931fee7772 +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************************** -| Description: UART driver source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: baudrate communication speed in bits/sec -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART interface for the selected communication speed. -** -****************************************************************************************/ -void UartInit(unsigned long baudrate) -{ - GPIO_InitTypeDef GPIO_InitStruct; - USART_InitTypeDef USART_InitStruct; - - /* enable UART peripheral clock */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); - /* enable GPIO peripheral clock for transmitter and receiver pins */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); - /* configure USART Tx as alternate function push-pull */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* Configure USART Rx as alternate function input floating */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* configure UART communcation parameters */ - USART_InitStruct.USART_BaudRate = baudrate; - USART_InitStruct.USART_WordLength = USART_WordLength_8b; - USART_InitStruct.USART_StopBits = USART_StopBits_1; - USART_InitStruct.USART_Parity = USART_Parity_No; - USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_Init(USART2, &USART_InitStruct); - /* enable UART */ - USART_Cmd(USART2, ENABLE); -} /*** end of UartInit ***/ - - -/**************************************************************************************** -** NAME: UartTxChar -** PARAMETER: ch character to transmit -** RETURN VALUE: the transmitted character. -** DESCRIPTION: Transmits a character through the UART interface. -** -****************************************************************************************/ -int UartTxChar(int ch) -{ - /* wait for transmit completion of the previous character, if any */ - while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET) { ; } - /* transmit the character */ - USART_SendData(USART2, (unsigned char)ch); - /* for stdio compatibility */ - return ch; -} /*** end of UartTxChar ***/ - - -/**************************************************************************************** -** NAME: UartRxChar -** PARAMETER: blocking 1 to block until a character was received, 0 otherwise. -** RETURN VALUE: the value of the received character or -1. -** DESCRIPTION: Receives a character from the UART interface. -** -****************************************************************************************/ -int UartRxChar(unsigned char blocking) -{ - if (!blocking) - { - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) - { - return -1; - } - } - else - { - /* wait for reception of byte */ - while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) { ; } - } - /* retrieve and return the newly received byte */ - return USART_ReceiveData(USART2); -} /*** end of UartRxChar ***/ - - -/*********************************** end of uart.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/a0ee8eb5091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/a0ee8eb5091d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/a0ee8eb5091d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/c0d9bf3d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/c0d9bf3d091d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/c0d9bf3d091d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/e037ed360a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/e037ed360a1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/e037ed360a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/203e379d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/203e379d091d00111358d2931fee7772 deleted file mode 100644 index 253654d4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/203e379d091d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/60983ed8221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/60983ed8221d0011116edf0151d9d887 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/60983ed8221d0011116edf0151d9d887 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/80b11b56201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/80b11b56201d00111c63a4b3c7bd9f5b deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/80b11b56201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/90630369041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/90630369041d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/90630369041d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/50e8eb76f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/50e8eb76f61c00111565e8bbe12141cd deleted file mode 100644 index ce284ef6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/50e8eb76f61c00111565e8bbe12141cd +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./source/ARMCM3_STM32/GCC/cstart.o \ -./source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./source/ARMCM3_STM32/GCC/cstart.d \ -./source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/d024de9c0d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/d024de9c0d1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/d024de9c0d1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/f135cf3f021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/f135cf3f021d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/f135cf3f021d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/000a49ffe91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/000a49ffe91c00111565e8bbe12141cd deleted file mode 100644 index 9bf68be5..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/000a49ffe91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/f0b431b6221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/f0b431b6221d0011116edf0151d9d887 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/f0b431b6221d0011116edf0151d9d887 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/f03550ffe91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/f03550ffe91c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/f03550ffe91c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/30753b75221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/30753b75221d0011116edf0151d9d887 deleted file mode 100644 index 1ec53392..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/30753b75221d0011116edf0151d9d887 +++ /dev/null @@ -1,31 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ -Source \ -Source/ARMCM3_STM32 \ -Source/ARMCM3_STM32/GCC \ -source/ARMCM3_STM32/GCC \ -source/ARMCM3_STM32 \ -source \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/8071d946201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/8071d946201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/90ee3e31071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/90ee3e31071d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/90ee3e31071d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/e0710704e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/e0710704e91c00111565e8bbe12141cd deleted file mode 100644 index ad2dac46..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/e0710704e91c00111565e8bbe12141cd +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/e0d4a5f0041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/e0d4a5f0041d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/e0d4a5f0041d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/10160172f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/10160172f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/d09a6175221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/d09a6175221d0011116edf0151d9d887 deleted file mode 100644 index 9f360a2f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/d09a6175221d0011116edf0151d9d887 +++ /dev/null @@ -1,86 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include Source/ARMCM3_STM32/GCC/subdir.mk --include Source/ARMCM3_STM32/subdir.mk --include Source/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/1039b583f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/1039b583f61c00111565e8bbe12141cd deleted file mode 100644 index 571a949b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/1039b583f61c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./source/assert.o \ -./source/backdoor.o \ -./source/boot.o \ -./source/com.o \ -./source/cop.o \ -./source/xcp.o - -C_DEPS += \ -./source/assert.d \ -./source/backdoor.d \ -./source/boot.d \ -./source/com.d \ -./source/cop.d \ -./source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/a0aa67fa071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/a0aa67fa071d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/a0aa67fa071d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/f022627cff1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/f022627cff1c00111358d2931fee7772 deleted file mode 100644 index 773d4cc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/f022627cff1c00111358d2931fee7772 +++ /dev/null @@ -1,375 +0,0 @@ -/**************************************************************************************** -| Description: demo program bootloader interface source file -| File Name: boot.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: BootActivate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Bootloader activation function. -** -****************************************************************************************/ -static void BootActivate(void) -{ - void (*pEntryFromProgFnc)(void); - - /* set pointer to the address of function EntryFromProg in the bootloader. note that - * 1 is added to this address to enable a switch from Thumb2 to Thumb mode - */ - pEntryFromProgFnc = (void*)0x08000150 + 1; - /* call EntryFromProg to activate the bootloader. */ - pEntryFromProgFnc(); -} /*** end of BootActivate ***/ - - -#if (BOOT_COM_UART_ENABLE > 0) -/**************************************************************************************** -* U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data); - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - GPIO_InitTypeDef GPIO_InitStruct; - USART_InitTypeDef USART_InitStruct; - - /* enable UART peripheral clock */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); - /* enable GPIO peripheral clock for transmitter and receiver pins */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); - /* configure USART Tx as alternate function push-pull */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* Configure USART Rx as alternate function input floating */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* configure UART communcation parameters */ - USART_InitStruct.USART_BaudRate = BOOT_COM_UART_BAUDRATE; - USART_InitStruct.USART_WordLength = USART_WordLength_8b; - USART_InitStruct.USART_StopBits = USART_StopBits_1; - USART_InitStruct.USART_Parity = USART_Parity_No; - USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_Init(USART2, &USART_InitStruct); - /* enable UART */ - USART_Cmd(USART2, ENABLE); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - static unsigned char xcpCtoReqPacket[BOOT_COM_UART_RX_MAX_DATA+1]; - static unsigned char xcpCtoRxLength; - static unsigned char xcpCtoRxInProgress = 0; - - /* start of cto packet received? */ - if (xcpCtoRxInProgress == 0) - { - /* store the message length when received */ - if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1) - { - /* indicate that a cto packet is being received */ - xcpCtoRxInProgress = 1; - - /* reset packet data count */ - xcpCtoRxLength = 0; - } - } - else - { - /* store the next packet byte */ - if (UartReceiveByte(&xcpCtoReqPacket[xcpCtoRxLength+1]) == 1) - { - /* increment the packet data count */ - xcpCtoRxLength++; - - /* check to see if the entire packet was received */ - if (xcpCtoRxLength == xcpCtoReqPacket[0]) - { - /* done with cto packet reception */ - xcpCtoRxInProgress = 0; - - /* check if this was an XCP CONNECT command */ - if ((xcpCtoReqPacket[1] == 0xff) && (xcpCtoReqPacket[2] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } - } -} /*** end of BootComCheckActivationRequest ***/ - - -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: 1 if a byte was received, 0 otherwise. -** DESCRIPTION: Receives a communication interface byte if one is present. -** -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data) -{ - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == SET) - { - /* retrieve and store the newly received byte */ - *data = (unsigned char)USART_ReceiveData(USART2); - /* all done */ - return 1; - } - /* still here to no new byte received */ - return 0; -} /*** end of UartReceiveByte ***/ -#endif /* BOOT_COM_UART_ENABLE > 0 */ - - -#if (BOOT_COM_CAN_ENABLE > 0) -/**************************************************************************************** -* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Type definitions -****************************************************************************************/ -typedef struct t_can_bus_timing -{ - unsigned char tseg1; /* CAN time segment 1 */ - unsigned char tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta - * (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1. - * The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains - * possible and valid time quanta configurations with a sample point between 68..78%. - */ -static const tCanBusTiming canTiming[] = -{ /* TQ | TSEG1 | TSEG2 | SP */ - /* ------------------------- */ - { 5, 2 }, /* 8 | 5 | 2 | 75% */ - { 6, 2 }, /* 9 | 6 | 2 | 78% */ - { 6, 3 }, /* 10 | 6 | 3 | 70% */ - { 7, 3 }, /* 11 | 7 | 3 | 73% */ - { 8, 3 }, /* 12 | 8 | 3 | 75% */ - { 9, 3 }, /* 13 | 9 | 3 | 77% */ - { 9, 4 }, /* 14 | 9 | 4 | 71% */ - { 10, 4 }, /* 15 | 10 | 4 | 73% */ - { 11, 4 }, /* 16 | 11 | 4 | 75% */ - { 12, 4 }, /* 17 | 12 | 4 | 76% */ - { 12, 5 }, /* 18 | 12 | 5 | 72% */ - { 13, 5 }, /* 19 | 13 | 5 | 74% */ - { 14, 5 }, /* 20 | 14 | 5 | 75% */ - { 15, 5 }, /* 21 | 15 | 5 | 76% */ - { 15, 6 }, /* 22 | 15 | 6 | 73% */ - { 16, 6 }, /* 23 | 16 | 6 | 74% */ - { 16, 7 }, /* 24 | 16 | 7 | 71% */ - { 16, 8 } /* 25 | 16 | 8 | 68% */ -}; - - -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 will be stored. -** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise. -** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus -** timing configuration. -** -****************************************************************************************/ -static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, - unsigned char *tseg1, unsigned char *tseg2) -{ - unsigned char cnt; - - /* loop through all possible time quanta configurations to find a match */ - for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) - { - if (((BOOT_CPU_SYSTEM_SPEED_KHZ/2) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) - { - /* compute the prescaler that goes with this TQ configuration */ - *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/2)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); - - /* make sure the prescaler is valid */ - if ( (*prescaler > 0) && (*prescaler <= 1024) ) - { - /* store the bustiming configuration */ - *tseg1 = canTiming[cnt].tseg1; - *tseg2 = canTiming[cnt].tseg2; - /* found a good bus timing configuration */ - return 1; - } - } - } - /* could not find a good bus timing configuration */ - return 0; -} /*** end of CanGetSpeedConfig ***/ - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - CAN_InitTypeDef CAN_InitStructure; - CAN_FilterInitTypeDef CAN_FilterInitStructure; - unsigned short prescaler; - unsigned char tseg1, tseg2; - - /* GPIO clock enable */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); - /* Configure CAN pin: RX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Configure CAN pin: TX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Remap CAN1 pins to PortB */ - GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE); - /* CAN1 Periph clock enable */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); - /* CAN register init */ - CAN_DeInit(CAN1); - CAN_StructInit(&CAN_InitStructure); - /* obtain the bittiming configuration for this baudrate */ - CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); - /* CAN controller init */ - CAN_InitStructure.CAN_TTCM = DISABLE; - CAN_InitStructure.CAN_ABOM = DISABLE; - CAN_InitStructure.CAN_AWUM = DISABLE; - CAN_InitStructure.CAN_NART = DISABLE; - CAN_InitStructure.CAN_RFLM = DISABLE; - CAN_InitStructure.CAN_TXFP = DISABLE; - CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; - /* CAN Baudrate init */ - CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; - CAN_InitStructure.CAN_BS1 = tseg1 - 1; - CAN_InitStructure.CAN_BS2 = tseg2 - 1; - CAN_InitStructure.CAN_Prescaler = prescaler; - CAN_Init(CAN1, &CAN_InitStructure); - /* CAN filter init - receive all messages */ - CAN_FilterInitStructure.CAN_FilterNumber = 0; - CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; - CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; - CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; - CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; - CAN_FilterInit(&CAN_FilterInitStructure); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - CanRxMsg RxMessage; - - /* check if a new message was received */ - if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0) - { - /* receive the message */ - CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); - if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) - { - /* check if this was an XCP CONNECT command */ - if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_CAN_ENABLE > 0 */ - - -/*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/e01de8fa0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/e01de8fa0a1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/e01de8fa0a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/4070bdbf091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/4070bdbf091d00111358d2931fee7772 deleted file mode 100644 index e1e25a3d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/4070bdbf091d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - putch(sign); - txcharcnt++; - } - if (x) - { - putch ('0'); - txcharcnt++; - putch(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - putch (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - putch (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - putch (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/7047733c071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/7047733c071d00111358d2931fee7772 deleted file mode 100644 index 4865a76f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/7047733c071d00111358d2931fee7772 +++ /dev/null @@ -1,224 +0,0 @@ -/**************************************************************************************** -| Description: Newlib system calls remapping source file -| File Name: syscalls.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -** NAME: _read_r -** PARAMETER: len number of character to read. -** RETURN VALUE: number of characters read -** DESCRIPTION: Reentrant function for reading data from a file. In this case the -** read is performed from the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _read_r(struct _reent *r, int file, void *ptr, size_t len) -{ - char c; - int i; - unsigned char *p; - - p = (unsigned char*)ptr; - - /* receive all characters with echo */ - for (i = 0; i < len; i++) - { - c = UartRxChar(1); - - *p++ = c; - UartTxChar(c); - - /* was this a \n newline code? */ - if (c == 0x0D && i <= (len - 2)) - { - /* automatically add cariage return after a new line */ - *p = 0x0A; - UartTxChar(0x0A); - return i + 2; - } - } - return i; -} /*** end of _read_r ***/ - - -/**************************************************************************************** -** NAME: _write_r -** PARAMETER: len number of character to write -** RETURN VALUE: number of characters written. -** DESCRIPTION: Reentrant function for writing data from a file. In this case the -** write is performed to the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _write_r(struct _reent *r, int file, const void *ptr, size_t len) -{ - int i; - const unsigned char *p; - - p = (const unsigned char*) ptr; - - /* transmit all characters */ - for (i = 0; i < len; i++) - { - if (*p == '\n' ) - { - /* automatically add cariage return after a new line */ - UartTxChar('\r'); - } - UartTxChar(*p++); - } - - return len; -} /*** end of _write_r ***/ - - -/**************************************************************************************** -** NAME: _close_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for closing a file. Since UART is used, no further -** action is required here. -** -****************************************************************************************/ -int _close_r(struct _reent *r, int file) -{ - return 0; -} /*** end of _close_r ***/ - - -/**************************************************************************************** -** NAME: _lseek_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for obtaining the file pointer. Since UART is -** used, no further action is required here. -** -****************************************************************************************/ -_off_t _lseek_r(struct _reent *r, int file, _off_t ptr, int dir) -{ - /* always at the beginning of the file */ - return (_off_t)0; -} /*** end of _lseek_r ***/ - - -/**************************************************************************************** - * -** NAME: _fstat_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for setting the device mode. -** -****************************************************************************************/ -int _fstat_r(struct _reent *r, int file, struct stat *st) -{ - /* set as character device */ - st->st_mode = S_IFCHR; - return 0; -} /*** end of _fstat_r ***/ - - - -/**************************************************************************************** -** NAME: _isatty_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -int _isatty_r(struct _reent *r, int file) -{ - return 1; -} /*** end of _isatty_r ***/ - - -/**** Locally used variables. ****/ -extern char end[]; /* end is set in the linker command */ - /* file and is the end of statically */ - /* allocated data (thus start of heap). */ - - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -/* these externals are declared by the linker */ -extern unsigned long _heap; -extern unsigned long _eheap; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static char *heap_ptr = NULL; -static char heap[512]; - -/**************************************************************************************** -** NAME: _sbrk_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Increments the heap pointer. -** -****************************************************************************************/ -void * _sbrk_r(struct _reent *_s_r, ptrdiff_t nbytes) -{ - char *base; - - /* initialize the heap pointer if not yet done */ - if (heap_ptr == NULL) - { - /* set it to the current end of the heap */ - heap_ptr = &heap[0]; - } - - /* check if there is still room on the heap for this allocation */ - if ((unsigned long)(heap_ptr + nbytes) > (unsigned long)(heap + sizeof(heap))) - { - /* cannot allocate */ - return NULL; - } - - /* remember current pointer value for the return value */ - base = heap_ptr; /* Point to end of heap. */ - /* allocate the */ - heap_ptr += nbytes; /* Increase heap. */ - - return base; /* Return pointer to start of new heap area. */ -} /*** end of _sbrk_r ***/ - - -/*********************************** end of syscalls.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/105d23b6221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/105d23b6221d0011116edf0151d9d887 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/105d23b6221d0011116edf0151d9d887 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/40be7d7c201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/40be7d7c201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/602da9b5091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/602da9b5091d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/602da9b5091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/e0afd8450b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/e0afd8450b1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/e0afd8450b1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/b07d855ee91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/b07d855ee91c00111565e8bbe12141cd deleted file mode 100644 index 9bf68be5..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/b07d855ee91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/00e4bde90a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/00e4bde90a1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/00e4bde90a1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/60c14f99221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/60c14f99221d0011116edf0151d9d887 deleted file mode 100644 index a4f03e25..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/60c14f99221d0011116edf0151d9d887 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/70774d99221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/70774d99221d0011116edf0151d9d887 deleted file mode 100644 index e8c813a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/70774d99221d0011116edf0151d9d887 +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ -Source \ -Source/ARMCM3_STM32 \ -Source/ARMCM3_STM32/GCC \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/80911171e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/80911171e91c00111565e8bbe12141cd deleted file mode 100644 index 7dff3cbf..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/80911171e91c00111565e8bbe12141cd +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/80e2db46201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/80e2db46201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/e04656f1091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/e04656f1091d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/e04656f1091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/702b43a1f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/702b43a1f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/c0fb0b3efa1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/c0fb0b3efa1c00111358d2931fee7772 deleted file mode 100644 index ce284ef6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/c0fb0b3efa1c00111358d2931fee7772 +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./source/ARMCM3_STM32/GCC/cstart.o \ -./source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./source/ARMCM3_STM32/GCC/cstart.d \ -./source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/802fcbd10d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/802fcbd10d1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/802fcbd10d1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/c04aaff0041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/c04aaff0041d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/c04aaff0041d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/00349d030d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/00349d030d1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/00349d030d1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/f0eea1030d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/f0eea1030d1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/f0eea1030d1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/0067f0eafe1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/0067f0eafe1c00111358d2931fee7772 deleted file mode 100644 index 746dc984..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/0067f0eafe1c00111358d2931fee7772 +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************************** -| Description: UART driver source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: baudrate communication speed in bits/sec -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART interface for the selected communication speed. -** -****************************************************************************************/ -void UartInit(unsigned long baudrate) -{ - -} /*** end of UartInit ***/ - - -/**************************************************************************************** -** NAME: UartTxChar -** PARAMETER: ch character to transmit -** RETURN VALUE: the transmitted character. -** DESCRIPTION: Transmits a character through the UART interface. -** -****************************************************************************************/ -int UartTxChar(int ch) -{ - - /* for stdio compatibility */ - return ch; -} /*** end of UartTxChar ***/ - - -/**************************************************************************************** -** NAME: UartRxChar -** PARAMETER: blocking 1 to block until a character was received, 0 otherwise. -** RETURN VALUE: the value of the received character or -1. -** DESCRIPTION: Receives a character from the UART interface. -** -****************************************************************************************/ -int UartRxChar(unsigned char blocking) -{ - return -1; -} /*** end of UartRxChar ***/ - - -/*********************************** end of uart.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/106277fa071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/106277fa071d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/106277fa071d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/80118e6a201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/80118e6a201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/a08a307c0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/a08a307c0a1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/a08a307c0a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/b0ec28a1f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/b0ec28a1f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/f01a4ff1091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/f01a4ff1091d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/f01a4ff1091d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/7024bbd70a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/7024bbd70a1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/7024bbd70a1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/80b854dc041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/80b854dc041d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/80b854dc041d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/c014277c0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/c014277c0a1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/c014277c0a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/39/a0b97f6a201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/39/a0b97f6a201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/30e63d75221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/30e63d75221d0011116edf0151d9d887 deleted file mode 100644 index 30c1c084..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/30e63d75221d0011116edf0151d9d887 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/404540a1f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/404540a1f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/71bd1871e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/71bd1871e91c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/71bd1871e91c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/c0e46375221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/c0e46375221d0011116edf0151d9d887 deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/40c2642f051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/40c2642f051d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/40c2642f051d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/e0ace5fa0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/e0ace5fa0a1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/e0ace5fa0a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/10847a1a0e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/10847a1a0e1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/10847a1a0e1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/4055c9d70a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/4055c9d70a1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/4055c9d70a1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/c0337e56e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/c0337e56e71c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/d068e6890b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/d068e6890b1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/d068e6890b1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/f0bb832f051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/f0bb832f051d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/f0bb832f051d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/90512342221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/90512342221d0011116edf0151d9d887 deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/90512342221d0011116edf0151d9d887 +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a05507b5e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a05507b5e91c00111565e8bbe12141cd deleted file mode 100644 index 41676e17..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a05507b5e91c00111565e8bbe12141cd +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf .srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a07302b5e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a07302b5e91c00111565e8bbe12141cd deleted file mode 100644 index 1f51c221..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a07302b5e91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/7090411e091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/7090411e091d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/7090411e091d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/a1c7875ee91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/a1c7875ee91c00111565e8bbe12141cd deleted file mode 100644 index 787fca30..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/a1c7875ee91c00111565e8bbe12141cd +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf "demoprog_olimex_stm32p103.hex".srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/e0c391b5001d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/e0c391b5001d00111358d2931fee7772 deleted file mode 100644 index cddc84f9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/e0c391b5001d00111358d2931fee7772 +++ /dev/null @@ -1,118 +0,0 @@ -/**************************************************************************************** -| Description: UART driver source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: baudrate communication speed in bits/sec -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART interface for the selected communication speed. -** -****************************************************************************************/ -void UartInit(unsigned long baudrate) -{ - GPIO_InitTypeDef GPIO_InitStruct; - USART_InitTypeDef USART_InitStruct; - - /* enable UART peripheral clock */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); - /* enable GPIO peripheral clock for transmitter and receiver pins */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); - /* configure USART Tx as alternate function push-pull */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* Configure USART Rx as alternate function input floating */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* configure UART communcation parameters */ - USART_InitStruct.USART_BaudRate = baudrate; - USART_InitStruct.USART_WordLength = USART_WordLength_8b; - USART_InitStruct.USART_StopBits = USART_StopBits_1; - USART_InitStruct.USART_Parity = USART_Parity_No; - USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_Init(USART2, &USART_InitStruct); - /* enable UART */ - USART_Cmd(USART2, ENABLE); -} /*** end of UartInit ***/ - - -/**************************************************************************************** -** NAME: UartTxChar -** PARAMETER: ch character to transmit -** RETURN VALUE: the transmitted character. -** DESCRIPTION: Transmits a character through the UART interface. -** -****************************************************************************************/ -int UartTxChar(int ch) -{ - - /* for stdio compatibility */ - return ch; -} /*** end of UartTxChar ***/ - - -/**************************************************************************************** -** NAME: UartRxChar -** PARAMETER: blocking 1 to block until a character was received, 0 otherwise. -** RETURN VALUE: the value of the received character or -1. -** DESCRIPTION: Receives a character from the UART interface. -** -****************************************************************************************/ -int UartRxChar(unsigned char blocking) -{ - if (!blocking) - { - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) - { - return -1; - } - } - else - { - /* wait for reception of byte */ - while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) { ; } - } - /* retrieve and return the newly received byte */ - return USART_ReceiveData(USART2); -} /*** end of UartRxChar ***/ - - -/*********************************** end of uart.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/5065de3c071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/5065de3c071d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/5065de3c071d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/604868cdfe1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/604868cdfe1c00111358d2931fee7772 deleted file mode 100644 index 911e1932..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/604868cdfe1c00111358d2931fee7772 +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************************** -| Description: UART driver source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: baudrate communication speed in bits/sec -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART interface for the selected communication speed. -** -****************************************************************************************/ -void UartInit(unsigned long baudrate) -{ - -} /*** end of UartInit ***/ - - -/**************************************************************************************** -** NAME: UartTxChar -** PARAMETER: ch character to transmit -** RETURN VALUE: the transmitted character. -** DESCRIPTION: Transmits a character through the UART interface. -** -****************************************************************************************/ -int UartTxChar(int ch) -{ - - /* for stdio compatibility */ - return ch; -} /*** end of UartTxChar ***/ - - -/**************************************************************************************** -** NAME: UartRxChar -** PARAMETER: blocking 1 to block until a character was received, 0 otherwise. -** RETURN VALUE: the value of the received character or -1. -** DESCRIPTION: Receives a character from the UART interface. -** -****************************************************************************************/ -int UartRxChar(unsigned char blocking) -{ - -} /*** end of UartRxChar ***/ - - -/*********************************** end of uart.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/00e0de360a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/00e0de360a1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/00e0de360a1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/b0deef890b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/b0deef890b1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/b0deef890b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/42/a0fb327c0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/42/a0fb327c0a1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/42/a0fb327c0a1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/60e0e5e20a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/60e0e5e20a1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/60e0e5e20a1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/70efd43c071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/70efd43c071d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/70efd43c071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/b02900b5e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/b02900b5e91c00111565e8bbe12141cd deleted file mode 100644 index 9bf68be5..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/b02900b5e91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/d0c43eedf31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/d0c43eedf31c00111565e8bbe12141cd deleted file mode 100644 index 571a949b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/d0c43eedf31c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./source/assert.o \ -./source/backdoor.o \ -./source/boot.o \ -./source/com.o \ -./source/cop.o \ -./source/xcp.o - -C_DEPS += \ -./source/assert.d \ -./source/backdoor.d \ -./source/boot.d \ -./source/com.d \ -./source/cop.d \ -./source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/70cc926a201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/70cc926a201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/905dd53d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/905dd53d091d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/905dd53d091d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/00a4233c0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/00a4233c0b1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/00a4233c0b1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/10a79a440a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/10a79a440a1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/10a79a440a1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/70ca42b5091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/70ca42b5091d00111358d2931fee7772 deleted file mode 100644 index 892fe9ef..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/70ca42b5091d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - putch(sign); - txcharcnt++; - } - if (x) - { - putch ('0'); - txcharcnt++; - putch(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - putch (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - putch (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - putch (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/312c66b00a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/312c66b00a1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/312c66b00a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/60e2f3af0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/60e2f3af0a1d00111358d2931fee7772 deleted file mode 100644 index 6176e239..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/60e2f3af0a1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/708f45000b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/708f45000b1d00111358d2931fee7772 deleted file mode 100644 index 53bd0a85..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/708f45000b1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); /*format*/c->witdth++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/3045c864f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/3045c864f41c00111565e8bbe12141cd deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/3045c864f41c00111565e8bbe12141cd +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/a08473e20c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/a08473e20c1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/a08473e20c1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/a0f575e20c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/a0f575e20c1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/a0f575e20c1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/4087a8e90a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/4087a8e90a1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/4087a8e90a1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/70c6a4000b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/70c6a4000b1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/70c6a4000b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/f0d97e2f051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/f0d97e2f051d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/f0d97e2f051d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/30456599221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/30456599221d0011116edf0151d9d887 deleted file mode 100644 index 4c69eba0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/30456599221d0011116edf0151d9d887 +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./Source/ARMCM3_STM32/can.o \ -./Source/ARMCM3_STM32/cpu.o \ -./Source/ARMCM3_STM32/flash.o \ -./Source/ARMCM3_STM32/nvm.o \ -./Source/ARMCM3_STM32/timer.o \ -./Source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./Source/ARMCM3_STM32/can.d \ -./Source/ARMCM3_STM32/cpu.d \ -./Source/ARMCM3_STM32/flash.d \ -./Source/ARMCM3_STM32/nvm.d \ -./Source/ARMCM3_STM32/timer.d \ -./Source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -Source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/50b6621a0e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/50b6621a0e1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/50b6621a0e1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/706a285d041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/706a285d041d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/706a285d041d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/e08219a2221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/e08219a2221d0011116edf0151d9d887 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/e08219a2221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/e0093aedf31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/e0093aedf31c00111565e8bbe12141cd deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/e0093aedf31c00111565e8bbe12141cd +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b05e297c0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b05e297c0a1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b05e297c0a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b0bb3d3c0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b0bb3d3c0b1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b0bb3d3c0b1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/2058731a0e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/2058731a0e1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/2058731a0e1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/40a85b99221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/40a85b99221d0011116edf0151d9d887 deleted file mode 100644 index db7f7385..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/40a85b99221d0011116edf0151d9d887 +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./Source/assert.o \ -./Source/backdoor.o \ -./Source/boot.o \ -./Source/com.o \ -./Source/cop.o \ -./Source/xcp.o - -C_DEPS += \ -./Source/assert.d \ -./Source/backdoor.d \ -./Source/boot.d \ -./Source/com.d \ -./Source/cop.d \ -./Source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -Source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/40ac611a0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/40ac611a0b1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/40ac611a0b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/b051e9450b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/b051e9450b1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/b051e9450b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/30c196c50c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/30c196c50c1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/30c196c50c1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/10da04e30a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/10da04e30a1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/10da04e30a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/80a95e52201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/80a95e52201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/80a95e52201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/a00cee450b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/a00cee450b1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/a00cee450b1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/a037fc68041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/a037fc68041d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/a037fc68041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/f0a7ad0f001d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/f0a7ad0f001d00111358d2931fee7772 deleted file mode 100644 index a45cf492..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/f0a7ad0f001d00111358d2931fee7772 +++ /dev/null @@ -1,120 +0,0 @@ -/**************************************************************************************** -| Description: UART driver source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: baudrate communication speed in bits/sec -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART interface for the selected communication speed. -** -****************************************************************************************/ -void UartInit(unsigned long baudrate) -{ - GPIO_InitTypeDef GPIO_InitStruct; - USART_InitTypeDef USART_InitStruct; - - /* enable UART peripheral clock */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); - /* enable GPIO peripheral clock for transmitter and receiver pins */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); - /* configure USART Tx as alternate function push-pull */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* Configure USART Rx as alternate function input floating */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* configure UART communcation parameters */ - USART_InitStruct.USART_BaudRate = baudrate; - USART_InitStruct.USART_WordLength = USART_WordLength_8b; - USART_InitStruct.USART_StopBits = USART_StopBits_1; - USART_InitStruct.USART_Parity = USART_Parity_No; - USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_Init(USART2, &USART_InitStruct); - /* enable UART */ - USART_Cmd(USART2, ENABLE); -} /*** end of UartInit ***/ - - -/**************************************************************************************** -** NAME: UartTxChar -** PARAMETER: ch character to transmit -** RETURN VALUE: the transmitted character. -** DESCRIPTION: Transmits a character through the UART interface. -** -****************************************************************************************/ -int UartTxChar(int ch) -{ - - /* for stdio compatibility */ - return ch; -} /*** end of UartTxChar ***/ - - -/**************************************************************************************** -** NAME: UartRxChar -** PARAMETER: blocking 1 to block until a character was received, 0 otherwise. -** RETURN VALUE: the value of the received character or -1. -** DESCRIPTION: Receives a character from the UART interface. -** -****************************************************************************************/ -int UartRxChar(unsigned char blocking) -{ - int ch; - - if (!blocking) - { - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) - { - return -1; - } - } - else - { - /* wait for reception of byte */ - while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) { ; } - } - /* retrieve and return the newly received byte */ - return USART_ReceiveData(USART2); -} /*** end of UartRxChar ***/ - - -/*********************************** end of uart.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/30d71a570e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/30d71a570e1d00111358d2931fee7772 deleted file mode 100644 index 571a949b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/30d71a570e1d00111358d2931fee7772 +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./source/assert.o \ -./source/backdoor.o \ -./source/boot.o \ -./source/com.o \ -./source/cop.o \ -./source/xcp.o - -C_DEPS += \ -./source/assert.d \ -./source/backdoor.d \ -./source/boot.d \ -./source/com.d \ -./source/cop.d \ -./source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/4014571e091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/4014571e091d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/4014571e091d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/3064fbe20a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/3064fbe20a1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/3064fbe20a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/a0d59f64f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/a0d59f64f41c00111565e8bbe12141cd deleted file mode 100644 index 628cb43f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/a0d59f64f41c00111565e8bbe12141cd +++ /dev/null @@ -1,161 +0,0 @@ -/**************************************************************************************** -| Description: bootloader interrupt vector table source file -| File Name: vectors.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "boot.h" /* bootloader generic header */ - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -extern blt_int32u _estack; /* stack end address (memory.x) */ - - -/**************************************************************************************** -** NAME: UnusedISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Catch-all for unused interrrupt service routines. -** -****************************************************************************************/ -void UnusedISR(void) -{ - /* unexpected interrupt occured, so trigger an assertion to halt the system */ - ASSERT_RT(BLT_FALSE); -} /*** end of UnusedISR ***/ - - -/**************************************************************************************** -* I N T E R R U P T V E C T O R T A B L E -****************************************************************************************/ -extern void reset_handler(void); /* implemented in cstart.c */ - -typedef union -{ - void (*func)(void); /* for ISR function pointers */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ - -__attribute__ ((section(".isr_vector"))) -const tIsrFunc _vectab[] = -{ - { .ptr = (blt_int32u)&_estack }, /* the initial stack pointer */ - { reset_handler}, /* the reset handler */ - UnusedISR, /* NMI Handler */ - UnusedISR, /* Hard Fault Handler */ - UnusedISR, /* MPU Fault Handler */ - UnusedISR, /* Bus Fault Handler */ - UnusedISR, /* Usage Fault Handler */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* SVCall Handler */ - UnusedISR, /* Debug Monitor Handler */ - UnusedISR, /* Reserved */ - UnusedISR, /* PendSV Handler */ - UnusedISR, /* SysTick Handler */ - UnusedISR, /* Window Watchdog */ - UnusedISR, /* PVD through EXTI Line detect */ - UnusedISR, /* Tamper */ - UnusedISR, /* RTC */ - UnusedISR, /* Flash */ - UnusedISR, /* RCC */ - UnusedISR, /* EXTI Line 0 */ - UnusedISR, /* EXTI Line 1 */ - UnusedISR, /* EXTI Line 2 */ - UnusedISR, /* EXTI Line 3 */ - UnusedISR, /* EXTI Line 4 */ - UnusedISR, /* DMA1 Channel 1 */ - UnusedISR, /* DMA1 Channel 2 */ - UnusedISR, /* DMA1 Channel 3 */ - UnusedISR, /* DMA1 Channel 4 */ - UnusedISR, /* DMA1 Channel 5 */ - UnusedISR, /* DMA1 Channel 6 */ - UnusedISR, /* DMA1 Channel 7 */ - UnusedISR, /* ADC1 and ADC2 */ - UnusedISR, /* CAN1 TX */ - UnusedISR, /* CAN1 RX0 */ - UnusedISR, /* CAN1 RX1 */ - UnusedISR, /* CAN1 SCE */ - UnusedISR, /* EXTI Line 9..5 */ - UnusedISR, /* TIM1 Break */ - UnusedISR, /* TIM1 Update */ - UnusedISR, /* TIM1 Trigger and Commutation */ - UnusedISR, /* TIM1 Capture Compare */ - UnusedISR, /* TIM2 */ - UnusedISR, /* TIM3 */ - UnusedISR, /* TIM4 */ - UnusedISR, /* I2C1 Event */ - UnusedISR, /* I2C1 Error */ - UnusedISR, /* I2C2 Event */ - UnusedISR, /* I2C1 Error */ - UnusedISR, /* SPI1 */ - UnusedISR, /* SPI2 */ - UnusedISR, /* USART1 */ - UnusedISR, /* USART2 */ - UnusedISR, /* USART3 */ - UnusedISR, /* EXTI Line 15..10 */ - UnusedISR, /* RTC alarm through EXTI line */ - UnusedISR, /* USB OTG FS Wakeup */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* TIM5 */ - UnusedISR, /* SPI3 */ - UnusedISR, /* UART4 */ - UnusedISR, /* UART5 */ - UnusedISR, /* TIM6 */ - UnusedISR, /* TIM7 */ - UnusedISR, /* DMA2 Channel1 */ - UnusedISR, /* DMA2 Channel2 */ - UnusedISR, /* DMA2 Channel3 */ - UnusedISR, /* DMA2 Channel4 */ - UnusedISR, /* DMA2 Channel5 */ - UnusedISR, /* Ethernet */ - UnusedISR, /* Ethernet Wakeup */ - UnusedISR, /* CAN2 TX */ - UnusedISR, /* CAN2 RX0 */ - UnusedISR, /* CAN2 RX1 */ - UnusedISR, /* CAN2 SCE */ - UnusedISR /* USB OTG FS */ -}; - - -/************************************ end of hw.c **************************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/009509e30a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/009509e30a1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/009509e30a1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/2088d0360a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/2088d0360a1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/2088d0360a1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/30f3f8e20a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/30f3f8e20a1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/30f3f8e20a1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/40c836ace71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/40c836ace71c00111565e8bbe12141cd deleted file mode 100644 index 1f51c221..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/40c836ace71c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/60b5459c0d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/60b5459c0d1d00111358d2931fee7772 deleted file mode 100644 index 710ee939..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/60b5459c0d1d00111358d2931fee7772 +++ /dev/null @@ -1,205 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void DisplayUptime(void); -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* Output uptime on terminal */ - DisplayUptime(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: DisplayUptime -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Outputs the program's runtime on the terminal every second. -** -****************************************************************************************/ -static void DisplayUptime(void) -{ - static unsigned long uptime_ms_last = 0; - unsigned long uptime_ms_now; - unsigned char hr, min, sec; - - uptime_ms_now = TimerGet(); - - /* output info on terminal just once a second */ - if ( (uptime_ms_now - uptime_ms_last) < 1000) - { - /* not yet time to toggle */ - return; - } - /* calculate uptime */ - sec = uptime_ms_now/1000; - min = sec/60; - hr = min/60; - - /* output time on terminal */ - printf("Program uptime: %02d:%02d:%02d\r", hr, min, sec); - - /* store for next comparison */ - uptime_ms_last = uptime_ms_now; -} /*** end of DisplayUptime ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/a0e11c89e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/a0e11c89e71c00111565e8bbe12141cd deleted file mode 100644 index 570411cc..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/a0e11c89e71c00111565e8bbe12141cd +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/e03cfdc0011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/e03cfdc0011d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/e03cfdc0011d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/51/e138a4030d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/51/e138a4030d1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/51/e138a4030d1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/2021141a0e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/2021141a0e1d00111358d2931fee7772 deleted file mode 100644 index 6af30d3f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/2021141a0e1d00111358d2931fee7772 +++ /dev/null @@ -1,214 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void DisplayUptime(void); -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* Output uptime on terminal */ - DisplayUptime(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: DisplayUptime -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Outputs the program's runtime on the terminal every second. -** -****************************************************************************************/ -static void DisplayUptime(void) -{ - static unsigned long uptime_ms_last = 0; - unsigned long uptime_ms_now; - static unsigned char hr=0, min=0, sec=0; - - uptime_ms_now = TimerGet(); - - /* output info on terminal just once a second */ - if ( (uptime_ms_now - uptime_ms_last) < 1000) - { - /* not yet time to toggle */ - return; - } - /* calculate uptime */ - if (++sec >= 60) - { - sec = 0; - if (++min >= 60) - { - min = 0; - if (++hr >= 24) - { - hr = 0; - } - } - } - - /* output time on terminal */ - printf("Program uptime: %02d:%02d:%02d\r", hr, min, sec); - - /* store for next comparison */ - uptime_ms_last = uptime_ms_now; -} /*** end of DisplayUptime ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/d0bd80b5091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/d0bd80b5091d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/d0bd80b5091d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/507c5499221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/507c5499221d0011116edf0151d9d887 deleted file mode 100644 index e4002edd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/507c5499221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/60a215c0091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/60a215c0091d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/60a215c0091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/c0c91504e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/c0c91504e91c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a01313ace71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a01313ace71c00111565e8bbe12141cd deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a01313ace71c00111565e8bbe12141cd +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a0c6f968041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a0c6f968041d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a0c6f968041d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/b01c4dedf31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/b01c4dedf31c00111565e8bbe12141cd deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/b01c4dedf31c00111565e8bbe12141cd +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/b1eb5ada011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/b1eb5ada011d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/b1eb5ada011d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/c03056da011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/c03056da011d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/c03056da011d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/d0a6f6d70a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/d0a6f6d70a1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/d0a6f6d70a1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/502d5931071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/502d5931071d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/502d5931071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/00dc5fd8221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/00dc5fd8221d0011116edf0151d9d887 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/00dc5fd8221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/104a6c99221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/104a6c99221d0011116edf0151d9d887 deleted file mode 100644 index 0d80fc43..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/104a6c99221d0011116edf0151d9d887 +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./Source/ARMCM3_STM32/GCC/cstart.o \ -./Source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./Source/ARMCM3_STM32/GCC/cstart.d \ -./Source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -Source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/3012309d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/3012309d091d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/3012309d091d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/40a5a3e90a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/40a5a3e90a1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/40a5a3e90a1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c010569d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c010569d091d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c010569d091d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c03adc3b0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c03adc3b0b1d00111358d2931fee7772 deleted file mode 100644 index 8a374a82..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c03adc3b0b1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; /*isdigit (*format)*/1; format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/e06a725ee91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/e06a725ee91c00111565e8bbe12141cd deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/e06a725ee91c00111565e8bbe12141cd +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/0055c0e90a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/0055c0e90a1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/0055c0e90a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/80f8b3d70a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/80f8b3d70a1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/80f8b3d70a1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/a0388a5ee91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/a0388a5ee91c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/a0388a5ee91c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/e0460f72f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/e0460f72f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/f0beaeca041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/f0beaeca041d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5a/f0beaeca041d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/0047dafe071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/0047dafe071d00111358d2931fee7772 deleted file mode 100644 index ba0f6ae2..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/0047dafe071d00111358d2931fee7772 +++ /dev/null @@ -1,216 +0,0 @@ -/**************************************************************************************** -| Description: Newlib system calls remapping source file -| File Name: syscalls.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ -#define HEAP_SIZE (512) - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static char *heap_ptr = NULL; -static char heap[HEAP_SIZE]; - - -/**************************************************************************************** -** NAME: _read_r -** PARAMETER: len number of character to read. -** RETURN VALUE: number of characters read -** DESCRIPTION: Reentrant function for reading data from a file. In this case the -** read is performed from the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _read_r(struct _reent *r, int file, void *ptr, size_t len) -{ - char c; - int i; - unsigned char *p; - - p = (unsigned char*)ptr; - - /* receive all characters with echo */ - for (i = 0; i < len; i++) - { - c = UartRxChar(1); - - *p++ = c; - UartTxChar(c); - - /* was this a \n newline code? */ - if (c == 0x0D && i <= (len - 2)) - { - /* automatically add cariage return after a new line */ - *p = 0x0A; - UartTxChar(0x0A); - return i + 2; - } - } - return i; -} /*** end of _read_r ***/ - - -/**************************************************************************************** -** NAME: _write_r -** PARAMETER: len number of character to write -** RETURN VALUE: number of characters written. -** DESCRIPTION: Reentrant function for writing data from a file. In this case the -** write is performed to the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _write_r(struct _reent *r, int file, const void *ptr, size_t len) -{ - int i; - const unsigned char *p; - - p = (const unsigned char*) ptr; - - /* transmit all characters */ - for (i = 0; i < len; i++) - { - if (*p == '\n' ) - { - /* automatically add cariage return after a new line */ - UartTxChar('\r'); - } - UartTxChar(*p++); - } - - return len; -} /*** end of _write_r ***/ - - -/**************************************************************************************** -** NAME: _close_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for closing a file. Since UART is used, no further -** action is required here. -** -****************************************************************************************/ -int _close_r(struct _reent *r, int file) -{ - return 0; -} /*** end of _close_r ***/ - - -/**************************************************************************************** -** NAME: _lseek_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for obtaining the file pointer. Since UART is -** used, no further action is required here. -** -****************************************************************************************/ -_off_t _lseek_r(struct _reent *r, int file, _off_t ptr, int dir) -{ - /* always at the beginning of the file */ - return (_off_t)0; -} /*** end of _lseek_r ***/ - - -/**************************************************************************************** - * -** NAME: _fstat_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for setting the device mode. -** -****************************************************************************************/ -int _fstat_r(struct _reent *r, int file, struct stat *st) -{ - /* set as character device */ - st->st_mode = S_IFCHR; - return 0; -} /*** end of _fstat_r ***/ - - - -/**************************************************************************************** -** NAME: _isatty_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -int _isatty_r(struct _reent *r, int file) -{ - return 1; -} /*** end of _isatty_r ***/ - - -/**************************************************************************************** -** NAME: _sbrk_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Increments the heap pointer. -** -****************************************************************************************/ -void * _sbrk_r(struct _reent *_s_r, ptrdiff_t nbytes) -{ - char *base; - - /* initialize the heap pointer if not yet done */ - if (heap_ptr == NULL) - { - /* set it to the current end of the heap */ - heap_ptr = &heap[0]; - } - - /* check if there is still room on the heap for this allocation */ - if ((unsigned long)(heap_ptr + nbytes) > (unsigned long)(heap + HEAP_SIZE)) - { - /* cannot allocate */ - return NULL; - } - - /* remember current pointer value for the return value */ - base = heap_ptr; /* Point to end of heap. */ - /* allocate the */ - heap_ptr += nbytes; /* Increase heap. */ - - return base; /* Return pointer to start of new heap area. */ -} /*** end of _sbrk_r ***/ - - -/*********************************** end of syscalls.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/1064ef93ea1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/1064ef93ea1c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/1064ef93ea1c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/d0a939570e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/d0a939570e1d00111358d2931fee7772 deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/d0a939570e1d00111358d2931fee7772 +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/f0c44dffe91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/f0c44dffe91c00111565e8bbe12141cd deleted file mode 100644 index 59087e2e..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/f0c44dffe91c00111565e8bbe12141cd +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf Prog.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/500d32ace71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/500d32ace71c00111565e8bbe12141cd deleted file mode 100644 index 7dff3cbf..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/500d32ace71c00111565e8bbe12141cd +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/8082906a201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/8082906a201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/d03d1ea2221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/d03d1ea2221d0011116edf0151d9d887 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/d03d1ea2221d0011116edf0151d9d887 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/f017acf8071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/f017acf8071d00111358d2931fee7772 deleted file mode 100644 index 82f50482..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/f017acf8071d00111358d2931fee7772 +++ /dev/null @@ -1,39 +0,0 @@ -MEMORY -{ - FLASH (rx) : ORIGIN = 0x08002000, LENGTH = 120K - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K -} - -SECTIONS -{ - __STACKSIZE__ = 256; - __HEAPSIZE__ = 1024; - - .text : - { - KEEP(*(.isr_vector)) - *(.text*) - *(.rodata*) - _etext = .; - } > FLASH - - - .data : AT (ADDR(.text) + SIZEOF(.text)) - { - _data = .; - *(vtable) - *(.data*) - _edata = .; - } > SRAM - - .bss : - { - _bss = .; - *(.bss*) - *(COMMON) - _ebss = .; - _stack = .; - . = ALIGN(MAX(_stack + __STACKSIZE__ , .), 4); - _estack = .; - } > SRAM -} diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/30ad3da1f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/30ad3da1f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/910d2489e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/910d2489e71c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/910d2489e71c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/a04dc43c071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/a04dc43c071d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/a04dc43c071d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/a0fd07dae91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/a0fd07dae91c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/a0fd07dae91c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/d00d8df9221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/d00d8df9221d0011116edf0151d9d887 deleted file mode 100644 index e4002edd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/d00d8df9221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/4003ee71f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/4003ee71f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/b0b8fdb4e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/b0b8fdb4e91c00111565e8bbe12141cd deleted file mode 100644 index 7dff3cbf..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/b0b8fdb4e91c00111565e8bbe12141cd +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/f07053f9061d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/f07053f9061d00111358d2931fee7772 deleted file mode 100644 index 2617aad1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/f07053f9061d00111358d2931fee7772 +++ /dev/null @@ -1,41 +0,0 @@ -MEMORY -{ - FLASH (rx) : ORIGIN = 0x08002000, LENGTH = 120K - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K -} - -SECTIONS -{ - __STACKSIZE__ = 256; - - .text : - { - KEEP(*(.isr_vector)) - *(.text*) - *(.rodata*) - _etext = .; - } > FLASH - - - .data : AT (ADDR(.text) + SIZEOF(.text)) - { - _data = .; - *(vtable) - *(.data*) - _edata = .; - } > SRAM - - .bss : - { - _bss = .; - *(.bss*) - *(COMMON) - _ebss = .; - _stack = .; - . = ALIGN(MAX(_stack + __STACKSIZE__ , .), 4); - _estack = .; - } > SRAM - - _end = . ; - PROVIDE (end = .); -} diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/90b2182d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/90b2182d091d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/90b2182d091d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/a0d58e450b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/a0d58e450b1d00111358d2931fee7772 deleted file mode 100644 index 684989be..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/a0d58e450b1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit ((int)*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/c0c27b56e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/c0c27b56e71c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/e07433dc041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/e07433dc041d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/e07433dc041d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/50747b7c201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/50747b7c201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/b0ebc3c50c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/b0ebc3c50c1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/b0ebc3c50c1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/e09a4c9d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/e09a4c9d091d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/e09a4c9d091d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/60d65b98201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/60d65b98201d00111c63a4b3c7bd9f5b deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/60d65b98201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/b010c53fea1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/b010c53fea1c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/714d0f97051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/714d0f97051d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/714d0f97051d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/10ea8afa071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/10ea8afa071d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/10ea8afa071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/60325299221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/60325299221d0011116edf0151d9d887 deleted file mode 100644 index 0a5275bc..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/60325299221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/7001a2b5091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/7001a2b5091d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/7001a2b5091d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/a0c32189e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/a0c32189e71c00111565e8bbe12141cd deleted file mode 100644 index 9bf6c59c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/a0c32189e71c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/d01a3c570e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/d01a3c570e1d00111358d2931fee7772 deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/d01a3c570e1d00111358d2931fee7772 +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/d081ef360a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/d081ef360a1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/d081ef360a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/e0b758f1091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/e0b758f1091d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/e0b758f1091d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/c071f778e01c00111cadaab22f5679ad b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/c071f778e01c00111cadaab22f5679ad deleted file mode 100644 index ced41fea..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/c071f778e01c00111cadaab22f5679ad +++ /dev/null @@ -1,161 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/90dba4f9221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/90dba4f9221d0011116edf0151d9d887 deleted file mode 100644 index 9ee3671f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/90dba4f9221d0011116edf0151d9d887 +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include Source/ARMCM3_STM32/GCC/subdir.mk --include Source/ARMCM3_STM32/subdir.mk --include Source/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/c0b951d10d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/c0b951d10d1d00111358d2931fee7772 deleted file mode 100644 index a43e9371..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/c0b951d10d1d00111358d2931fee7772 +++ /dev/null @@ -1,214 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void DisplayUptime(void); -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* Output uptime on terminal */ - DisplayUptime(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: DisplayUptime -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Outputs the program's runtime on the terminal every second. -** -****************************************************************************************/ -static void DisplayUptime(void) -{ - static unsigned long uptime_ms_last = 0; - unsigned long uptime_ms_now; - static unsigned char hr=0, min=0, sec=0; - - uptime_ms_now = TimerGet(); - - /* output info on terminal just once a second */ - if ( (uptime_ms_now - uptime_ms_last) < 1000) - { - /* not yet time to toggle */ - return; - } - /* calculate uptime */ - if (++sec > 60) - { - sec = 0; - if (++min > 60) - { - min = 0; - if (++hr > 24) - { - hr = 0; - } - } - } - - /* output time on terminal */ - printf("Program uptime: %02d:%02d:%02d\r", hr, min, sec); - - /* store for next comparison */ - uptime_ms_last = uptime_ms_now; -} /*** end of DisplayUptime ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/e0f31ba2221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/e0f31ba2221d0011116edf0151d9d887 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/e0f31ba2221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6a/20dfcdfa0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6a/20dfcdfa0a1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6a/20dfcdfa0a1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/00c07b96051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/00c07b96051d00111358d2931fee7772 deleted file mode 100644 index dde0edcb..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/00c07b96051d00111358d2931fee7772 +++ /dev/null @@ -1,182 +0,0 @@ -/**************************************************************************************** -| Description: Newlib system calls remapping source file -| File Name: syscalls.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -** NAME: _read_r -** PARAMETER: len number of character to read. -** RETURN VALUE: number of characters read -** DESCRIPTION: Reentrant function for reading data from a file. In this case the -** read is performed from the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _read_r(struct _reent *r, int file, void *ptr, size_t len) -{ - char c; - int i; - unsigned char *p; - - p = (unsigned char*)ptr; - - /* receive all characters with echo */ - for (i = 0; i < len; i++) - { - c = UartRxChar(1); - - *p++ = c; - UartTxChar(c); - - /* was this a \n newline code? */ - if (c == 0x0D && i <= (len - 2)) - { - /* automatically add cariage return after a new line */ - *p = 0x0A; - UartTxChar(0x0A); - return i + 2; - } - } - return i; -} /*** end of _read_r ***/ - - -/**************************************************************************************** -** NAME: _write_r -** PARAMETER: len number of character to write -** RETURN VALUE: number of characters written. -** DESCRIPTION: Reentrant function for writing data from a file. In this case the -** write is performed to the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _write_r(struct _reent *r, int file, const void *ptr, size_t len) -{ - int i; - const unsigned char *p; - - p = (const unsigned char*) ptr; - - /* transmit all characters */ - for (i = 0; i < len; i++) - { - if (*p == '\n' ) - { - /* automatically add cariage return after a new line */ - UartTxChar('\r'); - } - UartTxChar(*p++); - } - - return len; -} /*** end of _write_r ***/ - - -/**************************************************************************************** -** NAME: _close_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for closing a file. Since UART is used, no further -** action is required here. -** -****************************************************************************************/ -int _close_r(struct _reent *r, int file) -{ - return 0; -} /*** end of _close_r ***/ - - -/**************************************************************************************** -** NAME: _lseek_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for obtaining the file pointer. Since UART is -** used, no further action is required here. -** -****************************************************************************************/ -_off_t _lseek_r(struct _reent *r, int file, _off_t ptr, int dir) -{ - /* always at the beginning of the file */ - return (_off_t)0; -} /*** end of _lseek_r ***/ - - -/**************************************************************************************** - * -** NAME: _fstat_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for setting the device mode. -** -****************************************************************************************/ -int _fstat_r(struct _reent *r, int file, struct stat *st) -{ - /* set as character device */ - st->st_mode = S_IFCHR; - return 0; -} /*** end of _fstat_r ***/ - - - -/**************************************************************************************** -** NAME: _isatty_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -int _isatty_r(struct _reent *r, int file) -{ - return 1; -} /*** end of _isatty_r ***/ - - -/**************************************************************************************** -** NAME: _sbrk_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -void * _sbrk_r(struct _reent *_s_r, ptrdiff_t nbytes) -{ - return NULL; -} /*** end of _sbrk_r ***/ - - -/*********************************** end of syscalls.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/500cede20a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/500cede20a1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/500cede20a1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/007b4bffe91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/007b4bffe91c00111565e8bbe12141cd deleted file mode 100644 index 1f51c221..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/007b4bffe91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/7062e709001d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/7062e709001d00111358d2931fee7772 deleted file mode 100644 index 22f81522..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/7062e709001d00111358d2931fee7772 +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************************** -| Description: UART driver source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: baudrate communication speed in bits/sec -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART interface for the selected communication speed. -** -****************************************************************************************/ -void UartInit(unsigned long baudrate) -{ - GPIO_InitTypeDef GPIO_InitStruct; - USART_InitTypeDef USART_InitStruct; - - /* enable UART peripheral clock */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); - /* enable GPIO peripheral clock for transmitter and receiver pins */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); - /* configure USART Tx as alternate function push-pull */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* Configure USART Rx as alternate function input floating */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* configure UART communcation parameters */ - USART_InitStruct.USART_BaudRate = baudrate; - USART_InitStruct.USART_WordLength = USART_WordLength_8b; - USART_InitStruct.USART_StopBits = USART_StopBits_1; - USART_InitStruct.USART_Parity = USART_Parity_No; - USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_Init(USART2, &USART_InitStruct); - /* enable UART */ - USART_Cmd(USART2, ENABLE); -} /*** end of UartInit ***/ - - -/**************************************************************************************** -** NAME: UartTxChar -** PARAMETER: ch character to transmit -** RETURN VALUE: the transmitted character. -** DESCRIPTION: Transmits a character through the UART interface. -** -****************************************************************************************/ -int UartTxChar(int ch) -{ - - /* for stdio compatibility */ - return ch; -} /*** end of UartTxChar ***/ - - -/**************************************************************************************** -** NAME: UartRxChar -** PARAMETER: blocking 1 to block until a character was received, 0 otherwise. -** RETURN VALUE: the value of the received character or -1. -** DESCRIPTION: Receives a character from the UART interface. -** -****************************************************************************************/ -int UartRxChar(unsigned char blocking) -{ - return -1; -} /*** end of UartRxChar ***/ - - -/*********************************** end of uart.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/40005fb00a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/40005fb00a1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/40005fb00a1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/602e5edc041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/602e5edc041d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/602e5edc041d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/c011bc440a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/c011bc440a1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/c011bc440a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/e014003efa1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/e014003efa1c00111358d2931fee7772 deleted file mode 100644 index 571a949b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/e014003efa1c00111358d2931fee7772 +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./source/assert.o \ -./source/backdoor.o \ -./source/boot.o \ -./source/com.o \ -./source/cop.o \ -./source/xcp.o - -C_DEPS += \ -./source/assert.d \ -./source/backdoor.d \ -./source/boot.d \ -./source/com.d \ -./source/cop.d \ -./source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/408fc05e071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/408fc05e071d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/408fc05e071d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/a0a45752201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/a0a45752201d00111c63a4b3c7bd9f5b deleted file mode 100644 index ce284ef6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/a0a45752201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./source/ARMCM3_STM32/GCC/cstart.o \ -./source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./source/ARMCM3_STM32/GCC/cstart.d \ -./source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/306ace9c091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/306ace9c091d00111358d2931fee7772 deleted file mode 100644 index f60c763c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/306ace9c091d00111358d2931fee7772 +++ /dev/null @@ -1,655 +0,0 @@ -/**************************************************************************************** -| Project Name: Standard input/output routines that are optimized for integers. -| The following functions are impemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| -| Description: Standard I/O integer optimized library source file -| File Name: stdio.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) by HAN - HTS Autotechniek. All rights reserved. -| -| This software has been carefully tested, but is not guaranteed for any particular -| purpose. The author does not offer any warranties and does not guarantee the accuracy, -| adequacy, or completeness of the software and is not responsible for any errors or -| omissions or the results obtained from use of the software. -| -|****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - putch(sign); - txcharcnt++; - } - if (x) - { - putch ('0'); - txcharcnt++; - putch(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - putch (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - putch (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - putch (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/405e30c50c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/405e30c50c1d00111358d2931fee7772 deleted file mode 100644 index 19f343b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/405e30c50c1d00111358d2931fee7772 +++ /dev/null @@ -1,173 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - int n; - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - printf("Enter a number.."); - scanf("%d", &n); - printf("You entered: %d", n); - - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/e048ab440a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/e048ab440a1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/e048ab440a1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/00be64d8221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/00be64d8221d0011116edf0151d9d887 deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/00be64d8221d0011116edf0151d9d887 +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/603113c0091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/603113c0091d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/603113c0091d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/c034fc70e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/c034fc70e91c00111565e8bbe12141cd deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/c034fc70e91c00111565e8bbe12141cd +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/50774d1e091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/50774d1e091d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/50774d1e091d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/515d1ac0091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/515d1ac0091d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/515d1ac0091d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/b07cd683f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/b07cd683f61c00111565e8bbe12141cd deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/b07cd683f61c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/70aa5498201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/70aa5498201d00111c63a4b3c7bd9f5b deleted file mode 100644 index ce284ef6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/70aa5498201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./source/ARMCM3_STM32/GCC/cstart.o \ -./source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./source/ARMCM3_STM32/GCC/cstart.d \ -./source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/20d02ef0041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/20d02ef0041d00111358d2931fee7772 deleted file mode 100644 index b38ed261..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/20d02ef0041d00111358d2931fee7772 +++ /dev/null @@ -1,182 +0,0 @@ -/**************************************************************************************** -| Description: Newlib system calls remapping source file -| File Name: syscalls.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -** NAME: _read_r -** PARAMETER: len number of character to read. -** RETURN VALUE: number of characters read -** DESCRIPTION: Reentrant function for reading data from a file. In this case the -** read is performed from the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _read_r(struct _reent *r, int file, void *ptr, size_t len) -{ - char c; - int i; - unsigned char *p; - - p = (unsigned char*)ptr; - - /* receive all characters with echo */ - for (i = 0; i < len; i++) - { - c = UartRxChar(1); - - *p++ = c; - UartTxChar(c); - - /* was this a \n newline code? */ - if (c == 0x0D && i <= (len - 2)) - { - /* automatically add cariage return after a new line */ - *p = 0x0A; - UartTxChar(0x0A); - return i + 2; - } - } - return i; -} /*** end of _read_r ***/ - - -/**************************************************************************************** -** NAME: _write_r -** PARAMETER: len number of character to write -** RETURN VALUE: number of characters written. -** DESCRIPTION: Reentrant function for writing data from a file. In this case the -** write is performed to the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _write_r(struct _reent *r, int file, const void *ptr, size_t len) -{ - int i; - const unsigned char *p; - - p = (const unsigned char*) ptr; - - /* transmit all characters */ - for (i = 0; i < len; i++) - { - if (*p == '\n' ) - { - /* automatically add cariage return after a new line */ - UartTxChar('\r'); - } - UartTxChar(*p++); - } - - return len; -} /*** end of _write_r ***/ - - -/**************************************************************************************** -** NAME: _close_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for closing a file. Since UART is used, no further -** action is required here. -** -****************************************************************************************/ -int _close_r(struct _reent *r, int file) -{ - return 0; -} /*** end of _close_r ***/ - - -/**************************************************************************************** -** NAME: _lseek_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for obtaining the file pointer. Since UART is -** used, no further action is required here. -** -****************************************************************************************/ -_off_t _lseek_r(struct _reent *r, int file, _off_t ptr, int dir) -{ - /* always at the beginning of the file */ - return (_off_t)0; -} /*** end of _lseek_r ***/ - - -/**************************************************************************************** - * -** NAME: _fstat_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for setting the device mode. -** -****************************************************************************************/ -int _fstat_r(struct _reent *r, int file, struct stat *st) -{ - /* set as character device */ - st->st_mode = S_IFCHR; - return 0; -} /*** end of _fstat_r ***/ - - - -/**************************************************************************************** -** NAME: _isatty_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -int _isatty_r(struct _reent *r, int file) -{ - return 1; -} /*** end of _isatty_r ***/ - - -/**************************************************************************************** -** NAME: _sbrk_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -void * _sbrk_r(struct _reent *_s_r, ptrdiff_t nbytes) -{ - -} /*** end of _sbrk_r ***/ - - -/*********************************** end of syscalls.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/b02c403c0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/b02c403c0b1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/b02c403c0b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/d088e964f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/d088e964f41c00111565e8bbe12141cd deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/d088e964f41c00111565e8bbe12141cd +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/302d9ce20a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/302d9ce20a1d00111358d2931fee7772 deleted file mode 100644 index ca619dda..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/302d9ce20a1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); (char *)format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/60655998201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/60655998201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/60655998201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/502fee63e81c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/502fee63e81c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/502fee63e81c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/b0f0f996051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/b0f0f996051d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/b0f0f996051d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/006c7cf9221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/006c7cf9221d0011116edf0151d9d887 deleted file mode 100644 index e8c813a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/006c7cf9221d0011116edf0151d9d887 +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ -Source \ -Source/ARMCM3_STM32 \ -Source/ARMCM3_STM32/GCC \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/60bca6b5091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/60bca6b5091d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/60bca6b5091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/60b9767c201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/60b9767c201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/e05ce264f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/e05ce264f41c00111565e8bbe12141cd deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/e05ce264f41c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/20aef5d9e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/20aef5d9e91c00111565e8bbe12141cd deleted file mode 100644 index ad2dac46..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/20aef5d9e91c00111565e8bbe12141cd +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/79/b0cf84b8011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/79/b0cf84b8011d00111358d2931fee7772 deleted file mode 100644 index 6d961016..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/79/b0cf84b8011d00111358d2931fee7772 +++ /dev/null @@ -1,319 +0,0 @@ -/**************************************************************************************** -| Description: demo program bootloader interface source file -| File Name: boot.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: BootActivate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Bootloader activation function. -** -****************************************************************************************/ -static void BootActivate(void) -{ - void (*pEntryFromProgFnc)(void); - - /* set pointer to the address of function EntryFromProg in the bootloader. note that - * 1 is added to this address to enable a switch from Thumb2 to Thumb mode - */ - pEntryFromProgFnc = (void*)0x08000150 + 1; - /* call EntryFromProg to activate the bootloader. */ - pEntryFromProgFnc(); -} /*** end of BootActivate ***/ - - -#if (BOOT_COM_UART_ENABLE > 0) -/**************************************************************************************** -* U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - UartInit(BOOT_COM_UART_BAUDRATE); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - static unsigned char xcpCtoReqPacket[BOOT_COM_UART_RX_MAX_DATA+1]; - static unsigned char xcpCtoRxLength; - static unsigned char xcpCtoRxInProgress = 0; - - /* start of cto packet received? */ - if (xcpCtoRxInProgress == 0) - { - /* store the message length when received */ - xcpCtoReqPacket[0] = (unsigned char)UartRxChar(0); - if (xcpCtoReqPacket[0] != -1) - { - /* indicate that a cto packet is being received */ - xcpCtoRxInProgress = 1; - - /* reset packet data count */ - xcpCtoRxLength = 0; - } - } - else - { - /* store the next packet byte */ - xcpCtoReqPacket[xcpCtoRxLength+1] = (unsigned char)UartRxChar(0); - if (xcpCtoReqPacket[xcpCtoRxLength+1] != -1) - { - /* increment the packet data count */ - xcpCtoRxLength++; - - /* check to see if the entire packet was received */ - if (xcpCtoRxLength == xcpCtoReqPacket[0]) - { - /* done with cto packet reception */ - xcpCtoRxInProgress = 0; - - /* check if this was an XCP CONNECT command */ - if ((xcpCtoReqPacket[1] == 0xff) && (xcpCtoReqPacket[2] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_UART_ENABLE > 0 */ - - -#if (BOOT_COM_CAN_ENABLE > 0) -/**************************************************************************************** -* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Type definitions -****************************************************************************************/ -typedef struct t_can_bus_timing -{ - unsigned char tseg1; /* CAN time segment 1 */ - unsigned char tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta - * (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1. - * The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains - * possible and valid time quanta configurations with a sample point between 68..78%. - */ -static const tCanBusTiming canTiming[] = -{ /* TQ | TSEG1 | TSEG2 | SP */ - /* ------------------------- */ - { 5, 2 }, /* 8 | 5 | 2 | 75% */ - { 6, 2 }, /* 9 | 6 | 2 | 78% */ - { 6, 3 }, /* 10 | 6 | 3 | 70% */ - { 7, 3 }, /* 11 | 7 | 3 | 73% */ - { 8, 3 }, /* 12 | 8 | 3 | 75% */ - { 9, 3 }, /* 13 | 9 | 3 | 77% */ - { 9, 4 }, /* 14 | 9 | 4 | 71% */ - { 10, 4 }, /* 15 | 10 | 4 | 73% */ - { 11, 4 }, /* 16 | 11 | 4 | 75% */ - { 12, 4 }, /* 17 | 12 | 4 | 76% */ - { 12, 5 }, /* 18 | 12 | 5 | 72% */ - { 13, 5 }, /* 19 | 13 | 5 | 74% */ - { 14, 5 }, /* 20 | 14 | 5 | 75% */ - { 15, 5 }, /* 21 | 15 | 5 | 76% */ - { 15, 6 }, /* 22 | 15 | 6 | 73% */ - { 16, 6 }, /* 23 | 16 | 6 | 74% */ - { 16, 7 }, /* 24 | 16 | 7 | 71% */ - { 16, 8 } /* 25 | 16 | 8 | 68% */ -}; - - -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 will be stored. -** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise. -** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus -** timing configuration. -** -****************************************************************************************/ -static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, - unsigned char *tseg1, unsigned char *tseg2) -{ - unsigned char cnt; - - /* loop through all possible time quanta configurations to find a match */ - for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) - { - if (((BOOT_CPU_SYSTEM_SPEED_KHZ/2) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) - { - /* compute the prescaler that goes with this TQ configuration */ - *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/2)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); - - /* make sure the prescaler is valid */ - if ( (*prescaler > 0) && (*prescaler <= 1024) ) - { - /* store the bustiming configuration */ - *tseg1 = canTiming[cnt].tseg1; - *tseg2 = canTiming[cnt].tseg2; - /* found a good bus timing configuration */ - return 1; - } - } - } - /* could not find a good bus timing configuration */ - return 0; -} /*** end of CanGetSpeedConfig ***/ - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - CAN_InitTypeDef CAN_InitStructure; - CAN_FilterInitTypeDef CAN_FilterInitStructure; - unsigned short prescaler; - unsigned char tseg1, tseg2; - - /* GPIO clock enable */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); - /* Configure CAN pin: RX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Configure CAN pin: TX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Remap CAN1 pins to PortB */ - GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE); - /* CAN1 Periph clock enable */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); - /* CAN register init */ - CAN_DeInit(CAN1); - CAN_StructInit(&CAN_InitStructure); - /* obtain the bittiming configuration for this baudrate */ - CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); - /* CAN controller init */ - CAN_InitStructure.CAN_TTCM = DISABLE; - CAN_InitStructure.CAN_ABOM = DISABLE; - CAN_InitStructure.CAN_AWUM = DISABLE; - CAN_InitStructure.CAN_NART = DISABLE; - CAN_InitStructure.CAN_RFLM = DISABLE; - CAN_InitStructure.CAN_TXFP = DISABLE; - CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; - /* CAN Baudrate init */ - CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; - CAN_InitStructure.CAN_BS1 = tseg1 - 1; - CAN_InitStructure.CAN_BS2 = tseg2 - 1; - CAN_InitStructure.CAN_Prescaler = prescaler; - CAN_Init(CAN1, &CAN_InitStructure); - /* CAN filter init - receive all messages */ - CAN_FilterInitStructure.CAN_FilterNumber = 0; - CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; - CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; - CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; - CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; - CAN_FilterInit(&CAN_FilterInitStructure); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - CanRxMsg RxMessage; - - /* check if a new message was received */ - if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0) - { - /* receive the message */ - CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); - if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) - { - /* check if this was an XCP CONNECT command */ - if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_CAN_ENABLE > 0 */ - - -/*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/507646ff071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/507646ff071d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/507646ff071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/8050a65e071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/8050a65e071d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/8050a65e071d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/a03f1f04e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/a03f1f04e91c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/a03f1f04e91c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/e02ec330071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/e02ec330071d00111358d2931fee7772 deleted file mode 100644 index ba4e1f44..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/e02ec330071d00111358d2931fee7772 +++ /dev/null @@ -1,198 +0,0 @@ -/**************************************************************************************** -| Description: Newlib system calls remapping source file -| File Name: syscalls.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -** NAME: _read_r -** PARAMETER: len number of character to read. -** RETURN VALUE: number of characters read -** DESCRIPTION: Reentrant function for reading data from a file. In this case the -** read is performed from the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _read_r(struct _reent *r, int file, void *ptr, size_t len) -{ - char c; - int i; - unsigned char *p; - - p = (unsigned char*)ptr; - - /* receive all characters with echo */ - for (i = 0; i < len; i++) - { - c = UartRxChar(1); - - *p++ = c; - UartTxChar(c); - - /* was this a \n newline code? */ - if (c == 0x0D && i <= (len - 2)) - { - /* automatically add cariage return after a new line */ - *p = 0x0A; - UartTxChar(0x0A); - return i + 2; - } - } - return i; -} /*** end of _read_r ***/ - - -/**************************************************************************************** -** NAME: _write_r -** PARAMETER: len number of character to write -** RETURN VALUE: number of characters written. -** DESCRIPTION: Reentrant function for writing data from a file. In this case the -** write is performed to the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _write_r(struct _reent *r, int file, const void *ptr, size_t len) -{ - int i; - const unsigned char *p; - - p = (const unsigned char*) ptr; - - /* transmit all characters */ - for (i = 0; i < len; i++) - { - if (*p == '\n' ) - { - /* automatically add cariage return after a new line */ - UartTxChar('\r'); - } - UartTxChar(*p++); - } - - return len; -} /*** end of _write_r ***/ - - -/**************************************************************************************** -** NAME: _close_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for closing a file. Since UART is used, no further -** action is required here. -** -****************************************************************************************/ -int _close_r(struct _reent *r, int file) -{ - return 0; -} /*** end of _close_r ***/ - - -/**************************************************************************************** -** NAME: _lseek_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for obtaining the file pointer. Since UART is -** used, no further action is required here. -** -****************************************************************************************/ -_off_t _lseek_r(struct _reent *r, int file, _off_t ptr, int dir) -{ - /* always at the beginning of the file */ - return (_off_t)0; -} /*** end of _lseek_r ***/ - - -/**************************************************************************************** - * -** NAME: _fstat_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for setting the device mode. -** -****************************************************************************************/ -int _fstat_r(struct _reent *r, int file, struct stat *st) -{ - /* set as character device */ - st->st_mode = S_IFCHR; - return 0; -} /*** end of _fstat_r ***/ - - - -/**************************************************************************************** -** NAME: _isatty_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -int _isatty_r(struct _reent *r, int file) -{ - return 1; -} /*** end of _isatty_r ***/ - - -/**** Locally used variables. ****/ -extern char end[]; /* end is set in the linker command */ - /* file and is the end of statically */ - /* allocated data (thus start of heap). */ - -static char *heap_ptr = NULL; /* Points to current end of the heap. */ - - -/**************************************************************************************** -** NAME: _sbrk_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -void * _sbrk_r(struct _reent *_s_r, ptrdiff_t nbytes) -{ - char *base; /* errno should be set to ENOMEM on error */ - - if (!heap_ptr) { /* Initialize if first time through. */ - heap_ptr = end; - } - base = heap_ptr; /* Point to end of heap. */ - heap_ptr += nbytes; /* Increase heap. */ - - return base; /* Return pointer to start of new heap area. */ -} /*** end of _sbrk_r ***/ - - -/*********************************** end of syscalls.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/200b99c50c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/200b99c50c1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/200b99c50c1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/c042c4ca041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/c042c4ca041d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/c042c4ca041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/0012cb9c0d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/0012cb9c0d1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/0012cb9c0d1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/a0c25252201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/a0c25252201d00111c63a4b3c7bd9f5b deleted file mode 100644 index f2938bba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/a0c25252201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./source/ARMCM3_STM32/can.o \ -./source/ARMCM3_STM32/cpu.o \ -./source/ARMCM3_STM32/flash.o \ -./source/ARMCM3_STM32/nvm.o \ -./source/ARMCM3_STM32/timer.o \ -./source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./source/ARMCM3_STM32/can.d \ -./source/ARMCM3_STM32/cpu.d \ -./source/ARMCM3_STM32/flash.d \ -./source/ARMCM3_STM32/nvm.d \ -./source/ARMCM3_STM32/timer.d \ -./source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/202604a2221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/202604a2221d0011116edf0151d9d887 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/202604a2221d0011116edf0151d9d887 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/40ca5c1a0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/40ca5c1a0b1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/40ca5c1a0b1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/50205e98201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/50205e98201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/50205e98201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/b0c2eb450b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/b0c2eb450b1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/b0c2eb450b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/50bc5631071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/50bc5631071d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/50bc5631071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/90ecd23d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/90ecd23d091d00111358d2931fee7772 deleted file mode 100644 index 0e83335d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/90ecd23d091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/000ac83f021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/000ac83f021d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/000ac83f021d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/601bdc3c071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/601bdc3c071d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/601bdc3c071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/70bd1871e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/70bd1871e91c00111565e8bbe12141cd deleted file mode 100644 index 41676e17..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/70bd1871e91c00111565e8bbe12141cd +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf .srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/900d2489e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/900d2489e71c00111565e8bbe12141cd deleted file mode 100644 index 1ab9db6d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/900d2489e71c00111565e8bbe12141cd +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -Prog.hex \ - -SECONDARY_LIST += \ -Prog.lst \ - -SECONDARY_SIZE += \ -Prog.siz \ - - -# All Target -all: Prog.elf secondary-outputs - -# Tool invocations -Prog.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -Wl,-Map,Prog.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "Prog.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -Prog.hex: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec Prog.elf "Prog.hex" - @echo 'Finished building: $@' - @echo ' ' - -Prog.lst: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S Prog.elf > "Prog.lst" - @echo 'Finished building: $@' - @echo ' ' - -Prog.siz: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley Prog.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) Prog.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/d05365e20c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/d05365e20c1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/d05365e20c1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e038a4030d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e038a4030d1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e038a4030d1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/81/c014c446201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/81/c014c446201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/30cdcb360a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/30cdcb360a1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/30cdcb360a1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/6020a3220a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/6020a3220a1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/6020a3220a1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/81c9233efa1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/81c9233efa1c00111358d2931fee7772 deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/81c9233efa1c00111358d2931fee7772 +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/e04bc883f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/e04bc883f61c00111565e8bbe12141cd deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/e04bc883f61c00111565e8bbe12141cd +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/e0a03bff071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/e0a03bff071d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/e0a03bff071d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/206fc7890b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/206fc7890b1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/206fc7890b1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/3040fa76f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/3040fa76f61c00111565e8bbe12141cd deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/3040fa76f61c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/6021e97b0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/6021e97b0a1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/6021e97b0a1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/b0841a04e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/b0841a04e91c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/50916098201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/50916098201d00111c63a4b3c7bd9f5b deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/50916098201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/10a7613f021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/10a7613f021d00111358d2931fee7772 deleted file mode 100644 index 4e6eb195..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/10a7613f021d00111358d2931fee7772 +++ /dev/null @@ -1,355 +0,0 @@ -/**************************************************************************************** -| Description: demo program bootloader interface source file -| File Name: boot.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: BootActivate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Bootloader activation function. -** -****************************************************************************************/ -static void BootActivate(void) -{ - void (*pEntryFromProgFnc)(void); - - /* set pointer to the address of function EntryFromProg in the bootloader. note that - * 1 is added to this address to enable a switch from Thumb2 to Thumb mode - */ - pEntryFromProgFnc = (void*)0x08000150 + 1; - /* call EntryFromProg to activate the bootloader. */ - pEntryFromProgFnc(); -} /*** end of BootActivate ***/ - - -#if (BOOT_COM_UART_ENABLE > 0) -/**************************************************************************************** -* U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data); - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - UartInit(BOOT_COM_UART_BAUDRATE); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - static unsigned char xcpCtoReqPacket[BOOT_COM_UART_RX_MAX_DATA+1]; - static unsigned char xcpCtoRxLength; - static unsigned char xcpCtoRxInProgress = 0; - int ch; - - /* start of cto packet received? */ - if (xcpCtoRxInProgress == 0) - { - /* store the message length when received */ - ch = UartRxChar(0); - if (ch != -1) - { - xcpCtoReqPacket[0] = (unsigned char)ch; - /* indicate that a cto packet is being received */ - xcpCtoRxInProgress = 1; - - /* reset packet data count */ - xcpCtoRxLength = 0; - } - } - else - { - /* store the next packet byte */ - ch = UartRxChar(0); - if (ch != -1) - { - xcpCtoReqPacket[xcpCtoRxLength+1] = (unsigned char)ch; - /* increment the packet data count */ - xcpCtoRxLength++; - - /* check to see if the entire packet was received */ - if (xcpCtoRxLength == xcpCtoReqPacket[0]) - { - /* done with cto packet reception */ - xcpCtoRxInProgress = 0; - - /* check if this was an XCP CONNECT command */ - if ((xcpCtoReqPacket[1] == 0xff) && (xcpCtoReqPacket[2] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } - } -} /*** end of BootComCheckActivationRequest ***/ - - -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: 1 if a byte was received, 0 otherwise. -** DESCRIPTION: Receives a communication interface byte if one is present. -** -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data) -{ - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == SET) - { - /* retrieve and store the newly received byte */ - *data = (unsigned char)USART_ReceiveData(USART2); - /* all done */ - return 1; - } - /* still here to no new byte received */ - return 0; -} /*** end of UartReceiveByte ***/ -#endif /* BOOT_COM_UART_ENABLE > 0 */ - - -#if (BOOT_COM_CAN_ENABLE > 0) -/**************************************************************************************** -* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Type definitions -****************************************************************************************/ -typedef struct t_can_bus_timing -{ - unsigned char tseg1; /* CAN time segment 1 */ - unsigned char tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta - * (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1. - * The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains - * possible and valid time quanta configurations with a sample point between 68..78%. - */ -static const tCanBusTiming canTiming[] = -{ /* TQ | TSEG1 | TSEG2 | SP */ - /* ------------------------- */ - { 5, 2 }, /* 8 | 5 | 2 | 75% */ - { 6, 2 }, /* 9 | 6 | 2 | 78% */ - { 6, 3 }, /* 10 | 6 | 3 | 70% */ - { 7, 3 }, /* 11 | 7 | 3 | 73% */ - { 8, 3 }, /* 12 | 8 | 3 | 75% */ - { 9, 3 }, /* 13 | 9 | 3 | 77% */ - { 9, 4 }, /* 14 | 9 | 4 | 71% */ - { 10, 4 }, /* 15 | 10 | 4 | 73% */ - { 11, 4 }, /* 16 | 11 | 4 | 75% */ - { 12, 4 }, /* 17 | 12 | 4 | 76% */ - { 12, 5 }, /* 18 | 12 | 5 | 72% */ - { 13, 5 }, /* 19 | 13 | 5 | 74% */ - { 14, 5 }, /* 20 | 14 | 5 | 75% */ - { 15, 5 }, /* 21 | 15 | 5 | 76% */ - { 15, 6 }, /* 22 | 15 | 6 | 73% */ - { 16, 6 }, /* 23 | 16 | 6 | 74% */ - { 16, 7 }, /* 24 | 16 | 7 | 71% */ - { 16, 8 } /* 25 | 16 | 8 | 68% */ -}; - - -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 will be stored. -** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise. -** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus -** timing configuration. -** -****************************************************************************************/ -static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, - unsigned char *tseg1, unsigned char *tseg2) -{ - unsigned char cnt; - - /* loop through all possible time quanta configurations to find a match */ - for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) - { - if (((BOOT_CPU_SYSTEM_SPEED_KHZ/2) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) - { - /* compute the prescaler that goes with this TQ configuration */ - *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/2)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); - - /* make sure the prescaler is valid */ - if ( (*prescaler > 0) && (*prescaler <= 1024) ) - { - /* store the bustiming configuration */ - *tseg1 = canTiming[cnt].tseg1; - *tseg2 = canTiming[cnt].tseg2; - /* found a good bus timing configuration */ - return 1; - } - } - } - /* could not find a good bus timing configuration */ - return 0; -} /*** end of CanGetSpeedConfig ***/ - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - CAN_InitTypeDef CAN_InitStructure; - CAN_FilterInitTypeDef CAN_FilterInitStructure; - unsigned short prescaler; - unsigned char tseg1, tseg2; - - /* GPIO clock enable */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); - /* Configure CAN pin: RX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Configure CAN pin: TX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Remap CAN1 pins to PortB */ - GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE); - /* CAN1 Periph clock enable */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); - /* CAN register init */ - CAN_DeInit(CAN1); - CAN_StructInit(&CAN_InitStructure); - /* obtain the bittiming configuration for this baudrate */ - CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); - /* CAN controller init */ - CAN_InitStructure.CAN_TTCM = DISABLE; - CAN_InitStructure.CAN_ABOM = DISABLE; - CAN_InitStructure.CAN_AWUM = DISABLE; - CAN_InitStructure.CAN_NART = DISABLE; - CAN_InitStructure.CAN_RFLM = DISABLE; - CAN_InitStructure.CAN_TXFP = DISABLE; - CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; - /* CAN Baudrate init */ - CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; - CAN_InitStructure.CAN_BS1 = tseg1 - 1; - CAN_InitStructure.CAN_BS2 = tseg2 - 1; - CAN_InitStructure.CAN_Prescaler = prescaler; - CAN_Init(CAN1, &CAN_InitStructure); - /* CAN filter init - receive all messages */ - CAN_FilterInitStructure.CAN_FilterNumber = 0; - CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; - CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; - CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; - CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; - CAN_FilterInit(&CAN_FilterInitStructure); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - CanRxMsg RxMessage; - - /* check if a new message was received */ - if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0) - { - /* receive the message */ - CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); - if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) - { - /* check if this was an XCP CONNECT command */ - if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_CAN_ENABLE > 0 */ - - -/*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/60fafc9ff41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/60fafc9ff41c00111565e8bbe12141cd deleted file mode 100644 index 571a949b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/60fafc9ff41c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./source/assert.o \ -./source/backdoor.o \ -./source/boot.o \ -./source/com.o \ -./source/cop.o \ -./source/xcp.o - -C_DEPS += \ -./source/assert.d \ -./source/backdoor.d \ -./source/boot.d \ -./source/com.d \ -./source/cop.d \ -./source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/9041162d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/9041162d091d00111358d2931fee7772 deleted file mode 100644 index 0e83335d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/9041162d091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/d0efaf02f71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/d0efaf02f71c00111565e8bbe12141cd deleted file mode 100644 index 53b84e16..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/d0efaf02f71c00111565e8bbe12141cd +++ /dev/null @@ -1,166 +0,0 @@ -/**************************************************************************************** -| Description: bootloader interrupt vector table source file -| File Name: vectors.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* External functions -****************************************************************************************/ -extern void reset_handler(void); /* implemented in cstart.c */ - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -extern unsigned long _estack; /* stack end address (memory.x) */ - - -/**************************************************************************************** -** NAME: UnusedISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Catch-all for unused interrrupt service routines. -** -****************************************************************************************/ -void UnusedISR(void) -{ - /* unexpected interrupt occured, so halt the system */ - while (1) { ; } -} /*** end of UnusedISR ***/ - - -/**************************************************************************************** -* I N T E R R U P T V E C T O R T A B L E -****************************************************************************************/ -typedef union -{ - void (*func)(void); /* for ISR function pointers */ - unsigned long ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ - -__attribute__ ((section(".isr_vector"))) -const tIsrFunc _vectab[] = -{ - { .ptr = (unsigned long)&_estack }, /* the initial stack pointer */ - { reset_handler }, /* the reset handler */ - { UnusedISR }, /* NMI Handler */ - { UnusedISR }, /* Hard Fault Handler */ - { UnusedISR }, /* MPU Fault Handler */ - { UnusedISR }, /* Bus Fault Handler */ - { UnusedISR }, /* Usage Fault Handler */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* SVCall Handler */ - { UnusedISR }, /* Debug Monitor Handler */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* PendSV Handler */ - TimerISRHandler, /* SysTick Handler */ - { UnusedISR }, /* Window Watchdog */ - { UnusedISR }, /* PVD through EXTI Line detect */ - { UnusedISR }, /* Tamper */ - { UnusedISR }, /* RTC */ - { UnusedISR }, /* Flash */ - { UnusedISR }, /* RCC */ - { UnusedISR }, /* EXTI Line 0 */ - { UnusedISR }, /* EXTI Line 1 */ - { UnusedISR }, /* EXTI Line 2 */ - { UnusedISR }, /* EXTI Line 3 */ - { UnusedISR }, /* EXTI Line 4 */ - { UnusedISR }, /* DMA1 Channel 1 */ - { UnusedISR }, /* DMA1 Channel 2 */ - { UnusedISR }, /* DMA1 Channel 3 */ - { UnusedISR }, /* DMA1 Channel 4 */ - { UnusedISR }, /* DMA1 Channel 5 */ - { UnusedISR }, /* DMA1 Channel 6 */ - { UnusedISR }, /* DMA1 Channel 7 */ - { UnusedISR }, /* ADC1 and ADC2 */ - { UnusedISR }, /* CAN1 TX */ - { UnusedISR }, /* CAN1 RX0 */ - { UnusedISR }, /* CAN1 RX1 */ - { UnusedISR }, /* CAN1 SCE */ - { UnusedISR }, /* EXTI Line 9..5 */ - { UnusedISR }, /* TIM1 Break */ - { UnusedISR }, /* TIM1 Update */ - { UnusedISR }, /* TIM1 Trigger and Commutation */ - { UnusedISR }, /* TIM1 Capture Compare */ - { UnusedISR }, /* TIM2 */ - { UnusedISR }, /* TIM3 */ - { UnusedISR }, /* TIM4 */ - { UnusedISR }, /* I2C1 Event */ - { UnusedISR }, /* I2C1 Error */ - { UnusedISR }, /* I2C2 Event */ - { UnusedISR }, /* I2C1 Error */ - { UnusedISR }, /* SPI1 */ - { UnusedISR }, /* SPI2 */ - { UnusedISR }, /* USART1 */ - { UnusedISR }, /* USART2 */ - { UnusedISR }, /* USART3 */ - { UnusedISR }, /* EXTI Line 15..10 */ - { UnusedISR }, /* RTC alarm through EXTI line */ - { UnusedISR }, /* USB OTG FS Wakeup */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* TIM5 */ - { UnusedISR }, /* SPI3 */ - { UnusedISR }, /* UART4 */ - { UnusedISR }, /* UART5 */ - { UnusedISR }, /* TIM6 */ - { UnusedISR }, /* TIM7 */ - { UnusedISR }, /* DMA2 Channel1 */ - { UnusedISR }, /* DMA2 Channel2 */ - { UnusedISR }, /* DMA2 Channel3 */ - { UnusedISR }, /* DMA2 Channel4 */ - { UnusedISR }, /* DMA2 Channel5 */ - { UnusedISR }, /* Ethernet */ - { UnusedISR }, /* Ethernet Wakeup */ - { UnusedISR }, /* CAN2 TX */ - { UnusedISR }, /* CAN2 RX0 */ - { UnusedISR }, /* CAN2 RX1 */ - { UnusedISR }, /* CAN2 SCE */ - { UnusedISR2 }, /* USB OTG FS */ - { (void*)0x55AA11EE }, /* Reserved for OpenBLT checksum */ -}; - - -/************************************ end of hw.c **************************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/6074e963e81c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/6074e963e81c00111565e8bbe12141cd deleted file mode 100644 index 1f51c221..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/6074e963e81c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/5063b95e071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/5063b95e071d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/5063b95e071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/b0fdc8ca041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/b0fdc8ca041d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/b0fdc8ca041d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/d0f2f1360a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/d0f2f1360a1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/d0f2f1360a1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/400c395d041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/400c395d041d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/400c395d041d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/907e92220a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/907e92220a1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/907e92220a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/c0a158da011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/c0a158da011d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/c0a158da011d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/104b48ff071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/104b48ff071d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/104b48ff071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/10cd4975221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/10cd4975221d0011116edf0151d9d887 deleted file mode 100644 index a1f87276..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/10cd4975221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/30218a030d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/30218a030d1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/30218a030d1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/307e12a0f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/307e12a0f41c00111565e8bbe12141cd deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/307e12a0f41c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/8005e584011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/8005e584011d00111358d2931fee7772 deleted file mode 100644 index 31cbec52..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8b/8005e584011d00111358d2931fee7772 +++ /dev/null @@ -1,319 +0,0 @@ -/**************************************************************************************** -| Description: demo program bootloader interface source file -| File Name: boot.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: BootActivate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Bootloader activation function. -** -****************************************************************************************/ -static void BootActivate(void) -{ - void (*pEntryFromProgFnc)(void); - - /* set pointer to the address of function EntryFromProg in the bootloader. note that - * 1 is added to this address to enable a switch from Thumb2 to Thumb mode - */ - pEntryFromProgFnc = (void*)0x08000150 + 1; - /* call EntryFromProg to activate the bootloader. */ - pEntryFromProgFnc(); -} /*** end of BootActivate ***/ - - -#if (BOOT_COM_UART_ENABLE > 0) -/**************************************************************************************** -* U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - UartInit(BOOT_COM_UART_BAUDRATE); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - static unsigned char xcpCtoReqPacket[BOOT_COM_UART_RX_MAX_DATA+1]; - static unsigned char xcpCtoRxLength; - static unsigned char xcpCtoRxInProgress = 0; - - /* start of cto packet received? */ - if (xcpCtoRxInProgress == 0) - { - /* store the message length when received */ - xcpCtoReqPacket[0] = UartRxChar(0); - if (xcpCtoReqPacket[0] != -1) - { - /* indicate that a cto packet is being received */ - xcpCtoRxInProgress = 1; - - /* reset packet data count */ - xcpCtoRxLength = 0; - } - } - else - { - /* store the next packet byte */ - xcpCtoReqPacket[xcpCtoRxLength+1] = UartRxChar(0); - if (xcpCtoReqPacket[xcpCtoRxLength+1] != -1) - { - /* increment the packet data count */ - xcpCtoRxLength++; - - /* check to see if the entire packet was received */ - if (xcpCtoRxLength == xcpCtoReqPacket[0]) - { - /* done with cto packet reception */ - xcpCtoRxInProgress = 0; - - /* check if this was an XCP CONNECT command */ - if ((xcpCtoReqPacket[1] == 0xff) && (xcpCtoReqPacket[2] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_UART_ENABLE > 0 */ - - -#if (BOOT_COM_CAN_ENABLE > 0) -/**************************************************************************************** -* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Type definitions -****************************************************************************************/ -typedef struct t_can_bus_timing -{ - unsigned char tseg1; /* CAN time segment 1 */ - unsigned char tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta - * (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1. - * The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains - * possible and valid time quanta configurations with a sample point between 68..78%. - */ -static const tCanBusTiming canTiming[] = -{ /* TQ | TSEG1 | TSEG2 | SP */ - /* ------------------------- */ - { 5, 2 }, /* 8 | 5 | 2 | 75% */ - { 6, 2 }, /* 9 | 6 | 2 | 78% */ - { 6, 3 }, /* 10 | 6 | 3 | 70% */ - { 7, 3 }, /* 11 | 7 | 3 | 73% */ - { 8, 3 }, /* 12 | 8 | 3 | 75% */ - { 9, 3 }, /* 13 | 9 | 3 | 77% */ - { 9, 4 }, /* 14 | 9 | 4 | 71% */ - { 10, 4 }, /* 15 | 10 | 4 | 73% */ - { 11, 4 }, /* 16 | 11 | 4 | 75% */ - { 12, 4 }, /* 17 | 12 | 4 | 76% */ - { 12, 5 }, /* 18 | 12 | 5 | 72% */ - { 13, 5 }, /* 19 | 13 | 5 | 74% */ - { 14, 5 }, /* 20 | 14 | 5 | 75% */ - { 15, 5 }, /* 21 | 15 | 5 | 76% */ - { 15, 6 }, /* 22 | 15 | 6 | 73% */ - { 16, 6 }, /* 23 | 16 | 6 | 74% */ - { 16, 7 }, /* 24 | 16 | 7 | 71% */ - { 16, 8 } /* 25 | 16 | 8 | 68% */ -}; - - -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 will be stored. -** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise. -** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus -** timing configuration. -** -****************************************************************************************/ -static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, - unsigned char *tseg1, unsigned char *tseg2) -{ - unsigned char cnt; - - /* loop through all possible time quanta configurations to find a match */ - for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) - { - if (((BOOT_CPU_SYSTEM_SPEED_KHZ/2) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) - { - /* compute the prescaler that goes with this TQ configuration */ - *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/2)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); - - /* make sure the prescaler is valid */ - if ( (*prescaler > 0) && (*prescaler <= 1024) ) - { - /* store the bustiming configuration */ - *tseg1 = canTiming[cnt].tseg1; - *tseg2 = canTiming[cnt].tseg2; - /* found a good bus timing configuration */ - return 1; - } - } - } - /* could not find a good bus timing configuration */ - return 0; -} /*** end of CanGetSpeedConfig ***/ - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - CAN_InitTypeDef CAN_InitStructure; - CAN_FilterInitTypeDef CAN_FilterInitStructure; - unsigned short prescaler; - unsigned char tseg1, tseg2; - - /* GPIO clock enable */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); - /* Configure CAN pin: RX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Configure CAN pin: TX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Remap CAN1 pins to PortB */ - GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE); - /* CAN1 Periph clock enable */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); - /* CAN register init */ - CAN_DeInit(CAN1); - CAN_StructInit(&CAN_InitStructure); - /* obtain the bittiming configuration for this baudrate */ - CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); - /* CAN controller init */ - CAN_InitStructure.CAN_TTCM = DISABLE; - CAN_InitStructure.CAN_ABOM = DISABLE; - CAN_InitStructure.CAN_AWUM = DISABLE; - CAN_InitStructure.CAN_NART = DISABLE; - CAN_InitStructure.CAN_RFLM = DISABLE; - CAN_InitStructure.CAN_TXFP = DISABLE; - CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; - /* CAN Baudrate init */ - CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; - CAN_InitStructure.CAN_BS1 = tseg1 - 1; - CAN_InitStructure.CAN_BS2 = tseg2 - 1; - CAN_InitStructure.CAN_Prescaler = prescaler; - CAN_Init(CAN1, &CAN_InitStructure); - /* CAN filter init - receive all messages */ - CAN_FilterInitStructure.CAN_FilterNumber = 0; - CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; - CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; - CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; - CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; - CAN_FilterInit(&CAN_FilterInitStructure); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - CanRxMsg RxMessage; - - /* check if a new message was received */ - if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0) - { - /* receive the message */ - CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); - if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) - { - /* check if this was an XCP CONNECT command */ - if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_CAN_ENABLE > 0 */ - - -/*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/10214456201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/10214456201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/10214456201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/a031ce3d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/a031ce3d091d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/a031ce3d091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/f0f13f7c201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/f0f13f7c201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/00ad5ee90a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/00ad5ee90a1d00111358d2931fee7772 deleted file mode 100644 index 57e47072..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/00ad5ee90a1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit ((char)*format); (char *)format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/30b3c6fa0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/30b3c6fa0a1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/30b3c6fa0a1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/a03490220a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/a03490220a1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/a03490220a1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/a035cf63e81c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/a035cf63e81c00111565e8bbe12141cd deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/a035cf63e81c00111565e8bbe12141cd +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/40aa3bace71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/40aa3bace71c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/40aa3bace71c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/50f2b65e071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/50f2b65e071d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/50f2b65e071d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/a091a2f9221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/a091a2f9221d0011116edf0151d9d887 deleted file mode 100644 index 0d80fc43..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/a091a2f9221d0011116edf0151d9d887 +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./Source/ARMCM3_STM32/GCC/cstart.o \ -./Source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./Source/ARMCM3_STM32/GCC/cstart.d \ -./Source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -Source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/d073fe2c091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/d073fe2c091d00111358d2931fee7772 deleted file mode 100644 index 253654d4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/d073fe2c091d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/006b4656201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/006b4656201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/006b4656201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/a0664fedf31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/a0664fedf31c00111565e8bbe12141cd deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/a0664fedf31c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/11214456201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/11214456201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/11214456201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/60643642221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/60643642221d0011116edf0151d9d887 deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/60643642221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/60725431071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/60725431071d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/60725431071d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/70dc0c97051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/70dc0c97051d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/70dc0c97051d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/c0a1c1c50c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/c0a1c1c50c1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/c0a1c1c50c1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/f03dd29c0d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/f03dd29c0d1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/f03dd29c0d1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/e005862f051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/e005862f051d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/e005862f051d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/31eb7620021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/31eb7620021d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/31eb7620021d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/e0ee34570e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/e0ee34570e1d00111358d2931fee7772 deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/e0ee34570e1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/207f5a56e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/207f5a56e71c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/60e7e246201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/60e7e246201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/d0204252201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/d0204252201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/d0204252201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/408480030d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/408480030d1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/408480030d1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/7072e276f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/7072e276f61c00111565e8bbe12141cd deleted file mode 100644 index f2938bba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/7072e276f61c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./source/ARMCM3_STM32/can.o \ -./source/ARMCM3_STM32/cpu.o \ -./source/ARMCM3_STM32/flash.o \ -./source/ARMCM3_STM32/nvm.o \ -./source/ARMCM3_STM32/timer.o \ -./source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./source/ARMCM3_STM32/can.d \ -./source/ARMCM3_STM32/cpu.d \ -./source/ARMCM3_STM32/flash.d \ -./source/ARMCM3_STM32/nvm.d \ -./source/ARMCM3_STM32/timer.d \ -./source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/a0cbc93fea1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/a0cbc93fea1c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/41307220021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/41307220021d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/41307220021d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/80dc81e20c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/80dc81e20c1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/80dc81e20c1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/e0464aff071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/e0464aff071d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/e0464aff071d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/d05e8c68041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/d05e8c68041d00111358d2931fee7772 deleted file mode 100644 index 5f77b512..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/d05e8c68041d00111358d2931fee7772 +++ /dev/null @@ -1,168 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/f0f4d3450b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/f0f4d3450b1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/f0f4d3450b1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/a0d4fdbf091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/a0d4fdbf091d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/a0d4fdbf091d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/60eca49c0d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/60eca49c0d1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/60eca49c0d1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/d077ba46201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/d077ba46201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/d095eb68041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/d095eb68041d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/d095eb68041d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/00792b570e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/00792b570e1d00111358d2931fee7772 deleted file mode 100644 index ce284ef6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/00792b570e1d00111358d2931fee7772 +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./source/ARMCM3_STM32/GCC/cstart.o \ -./source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./source/ARMCM3_STM32/GCC/cstart.d \ -./source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/001f74890b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/001f74890b1d00111358d2931fee7772 deleted file mode 100644 index 046232fe..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/001f74890b1d00111358d2931fee7772 +++ /dev/null @@ -1,169 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - printf("woohoo!\n"); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/2071cf64f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/2071cf64f41c00111565e8bbe12141cd deleted file mode 100644 index 571a949b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/2071cf64f41c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./source/assert.o \ -./source/backdoor.o \ -./source/boot.o \ -./source/com.o \ -./source/cop.o \ -./source/xcp.o - -C_DEPS += \ -./source/assert.d \ -./source/backdoor.d \ -./source/boot.d \ -./source/com.d \ -./source/cop.d \ -./source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/c09a62ca041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/c09a62ca041d00111358d2931fee7772 deleted file mode 100644 index e63d6ad8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/c09a62ca041d00111358d2931fee7772 +++ /dev/null @@ -1,212 +0,0 @@ -/**************************************************************************************** -| Description: Newlib system calls remapping source file -| File Name: syscalls.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -** NAME: _read_r -** PARAMETER: len number of character to read. -** RETURN VALUE: number of characters read -** DESCRIPTION: Reentrant function for reading data from a file. In this case the -** read is performed from the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _read_r(struct _reent *r, int file, void *ptr, size_t len) -{ - char c; - int i; - unsigned char *p; - - p = (unsigned char*)ptr; - - /* receive all characters with echo */ - for (i = 0; i < len; i++) - { - c = UartRxChar(1); - - *p++ = c; - UartTxChar(c); - - /* was this a \n newline code? */ - if (c == 0x0D && i <= (len - 2)) - { - /* automatically add cariage return after a new line */ - *p = 0x0A; - UartTxChar(0x0A); - return i + 2; - } - } - return i; -} /*** end of _read_r ***/ - - -/**************************************************************************************** -** NAME: _write_r -** PARAMETER: len number of character to write -** RETURN VALUE: number of characters written. -** DESCRIPTION: Reentrant function for writing data from a file. In this case the -** write is performed to the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _write_r(struct _reent *r, int file, const void *ptr, size_t len) -{ - int i; - const unsigned char *p; - - p = (const unsigned char*) ptr; - - /* transmit all characters */ - for (i = 0; i < len; i++) - { - if (*p == '\n' ) - { - /* automatically add cariage return after a new line */ - UartTxChar('\r'); - } - UartTxChar(*p++); - } - - return len; -} /*** end of _write_r ***/ - - -/**************************************************************************************** -** NAME: _close_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for closing a file. Since UART is used, no further -** action is required here. -** -****************************************************************************************/ -int _close_r(struct _reent *r, int file) -{ - return 0; -} /*** end of _close_r ***/ - - -/**************************************************************************************** -** NAME: _lseek_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for obtaining the file pointer. Since UART is -** used, no further action is required here. -** -****************************************************************************************/ -_off_t _lseek_r(struct _reent *r, int file, _off_t ptr, int dir) -{ - /* always at the beginning of the file */ - return (_off_t)0; -} /*** end of _lseek_r ***/ - - -/**************************************************************************************** - * -** NAME: _fstat_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for setting the device mode. -** -****************************************************************************************/ -int _fstat_r(struct _reent *r, int file, struct stat *st) -{ - /* set as character device */ - st->st_mode = S_IFCHR; - return 0; -} /*** end of _fstat_r ***/ - - - -/**************************************************************************************** -** NAME: isatty -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -int isatty(int file) -{ - return 1; -} /*** end of isatty ***/ - - -#if 0 -static void _exit (int n) { -label: goto label; /* endless loop */ -} -#endif - -/* "malloc clue function" */ - - /**** Locally used variables. ****/ -extern char end[]; /* end is set in the linker command */ - /* file and is the end of statically */ - /* allocated data (thus start of heap). */ - -static char *heap_ptr; /* Points to current end of the heap. */ - -/************************** _sbrk_r *************************************/ -/* Support function. Adjusts end of heap to provide more memory to */ -/* memory allocator. Simple and dumb with no sanity checks. */ -/* struct _reent *r -- re-entrancy structure, used by newlib to */ -/* support multiple threads of operation. */ -/* ptrdiff_t nbytes -- number of bytes to add. */ -/* Returns pointer to start of new heap area. */ -/* Note: This implementation is not thread safe (despite taking a */ -/* _reent structure as a parameter). */ -/* Since _s_r is not used in the current implementation, the following */ -/* messages must be suppressed. */ - -void * _sbrk_r( - struct _reent *_s_r, - ptrdiff_t nbytes) -{ - char *base; /* errno should be set to ENOMEM on error */ - - if (!heap_ptr) { /* Initialize if first time through. */ - heap_ptr = end; - } - base = heap_ptr; /* Point to end of heap. */ - heap_ptr += nbytes; /* Increase heap. */ - - return base; /* Return pointer to start of new heap area. */ -} - - -/*********************************** end of syscalls.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/d040073efa1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/d040073efa1c00111358d2931fee7772 deleted file mode 100644 index f2938bba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/d040073efa1c00111358d2931fee7772 +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./source/ARMCM3_STM32/can.o \ -./source/ARMCM3_STM32/cpu.o \ -./source/ARMCM3_STM32/flash.o \ -./source/ARMCM3_STM32/nvm.o \ -./source/ARMCM3_STM32/timer.o \ -./source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./source/ARMCM3_STM32/can.d \ -./source/ARMCM3_STM32/cpu.d \ -./source/ARMCM3_STM32/flash.d \ -./source/ARMCM3_STM32/nvm.d \ -./source/ARMCM3_STM32/timer.d \ -./source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/80d58e2d201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/80d58e2d201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/d0d8ecfa0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/d0d8ecfa0a1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/d0d8ecfa0a1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/905f5c52201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/905f5c52201d00111c63a4b3c7bd9f5b deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/905f5c52201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/9086ce3fea1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/9086ce3fea1c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/f01d43da011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/f01d43da011d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/f01d43da011d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/20e76ab00a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/20e76ab00a1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/20e76ab00a1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/6010a7000b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/6010a7000b1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/6010a7000b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/90a2493c0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/90a2493c0b1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/90a2493c0b1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/d0011472f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/d0011472f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/e0af682d201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a/e0af682d201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/802957dc041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/802957dc041d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/802957dc041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/c0b2e8890b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/c0b2e8890b1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/c0b2e8890b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/1013781a0e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/1013781a0e1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/1013781a0e1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/20e301dae91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/20e301dae91c00111565e8bbe12141cd deleted file mode 100644 index 9bf68be5..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/20e301dae91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/6003e763e81c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/6003e763e81c00111565e8bbe12141cd deleted file mode 100644 index 9bf68be5..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/6003e763e81c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/6087976a201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/6087976a201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/80731671e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/80731671e91c00111565e8bbe12141cd deleted file mode 100644 index 1f51c221..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/80731671e91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/c0b4786a201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/c0b4786a201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/a0b391000b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/a0b391000b1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/a0b391000b1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/507e34ace71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/507e34ace71c00111565e8bbe12141cd deleted file mode 100644 index 9bf68be5..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/507e34ace71c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/407f3356201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/407f3356201d00111c63a4b3c7bd9f5b deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/407f3356201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/6048747c201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/6048747c201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/a0ee822d201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/a0ee822d201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/c068a62c091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/c068a62c091d00111358d2931fee7772 deleted file mode 100644 index 0ef1b08d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/c068a62c091d00111358d2931fee7772 +++ /dev/null @@ -1,655 +0,0 @@ -/**************************************************************************************** -| Project Name: Standard input/output routines that are optimized for integers. -| The following functions are impemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| -| Description: Standard I/O integer optimized library source file -| File Name: stdio.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) by HAN - HTS Autotechniek. All rights reserved. -| -| This software has been carefully tested, but is not guaranteed for any particular -| purpose. The author does not offer any warranties and does not guarantee the accuracy, -| adequacy, or completeness of the software and is not responsible for any errors or -| omissions or the results obtained from use of the software. -| -|****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - putch(sign); - txcharcnt++; - } - if (x) - { - putch ('0'); - txcharcnt++; - putch(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - putch (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - putch (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - putch (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/e0e038b6221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/e0e038b6221d0011116edf0151d9d887 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/e0e038b6221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/f01a0872f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/f01a0872f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/c03994f9221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/c03994f9221d0011116edf0151d9d887 deleted file mode 100644 index db7f7385..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/c03994f9221d0011116edf0151d9d887 +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./Source/assert.o \ -./Source/backdoor.o \ -./Source/boot.o \ -./Source/com.o \ -./Source/cop.o \ -./Source/xcp.o - -C_DEPS += \ -./Source/assert.d \ -./Source/backdoor.d \ -./Source/boot.d \ -./Source/com.d \ -./Source/cop.d \ -./Source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -Source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/f081f8c0011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/f081f8c0011d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/f081f8c0011d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/50c31897051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/50c31897051d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/50c31897051d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/601953b00a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/601953b00a1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/601953b00a1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/b00c835ee91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/b00c835ee91c00111565e8bbe12141cd deleted file mode 100644 index 7dff3cbf..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/b00c835ee91c00111565e8bbe12141cd +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/e0f2b33d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/e0f2b33d091d00111358d2931fee7772 deleted file mode 100644 index 253654d4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/e0f2b33d091d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/f01fc183f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/f01fc183f61c00111565e8bbe12141cd deleted file mode 100644 index ce284ef6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/f01fc183f61c00111565e8bbe12141cd +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./source/ARMCM3_STM32/GCC/cstart.o \ -./source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./source/ARMCM3_STM32/GCC/cstart.d \ -./source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/a0dc39a1f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/a0dc39a1f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/d0b07a220a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/d0b07a220a1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/d0b07a220a1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/e0faff5c041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/e0faff5c041d00111358d2931fee7772 deleted file mode 100644 index 253654d4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/e0faff5c041d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/00d10572f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/00d10572f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/50ec17c0091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/50ec17c0091d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/50ec17c0091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/b0ce673d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/b0ce673d091d00111358d2931fee7772 deleted file mode 100644 index abb54905..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/b0ce673d091d00111358d2931fee7772 +++ /dev/null @@ -1,655 +0,0 @@ -/**************************************************************************************** -| Project Name: Standard input/output routines that are optimized for integers. -| The following functions are impemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| -| Description: Standard I/O integer optimized library source file -| File Name: stdio.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) by HAN - HTS Autotechniek. All rights reserved. -| -| This software has been carefully tested, but is not guaranteed for any particular -| purpose. The author does not offer any warranties and does not guarantee the accuracy, -| adequacy, or completeness of the software and is not responsible for any errors or -| omissions or the results obtained from use of the software. -| -|****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "header.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - putch(sign); - txcharcnt++; - } - if (x) - { - putch ('0'); - txcharcnt++; - putch(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - putch (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - putch (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - putch (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/c06b7f220a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/c06b7f220a1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/c06b7f220a1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/004d62d8221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/004d62d8221d0011116edf0151d9d887 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/004d62d8221d0011116edf0151d9d887 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/30e1a683f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/30e1a683f61c00111565e8bbe12141cd deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/30e1a683f61c00111565e8bbe12141cd +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/10925dd8221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/10925dd8221d0011116edf0151d9d887 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/10925dd8221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/10ddb745ed1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/10ddb745ed1c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/10ddb745ed1c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/601f86c50c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/601f86c50c1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/601f86c50c1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/80df1bffe91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/80df1bffe91c00111565e8bbe12141cd deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/80df1bffe91c00111565e8bbe12141cd +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/80c9233efa1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/80c9233efa1c00111358d2931fee7772 deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/80c9233efa1c00111358d2931fee7772 +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/80d53c1e091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/80d53c1e091d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/80d53c1e091d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/3082eed9e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/3082eed9e91c00111565e8bbe12141cd deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/3082eed9e91c00111565e8bbe12141cd +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/a0521f89e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/a0521f89e71c00111565e8bbe12141cd deleted file mode 100644 index 9974cc80..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/a0521f89e71c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/e016edb4e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/e016edb4e91c00111565e8bbe12141cd deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/e016edb4e91c00111565e8bbe12141cd +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/f08b51f1091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/f08b51f1091d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/f08b51f1091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/80d904c0091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/80d904c0091d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/80d904c0091d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/e0fe33b6221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/e0fe33b6221d0011116edf0151d9d887 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/e0fe33b6221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/f0922fff071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/f0922fff071d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/f0922fff071d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/c0793adc041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/c0793adc041d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/c0793adc041d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/c0bd4b52201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/c0bd4b52201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 571a949b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/c0bd4b52201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./source/assert.o \ -./source/backdoor.o \ -./source/boot.o \ -./source/com.o \ -./source/cop.o \ -./source/xcp.o - -C_DEPS += \ -./source/assert.d \ -./source/backdoor.d \ -./source/boot.d \ -./source/com.d \ -./source/cop.d \ -./source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/f0a1dd64f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/f0a1dd64f41c00111565e8bbe12141cd deleted file mode 100644 index ce284ef6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/f0a1dd64f41c00111565e8bbe12141cd +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./source/ARMCM3_STM32/GCC/cstart.o \ -./source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./source/ARMCM3_STM32/GCC/cstart.d \ -./source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/9095a15e071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/9095a15e071d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/9095a15e071d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/91dba4f9221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/91dba4f9221d0011116edf0151d9d887 deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/91dba4f9221d0011116edf0151d9d887 +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/b0edd883f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/b0edd883f61c00111565e8bbe12141cd deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/b0edd883f61c00111565e8bbe12141cd +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/e07aefd70a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/e07aefd70a1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/e07aefd70a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/703d956a201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/703d956a201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/70b9e463e81c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/70b9e463e81c00111565e8bbe12141cd deleted file mode 100644 index 7dff3cbf..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/70b9e463e81c00111565e8bbe12141cd +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/a0af9df9221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/a0af9df9221d0011116edf0151d9d887 deleted file mode 100644 index 4c69eba0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/a0af9df9221d0011116edf0151d9d887 +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./Source/ARMCM3_STM32/can.o \ -./Source/ARMCM3_STM32/cpu.o \ -./Source/ARMCM3_STM32/flash.o \ -./Source/ARMCM3_STM32/nvm.o \ -./Source/ARMCM3_STM32/timer.o \ -./Source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./Source/ARMCM3_STM32/can.d \ -./Source/ARMCM3_STM32/cpu.d \ -./Source/ARMCM3_STM32/flash.d \ -./Source/ARMCM3_STM32/nvm.d \ -./Source/ARMCM3_STM32/timer.d \ -./Source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -Source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -Source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/c0f5b53c071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/c0f5b53c071d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/c0f5b53c071d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/20304075221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/20304075221d0011116edf0151d9d887 deleted file mode 100644 index c8e8660e..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/20304075221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/306bffa1221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/306bffa1221d0011116edf0151d9d887 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/306bffa1221d0011116edf0151d9d887 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/60f33342221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/60f33342221d0011116edf0151d9d887 deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/60f33342221d0011116edf0151d9d887 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/a07a5c7c201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/a07a5c7c201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/20e0e7c0011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/20e0e7c0011d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/20e0e7c0011d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/403cb03f021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/403cb03f021d00111358d2931fee7772 deleted file mode 100644 index 253654d4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/403cb03f021d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/608f90fa071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/608f90fa071d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/608f90fa071d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/609eabb5091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/609eabb5091d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/609eabb5091d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/c023eb890b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/c023eb890b1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/c023eb890b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/d0d1f1b4e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/d0d1f1b4e91c00111565e8bbe12141cd deleted file mode 100644 index ad2dac46..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/d0d1f1b4e91c00111565e8bbe12141cd +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/c0bfbcc50c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/c0bfbcc50c1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/c0bfbcc50c1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/00c39a030d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/00c39a030d1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/00c39a030d1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/5060d9d10d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/5060d9d10d1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/5060d9d10d1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/707359dc041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/707359dc041d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/707359dc041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d0077756e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d0077756e71c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/300d10a0f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/300d10a0f41c00111565e8bbe12141cd deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/300d10a0f41c00111565e8bbe12141cd +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/b00312e20c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/b00312e20c1d00111358d2931fee7772 deleted file mode 100644 index 623456fa..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/b00312e20c1d00111358d2931fee7772 +++ /dev/null @@ -1,205 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void DisplayUptime(void); -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* Output uptime on terminal */ - DisplayUptime(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: DisplayUptime -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Outputs the program's runtime on the terminal every second. -** -****************************************************************************************/ -static void DisplayUptime(void) -{ - static unsigned long uptime_ms_last = 0; - unsigned long uptime_ms_now; - unsigned char hr, min, sec; - - uptime_ms_now = TimerGet(); - - /* output info on terminal just once a second */ - if ( (uptime_ms_now - uptime_ms_last) < 1000) - { - /* not yet time to toggle */ - return; - } - /* calculate uptime */ - sec = uptime_ms_now/1000; - min = sec/60; - hr = min/60; - - /* output time on terminal */ - printf("Program uptime: %d:%02d:%02d", hr, min, sec); - - /* store for next comparison */ - uptime_ms_last = uptime_ms_now; -} /*** end of DisplayUptime ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/c0f045edf31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/c0f045edf31c00111565e8bbe12141cd deleted file mode 100644 index f2938bba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/c0f045edf31c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./source/ARMCM3_STM32/can.o \ -./source/ARMCM3_STM32/cpu.o \ -./source/ARMCM3_STM32/flash.o \ -./source/ARMCM3_STM32/nvm.o \ -./source/ARMCM3_STM32/timer.o \ -./source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./source/ARMCM3_STM32/can.d \ -./source/ARMCM3_STM32/cpu.d \ -./source/ARMCM3_STM32/flash.d \ -./source/ARMCM3_STM32/nvm.d \ -./source/ARMCM3_STM32/timer.d \ -./source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/d0e5b4440a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/d0e5b4440a1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/d0e5b4440a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/f0aedf68041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/f0aedf68041d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/f0aedf68041d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/203917a0f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/203917a0f41c00111565e8bbe12141cd deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/203917a0f41c00111565e8bbe12141cd +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/40307220021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/40307220021d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/40307220021d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/908e9c3dee1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/908e9c3dee1c00111565e8bbe12141cd deleted file mode 100644 index f7ce8d76..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/908e9c3dee1c00111565e8bbe12141cd +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************************** -| Description: LED driver source file -| File Name: led.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ -#define LED_TOGGLE_MS (250) /* toggle interval time in milliseconds */ - - -/**************************************************************************************** -** NAME: LedInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the LED. -** -****************************************************************************************/ -void LedInit(void) -{ - GPIO_InitTypeDef gpio_init; - - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); - gpio_init.GPIO_Pin = GPIO_Pin_12; - gpio_init.GPIO_Speed = GPIO_Speed_50MHz; - gpio_init.GPIO_Mode = GPIO_Mode_Out_PP; - GPIO_Init(GPIOC, &gpio_init); -} /*** end of LedInit ***/ - - -/**************************************************************************************** -** NAME: LedToggle -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Toggles the LED at a fixed time interval. -** -****************************************************************************************/ -void LedToggle(void) -{ - static unsigned char led_toggle_state = 0; - static unsigned long timer_counter_last = 0; - unsigned long timer_counter_now; - - /* check if toggle interval time passed */ - timer_counter_now = TimerGet(); - if ( (timer_counter_now - timer_counter_last) < LED_TOGGLE_MS) - { - /* not yet time to toggle */ - return; - } - - /* determine toggle action */ - if (led_toggle_state == 0) - { - led_toggle_state = 1; - /* turn the LED on */ - GPIO_ResetBits(GPIOC, GPIO_Pin_12); - } - else - { - led_toggle_state = 0; - /* turn the LED off */ - GPIO_SetBits(GPIOC, GPIO_Pin_12); - } - - /* store toggle time to determine next toggle interval */ - timer_counter_last = timer_counter_now; -} /*** end of LedToggle ***/ - - -/*********************************** end of led.c **************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/10215bd8221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/10215bd8221d0011116edf0151d9d887 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/10215bd8221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0eab5ca041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0eab5ca041d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0eab5ca041d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/50d45d1a0e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/50d45d1a0e1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/50d45d1a0e1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bf/c06148edf31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bf/c06148edf31c00111565e8bbe12141cd deleted file mode 100644 index ce284ef6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bf/c06148edf31c00111565e8bbe12141cd +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./source/ARMCM3_STM32/GCC/cstart.o \ -./source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./source/ARMCM3_STM32/GCC/cstart.d \ -./source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/505d1ac0091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/505d1ac0091d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/505d1ac0091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/a0fa34a1f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/a0fa34a1f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/f0dd9dd10d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/f0dd9dd10d1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/f0dd9dd10d1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/0051e1360a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/0051e1360a1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/0051e1360a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/109becc0011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/109becc0011d00111358d2931fee7772 deleted file mode 100644 index 253654d4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/109becc0011d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/40c30da0f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/40c30da0f41c00111565e8bbe12141cd deleted file mode 100644 index ce284ef6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/40c30da0f41c00111565e8bbe12141cd +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - -OBJS += \ -./source/ARMCM3_STM32/GCC/cstart.o \ -./source/ARMCM3_STM32/GCC/vectors.o - -C_DEPS += \ -./source/ARMCM3_STM32/GCC/cstart.d \ -./source/ARMCM3_STM32/GCC/vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/GCC/cstart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/cstart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/GCC/vectors.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/GCC/vectors.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/d07160e20c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/d07160e20c1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/d07160e20c1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/e0ebf1d70a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/e0ebf1d70a1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/e0ebf1d70a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/80625a20021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/80625a20021d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/80625a20021d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/a086112d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/a086112d091d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/a086112d091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/e0f8d69c0d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/e0f8d69c0d1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/e0f8d69c0d1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/2079f771f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/2079f771f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/4024ed9fe61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/4024ed9fe61c00111565e8bbe12141cd deleted file mode 100644 index aefddb44..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/4024ed9fe61c00111565e8bbe12141cd +++ /dev/null @@ -1,206 +0,0 @@ -#**************************************************************************************** -#| Description: Makefile for STM32 using CodeSourcery GNU GCC compiler toolset -#| File Name: makefile -#| -#|--------------------------------------------------------------------------------------- -#| C O P Y R I G H T -#|--------------------------------------------------------------------------------------- -#| Copyright (c) 2011 by Feaser LLC http://www.feaser.com All rights reserved -#| -#|--------------------------------------------------------------------------------------- -#| L I C E N S E -#|--------------------------------------------------------------------------------------- -#| This file is part of OpenBTL. OpenBTL is free software: you can redistribute it and/or -#| modify it under the terms of the GNU General Public License as published by the Free -#| Software Foundation, either version 3 of the License, or (at your option) any later -#| version. -#| -#| OpenBTL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -#| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -#| PURPOSE. See the GNU General Public License for more details. -#| -#| You should have received a copy of the GNU General Public License along with OpenBTL. -#| If not, see . -#| -#**************************************************************************************** -SHELL = sh - -#|---------------------------------------------------------------------------------------| -#| Configure project name | -#|---------------------------------------------------------------------------------------| -PROJ_NAME=demoprog_olimex_stm32p103 - - -#|---------------------------------------------------------------------------------------| -#| Speficy project source files | -#|---------------------------------------------------------------------------------------| -PROJ_FILES= \ -boot.c \ -boot.h \ -cstart.c \ -header.h \ -irq.c \ -irq.h \ -led.c \ -led.h \ -main.c \ -timer.c \ -timer.h \ -vectors.c \ -lib/stdperiphlib/stm32f10x_conf.h \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.h \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/misc.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_adc.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_bkp.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_can.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_cec.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_crc.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dac.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dbgmcu.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dma.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_flash.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_fsmc.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_i2c.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_iwdg.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_pwr.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rtc.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_sdio.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_spi.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_tim.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_usart.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_wwdg.h \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - - -#|---------------------------------------------------------------------------------------| -#| Compiler binaries | -#|---------------------------------------------------------------------------------------| -CC = arm-none-eabi-gcc -LN = arm-none-eabi-gcc -OC = arm-none-eabi-objcopy -OD = arm-none-eabi-objdump -AS = arm-none-eabi-as -SZ = arm-none-eabi-size - - -#|---------------------------------------------------------------------------------------| -#| Extract file names | -#|---------------------------------------------------------------------------------------| -PROJ_ASRCS = $(filter %.s,$(foreach file,$(PROJ_FILES),$(notdir $(file)))) -PROJ_CSRCS = $(filter %.c,$(foreach file,$(PROJ_FILES),$(notdir $(file)))) -PROJ_CHDRS = $(filter %.h,$(foreach file,$(PROJ_FILES),$(notdir $(file)))) -PROJ_CCMPL = $(patsubst %.c,%.cpl,$(PROJ_CSRCS)) -PROJ_ACMPL = $(patsubst %.s,%.cpl,$(PROJ_ASRCS)) - - -#|---------------------------------------------------------------------------------------| -#| Set important path variables | -#|---------------------------------------------------------------------------------------| -VPATH = $(foreach path,$(sort $(foreach file,$(PROJ_FILES),$(dir $(file)))) $(subst \,/,$(OBJ_PATH)),$(path) :) -OBJ_PATH = obj -BIN_PATH = bin -INC_PATH = $(patsubst %,-I%,$(sort $(foreach file,$(filter %.h,$(PROJ_FILES)),$(dir $(file))))) -INC_PATH += -I. -LIB_PATH = - - -#|---------------------------------------------------------------------------------------| -#| Options for compiler binaries | -#|---------------------------------------------------------------------------------------| -CFLAGS = -g -D inline= -mthumb -mcpu=cortex-m3 -O1 -T memory.x -CFLAGS += -D PACK_STRUCT_END=__attribute\(\(packed\)\) -D sprintf=usprintf -Wno-main -CFLAGS += -D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) -D snprintf=usnprintf -CFLAGS += -D printf=uipprintf -ffunction-sections -fdata-sections $(INC_PATH) -CFLAGS += -D STM32F10X_MD -D USE_STDPERIPH_DRIVER -D VECT_TAB_FLASH -D GCC_ARMCM3 -LFLAGS = -nostartfiles -Xlinker -M -Xlinker -Map=$(BIN_PATH)/$(PROJ_NAME).map -LFLAGS += $(LIB_PATH) -Xlinker --no-gc-sections -OFLAGS = -O srec -ODFLAGS = -x -SZFLAGS = -B -d - - -#|---------------------------------------------------------------------------------------| -#| Specify library files | -#|---------------------------------------------------------------------------------------| -LIBS = - - -#|---------------------------------------------------------------------------------------| -#| Define targets | -#|---------------------------------------------------------------------------------------| -AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS)) -COBJS = $(patsubst %.c,%.o,$(PROJ_CSRCS)) - - -#|---------------------------------------------------------------------------------------| -#| Make ALL | -#|---------------------------------------------------------------------------------------| -all : $(BIN_PATH)/$(PROJ_NAME).srec - - -$(BIN_PATH)/$(PROJ_NAME).srec : $(BIN_PATH)/$(PROJ_NAME).elf - @$(OC) $< $(OFLAGS) $@ - @$(OD) $(ODFLAGS) $< > $(BIN_PATH)/$(PROJ_NAME).map - @echo +++ Summary of memory consumption: - @$(SZ) $(SZFLAGS) $< - @echo +++ Build complete [$(notdir $@)] - -$(BIN_PATH)/$(PROJ_NAME).elf : $(AOBJS) $(COBJS) - @echo +++ Linking [$(notdir $@)] - @$(LN) $(CFLAGS) -o $@ $(patsubst %.o,$(OBJ_PATH)/%.o,$(^F)) $(LIBS) $(LFLAGS) - - -#|---------------------------------------------------------------------------------------| -#| Compile and assemble | -#|---------------------------------------------------------------------------------------| -$(AOBJS): %.o: %.s $(PROJ_CHDRS) - @echo +++ Assembling [$(notdir $<)] - @$(AS) $(AFLAGS) $< -o $(OBJ_PATH)/$(@F) - -$(COBJS): %.o: %.c $(PROJ_CHDRS) - @echo +++ Compiling [$(notdir $<)] - @$(CC) $(CFLAGS) -c $< -o $(OBJ_PATH)/$(@F) - - -#|---------------------------------------------------------------------------------------| -#| Make CLEAN | -#|---------------------------------------------------------------------------------------| -clean : - @echo +++ Cleaning build environment - @rm -f $(foreach file,$(AOBJS),$(OBJ_PATH)/$(file)) - @rm -f $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) - @rm -f $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file))) - @rm -f $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map - @rm -f $(BIN_PATH)/$(PROJ_NAME).srec - @echo +++ Clean complete - - \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/502604a0f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/502604a0f41c00111565e8bbe12141cd deleted file mode 100644 index f2938bba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/502604a0f41c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./source/ARMCM3_STM32/can.o \ -./source/ARMCM3_STM32/cpu.o \ -./source/ARMCM3_STM32/flash.o \ -./source/ARMCM3_STM32/nvm.o \ -./source/ARMCM3_STM32/timer.o \ -./source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./source/ARMCM3_STM32/can.d \ -./source/ARMCM3_STM32/cpu.d \ -./source/ARMCM3_STM32/flash.d \ -./source/ARMCM3_STM32/nvm.d \ -./source/ARMCM3_STM32/timer.d \ -./source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/901a8a2d201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/901a8a2d201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/a0c7875ee91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/a0c7875ee91c00111565e8bbe12141cd deleted file mode 100644 index 1f51c221..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/a0c7875ee91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/3099ffd9e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/3099ffd9e91c00111565e8bbe12141cd deleted file mode 100644 index 7dff3cbf..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/3099ffd9e91c00111565e8bbe12141cd +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/a0fd30220a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/a0fd30220a1d00111358d2931fee7772 deleted file mode 100644 index 847a68a8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/a0fd30220a1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - putch(sign); - txcharcnt++; - } - if (x) - { - putch ('0'); - txcharcnt++; - putch(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - putch (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - putch (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - putch (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/0099c53f021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/0099c53f021d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/0099c53f021d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/a0d751edf31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/a0d751edf31c00111565e8bbe12141cd deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/a0d751edf31c00111565e8bbe12141cd +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/a0f517ace71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/a0f517ace71c00111565e8bbe12141cd deleted file mode 100644 index ad2dac46..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/a0f517ace71c00111565e8bbe12141cd +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/d025775ee91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/d025775ee91c00111565e8bbe12141cd deleted file mode 100644 index ad2dac46..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/d025775ee91c00111565e8bbe12141cd +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/10a2751a0e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/10a2751a0e1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/10a2751a0e1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/8046db76f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/8046db76f61c00111565e8bbe12141cd deleted file mode 100644 index 571a949b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/8046db76f61c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./source/assert.o \ -./source/backdoor.o \ -./source/boot.o \ -./source/com.o \ -./source/cop.o \ -./source/xcp.o - -C_DEPS += \ -./source/assert.d \ -./source/backdoor.d \ -./source/boot.d \ -./source/com.d \ -./source/cop.d \ -./source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/900e1f3efa1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/900e1f3efa1c00111358d2931fee7772 deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/900e1f3efa1c00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/90bb969c0d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/90bb969c0d1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/90bb969c0d1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/606e0aedf31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/606e0aedf31c00111565e8bbe12141cd deleted file mode 100644 index 454df040..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/606e0aedf31c00111565e8bbe12141cd +++ /dev/null @@ -1,161 +0,0 @@ -/**************************************************************************************** -| Description: bootloader interrupt vector table source file -| File Name: vectors.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "boot.h" /* bootloader generic header */ - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -extern blt_int32u _estack; /* stack end address (memory.x) */ - - -/**************************************************************************************** -** NAME: UnusedISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Catch-all for unused interrrupt service routines. -** -****************************************************************************************/ -void UnusedISR(void) -{ - /* unexpected interrupt occured, so trigger an assertion to halt the system */ - ASSERT_RT(BLT_FALSE); -} /*** end of UnusedISR ***/ - - -/**************************************************************************************** -* I N T E R R U P T V E C T O R T A B L E -****************************************************************************************/ -extern void reset_handler(void); /* implemented in cstart.c */ - -typedef union -{ - void (*func)(void); /* for ISR function pointers */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ - -__attribute__ ((section(".isr_vector"))) -const tIsrFunc _vectab[] = -{ - { .ptr = (blt_int32u)&_estack }, /* the initial stack pointer */ - reset_handler, /* the reset handler */ - UnusedISR, /* NMI Handler */ - UnusedISR, /* Hard Fault Handler */ - UnusedISR, /* MPU Fault Handler */ - UnusedISR, /* Bus Fault Handler */ - UnusedISR, /* Usage Fault Handler */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* SVCall Handler */ - UnusedISR, /* Debug Monitor Handler */ - UnusedISR, /* Reserved */ - UnusedISR, /* PendSV Handler */ - UnusedISR, /* SysTick Handler */ - UnusedISR, /* Window Watchdog */ - UnusedISR, /* PVD through EXTI Line detect */ - UnusedISR, /* Tamper */ - UnusedISR, /* RTC */ - UnusedISR, /* Flash */ - UnusedISR, /* RCC */ - UnusedISR, /* EXTI Line 0 */ - UnusedISR, /* EXTI Line 1 */ - UnusedISR, /* EXTI Line 2 */ - UnusedISR, /* EXTI Line 3 */ - UnusedISR, /* EXTI Line 4 */ - UnusedISR, /* DMA1 Channel 1 */ - UnusedISR, /* DMA1 Channel 2 */ - UnusedISR, /* DMA1 Channel 3 */ - UnusedISR, /* DMA1 Channel 4 */ - UnusedISR, /* DMA1 Channel 5 */ - UnusedISR, /* DMA1 Channel 6 */ - UnusedISR, /* DMA1 Channel 7 */ - UnusedISR, /* ADC1 and ADC2 */ - UnusedISR, /* CAN1 TX */ - UnusedISR, /* CAN1 RX0 */ - UnusedISR, /* CAN1 RX1 */ - UnusedISR, /* CAN1 SCE */ - UnusedISR, /* EXTI Line 9..5 */ - UnusedISR, /* TIM1 Break */ - UnusedISR, /* TIM1 Update */ - UnusedISR, /* TIM1 Trigger and Commutation */ - UnusedISR, /* TIM1 Capture Compare */ - UnusedISR, /* TIM2 */ - UnusedISR, /* TIM3 */ - UnusedISR, /* TIM4 */ - UnusedISR, /* I2C1 Event */ - UnusedISR, /* I2C1 Error */ - UnusedISR, /* I2C2 Event */ - UnusedISR, /* I2C1 Error */ - UnusedISR, /* SPI1 */ - UnusedISR, /* SPI2 */ - UnusedISR, /* USART1 */ - UnusedISR, /* USART2 */ - UnusedISR, /* USART3 */ - UnusedISR, /* EXTI Line 15..10 */ - UnusedISR, /* RTC alarm through EXTI line */ - UnusedISR, /* USB OTG FS Wakeup */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* Reserved */ - UnusedISR, /* TIM5 */ - UnusedISR, /* SPI3 */ - UnusedISR, /* UART4 */ - UnusedISR, /* UART5 */ - UnusedISR, /* TIM6 */ - UnusedISR, /* TIM7 */ - UnusedISR, /* DMA2 Channel1 */ - UnusedISR, /* DMA2 Channel2 */ - UnusedISR, /* DMA2 Channel3 */ - UnusedISR, /* DMA2 Channel4 */ - UnusedISR, /* DMA2 Channel5 */ - UnusedISR, /* Ethernet */ - UnusedISR, /* Ethernet Wakeup */ - UnusedISR, /* CAN2 TX */ - UnusedISR, /* CAN2 RX0 */ - UnusedISR, /* CAN2 RX1 */ - UnusedISR, /* CAN2 SCE */ - UnusedISR /* USB OTG FS */ -}; - - -/************************************ end of hw.c **************************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f00fc5e90a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f00fc5e90a1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f00fc5e90a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/50e84f1e091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/50e84f1e091d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/50e84f1e091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/90ee5952201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/90ee5952201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/90ee5952201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/e0c38af9221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/e0c38af9221d0011116edf0151d9d887 deleted file mode 100644 index 0a5275bc..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/e0c38af9221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/00e7d864f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/00e7d864f41c00111565e8bbe12141cd deleted file mode 100644 index f2938bba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/00e7d864f41c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./source/ARMCM3_STM32/can.o \ -./source/ARMCM3_STM32/cpu.o \ -./source/ARMCM3_STM32/flash.o \ -./source/ARMCM3_STM32/nvm.o \ -./source/ARMCM3_STM32/timer.o \ -./source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./source/ARMCM3_STM32/can.d \ -./source/ARMCM3_STM32/cpu.d \ -./source/ARMCM3_STM32/flash.d \ -./source/ARMCM3_STM32/nvm.d \ -./source/ARMCM3_STM32/timer.d \ -./source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/a0ce1c04e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/a0ce1c04e91c00111565e8bbe12141cd deleted file mode 100644 index 6dbfa55a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/a0ce1c04e91c00111565e8bbe12141cd +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -Prog.hex \ - -SECONDARY_LIST += \ -Prog.lst \ - -SECONDARY_SIZE += \ -Prog.siz \ - - -# All Target -all: Prog.elf secondary-outputs - -# Tool invocations -Prog.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,Prog.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "Prog.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -Prog.hex: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec Prog.elf test - @echo 'Finished building: $@' - @echo ' ' - -Prog.lst: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S Prog.elf > "Prog.lst" - @echo 'Finished building: $@' - @echo ' ' - -Prog.siz: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley Prog.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) Prog.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/f03817a2221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/f03817a2221d0011116edf0151d9d887 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/f03817a2221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/207668b00a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/207668b00a1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/207668b00a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/c0f25a9d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/c0f25a9d091d00111358d2931fee7772 deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/c0f25a9d091d00111358d2931fee7772 +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/f0bfead70a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/f0bfead70a1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/f0bfead70a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/b0eb5ada011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/b0eb5ada011d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/b0eb5ada011d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/b11c4dedf31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/b11c4dedf31c00111565e8bbe12141cd deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/b11c4dedf31c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/b04ff2890b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/b04ff2890b1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/b04ff2890b1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/f0cef85c041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/f0cef85c041d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/f0cef85c041d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/30535356e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/30535356e71c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/8041d33fea1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/8041d33fea1c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/8000d746201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/8000d746201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/c0f857440a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/c0f857440a1d00111358d2931fee7772 deleted file mode 100644 index d5b04534..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/c0f857440a1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - unsigned long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - putch(sign); - txcharcnt++; - } - if (x) - { - putch ('0'); - txcharcnt++; - putch(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - putch (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - putch (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - putch (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/d08faaf0041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/d08faaf0041d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/d08faaf0041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/f014cb9ff41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/f014cb9ff41c00111565e8bbe12141cd deleted file mode 100644 index 9ff98b6c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/f014cb9ff41c00111565e8bbe12141cd +++ /dev/null @@ -1,161 +0,0 @@ -/**************************************************************************************** -| Description: bootloader interrupt vector table source file -| File Name: vectors.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "boot.h" /* bootloader generic header */ - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -extern blt_int32u _estack; /* stack end address (memory.x) */ - - -/**************************************************************************************** -** NAME: UnusedISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Catch-all for unused interrrupt service routines. -** -****************************************************************************************/ -void UnusedISR(void) -{ - /* unexpected interrupt occured, so trigger an assertion to halt the system */ - ASSERT_RT(BLT_FALSE); -} /*** end of UnusedISR ***/ - - -/**************************************************************************************** -* I N T E R R U P T V E C T O R T A B L E -****************************************************************************************/ -extern void reset_handler(void); /* implemented in cstart.c */ - -typedef union -{ - void (*func)(void); /* for ISR function pointers */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ - -__attribute__ ((section(".isr_vector"))) -const tIsrFunc _vectab[] = -{ - { .ptr = (blt_int32u)&_estack }, /* the initial stack pointer */ - { reset_handler}, /* the reset handler */ - { UnusedISR}, /* NMI Handler */ - { UnusedISR}, /* Hard Fault Handler */ - { UnusedISR}, /* MPU Fault Handler */ - { UnusedISR}, /* Bus Fault Handler */ - { UnusedISR}, /* Usage Fault Handler */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* SVCall Handler */ - { UnusedISR}, /* Debug Monitor Handler */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* PendSV Handler */ - { UnusedISR}, /* SysTick Handler */ - { UnusedISR}, /* Window Watchdog */ - { UnusedISR}, /* PVD through EXTI Line detect */ - { UnusedISR}, /* Tamper */ - { UnusedISR}, /* RTC */ - { UnusedISR}, /* Flash */ - { UnusedISR}, /* RCC */ - { UnusedISR}, /* EXTI Line 0 */ - { UnusedISR}, /* EXTI Line 1 */ - { UnusedISR}, /* EXTI Line 2 */ - { UnusedISR}, /* EXTI Line 3 */ - { UnusedISR}, /* EXTI Line 4 */ - { UnusedISR}, /* DMA1 Channel 1 */ - { UnusedISR}, /* DMA1 Channel 2 */ - { UnusedISR}, /* DMA1 Channel 3 */ - { UnusedISR}, /* DMA1 Channel 4 */ - { UnusedISR}, /* DMA1 Channel 5 */ - { UnusedISR}, /* DMA1 Channel 6 */ - { UnusedISR}, /* DMA1 Channel 7 */ - { UnusedISR}, /* ADC1 and ADC2 */ - { UnusedISR}, /* CAN1 TX */ - { UnusedISR}, /* CAN1 RX0 */ - { UnusedISR}, /* CAN1 RX1 */ - { UnusedISR}, /* CAN1 SCE */ - { UnusedISR}, /* EXTI Line 9..5 */ - { UnusedISR}, /* TIM1 Break */ - { UnusedISR}, /* TIM1 Update */ - { UnusedISR}, /* TIM1 Trigger and Commutation */ - { UnusedISR}, /* TIM1 Capture Compare */ - { UnusedISR}, /* TIM2 */ - { UnusedISR}, /* TIM3 */ - { UnusedISR}, /* TIM4 */ - { UnusedISR}, /* I2C1 Event */ - { UnusedISR}, /* I2C1 Error */ - { UnusedISR}, /* I2C2 Event */ - { UnusedISR}, /* I2C1 Error */ - { UnusedISR}, /* SPI1 */ - { UnusedISR}, /* SPI2 */ - { UnusedISR}, /* USART1 */ - { UnusedISR}, /* USART2 */ - { UnusedISR}, /* USART3 */ - { UnusedISR}, /* EXTI Line 15..10 */ - { UnusedISR}, /* RTC alarm through EXTI line */ - { UnusedISR}, /* USB OTG FS Wakeup */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* Reserved */ - { UnusedISR}, /* TIM5 */ - { UnusedISR}, /* SPI3 */ - { UnusedISR}, /* UART4 */ - { UnusedISR}, /* UART5 */ - { UnusedISR}, /* TIM6 */ - { UnusedISR}, /* TIM7 */ - { UnusedISR}, /* DMA2 Channel1 */ - { UnusedISR}, /* DMA2 Channel2 */ - { UnusedISR}, /* DMA2 Channel3 */ - { UnusedISR}, /* DMA2 Channel4 */ - { UnusedISR}, /* DMA2 Channel5 */ - { UnusedISR}, /* Ethernet */ - { UnusedISR}, /* Ethernet Wakeup */ - { UnusedISR}, /* CAN2 TX */ - { UnusedISR}, /* CAN2 RX0 */ - { UnusedISR}, /* CAN2 RX1 */ - { UnusedISR}, /* CAN2 SCE */ - { UnusedISR} /* USB OTG FS */ -}; - - -/************************************ end of hw.c **************************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/30eb7620021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/30eb7620021d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/30eb7620021d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60b42a5d041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60b42a5d041d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60b42a5d041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60b814faf61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60b814faf61c00111565e8bbe12141cd deleted file mode 100644 index 6ecc6da6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60b814faf61c00111565e8bbe12141cd +++ /dev/null @@ -1,166 +0,0 @@ -/**************************************************************************************** -| Description: bootloader interrupt vector table source file -| File Name: vectors.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* External functions -****************************************************************************************/ -extern void reset_handler(void); /* implemented in cstart.c */ - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -extern unsigned long _estack; /* stack end address (memory.x) */ - - -/**************************************************************************************** -** NAME: UnusedISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Catch-all for unused interrrupt service routines. -** -****************************************************************************************/ -void UnusedISR(void) -{ - /* unexpected interrupt occured, so halt the system */ - while (1) { ; } -} /*** end of UnusedISR ***/ - - -/**************************************************************************************** -* I N T E R R U P T V E C T O R T A B L E -****************************************************************************************/ -typedef union -{ - void (*func)(void); /* for ISR function pointers */ - unsigned long ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ - -__attribute__ ((section(".isr_vector"))) -const tIsrFunc _vectab[] = -{ - { .ptr = (unsigned long)&_estack }, /* the initial stack pointer */ - { reset_handler }, /* the reset handler */ - { UnusedISR }, /* NMI Handler */ - { UnusedISR }, /* Hard Fault Handler */ - { UnusedISR }, /* MPU Fault Handler */ - { UnusedISR }, /* Bus Fault Handler */ - { UnusedISR }, /* Usage Fault Handler */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* SVCall Handler */ - { UnusedISR }, /* Debug Monitor Handler */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* PendSV Handler */ - TimerISRHandler, /* SysTick Handler */ - { UnusedISR }, /* Window Watchdog */ - { UnusedISR }, /* PVD through EXTI Line detect */ - { UnusedISR }, /* Tamper */ - { UnusedISR }, /* RTC */ - { UnusedISR }, /* Flash */ - { UnusedISR }, /* RCC */ - { UnusedISR }, /* EXTI Line 0 */ - { UnusedISR }, /* EXTI Line 1 */ - { UnusedISR }, /* EXTI Line 2 */ - { UnusedISR }, /* EXTI Line 3 */ - { UnusedISR }, /* EXTI Line 4 */ - { UnusedISR }, /* DMA1 Channel 1 */ - { UnusedISR }, /* DMA1 Channel 2 */ - { UnusedISR }, /* DMA1 Channel 3 */ - { UnusedISR }, /* DMA1 Channel 4 */ - { UnusedISR }, /* DMA1 Channel 5 */ - { UnusedISR }, /* DMA1 Channel 6 */ - { UnusedISR }, /* DMA1 Channel 7 */ - { UnusedISR }, /* ADC1 and ADC2 */ - { UnusedISR }, /* CAN1 TX */ - { UnusedISR }, /* CAN1 RX0 */ - { UnusedISR }, /* CAN1 RX1 */ - { UnusedISR }, /* CAN1 SCE */ - { UnusedISR }, /* EXTI Line 9..5 */ - { UnusedISR }, /* TIM1 Break */ - { UnusedISR }, /* TIM1 Update */ - { UnusedISR }, /* TIM1 Trigger and Commutation */ - { UnusedISR }, /* TIM1 Capture Compare */ - { UnusedISR }, /* TIM2 */ - { UnusedISR }, /* TIM3 */ - { UnusedISR }, /* TIM4 */ - { UnusedISR }, /* I2C1 Event */ - { UnusedISR }, /* I2C1 Error */ - { UnusedISR }, /* I2C2 Event */ - { UnusedISR }, /* I2C1 Error */ - { UnusedISR }, /* SPI1 */ - { UnusedISR }, /* SPI2 */ - { UnusedISR }, /* USART1 */ - { UnusedISR }, /* USART2 */ - { UnusedISR }, /* USART3 */ - { UnusedISR }, /* EXTI Line 15..10 */ - { UnusedISR }, /* RTC alarm through EXTI line */ - { UnusedISR }, /* USB OTG FS Wakeup */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* TIM5 */ - { UnusedISR }, /* SPI3 */ - { UnusedISR }, /* UART4 */ - { UnusedISR }, /* UART5 */ - { UnusedISR }, /* TIM6 */ - { UnusedISR }, /* TIM7 */ - { UnusedISR }, /* DMA2 Channel1 */ - { UnusedISR }, /* DMA2 Channel2 */ - { UnusedISR }, /* DMA2 Channel3 */ - { UnusedISR }, /* DMA2 Channel4 */ - { UnusedISR }, /* DMA2 Channel5 */ - { UnusedISR }, /* Ethernet */ - { UnusedISR }, /* Ethernet Wakeup */ - { UnusedISR }, /* CAN2 TX */ - { UnusedISR }, /* CAN2 RX0 */ - { UnusedISR }, /* CAN2 RX1 */ - { UnusedISR }, /* CAN2 SCE */ - { UnusedISR }, /* USB OTG FS */ - { (void*)0x55AA11EE }, /* Reserved for OpenBLT checksum */ -}; - - -/************************************ end of hw.c **************************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60c407570e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60c407570e1d00111358d2931fee7772 deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60c407570e1d00111358d2931fee7772 +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/7072a4b5091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/7072a4b5091d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/7072a4b5091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/a0e2173efa1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/a0e2173efa1c00111358d2931fee7772 deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/a0e2173efa1c00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/e00b4f9d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/e00b4f9d091d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/e00b4f9d091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/40a3541e091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/40a3541e091d00111358d2931fee7772 deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/801a6152201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/801a6152201d00111c63a4b3c7bd9f5b deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/801a6152201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/104b07e30a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/104b07e30a1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/104b07e30a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/c0d1c1ca041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/c0d1c1ca041d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/c0d1c1ca041d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/703e1950011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/703e1950011d00111358d2931fee7772 deleted file mode 100644 index 054c26dd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/703e1950011d00111358d2931fee7772 +++ /dev/null @@ -1,352 +0,0 @@ -/**************************************************************************************** -| Description: demo program bootloader interface source file -| File Name: boot.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: BootActivate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Bootloader activation function. -** -****************************************************************************************/ -static void BootActivate(void) -{ - void (*pEntryFromProgFnc)(void); - - /* set pointer to the address of function EntryFromProg in the bootloader. note that - * 1 is added to this address to enable a switch from Thumb2 to Thumb mode - */ - pEntryFromProgFnc = (void*)0x08000150 + 1; - /* call EntryFromProg to activate the bootloader. */ - pEntryFromProgFnc(); -} /*** end of BootActivate ***/ - - -#if (BOOT_COM_UART_ENABLE > 0) -/**************************************************************************************** -* U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data); - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - UartInit(BOOT_COM_UART_BAUDRATE); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - static unsigned char xcpCtoReqPacket[BOOT_COM_UART_RX_MAX_DATA+1]; - static unsigned char xcpCtoRxLength; - static unsigned char xcpCtoRxInProgress = 0; - - /* start of cto packet received? */ - if (xcpCtoRxInProgress == 0) - { - /* store the message length when received */ - xcpCtoReqPacket[0] = UartRxChar(0); - if (xcpCtoReqPacket[0] != -1) - { - /* indicate that a cto packet is being received */ - xcpCtoRxInProgress = 1; - - /* reset packet data count */ - xcpCtoRxLength = 0; - } - } - else - { - /* store the next packet byte */ - xcpCtoReqPacket[xcpCtoRxLength+1] = UartRxChar(0); - if (xcpCtoReqPacket[xcpCtoRxLength+1] != -1) - { - /* increment the packet data count */ - xcpCtoRxLength++; - - /* check to see if the entire packet was received */ - if (xcpCtoRxLength == xcpCtoReqPacket[0]) - { - /* done with cto packet reception */ - xcpCtoRxInProgress = 0; - - /* check if this was an XCP CONNECT command */ - if ((xcpCtoReqPacket[1] == 0xff) && (xcpCtoReqPacket[2] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } - } -} /*** end of BootComCheckActivationRequest ***/ - - -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: 1 if a byte was received, 0 otherwise. -** DESCRIPTION: Receives a communication interface byte if one is present. -** -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data) -{ - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == SET) - { - /* retrieve and store the newly received byte */ - *data = (unsigned char)USART_ReceiveData(USART2); - /* all done */ - return 1; - } - /* still here to no new byte received */ - return 0; -} /*** end of UartReceiveByte ***/ -#endif /* BOOT_COM_UART_ENABLE > 0 */ - - -#if (BOOT_COM_CAN_ENABLE > 0) -/**************************************************************************************** -* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Type definitions -****************************************************************************************/ -typedef struct t_can_bus_timing -{ - unsigned char tseg1; /* CAN time segment 1 */ - unsigned char tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta - * (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1. - * The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains - * possible and valid time quanta configurations with a sample point between 68..78%. - */ -static const tCanBusTiming canTiming[] = -{ /* TQ | TSEG1 | TSEG2 | SP */ - /* ------------------------- */ - { 5, 2 }, /* 8 | 5 | 2 | 75% */ - { 6, 2 }, /* 9 | 6 | 2 | 78% */ - { 6, 3 }, /* 10 | 6 | 3 | 70% */ - { 7, 3 }, /* 11 | 7 | 3 | 73% */ - { 8, 3 }, /* 12 | 8 | 3 | 75% */ - { 9, 3 }, /* 13 | 9 | 3 | 77% */ - { 9, 4 }, /* 14 | 9 | 4 | 71% */ - { 10, 4 }, /* 15 | 10 | 4 | 73% */ - { 11, 4 }, /* 16 | 11 | 4 | 75% */ - { 12, 4 }, /* 17 | 12 | 4 | 76% */ - { 12, 5 }, /* 18 | 12 | 5 | 72% */ - { 13, 5 }, /* 19 | 13 | 5 | 74% */ - { 14, 5 }, /* 20 | 14 | 5 | 75% */ - { 15, 5 }, /* 21 | 15 | 5 | 76% */ - { 15, 6 }, /* 22 | 15 | 6 | 73% */ - { 16, 6 }, /* 23 | 16 | 6 | 74% */ - { 16, 7 }, /* 24 | 16 | 7 | 71% */ - { 16, 8 } /* 25 | 16 | 8 | 68% */ -}; - - -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 will be stored. -** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise. -** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus -** timing configuration. -** -****************************************************************************************/ -static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, - unsigned char *tseg1, unsigned char *tseg2) -{ - unsigned char cnt; - - /* loop through all possible time quanta configurations to find a match */ - for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) - { - if (((BOOT_CPU_SYSTEM_SPEED_KHZ/2) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) - { - /* compute the prescaler that goes with this TQ configuration */ - *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/2)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); - - /* make sure the prescaler is valid */ - if ( (*prescaler > 0) && (*prescaler <= 1024) ) - { - /* store the bustiming configuration */ - *tseg1 = canTiming[cnt].tseg1; - *tseg2 = canTiming[cnt].tseg2; - /* found a good bus timing configuration */ - return 1; - } - } - } - /* could not find a good bus timing configuration */ - return 0; -} /*** end of CanGetSpeedConfig ***/ - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - CAN_InitTypeDef CAN_InitStructure; - CAN_FilterInitTypeDef CAN_FilterInitStructure; - unsigned short prescaler; - unsigned char tseg1, tseg2; - - /* GPIO clock enable */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); - /* Configure CAN pin: RX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Configure CAN pin: TX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Remap CAN1 pins to PortB */ - GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE); - /* CAN1 Periph clock enable */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); - /* CAN register init */ - CAN_DeInit(CAN1); - CAN_StructInit(&CAN_InitStructure); - /* obtain the bittiming configuration for this baudrate */ - CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); - /* CAN controller init */ - CAN_InitStructure.CAN_TTCM = DISABLE; - CAN_InitStructure.CAN_ABOM = DISABLE; - CAN_InitStructure.CAN_AWUM = DISABLE; - CAN_InitStructure.CAN_NART = DISABLE; - CAN_InitStructure.CAN_RFLM = DISABLE; - CAN_InitStructure.CAN_TXFP = DISABLE; - CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; - /* CAN Baudrate init */ - CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; - CAN_InitStructure.CAN_BS1 = tseg1 - 1; - CAN_InitStructure.CAN_BS2 = tseg2 - 1; - CAN_InitStructure.CAN_Prescaler = prescaler; - CAN_Init(CAN1, &CAN_InitStructure); - /* CAN filter init - receive all messages */ - CAN_FilterInitStructure.CAN_FilterNumber = 0; - CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; - CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; - CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; - CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; - CAN_FilterInit(&CAN_FilterInitStructure); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - CanRxMsg RxMessage; - - /* check if a new message was received */ - if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0) - { - /* receive the message */ - CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); - if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) - { - /* check if this was an XCP CONNECT command */ - if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_CAN_ENABLE > 0 */ - - -/*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/a0eecc76f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/a0eecc76f61c00111565e8bbe12141cd deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/a0eecc76f61c00111565e8bbe12141cd +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/b151e9450b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/b151e9450b1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/b151e9450b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/e047f72c091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/e047f72c091d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/e047f72c091d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/41f7b2000b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/41f7b2000b1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/41f7b2000b1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/5003797c201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/5003797c201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/00d76856e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/00d76856e71c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/c0a0b9440a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/c0a0b9440a1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/c0a0b9440a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/d0c6539d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/d0c6539d091d00111358d2931fee7772 deleted file mode 100644 index 0e83335d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/d0c6539d091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/803997220a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/803997220a1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/803997220a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/c007e7450b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/c007e7450b1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/c007e7450b1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/e0192d3c0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/e0192d3c0b1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/e0192d3c0b1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/1000d8d9011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/1000d8d9011d00111358d2931fee7772 deleted file mode 100644 index 2e6fee4f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/1000d8d9011d00111358d2931fee7772 +++ /dev/null @@ -1,173 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } - - -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - - - - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/20ea40f1091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/20ea40f1091d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/20ea40f1091d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/408f6cd70a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/408f6cd70a1d00111358d2931fee7772 deleted file mode 100644 index 4e3ee517..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/408f6cd70a1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit ((char)*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/b0600371e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/b0600371e91c00111565e8bbe12141cd deleted file mode 100644 index ad2dac46..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/b0600371e91c00111565e8bbe12141cd +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/c0fa1089e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/c0fa1089e71c00111565e8bbe12141cd deleted file mode 100644 index 89e6edca..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/c0fa1089e71c00111565e8bbe12141cd +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/d055519d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/d055519d091d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/d055519d091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/20d944a1f31c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/20d944a1f31c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/90f20069041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/90f20069041d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/90f20069041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/f0c714a2221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/f0c714a2221d0011116edf0151d9d887 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/f0c714a2221d0011116edf0151d9d887 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/00e5d0890b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/00e5d0890b1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/00e5d0890b1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/80ef4f98201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/80ef4f98201d00111c63a4b3c7bd9f5b deleted file mode 100644 index f2938bba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/80ef4f98201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./source/ARMCM3_STM32/can.o \ -./source/ARMCM3_STM32/cpu.o \ -./source/ARMCM3_STM32/flash.o \ -./source/ARMCM3_STM32/nvm.o \ -./source/ARMCM3_STM32/timer.o \ -./source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./source/ARMCM3_STM32/can.d \ -./source/ARMCM3_STM32/cpu.d \ -./source/ARMCM3_STM32/flash.d \ -./source/ARMCM3_STM32/nvm.d \ -./source/ARMCM3_STM32/timer.d \ -./source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/b01eb08ce01c00111cadaab22f5679ad b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/b01eb08ce01c00111cadaab22f5679ad deleted file mode 100644 index ced41fea..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/b01eb08ce01c00111cadaab22f5679ad +++ /dev/null @@ -1,161 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/704d0f97051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/704d0f97051d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/704d0f97051d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/e0d25bc3ec1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/e0d25bc3ec1c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/e0d25bc3ec1c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/10a889f0091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/10a889f0091d00111358d2931fee7772 deleted file mode 100644 index 196f9a5b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/10a889f0091d00111358d2931fee7772 +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************************** -| Description: UART driver source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: baudrate communication speed in bits/sec -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART interface for the selected communication speed. -** -****************************************************************************************/ -void UartInit(unsigned long baudrate) -{ - GPIO_InitTypeDef GPIO_InitStruct; - USART_InitTypeDef USART_InitStruct; - - /* enable UART peripheral clock */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); - /* enable GPIO peripheral clock for transmitter and receiver pins */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); - /* configure USART Tx as alternate function push-pull */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* Configure USART Rx as alternate function input floating */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* configure UART communcation parameters */ - USART_InitStruct.USART_BaudRate = baudrate; - USART_InitStruct.USART_WordLength = USART_WordLength_8b; - USART_InitStruct.USART_StopBits = USART_StopBits_1; - USART_InitStruct.USART_Parity = USART_Parity_No; - USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_Init(USART2, &USART_InitStruct); - /* enable UART */ - USART_Cmd(USART2, ENABLE); -} /*** end of UartInit ***/ - - -/**************************************************************************************** -** NAME: UartTxChar -** PARAMETER: ch character to transmit -** RETURN VALUE: the transmitted character. -** DESCRIPTION: Transmits a character through the UART interface. -** -****************************************************************************************/ -int UartTxChar(int ch) -{ - /* wait for transmit completion of the previous character, if any */ - //while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET) { ; } - /* transmit the character */ - //USART_SendData(USART2, (unsigned char)ch); - /* for stdio compatibility */ - return ch; -} /*** end of UartTxChar ***/ - - -/**************************************************************************************** -** NAME: UartRxChar -** PARAMETER: blocking 1 to block until a character was received, 0 otherwise. -** RETURN VALUE: the value of the received character or -1. -** DESCRIPTION: Receives a character from the UART interface. -** -****************************************************************************************/ -int UartRxChar(unsigned char blocking) -{ - if (!blocking) - { - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) - { - return -1; - } - } - else - { - /* wait for reception of byte */ - while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) { ; } - } - /* retrieve and return the newly received byte */ - return USART_ReceiveData(USART2); -} /*** end of UartRxChar ***/ - - -/*********************************** end of uart.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/30f735ffe91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/30f735ffe91c00111565e8bbe12141cd deleted file mode 100644 index ad2dac46..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/30f735ffe91c00111565e8bbe12141cd +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/c0efd52e051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/c0efd52e051d00111358d2931fee7772 deleted file mode 100644 index 69d5f1f3..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/c0efd52e051d00111358d2931fee7772 +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************************** -| Description: UART driver source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: baudrate communication speed in bits/sec -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART interface for the selected communication speed. -** -****************************************************************************************/ -void UartInit(unsigned long baudrate) -{ - GPIO_InitTypeDef GPIO_InitStruct; - USART_InitTypeDef USART_InitStruct; - - /* enable UART peripheral clock */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); - /* enable GPIO peripheral clock for transmitter and receiver pins */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); - /* configure USART Tx as alternate function push-pull */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* Configure USART Rx as alternate function input floating */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* configure UART communcation parameters */ - USART_InitStruct.USART_BaudRate = baudrate; - USART_InitStruct.USART_WordLength = USART_WordLength_8b; - USART_InitStruct.USART_StopBits = USART_StopBits_1; - USART_InitStruct.USART_Parity = USART_Parity_No; - USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_Init(USART2, &USART_InitStruct); - /* enable UART */ - USART_Cmd(USART2, ENABLE); -} /*** end of UartInit ***/ - - -/**************************************************************************************** -** NAME: UartTxChar -** PARAMETER: ch character to transmit -** RETURN VALUE: the transmitted character. -** DESCRIPTION: Transmits a character through the UART interface. -** -****************************************************************************************/ -int UartTxChar(int ch) -{ - /* wait for transmit completion of the previous character, if any */ - while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET) { ; } - /* transmit the character */ - USART_SendData(USART2, (unsigned char)ch); - /* for stdio compatibility */ - return ch; -} /*** end of UartTxChar ***/ - - -/**************************************************************************************** -** NAME: UartRxChar -** PARAMETER: blocking 1 to block until a character was received, 0 otherwise. -** RETURN VALUE: the value of the received character or -1. -** DESCRIPTION: Receives a character from the UART interface. -** -****************************************************************************************/ -int UartRxChar(unsigned char blocking) -{ - if (!blocking) - { - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) - { - return -1; - } - } - else - { - /* wait for reception of byte */ - while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) { ; } - } - /* retrieve and return the newly received byte */ - return USART_ReceiveData(USART2); -} /*** end of UartRxChar ***/ - - -/*********************************** end of uart.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/e0494ada011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/e0494ada011d00111358d2931fee7772 deleted file mode 100644 index 253654d4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/e0494ada011d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/10be26570e1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/10be26570e1d00111358d2931fee7772 deleted file mode 100644 index f2938bba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/10be26570e1d00111358d2931fee7772 +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./source/ARMCM3_STM32/can.o \ -./source/ARMCM3_STM32/cpu.o \ -./source/ARMCM3_STM32/flash.o \ -./source/ARMCM3_STM32/nvm.o \ -./source/ARMCM3_STM32/timer.o \ -./source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./source/ARMCM3_STM32/can.d \ -./source/ARMCM3_STM32/cpu.d \ -./source/ARMCM3_STM32/flash.d \ -./source/ARMCM3_STM32/nvm.d \ -./source/ARMCM3_STM32/timer.d \ -./source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/20878e7c201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/20878e7c201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/5049fb190b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/5049fb190b1d00111358d2931fee7772 deleted file mode 100644 index 600446a6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/5049fb190b1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); /*format*/c->width++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/e0e185f9221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/e0e185f9221d0011116edf0151d9d887 deleted file mode 100644 index a4f03e25..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/e0e185f9221d0011116edf0151d9d887 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/4042987b0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/4042987b0a1d00111358d2931fee7772 deleted file mode 100644 index 847a68a8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/4042987b0a1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - putch(sign); - txcharcnt++; - } - if (x) - { - putch ('0'); - txcharcnt++; - putch(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - putch (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - putch (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - putch (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/c078792d201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/c078792d201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/c0f0b0d10d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/c0f0b0d10d1d00111358d2931fee7772 deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/c0f0b0d10d1d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/e0840789e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/e0840789e71c00111565e8bbe12141cd deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/e0840789e71c00111565e8bbe12141cd +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/403b5f1a0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/403b5f1a0b1d00111358d2931fee7772 deleted file mode 100644 index 24b040da..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/403b5f1a0b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/d07589b9fe1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/d07589b9fe1c00111358d2931fee7772 deleted file mode 100644 index b5b1d29b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/d07589b9fe1c00111358d2931fee7772 +++ /dev/null @@ -1,164 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - printf("Woohoo!"); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/30ee6b2f051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/30ee6b2f051d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/30ee6b2f051d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/e0adffc0011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/e0adffc0011d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/e0adffc0011d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/10bb6e99221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/10bb6e99221d0011116edf0151d9d887 deleted file mode 100644 index 9ee3671f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/10bb6e99221d0011116edf0151d9d887 +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include Source/ARMCM3_STM32/GCC/subdir.mk --include Source/ARMCM3_STM32/subdir.mk --include Source/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/30f6631a0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/30f6631a0b1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/30f6631a0b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/60a5d4d10d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/60a5d4d10d1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/60a5d4d10d1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/702684e20c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/702684e20c1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/702684e20c1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f0fc53f1091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f0fc53f1091d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f0fc53f1091d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/e03be3fa0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/e03be3fa0a1d00111358d2931fee7772 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/e03be3fa0a1d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ea/f04a812f051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ea/f04a812f051d00111358d2931fee7772 deleted file mode 100644 index 91772376..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ea/f04a812f051d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/0001ce1f021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/0001ce1f021d00111358d2931fee7772 deleted file mode 100644 index 054c26dd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/0001ce1f021d00111358d2931fee7772 +++ /dev/null @@ -1,352 +0,0 @@ -/**************************************************************************************** -| Description: demo program bootloader interface source file -| File Name: boot.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: BootActivate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Bootloader activation function. -** -****************************************************************************************/ -static void BootActivate(void) -{ - void (*pEntryFromProgFnc)(void); - - /* set pointer to the address of function EntryFromProg in the bootloader. note that - * 1 is added to this address to enable a switch from Thumb2 to Thumb mode - */ - pEntryFromProgFnc = (void*)0x08000150 + 1; - /* call EntryFromProg to activate the bootloader. */ - pEntryFromProgFnc(); -} /*** end of BootActivate ***/ - - -#if (BOOT_COM_UART_ENABLE > 0) -/**************************************************************************************** -* U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data); - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - UartInit(BOOT_COM_UART_BAUDRATE); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - static unsigned char xcpCtoReqPacket[BOOT_COM_UART_RX_MAX_DATA+1]; - static unsigned char xcpCtoRxLength; - static unsigned char xcpCtoRxInProgress = 0; - - /* start of cto packet received? */ - if (xcpCtoRxInProgress == 0) - { - /* store the message length when received */ - xcpCtoReqPacket[0] = UartRxChar(0); - if (xcpCtoReqPacket[0] != -1) - { - /* indicate that a cto packet is being received */ - xcpCtoRxInProgress = 1; - - /* reset packet data count */ - xcpCtoRxLength = 0; - } - } - else - { - /* store the next packet byte */ - xcpCtoReqPacket[xcpCtoRxLength+1] = UartRxChar(0); - if (xcpCtoReqPacket[xcpCtoRxLength+1] != -1) - { - /* increment the packet data count */ - xcpCtoRxLength++; - - /* check to see if the entire packet was received */ - if (xcpCtoRxLength == xcpCtoReqPacket[0]) - { - /* done with cto packet reception */ - xcpCtoRxInProgress = 0; - - /* check if this was an XCP CONNECT command */ - if ((xcpCtoReqPacket[1] == 0xff) && (xcpCtoReqPacket[2] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } - } -} /*** end of BootComCheckActivationRequest ***/ - - -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: 1 if a byte was received, 0 otherwise. -** DESCRIPTION: Receives a communication interface byte if one is present. -** -****************************************************************************************/ -static unsigned char UartReceiveByte(unsigned char *data) -{ - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == SET) - { - /* retrieve and store the newly received byte */ - *data = (unsigned char)USART_ReceiveData(USART2); - /* all done */ - return 1; - } - /* still here to no new byte received */ - return 0; -} /*** end of UartReceiveByte ***/ -#endif /* BOOT_COM_UART_ENABLE > 0 */ - - -#if (BOOT_COM_CAN_ENABLE > 0) -/**************************************************************************************** -* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Type definitions -****************************************************************************************/ -typedef struct t_can_bus_timing -{ - unsigned char tseg1; /* CAN time segment 1 */ - unsigned char tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta - * (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1. - * The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains - * possible and valid time quanta configurations with a sample point between 68..78%. - */ -static const tCanBusTiming canTiming[] = -{ /* TQ | TSEG1 | TSEG2 | SP */ - /* ------------------------- */ - { 5, 2 }, /* 8 | 5 | 2 | 75% */ - { 6, 2 }, /* 9 | 6 | 2 | 78% */ - { 6, 3 }, /* 10 | 6 | 3 | 70% */ - { 7, 3 }, /* 11 | 7 | 3 | 73% */ - { 8, 3 }, /* 12 | 8 | 3 | 75% */ - { 9, 3 }, /* 13 | 9 | 3 | 77% */ - { 9, 4 }, /* 14 | 9 | 4 | 71% */ - { 10, 4 }, /* 15 | 10 | 4 | 73% */ - { 11, 4 }, /* 16 | 11 | 4 | 75% */ - { 12, 4 }, /* 17 | 12 | 4 | 76% */ - { 12, 5 }, /* 18 | 12 | 5 | 72% */ - { 13, 5 }, /* 19 | 13 | 5 | 74% */ - { 14, 5 }, /* 20 | 14 | 5 | 75% */ - { 15, 5 }, /* 21 | 15 | 5 | 76% */ - { 15, 6 }, /* 22 | 15 | 6 | 73% */ - { 16, 6 }, /* 23 | 16 | 6 | 74% */ - { 16, 7 }, /* 24 | 16 | 7 | 71% */ - { 16, 8 } /* 25 | 16 | 8 | 68% */ -}; - - -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 will be stored. -** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise. -** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus -** timing configuration. -** -****************************************************************************************/ -static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, - unsigned char *tseg1, unsigned char *tseg2) -{ - unsigned char cnt; - - /* loop through all possible time quanta configurations to find a match */ - for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) - { - if (((BOOT_CPU_SYSTEM_SPEED_KHZ/2) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) - { - /* compute the prescaler that goes with this TQ configuration */ - *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/2)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); - - /* make sure the prescaler is valid */ - if ( (*prescaler > 0) && (*prescaler <= 1024) ) - { - /* store the bustiming configuration */ - *tseg1 = canTiming[cnt].tseg1; - *tseg2 = canTiming[cnt].tseg2; - /* found a good bus timing configuration */ - return 1; - } - } - } - /* could not find a good bus timing configuration */ - return 0; -} /*** end of CanGetSpeedConfig ***/ - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - CAN_InitTypeDef CAN_InitStructure; - CAN_FilterInitTypeDef CAN_FilterInitStructure; - unsigned short prescaler; - unsigned char tseg1, tseg2; - - /* GPIO clock enable */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); - /* Configure CAN pin: RX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Configure CAN pin: TX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Remap CAN1 pins to PortB */ - GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE); - /* CAN1 Periph clock enable */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); - /* CAN register init */ - CAN_DeInit(CAN1); - CAN_StructInit(&CAN_InitStructure); - /* obtain the bittiming configuration for this baudrate */ - CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); - /* CAN controller init */ - CAN_InitStructure.CAN_TTCM = DISABLE; - CAN_InitStructure.CAN_ABOM = DISABLE; - CAN_InitStructure.CAN_AWUM = DISABLE; - CAN_InitStructure.CAN_NART = DISABLE; - CAN_InitStructure.CAN_RFLM = DISABLE; - CAN_InitStructure.CAN_TXFP = DISABLE; - CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; - /* CAN Baudrate init */ - CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; - CAN_InitStructure.CAN_BS1 = tseg1 - 1; - CAN_InitStructure.CAN_BS2 = tseg2 - 1; - CAN_InitStructure.CAN_Prescaler = prescaler; - CAN_Init(CAN1, &CAN_InitStructure); - /* CAN filter init - receive all messages */ - CAN_FilterInitStructure.CAN_FilterNumber = 0; - CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; - CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; - CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; - CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; - CAN_FilterInit(&CAN_FilterInitStructure); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - CanRxMsg RxMessage; - - /* check if a new message was received */ - if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0) - { - /* receive the message */ - CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); - if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) - { - /* check if this was an XCP CONNECT command */ - if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_CAN_ENABLE > 0 */ - - -/*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/c03b2aff071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/c03b2aff071d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/c03b2aff071d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/f012e064f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/f012e064f41c00111565e8bbe12141cd deleted file mode 100644 index 2701f2f6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/f012e064f41c00111565e8bbe12141cd +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hooks.c \ -../main.c - -OBJS += \ -./hooks.o \ -./main.o - -C_DEPS += \ -./hooks.d \ -./main.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/70f37ec50c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/70f37ec50c1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/70f37ec50c1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/d00106dae91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/d00106dae91c00111565e8bbe12141cd deleted file mode 100644 index 629fc8d9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/d00106dae91c00111565e8bbe12141cd +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.elf.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/d0f53098201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/d0f53098201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 571a949b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/d0f53098201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/assert.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/boot.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/com.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/cop.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - -OBJS += \ -./source/assert.o \ -./source/backdoor.o \ -./source/boot.o \ -./source/com.o \ -./source/cop.o \ -./source/xcp.o - -C_DEPS += \ -./source/assert.d \ -./source/backdoor.d \ -./source/boot.d \ -./source/com.d \ -./source/cop.d \ -./source/xcp.d - - -# Each subdirectory must supply rules for building sources it contributes -source/assert.o: D:/usr/feaser/software/OpenBLT/Target/Source/assert.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/backdoor.o: D:/usr/feaser/software/OpenBLT/Target/Source/backdoor.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/boot.o: D:/usr/feaser/software/OpenBLT/Target/Source/boot.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/com.o: D:/usr/feaser/software/OpenBLT/Target/Source/com.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/cop.o: D:/usr/feaser/software/OpenBLT/Target/Source/cop.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/xcp.o: D:/usr/feaser/software/OpenBLT/Target/Source/xcp.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/002ef43dfa1c00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/002ef43dfa1c00111358d2931fee7772 deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/002ef43dfa1c00111358d2931fee7772 +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/806d471a0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/806d471a0b1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/806d471a0b1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/a05f852d201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/a05f852d201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/a0e7443c0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/a0e7443c0b1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/a0e7443c0b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/f02a88fa071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/f02a88fa071d00111358d2931fee7772 deleted file mode 100644 index 1c25bfc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/f02a88fa071d00111358d2931fee7772 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/203376360a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/203376360a1d00111358d2931fee7772 deleted file mode 100644 index 847a68a8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/203376360a1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - putch(sign); - txcharcnt++; - } - if (x) - { - putch ('0'); - txcharcnt++; - putch(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - putch (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit (*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - putch (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - putch (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/60e5eb63e81c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/60e5eb63e81c00111565e8bbe12141cd deleted file mode 100644 index 22a98ffb..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/60e5eb63e81c00111565e8bbe12141cd +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -Prog.hex \ - -SECONDARY_LIST += \ -Prog.lst \ - -SECONDARY_SIZE += \ -Prog.siz \ - - -# All Target -all: Prog.elf secondary-outputs - -# Tool invocations -Prog.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,Prog.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "Prog.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -Prog.hex: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec Prog.elf "Prog.hex" - @echo 'Finished building: $@' - @echo ' ' - -Prog.lst: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S Prog.elf > "Prog.lst" - @echo 'Finished building: $@' - @echo ' ' - -Prog.siz: Prog.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley Prog.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) Prog.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/701d5f20021d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/701d5f20021d00111358d2931fee7772 deleted file mode 100644 index 253654d4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/701d5f20021d00111358d2931fee7772 +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d067eafa0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d067eafa0a1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d067eafa0a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/000604dae91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/000604dae91c00111565e8bbe12141cd deleted file mode 100644 index 1f51c221..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/000604dae91c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/60b62256201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/60b62256201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 6881f9bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/60b62256201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/60d1b496051d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/60d1b496051d00111358d2931fee7772 deleted file mode 100644 index 022aa137..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/60d1b496051d00111358d2931fee7772 +++ /dev/null @@ -1,37 +0,0 @@ -MEMORY -{ - FLASH (rx) : ORIGIN = 0x08002000, LENGTH = 120K - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K -} - -SECTIONS -{ - __STACKSIZE__ = 256; - - .text : - { - KEEP(*(.isr_vector)) - *(.text*) - *(.rodata*) - _etext = .; - } > FLASH - - .data : AT (ADDR(.text) + SIZEOF(.text)) - { - _data = .; - *(vtable) - *(.data*) - _edata = .; - } > SRAM - - .bss : - { - _bss = .; - *(.bss*) - *(COMMON) - _ebss = .; - _stack = .; - . = ALIGN(MAX(_stack + __STACKSIZE__ , .), 4); - _estack = .; - } > SRAM -} diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/d02a3bb6221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/d02a3bb6221d0011116edf0151d9d887 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/d02a3bb6221d0011116edf0151d9d887 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/f0206b56e71c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/f0206b56e71c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/60d53842221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/60d53842221d0011116edf0151d9d887 deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/60d53842221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/70ed4bb00a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/70ed4bb00a1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/70ed4bb00a1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/b08cc6ca041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/b08cc6ca041d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/b08cc6ca041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/d000adf0041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/d000adf0041d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/d000adf0041d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/2187c869ea1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/2187c869ea1c00111565e8bbe12141cd deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/40f7b2000b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/40f7b2000b1d00111358d2931fee7772 deleted file mode 100644 index 4c705491..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/40f7b2000b1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdio_mini.c - -OBJS += \ -./lib/stdio_mini.o - -C_DEPS += \ -./lib/stdio_mini.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/%.o: ../lib/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/50903d42221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/50903d42221d0011116edf0151d9d887 deleted file mode 100644 index b01dabc7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/50903d42221d0011116edf0151d9d887 +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include source/ARMCM3_STM32/GCC/subdir.mk --include source/ARMCM3_STM32/subdir.mk --include source/subdir.mk --include lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -openbtl_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -openbtl_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -openbtl_olimex_stm32p103.siz \ - - -# All Target -all: openbtl_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -openbtl_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -L"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -Wl,-Map,openbtl_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "openbtl_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -openbtl_olimex_stm32p103.hex: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec openbtl_olimex_stm32p103.elf openbtl_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.lst: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S openbtl_olimex_stm32p103.elf > "openbtl_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -openbtl_olimex_stm32p103.siz: openbtl_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley openbtl_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) openbtl_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/e0c92998201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/e0c92998201d00111c63a4b3c7bd9f5b deleted file mode 100644 index 3997be55..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/e0c92998201d00111c63a4b3c7bd9f5b +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -source \ -source/ARMCM3_STM32 \ -source/ARMCM3_STM32/GCC \ -. \ -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/b0284777eb1c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/b0284777eb1c00111565e8bbe12141cd deleted file mode 100644 index 348255d9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/b0284777eb1c00111565e8bbe12141cd +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************************** -| Description: Demo program C startup source file -| File Name: cstart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* External function protoypes -****************************************************************************************/ -extern int main(void); - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -/* these externals are declared by the linker */ -extern unsigned long _etext; -extern unsigned long _data; -extern unsigned long _edata; -extern unsigned long _bss; -extern unsigned long _ebss; -extern unsigned long _estack; - - -/**************************************************************************************** -** NAME: reset_handler -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset interrupt service routine. Configures the stack, initializes -** RAM and jumps to function main. -** -****************************************************************************************/ -void reset_handler(void) -{ - unsigned long *pSrc, *pDest; - - /* initialize stack pointer */ - __asm(" ldr r1, =_estack\n" - " mov sp, r1"); - /* copy the data segment initializers from flash to SRAM */ - pSrc = &_etext; - for(pDest = &_data; pDest < &_edata; ) - { - *pDest++ = *pSrc++; - } - /* zero fill the bss segment. this is done with inline assembly since this will - * clear the value of pDest if it is not kept in a register. - */ - __asm(" ldr r0, =_bss\n" - " ldr r1, =_ebss\n" - " mov r2, #0\n" - " .thumb_func\n" - "zero_loop:\n" - " cmp r0, r1\n" - " it lt\n" - " strlt r2, [r0], #4\n" - " blt zero_loop"); - /* start the software application by calling its entry point */ - main(); -} /*** end of reset_handler ***/ - - -/************************************ end of cstart.c **********************************/ \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/c0bc315e071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/c0bc315e071d00111358d2931fee7772 deleted file mode 100644 index ee4ce822..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/c0bc315e071d00111358d2931fee7772 +++ /dev/null @@ -1,210 +0,0 @@ -/**************************************************************************************** -| Description: Newlib system calls remapping source file -| File Name: syscalls.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include "uart.h" - - -/**************************************************************************************** -** NAME: _read_r -** PARAMETER: len number of character to read. -** RETURN VALUE: number of characters read -** DESCRIPTION: Reentrant function for reading data from a file. In this case the -** read is performed from the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _read_r(struct _reent *r, int file, void *ptr, size_t len) -{ - char c; - int i; - unsigned char *p; - - p = (unsigned char*)ptr; - - /* receive all characters with echo */ - for (i = 0; i < len; i++) - { - c = UartRxChar(1); - - *p++ = c; - UartTxChar(c); - - /* was this a \n newline code? */ - if (c == 0x0D && i <= (len - 2)) - { - /* automatically add cariage return after a new line */ - *p = 0x0A; - UartTxChar(0x0A); - return i + 2; - } - } - return i; -} /*** end of _read_r ***/ - - -/**************************************************************************************** -** NAME: _write_r -** PARAMETER: len number of character to write -** RETURN VALUE: number of characters written. -** DESCRIPTION: Reentrant function for writing data from a file. In this case the -** write is performed to the UART interface, so only the len parameter -** is used. -** -****************************************************************************************/ -_ssize_t _write_r(struct _reent *r, int file, const void *ptr, size_t len) -{ - int i; - const unsigned char *p; - - p = (const unsigned char*) ptr; - - /* transmit all characters */ - for (i = 0; i < len; i++) - { - if (*p == '\n' ) - { - /* automatically add cariage return after a new line */ - UartTxChar('\r'); - } - UartTxChar(*p++); - } - - return len; -} /*** end of _write_r ***/ - - -/**************************************************************************************** -** NAME: _close_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for closing a file. Since UART is used, no further -** action is required here. -** -****************************************************************************************/ -int _close_r(struct _reent *r, int file) -{ - return 0; -} /*** end of _close_r ***/ - - -/**************************************************************************************** -** NAME: _lseek_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for obtaining the file pointer. Since UART is -** used, no further action is required here. -** -****************************************************************************************/ -_off_t _lseek_r(struct _reent *r, int file, _off_t ptr, int dir) -{ - /* always at the beginning of the file */ - return (_off_t)0; -} /*** end of _lseek_r ***/ - - -/**************************************************************************************** - * -** NAME: _fstat_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reentrant function for setting the device mode. -** -****************************************************************************************/ -int _fstat_r(struct _reent *r, int file, struct stat *st) -{ - /* set as character device */ - st->st_mode = S_IFCHR; - return 0; -} /*** end of _fstat_r ***/ - - - -/**************************************************************************************** -** NAME: _isatty_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Not supported -** -****************************************************************************************/ -int _isatty_r(struct _reent *r, int file) -{ - return 1; -} /*** end of _isatty_r ***/ - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static char *heap_ptr = NULL; -static char heap[512]; - - -/**************************************************************************************** -** NAME: _sbrk_r -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Increments the heap pointer. -** -****************************************************************************************/ -void * _sbrk_r(struct _reent *_s_r, ptrdiff_t nbytes) -{ - char *base; - - /* initialize the heap pointer if not yet done */ - if (heap_ptr == NULL) - { - /* set it to the current end of the heap */ - heap_ptr = &heap[0]; - } - - /* check if there is still room on the heap for this allocation */ - if ((unsigned long)(heap_ptr + nbytes) > (unsigned long)(heap + sizeof(heap))) - { - /* cannot allocate */ - return NULL; - } - - /* remember current pointer value for the return value */ - base = heap_ptr; /* Point to end of heap. */ - /* allocate the */ - heap_ptr += nbytes; /* Increase heap. */ - - return base; /* Return pointer to start of new heap area. */ -} /*** end of _sbrk_r ***/ - - -/*********************************** end of syscalls.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/f09ec2e90a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/f09ec2e90a1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/f09ec2e90a1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/5163b95e071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/5163b95e071d00111358d2931fee7772 deleted file mode 100644 index 67b72e37..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/5163b95e071d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/304e0831071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/304e0831071d00111358d2931fee7772 deleted file mode 100644 index 2ecf29a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/304e0831071d00111358d2931fee7772 +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/90d9919c0d1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/90d9919c0d1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/90d9919c0d1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/f0ba81fa0a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/f0ba81fa0a1d00111358d2931fee7772 deleted file mode 100644 index 660a606a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f6/f0ba81fa0a1d00111358d2931fee7772 +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit ((const char)*format); (char *)format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit (*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/00eeac3d091d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/00eeac3d091d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/00eeac3d091d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/3067661a0b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/3067661a0b1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/3067661a0b1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/e06f36b6221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/e06f36b6221d0011116edf0151d9d887 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/e06f36b6221d0011116edf0151d9d887 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/207890f0041d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/207890f0041d00111358d2931fee7772 deleted file mode 100644 index 085f1e02..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/207890f0041d00111358d2931fee7772 +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../boot.c \ -../cstart.c \ -../irq.c \ -../led.c \ -../main.c \ -../syscalls.c \ -../timer.c \ -../uart.c \ -../vectors.c - -OBJS += \ -./boot.o \ -./cstart.o \ -./irq.o \ -./led.o \ -./main.o \ -./syscalls.o \ -./timer.o \ -./uart.o \ -./vectors.o - -C_DEPS += \ -./boot.d \ -./cstart.d \ -./irq.d \ -./led.d \ -./main.d \ -./syscalls.d \ -./timer.d \ -./uart.d \ -./vectors.d - - -# Each subdirectory must supply rules for building sources it contributes -%.o: ../%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/702cde46201d00111c63a4b3c7bd9f5b b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/702cde46201d00111c63a4b3c7bd9f5b deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/40bb12b6221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/40bb12b6221d0011116edf0151d9d887 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/40bb12b6221d0011116edf0151d9d887 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/806b7fe20c1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/806b7fe20c1d00111358d2931fee7772 deleted file mode 100644 index 21358a36..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/806b7fe20c1d00111358d2931fee7772 +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.o: ../lib/stdperiphlib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/f0aebe83f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/f0aebe83f61c00111565e8bbe12141cd deleted file mode 100644 index f2938bba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/f0aebe83f61c00111565e8bbe12141cd +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c \ -D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - -OBJS += \ -./source/ARMCM3_STM32/can.o \ -./source/ARMCM3_STM32/cpu.o \ -./source/ARMCM3_STM32/flash.o \ -./source/ARMCM3_STM32/nvm.o \ -./source/ARMCM3_STM32/timer.o \ -./source/ARMCM3_STM32/uart.o - -C_DEPS += \ -./source/ARMCM3_STM32/can.d \ -./source/ARMCM3_STM32/cpu.d \ -./source/ARMCM3_STM32/flash.d \ -./source/ARMCM3_STM32/nvm.d \ -./source/ARMCM3_STM32/timer.d \ -./source/ARMCM3_STM32/uart.d - - -# Each subdirectory must supply rules for building sources it contributes -source/ARMCM3_STM32/can.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/can.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/cpu.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/cpu.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/flash.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/flash.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/nvm.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/nvm.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/timer.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/timer.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - -source/ARMCM3_STM32/uart.o: D:/usr/feaser/software/OpenBLT/Target/Source/ARMCM3_STM32/uart.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/20d758d8221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/20d758d8221d0011116edf0151d9d887 deleted file mode 100644 index c7e38477..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/20d758d8221d0011116edf0151d9d887 +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \ -../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c - -OBJS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - -C_DEPS += \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.d \ -./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.o: ../lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3 -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/40e85d31071d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/40e85d31071d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/40e85d31071d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/d0295f75221d0011116edf0151d9d887 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/d0295f75221d0011116edf0151d9d887 deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/e059c7e90a1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/e059c7e90a1d00111358d2931fee7772 deleted file mode 100644 index 8729b544..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/e059c7e90a1d00111358d2931fee7772 +++ /dev/null @@ -1,82 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include lib/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fc/e01e02c1011d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fc/e01e02c1011d00111358d2931fee7772 deleted file mode 100644 index 440ae8b1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fc/e01e02c1011d00111358d2931fee7772 +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := cs-rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/subdir.mk --include lib/stdperiphlib/CMSIS/CM3/CoreSupport/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(ASM_DEPS)),) --include $(ASM_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -SECONDARY_FLASH += \ -demoprog_olimex_stm32p103.hex \ - -SECONDARY_LIST += \ -demoprog_olimex_stm32p103.lst \ - -SECONDARY_SIZE += \ -demoprog_olimex_stm32p103.siz \ - - -# All Target -all: demoprog_olimex_stm32p103.elf secondary-outputs - -# Tool invocations -demoprog_olimex_stm32p103.elf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: ARM Sourcery Windows GCC C Linker' - arm-none-eabi-gcc -T"memory.x" -nostartfiles -Xlinker --gc-sections -L"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Prog" -Wl,-Map,demoprog_olimex_stm32p103.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "demoprog_olimex_stm32p103.elf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -demoprog_olimex_stm32p103.hex: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Flash Image' - arm-none-eabi-objcopy -O srec demoprog_olimex_stm32p103.elf demoprog_olimex_stm32p103.srec - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.lst: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Create Listing' - arm-none-eabi-objdump -h -S demoprog_olimex_stm32p103.elf > "demoprog_olimex_stm32p103.lst" - @echo 'Finished building: $@' - @echo ' ' - -demoprog_olimex_stm32p103.siz: demoprog_olimex_stm32p103.elf - @echo 'Invoking: ARM Sourcery Windows GNU Print Size' - arm-none-eabi-size --format=berkeley demoprog_olimex_stm32p103.elf - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) demoprog_olimex_stm32p103.elf - -@echo ' ' - -secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/e03ee764f41c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/e03ee764f41c00111565e8bbe12141cd deleted file mode 100644 index 64056f7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/e03ee764f41c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/CoreSupport/core_cm3.c - -OBJS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.o - -C_DEPS += \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/CoreSupport/%.o: ../lib/CMSIS/CM3/CoreSupport/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fe/b0878a000b1d00111358d2931fee7772 b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fe/b0878a000b1d00111358d2931fee7772 deleted file mode 100644 index de29a441..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fe/b0878a000b1d00111358d2931fee7772 +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -O_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -SECONDARY_SIZE := -OBJS := -C_DEPS := -ASM_DEPS := -SECONDARY_FLASH := -EXECUTABLES := -SECONDARY_LIST := -S_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ -lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src \ -lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x \ -lib/stdperiphlib/CMSIS/CM3/CoreSupport \ -lib \ - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a15507b5e91c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a15507b5e91c00111565e8bbe12141cd deleted file mode 100644 index dc31e16c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a15507b5e91c00111565e8bbe12141cd +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/d077cf83f61c00111565e8bbe12141cd b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/d077cf83f61c00111565e8bbe12141cd deleted file mode 100644 index bbeb6999..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/d077cf83f61c00111565e8bbe12141cd +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c - -OBJS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - -C_DEPS += \ -./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.d - - -# Each subdirectory must supply rules for building sources it contributes -lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.o: ../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/%.c - @echo 'Building file: $<' - @echo 'Invoking: ARM Sourcery Windows GCC C Compiler' - arm-none-eabi-gcc -DGCC_ARMCM3 -DSTM32F10X_MD -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot" -I"D:\usr\feaser\software\OpenBLT\Target\Source" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32" -I"D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_STM32\GCC" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\CoreSupport" -I"D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -O1 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/85/13/9/79/61/1e/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/85/13/9/79/61/1e/history.index deleted file mode 100644 index 6c7c0aa2c9e02c47b3992f2eccf81e68ec656971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmZQ#U|?Wmu+(=+O)5>-&&f>EclHhT3Kvm0 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/85/13/9/f0/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/85/13/9/f0/history.index deleted file mode 100644 index dbe5134123d328d36e14f3521c9c5b1016e94627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75 zcmZQ#U|?Wm(9(BFO)5>-&&f>EclHhT3-FU~J5N>0^x4DxmMHI5Gs@ijKmcXxKyFD^|=$t=>#%?7Hy c$XfJShCxs?^~LUoijHR)oXr0lGcqs$0Nf1~hyVZp diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/e5/f9/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/e5/f9/history.index deleted file mode 100644 index f38bdc16aafc25f30090a5381eee77bb4600a64c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmZQ#U|?WmP|-FU~J5N>0^x4DxmMHI5Gs@ijKmFD^|=$t=>#&1PT}5MwO* ZEW;oun)+h*Lq*54haAoS8#6L6004=56q*14 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/e5/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/e5/history.index deleted file mode 100644 index c4f172ff005a0cdde3cd2de06d567b3ce6e8c95f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 zcmZQ#U|?Wm5Z8A}O)5>-FU~J5N>0@;E=@|wEYi!(W?)pP{9gE3hCxs?^~LUoijHR| MJDUGDW@KOh0L#e|JOBUy diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/33/history.index deleted file mode 100644 index 0c031e78d5f2f61f5e1d3edfc35ebabad6ee2ac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmZQ#U|?Wj5Y%@`O)5>-&rixqO)e?c%gttByuc_@^jU^MP&D<$?uUwwXXBjA{~I#` zmBSPl=a&{Gr$Q7vFuyBAR-EDpRV)BCxwtebC9?=@@CPXl6oUm|2J=JJ<|byRre)@& PGB7^aE{LMk52_RZhYLHw diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/85/13/9/79/61/1e/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/85/13/9/79/61/1e/history.index deleted file mode 100644 index 8e7abe285750b861066d1ffed4ac37b07364b4ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmZQ#U|?WmFxOAY%+t@wOwxDu4fYHMlE(Tjsb!hTsllZM1^GoK`oSSUapUrcN6nKCjkOnAG=NCqe_=W?v;|I~V0 f0h85Wae?Iu!pP!3s#k!;10KFuA&sPdKU5q5i83}S diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/85/13/9/f0/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/85/13/9/f0/history.index deleted file mode 100644 index 370305ba1b062a302fd558666ce15945f46ec5ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145 zcmZQ#U|?Wm(9loH%+t@wOwxDu4fYHMlE(VZ`9-P0r3D4~MJ4*hrAaB7MS8i}3@i)U z1Z5S{7zD**&)RR{ihQlcyyl)MBLhRi>77P0Kyf*jV_pBJ*4tW`tOko8FjE&s7B{I` R0T!R&_<4mil6nTHH~_CFFQxzh diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/c5/f9/e7/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/c5/f9/e7/history.index deleted file mode 100644 index c692819070730467a59143de2d0353d3b17edaa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmZQ#U|?WmP}5J!%+n9fFD*(=)prc?b@nxm4-WA)Hqv)@cGfR0O-jiu(#y?eU3*7bjCy{*6LYOwf)djZ18;&yc_ Sz~T*7jw_{+)W4{Ohyws&=P)w> diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/c5/f9/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/c5/f9/history.index deleted file mode 100644 index fd80392bd41c8ae9df879735ef420cf4e70568d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmZQ#U|?WmP|{Dz%+n9fFD*(=)prc?b@nxm4-WA)HqtLHO-jiu(#y?eU@`b+DXWmi zASfPt)_x0D-s;n-d56dHCWt$)k7Fr{8sG>uy}yH M(Mo9~_3Th_0D*`s!TJ*tB}SZC?0#(ehXLR>r2dQ z?wK+&Fa*?JF_Hm_%efru`aiYacCN{4u=s~SGht-$1vM)m>i00Oltxl-4HX9fyge#F diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/e5/f9/e7/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/e5/f9/e7/history.index deleted file mode 100644 index caec3f9f0198ea3e2e2d6e42b5bbaeae4880decf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmZQ#U|?WmP}5J!%+oK!sG=SRPaj%6@mWMEjZBs>UNd}US)L_EG#7g@XuD$Y=;9nJ?dM>yir zWchdHMZ3=?|2GDjbKp0(-7gu0czwJ#Sp0+h!RBv3anaNlyB{h#o^9cVhzGoQU4|^) z{MQbw-r+Fsf-gww`zviB<}AFMf-L?z(+Xm5qQ~3MNa|zDEx_Uh-^>;wi+e-G0VBq9 A4FCWD diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/e5/f9/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/e5/f9/history.index deleted file mode 100644 index 9f8bf6534532ced662e8d227478f5376bef8ad5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmZQ#U|?WmP|{Dz%+oK!sG=SSa)j%6@mWMEiuC@2V7yelgPBL1#P7g;k+9h!+$+Dnk}e`D+JO yAE3sv;0u!af=XMkIK%TBDahh?GOfVk2R^vI{fwmEtK0%CzTlV1LS%7Es5k(W18}_n diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/e5/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/7/e5/history.index deleted file mode 100644 index 804bffcc318cf297788ea6954958d47723442c12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmZQ#U|?Wm5YWnS+LeqRw0c+P(1dm{T8ms*UMPe+%silU|8_~ zi;)aaT+ZcK*Z-;YwmGJ&!QvnI!i15<^XgWB#V-VSu9QYn?+q1a;0Ie+oL^d$oLa1x zo6W#-AnT_LvX$$ZAXYMzFF>*Kj4{MYhCN~^R)$tXtXxobdEh$$iT4R>iiUB@ze|}uy{fq*W1rX>SH>0-UF!z0ATefv;Y7A diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/properties.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Boot/.indexes/properties.index deleted file mode 100644 index af37043059a3021915af34bae06ba2d35b9d28b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmb`Cu};G<5QZ;lB|26j2r=;nr#MMN<{~k&@C3%bIu?m9vYm#$Jx#L(MuwaIPrC0* z03f;EE`{xpIl==Do(J;rf`c@KEm_k>*fdo!a{$>2n5>R1Y(*}b1=z2EZ`g=h{JmWu zJv1p~><|c*j;PoZ+)EYhnO@nQtQozGmK_{_p`JrP>3cM8#K5Ch(xMm$OO&yFqjRE_;HDA4)n$e)<1qJGx2V-K2y10ixcDM*si- diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/85/5e/13/9/79/61/1e/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/85/5e/13/9/79/61/1e/history.index deleted file mode 100644 index 1dd74e63fedc1647a68f78fe3c4c5b84e965f3ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmZQ#U|?WmaMO25O)5>-&&f>EFD^+bNG-}N$N+JieSmL4Hw* zesBm7`5GI!85&gR7ndfbWESb=W;1XxaC!cJDZ?Nrn)+h*Lq*54kx4)P88b34C_HAo zg)Dw6|2tTGgC@gPWbqxFzJkRYm_!PZ#knmZ;u~sPta*+ke#+z}SbRZ{d?&K_z8BBI;vW>U!;r=6q2d6m+-&&f>EFD^+bNG-}N$N+JieSmh|JFF(c4WHkMn+;;-_*gT)sVGi^l{ z-?8Z{SiGTFtPojT$`T^J;COo+vUt~vPhj;MTclW!#jBy>2_-L+Um&^XiqtExdWREc iYn~&C-!gd#anE7JPGs@BFP?+NFR+(~A&c*WiUR-(wR=|p diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/85/5e/3f/e4/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/85/5e/3f/e4/history.index deleted file mode 100644 index 3a70cf1d7017a1ea0c68088531829e585169d6a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmZQ#U|?WmaL{*2O)5>-&&f>EFD^+bNG-}N$N+JILwt>m+zbsW;)6?40>HxYE=8GT zsYUw5MalZbrAaB7MS8i}3|s;S-2T6mVGtBeeX;wYqT^Zbq#yr`85tN1X8ym4EPguw zJ6L?fj=x)w#aC?l3KnmeC|HOr{@Vf~zJaGX4p}_=#V4@(11CjUkj43+;sraOB)>p% r&sM2dVD$mKMr)oUiJvlg2^L@QP^J@Eyx_%iusFl@j4)(zA*eV2p3s13 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/33/history.index deleted file mode 100644 index 2af5c5769eb646bbe1cbd2489a5c577d76039ccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1046 zcmZ|OO(?^09LMpWkwqTH@~liz9?Dj>+FE%i2N$Il2M5{aPnhO?mU7$Mp79pF{}%DZOHQn(bBSOC8cJwqI<-g>K(1w6ncNM?0^b z?PmL8=!Jg2u`Gq{2S-t%w=1LO5c5BG#Sx)5E$df;Os~>}g}#tkF~jzZa8T&p`teS- ze}rf!*?=%?9OC*0EZi@_ej6fi0f9d$6%o8!DFL5A-~$5NKLks@>Awk%N)f>}5cJ$X zAc8ZIK&L|lVKpU~PaqJF>fIYf1dk$txC5uv?J#q62cGK^gm7x4J5WtVFWGzQ282NV z(Bajtp912z-&&f>EFD^+bNG-}N$N+JieSm zL4Hw*esBm7`5GI!85&gR7ndfbWESb=W-~BO5Itl6N`^sDH1);qhl-A8GynejXUxdJ F0091OBuM}O diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/85/5e/13/9/f0/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/85/5e/13/9/f0/history.index deleted file mode 100644 index 20650a19212b2b225afe253609617df012a48920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92 zcmZQ#U|?Wmu+~q?%+q&CO)5>-&&f>EFD^+bNG-}N$N+JieSn+a diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/85/5e/3f/e4/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/85/5e/3f/e4/history.index deleted file mode 100644 index d78516606ddce8ceefe6dc3094be0f743b38515a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmZQ#U|?WmaM4f7%+q&CO)5>-&&f>EFD^+bNG-}N$N+JILwt>m+zbsW;)6?40>HxY zE=8GTsYUw5MalZbrAaB7MS8i}42%m-pR|7^!yqV{`eOG(MaQ#Ve}DZmW@KOh0C-F! ADF6Tf diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/33/history.index deleted file mode 100644 index cc2acf4324a1aab7b166261aed682e7f817c9acf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 zcmZQ#U|?Wm5YbP{%+q&CO)5>-FD^|=$t=>#&1PWSAaK0~UW!yU#`js9w(HSl9ol^|q%ZA>s$>^~{jPi#DtTt9NMneO($!y|U6Wu=s{K P0=~%Nn=6jo0@(`yIoeJ- diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/85/5e/13/9/f0/history.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/7/85/5e/13/9/f0/history.index deleted file mode 100644 index 4d3830c3980f1fd81a584c64fdd9d269312d5c75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmZQ#U|?WmFx5}W%+t@wOwundNhwGz$}GqLah!dFJ%fRyvA%PDQEG5$K|y{|iGFcu zQc7l#UT!u6+k)2AK!r30LGjqL_FK3jUvG*%cF&ZNfg!+F+X7kqmCG8i_=3ZSY-E7y z(!+|a(3uN)7E^ENz z3dgtG$N<&Lxg6{IKegU=tt3SJgOHXPvbfuZm0w0sT4%q;E9 UvWnE4Y#usF21WC?0#(ehXLR>&LOj?wK+&FcjP~ zvOpFOb6o=#pRoC|jSNt|oXfGU|5NL2eWW1b3`?BMki}1ISP4;I#c@L#N&Qr%We{<9 zHD6@$wUtM1f$U}A2RpDhzqBYhwOB7Vn}JQ?l_`o7BV!;=eDLg>IkFSyIYXQhkkO9f z#F-Kh@dTs)rpQiIS`Tqz!KM?}k)1MK9^%A?-AjCs#lMz9oyZ4qVrf!JW)awh2TUAM zT(}DALWLd7D1rDC>cRz^XQR0A57dPQSNKr^u@&mVgacPlT&Su5abdxsV<;|^D@O^$ o{G_bZ#cklwO!ot13oe2T=1ltiN0ZOKWk=skbgxm0Qv2j#FyRnRpesRnJ!LDPh?G<(JgtSYKSJU<4U1vsQ0J_Qq&1@S2l{VA}>6u z480rJ;MtNm&OS7(7o4)2T4jXIcaX6X!f>{z<06H_&pW-eN&E;m24Av-$B>dx7$;IR?6O9wCdnOoNC!^ygeh7JoANJXn3gqtEM+#hY!;fyEu1W>h1K$6PuC7C-PK z+yz;DK{-TR!MMx}S$yWF(_r-r{u(GDi-+W%gqUBjcRweRzm{u2#0yS2ZABK}*l_}^ m-XQDT9At4T@nc}|4d>Erk;SuD9tDdZ$XKR>EH2^+5eESDF{gh3 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/85/properties.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.indexes/85/properties.index deleted file mode 100644 index 9e476c3d525fb1431b55a95f8c54576384a1f866..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmYj}!3~2j5CqQ@fRqx_!11JjDF28C5ZEWQlJTMQ@u2&Nz$4FD%}yYqK#wkC?y4u~ zxT1g~g@$^yg(YTeRd@%ZxLBDon=Ghq2MgP6~$pIls$SX2V^4C4k3_wv^=41%JmFLpmvbUb_X z$>n<>&oHp-C*|jZl&}jdPqb%3vNybJI>a2tbMnaIGcHU4i*GpJvV##x{qx$%VDSdl zr!C0h&y**D#S82t1CYfh?3)NNf5jpPWbyf0ZD8>aN=Y^Uflh{n|C9dXFem3GX66B% z%&nj(BE^T~gdFiFV66vs243Vv5Q%6M2KkasZY1?Sxsa&15Z9A|97Xq6O$DnLV7PG;+3N*R zuM4b=K=Jw+-A1tb3#FYq{~-m*%!(q2z3lp>kcj3GSkd``6Uhn8O{>954!pmrhn(6X zUiN{-Cp3M($bh6?Pah)w;PAw)$m0LrcY@V_SiY7YSv>U=M7$vBIVZCCy22)i)6ze@ zLU!`E^$@Qlcx0SK7T=%`5oci2&q+-ICD{pmb8O!sCD~UmMIa_}>6fJ@m*f|Law$u} zV-?}=NUDaB14Lez8ae1a_Q-?ZsNsd8~^ap5iO%atyfu#KS`$(1p7%p;E&rjCWWc?0)9usllJ2Kio!9@>+N#s@4e;l+@;2e%=#GPl>BZuH@l5w;&W++9) zlpd&}8EWKHRFW7Z;&Zen-pIVC@Z5z5#T9}PP zDpx3I*+@)&XMgfI&f~1p8N#F%rg~%*!DZ(hlPpd1EJ>5wES_Um>~S+k-YYFXUPlO5 ir*10tk9zmlLOE{MWJ$bmrZw4Kz=JAjuX?;!?f5Gh(~3<1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.markers b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Prog/.markers deleted file mode 100644 index 84e5847af0c2e268261ab9d8371198a6b197a39f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcma)$y-ve05XUdg(1LgYHcv<_4x~>2sgWYls!9UNRwee)Sfp`ub`U%Y3k&ZFbvjiH zs3+a<|2W+b074Man#?w8bsbr!dL-R9qsWWpJbt*ndEewttq=BQLHZ3T(w+3(-8_C7 zV;xK00KmkrpWtx^*IuP}w_4y~=W7{XOqmQ0$VRjfuUJqkhh- v(rGSqg*AVRvZB+RjLFuZZ*CTh5HG(BJpO4vBddjYp&dr=Xa8EJWge#+ww)aH diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version deleted file mode 100644 index 6b2aaa76..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/10.tree b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/10.tree deleted file mode 100644 index 6c21cdf8088c274f5a43f059a3b9a80e26480883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21996 zcmbtcYk(Y8m9CktNzY7%Kqa>c4}}Cp6wMGaDDlNB7{VhOND$;T>FMs7X)@hCcK3t? z&;>ykUQE+R%z)`$wLf+&hSB=S%cK@iXoViE*V*vMlwlG*RnIj8F0u4>5cem}Z; za=&x#SEueh_tw3A<7YZMy%4!MeAUm+yYS8T_N>)M`b&ke@_3`v-z?=T{e_i{{z9!@ z^7b6AjTKAvImL3lxq42cnQxZn6!L}9Qt{=icBz*dwTXJ6G^eq;T6j6;RPi73OqvdF zM!i(2q1wpjiqdMx?(iIXq1a@_bVL48wOZ4gXS<{FO1_#ODHVq%%5+a5y?>-st>jmf zq4Dgb|J1a`MWoBs@KzB7_ZmPE)|-H@NTdq_KIbStU`dVEZix(UStqL3|Cr&&_&M^J8Ok&Y`C^PLbhfHn3sy;s*1~fWWGOR)vdlg?TdqFqQTAx8w`ax)bqMj zuG}7&zA#a$F!SNJSz6U>^}BhoJUL=0%v&>FP(Y5VBNb5e)Jj9L>8VxBHE&ZJg!Ap5 z7gUg9>Z|)#rCI&)jw8hiOoe%e=S^RUUQ(+gQ>L0-Bu$^F3iD3S%QP$FR){t)ZgQ!4 ztFj>KZJBlfJx18@q%eo226T}yQK~S9w+(1T*kCBk5$NF>P)Ii1={Ef4@8>eb%vCBR z9}Kd_5#;GY{{9rXFCr++Jm`qR7rUN3Z2P^;A%=ola2GOde<5Z*`kQb4NSL#g2NC-T za}-Q@?3b?n=*7ZBslvR5nBx<+&xcQaPI@<$Dh!@u$RwW<0{Hwoms6?2?2q0xJeF^a zws<{HxF}bc*F{{%?nu29WuvTguX?XC{>tO3Dfm?hA>g8Ft7H! zY2#!0iAH&-JXUV5cAL+~gi17p*$2*76&xAQ&!6@SE~iq3*;kmZ4C#(ksxY&Vpohxg zz}=J&vpH7)-1sbshB67G0qfoL`*eDn#3$2Hn>&{jtH(Y&=9%SUn_% zKF~uWRziWY4fR!3fT?0Q!Z-@HO1dInid@*AFlsppwn~4ZQbi6OrH971gaT!oBDktx zI2w%{4SzX{{gF3C4joHIIY-5_-w>|V@p9-|Q+Y&8=uo~Hft~6oBN8;yIV%44fOxh# zYHpS=9SzT+)e)#vk(-T3kk5nyWt+3XRRv>Ur?=#9vPZK3S8d6QqLI;2ynTqdRJS6x zU&M7ZZ@+~ZRIbQj{xOwD=Y(qIn+n*fx~9XUEu+@iWQXKVk$bIDZ56f5VM0Z*g7Qai zI6k+Ei0FnAo{Ff)W2qyf`+WA8+eJO&2~CU1j*#wagbacrw=43I4Cx6eYGCNaM5UZ) z5510EDN)P!==vB5k3tZK^ z99d(uR$I|1Cz2a5c@9?@7EM9u-(p09zmH0tdhnK<9Nh+_)@;If_o4NptKT9XZ$7^+( zi^K~4#Jr%_;!pLxURo>~EK~-ZpjGdFmT5FeP~;9oAByO9+^Y9HB6Ls`IlRA2i|H** zE;0$IX=vy$F=#WS$Pgb)1zR3YfX=nc(WRB;Lh21`$fu|v1Tx#j=6# zyq<8GYT?0iSEaH=0=W)){C1*cd=JoqBGG6a(;KTB%~EBs(X0&28%7mw>~9-o#S}nA z4sUo#Gv^uHev+7hs-R`;-4nI7Hsh+A1~f6#XMu^#luEu_b;Q-?9ml?@S1595Q%to5 z)dq%yieg0$&#yQ1+A1QVQ~!xXAkTHvs`GGpEL<&%Cd+rR$Dj{ac^Co6y|p1)k!`fj ztsiE(L6-8Q57ONFRkiU_b*MQuSR2C&{wjVV;|I?j=r4^8NF;e+a?v)KOJu2S!wVsc2|{-v+()qAd>?&e>^n^8ev+^B*^LOvpb)Nb zki3q8=l41B)51l$qWjN~TP|9wvXiG)>GcQblYt@p{=*Khw_eH@E7${C6~FNfOrCn+ zwvg@h{gAIA{YP*s;{mTwBML8Zd6s5kg6tA|JW%Gv^tgfSQoe@Ymvu$sf$}a|$K@0q zMfT+6co6YFD*X2;8+Dx4X(jl0Md%H|MGNK%{S1qa2|_#`#0v)fy%!GOB6Ls`S&Y@m zbRFrD0B28AKJ=U(rR#`xCl`}5MRu??T`T+ITZKKSTsU3sd(%%Ujg_$eKKO2Imtpy> zSs9C3UH|v~eDX#yTW*=1Wvqkn~wM0PPi!m&;9W0FIt0Nqc z$m)$xZ0TPjR$wZ!r_j@^6(%a!B*{0+HERcEa^{ES{gYUV?5Q2zG_Hr{D6P_t7haa8 zp!yxHZR!aa->cYeE!N^}X1B;wm5p0LW9ES<4)nmIzdTVQMjc$y{WPYoOK9t{0~1+H z=sN~>Y`Rb~i2n)DbYj(&bGQ0<_ikYF&I@|knSUv+cmX8%-$%|#Z1vf$KM9t&_CJGc znzq$9<6Ld#?+m?$AKAlpcB^m3xlgcJ_Ap#=e}wE2JGa$0H!-j4w|u3~t_Nq!%B=kwP(AEyrkGn}s<|!g<*j-+S~7u(73Ov%n$(xKh#q_p zi#sC0RKjb^c28?2P8WmoW9u4JOQKQ=HApjlc5j_yNgP7e@CVbEoF zvkh8b&eSNl93~pTFL5p7rFwaM)P2D{t0u#CP|-SYAJxv}3+`F9t;`7CZ!znM7u=Xv zw|I@@geHolbe`ZGi@&Pv3+|gW7g*WLJZMj7oG89|n7tB3VIF$f7hE+75Vt6XYtdlR z)=Vo~Zeh0pb%`$dj--~HF-145fow3FK7(d7V@lAP7Hy(+#*|=BSnQQ;UT`a0zQU|v zC9W#^{InU2lZWR?cc%a<%09U2HMGKAN31-P=Nibr!fZ&`IQpKIWwpyzHd2o(SDWPqAT03;2Oxk!fZ^~IQpLNV+ApZ)p zIbq}I`-i-_5>H{axcX2}LZ8|NG@xrPxZbI&m~YXy{nuOr`Bxa^U+bR8#?kkZq)_51 z%oC2j(5AKjs$Bq0k-i%#JL+=bU~y=qQkZa?;Eo@2B~*pN{3*@MQ8_7hL{x=&l9Fm` zZHYjtX#jDNP`nh_L8;^&mDP@Oxe}^EVV+9Z*b=LmgTw|rh554^NYvA+FR}~hMMWR< z&Ed>P)?EkjgSnRZmH!d0f+|p$r;|pG!mhuF5r_(de=~6q!euSn7=s^!^1PNH?xwvH6)4Pe2^&Y?bRGA=Q<&$S z?n3n>^r>9{O_9D|I?*VfQyg(a7;YtlPZcN(X5v=dLnB9FZVgk3s4y=&A!MW0r>uqn zWJMB@nynCypHp`g?k>YWRiH5cov?8P?y);FiKj4scS1<@Btocm0Sy=Wi0^mmsux-w z@t!n{1LR*}{*kb8^yx-4@f2peqmSxI=u^7@nj(DM^u0RAHIRRW`Den$(YMbR z#RfcudCAp>dJ_87E`X*;A126FYii)N*nPmWB+yiW!t6*IISThPOeLbiOgc?4tSKQ; z4FkxEB>vtBM`OHYOnJ@aTm@C2pr~5SmTVk>`wucxq96W|>u^FC+O&2NwF{sr(uY~8 zRTq9O<3{iRc@-!BiX5WaV&mvL@E&FoPm#+w`ly~n{M0Uhrbyo=XY872&<|am5${bW zavfBIBIl=AIU4(q7Ar6nxh`kKhq23Y6^yqDVAtZaj3X6>{CO;x~!Z-9u=29FK z=H7_w#IGO&I+ZKTuiF3oP5A+W76tILcr@V;)f^e+3)msKQy4S?raCHCNT;G=g}D!* zOa1vvPcdU<~J7Gky2mC9AYSFU9|nLTGb+ef=CUrv-N9o z-XWg+!qG>tOaD{2qC*n8-lo)eM{eNKwVztg#r|b{rB5G0*G-6UGfMn+zW9KU>8VJ< z^&z2q6g$c|V_H3uB=&wpp+ua$nTaU;dSy&Z4;e5bht{iw$;Jfa?tYKJE1> z>)Tqx?7NucU&&Yc^uL_3*0&?3JPQBI7ISUuhW(DM`#!|w{#PyDRmt^j^}FxQ!vChl zzvdM;?EObAI_3nguwn1hv_atiA#M3t^jv>9^$WnihOgoGZ$-<`2^yR!{0*(k&w7)y zU&|bSgK|;9V>`WJ?>}alZA@<1hkXz`?>Ee1o)3<~e>`mgI&QeuhCNXg{-!juxD~@p zH|&Y3@X_=BHyif;RceWVAOY;$hCMMA{@2@Y*zdUhh(6{KOW|L=Qyccayugr||Ls@a zu=lUl3c&x5S6qYFrm^3AHls|T@V}C2^IHx+Q-|MjOw3|3)uiyhK^e44&sKhyv}5c3 z+VW7Q@Yl_h^?3VvZo79D6X<3Y{&$?|GA*#D+kmI=uXSu_F*@A_JcW-eYfZ~(fjHep zvN75D|LNLb(Kg)%Jca*V*9Hrz={Ddg{O>t7w78jW1D=9@FOgi>Og95n;a~4oh2_6= z8}JnV4bD_NT#!pQ0#V`r0Da9`u?mkYrdxrj@Naag3YVd~r`V0#V`L;#5R0)9E(gDg0X<8+yS_w*gP#-{!O+e&I~F0#o7N?%Y!N z3YcyLqQd_f@|tW(YT7(Nva`QVS%}v+HLt~!qW&x6yaqQ4{|@JlDX-Z>Vr&DR!pC&j zdW4kM(rskgOm_ay9UIDP={Ddg{5xG6fvE8DUSTyM%4_L1;3@pyIX0Bn z(rv&~_*ek7S`g>8bSp3w{v*yUg?TOA2t){jaDAdhJ*7 zt{$E=2>r|J_m<~Q6zb=3?c?vgAEZ?!`Hw9yDU|<^Ve%(Gf0K~^9oGzh@9K(HXJX+4 z>uuy&nD^T&GmaD;5g| zgt`US4*tFiVjnHF*pA;b^~21ddUXk`>vLq6p^pyyk1p|N2miM?_&;*!SD=~bM0cj; zz&8G-|FtD!9k+%fJ%O;IO6zBUc|Tvn@AY`0q~?$*=zsx1K_{u5A7G{$fTS=@+<)|g zE3kbzK{9si!OSu5!d0HFIo66+(e~Y(6gK=R!lT@}jO9q5SS;)b<>EG0wk}NB{v!*p z6y_YPiO@*sC^>HvmzzQ5!S`}uIx5bu3KOLYI!qlOx3(2TY%mmNi2UMcw4>ld)D!_K zRhWV>9R(L@Tv4i^!_@I{Yg<9Y218*==s~gtZgW3+2{Wi%VTL2FqvGT56fVjYbd=gY zZf*OH_~0naDDE#jZf!F!o5tl-sxW0?IvOr}hcHp9pu^Phacjq~vZcR}g;@c1dP|

e3-8u4SI%;P+}HMC<;19-E!R878IF)rZ7tp_3*d# zj+kq2U;-5@%rd1qLaxQ=OrT-~ou#&Zv2Tlr=%6UfdntR+aci4-y}Tb#sluEhOh>}? zFK{`PD(EnEeB9dc`@FEhP?-0He(|$In|YIDdn#3!(}d|Lxal)oPNfPuOdTJ$cKj+E z423zPUH@M60CU3Q*4n?(H~F}=?f2GC2ot^(23?JhTieXrBo|Vtf(}#1$E{P@U?^z( z(c{)OcfHhYkbx9tQN(qkw*EY3P`QG}VEeeW<6HRQacfLZ2tk118^1=!+=Ne4(ofRhU(1zwy~+hkl*VK~b31iC=;{CTp1(9(7jPd$xVtpA+^} zT(k0hM(a{M?h+@N@fjaf#x14~5Q{z{UV1E#2wU<%vD5mOYa7AcDa^TPX3j$$+MCHl zRTwXZDGdg}8RgcichyQ@}WfY>T_^Suuis zg*oBn9N>hI?cjm$hyxfYX!vWd00)F@2dW@Ehb(v8`{XN~L$*AO9pA+jhv$$bAid8Z nX7T1b=uwCljW9hthpZt+8f??nS2CO4_oCj@EAKK~#Gn5I!O?k~ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources deleted file mode 100644 index 54b0c512809f403dc3db4851d6bc9635449c5ef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmZ?R*xjhShe1S2b=vdAllRFf=Oz}Hq!uZZBqrsg@^UE$m*y$>CKf3em?#)pSQ(pH znHVWJyM`zj85kPzawX@aCKkD*=9DDH=NF~xr6%WO78IxIC8w0=CFd8V+NLGu6a!7c zp)4gesWe@$G!v#Q1!RzGML}j!Vo7Fx9(E%Qjg1W~ER4(yj7%&I2^dX;8;U^ACG6Ca z)Wlr9{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue.params={} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={no_break_comment\=>"no break",last_case_param\=>true,empty_case_param\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={} -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={} -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={macro\=>true} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={macro\=>true} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -eclipse.preferences.version=1 -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.checkers.noreturn.params={implicit\=>false} diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index 663a2141..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Fri Dec 02 15:00:27 CET 2011 -macros/workspace=\r\n\r\n -org.eclipse.cdt.core.showSourceRootsAtTopLevelOfProject=true -eclipse.preferences.version=1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-Boot.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-Boot.prefs deleted file mode 100644 index a2059002..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-Boot.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 15:04:30 CET 2011 -eclipse.preferences.version=1 -indexer/preferenceScope=0 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-Prog.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-Prog.prefs deleted file mode 100644 index 13a6205b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-Prog.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 14:06:57 CET 2011 -eclipse.preferences.version=1 -indexer/preferenceScope=0 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs deleted file mode 100644 index 36d08aeb..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 14:20:22 CET 2011 -eclipse.preferences.version=1 -org.eclipse.cdt.debug.core.cDebug.default_source_containers=\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.make.core.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.make.core.prefs deleted file mode 100644 index 4c7e4c9e..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.make.core.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 14:10:14 CET 2011 -org.eclipse.cdt.make.core.scanner.discovery.console.enabled=false -eclipse.preferences.version=1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 26f6b1f3..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,6 +0,0 @@ -#Sun Mar 04 18:36:15 CET 2012 -eclipse.preferences.version=1 -properties/Boot.null.2099644599/cdt.managedbuild.toolchain.gnu.cross.base.704426003=\#\r\n\#Fri Dec 02 15\:01\:18 CET 2011\r\ncdt.managedbuild.tool.gnu.cross.c.compiler.1659811929\=\\\#\\r\\n\\\#Fri Dec 02 15\\\:01\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.assembler.1747933774\=\\\#\\r\\n\\\#Fri Dec 02 15\\\:01\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.toolchain.gnu.cross.base.19286403\=\\\#\\r\\n\\\#Fri Dec 02 15\\\:01\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.cpp.compiler.897271491\=\\\#\\r\\n\\\#Fri Dec 02 15\\\:01\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.toolchain.gnu.cross.base.704426003\=\\\#\\r\\n\\\#Fri Dec 02 14\\\:06\\\:54 CET 2011\\r\\nrcState\\\=0\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.cpp.linker.1945131682\=\\\#\\r\\n\\\#Fri Dec 02 15\\\:01\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.c.linker.561103820\=\\\#\\r\\n\\\#Fri Dec 02 15\\\:01\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.archiver.1329719800\=\\\#\\r\\n\\\#Fri Dec 02 15\\\:01\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\n -properties/Prog.org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.1995384738/org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1639800803=\#\r\n\#Sun Mar 04 18\:36\:15 CET 2012\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1652107540\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1650210210\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.1029814416\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.1709347650\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1401723031\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.638372325\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1871513771\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1839723576\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1639800803\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:32\\\:59 CET 2012\\r\\nrcState\\\=0\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1948855455\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.1416805565\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:36\\\:15 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\n -properties/Prog.null.364757599/cdt.managedbuild.toolchain.gnu.cross.base.1931562967=\#\r\n\#Fri Dec 02 13\:24\:18 CET 2011\r\ncdt.managedbuild.tool.gnu.cross.archiver.1895881695\=\\\#\\r\\n\\\#Fri Dec 02 13\\\:24\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.cpp.linker.870210068\=\\\#\\r\\n\\\#Fri Dec 02 13\\\:24\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.c.compiler.602729988\=\\\#\\r\\n\\\#Fri Dec 02 13\\\:24\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.toolchain.gnu.cross.base.1789339306\=\\\#\\r\\n\\\#Fri Dec 02 13\\\:24\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.c.linker.1062578263\=\\\#\\r\\n\\\#Fri Dec 02 13\\\:24\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.toolchain.gnu.cross.base.1931562967\=\\\#\\r\\n\\\#Fri Dec 02 13\\\:22\\\:12 CET 2011\\r\\nrcState\\\=0\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.assembler.1908346833\=\\\#\\r\\n\\\#Fri Dec 02 13\\\:24\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\ncdt.managedbuild.tool.gnu.cross.cpp.compiler.1209824354\=\\\#\\r\\n\\\#Fri Dec 02 13\\\:24\\\:18 CET 2011\\r\\nrebuildState\\\=false\\r\\n\r\n -properties/Boot.org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.672893664/org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.364435663=\#\r\n\#Sun Mar 04 18\:34\:01 CET 2012\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.737947540\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.2013116877\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.922950910\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1487118424\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.778379542\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.1346908913\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.248792117\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1933182557\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1775648822\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1326845546\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1580685788\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.75976766\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.317334834\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.1304542712\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.925789995\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.415209124\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.556602464\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.364435663\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrcState\\\=0\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.111331378\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1810400386\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.1224055994\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.45873621\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.574737311\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.951948194\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1404694970\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.2023518672\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.1445907369\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.924834461\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.497673922\=\\\#\\r\\n\\\#Sun Mar 04 18\\\:34\\\:01 CET 2012\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1220292484\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\norg.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.424416054\=\\\#\\r\\n\\\#Fri Dec 02 16\\\:44\\\:18 CET 2011\\r\\nrebuildState\\\=true\\r\\n\r\n diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.mylyn.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.mylyn.ui.prefs deleted file mode 100644 index cb7ffa00..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.mylyn.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 13:57:22 CET 2011 -eclipse.preferences.version=1 -org.eclipse.mylyn.cdt.ui.run.count.3_3_0=1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs deleted file mode 100644 index 647a7772..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs +++ /dev/null @@ -1,10 +0,0 @@ -#Fri Dec 02 15:00:26 CET 2011 -useQuickDiffPrefPage=true -useAnnotationsPrefPage=true -sourceHoverBackgroundColor=255,255,225 -org.eclipse.cdt.ui.formatterprofiles=\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n -spelling_locale_initialized=true -eclipse.preferences.version=1 -org.eclipse.cdt.ui.formatterprofiles.version=1 -scalability.detect=false -content_assist_disabled_computers=org.eclipse.cdt.ui.parserProposalCategory\u0000org.eclipse.cdt.ui.textProposalCategory\u0000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prj-Prog.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prj-Prog.prefs deleted file mode 100644 index 49dbff16..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prj-Prog.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Fri Dec 02 14:10:14 CET 2011 -buildConsole/logLocation=D\:\\usr\\feaser\\software\\OpenBLT\\Target\\Demo\\ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse\\.metadata\\.plugins\\org.eclipse.cdt.ui\\Prog.build.log -eclipse.preferences.version=1 -buildConsole/keepLog=true diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 35a9384a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Fri Dec 02 21:14:03 CET 2011 -version=1 -eclipse.preferences.version=1 -description.autobuilding=false diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs deleted file mode 100644 index 85714a0b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs +++ /dev/null @@ -1,6 +0,0 @@ -#Fri Dec 02 14:25:29 CET 2011 -//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.applicationLaunchType=org.eclipse.cdt.dsf.gdb.launch.localCLaunch,debug;org.eclipse.cdt.cdi.launch.localCLaunch,run -eclipse.preferences.version=1 -//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.attachLaunchType=org.eclipse.cdt.dsf.gdb.launch.attachCLaunch,debug -//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.remoteApplicationLaunchType=org.eclipse.rse.remotecdt.dsf.debug,debug -//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.postmortemLaunchType=org.eclipse.cdt.dsf.gdb.launch.coreCLaunch,debug diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs deleted file mode 100644 index 7f774d7f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs +++ /dev/null @@ -1,5 +0,0 @@ -#Fri Dec 02 15:04:30 CET 2011 -eclipse.preferences.version=1 -preferredTargets=org.eclipse.cdt.debug.ui.toggleCBreakpointTarget\:org.eclipse.cdt.debug.ui.toggleCBreakpointTarget| -org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=\r\n\r\n -StringVariablePreferencePage=124,104,103,82, diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs deleted file mode 100644 index e51ba421..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Sun Mar 04 17:55:24 CET 2012 -org.eclipse.epp.usagedata.recording.last-upload=1330880124313 -eclipse.preferences.version=1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs deleted file mode 100644 index 45c0eefd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 13:18:06 CET 2011 -eclipse.preferences.version=1 -mylyn.attention.migrated=true diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs deleted file mode 100644 index 0001f0f7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 13:18:06 CET 2011 -org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true -eclipse.preferences.version=1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs deleted file mode 100644 index c286c938..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 14:00:16 CET 2011 -eclipse.preferences.version=1 -org.eclipse.rse.systemtype.local.systemType.defaultUserId=voorburg diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs deleted file mode 100644 index c20f62bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 14:00:17 CET 2011 -eclipse.preferences.version=1 -org.eclipse.rse.preferences.order.connections=voorburg-PC.Local diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs deleted file mode 100644 index cf05184d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 16:06:28 CET 2011 -org.eclipse.search.defaultPerspective=org.eclipse.search.defaultPerspective.none -eclipse.preferences.version=1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs deleted file mode 100644 index 69da5e00..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 13:57:22 CET 2011 -pref_first_startup=false -eclipse.preferences.version=1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs deleted file mode 100644 index c8e156a9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 13:57:22 CET 2011 -eclipse.preferences.version=1 -org.eclipse.team.ui.first_time=false diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.tm.terminal.view.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.tm.terminal.view.prefs deleted file mode 100644 index 7b1a087b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.tm.terminal.view.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Sun Mar 04 18:05:54 CET 2012 -Connectors.org.eclipse.tm.internal.terminal.serial.SerialConnector.SerialPort=COM4 -Connectors.org.eclipse.tm.internal.terminal.serial.SerialConnector.StopBits=1 -Connectors.org.eclipse.tm.internal.terminal.serial.SerialConnector.DataBits=8 -eclipse.preferences.version=1 -Connectors.ConnectionType=org.eclipse.tm.internal.terminal.serial.SerialConnector -Connectors.org.eclipse.tm.internal.terminal.serial.SerialConnector.BaudRate=57600 -Connectors.org.eclipse.tm.internal.terminal.serial.SerialConnector.Parity=None -Connectors.org.eclipse.tm.internal.terminal.serial.SerialConnector.FlowControl=None diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs deleted file mode 100644 index ed705eef..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs +++ /dev/null @@ -1,5 +0,0 @@ -#Fri Dec 02 15:00:56 CET 2011 -printMarginColumn=89 -printMargin=true -eclipse.preferences.version=1 -overviewRuler_migration=migrated_3.1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs deleted file mode 100644 index d84959a9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +++ /dev/null @@ -1,10 +0,0 @@ -#Fri Dec 02 18:53:28 CET 2011 -SAVE_ALL_BEFORE_BUILD=true -PROBLEMS_FILTERS_MIGRATE=true -quickStart=false -tipsAndTricks=true -eclipse.preferences.version=1 -IMPORT_FILES_AND_FOLDERS_MODE=prompt -platformState=1322826959835 -IMPORT_FILES_AND_FOLDERS_VIRTUAL_FOLDER_MODE=prompt -EXIT_PROMPT_ON_CLOSE_LAST_WINDOW=false diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs deleted file mode 100644 index 6f586a66..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Fri Dec 02 13:18:09 CET 2011 -eclipse.preferences.version=1 -showIntro=false diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs deleted file mode 100644 index 066e5a26..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs +++ /dev/null @@ -1,6 +0,0 @@ -#Fri Dec 02 21:20:23 CET 2011 -resourcetypes=\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n -RUN_IN_BACKGROUND=true -eclipse.preferences.version=1 -editors=\r\n\r\n\r\n\r\n\r\n -ENABLED_DECORATORS=org.eclipse.cdt.ui.indexedFiles\:false,org.eclipse.cdt.managedbuilder.ui.excludedFile\:true,org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator\:true,org.eclipse.mylyn.context.ui.decorator.interest\:true,org.eclipse.mylyn.tasks.ui.decorators.task\:true,org.eclipse.mylyn.team.ui.changeset.decorator\:true,org.eclipse.rse.core.virtualobject.decorator\:true,org.eclipse.rse.core.binary.executable.decorator\:true,org.eclipse.rse.core.script.executable.decorator\:true,org.eclipse.rse.core.java.executable.decorator\:true,org.eclipse.rse.core.library.decorator\:true,org.eclipse.rse.core.link.decorator\:true,org.eclipse.rse.subsystems.error.decorator\:true,org.eclipse.team.cvs.ui.decorator\:true,org.eclipse.ui.LinkedResourceDecorator\:true,org.eclipse.ui.VirtualResourceDecorator\:true,org.eclipse.ui.ContentTypeDecorator\:true,org.eclipse.ui.ResourceFilterDecorator\:false, diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/Microboot Download.launch b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/Microboot Download.launch deleted file mode 100644 index 27230a1c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/Microboot Download.launch +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Flash.launch b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Flash.launch deleted file mode 100644 index 323bc27a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Flash.launch +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml deleted file mode 100644 index da411991..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ - -

-
- - - -
-
- - - -
-
- - - - - -
-
- - - - - - -
-
- - - - - -
-
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml deleted file mode 100644 index 7c1fbfe7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload0.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload0.csv deleted file mode 100644 index c78fff60..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload0.csv +++ /dev/null @@ -1,255 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322828294376 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322828294391 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322828294391 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322828294391 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322828294391 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322828294391 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322828294391 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322828294391 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322828294391 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322828294391 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322828294407 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322828294407 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322828294407 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322828294407 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322828294407 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322828294407 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322828294422 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322828294438 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322828294438 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322828294438 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322828294438 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322828294438 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322828294438 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322828294438 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322828294454 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322828294454 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322828294454 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322828294454 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322828294454 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322828294454 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322828294454 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322828294454 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322828294454 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322828294454 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322828294469 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322828294469 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322828294469 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322828294469 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322828294469 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322828294469 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322828294469 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322828294469 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322828294469 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322828294469 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322828294469 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322828294485 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322828294485 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322828294485 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322828294485 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322828294485 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322828294485 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322828294485 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322828294485 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322828294500 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322828294500 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322828294500 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322828294500 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322828294500 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322828294500 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322828294500 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322828294500 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322828294500 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322828294500 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322828294500 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322828294500 -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322828294500 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322828294500 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322828294516 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322828294516 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322828294516 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322828294516 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322828294516 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322828294516 -started,bundle,org.eclipse.ui.intro,3.4.100.v20110425,"org.eclipse.ui.intro",1322828294516 -started,bundle,org.eclipse.ui.intro.universal,3.2.500.v20110510,"org.eclipse.ui.intro.universal",1322828294516 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322828294516 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322828294516 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322828294516 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322828294516 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322828294516 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322828294532 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322828294532 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322828294532 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322828294532 -os,sysinfo,,,"win32",1322828294547 -arch,sysinfo,,,"x86",1322828294547 -ws,sysinfo,,,"win32",1322828294547 -locale,sysinfo,,,"de_DE",1322828294547 -processors,sysinfo,,,"2",1322828294547 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322828294547 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322828294547 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322828294547 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322828294547 -java.specification.version,sysinfo,,,"1.6",1322828294547 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322828294547 -java.version,sysinfo,,,"1.6.0_24",1322828294547 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322828294547 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322828294547 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322828294547 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322828294547 -java.vm.specification.version,sysinfo,,,"1.0",1322828294547 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322828294547 -java.vm.version,sysinfo,,,"19.1-b02",1322828294547 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322828294610 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322828294641 -closed,view,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.internal.introview",1322828294672 -opened,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322828298131 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322828298146 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAutomatically",1322828300736 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828307304 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828332123 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.views.showView",1322828332139 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.views.showView",1322828332139 -started,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322828354369 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322828354837 -started,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322828354931 -started,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322828355196 -started,bundle,org.eclipse.linuxtools.cdt.autotools.ui,1.0.1.201108301805,"org.eclipse.linuxtools.cdt.autotools.ui",1322828355321 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828355508 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322828404664 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322828404757 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828405896 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828408189 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828408205 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828408252 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828420435 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322828421574 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322828422385 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322828422385 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322828424866 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828440466 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828440715 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828442993 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828444959 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828466908 -started,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322828467173 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828467360 -started,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322828468811 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322828478935 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828478935 -started,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322828478967 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828480433 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828480542 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322828489887 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828489887 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828491150 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828491259 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828521274 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828533816 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828534939 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828534955 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828535017 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828547529 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322828548886 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322828554065 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828566561 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828566826 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828568635 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828584204 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828586518 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322828592838 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828592838 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828594117 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322828594211 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828602806 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828603571 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322828607205 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828607954 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828618905 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1322828622587 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322828624974 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828625286 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828628421 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828650012 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828650901 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1322828655784 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322828656267 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828656579 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828659107 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828669605 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828681110 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322828696757 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830635208 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830639120 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830641041 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830641734 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322830642295 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322830642296 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322830642297 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322830642298 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322830642298 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1322830642298 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322830642319 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1322830642337 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1322830642349 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1322830642363 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1322830642380 -stopped,bundle,org.eclipse.cdt.dsf.ui,2.2.0.201109151620,"org.eclipse.cdt.dsf.ui",1322830642394 -stopped,bundle,org.eclipse.cdt.gdb.ui,7.0.0.201109151620,"org.eclipse.cdt.gdb.ui",1322830642400 -stopped,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1322830642418 -stopped,bundle,org.eclipse.cdt.launch,7.0.0.201109151620,"org.eclipse.cdt.launch",1322830642434 -stopped,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322830642434 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.traditional,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.traditional",1322830642448 -stopped,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1322830642465 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322830738989 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322830738995 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322830738997 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322830738999 -started,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322830738999 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322830739004 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322830739007 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322830739009 -started,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322830739009 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322830739010 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322830739010 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322830739012 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322830739014 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322830739017 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322830739017 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322830739019 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322830739021 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322830739023 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322830739024 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322830739025 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322830739062 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322830739066 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322830739067 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322830739069 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322830739069 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322830739070 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322830739071 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322830739073 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322830739075 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322830739075 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322830739077 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322830739078 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322830739079 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322830739079 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322830739080 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322830739081 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322830739082 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322830739084 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322830739084 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322830739085 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322830739086 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322830739087 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322830739088 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322830739089 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322830739090 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322830739091 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322830739092 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322830739092 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322830739093 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322830739094 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload1.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload1.csv deleted file mode 100644 index 012c1e3b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload1.csv +++ /dev/null @@ -1,249 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322830739105 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322830739107 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322830739108 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322830739109 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322830739110 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322830739110 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322830739112 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322830739113 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322830739114 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322830739115 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322830739116 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322830739117 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322830739117 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322830739118 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322830739119 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322830739121 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322830739123 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322830739124 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322830739125 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322830739127 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322830739127 -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322830739130 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322830739132 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322830739133 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322830739135 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322830739137 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322830739137 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322830739138 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322830739140 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322830739140 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322830739141 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322830739142 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322830739143 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322830739145 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322830739146 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322830739147 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322830739160 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322830739161 -os,sysinfo,,,"win32",1322830739167 -arch,sysinfo,,,"x86",1322830739167 -ws,sysinfo,,,"win32",1322830739167 -locale,sysinfo,,,"de_DE",1322830739167 -processors,sysinfo,,,"2",1322830739167 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322830739167 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322830739167 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322830739167 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830739167 -java.specification.version,sysinfo,,,"1.6",1322830739167 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830739167 -java.version,sysinfo,,,"1.6.0_24",1322830739167 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322830739167 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322830739167 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322830739167 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830739167 -java.vm.specification.version,sysinfo,,,"1.0",1322830739167 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830739167 -java.vm.version,sysinfo,,,"19.1-b02",1322830739167 -opened,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322830741593 -started,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322830746462 -started,bundle,org.eclipse.equinox.p2.ui,2.1.0.v20110601,"org.eclipse.equinox.p2.ui",1322830746516 -started,bundle,org.eclipse.equinox.p2.transport.ecf,1.0.0.v20110510,"org.eclipse.equinox.p2.transport.ecf",1322830748220 -started,bundle,org.eclipse.ecf.filetransfer,5.0.0.v20110531-2218,"org.eclipse.ecf.filetransfer",1322830748269 -started,bundle,org.eclipse.ecf.identity,3.1.100.v20110531-2218,"org.eclipse.ecf.identity",1322830748297 -started,bundle,org.eclipse.ecf,3.1.300.v20110531-2218,"org.eclipse.ecf",1322830748359 -started,bundle,org.eclipse.ecf.provider.filetransfer.httpclient,4.0.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer.httpclient",1322830748398 -started,bundle,org.eclipse.ecf.provider.filetransfer,3.2.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer",1322830748401 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830748695 -started,bundle,org.eclipse.equinox.p2.director,2.1.0.v20110504-1715,"org.eclipse.equinox.p2.director",1322830757729 -started,bundle,org.eclipse.equinox.p2.garbagecollector,1.0.200.v20110510,"org.eclipse.equinox.p2.garbagecollector",1322830757836 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.help.installationDialog",1322830757961 -started,bundle,org.eclipse.equinox.p2.touchpoint.eclipse,2.1.1.R37x_v20110815-0935,"org.eclipse.equinox.p2.touchpoint.eclipse",1322830761513 -started,bundle,org.eclipse.equinox.frameworkadmin,2.0.0.v20110502-1955,"org.eclipse.equinox.frameworkadmin",1322830761531 -started,bundle,org.eclipse.equinox.simpleconfigurator.manipulator,2.0.0.v20110502-1955,"org.eclipse.equinox.simpleconfigurator.manipulator",1322830761549 -started,bundle,org.eclipse.equinox.p2.artifact.repository,1.1.101.R37x_v20110714,"org.eclipse.equinox.p2.artifact.repository",1322830761574 -started,bundle,org.eclipse.equinox.p2.extensionlocation,1.2.100.v20110510,"org.eclipse.equinox.p2.extensionlocation",1322830761723 -started,bundle,org.eclipse.equinox.p2.publisher,1.2.0.v20110511,"org.eclipse.equinox.p2.publisher",1322830761770 -started,bundle,org.eclipse.equinox.frameworkadmin.equinox,1.0.300.v20110506,"org.eclipse.equinox.frameworkadmin.equinox",1322830761994 -started,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322830770199 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830770267 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322830770633 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.help.installationDialog",1322830771698 -executed,command,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.install",1322830771699 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322830771760 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322830771760 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322830771761 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322830771761 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322830771761 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1322830771761 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322830771761 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1322830771761 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1322830771761 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1322830771762 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1322830771762 -stopped,bundle,org.eclipse.cdt.dsf.ui,2.2.0.201109151620,"org.eclipse.cdt.dsf.ui",1322830771762 -stopped,bundle,org.eclipse.cdt.gdb.ui,7.0.0.201109151620,"org.eclipse.cdt.gdb.ui",1322830771762 -stopped,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1322830771762 -stopped,bundle,org.eclipse.cdt.launch,7.0.0.201109151620,"org.eclipse.cdt.launch",1322830771762 -stopped,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322830771762 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.traditional,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.traditional",1322830771763 -stopped,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1322830771763 -stopped,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1322830771764 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.ui,1.0.1.201108301805,"org.eclipse.linuxtools.cdt.autotools.ui",1322830771764 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322830771765 -stopped,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322830771765 -stopped,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322830771765 -stopped,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322830771765 -stopped,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322830771766 -stopped,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322830771767 -stopped,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322830771767 -stopped,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322830771768 -stopped,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322830771768 -stopped,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322830771778 -stopped,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322830771780 -stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1322830771781 -stopped,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322830771781 -stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322830771785 -stopped,bundle,org.eclipse.rse.importexport,1.2.200.v201105021534,"org.eclipse.rse.importexport",1322830771785 -stopped,bundle,org.eclipse.rse.subsystems.shells.telnet,1.2.200.v201101042155,"org.eclipse.rse.subsystems.shells.telnet",1322830771785 -stopped,bundle,org.eclipse.rse.shells.ui,3.0.301.R33x_v201107181530,"org.eclipse.rse.shells.ui",1322830771785 -stopped,bundle,org.eclipse.rse.files.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.files.ui",1322830771786 -stopped,bundle,org.eclipse.rse.processes.ui,3.0.300.v201101042155,"org.eclipse.rse.processes.ui",1322830771786 -stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322830771794 -stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1322830771794 -stopped,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322830771795 -stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322830771795 -stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322830771796 -stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322830771797 -stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1322830771797 -stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1322830771797 -stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1322830771797 -stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322830771798 -stopped,bundle,org.eclipse.mylyn.help.ui,3.6.1.v20110830-0100,"org.eclipse.mylyn.help.ui",1322830771798 -stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.1.v20110825-0100,"org.eclipse.mylyn.tasks.bugs",1322830771798 -stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322830771798 -stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322830771800 -stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322830771800 -stopped,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322830771800 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.transport,2.1.0.201109151620,"org.eclipse.cdt.debug.ui.memory.transport",1322830771801 -stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322830771801 -stopped,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322830771802 -stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.ui",1322830771802 -stopped,bundle,org.eclipse.rse.subsystems.files.dstore,2.1.201.R33x_v201109141647,"org.eclipse.rse.subsystems.files.dstore",1322830771803 -stopped,bundle,org.eclipse.rse.subsystems.processes.dstore,2.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.dstore",1322830771803 -stopped,bundle,org.eclipse.rse.subsystems.shells.dstore,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.dstore",1322830771804 -stopped,bundle,org.eclipse.rse.connectorservice.dstore,3.1.200.v201103141607,"org.eclipse.rse.connectorservice.dstore",1322830771804 -stopped,bundle,org.eclipse.rse.subsystems.files.local,2.1.200.v201101042155,"org.eclipse.rse.subsystems.files.local",1322830771805 -stopped,bundle,org.eclipse.rse.subsystems.processes.local,2.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.local",1322830771805 -stopped,bundle,org.eclipse.rse.subsystems.shells.local,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.local",1322830771805 -stopped,bundle,org.eclipse.rse.connectorservice.local,2.1.300.v201101042155,"org.eclipse.rse.connectorservice.local",1322830771805 -stopped,bundle,org.eclipse.rse.subsystems.files.ssh,2.1.200.v201101042155,"org.eclipse.rse.subsystems.files.ssh",1322830771805 -stopped,bundle,org.eclipse.rse.subsystems.shells.ssh,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.ssh",1322830771806 -stopped,bundle,org.eclipse.rse.subsystems.terminals.ssh,1.0.100.v201101042155,"org.eclipse.rse.subsystems.terminals.ssh",1322830771807 -stopped,bundle,org.eclipse.rse.connectorservice.ssh,2.1.200.v201101042155,"org.eclipse.rse.connectorservice.ssh",1322830771807 -stopped,bundle,org.eclipse.rse.connectorservice.telnet,1.2.200.v201101042155,"org.eclipse.rse.connectorservice.telnet",1322830771807 -stopped,bundle,org.eclipse.rse.dstore.security,3.0.300.v201103141607,"org.eclipse.rse.dstore.security",1322830771807 -stopped,bundle,org.eclipse.rse.efs,2.1.300.v201101042155,"org.eclipse.rse.efs",1322830771807 -stopped,bundle,org.eclipse.rse.subsystems.files.ftp,2.1.301.R33x_v201107212114,"org.eclipse.rse.subsystems.files.ftp",1322830771807 -stopped,bundle,org.eclipse.rse.subsystems.shells.core,3.1.201.R33x_v201106281309,"org.eclipse.rse.subsystems.shells.core",1322830771807 -stopped,bundle,org.eclipse.rse.subsystems.files.core,3.2.101.R33x_v201107181530,"org.eclipse.rse.subsystems.files.core",1322830771808 -stopped,bundle,org.eclipse.rse.subsystems.processes.shell.linux,1.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.shell.linux",1322830771808 -stopped,bundle,org.eclipse.rse.subsystems.processes.core,3.1.200.v201101042155,"org.eclipse.rse.subsystems.processes.core",1322830771808 -stopped,bundle,org.eclipse.rse.terminals.ui,1.1.0.v201101042155,"org.eclipse.rse.terminals.ui",1322830771808 -stopped,bundle,org.eclipse.rse.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.ui",1322830771808 -stopped,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322830771809 -stopped,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322830771809 -stopped,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322830771810 -stopped,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322830771810 -stopped,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322830771810 -stopped,bundle,org.eclipse.rse.services.dstore,3.1.201.R33x_v201106291530,"org.eclipse.rse.services.dstore",1322830771810 -stopped,bundle,org.eclipse.dstore.core,3.3.1.R33x_v201107181530,"org.eclipse.dstore.core",1322830771810 -stopped,bundle,org.eclipse.dstore.extra,2.1.300.v201101042155,"org.eclipse.dstore.extra",1322830771810 -stopped,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322830771811 -stopped,bundle,org.eclipse.epp.usagedata.ui,1.3.1.R201106061540,"org.eclipse.epp.usagedata.ui",1322830771811 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322830792356 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322830792357 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322830792359 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322830792359 -started,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322830792359 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322830792360 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322830792360 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322830792360 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322830792360 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322830792360 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322830792361 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322830792361 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322830792361 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322830792361 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322830792361 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322830792361 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322830792363 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322830792363 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322830792363 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322830792363 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322830792364 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322830792364 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322830792364 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322830792364 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322830792365 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322830792366 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322830792366 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322830792366 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322830792366 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322830792366 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322830792366 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322830792366 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322830792366 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322830792366 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322830792367 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322830792368 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322830792369 -started,bundle,org.eclipse.equinox.p2.artifact.repository,1.1.101.R37x_v20110714,"org.eclipse.equinox.p2.artifact.repository",1322830792369 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322830792370 -started,bundle,org.eclipse.equinox.p2.director,2.1.0.v20110504-1715,"org.eclipse.equinox.p2.director",1322830792371 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322830792372 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322830792372 -started,bundle,org.eclipse.equinox.p2.extensionlocation,1.2.100.v20110510,"org.eclipse.equinox.p2.extensionlocation",1322830792373 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322830792374 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322830792374 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322830792375 -started,bundle,org.eclipse.equinox.p2.publisher,1.2.0.v20110511,"org.eclipse.equinox.p2.publisher",1322830792376 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322830792376 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322830792377 -started,bundle,org.eclipse.equinox.p2.touchpoint.eclipse,2.1.1.R37x_v20110815-0935,"org.eclipse.equinox.p2.touchpoint.eclipse",1322830792378 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322830792378 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322830792378 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322830792378 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322830792378 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322830792378 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322830792379 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322830792380 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322830792380 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322830792380 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322830792380 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322830792380 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322830792381 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322830792381 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322830792381 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322830792381 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322830792382 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322830792382 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322830792383 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322830792383 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322830792383 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322830792383 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322830792383 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322830792383 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322830792383 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322830792383 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload10.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload10.csv deleted file mode 100644 index 9d392166..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload10.csv +++ /dev/null @@ -1,251 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841259002 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841259158 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841259314 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841259782 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841259938 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841260062 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841260218 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841260374 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841260530 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841260686 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841260842 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841261373 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841262168 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841263307 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322841265756 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841266006 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841266100 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841274867 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841276739 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841278970 -started,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322841280233 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841282729 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322841290280 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841291465 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322841296972 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841297284 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841297487 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841300529 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841300529 -started,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322841300576 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841303820 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322841307549 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841313508 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841314335 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841315333 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841318937 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841321573 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841323149 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841327252 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841327392 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841327532 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841327688 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841328188 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841331042 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841339841 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841340730 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322841343023 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841343366 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841345067 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841346830 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841349326 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841352446 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841355503 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322841358030 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841385408 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841390307 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841392319 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841394207 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841398247 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841400884 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841403504 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841405454 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841405595 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841405735 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841405860 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841406000 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841406141 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841406531 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841406796 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322841408450 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841416218 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841448230 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841448604 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841448744 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841448900 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841449166 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322841458635 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841480334 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841489538 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841489663 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841490740 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841501270 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841501410 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841513172 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841514920 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841516994 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841521191 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841523734 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841526058 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841526542 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322841528616 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841529100 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841529303 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841531424 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841532407 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841533078 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841534700 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841534841 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841534997 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841536947 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841539958 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841540098 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841540254 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841542828 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841544950 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841547134 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841549817 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322841550909 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841578521 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841586898 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841607896 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841608020 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841608176 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841608301 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841608442 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841608566 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841608816 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841609939 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841610080 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841616866 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841618987 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322841619237 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841640468 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841649672 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841655600 -activated,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322841656599 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322841657441 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841658502 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841661996 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841667363 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841667488 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841673618 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841678283 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841680763 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841681886 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841684429 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841699234 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841705099 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841710356 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841721604 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841774004 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841775845 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841777936 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841791274 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841865545 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841865748 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841869632 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841874890 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322841875451 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841876200 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841876637 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841878228 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841879788 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841880209 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841884889 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841890115 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841895513 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841897728 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841900926 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841901066 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841902720 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841903219 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841908398 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841911596 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841912002 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841912376 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841915933 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841923546 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841927493 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841929989 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841931830 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841934138 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841935870 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841943218 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841951049 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841953451 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841956072 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841960846 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841966150 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841969519 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322841972670 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841975510 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841977413 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841977834 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322841988302 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841996913 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841997053 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842012669 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842012794 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842019580 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842022325 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322842025040 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322842061200 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842061902 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842064383 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842067737 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842067877 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842068517 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842070529 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842073103 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842073119 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842073228 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842073368 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842073634 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842075100 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842075209 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842076660 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322842095130 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842100809 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842100934 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322842102462 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842103601 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322842113070 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842116846 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842117002 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322842120044 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842120590 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322842122072 -error,log,,,"Internal Error",1322842130839 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322842133116 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842133553 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842135316 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322842138374 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842152726 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842152866 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842159168 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842164722 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842180681 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842186531 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842187295 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842187592 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842188481 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842190322 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842196125 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842206967 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842207326 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842208230 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842315184 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842315777 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842317087 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842318772 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842318975 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842320410 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842325371 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842325527 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842326276 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842326432 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842326572 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842326884 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842327212 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload11.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload11.csv deleted file mode 100644 index fd39edff..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload11.csv +++ /dev/null @@ -1,251 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842360627 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842361469 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842361641 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842362655 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322842365322 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842374152 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842375540 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842380330 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842380486 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842380626 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842380766 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842380907 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842381032 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842381203 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842381328 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842381484 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842381624 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842381749 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842381905 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842382046 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842382857 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842382997 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842385166 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842398816 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842400563 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842400703 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842401405 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842402700 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842450077 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842450218 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842460014 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842460170 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842464726 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842469374 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842475458 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842489030 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842497189 -opened,view,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search.ui.views.SearchView",1322842499529 -activated,view,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search.ui.views.SearchView",1322842499592 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842499966 -executed,command,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search.ui.openSearchDialog",1322842499997 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842503429 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842503616 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842508265 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842510262 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842510262 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842513413 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842516284 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842522165 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322842522695 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842528935 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842529044 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842543209 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842543209 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322842544317 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842546236 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322842547624 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842549605 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842562007 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842563801 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842577919 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842597357 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842608558 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842621381 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842626513 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842640912 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842646606 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322842647152 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842647760 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322842658821 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842659585 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842660802 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842660927 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842674842 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842675747 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322842682954 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842683625 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842686121 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842691440 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842692782 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842693734 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842695980 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842696105 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842702080 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842707836 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842714045 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842717867 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842722828 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322842723545 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842725932 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842727851 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842731657 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322842731720 -started,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322842736946 -started,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322842736946 -started,bundle,org.eclipse.core.externaltools,1.0.100.v20110506,"org.eclipse.core.externaltools",1322842737960 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842738225 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842741080 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322842743856 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842744246 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842752405 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842753341 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842768192 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842792466 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842795149 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322842804868 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322842810000 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842816911 -started,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1322842822418 -started,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322842822418 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842822902 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322842823463 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842826521 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842831560 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842833900 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842862276 -failed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322842862307 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322842864086 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842864320 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842870653 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842873321 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842875146 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842885036 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1322842891854 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1322842892400 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1322842892883 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1322842893429 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1322842895176 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1322842895894 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842903117 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842909232 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322842910308 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842910449 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842915332 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842916502 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842919185 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322842920214 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842920402 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842927047 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842938856 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842954363 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842956874 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842959090 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322842963972 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322842964082 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322842995063 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322843009010 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322843009540 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843010429 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843019306 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843019462 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322843020554 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843021380 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843022082 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843030881 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843032566 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843044172 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843045888 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843049195 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843050428 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322843060349 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322843060755 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843062018 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843062845 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843063984 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843076745 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843082657 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322843083453 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843083640 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843091705 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322843096167 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843096354 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843101689 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322843103639 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843103826 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843106619 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322843108694 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843108974 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843111767 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843112765 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843116774 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843119114 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843121579 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843124372 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843129254 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843135214 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322843136134 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843136306 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843139129 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322843141095 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843141407 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843144215 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843148661 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843150626 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843160252 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843160252 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843161749 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843162810 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843163840 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843168551 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843178332 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322843178394 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322843181873 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843183230 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322843185929 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843186163 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843186272 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843189190 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843190562 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843194088 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843195430 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843201732 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843205928 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843229500 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843237206 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843238813 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843240124 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843243618 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843244897 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843246192 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843248111 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843249390 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843253992 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843255989 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322843260014 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843260107 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843260201 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843263446 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843266659 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843271292 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843272150 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843272275 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843272400 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843272556 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843300090 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322843319356 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843321587 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322843323194 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843323755 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843325081 -opened,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322843329855 -activated,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322843329933 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843331352 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322843381257 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843381475 -closed,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322843381475 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843387887 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843390398 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843392395 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843394174 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload12.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload12.csv deleted file mode 100644 index 00219b0f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload12.csv +++ /dev/null @@ -1,251 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843398495 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843403658 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843424172 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322843431692 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843441067 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843446699 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843483031 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843483203 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843504965 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843511127 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843514559 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843516524 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843519691 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843525494 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843529769 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843531188 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843535369 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843538489 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843545884 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843546913 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843552966 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843555056 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843559580 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322843561546 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843561936 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843562030 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843563730 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322843563730 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843576132 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843577552 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843579564 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843580048 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843580172 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843580328 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843580796 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843581077 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843581358 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843581514 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843581686 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843581842 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843582013 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843582622 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843582871 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843583168 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843583324 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843583480 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843583963 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843584338 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843584587 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843584884 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843585055 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843585726 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843586210 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843588082 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843594634 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843600624 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843606942 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843609001 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843609282 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843609984 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843612839 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843615350 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843636254 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843636410 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843638641 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843647611 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843648017 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843649405 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843692945 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843693101 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843701353 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843701509 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843705082 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843706501 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843708810 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843709543 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843722554 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843725143 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843725284 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843725424 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843725580 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843728045 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843728232 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843728326 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843728450 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843731414 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843736094 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843739948 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843743894 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843745844 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843748481 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843751788 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843754393 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843754861 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843755017 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843755173 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843755345 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843755922 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843756265 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843756811 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843757186 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843757357 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843757654 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843764876 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843766982 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843796903 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322843799462 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322843801880 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843806513 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843809305 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843810304 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843813502 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843815545 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843816871 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843819695 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843820085 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843820241 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843820397 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843820553 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843821036 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843821411 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843821707 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843821988 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843822160 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843822316 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843822596 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843823361 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843823720 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843823876 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843824125 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843824312 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843825139 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843825451 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843825779 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843825919 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843826231 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843826403 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843873016 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843873156 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843873296 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843873452 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843873593 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843873764 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843873889 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843874030 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843874170 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843874326 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843874466 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843874622 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843874747 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843874888 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843897898 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843898147 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843898459 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843898584 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843898724 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899239 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899286 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899333 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899380 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899426 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899473 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899520 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899567 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899614 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899660 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899707 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899754 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899801 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843899848 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843900409 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843900799 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843900924 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322843903607 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843904028 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843907492 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843913997 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843917912 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843918302 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843920533 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843922124 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843946882 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843947240 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843947412 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843947537 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843947740 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843948083 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843948426 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843948707 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843948847 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843948988 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843949284 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322843949877 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843950298 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843950454 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843950610 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843950782 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843950953 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843953465 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843955368 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843955633 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843956288 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843956444 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843956585 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843956710 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843957131 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843957521 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843960064 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843960578 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843960625 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843960672 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843960719 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843960766 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843960812 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843963059 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843963168 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843965024 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843968488 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843971467 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843978503 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843981233 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.smartEnter",1322843981638 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843983089 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843985398 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843988471 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843991466 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322843991841 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322843992434 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322843994274 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322843996942 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322844000280 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844005070 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844005194 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322844007519 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844023010 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844037424 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844043680 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844044600 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844057439 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844063070 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844080230 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844098482 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844132693 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322844167044 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844168714 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844170913 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844172582 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844176202 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844177652 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844182676 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload13.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload13.csv deleted file mode 100644 index 9daa991b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload13.csv +++ /dev/null @@ -1,251 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844185031 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844185406 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844185593 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844185764 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844186342 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322844186576 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844186934 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844187574 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844188260 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844188432 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322844188775 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844197511 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844202862 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844205124 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844207027 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844210334 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844215092 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844218540 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844221566 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844225919 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844238118 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844244311 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844247774 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844250957 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844256776 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844279037 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844285027 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844290924 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322844292172 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844292375 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844297960 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844321531 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844325790 -started,bundle,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view",1322844325852 -started,bundle,org.eclipse.tm.terminal,3.1.1.R33x_v201107181530,"org.eclipse.tm.terminal",1322844325852 -opened,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322844326149 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322844326211 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.views.showView",1322844326211 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.views.showView",1322844326211 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844328536 -started,bundle,org.eclipse.tm.terminal.serial,2.1.0.v201101042155,"org.eclipse.tm.terminal.serial",1322844331172 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844337256 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844346149 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844362763 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844365446 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844390484 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844396303 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322844397738 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844397941 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844399500 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844399515 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844400483 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322844400561 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322844402136 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844402386 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844410482 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844418641 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844449139 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322844449170 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844449685 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844450839 -opened,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322844453835 -activated,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322844453944 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844457501 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844468951 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844470339 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844470714 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844482164 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844500463 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844500713 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844500822 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844501399 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844503474 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844510915 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844512147 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844519261 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844520119 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844520135 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844520213 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844522537 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844523754 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844536078 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844541897 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844542911 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844556171 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844558526 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844560414 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844560539 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844561584 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844564205 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322844569883 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322844591754 -activated,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322844626698 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844641612 -activated,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322844648632 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844659146 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844659801 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844659957 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844696118 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844696243 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844759345 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844759610 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844765476 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844766599 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844767395 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844767535 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844767691 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844767894 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844770249 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844770390 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844770515 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844770717 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844771029 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844774617 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844774742 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844775460 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844776068 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844783541 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844783665 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844783946 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322844784570 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.toggleOverwrite",1322844784711 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.toggleOverwrite",1322844790015 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844795007 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844795334 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844799141 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844799702 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844799843 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844807939 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844808220 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844808922 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844809905 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844810685 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844810825 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844811059 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844811511 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844812759 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844812884 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844813025 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844813259 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844813742 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844815848 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844815957 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844817361 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322844828266 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844828578 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844828703 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844830731 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844832447 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844853663 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844854614 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844858249 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322844860043 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844861759 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844862991 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844866813 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844867391 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322844868046 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844872773 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844880588 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322844881743 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844883193 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322844884972 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844891087 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322844892085 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322844895408 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322844910977 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844911445 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844912599 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844916312 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322844923972 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844924299 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322844938324 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844938745 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844950757 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844950882 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322844951038 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844951475 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844952130 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844961583 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844961708 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322844973502 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844978697 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322844978790 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322844997463 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322845048553 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322845093747 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845103965 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845104027 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845113122 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845113777 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322845131982 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845133261 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845133449 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845133979 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845134587 -activated,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322845150609 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845153822 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845153916 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845156209 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845157597 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1322845158908 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845160093 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322845187893 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322845214023 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1322845220512 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1322845221074 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845224163 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845224287 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845224631 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845238780 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845238920 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845252243 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845255784 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322845255831 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845260791 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845263069 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845266532 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845271852 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845278248 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845279527 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322845281337 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322845285689 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845287077 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322845288357 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322845289293 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322845292350 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845311554 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845311679 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322845313800 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845315579 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845316983 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845318028 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322845325875 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845328683 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845334517 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322845338089 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845338370 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845346295 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845357293 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845359898 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322845362004 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845362269 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845369929 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845370615 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845370803 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845373252 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845565880 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322845575394 -activated,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322845575658 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload14.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload14.csv deleted file mode 100644 index 5256f005..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload14.csv +++ /dev/null @@ -1,276 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845579675 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845579814 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845580136 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845584400 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845584551 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845585422 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1322845587258 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845588441 -closed,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1322845588442 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845589865 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845593256 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845597961 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845604460 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322845605349 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845605593 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845612944 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845628127 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845760482 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322845760582 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845770786 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845828796 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322845832338 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845832665 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845838437 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845838671 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845840933 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322845847813 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322845850168 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845852883 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845869684 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1322845869731 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845871088 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322845874458 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845875596 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1322845875659 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322845876002 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845877141 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322845877983 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845878295 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845878451 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322845878467 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322845878467 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845883162 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845883162 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845891727 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1322845891805 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845894348 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322845895050 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322845895549 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845895752 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845895845 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322845898185 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845899776 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845899776 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845900837 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845902538 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845917841 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322845921070 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845924892 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322845927108 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322845930602 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322845933363 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322845935407 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322845941865 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845943098 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1322845943207 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322845943909 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322845944361 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845955250 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322845957840 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322845958323 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322845962364 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845964267 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1322845964360 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322845974142 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845985716 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322845991238 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846028959 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322846031502 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846033873 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322846036728 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322846059285 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322846059550 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322846064733 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322846075242 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846079720 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846084384 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846104399 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846108642 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846132448 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846138719 -activated,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322846151901 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846155114 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846155239 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846166674 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846166674 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322846178280 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846178561 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846178717 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322846181182 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322846184567 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846186112 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322846188888 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322846190152 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322846198311 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322846203708 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322846203802 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322846214223 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322846218326 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322846223458 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322846227654 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846230369 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846230509 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846230665 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846230977 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322846233941 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322846234066 -activated,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322846240010 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846241055 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846257341 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846259198 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322846264938 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846267013 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846290023 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322846290164 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846292660 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846294594 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846294672 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846314266 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846318665 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846322643 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322846328321 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846331644 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846333500 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846338383 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846345980 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846351066 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846374435 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846399629 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322846402593 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846402749 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846408583 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322846412218 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846422921 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846428785 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846433745 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846440017 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322846440500 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322846442029 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846442247 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846445133 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846452747 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846462809 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846486147 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846500842 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846510483 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846514352 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846516239 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846523119 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846525006 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846527877 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846550388 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846557049 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846559295 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846562556 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846573569 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846580418 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846580964 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846587656 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322846603038 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846604910 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846605112 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322846607764 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846610104 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846610245 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846610401 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846611555 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322846612834 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846614394 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846614753 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846627514 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846627701 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846636188 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846636375 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322846647030 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846653223 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1322846653285 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322846659229 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846662583 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846666280 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846672832 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846692691 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846696231 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322846736962 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846737165 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846737274 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846746042 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846746042 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846754403 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846760830 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846777710 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846820391 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846826818 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846839096 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846845507 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846850499 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846856942 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846879234 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846883805 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846888860 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846895505 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322846897299 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846913242 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846916425 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846916581 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846918437 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846918609 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846918936 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846919108 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846919264 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846919420 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846919560 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846919716 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846920699 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322846920855 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846932056 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846938218 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.edit.opendecl",1322846948108 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846948311 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846948467 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846962086 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846978618 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846982015 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322846982015 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846988817 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322846995540 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847005088 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847011546 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847016912 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847021577 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322847034306 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847034478 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847034587 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322847042886 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847043120 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847043370 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847054306 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847054306 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847057285 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322847061121 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847061496 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847061667 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847064600 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847064600 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847079108 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847086674 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847101837 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847102820 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847103491 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847119169 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847125487 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322847126844 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847127062 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847128530 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847128546 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847131151 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322847132337 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322847135644 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847135909 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847140511 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847143366 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322847146346 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847182195 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847186828 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847187390 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload15.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload15.csv deleted file mode 100644 index d603d714..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload15.csv +++ /dev/null @@ -1,251 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847188716 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847198638 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847216531 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322847217389 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847218060 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847226296 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847230196 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847232692 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847234954 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847237840 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847241382 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847244595 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322847246530 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847280397 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847301832 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847301972 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847302939 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847335902 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847336027 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322847339396 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847339755 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847345215 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847362750 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847363296 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847366119 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847379426 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847400595 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847401328 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847404776 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322847422030 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847422451 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847422669 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847432170 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847432809 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847434057 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847436974 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847438831 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847440079 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847440531 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847456942 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847459516 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847463962 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847466256 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847467550 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847467706 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847467847 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847468003 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847468143 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847468299 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847468440 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847468580 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847468752 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847468908 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847469048 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847469547 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847471092 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847557921 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847558608 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847559528 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847561665 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847577094 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847577250 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847578591 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847587109 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847592350 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322847595470 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322847596500 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847616842 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847617888 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847639806 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847639962 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847641085 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847646280 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847648822 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847652551 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322847652644 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322847659805 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322847661942 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847662207 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847666060 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847682925 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847684111 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847684220 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847685281 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847697261 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847703501 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322847705483 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847705639 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847706965 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847706987 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847707689 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322847707720 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847708843 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847710996 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322847712525 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847712837 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847716831 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322847748609 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847752899 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322847759014 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847833097 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847833206 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847839524 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847868571 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847874717 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875247 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875294 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875341 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875388 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875435 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875481 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875528 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875575 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875622 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847875669 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847876012 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847876168 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847876620 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847878882 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847881565 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847888710 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847927819 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847927944 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322847928069 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847930565 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847974198 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847974339 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847979019 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322847979097 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322847980126 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322848003136 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322848007036 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848009626 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848016318 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322848016849 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848020093 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848020296 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848024071 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848092930 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848098717 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848104786 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322848105784 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848107172 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848107422 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848111213 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848180040 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848220678 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848226590 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322848226668 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322848228649 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848244001 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848244297 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848250303 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848252768 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848253470 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848253735 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848260412 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848262518 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848262814 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848266652 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848268852 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848269148 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848272923 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322848273844 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848281052 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848281067 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848282081 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848283891 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848283891 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848285155 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848288930 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848288930 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848290193 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848291644 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848291644 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848292643 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848293501 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848293501 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848294717 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848295716 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322848304998 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848315621 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848315887 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322848317540 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322848318539 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322848320301 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848322782 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848358365 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848367008 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848367304 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322848370908 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848380252 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848380439 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848380439 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322848381001 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848383185 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322848385837 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322848385837 -started,bundle,org.eclipse.ui.views.properties.tabbed,3.5.200.I20110201-0800,"org.eclipse.ui.views.properties.tabbed",1322848390143 -opened,view,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views.PropertySheet",1322848390423 -activated,view,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views.PropertySheet",1322848390517 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322848393762 -closed,view,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views.PropertySheet",1322848393809 -activated,view,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search.ui.views.SearchView",1322848394979 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322848398223 -activated,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322848401172 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322848402467 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322848403262 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322848405119 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848408083 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322848408551 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322848408551 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322848408551 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322848408551 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322848408551 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1322848408551 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322848408551 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1322848408566 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1322848408566 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1322848408566 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1322848408566 -stopped,bundle,org.eclipse.cdt.dsf.ui,2.2.0.201109151620,"org.eclipse.cdt.dsf.ui",1322848408566 -stopped,bundle,org.eclipse.cdt.gdb.ui,7.0.0.201109151620,"org.eclipse.cdt.gdb.ui",1322848408566 -stopped,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1322848408566 -stopped,bundle,org.eclipse.cdt.launch,7.0.0.201109151620,"org.eclipse.cdt.launch",1322848408566 -stopped,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322848408566 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.traditional,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.traditional",1322848408566 -stopped,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1322848408582 -stopped,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1322848408582 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.ui,1.0.1.201108301805,"org.eclipse.linuxtools.cdt.autotools.ui",1322848408582 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322848408582 -stopped,bundle,org.eclipse.cdt.cross.arm.gnu,0.5.4.201111262136,"org.eclipse.cdt.cross.arm.gnu",1322848408582 -stopped,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322848408582 -stopped,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322848408582 -stopped,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322848408582 -stopped,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322848408582 -stopped,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322848408582 -stopped,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322848408582 -stopped,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322848408582 -stopped,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322848408582 -stopped,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322848408582 -stopped,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322848408582 -stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1322848408582 -stopped,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322848408582 -stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322848408582 -stopped,bundle,org.eclipse.rse.importexport,1.2.200.v201105021534,"org.eclipse.rse.importexport",1322848408582 -stopped,bundle,org.eclipse.rse.subsystems.shells.telnet,1.2.200.v201101042155,"org.eclipse.rse.subsystems.shells.telnet",1322848408582 -stopped,bundle,org.eclipse.rse.shells.ui,3.0.301.R33x_v201107181530,"org.eclipse.rse.shells.ui",1322848408582 -stopped,bundle,org.eclipse.rse.files.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.files.ui",1322848408582 -stopped,bundle,org.eclipse.rse.processes.ui,3.0.300.v201101042155,"org.eclipse.rse.processes.ui",1322848408582 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload16.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload16.csv deleted file mode 100644 index d10f4c5b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload16.csv +++ /dev/null @@ -1,265 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322848408582 -stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1322848408582 -stopped,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322848408582 -stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322848408582 -stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322848408582 -stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322848408582 -stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1322848408597 -stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1322848408597 -stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1322848408597 -stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322848408597 -stopped,bundle,org.eclipse.mylyn.help.ui,3.6.1.v20110830-0100,"org.eclipse.mylyn.help.ui",1322848408597 -stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.1.v20110825-0100,"org.eclipse.mylyn.tasks.bugs",1322848408597 -stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322848408597 -stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322848408597 -stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322848408597 -stopped,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322848408597 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.transport,2.1.0.201109151620,"org.eclipse.cdt.debug.ui.memory.transport",1322848408597 -stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322848408597 -stopped,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322848408597 -stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.ui",1322848408597 -stopped,bundle,org.eclipse.rse.subsystems.files.dstore,2.1.201.R33x_v201109141647,"org.eclipse.rse.subsystems.files.dstore",1322848408597 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322848435733 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322848435733 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322848435733 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322848435749 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322848435749 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322848435749 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322848435749 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322848435749 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322848435749 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322848435749 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322848435749 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322848435749 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322848435749 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322848435749 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322848435749 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322848435749 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322848435764 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322848435764 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322848435764 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322848435764 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322848435764 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322848435764 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322848435764 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322848435764 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322848435764 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322848435764 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322848435764 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322848435764 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322848435764 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322848435764 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322848435780 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322848435780 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322848435780 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322848435780 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322848435780 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322848435780 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322848435780 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322848435780 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322848435780 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322848435780 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322848435780 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322848435780 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322848435780 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322848435780 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322848435780 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322848435795 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322848435795 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322848435795 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322848435795 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322848435795 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322848435795 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322848435795 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322848435795 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322848435795 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322848435795 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322848435795 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322848435795 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322848435795 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322848435795 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322848435795 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322848435795 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322848435795 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322848435811 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322848435811 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322848435811 -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322848435811 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322848435811 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322848435811 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322848435811 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322848435811 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322848435811 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322848435811 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322848435811 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322848435811 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322848435811 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322848435827 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322848435827 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322848435827 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322848435827 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322848435827 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322848435827 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322848435827 -os,sysinfo,,,"win32",1322848435827 -arch,sysinfo,,,"x86",1322848435827 -ws,sysinfo,,,"win32",1322848435827 -locale,sysinfo,,,"de_DE",1322848435827 -processors,sysinfo,,,"2",1322848435827 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322848435827 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322848435827 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322848435827 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322848435827 -java.specification.version,sysinfo,,,"1.6",1322848435827 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322848435827 -java.version,sysinfo,,,"1.6.0_24",1322848435827 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322848435827 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322848435827 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322848435827 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322848435827 -java.vm.specification.version,sysinfo,,,"1.0",1322848435827 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322848435827 -java.vm.version,sysinfo,,,"19.1-b02",1322848435827 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848438011 -opened,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322848440787 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322848448915 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848450834 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.window.preferences",1322848450865 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322848453517 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322848453938 -started,bundle,org.eclipse.cdt.cross.arm.gnu,0.5.4.201111262136,"org.eclipse.cdt.cross.arm.gnu",1322848454047 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322848454094 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322848454297 -started,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322848454562 -started,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322848457776 -started,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322848457776 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848466995 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322848473641 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322848476839 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322848483313 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322848489413 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848564917 -failed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322848564995 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848566633 -started,bundle,org.eclipse.core.externaltools,1.0.100.v20110506,"org.eclipse.core.externaltools",1322848566648 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848566898 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848570704 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848574183 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848577927 -started,bundle,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view",1322848578598 -started,bundle,org.eclipse.tm.terminal,3.1.1.R33x_v201107181530,"org.eclipse.tm.terminal",1322848578598 -opened,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322848578816 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1322848578847 -started,bundle,org.eclipse.tm.terminal.serial,2.1.0.v201101042155,"org.eclipse.tm.terminal.serial",1322848580033 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848590221 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848592670 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848597943 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848601312 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848602623 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848607178 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848639377 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848639627 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848642872 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848644713 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848644962 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848651826 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848653542 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848653792 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848657692 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848658815 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848659018 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848662887 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848663620 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848663854 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848667645 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322848674260 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848674588 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848678425 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322848692513 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322848692841 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322848692841 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322848693480 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322848693480 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322848693496 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322848693496 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322848693496 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1322848693496 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322848693511 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1322848693511 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1322848693511 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1322848693511 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1322848693511 -stopped,bundle,org.eclipse.cdt.dsf.ui,2.2.0.201109151620,"org.eclipse.cdt.dsf.ui",1322848693511 -stopped,bundle,org.eclipse.cdt.gdb.ui,7.0.0.201109151620,"org.eclipse.cdt.gdb.ui",1322848693511 -stopped,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1322848693511 -stopped,bundle,org.eclipse.cdt.launch,7.0.0.201109151620,"org.eclipse.cdt.launch",1322848693511 -stopped,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322848693511 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.traditional,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.traditional",1322848693527 -stopped,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1322848693527 -stopped,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1322848693527 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.ui,1.0.1.201108301805,"org.eclipse.linuxtools.cdt.autotools.ui",1322848693527 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322848693527 -stopped,bundle,org.eclipse.cdt.cross.arm.gnu,0.5.4.201111262136,"org.eclipse.cdt.cross.arm.gnu",1322848693527 -stopped,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322848693527 -stopped,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322848693527 -stopped,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322848693527 -stopped,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322848693527 -stopped,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322848693527 -stopped,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322848693527 -stopped,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322848693527 -stopped,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322848693527 -stopped,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322848693527 -stopped,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322848693527 -stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1322848693527 -stopped,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322848693527 -stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322848693543 -stopped,bundle,org.eclipse.rse.importexport,1.2.200.v201105021534,"org.eclipse.rse.importexport",1322848693543 -stopped,bundle,org.eclipse.rse.subsystems.shells.telnet,1.2.200.v201101042155,"org.eclipse.rse.subsystems.shells.telnet",1322848693543 -stopped,bundle,org.eclipse.rse.shells.ui,3.0.301.R33x_v201107181530,"org.eclipse.rse.shells.ui",1322848693543 -stopped,bundle,org.eclipse.rse.files.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.files.ui",1322848693543 -stopped,bundle,org.eclipse.rse.processes.ui,3.0.300.v201101042155,"org.eclipse.rse.processes.ui",1322848693543 -stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322848693543 -stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1322848693543 -stopped,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322848693543 -stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322848693543 -stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322848693543 -stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322848693543 -stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1322848693543 -stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1322848693543 -stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1322848693543 -stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322848693543 -stopped,bundle,org.eclipse.mylyn.help.ui,3.6.1.v20110830-0100,"org.eclipse.mylyn.help.ui",1322848693543 -stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.1.v20110825-0100,"org.eclipse.mylyn.tasks.bugs",1322848693558 -stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322848693558 -stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322848693558 -stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322848693558 -stopped,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322848693558 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.transport,2.1.0.201109151620,"org.eclipse.cdt.debug.ui.memory.transport",1322848693558 -stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322848693558 -stopped,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322848693558 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322855958966 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322855958966 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322855958966 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322855958966 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322855958966 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322855958966 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322855958966 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322855958966 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322855958966 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322855958966 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322855958981 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322855958981 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322855959012 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322855959012 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322855959012 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322855959012 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322855959012 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322855959012 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322855959012 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322855959012 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322855959012 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322855959028 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322855959028 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322855959028 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322855959028 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload17.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload17.csv deleted file mode 100644 index dbae8934..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload17.csv +++ /dev/null @@ -1,261 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322855959059 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322855959059 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322855959059 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322855959059 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322855959059 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322855959059 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322855959059 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322855959059 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322855959075 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322855959075 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322855959075 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322855959075 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322855959075 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322855959075 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322855959075 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322855959075 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322855959075 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322855959075 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322855959075 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322855959075 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322855959106 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322855959122 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322855959122 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322855959122 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322855959122 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322855959122 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322855959137 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322855959137 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322855959137 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322855959137 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322855959137 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322855959137 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322855959137 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322855959137 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322855959153 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322855959153 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322855959168 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322855959168 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322855959168 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322855959168 -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322855959168 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322855959200 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322855959200 -started,bundle,org.eclipse.tm.terminal,3.1.1.R33x_v201107181530,"org.eclipse.tm.terminal",1322855959200 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322855959200 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322855959200 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322855959200 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322855959200 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322855959231 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322855959231 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322855959231 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322855959231 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322855959231 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322855959231 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322855959246 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322855959246 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322855959324 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322855959324 -started,bundle,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view",1322855959324 -os,sysinfo,,,"win32",1322855959340 -arch,sysinfo,,,"x86",1322855959340 -ws,sysinfo,,,"win32",1322855959340 -locale,sysinfo,,,"de_DE",1322855959340 -processors,sysinfo,,,"2",1322855959340 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322855959340 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322855959340 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322855959340 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322855959340 -java.specification.version,sysinfo,,,"1.6",1322855959340 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322855959340 -java.version,sysinfo,,,"1.6.0_24",1322855959340 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322855959340 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322855959340 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322855959340 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322855959340 -java.vm.specification.version,sysinfo,,,"1.0",1322855959340 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322855959340 -java.vm.version,sysinfo,,,"19.1-b02",1322855959340 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322855960073 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322855961306 -started,bundle,org.eclipse.cdt.cross.arm.gnu,0.5.4.201111262136,"org.eclipse.cdt.cross.arm.gnu",1322855961352 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322855961524 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322855961711 -started,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322855962023 -opened,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322855962866 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322855964129 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322855964160 -error,log,,,"Problems occurred when invoking code from plug-in: ""org.eclipse.core.resources"".",1322855967421 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322855968279 -error,log,,,"Errors occurred during the build.",1322855969870 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322855977108 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322855980369 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322855983364 -started,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322855983926 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856017122 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322856020944 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856026326 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856028947 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856031303 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856043939 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856045483 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856047620 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856051739 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856054297 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856060038 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856081332 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322856083048 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856085809 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856089460 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856101628 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856111892 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322856113608 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856116136 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856159987 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856162780 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856165385 -started,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322856173341 -started,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322856173341 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856177163 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322856184386 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856185977 -failed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322856186070 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856188473 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322856208503 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322856224509 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856240296 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.window.preferences",1322856240312 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856242059 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322856242886 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322856242932 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322856242932 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322856242932 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322856242932 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1322856243026 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322856243057 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322856324926 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322856324926 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322856324926 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322856324926 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322856324926 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322856324926 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322856324926 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322856324926 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322856324926 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322856324926 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322856324942 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322856324942 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322856324942 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322856324942 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322856324942 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322856324942 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322856324942 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322856324942 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322856324942 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322856324942 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322856324942 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322856324942 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322856324942 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322856324957 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322856324957 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322856324957 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322856324957 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322856324957 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322856324957 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322856324957 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322856324957 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322856324957 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322856324957 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322856324957 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322856324957 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322856324957 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322856324957 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322856324957 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322856324973 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322856324973 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322856324973 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322856324973 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322856324973 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322856324973 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322856324973 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322856324973 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322856324973 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322856324973 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322856324973 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322856324988 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322856324988 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322856324988 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322856324988 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322856324988 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322856324988 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322856324988 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322856324988 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322856324988 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322856324988 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322856324988 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322856324988 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322856324988 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322856324988 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322856324988 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322856324988 -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322856325004 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322856325004 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322856325004 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322856325004 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322856325004 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322856325004 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322856325004 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322856325004 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322856325004 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322856325004 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322856325004 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322856325004 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322856325004 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322856325020 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322856325020 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322856325020 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322856325020 -os,sysinfo,,,"win32",1322856325020 -arch,sysinfo,,,"x86",1322856325020 -ws,sysinfo,,,"win32",1322856325020 -locale,sysinfo,,,"de_DE",1322856325020 -processors,sysinfo,,,"2",1322856325020 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322856325020 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322856325020 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322856325020 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322856325020 -java.specification.version,sysinfo,,,"1.6",1322856325020 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322856325020 -java.version,sysinfo,,,"1.6.0_24",1322856325020 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322856325020 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322856325020 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322856325020 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322856325020 -java.vm.specification.version,sysinfo,,,"1.0",1322856325020 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322856325020 -java.vm.version,sysinfo,,,"19.1-b02",1322856325020 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322856326112 -started,bundle,org.eclipse.cdt.cross.arm.gnu,0.5.4.201111262136,"org.eclipse.cdt.cross.arm.gnu",1322856326143 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322856326190 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322856326283 -started,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322856326408 -opened,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322856328920 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322856332664 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322856332679 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856336314 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856364410 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322856364519 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856372600 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322856402458 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856433299 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856436794 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322856506947 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856508803 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322856508912 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856512360 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322856524185 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322856529582 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856536665 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.window.preferences",1322856536696 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322856541033 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload2.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload2.csv deleted file mode 100644 index e6e44b66..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload2.csv +++ /dev/null @@ -1,246 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322830792383 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322830792383 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322830792383 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322830792383 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322830792383 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322830792383 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322830792384 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322830792384 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322830792384 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322830792384 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322830792384 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322830792384 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322830792384 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322830792384 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322830792385 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322830792385 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322830792385 -os,sysinfo,,,"win32",1322830792390 -arch,sysinfo,,,"x86",1322830792390 -ws,sysinfo,,,"win32",1322830792390 -locale,sysinfo,,,"de_DE",1322830792390 -processors,sysinfo,,,"2",1322830792390 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322830792390 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322830792390 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322830792390 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830792390 -java.specification.version,sysinfo,,,"1.6",1322830792390 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830792390 -java.version,sysinfo,,,"1.6.0_24",1322830792390 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322830792390 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322830792390 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322830792390 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830792390 -java.vm.specification.version,sysinfo,,,"1.0",1322830792390 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830792390 -java.vm.version,sysinfo,,,"19.1-b02",1322830792390 -started,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322830792842 -started,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322830796096 -started,bundle,org.eclipse.equinox.p2.ui,2.1.0.v20110601,"org.eclipse.equinox.p2.ui",1322830796105 -started,bundle,org.eclipse.equinox.p2.transport.ecf,1.0.0.v20110510,"org.eclipse.equinox.p2.transport.ecf",1322830796952 -started,bundle,org.eclipse.ecf.filetransfer,5.0.0.v20110531-2218,"org.eclipse.ecf.filetransfer",1322830796969 -started,bundle,org.eclipse.ecf.identity,3.1.100.v20110531-2218,"org.eclipse.ecf.identity",1322830796989 -started,bundle,org.eclipse.ecf,3.1.300.v20110531-2218,"org.eclipse.ecf",1322830797006 -started,bundle,org.eclipse.ecf.provider.filetransfer.httpclient,4.0.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer.httpclient",1322830797041 -started,bundle,org.eclipse.ecf.provider.filetransfer,3.2.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer",1322830797042 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830797404 -opened,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322830797611 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.help.installationDialog",1322830802095 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830803495 -executed,command,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.install",1322830803554 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830808384 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830816730 -started,bundle,org.eclipse.rse.services,3.2.101.R33x_v201109141647,"org.eclipse.rse.services",1322830816840 -started,bundle,org.eclipse.rse.core,3.2.1.R33x_v201109141647,"org.eclipse.rse.core",1322830816864 -started,bundle,org.eclipse.rse.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.ui",1322830817248 -started,bundle,org.eclipse.rse.terminals.ui,1.1.0.v201101042155,"org.eclipse.rse.terminals.ui",1322830817250 -started,bundle,org.eclipse.rse.subsystems.files.core,3.2.101.R33x_v201107181530,"org.eclipse.rse.subsystems.files.core",1322830817254 -started,bundle,org.eclipse.rse.subsystems.files.local,2.1.200.v201101042155,"org.eclipse.rse.subsystems.files.local",1322830817255 -started,bundle,org.eclipse.tm.terminal,3.1.1.R33x_v201107181530,"org.eclipse.tm.terminal",1322830817263 -opened,view,org.eclipse.rse.terminals.ui,1.1.0.v201101042155,"org.eclipse.rse.terminals.ui.view.TerminalView",1322830817277 -activated,view,org.eclipse.rse.terminals.ui,1.1.0.v201101042155,"org.eclipse.rse.terminals.ui.view.TerminalView",1322830817313 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.views.showView",1322830817313 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.views.showView",1322830817313 -started,bundle,org.eclipse.rse.subsystems.shells.core,3.1.201.R33x_v201106281309,"org.eclipse.rse.subsystems.shells.core",1322830817494 -started,bundle,org.eclipse.rse.subsystems.shells.local,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.local",1322830817495 -started,bundle,org.eclipse.rse.connectorservice.local,2.1.300.v201101042155,"org.eclipse.rse.connectorservice.local",1322830817496 -started,bundle,org.eclipse.rse.services.local,2.1.300.v201105311250,"org.eclipse.rse.services.local",1322830817496 -started,bundle,org.eclipse.equinox.p2.updatesite,1.0.300.v20110510,"org.eclipse.equinox.p2.updatesite",1322830821072 -started,bundle,org.eclipse.equinox.p2.publisher.eclipse,1.0.0.v20110511,"org.eclipse.equinox.p2.publisher.eclipse",1322830821830 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322830824931 -closed,view,org.eclipse.rse.terminals.ui,1.1.0.v201101042155,"org.eclipse.rse.terminals.ui.view.TerminalView",1322830824952 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830826097 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830835269 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830837499 -started,bundle,org.eclipse.equinox.p2.garbagecollector,1.0.200.v20110510,"org.eclipse.equinox.p2.garbagecollector",1322830877518 -started,bundle,org.eclipse.equinox.frameworkadmin,2.0.0.v20110502-1955,"org.eclipse.equinox.frameworkadmin",1322830879093 -started,bundle,org.eclipse.equinox.simpleconfigurator.manipulator,2.0.0.v20110502-1955,"org.eclipse.equinox.simpleconfigurator.manipulator",1322830879098 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830882843 -executed,command,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.install",1322830882875 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830883175 -started,bundle,org.eclipse.equinox.frameworkadmin.equinox,1.0.300.v20110506,"org.eclipse.equinox.frameworkadmin.equinox",1322830898891 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830902808 -started,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322830903015 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830903121 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322830903492 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322830903701 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322830903702 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322830903702 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322830903702 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322830903702 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1322830903702 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322830903702 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1322830903702 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1322830903702 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1322830903703 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1322830903703 -stopped,bundle,org.eclipse.cdt.dsf.ui,2.2.0.201109151620,"org.eclipse.cdt.dsf.ui",1322830903703 -stopped,bundle,org.eclipse.cdt.gdb.ui,7.0.0.201109151620,"org.eclipse.cdt.gdb.ui",1322830903703 -stopped,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1322830903703 -stopped,bundle,org.eclipse.cdt.launch,7.0.0.201109151620,"org.eclipse.cdt.launch",1322830903703 -stopped,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322830903703 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.traditional,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.traditional",1322830903704 -stopped,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1322830903706 -stopped,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1322830903706 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.ui,1.0.1.201108301805,"org.eclipse.linuxtools.cdt.autotools.ui",1322830903706 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322830903707 -stopped,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322830903707 -stopped,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322830903707 -stopped,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322830903707 -stopped,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322830903707 -stopped,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322830903707 -stopped,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322830903707 -stopped,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322830903707 -stopped,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322830903707 -stopped,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322830903717 -stopped,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322830903718 -stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1322830903718 -stopped,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322830903719 -stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322830903723 -stopped,bundle,org.eclipse.rse.importexport,1.2.200.v201105021534,"org.eclipse.rse.importexport",1322830903724 -stopped,bundle,org.eclipse.rse.subsystems.shells.telnet,1.2.200.v201101042155,"org.eclipse.rse.subsystems.shells.telnet",1322830903725 -stopped,bundle,org.eclipse.rse.shells.ui,3.0.301.R33x_v201107181530,"org.eclipse.rse.shells.ui",1322830903725 -stopped,bundle,org.eclipse.rse.files.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.files.ui",1322830903725 -stopped,bundle,org.eclipse.rse.processes.ui,3.0.300.v201101042155,"org.eclipse.rse.processes.ui",1322830903725 -stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322830903729 -stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1322830903730 -stopped,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322830903730 -stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322830903730 -stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322830903731 -stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322830903731 -stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1322830903731 -stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1322830903731 -stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1322830903731 -stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322830903731 -stopped,bundle,org.eclipse.mylyn.help.ui,3.6.1.v20110830-0100,"org.eclipse.mylyn.help.ui",1322830903731 -stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.1.v20110825-0100,"org.eclipse.mylyn.tasks.bugs",1322830903731 -stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322830903731 -stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322830903732 -stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322830903732 -stopped,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322830903732 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.transport,2.1.0.201109151620,"org.eclipse.cdt.debug.ui.memory.transport",1322830903733 -stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322830903733 -stopped,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322830903733 -stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.ui",1322830903733 -stopped,bundle,org.eclipse.rse.subsystems.files.dstore,2.1.201.R33x_v201109141647,"org.eclipse.rse.subsystems.files.dstore",1322830903733 -stopped,bundle,org.eclipse.rse.subsystems.processes.dstore,2.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.dstore",1322830903733 -stopped,bundle,org.eclipse.rse.subsystems.shells.dstore,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.dstore",1322830903733 -stopped,bundle,org.eclipse.rse.connectorservice.dstore,3.1.200.v201103141607,"org.eclipse.rse.connectorservice.dstore",1322830903733 -stopped,bundle,org.eclipse.rse.subsystems.files.local,2.1.200.v201101042155,"org.eclipse.rse.subsystems.files.local",1322830903733 -stopped,bundle,org.eclipse.rse.subsystems.processes.local,2.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.local",1322830903733 -stopped,bundle,org.eclipse.rse.subsystems.shells.local,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.local",1322830903733 -stopped,bundle,org.eclipse.rse.connectorservice.local,2.1.300.v201101042155,"org.eclipse.rse.connectorservice.local",1322830903733 -stopped,bundle,org.eclipse.rse.subsystems.files.ssh,2.1.200.v201101042155,"org.eclipse.rse.subsystems.files.ssh",1322830903733 -stopped,bundle,org.eclipse.rse.subsystems.shells.ssh,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.ssh",1322830903734 -stopped,bundle,org.eclipse.rse.subsystems.terminals.ssh,1.0.100.v201101042155,"org.eclipse.rse.subsystems.terminals.ssh",1322830903734 -stopped,bundle,org.eclipse.rse.connectorservice.ssh,2.1.200.v201101042155,"org.eclipse.rse.connectorservice.ssh",1322830903734 -stopped,bundle,org.eclipse.rse.connectorservice.telnet,1.2.200.v201101042155,"org.eclipse.rse.connectorservice.telnet",1322830903735 -stopped,bundle,org.eclipse.rse.dstore.security,3.0.300.v201103141607,"org.eclipse.rse.dstore.security",1322830903735 -stopped,bundle,org.eclipse.rse.efs,2.1.300.v201101042155,"org.eclipse.rse.efs",1322830903735 -stopped,bundle,org.eclipse.rse.subsystems.files.ftp,2.1.301.R33x_v201107212114,"org.eclipse.rse.subsystems.files.ftp",1322830903735 -stopped,bundle,org.eclipse.rse.subsystems.shells.core,3.1.201.R33x_v201106281309,"org.eclipse.rse.subsystems.shells.core",1322830903735 -stopped,bundle,org.eclipse.rse.subsystems.files.core,3.2.101.R33x_v201107181530,"org.eclipse.rse.subsystems.files.core",1322830903735 -stopped,bundle,org.eclipse.rse.subsystems.processes.shell.linux,1.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.shell.linux",1322830903735 -stopped,bundle,org.eclipse.rse.subsystems.processes.core,3.1.200.v201101042155,"org.eclipse.rse.subsystems.processes.core",1322830903737 -stopped,bundle,org.eclipse.rse.terminals.ui,1.1.0.v201101042155,"org.eclipse.rse.terminals.ui",1322830903737 -stopped,bundle,org.eclipse.rse.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.ui",1322830903744 -stopped,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322830903744 -stopped,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322830903744 -stopped,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322830903744 -stopped,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322830903744 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322830924093 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322830924095 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322830924096 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322830924097 -started,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322830924097 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322830924097 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322830924097 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322830924098 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322830924098 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322830924098 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322830924098 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322830924098 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322830924098 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322830924098 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322830924100 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322830924100 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322830924101 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322830924102 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322830924102 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322830924102 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322830924103 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322830924103 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322830924103 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322830924103 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322830924104 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322830924105 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322830924105 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322830924105 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322830924105 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322830924105 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322830924105 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322830924105 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322830924105 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322830924105 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322830924106 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322830924107 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322830924108 -started,bundle,org.eclipse.equinox.p2.artifact.repository,1.1.101.R37x_v20110714,"org.eclipse.equinox.p2.artifact.repository",1322830924108 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322830924109 -started,bundle,org.eclipse.equinox.p2.director,2.1.0.v20110504-1715,"org.eclipse.equinox.p2.director",1322830924112 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322830924114 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322830924114 -started,bundle,org.eclipse.equinox.p2.extensionlocation,1.2.100.v20110510,"org.eclipse.equinox.p2.extensionlocation",1322830924114 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322830924115 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322830924115 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322830924116 -started,bundle,org.eclipse.equinox.p2.publisher,1.2.0.v20110511,"org.eclipse.equinox.p2.publisher",1322830924117 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322830924117 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322830924120 -started,bundle,org.eclipse.equinox.p2.touchpoint.eclipse,2.1.1.R37x_v20110815-0935,"org.eclipse.equinox.p2.touchpoint.eclipse",1322830924120 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322830924120 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322830924121 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322830924121 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322830924121 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322830924122 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322830924123 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322830924124 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322830924125 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322830924126 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322830924126 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322830924126 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322830924126 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322830924126 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322830924126 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322830924126 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322830924127 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322830924127 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322830924130 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322830924130 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322830924130 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322830924130 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322830924130 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322830924130 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322830924130 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322830924130 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload3.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload3.csv deleted file mode 100644 index 6ae462d0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload3.csv +++ /dev/null @@ -1,273 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322830924130 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322830924130 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322830924131 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322830924131 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322830924131 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322830924131 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322830924132 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322830924132 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322830924132 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322830924132 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322830924132 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322830924132 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322830924132 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322830924132 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322830924133 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322830924133 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322830924134 -os,sysinfo,,,"win32",1322830924139 -arch,sysinfo,,,"x86",1322830924139 -ws,sysinfo,,,"win32",1322830924139 -locale,sysinfo,,,"de_DE",1322830924139 -processors,sysinfo,,,"2",1322830924139 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322830924139 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322830924139 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322830924139 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830924139 -java.specification.version,sysinfo,,,"1.6",1322830924139 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830924139 -java.version,sysinfo,,,"1.6.0_24",1322830924139 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322830924139 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322830924139 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322830924139 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830924139 -java.vm.specification.version,sysinfo,,,"1.0",1322830924139 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322830924139 -java.vm.version,sysinfo,,,"19.1-b02",1322830924139 -started,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322830924826 -opened,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322830927726 -started,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322830933286 -started,bundle,org.eclipse.equinox.p2.ui,2.1.0.v20110601,"org.eclipse.equinox.p2.ui",1322830933300 -started,bundle,org.eclipse.equinox.p2.transport.ecf,1.0.0.v20110510,"org.eclipse.equinox.p2.transport.ecf",1322830933494 -started,bundle,org.eclipse.ecf.filetransfer,5.0.0.v20110531-2218,"org.eclipse.ecf.filetransfer",1322830933495 -started,bundle,org.eclipse.ecf.identity,3.1.100.v20110531-2218,"org.eclipse.ecf.identity",1322830933495 -started,bundle,org.eclipse.ecf,3.1.300.v20110531-2218,"org.eclipse.ecf",1322830933547 -started,bundle,org.eclipse.ecf.provider.filetransfer.httpclient,4.0.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer.httpclient",1322830933547 -started,bundle,org.eclipse.ecf.provider.filetransfer,3.2.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer",1322830933549 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830933826 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322830935230 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322830953607 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830955884 -executed,command,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.install",1322830955916 -started,bundle,org.eclipse.equinox.p2.updatesite,1.0.300.v20110510,"org.eclipse.equinox.p2.updatesite",1322830958443 -started,bundle,org.eclipse.equinox.p2.publisher.eclipse,1.0.0.v20110511,"org.eclipse.equinox.p2.publisher.eclipse",1322830959176 -started,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322830959285 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322830959379 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322830959738 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322830960752 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322830960752 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322830960752 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322830960752 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1322830960752 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1322830960752 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1322830960752 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1322830960752 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.dsf.ui,2.2.0.201109151620,"org.eclipse.cdt.dsf.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.gdb.ui,7.0.0.201109151620,"org.eclipse.cdt.gdb.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1322830960752 -stopped,bundle,org.eclipse.cdt.launch,7.0.0.201109151620,"org.eclipse.cdt.launch",1322830960752 -stopped,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.traditional,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.traditional",1322830960752 -stopped,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1322830960752 -stopped,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1322830960752 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.ui,1.0.1.201108301805,"org.eclipse.linuxtools.cdt.autotools.ui",1322830960752 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322830960752 -stopped,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322830960752 -stopped,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322830960752 -stopped,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322830960752 -stopped,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322830960752 -stopped,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322830960767 -stopped,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322830960767 -stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1322830960767 -stopped,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322830960767 -stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322830960767 -stopped,bundle,org.eclipse.rse.importexport,1.2.200.v201105021534,"org.eclipse.rse.importexport",1322830960767 -stopped,bundle,org.eclipse.rse.subsystems.shells.telnet,1.2.200.v201101042155,"org.eclipse.rse.subsystems.shells.telnet",1322830960767 -stopped,bundle,org.eclipse.rse.shells.ui,3.0.301.R33x_v201107181530,"org.eclipse.rse.shells.ui",1322830960767 -stopped,bundle,org.eclipse.rse.files.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.files.ui",1322830960767 -stopped,bundle,org.eclipse.rse.processes.ui,3.0.300.v201101042155,"org.eclipse.rse.processes.ui",1322830960767 -stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322830960783 -stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1322830960783 -stopped,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322830960783 -stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322830960783 -stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322830960783 -stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322830960783 -stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1322830960783 -stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1322830960783 -stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1322830960783 -stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322830960783 -stopped,bundle,org.eclipse.mylyn.help.ui,3.6.1.v20110830-0100,"org.eclipse.mylyn.help.ui",1322830960783 -stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.1.v20110825-0100,"org.eclipse.mylyn.tasks.bugs",1322830960783 -stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322830960783 -stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322830960783 -stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322830960783 -stopped,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322830960783 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.transport,2.1.0.201109151620,"org.eclipse.cdt.debug.ui.memory.transport",1322830960783 -stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322830960783 -stopped,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322830960783 -stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.ui",1322830960783 -stopped,bundle,org.eclipse.rse.subsystems.files.dstore,2.1.201.R33x_v201109141647,"org.eclipse.rse.subsystems.files.dstore",1322830960783 -stopped,bundle,org.eclipse.rse.subsystems.processes.dstore,2.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.dstore",1322830960783 -stopped,bundle,org.eclipse.rse.subsystems.shells.dstore,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.dstore",1322830960783 -stopped,bundle,org.eclipse.rse.connectorservice.dstore,3.1.200.v201103141607,"org.eclipse.rse.connectorservice.dstore",1322830960783 -stopped,bundle,org.eclipse.rse.subsystems.files.local,2.1.200.v201101042155,"org.eclipse.rse.subsystems.files.local",1322830960783 -stopped,bundle,org.eclipse.rse.subsystems.processes.local,2.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.local",1322830960783 -stopped,bundle,org.eclipse.rse.subsystems.shells.local,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.local",1322830960783 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322831077949 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322831077949 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322831077949 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322831077949 -started,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322831077949 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322831077949 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322831077965 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322831077965 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322831077965 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322831077965 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322831077965 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322831077965 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322831077965 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322831077965 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322831077965 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322831077965 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322831077965 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322831077965 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322831077965 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322831077965 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322831077965 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322831077965 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322831077965 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322831077981 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322831077981 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322831077981 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322831077981 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322831077981 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322831077981 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322831077981 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322831077981 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322831077981 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322831077981 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322831077981 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322831077981 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322831077981 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322831077981 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322831077981 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322831077996 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322831077996 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322831077996 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322831077996 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322831077996 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322831077996 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322831077996 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322831077996 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322831077996 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322831077996 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322831077996 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322831077996 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322831077996 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322831077996 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322831078012 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322831078012 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322831078012 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322831078012 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322831078012 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322831078012 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322831078012 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322831078012 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322831078012 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322831078012 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322831078012 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322831078012 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322831078012 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322831078012 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322831078012 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322831078012 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322831078027 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322831078027 -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322831078027 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322831078027 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322831078027 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322831078027 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322831078027 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322831078027 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322831078027 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322831078027 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322831078027 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322831078027 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322831078027 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322831078027 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322831078043 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322831078043 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322831078043 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322831078043 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322831078043 -os,sysinfo,,,"win32",1322831078043 -arch,sysinfo,,,"x86",1322831078043 -ws,sysinfo,,,"win32",1322831078043 -locale,sysinfo,,,"de_DE",1322831078043 -processors,sysinfo,,,"2",1322831078043 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322831078043 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322831078043 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322831078043 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322831078043 -java.specification.version,sysinfo,,,"1.6",1322831078043 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322831078043 -java.version,sysinfo,,,"1.6.0_24",1322831078043 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322831078043 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322831078043 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322831078043 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322831078043 -java.vm.specification.version,sysinfo,,,"1.0",1322831078043 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322831078043 -java.vm.version,sysinfo,,,"19.1-b02",1322831078043 -started,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322831078542 -opened,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322831082692 -started,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322831083253 -started,bundle,org.eclipse.equinox.p2.ui,2.1.0.v20110601,"org.eclipse.equinox.p2.ui",1322831083269 -started,bundle,org.eclipse.equinox.p2.transport.ecf,1.0.0.v20110510,"org.eclipse.equinox.p2.transport.ecf",1322831084267 -started,bundle,org.eclipse.ecf.filetransfer,5.0.0.v20110531-2218,"org.eclipse.ecf.filetransfer",1322831084798 -started,bundle,org.eclipse.ecf.identity,3.1.100.v20110531-2218,"org.eclipse.ecf.identity",1322831084829 -started,bundle,org.eclipse.ecf,3.1.300.v20110531-2218,"org.eclipse.ecf",1322831084876 -started,bundle,org.eclipse.ecf.provider.filetransfer.httpclient,4.0.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer.httpclient",1322831084923 -started,bundle,org.eclipse.ecf.provider.filetransfer,3.2.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer",1322831084938 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831085172 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322831091225 -started,bundle,org.eclipse.equinox.p2.director,2.1.0.v20110504-1715,"org.eclipse.equinox.p2.director",1322831094080 -started,bundle,org.eclipse.equinox.p2.garbagecollector,1.0.200.v20110510,"org.eclipse.equinox.p2.garbagecollector",1322831100757 -started,bundle,org.eclipse.equinox.p2.artifact.repository,1.1.101.R37x_v20110714,"org.eclipse.equinox.p2.artifact.repository",1322831111583 -started,bundle,org.eclipse.equinox.p2.updatesite,1.0.300.v20110510,"org.eclipse.equinox.p2.updatesite",1322831111942 -started,bundle,org.eclipse.equinox.p2.publisher,1.2.0.v20110511,"org.eclipse.equinox.p2.publisher",1322831111957 -started,bundle,org.eclipse.equinox.p2.publisher.eclipse,1.0.0.v20110511,"org.eclipse.equinox.p2.publisher.eclipse",1322831112597 -started,bundle,org.eclipse.equinox.p2.extensionlocation,1.2.100.v20110510,"org.eclipse.equinox.p2.extensionlocation",1322831112644 -started,bundle,org.eclipse.equinox.p2.touchpoint.eclipse,2.1.1.R37x_v20110815-0935,"org.eclipse.equinox.p2.touchpoint.eclipse",1322831112753 -started,bundle,org.eclipse.equinox.frameworkadmin,2.0.0.v20110502-1955,"org.eclipse.equinox.frameworkadmin",1322831114937 -started,bundle,org.eclipse.equinox.simpleconfigurator.manipulator,2.0.0.v20110502-1955,"org.eclipse.equinox.simpleconfigurator.manipulator",1322831114953 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831120537 -executed,command,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.install",1322831120569 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831120865 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831137151 -started,bundle,org.eclipse.equinox.frameworkadmin.equinox,1.0.300.v20110506,"org.eclipse.equinox.frameworkadmin.equinox",1322831137198 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831139554 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831140911 -started,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322831141176 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831141285 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322831141597 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322831141878 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322831141878 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322831141878 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322831141878 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322831141878 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1322831141878 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322831141878 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1322831141878 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1322831141878 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1322831141878 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1322831141878 -stopped,bundle,org.eclipse.cdt.dsf.ui,2.2.0.201109151620,"org.eclipse.cdt.dsf.ui",1322831141878 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload4.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload4.csv deleted file mode 100644 index 90753a2d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload4.csv +++ /dev/null @@ -1,263 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -stopped,bundle,org.eclipse.cdt.gdb.ui,7.0.0.201109151620,"org.eclipse.cdt.gdb.ui",1322831141894 -stopped,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1322831141894 -stopped,bundle,org.eclipse.cdt.launch,7.0.0.201109151620,"org.eclipse.cdt.launch",1322831141894 -stopped,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322831141894 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.traditional,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.traditional",1322831141894 -stopped,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1322831141894 -stopped,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1322831141894 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.ui,1.0.1.201108301805,"org.eclipse.linuxtools.cdt.autotools.ui",1322831141894 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322831141894 -stopped,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322831141894 -stopped,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322831141894 -stopped,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322831141894 -stopped,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322831141909 -stopped,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322831141909 -stopped,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322831141909 -stopped,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322831141909 -stopped,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322831141909 -stopped,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322831141909 -stopped,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322831141909 -stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1322831141909 -stopped,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322831141909 -stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322831141909 -stopped,bundle,org.eclipse.rse.importexport,1.2.200.v201105021534,"org.eclipse.rse.importexport",1322831141909 -stopped,bundle,org.eclipse.rse.subsystems.shells.telnet,1.2.200.v201101042155,"org.eclipse.rse.subsystems.shells.telnet",1322831141909 -stopped,bundle,org.eclipse.rse.shells.ui,3.0.301.R33x_v201107181530,"org.eclipse.rse.shells.ui",1322831141909 -stopped,bundle,org.eclipse.rse.files.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.files.ui",1322831141909 -stopped,bundle,org.eclipse.rse.processes.ui,3.0.300.v201101042155,"org.eclipse.rse.processes.ui",1322831141909 -stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322831141925 -stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1322831141925 -stopped,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322831141925 -stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322831141925 -stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322831141925 -stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322831141925 -stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1322831141925 -stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1322831141925 -stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1322831141925 -stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322831141925 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322831170535 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322831170551 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322831170551 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322831170551 -started,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322831170551 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322831170551 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322831170551 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322831170551 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322831170551 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322831170551 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322831170551 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322831170551 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322831170551 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322831170551 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322831170567 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322831170567 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322831170567 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322831170567 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322831170567 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322831170567 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322831170567 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322831170567 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322831170567 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322831170567 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322831170567 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322831170567 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322831170567 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322831170567 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322831170567 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322831170567 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322831170567 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322831170567 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322831170567 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322831170567 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322831170567 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322831170582 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322831170582 -started,bundle,org.eclipse.equinox.p2.artifact.repository,1.1.101.R37x_v20110714,"org.eclipse.equinox.p2.artifact.repository",1322831170582 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322831170582 -started,bundle,org.eclipse.equinox.p2.director,2.1.0.v20110504-1715,"org.eclipse.equinox.p2.director",1322831170582 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322831170582 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322831170598 -started,bundle,org.eclipse.equinox.p2.extensionlocation,1.2.100.v20110510,"org.eclipse.equinox.p2.extensionlocation",1322831170598 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322831170598 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322831170598 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322831170598 -started,bundle,org.eclipse.equinox.p2.publisher,1.2.0.v20110511,"org.eclipse.equinox.p2.publisher",1322831170598 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322831170598 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322831170598 -started,bundle,org.eclipse.equinox.p2.touchpoint.eclipse,2.1.1.R37x_v20110815-0935,"org.eclipse.equinox.p2.touchpoint.eclipse",1322831170598 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322831170598 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322831170598 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322831170598 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322831170598 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322831170598 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322831170598 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322831170598 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322831170598 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322831170598 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322831170598 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322831170598 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322831170598 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322831170598 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322831170598 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322831170613 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322831170613 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322831170613 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322831170613 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322831170613 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322831170613 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322831170613 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322831170613 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322831170613 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322831170613 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322831170613 -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322831170613 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322831170613 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322831170613 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322831170613 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322831170613 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322831170613 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322831170613 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322831170613 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322831170613 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322831170613 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322831170613 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322831170613 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322831170613 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322831170613 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322831170613 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322831170613 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322831170613 -started,bundle,org.eclipse.cdt.cross.arm.gnu,0.5.4.201111262136,"org.eclipse.cdt.cross.arm.gnu",1322831170613 -os,sysinfo,,,"win32",1322831170613 -arch,sysinfo,,,"x86",1322831170613 -ws,sysinfo,,,"win32",1322831170613 -locale,sysinfo,,,"de_DE",1322831170613 -processors,sysinfo,,,"2",1322831170613 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322831170613 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322831170613 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322831170613 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322831170613 -java.specification.version,sysinfo,,,"1.6",1322831170613 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322831170613 -java.version,sysinfo,,,"1.6.0_24",1322831170613 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322831170613 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322831170613 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322831170613 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322831170613 -java.vm.specification.version,sysinfo,,,"1.0",1322831170613 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322831170613 -java.vm.version,sysinfo,,,"19.1-b02",1322831170613 -started,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322831170816 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831173874 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322831174248 -opened,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322831175278 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831176354 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831179271 -started,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322831179287 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831179396 -executed,command,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring.commands.deleteResources",1322831179412 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322831179412 -started,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322831189708 -started,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322831189817 -started,bundle,org.eclipse.linuxtools.cdt.autotools.ui,1.0.1.201108301805,"org.eclipse.linuxtools.cdt.autotools.ui",1322831189989 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831190129 -started,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322831215697 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831217164 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831220970 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831251437 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322831255353 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831257817 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831257927 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831259892 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831260547 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831265103 -executed,command,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring.commands.deleteResources",1322831265103 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322831265103 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831269814 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831414192 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322831414285 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831420588 -started,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322831422132 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831429105 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831429417 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831429511 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831436500 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831439713 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831449344 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322831449505 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831450110 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831459375 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322831463131 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831466224 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831466284 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831466284 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831468009 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831469593 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831469710 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831469710 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831471469 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831471566 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831475369 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831477923 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831562273 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322831562351 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831563162 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831564160 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831564160 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831565814 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831565954 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831571149 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831575907 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322831581508 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831582022 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831582054 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831582303 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831582412 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831586640 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831588730 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322831594019 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831596000 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831611959 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831612021 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831614112 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322831626794 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322831634173 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322831642129 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322831648806 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831652659 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322831652722 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831654874 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831655046 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831655046 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831655982 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831691300 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831697540 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831699818 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831713078 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322831713156 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831714872 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831720691 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831725449 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831725464 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831725574 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831727492 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831729162 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831753778 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831755822 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831815508 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322831815539 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322831815554 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831837628 -started,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322831845210 -executed,command,,,"AUTOGEN:::org.eclipse.cdt.debug.ui.CEditor.BreakpointRulerActions/org.eclipse.cdt.debug.ui.CEditor.RulerTobbleBreakpointAction",1322831845241 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322831850264 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831850280 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831851934 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322831854991 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831869094 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322831869203 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831877518 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831879655 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831915582 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322831915675 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload5.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload5.csv deleted file mode 100644 index ff5cfe62..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload5.csv +++ /dev/null @@ -1,276 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322831917032 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322831924286 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322831926361 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322832005001 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832021084 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832021178 -started,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1322832022348 -started,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322832022426 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832023081 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832026997 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322832027418 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832034828 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832047542 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322832047651 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832050116 -started,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322832127320 -started,bundle,org.eclipse.core.externaltools,1.0.100.v20110506,"org.eclipse.core.externaltools",1322832127461 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322832197146 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832205008 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832205118 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832210796 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832233915 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832233993 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832239765 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832240062 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832241793 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832241824 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832241856 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832274350 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322832278110 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832278984 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832282088 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832284428 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832287330 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832287423 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322832287766 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322832290434 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832290762 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832329106 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322832329980 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832353458 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832368294 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322832368325 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832372209 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832416861 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832418808 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322832427372 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832435874 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832435968 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832436779 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832441131 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322832441209 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322832442208 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832442520 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832447562 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832452490 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832458365 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322832458397 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832461066 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832472023 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832472111 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322832472704 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322832473576 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832473901 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832478629 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832481346 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832484350 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322832484412 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832486412 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322832568325 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322832581711 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832585767 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832585845 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322832586781 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322832587452 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832587811 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832592778 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322832598425 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832600656 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322832630732 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322832642418 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832645809 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832645902 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832646511 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832648512 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322832648606 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322832649304 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832649665 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832654928 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832664291 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832675609 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322832675655 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832677668 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1322832699477 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322832707261 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832710100 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832710209 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322832710646 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322832711723 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832712019 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832717518 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832720512 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832734755 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322832734820 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832737187 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832783258 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832783398 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832792852 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832814832 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832814910 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322832818615 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832821217 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832881754 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322832883298 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322832887510 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832892128 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832927923 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322832931115 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832933068 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832960241 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322832960382 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322832961021 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832962581 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322832997096 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833017162 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833024682 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322833028925 -executed,command,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.commands.runCodanCommand",1322833031421 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833031751 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833037582 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833037712 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322833043605 -executed,command,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.commands.runCodanCommand",1322833045495 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833045823 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833050190 -opened,view,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search.ui.views.SearchView",1322833068713 -activated,view,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search.ui.views.SearchView",1322833068822 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322833092893 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833117890 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322833119018 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833120812 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322833132672 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833132953 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833133078 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322833158195 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322833159630 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322833160363 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322833161627 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833161970 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833166347 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322833169498 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322833170855 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322833172025 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833172306 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833175879 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833180362 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833324203 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322833324500 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1322833344499 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322833345622 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833345934 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833352703 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322833355543 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833361845 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833368308 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322833404017 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322833407542 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833547318 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322833547474 -error,log,,,"Variable references non-existent resource : ${workspace_loc:/Prog../../../Host/MicroBoot.exe}",1322833551606 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833551668 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833571226 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833575626 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833599027 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322833599090 -error,log,,,"Variable references non-existent resource : ${workspace_loc:/../../Host/MicroBoot.exe}",1322833602647 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833602680 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833632051 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833635639 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833642925 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322833642956 -error,log,,,"Variable references non-existent resource : ${workspace_loc:/../../../Host/MicroBoot.exe}",1322833646513 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833646544 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833649274 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833653720 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833692439 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322833692486 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833696526 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833704186 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322833706206 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833708433 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322833717855 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833719649 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322833719743 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833725272 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322833727875 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833730916 -failed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322833730947 -error,log,,,"Reference to undefined variable BuildArtifactFileBaseName",1322833737176 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833737208 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833743653 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833745135 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833751875 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833761001 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833772903 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322833818923 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833824727 -failed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322833824758 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322833825944 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833827977 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322833851201 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322833856021 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322833889000 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833894428 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322833894506 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833899920 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833900060 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833901082 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322833936684 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833944203 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833944296 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833971260 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833971261 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833977960 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833977960 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322833988600 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833988818 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833988912 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833998359 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322833998359 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322834011391 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834015160 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322834031160 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834034675 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322834034738 -error,log,,,"Reference to undefined variable OUTPUT_FILE_NAME",1322834038690 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834038736 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834043540 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834047869 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322834075932 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322834090408 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834102292 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322834102370 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834107481 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322834110294 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834115721 -failed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322834115736 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322834116532 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322834117678 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834124229 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834126943 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322834129350 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834133106 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834135882 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834142544 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834152808 -failed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322834152855 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834155570 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834158284 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322834159095 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834159360 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834162184 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322834163432 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834163666 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834166458 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834223321 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834227611 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.window.preferences",1322834227657 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834231370 -started,bundle,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view",1322834234537 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834429142 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.window.preferences",1322834429187 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834434710 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834457080 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.window.preferences",1322834457221 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload6.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload6.csv deleted file mode 100644 index 8eb4315a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload6.csv +++ /dev/null @@ -1,276 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322834468520 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834468832 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834472513 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322834474916 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834475212 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834478847 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildProject",1322834487733 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834488045 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834490947 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322834493146 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834493443 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834496360 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322834508155 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322834508375 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322834508470 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322834514298 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834521630 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834527362 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322834528241 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834528465 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834531207 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834536397 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834541734 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322834542600 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834542740 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834545470 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322834555821 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322834555821 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322834558832 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834603032 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834611019 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834613141 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834613468 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834615949 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834628054 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834635495 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834649395 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834651735 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834654605 -executed,command,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring.commands.deleteResources",1322834654605 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322834654605 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834658786 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834670970 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834673606 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834694292 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834697238 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322834764476 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834803496 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322834803636 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834807489 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322834821826 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834823760 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322834823838 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834827255 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322834850873 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322834886035 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322834893726 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322834909045 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322834915894 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322834988867 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322834988991 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322834993088 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322834995876 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322834996154 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322834996154 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322834997761 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322834997928 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322834999663 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835014845 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835072581 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322835072627 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835077743 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835157492 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835160217 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322835233509 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322835238454 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322835268219 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322835275208 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835300058 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322835300105 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322835304835 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835316085 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835339820 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322835344888 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835350868 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835399769 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322835399862 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835402421 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322835408395 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322835457442 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835494429 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322835494461 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322835494835 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322835498189 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835504679 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322835544412 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322835568873 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835601289 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322835601352 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322835603629 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835609495 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835623285 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322835623317 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835626421 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835818046 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835822832 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835880186 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835884008 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322835890888 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322835935888 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835943579 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322835943594 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835949179 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835974576 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835976432 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835976448 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835976588 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835982563 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835986681 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835988163 -executed,command,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring.commands.deleteResources",1322835988195 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322835988195 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322835997766 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836019871 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836045002 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836049682 -executed,command,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.excludeCommand",1322836049838 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836058169 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836064050 -executed,command,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring.commands.deleteResources",1322836064066 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322836064066 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836081195 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836159657 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836168054 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836170812 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322836171036 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836178417 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836185328 -executed,command,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring.commands.deleteResources",1322836185328 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322836185328 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836189665 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836244288 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836253544 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322836307036 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836312293 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322836312325 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836318315 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322836323915 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836328112 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322836328143 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836335647 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836346364 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322836349468 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836352713 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836356192 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322836356223 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836364725 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322836392867 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836398983 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322836417843 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836421837 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836436017 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322836436033 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836439527 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836440822 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322836440837 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322836444909 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836463832 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836465158 -executed,command,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring.commands.deleteResources",1322836465173 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322836465173 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836469807 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836519898 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836525358 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836526263 -executed,command,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring.commands.deleteResources",1322836526279 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322836526279 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836529929 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836557011 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836571456 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836579896 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322836579927 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836586323 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322836615386 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836639009 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836650350 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836667822 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836677011 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836751563 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322836751610 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322836767413 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836771500 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836804830 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836813330 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836813517 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836819975 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836834967 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322836835014 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836835997 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836850161 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836850768 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836883747 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322836925685 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322836925778 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322836934717 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322836944506 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322836975628 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322836975753 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322836976205 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322836977812 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836978218 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322836986174 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322836988467 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322836989668 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322836990666 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322837000557 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837001165 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322837009534 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322837009613 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322837022611 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837023289 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322837023875 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837024286 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322837024731 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837025064 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322837025470 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837025782 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322837026162 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837026485 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322837026895 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837027191 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322837027784 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837028111 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1322837029375 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322837030327 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837043977 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837045365 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837046722 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322837049873 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837058079 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1322837058141 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837059249 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837060747 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837071199 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837078047 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837078156 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837078546 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837078687 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837079030 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837079170 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837079498 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837079654 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837080028 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837080153 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837080652 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837080824 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837081183 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837081307 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837081760 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837081885 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837082524 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837082633 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837083101 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837083195 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837083679 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837083772 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837084162 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837084287 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837084661 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837084802 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837085129 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837085285 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837085722 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837086050 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837086533 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload7.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload7.csv deleted file mode 100644 index 61282458..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload7.csv +++ /dev/null @@ -1,276 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837086658 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837087033 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837087173 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837087547 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837087688 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837088062 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837088203 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837088593 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837088717 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837089076 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837089217 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837089591 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837089747 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837090121 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837090262 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837090699 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837090823 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837091213 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837091354 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837092493 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837092649 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837092945 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837093101 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837093444 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837093616 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837093928 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837094084 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837094411 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837095269 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837095769 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837095940 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837096346 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837096549 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837097157 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837097329 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837097687 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837097859 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837098171 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837098343 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837098764 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837098951 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837099294 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837099528 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837099762 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837099949 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837100277 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837100449 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837100792 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837100948 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837101275 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837101431 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837101759 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837101915 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837102367 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837102601 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837102991 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837103147 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837103475 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837103647 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837104099 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837104317 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837104785 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837104973 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837105269 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837105456 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837105909 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837106236 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837110823 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837110963 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837111291 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837111447 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837111790 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837111961 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837112305 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837112476 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837112819 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837112991 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837113303 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837113506 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837113865 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837114130 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837114489 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837114738 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837115081 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837115315 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837115690 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837115877 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837116251 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837116501 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837117078 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837117281 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837117655 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837117858 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837118279 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837118451 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837118810 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837118997 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837119340 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837119512 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837119871 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837120027 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837120354 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837120510 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837120838 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837120994 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837121353 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837121509 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837125034 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837125175 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837125689 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837125861 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837126251 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837126423 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837126891 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837127047 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837128981 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837129574 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837130057 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837130541 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837131149 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837131321 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837132226 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837133411 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837133583 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837133739 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837134332 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837134503 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837134659 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837135018 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837135190 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837135346 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837135689 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837135845 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837136032 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837136360 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837136516 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837136672 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837137015 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837137171 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837137343 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837137655 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837137826 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837137998 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837138325 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837138513 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837138669 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837140229 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837140603 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837140946 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837141289 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837141648 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837141976 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837142303 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837142631 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837142974 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837143349 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837143614 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837143910 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837144363 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837144706 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837145065 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837145408 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837145751 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837146079 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837146406 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837146765 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837147077 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837147420 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837147732 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837148044 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837148356 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837148684 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837149011 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837149807 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837150415 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837150743 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837151102 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837151507 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837152022 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837153567 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837153957 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837154362 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837154815 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837155298 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837156234 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837156858 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837160743 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837161122 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837161556 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837161999 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837162389 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837162842 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837163314 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837163751 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837164188 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837164625 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837165030 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837165498 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837165951 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837166388 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837166856 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837167277 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837167714 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837168213 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837169164 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837169554 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837170069 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837170678 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837171317 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837171910 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837172643 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837173080 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837173688 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837174749 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837175326 -executed,command,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.project.buildAll",1322837178424 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837178767 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837181700 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322837181984 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322837187709 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837200396 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837200911 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837200958 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201005 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201052 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201083 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201130 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201176 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201205 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201238 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201476 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201645 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837201809 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837202022 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837202139 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837230885 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231384 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231431 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231477 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231524 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231571 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231618 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231665 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231711 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231758 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231805 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231852 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231899 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231945 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837231992 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837232039 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837232413 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837232601 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837232757 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322837239574 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322837248372 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837258271 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1322837258334 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322837260081 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837262982 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837267772 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268286 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268349 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268396 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268411 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268458 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268505 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268552 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268598 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268645 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268692 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268739 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268786 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837268832 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837269098 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload8.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload8.csv deleted file mode 100644 index d894e9f8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload8.csv +++ /dev/null @@ -1,267 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837269222 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837269378 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837269503 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322837269675 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837278052 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837283496 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837901463 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837962171 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837968135 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837980886 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322837984399 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322838027800 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838061541 -failed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322838061611 -started,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322838070689 -started,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1322838070783 -started,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1322838070783 -started,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1322838070799 -started,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1322838070892 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838092235 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838095059 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322838098662 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838115930 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838118723 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838122529 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838147442 -failed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations",1322838147474 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838165421 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322838165577 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838165577 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838169259 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838169384 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838183221 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838183720 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838183767 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838183814 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838183860 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838183907 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838183954 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184001 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184048 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184094 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184141 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184188 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184235 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184282 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184328 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184375 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184422 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838184469 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838185530 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838185545 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838185920 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322838186341 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322838205732 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838208212 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838208368 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838208555 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838208696 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838217316 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838217831 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838217877 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838217924 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838217947 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838217980 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218013 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218046 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218069 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218099 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218144 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218177 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218197 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218243 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218275 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218304 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218342 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218370 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218399 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218432 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218465 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838218498 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322838219458 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322838222711 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322838223346 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838231281 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1322838231389 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322838233946 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838236799 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838246096 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838246679 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838246710 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838246757 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838246804 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838246851 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838246897 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838246944 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838246991 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838247038 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838247085 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838247147 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838247178 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838247225 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838247693 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838247833 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838247974 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838252799 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838258399 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322838260755 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838263750 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838266511 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322838276995 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838280130 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838282923 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322838286152 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838286214 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838288055 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838292595 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838295276 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1322838300578 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838300876 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838302478 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838308717 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838311525 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838324676 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325159 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325206 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325268 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325315 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325362 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325409 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325456 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325502 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325658 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325674 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325690 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325736 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325768 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325814 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325877 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325924 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838325955 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322838326392 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838330697 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838336554 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322838338987 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838345149 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838345258 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838352216 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838352216 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322838353136 -closed,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838353136 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838359080 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838359252 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322838362746 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322838381762 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838388034 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1322838388595 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322838388595 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322838388595 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322838388595 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1322838388595 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1322838388595 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1322838388595 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1322838388595 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.dsf.ui,2.2.0.201109151620,"org.eclipse.cdt.dsf.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.gdb.ui,7.0.0.201109151620,"org.eclipse.cdt.gdb.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1322838388595 -stopped,bundle,org.eclipse.cdt.launch,7.0.0.201109151620,"org.eclipse.cdt.launch",1322838388595 -stopped,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.traditional,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.traditional",1322838388595 -stopped,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1322838388595 -stopped,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1322838388595 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.ui,1.0.1.201108301805,"org.eclipse.linuxtools.cdt.autotools.ui",1322838388595 -stopped,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322838388595 -stopped,bundle,org.eclipse.cdt.cross.arm.gnu,0.5.4.201111262136,"org.eclipse.cdt.cross.arm.gnu",1322838388595 -stopped,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322838388595 -stopped,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322838388595 -stopped,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322838388595 -stopped,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322838388595 -stopped,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322838388611 -stopped,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322838388611 -stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1322838388611 -stopped,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322838388611 -stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322838388611 -stopped,bundle,org.eclipse.rse.importexport,1.2.200.v201105021534,"org.eclipse.rse.importexport",1322838388611 -stopped,bundle,org.eclipse.rse.subsystems.shells.telnet,1.2.200.v201101042155,"org.eclipse.rse.subsystems.shells.telnet",1322838388611 -stopped,bundle,org.eclipse.rse.shells.ui,3.0.301.R33x_v201107181530,"org.eclipse.rse.shells.ui",1322838388611 -stopped,bundle,org.eclipse.rse.files.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.files.ui",1322838388611 -stopped,bundle,org.eclipse.rse.processes.ui,3.0.300.v201101042155,"org.eclipse.rse.processes.ui",1322838388611 -stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322838388704 -stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1322838388704 -stopped,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322838388704 -stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322838388704 -stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322838388704 -stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322838388704 -stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1322838388704 -stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1322838388704 -stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1322838388704 -stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322838388704 -stopped,bundle,org.eclipse.mylyn.help.ui,3.6.1.v20110830-0100,"org.eclipse.mylyn.help.ui",1322838388704 -stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.1.v20110825-0100,"org.eclipse.mylyn.tasks.bugs",1322838388704 -stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322838388704 -stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322838388704 -stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322838388704 -stopped,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322838388704 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.transport,2.1.0.201109151620,"org.eclipse.cdt.debug.ui.memory.transport",1322838388704 -stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1322838388704 -stopped,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1322838388736 -stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.ui",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.files.dstore,2.1.201.R33x_v201109141647,"org.eclipse.rse.subsystems.files.dstore",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.processes.dstore,2.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.dstore",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.shells.dstore,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.dstore",1322838388736 -stopped,bundle,org.eclipse.rse.connectorservice.dstore,3.1.200.v201103141607,"org.eclipse.rse.connectorservice.dstore",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.files.local,2.1.200.v201101042155,"org.eclipse.rse.subsystems.files.local",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.processes.local,2.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.local",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.shells.local,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.local",1322838388736 -stopped,bundle,org.eclipse.rse.connectorservice.local,2.1.300.v201101042155,"org.eclipse.rse.connectorservice.local",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.files.ssh,2.1.200.v201101042155,"org.eclipse.rse.subsystems.files.ssh",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.shells.ssh,2.1.300.v201101042155,"org.eclipse.rse.subsystems.shells.ssh",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.terminals.ssh,1.0.100.v201101042155,"org.eclipse.rse.subsystems.terminals.ssh",1322838388736 -stopped,bundle,org.eclipse.rse.connectorservice.ssh,2.1.200.v201101042155,"org.eclipse.rse.connectorservice.ssh",1322838388736 -stopped,bundle,org.eclipse.rse.connectorservice.telnet,1.2.200.v201101042155,"org.eclipse.rse.connectorservice.telnet",1322838388736 -stopped,bundle,org.eclipse.rse.dstore.security,3.0.300.v201103141607,"org.eclipse.rse.dstore.security",1322838388736 -stopped,bundle,org.eclipse.rse.efs,2.1.300.v201101042155,"org.eclipse.rse.efs",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.files.ftp,2.1.301.R33x_v201107212114,"org.eclipse.rse.subsystems.files.ftp",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.shells.core,3.1.201.R33x_v201106281309,"org.eclipse.rse.subsystems.shells.core",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.files.core,3.2.101.R33x_v201107181530,"org.eclipse.rse.subsystems.files.core",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.processes.shell.linux,1.1.300.v201101042155,"org.eclipse.rse.subsystems.processes.shell.linux",1322838388736 -stopped,bundle,org.eclipse.rse.subsystems.processes.core,3.1.200.v201101042155,"org.eclipse.rse.subsystems.processes.core",1322838388751 -stopped,bundle,org.eclipse.rse.terminals.ui,1.1.0.v201101042155,"org.eclipse.rse.terminals.ui",1322838388751 -stopped,bundle,org.eclipse.rse.ui,3.2.1.R33x_v201109141647,"org.eclipse.rse.ui",1322838388751 -stopped,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322838388751 -stopped,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322838388751 -stopped,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322838388751 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1322838917771 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1322838917771 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1322838917786 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1322838917786 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1322838917786 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1322838917786 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1322838917786 -started,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1322838917786 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1322838917786 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1322838917786 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1322838917786 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1322838917786 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1322838917786 -started,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1322838917786 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1322838917786 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1322838917786 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1322838917786 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1322838917786 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1322838917786 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1322838917786 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1322838917802 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1322838917802 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1322838917802 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1322838917802 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1322838917802 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload9.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload9.csv deleted file mode 100644 index 612bbbba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload9.csv +++ /dev/null @@ -1,276 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1322838917802 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1322838917802 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1322838917802 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1322838917802 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1322838917802 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1322838917802 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1322838917802 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1322838917802 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1322838917802 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1322838917802 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1322838917818 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1322838917818 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1322838917818 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1322838917818 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1322838917818 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1322838917818 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1322838917818 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1322838917818 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1322838917818 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1322838917818 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1322838917818 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1322838917818 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1322838917818 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1322838917818 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1322838917818 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1322838917864 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1322838917864 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1322838917864 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1322838917864 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1322838917864 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1322838917864 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1322838917864 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1322838917864 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1322838917864 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1322838917864 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1322838917864 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1322838917864 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1322838917864 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1322838917864 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1322838917864 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1322838917880 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1322838917880 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1322838917880 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1322838917880 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1322838917880 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1322838917880 -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1322838917880 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1322838917880 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1322838917880 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1322838917880 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1322838917880 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1322838917880 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1322838917880 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1322838917896 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1322838917896 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1322838917896 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1322838917896 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1322838917896 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1322838917896 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1322838917896 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1322838917896 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1322838917896 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1322838917896 -started,bundle,org.eclipse.cdt.cross.arm.gnu,0.5.4.201111262136,"org.eclipse.cdt.cross.arm.gnu",1322838917927 -os,sysinfo,,,"win32",1322838917927 -arch,sysinfo,,,"x86",1322838917927 -ws,sysinfo,,,"win32",1322838917927 -locale,sysinfo,,,"de_DE",1322838917927 -processors,sysinfo,,,"2",1322838917927 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1322838917927 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1322838917927 -java.specification.name,sysinfo,,,"Java Platform API Specification",1322838917927 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322838917927 -java.specification.version,sysinfo,,,"1.6",1322838917927 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1322838917927 -java.version,sysinfo,,,"1.6.0_24",1322838917927 -java.vm.info,sysinfo,,,"mixed mode, sharing",1322838917927 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1322838917927 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1322838917927 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1322838917927 -java.vm.specification.version,sysinfo,,,"1.0",1322838917927 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1322838917927 -java.vm.version,sysinfo,,,"19.1-b02",1322838917927 -opened,view,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.views.ProblemView",1322838920251 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838922685 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838930485 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838931078 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838998204 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322838999780 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839031882 -started,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1322839036359 -started,bundle,org.eclipse.equinox.p2.ui,2.1.0.v20110601,"org.eclipse.equinox.p2.ui",1322839036375 -started,bundle,org.eclipse.equinox.p2.transport.ecf,1.0.0.v20110510,"org.eclipse.equinox.p2.transport.ecf",1322839037217 -started,bundle,org.eclipse.ecf.filetransfer,5.0.0.v20110531-2218,"org.eclipse.ecf.filetransfer",1322839037233 -started,bundle,org.eclipse.ecf.identity,3.1.100.v20110531-2218,"org.eclipse.ecf.identity",1322839037248 -started,bundle,org.eclipse.ecf,3.1.300.v20110531-2218,"org.eclipse.ecf",1322839037264 -started,bundle,org.eclipse.ecf.provider.filetransfer.httpclient,4.0.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer.httpclient",1322839037779 -started,bundle,org.eclipse.ecf.provider.filetransfer,3.2.0.v20110531-2218,"org.eclipse.ecf.provider.filetransfer",1322839037794 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839038044 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322839057372 -started,bundle,org.eclipse.equinox.p2.updatesite,1.0.300.v20110510,"org.eclipse.equinox.p2.updatesite",1322839064049 -started,bundle,org.eclipse.equinox.p2.publisher,1.2.0.v20110511,"org.eclipse.equinox.p2.publisher",1322839064065 -started,bundle,org.eclipse.equinox.p2.publisher.eclipse,1.0.0.v20110511,"org.eclipse.equinox.p2.publisher.eclipse",1322839064813 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839087215 -executed,command,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.install",1322839087309 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839088323 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839256221 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839260612 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839274435 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839276458 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322839283370 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.help.installationDialog",1322839356467 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839357137 -executed,command,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.install",1322839357215 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839360042 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839374548 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322839393664 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1322839394022 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839395854 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839404221 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322839404290 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839408191 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839418889 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322839418960 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322839424084 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322839430415 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839439953 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839444312 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839446309 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839449444 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322839449538 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839452018 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839468679 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.window.preferences",1322839468726 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839472298 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322839476931 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839479958 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322839480083 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839482360 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322839485995 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839520128 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.window.preferences",1322839520190 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839523045 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839530346 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322839530377 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839543731 -started,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1322839547677 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839549924 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322839550111 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839552326 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839554775 -executed,command,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring.commands.deleteResources",1322839554791 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322839554791 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839560454 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322839595850 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839607176 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839612074 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839614336 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1322839614445 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839615537 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839622823 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839629125 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322839632229 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839648797 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839656597 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839674973 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322839681042 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322839684521 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839690683 -started,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1322839690776 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839726391 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322839731726 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840455541 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322840457350 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322840469596 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineEnd",1322840472217 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322840491717 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322840505835 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322840506178 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322840506319 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840566644 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840609310 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322840609559 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322840617125 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322840617281 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840618030 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322840620885 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840621774 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322840628560 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840629293 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840635346 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840635471 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840635627 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840635752 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840636048 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840652522 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840658668 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322840664955 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840680617 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840695328 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840697278 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840857473 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322840857598 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1322840903259 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322840903322 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322840916940 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322840918110 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322840919156 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840922806 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840926612 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840948406 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1322840948468 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1322840950480 -opened,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322840952259 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1322840952399 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322840963928 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840970292 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840970464 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840970604 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840970760 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322840971057 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322840994192 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841067465 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841097885 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841098056 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841098197 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841098649 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.select.lineEnd",1322841126948 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841135200 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1322841176431 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841198130 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841198162 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841198318 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841198474 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841198770 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841200439 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841200564 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841206398 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841206554 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841206695 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841207022 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841208816 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1322841209565 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1322841210330 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841226132 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841226273 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841226429 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841226569 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841226694 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841226850 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841227318 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841235726 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841235898 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841236054 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841236194 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841236350 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841236803 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841243448 -executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1322841243573 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841250562 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841255507 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841255648 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841255788 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841255944 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841256459 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841256615 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841256771 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841256974 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841257520 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841258066 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841258190 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841258346 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841258518 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841258674 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1322841258830 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/usagedata.csv b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/usagedata.csv deleted file mode 100644 index 9143072d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.epp.usagedata.recording/usagedata.csv +++ /dev/null @@ -1,171 +0,0 @@ -what,kind,bundleId,bundleVersion,description,time -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1330880754738 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1330880754738 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1330880754738 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1330880754803 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1330880754803 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1330880754803 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1330880754844 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1330880754902 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1330880754902 -activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1330882367553 -started,bundle,org.eclipse.osgi,3.7.1.R37x_v20110808-1106,"org.eclipse.osgi",1330882367556 -started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1330882367558 -started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1330882367560 -started,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1330882367562 -started,bundle,org.eclipse.cdt.codan.core,2.0.0.201109151620,"org.eclipse.cdt.codan.core",1330882367564 -started,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1330882367566 -started,bundle,org.eclipse.cdt.codan.ui,2.0.0.201109151620,"org.eclipse.cdt.codan.ui",1330882367568 -started,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1330882367569 -started,bundle,org.eclipse.cdt.core,5.3.1.201109151620,"org.eclipse.cdt.core",1330882367569 -started,bundle,org.eclipse.cdt.make.core,7.1.1.201109151620,"org.eclipse.cdt.make.core",1330882367571 -started,bundle,org.eclipse.cdt.make.ui,7.1.1.201109151620,"org.eclipse.cdt.make.ui",1330882367573 -started,bundle,org.eclipse.cdt.managedbuilder.core,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.core",1330882367576 -started,bundle,org.eclipse.cdt.msw.build,1.0.0.201109151620,"org.eclipse.cdt.msw.build",1330882367577 -started,bundle,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui",1330882367577 -started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1330882367579 -started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1330882367580 -started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1330882367583 -started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1330882367584 -started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1330882367585 -started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1330882367588 -started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1330882367590 -started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1330882367598 -started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1330882367601 -started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1330882367603 -started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1330882367605 -started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1330882367607 -started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1330882367609 -started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1330882367612 -started,bundle,org.eclipse.egit.core,1.1.0.201109151100-r,"org.eclipse.egit.core",1330882367614 -started,bundle,org.eclipse.egit.ui,1.1.0.201109151100-r,"org.eclipse.egit.ui",1330882367618 -started,bundle,org.eclipse.epp.mpc.ui,1.1.1.I20110907-0947,"org.eclipse.epp.mpc.ui",1330882367619 -started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1330882367621 -started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1330882367622 -started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1330882367629 -started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1330882367631 -started,bundle,org.eclipse.equinox.ds,1.3.1.R37x_v20110701,"org.eclipse.equinox.ds",1330882367633 -started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1330882367635 -started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1330882367636 -started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1330882367639 -started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1330882367640 -started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1330882367648 -started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1330882367651 -started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1330882367652 -started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1330882367655 -started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1330882367656 -started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1330882367657 -started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1330882367658 -started,bundle,org.eclipse.equinox.preferences,3.4.1.R37x_v20110725,"org.eclipse.equinox.preferences",1330882367661 -started,bundle,org.eclipse.equinox.registry,3.5.101.R37x_v20110810-1611,"org.eclipse.equinox.registry",1330882367662 -started,bundle,org.eclipse.equinox.security,1.1.1.R37x_v20110822-1018,"org.eclipse.equinox.security",1330882367665 -started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1330882367667 -started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1330882367669 -started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1330882367671 -started,bundle,org.eclipse.jgit,1.1.0.201109151100-r,"org.eclipse.jgit",1330882367672 -started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1330882367674 -started,bundle,org.eclipse.linuxtools.cdt.autotools.core,1.0.2.201108301805,"org.eclipse.linuxtools.cdt.autotools.core",1330882367691 -started,bundle,org.eclipse.ltk.core.refactoring,3.5.201.r371_v20110824-0800,"org.eclipse.ltk.core.refactoring",1330882367693 -started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1330882367695 -started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.2.v20110903-0100,"org.eclipse.mylyn.bugzilla.core",1330882367698 -started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1330882367699 -started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1330882367701 -started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1330882367701 -started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1330882367703 -started,bundle,org.eclipse.mylyn.context.core,3.6.1.v20110720-0100,"org.eclipse.mylyn.context.core",1330882367705 -started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1330882367708 -started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1330882367710 -started,bundle,org.eclipse.mylyn.tasks.ui,3.6.2.v20110826-0100,"org.eclipse.mylyn.tasks.ui",1330882367712 -started,bundle,org.eclipse.mylyn.team.ui,3.6.1.v20110825-0100,"org.eclipse.mylyn.team.ui",1330882367714 -started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1330882367717 -started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1330882367719 -started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1330882367721 -started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1330882367723 -started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1330882367725 -started,bundle,org.eclipse.tm.terminal,3.1.1.R33x_v201107181530,"org.eclipse.tm.terminal",1330882367728 -started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1330882367732 -started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1330882367733 -started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1330882367733 -started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1330882367736 -started,bundle,org.eclipse.ui.ide,3.7.0.v20110809-1737,"org.eclipse.ui.ide",1330882367739 -started,bundle,org.eclipse.ui.navigator,3.5.100.v20110809-2227,"org.eclipse.ui.navigator",1330882367740 -started,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1330882367742 -started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1330882367744 -started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1330882367746 -started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1330882367748 -started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1330882367751 -started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1330882367753 -started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1330882367755 -started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1330882367757 -started,bundle,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view",1330882367759 -started,bundle,org.eclipse.cdt.cross.arm.gnu,0.5.4.201111262136,"org.eclipse.cdt.cross.arm.gnu",1330882367773 -os,sysinfo,,,"win32",1330882367783 -arch,sysinfo,,,"x86",1330882367783 -ws,sysinfo,,,"win32",1330882367783 -locale,sysinfo,,,"de_DE",1330882367783 -processors,sysinfo,,,"2",1330882367783 -java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1330882367783 -java.runtime.version,sysinfo,,,"1.6.0_24-b07",1330882367783 -java.specification.name,sysinfo,,,"Java Platform API Specification",1330882367783 -java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1330882367783 -java.specification.version,sysinfo,,,"1.6",1330882367783 -java.vendor,sysinfo,,,"Sun Microsystems Inc.",1330882367783 -java.version,sysinfo,,,"1.6.0_24",1330882367783 -java.vm.info,sysinfo,,,"mixed mode, sharing",1330882367783 -java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1330882367783 -java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1330882367783 -java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1330882367783 -java.vm.specification.version,sysinfo,,,"1.0",1330882367783 -java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1330882367783 -java.vm.version,sysinfo,,,"19.1-b02",1330882367783 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1330882379243 -started,bundle,org.eclipse.compare,3.5.201.R37x_v20110817-0800,"org.eclipse.compare",1330882380066 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1330882382401 -opened,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330882390091 -activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330882390393 -started,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,8.0.1.201109151620,"org.eclipse.cdt.managedbuilder.gnu.ui",1330882391410 -started,bundle,org.eclipse.debug.ui,3.7.101.v20110817_r371,"org.eclipse.debug.ui",1330882419122 -started,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1330882419136 -started,bundle,org.eclipse.core.externaltools,1.0.100.v20110506,"org.eclipse.core.externaltools",1330882420703 -started,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1330882421019 -started,bundle,org.eclipse.cdt.dsf,2.2.0.201109151620,"org.eclipse.cdt.dsf",1330882421026 -started,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1330882421030 -started,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1330882421034 -started,bundle,org.eclipse.cdt.debug.core,7.1.0.201109151620,"org.eclipse.cdt.debug.core",1330882421109 -started,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1330882421118 -activated,view,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.ProjectExplorer",1330882426397 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.refresh",1330882429699 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330882443009 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330882447118 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330882451242 -started,bundle,org.eclipse.cdt.managedbuilder.ui,8.0.0.201109151620,"org.eclipse.cdt.managedbuilder.ui",1330882456757 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330882467909 -executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.properties",1330882468011 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1330882470393 -started,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1330882575903 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330882577871 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330882580835 -activated,view,org.eclipse.tm.terminal.view,2.2.0.v201103142315,"org.eclipse.tm.terminal.view.TerminalView",1330882585577 -started,bundle,org.eclipse.tm.terminal.serial,2.1.0.v201101042155,"org.eclipse.tm.terminal.serial",1330882586666 -executed,command,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar",1330882592915 -deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330882593191 -activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330882596145 -activated,editor,org.eclipse.cdt.ui,5.3.1.201109151620,"org.eclipse.cdt.ui.editor.CEditor",1330882598392 -started,bundle,org.eclipse.cdt.mylyn.ui,3.6.0.v20110608-1400,"org.eclipse.cdt.mylyn.ui",1330882602023 -closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330882602237 -stopped,bundle,org.eclipse.cdt.build.crossgcc,1.0.0.201109151620,"org.eclipse.cdt.build.crossgcc",1330882603414 -stopped,bundle,org.eclipse.cdt.codan.checkers.ui,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers.ui",1330882603417 -stopped,bundle,org.eclipse.cdt.codan.checkers,1.0.0.201109151620,"org.eclipse.cdt.codan.checkers",1330882603421 -stopped,bundle,org.eclipse.cdt.codan.ui.cxx,2.0.0.201109151620,"org.eclipse.cdt.codan.ui.cxx",1330882603421 -stopped,bundle,org.eclipse.cdt.codan.core.cxx,1.0.0.201109151620,"org.eclipse.cdt.codan.core.cxx",1330882603421 -stopped,bundle,org.eclipse.cdt.launch.remote,2.3.0.201109151620,"org.eclipse.cdt.launch.remote",1330882603426 -stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.1.0.201109151620,"org.eclipse.cdt.debug.mi.ui",1330882603426 -stopped,bundle,org.eclipse.cdt.debug.mi.core,7.1.1.201109151620,"org.eclipse.cdt.debug.mi.core",1330882603426 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.memorybrowser,1.2.100.201109151620,"org.eclipse.cdt.debug.ui.memory.memorybrowser",1330882603428 -stopped,bundle,org.eclipse.cdt.debug.ui.memory.search,1.2.0.201109151620,"org.eclipse.cdt.debug.ui.memory.search",1330882603431 -stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.2.1.201109151620,"org.eclipse.cdt.dsf.gdb.ui",1330882603431 -stopped,bundle,org.eclipse.cdt.dsf.ui,2.2.0.201109151620,"org.eclipse.cdt.dsf.ui",1330882603436 -stopped,bundle,org.eclipse.cdt.gdb.ui,7.0.0.201109151620,"org.eclipse.cdt.gdb.ui",1330882603506 -stopped,bundle,org.eclipse.cdt.dsf.gdb,4.0.1.201109151620,"org.eclipse.cdt.dsf.gdb",1330882603506 -stopped,bundle,org.eclipse.cdt.launch,7.0.0.201109151620,"org.eclipse.cdt.launch",1330882603509 -stopped,bundle,org.eclipse.cdt.debug.ui,7.1.1.201109151620,"org.eclipse.cdt.debug.ui",1330882603509 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui/dialog_settings.xml deleted file mode 100644 index f9111756..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui/dialog_settings.xml +++ /dev/null @@ -1,41 +0,0 @@ - -
-
- - - - - -
-
- - - - - -
-
- - - - - -
-
- - - - - - - - -
-
- - - - - -
-
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2011/12/48/refactorings.history b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2011/12/48/refactorings.history deleted file mode 100644 index 6cef866c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2011/12/48/refactorings.history +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2011/12/48/refactorings.index b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2011/12/48/refactorings.index deleted file mode 100644 index b189a32b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2011/12/48/refactorings.index +++ /dev/null @@ -1,10 +0,0 @@ -1322831179147 Delete resource 'Prog' -1322831264978 Delete resource 'Prog/makefile' -1322834654449 Delete resource 'Boot' -1322835988007 Delete resource 'Boot/sources' -1322836063894 Delete resource 'Boot/openblt_root' -1322836185156 Delete resource 'Boot/sources' -1322836465080 Delete resource 'Boot/source' -1322836526185 Delete resource 'Boot/source' -1322839554604 Delete resource 'Boot/source' -1322856543092 Delete resource 'Boot/source' diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml deleted file mode 100644 index ed857b0e..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml +++ /dev/null @@ -1,7 +0,0 @@ - -
-
- - -
-
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/.log b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/.log deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/FP.local.files_0/node.properties b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/FP.local.files_0/node.properties deleted file mode 100644 index c0e0439f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/FP.local.files_0/node.properties +++ /dev/null @@ -1,57 +0,0 @@ -# RSE DOM Node -00-name=voorburg-PC\:local.files -01-type=FilterPool -03-attr.default=true -03-attr.deletable=true -03-attr.id=local.files -03-attr.nonRenamable=false -03-attr.owningParentName=null -03-attr.release=200 -03-attr.singleFilterStringOnly=false -03-attr.singleFilterStringOnlyESet=false -03-attr.stringsCaseSensitive=true -03-attr.supportsDuplicateFilterStrings=false -03-attr.supportsNestedFilters=true -03-attr.type=default -06-child.00000.00-name=My Home -06-child.00000.01-type=Filter -06-child.00000.03-attr.default=false -06-child.00000.03-attr.filterType=default -06-child.00000.03-attr.id=My Home -06-child.00000.03-attr.nonChangable=false -06-child.00000.03-attr.nonDeletable=false -06-child.00000.03-attr.nonRenamable=false -06-child.00000.03-attr.promptable=false -06-child.00000.03-attr.relativeOrder=0 -06-child.00000.03-attr.release=200 -06-child.00000.03-attr.singleFilterStringOnly=false -06-child.00000.03-attr.stringsCaseSensitive=false -06-child.00000.03-attr.stringsNonChangable=false -06-child.00000.03-attr.supportsDuplicateFilterStrings=false -06-child.00000.03-attr.supportsNestedFilters=true -06-child.00000.06-child.00000.00-name=C\:\\Users\\voorburg\\* -06-child.00000.06-child.00000.01-type=FilterString -06-child.00000.06-child.00000.03-attr.default=false -06-child.00000.06-child.00000.03-attr.string=C\:\\Users\\voorburg\\* -06-child.00000.06-child.00000.03-attr.type=default -06-child.00001.00-name=Drives -06-child.00001.01-type=Filter -06-child.00001.03-attr.default=false -06-child.00001.03-attr.filterType=default -06-child.00001.03-attr.id=Drives -06-child.00001.03-attr.nonChangable=false -06-child.00001.03-attr.nonDeletable=false -06-child.00001.03-attr.nonRenamable=false -06-child.00001.03-attr.promptable=false -06-child.00001.03-attr.relativeOrder=0 -06-child.00001.03-attr.release=200 -06-child.00001.03-attr.singleFilterStringOnly=false -06-child.00001.03-attr.stringsCaseSensitive=false -06-child.00001.03-attr.stringsNonChangable=false -06-child.00001.03-attr.supportsDuplicateFilterStrings=false -06-child.00001.03-attr.supportsNestedFilters=true -06-child.00001.06-child.00000.00-name=* -06-child.00001.06-child.00000.01-type=FilterString -06-child.00001.06-child.00000.03-attr.default=false -06-child.00001.06-child.00000.03-attr.string=* -06-child.00001.06-child.00000.03-attr.type=default diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/H.local_16/node.properties b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/H.local_16/node.properties deleted file mode 100644 index f130b7d7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/H.local_16/node.properties +++ /dev/null @@ -1,25 +0,0 @@ -# RSE DOM Node -00-name=Local -01-type=Host -03-attr.description= -03-attr.hostname=LOCALHOST -03-attr.offline=false -03-attr.promptable=false -03-attr.systemType=org.eclipse.rse.systemtype.local -03-attr.type=Local -06-child.00000.00-name=Local Connector Service -06-child.00000.01-type=ConnectorService -06-child.00000.03-attr.group=Local Connector Service -06-child.00000.03-attr.port=0 -06-child.00000.03-attr.useSSL=false -06-child.00000.06-child.00000.00-name=Local Files -06-child.00000.06-child.00000.01-type=SubSystem -06-child.00000.06-child.00000.03-attr.hidden=false -06-child.00000.06-child.00000.03-attr.type=local.files -06-child.00000.06-child.00000.06-child.00000.00-name=voorburg-PC___voorburg-PC\:local.files -06-child.00000.06-child.00000.06-child.00000.01-type=FilterPoolReference -06-child.00000.06-child.00000.06-child.00000.03-attr.refID=local.files -06-child.00000.06-child.00001.00-name=Local Shells -06-child.00000.06-child.00001.01-type=SubSystem -06-child.00000.06-child.00001.03-attr.hidden=false -06-child.00000.06-child.00001.03-attr.type=local.shells diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/node.properties b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/node.properties deleted file mode 100644 index aeee343b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.voorburg-pc_3/node.properties +++ /dev/null @@ -1,7 +0,0 @@ -# RSE DOM Node -00-name=voorburg-PC -01-type=Profile -03-attr.defaultPrivate=true -03-attr.isActive=true -05-ref.00000=FP.local.files_0 -05-ref.00001=H.local_16 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.ui/.log b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.rse.ui/.log deleted file mode 100644 index e69de29b..00000000 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml deleted file mode 100644 index 925cebba..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml +++ /dev/null @@ -1,32 +0,0 @@ - -
-
- - - - - -
-
- - - - - - - - - - - - - - -
-
- -
-
- -
-
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.tm.terminal.view/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.tm.terminal.view/dialog_settings.xml deleted file mode 100644 index 44c4660f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.tm.terminal.view/dialog_settings.xml +++ /dev/null @@ -1,10 +0,0 @@ - -
-
- - - - - -
-
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml deleted file mode 100644 index e4f30a7d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml +++ /dev/null @@ -1,5 +0,0 @@ - -
-
-
-
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml deleted file mode 100644 index 727682fc..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml +++ /dev/null @@ -1,32 +0,0 @@ - -
-
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - -
-
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml deleted file mode 100644 index ae6d7563..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml +++ /dev/null @@ -1,27 +0,0 @@ - -
-
- - -
-
- - - - - -
-
- - - - - - - - - - - -
-
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml deleted file mode 100644 index 71fd8c82..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml deleted file mode 100644 index bab1c378..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/version.ini b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/version.ini deleted file mode 100644 index c51ff745..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/.metadata/version.ini +++ /dev/null @@ -1 +0,0 @@ -org.eclipse.core.runtime=1 \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.cproject b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.cproject deleted file mode 100644 index 41f396c7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.cproject +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.project b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.project deleted file mode 100644 index 8cf777cd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.project +++ /dev/null @@ -1,125 +0,0 @@ - - - Boot - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - cs-make - - - org.eclipse.cdt.make.core.buildLocation - ${workspace_loc:/Boot/Debug} - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - - Source - 2 - OpenBLT_ROOT/Source - - - Source/ARMCM3_STM32 - 2 - OpenBLT_ROOT/Source/ARMCM3_STM32 - - - Source/ARMCM3_STM32/GCC - 2 - OpenBLT_ROOT/Source/ARMCM3_STM32/GCC - - - - - 1322856778309 - Source - 10 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-* - - - - 1322856837433 - Source/ARMCM3_STM32 - 10 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-* - - - - - - OpenBLT_ROOT - $%7BPARENT-3-PROJECT_LOC%7D - - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.settings/org.eclipse.cdt.core.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index 909df178..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,163 +0,0 @@ -#Fri Dec 02 15:05:18 CET 2011 -eclipse.preferences.version=1 -org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.cdt.core.formatter.alignment_for_assignment=16 -org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80 -org.eclipse.cdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.cdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=34 -org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain=18 -org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list=0 -org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16 -org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=48 -org.eclipse.cdt.core.formatter.alignment_for_expression_list=0 -org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.cdt.core.formatter.alignment_for_member_access=0 -org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain=16 -org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.cdt.core.formatter.brace_position_for_block=next_line -org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=next_line -org.eclipse.cdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment=1 -org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.cdt.core.formatter.compact_else_if=true -org.eclipse.cdt.core.formatter.continuation_indentation=2 -org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=false -org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces=0 -org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true -org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=false -org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=false -org.eclipse.cdt.core.formatter.indent_empty_lines=false -org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=false -org.eclipse.cdt.core.formatter.indentation.size=2 -org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert -org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert -org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert -org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.cdt.core.formatter.join_wrapped_lines=true -org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.cdt.core.formatter.lineSplit=90 -org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.cdt.core.formatter.tabulation.char=space -org.eclipse.cdt.core.formatter.tabulation.size=2 -org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=false diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.settings/org.eclipse.cdt.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.settings/org.eclipse.cdt.ui.prefs deleted file mode 100644 index 04106acd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/.settings/org.eclipse.cdt.ui.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Fri Dec 02 15:05:18 CET 2011 -eclipse.preferences.version=1 -formatter_profile=_Feaser -formatter_settings_version=1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/bin/openbtl_olimex_stm32p103.map b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/bin/openbtl_olimex_stm32p103.map deleted file mode 100644 index 6a9c92e8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/bin/openbtl_olimex_stm32p103.map +++ /dev/null @@ -1,545 +0,0 @@ - -Discarded input sections - - .text 0x00000000 0x20c ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .data 0x00000000 0x14 ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .bss 0x00000000 0x0 ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .text 0x00000000 0xa4 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .data 0x00000000 0x0 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .bss 0x00000000 0x0 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .data 0x00000000 0x0 ./Source/ARMCM3_STM32/GCC/cstart.o - .bss 0x00000000 0x0 ./Source/ARMCM3_STM32/GCC/cstart.o - .data 0x00000000 0x0 ./Source/ARMCM3_STM32/GCC/vectors.o - .bss 0x00000000 0x0 ./Source/ARMCM3_STM32/GCC/vectors.o - .text 0x00000000 0x0 ./Source/ARMCM3_STM32/can.o - .data 0x00000000 0x0 ./Source/ARMCM3_STM32/can.o - .bss 0x00000000 0x0 ./Source/ARMCM3_STM32/can.o - .data 0x00000000 0x0 ./Source/ARMCM3_STM32/cpu.o - .bss 0x00000000 0x0 ./Source/ARMCM3_STM32/cpu.o - .data 0x00000000 0x0 ./Source/ARMCM3_STM32/flash.o - .data 0x00000000 0x0 ./Source/ARMCM3_STM32/nvm.o - .bss 0x00000000 0x0 ./Source/ARMCM3_STM32/nvm.o - .data 0x00000000 0x0 ./Source/ARMCM3_STM32/timer.o - .data 0x00000000 0x0 ./Source/ARMCM3_STM32/uart.o - .text 0x00000000 0x0 ./Source/ARMCM3_STM32/usb.o - .data 0x00000000 0x0 ./Source/ARMCM3_STM32/usb.o - .bss 0x00000000 0x0 ./Source/ARMCM3_STM32/usb.o - .data 0x00000000 0x0 ./Source/assert.o - .data 0x00000000 0x0 ./Source/backdoor.o - .data 0x00000000 0x0 ./Source/boot.o - .bss 0x00000000 0x0 ./Source/boot.o - .data 0x00000000 0x0 ./Source/com.o - .data 0x00000000 0x0 ./Source/cop.o - .bss 0x00000000 0x0 ./Source/cop.o - .data 0x00000000 0x0 ./Source/xcp.o - .text 0x00000000 0x0 ./hooks.o - .data 0x00000000 0x0 ./hooks.o - .bss 0x00000000 0x0 ./hooks.o - .data 0x00000000 0x0 ./main.o - .bss 0x00000000 0x0 ./main.o - -Memory Configuration - -Name Origin Length Attributes -FLASH 0x08000000 0x00004000 xr -SRAM 0x20000000 0x00001800 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o -LOAD ./lib/CMSIS/CM3/CoreSupport/core_cm3.o -LOAD ./Source/ARMCM3_STM32/GCC/cstart.o -LOAD ./Source/ARMCM3_STM32/GCC/vectors.o -LOAD ./Source/ARMCM3_STM32/can.o -LOAD ./Source/ARMCM3_STM32/cpu.o -LOAD ./Source/ARMCM3_STM32/flash.o -LOAD ./Source/ARMCM3_STM32/nvm.o -LOAD ./Source/ARMCM3_STM32/timer.o -LOAD ./Source/ARMCM3_STM32/uart.o -LOAD ./Source/ARMCM3_STM32/usb.o -LOAD ./Source/assert.o -LOAD ./Source/backdoor.o -LOAD ./Source/boot.o -LOAD ./Source/com.o -LOAD ./Source/cop.o -LOAD ./Source/xcp.o -LOAD ./hooks.o -LOAD ./main.o -START GROUP -LOAD c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a -LOAD c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a -END GROUP - 0x00000100 __STACKSIZE__ = 0x100 - -.text 0x08000000 0x1250 - *(.isr_vector) - .isr_vector 0x08000000 0x150 ./Source/ARMCM3_STM32/GCC/vectors.o - 0x08000000 _vectab - *(.entry) - .entry 0x08000150 0x78 ./Source/ARMCM3_STM32/GCC/cstart.o - 0x08000150 EntryFromProg - *(.entry*) - *(.text*) - .text 0x080001c8 0x5c ./Source/ARMCM3_STM32/GCC/cstart.o - 0x080001c8 reset_handler - .text 0x08000224 0x14 ./Source/ARMCM3_STM32/GCC/vectors.o - 0x08000224 UnusedISR - .text 0x08000238 0x54 ./Source/ARMCM3_STM32/cpu.o - 0x08000238 CpuStartUserProgram - 0x08000260 CpuMemCopy - 0x08000284 CpuReset - .text 0x0800028c 0x558 ./Source/ARMCM3_STM32/flash.o - 0x08000528 FlashInit - 0x0800053c FlashWrite - 0x08000594 FlashErase - 0x080006c8 FlashWriteChecksum - 0x0800072c FlashVerifyChecksum - 0x08000794 FlashDone - .text 0x080007e4 0x34 ./Source/ARMCM3_STM32/nvm.o - 0x080007e4 NvmInit - 0x080007ec NvmWrite - 0x080007f4 NvmErase - 0x080007fc NvmVerifyChecksum - 0x08000804 NvmDone - .text 0x08000818 0x80 ./Source/ARMCM3_STM32/timer.o - 0x08000818 TimerReset - 0x08000828 TimerUpdate - 0x0800084c TimerSet - 0x08000858 TimerInit - 0x08000884 TimerGet - .text 0x08000898 0x1a4 ./Source/ARMCM3_STM32/uart.o - 0x08000908 UartInit - 0x08000934 UartTransmitPacket - 0x080009a4 UartReceivePacket - .text 0x08000a3c 0x14 ./Source/assert.o - 0x08000a3c AssertFailure - .text 0x08000a50 0x54 ./Source/backdoor.o - 0x08000a50 BackDoorCheck - 0x08000a88 BackDoorInit - .text 0x08000aa4 0x24 ./Source/boot.o - 0x08000aa4 BootInit - 0x08000ab8 BootTask - .text 0x08000ac8 0x94 ./Source/com.o - 0x08000ac8 ComInit - 0x08000afc ComTask - 0x08000b14 ComFree - 0x08000b18 ComTransmitPacket - 0x08000b28 ComSetConnectEntryState - 0x08000b38 ComSetDisconnectEntryState - 0x08000b48 ComIsConnectEntryState - 0x08000b54 ComIsConnected - .text 0x08000b5c 0x8 ./Source/cop.o - 0x08000b5c CopInit - 0x08000b60 CopService - .text 0x08000b64 0x424 ./Source/xcp.o - 0x08000b90 XcpInit - 0x08000bb0 XcpIsConnected - 0x08000bc4 XcpPacketTransmitted - 0x08000bd8 XcpPacketReceived - .text 0x08000f88 0x174 ./main.o - 0x08000f88 main - *(.rodata*) - .rodata.str1.4 - 0x080010fc 0x48 ./Source/ARMCM3_STM32/GCC/vectors.o - .rodata 0x08001144 0xb4 ./Source/ARMCM3_STM32/flash.o - .rodata.str1.4 - 0x080011f8 0x41 ./Source/ARMCM3_STM32/uart.o - 0x44 (size before relaxing) - *fill* 0x08001239 0x3 00 - .rodata 0x0800123c 0x8 ./Source/xcp.o - .rodata.str1.4 - 0x08001244 0xc ./main.o - 0x08001250 _etext = . - -.glue_7 0x08001250 0x0 - .glue_7 0x00000000 0x0 linker stubs - -.glue_7t 0x08001250 0x0 - .glue_7t 0x00000000 0x0 linker stubs - -.vfp11_veneer 0x08001250 0x0 - .vfp11_veneer 0x00000000 0x0 linker stubs - -.v4_bx 0x08001250 0x0 - .v4_bx 0x00000000 0x0 linker stubs - -.data 0x20000000 0x0 load address 0x08001250 - 0x20000000 _data = . - *(vtable) - *(.data*) - 0x20000000 _edata = . - -.bss 0x20000000 0x5f0 - 0x20000000 _bss = . - *(.bss*) - .bss 0x20000000 0x408 ./Source/ARMCM3_STM32/flash.o - .bss 0x20000408 0x2 ./Source/ARMCM3_STM32/timer.o - *fill* 0x2000040a 0x2 00 - .bss 0x2000040c 0x48 ./Source/ARMCM3_STM32/uart.o - .bss 0x20000454 0x8 ./Source/assert.o - .bss 0x2000045c 0x1 ./Source/backdoor.o - *fill* 0x2000045d 0x3 00 - .bss 0x20000460 0x44 ./Source/com.o - .bss 0x200004a4 0x4c ./Source/xcp.o - *(COMMON) - 0x200004f0 _ebss = . - 0x200004f0 _stack = . - 0x200005f0 . = ALIGN (MAX ((_stack + __STACKSIZE__), .), 0x4) - *fill* 0x200004f0 0x100 00 - 0x200005f0 _estack = . -OUTPUT(openbtl_olimex_stm32p103.elf elf32-littlearm) - -.debug_abbrev 0x00000000 0xe9c - .debug_abbrev 0x00000000 0x1a8 ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_abbrev 0x000001a8 0xb6 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_abbrev 0x0000025e 0x86 ./Source/ARMCM3_STM32/GCC/cstart.o - .debug_abbrev 0x000002e4 0xbe ./Source/ARMCM3_STM32/GCC/vectors.o - .debug_abbrev 0x000003a2 0x2a ./Source/ARMCM3_STM32/can.o - .debug_abbrev 0x000003cc 0xaf ./Source/ARMCM3_STM32/cpu.o - .debug_abbrev 0x0000047b 0x220 ./Source/ARMCM3_STM32/flash.o - .debug_abbrev 0x0000069b 0xa3 ./Source/ARMCM3_STM32/nvm.o - .debug_abbrev 0x0000073e 0xdf ./Source/ARMCM3_STM32/timer.o - .debug_abbrev 0x0000081d 0x131 ./Source/ARMCM3_STM32/uart.o - .debug_abbrev 0x0000094e 0x2a ./Source/ARMCM3_STM32/usb.o - .debug_abbrev 0x00000978 0x7c ./Source/assert.o - .debug_abbrev 0x000009f4 0x5b ./Source/backdoor.o - .debug_abbrev 0x00000a4f 0x3f ./Source/boot.o - .debug_abbrev 0x00000a8e 0xe0 ./Source/com.o - .debug_abbrev 0x00000b6e 0x3f ./Source/cop.o - .debug_abbrev 0x00000bad 0x1ba ./Source/xcp.o - .debug_abbrev 0x00000d67 0x2c ./hooks.o - .debug_abbrev 0x00000d93 0x109 ./main.o - -.debug_info 0x00000000 0x2795 - .debug_info 0x00000000 0x4cb ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_info 0x000004cb 0x54f ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_info 0x00000a1a 0x129 ./Source/ARMCM3_STM32/GCC/cstart.o - .debug_info 0x00000b43 0xf1 ./Source/ARMCM3_STM32/GCC/vectors.o - .debug_info 0x00000c34 0x5e ./Source/ARMCM3_STM32/can.o - .debug_info 0x00000c92 0x13a ./Source/ARMCM3_STM32/cpu.o - .debug_info 0x00000dcc 0x670 ./Source/ARMCM3_STM32/flash.o - .debug_info 0x0000143c 0x15e ./Source/ARMCM3_STM32/nvm.o - .debug_info 0x0000159a 0x144 ./Source/ARMCM3_STM32/timer.o - .debug_info 0x000016de 0x289 ./Source/ARMCM3_STM32/uart.o - .debug_info 0x00001967 0x5e ./Source/ARMCM3_STM32/usb.o - .debug_info 0x000019c5 0xe4 ./Source/assert.o - .debug_info 0x00001aa9 0xa4 ./Source/backdoor.o - .debug_info 0x00001b4d 0x88 ./Source/boot.o - .debug_info 0x00001bd5 0x1b4 ./Source/com.o - .debug_info 0x00001d89 0x86 ./Source/cop.o - .debug_info 0x00001e0f 0x607 ./Source/xcp.o - .debug_info 0x00002416 0x62 ./hooks.o - .debug_info 0x00002478 0x31d ./main.o - -.debug_line 0x00000000 0x2584 - .debug_line 0x00000000 0x24d ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_line 0x0000024d 0x1b7 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_line 0x00000404 0x1ef ./Source/ARMCM3_STM32/GCC/cstart.o - .debug_line 0x000005f3 0x1ca ./Source/ARMCM3_STM32/GCC/vectors.o - .debug_line 0x000007bd 0x1b1 ./Source/ARMCM3_STM32/can.o - .debug_line 0x0000096e 0x1d3 ./Source/ARMCM3_STM32/cpu.o - .debug_line 0x00000b41 0x2f8 ./Source/ARMCM3_STM32/flash.o - .debug_line 0x00000e39 0x1e0 ./Source/ARMCM3_STM32/nvm.o - .debug_line 0x00001019 0x1de ./Source/ARMCM3_STM32/timer.o - .debug_line 0x000011f7 0x219 ./Source/ARMCM3_STM32/uart.o - .debug_line 0x00001410 0x1b1 ./Source/ARMCM3_STM32/usb.o - .debug_line 0x000015c1 0x190 ./Source/assert.o - .debug_line 0x00001751 0x19b ./Source/backdoor.o - .debug_line 0x000018ec 0x193 ./Source/boot.o - .debug_line 0x00001a7f 0x1bc ./Source/com.o - .debug_line 0x00001c3b 0x18b ./Source/cop.o - .debug_line 0x00001dc6 0x26b ./Source/xcp.o - .debug_line 0x00002031 0x17c ./hooks.o - .debug_line 0x000021ad 0x3d7 ./main.o - -.debug_macinfo 0x00000000 0x882ef - .debug_macinfo - 0x00000000 0x33a7f ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_macinfo - 0x00033a7f 0x1f6f ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_macinfo - 0x000359ee 0x1de7 ./Source/ARMCM3_STM32/GCC/cstart.o - .debug_macinfo - 0x000377d5 0x1de7 ./Source/ARMCM3_STM32/GCC/vectors.o - .debug_macinfo - 0x000395bc 0x1de7 ./Source/ARMCM3_STM32/can.o - .debug_macinfo - 0x0003b3a3 0x1e8f ./Source/ARMCM3_STM32/cpu.o - .debug_macinfo - 0x0003d232 0x20a0 ./Source/ARMCM3_STM32/flash.o - .debug_macinfo - 0x0003f2d2 0x1de7 ./Source/ARMCM3_STM32/nvm.o - .debug_macinfo - 0x000410b9 0x1ead ./Source/ARMCM3_STM32/timer.o - .debug_macinfo - 0x00042f66 0x1ec8 ./Source/ARMCM3_STM32/uart.o - .debug_macinfo - 0x00044e2e 0x1de7 ./Source/ARMCM3_STM32/usb.o - .debug_macinfo - 0x00046c15 0x1de7 ./Source/assert.o - .debug_macinfo - 0x000489fc 0x1e08 ./Source/backdoor.o - .debug_macinfo - 0x0004a804 0x1de7 ./Source/boot.o - .debug_macinfo - 0x0004c5eb 0x1df5 ./Source/com.o - .debug_macinfo - 0x0004e3e0 0x1de7 ./Source/cop.o - .debug_macinfo - 0x000501c7 0x2188 ./Source/xcp.o - .debug_macinfo - 0x0005234f 0x1de7 ./hooks.o - .debug_macinfo - 0x00054136 0x341b9 ./main.o - -.debug_loc 0x00000000 0x1150 - .debug_loc 0x00000000 0xfe ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_loc 0x000000fe 0x298 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_loc 0x00000396 0x66 ./Source/ARMCM3_STM32/GCC/cstart.o - .debug_loc 0x000003fc 0x20 ./Source/ARMCM3_STM32/GCC/vectors.o - .debug_loc 0x0000041c 0xee ./Source/ARMCM3_STM32/cpu.o - .debug_loc 0x0000050a 0x6d4 ./Source/ARMCM3_STM32/flash.o - .debug_loc 0x00000bde 0xff ./Source/ARMCM3_STM32/nvm.o - .debug_loc 0x00000cdd 0x40 ./Source/ARMCM3_STM32/timer.o - .debug_loc 0x00000d1d 0xff ./Source/ARMCM3_STM32/uart.o - .debug_loc 0x00000e1c 0x46 ./Source/assert.o - .debug_loc 0x00000e62 0x40 ./Source/backdoor.o - .debug_loc 0x00000ea2 0x40 ./Source/boot.o - .debug_loc 0x00000ee2 0xb2 ./Source/com.o - .debug_loc 0x00000f94 0x190 ./Source/xcp.o - .debug_loc 0x00001124 0x2c ./main.o - -.debug_pubnames - 0x00000000 0x5be - .debug_pubnames - 0x00000000 0x61 ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_pubnames - 0x00000061 0x159 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_pubnames - 0x000001ba 0x36 ./Source/ARMCM3_STM32/GCC/cstart.o - .debug_pubnames - 0x000001f0 0x2c ./Source/ARMCM3_STM32/GCC/vectors.o - .debug_pubnames - 0x0000021c 0x46 ./Source/ARMCM3_STM32/cpu.o - .debug_pubnames - 0x00000262 0x7b ./Source/ARMCM3_STM32/flash.o - .debug_pubnames - 0x000002dd 0x5a ./Source/ARMCM3_STM32/nvm.o - .debug_pubnames - 0x00000337 0x59 ./Source/ARMCM3_STM32/timer.o - .debug_pubnames - 0x00000390 0x4c ./Source/ARMCM3_STM32/uart.o - .debug_pubnames - 0x000003dc 0x24 ./Source/assert.o - .debug_pubnames - 0x00000400 0x35 ./Source/backdoor.o - .debug_pubnames - 0x00000435 0x2c ./Source/boot.o - .debug_pubnames - 0x00000461 0xb5 ./Source/com.o - .debug_pubnames - 0x00000516 0x2d ./Source/cop.o - .debug_pubnames - 0x00000543 0x60 ./Source/xcp.o - .debug_pubnames - 0x000005a3 0x1b ./main.o - -.debug_pubtypes - 0x00000000 0x483 - .debug_pubtypes - 0x00000000 0x67 ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_pubtypes - 0x00000067 0x50 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_pubtypes - 0x000000b7 0x21 ./Source/ARMCM3_STM32/GCC/cstart.o - .debug_pubtypes - 0x000000d8 0x2e ./Source/ARMCM3_STM32/GCC/vectors.o - .debug_pubtypes - 0x00000106 0x12 ./Source/ARMCM3_STM32/can.o - .debug_pubtypes - 0x00000118 0x4b ./Source/ARMCM3_STM32/cpu.o - .debug_pubtypes - 0x00000163 0x8c ./Source/ARMCM3_STM32/flash.o - .debug_pubtypes - 0x000001ef 0x49 ./Source/ARMCM3_STM32/nvm.o - .debug_pubtypes - 0x00000238 0x41 ./Source/ARMCM3_STM32/timer.o - .debug_pubtypes - 0x00000279 0x59 ./Source/ARMCM3_STM32/uart.o - .debug_pubtypes - 0x000002d2 0x12 ./Source/ARMCM3_STM32/usb.o - .debug_pubtypes - 0x000002e4 0x2e ./Source/assert.o - .debug_pubtypes - 0x00000312 0x1f ./Source/backdoor.o - .debug_pubtypes - 0x00000331 0x12 ./Source/boot.o - .debug_pubtypes - 0x00000343 0x3c ./Source/com.o - .debug_pubtypes - 0x0000037f 0x12 ./Source/cop.o - .debug_pubtypes - 0x00000391 0x73 ./Source/xcp.o - .debug_pubtypes - 0x00000404 0x12 ./hooks.o - .debug_pubtypes - 0x00000416 0x6d ./main.o - -.debug_aranges 0x00000000 0x208 - .debug_aranges - 0x00000000 0x20 ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_aranges - 0x00000020 0x20 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_aranges - 0x00000040 0x28 ./Source/ARMCM3_STM32/GCC/cstart.o - .debug_aranges - 0x00000068 0x20 ./Source/ARMCM3_STM32/GCC/vectors.o - .debug_aranges - 0x00000088 0x20 ./Source/ARMCM3_STM32/cpu.o - .debug_aranges - 0x000000a8 0x20 ./Source/ARMCM3_STM32/flash.o - .debug_aranges - 0x000000c8 0x20 ./Source/ARMCM3_STM32/nvm.o - .debug_aranges - 0x000000e8 0x20 ./Source/ARMCM3_STM32/timer.o - .debug_aranges - 0x00000108 0x20 ./Source/ARMCM3_STM32/uart.o - .debug_aranges - 0x00000128 0x20 ./Source/assert.o - .debug_aranges - 0x00000148 0x20 ./Source/backdoor.o - .debug_aranges - 0x00000168 0x20 ./Source/boot.o - .debug_aranges - 0x00000188 0x20 ./Source/com.o - .debug_aranges - 0x000001a8 0x20 ./Source/cop.o - .debug_aranges - 0x000001c8 0x20 ./Source/xcp.o - .debug_aranges - 0x000001e8 0x20 ./main.o - -.debug_str 0x00000000 0xf07 - .debug_str 0x00000000 0x25d ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - 0x296 (size before relaxing) - .debug_str 0x0000025d 0x156 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - 0x279 (size before relaxing) - .debug_str 0x000003b3 0x87 ./Source/ARMCM3_STM32/GCC/cstart.o - 0xf4 (size before relaxing) - .debug_str 0x0000043a 0x70 ./Source/ARMCM3_STM32/GCC/vectors.o - 0xe2 (size before relaxing) - .debug_str 0x000004aa 0x40 ./Source/ARMCM3_STM32/can.o - 0xa7 (size before relaxing) - .debug_str 0x000004ea 0xa2 ./Source/ARMCM3_STM32/cpu.o - 0x114 (size before relaxing) - .debug_str 0x0000058c 0x24b ./Source/ARMCM3_STM32/flash.o - 0x318 (size before relaxing) - .debug_str 0x000007d7 0x74 ./Source/ARMCM3_STM32/nvm.o - 0x10c (size before relaxing) - .debug_str 0x0000084b 0xac ./Source/ARMCM3_STM32/timer.o - 0x129 (size before relaxing) - .debug_str 0x000008f7 0x122 ./Source/ARMCM3_STM32/uart.o - 0x1b7 (size before relaxing) - .debug_str 0x00000a19 0x40 ./Source/ARMCM3_STM32/usb.o - 0xa7 (size before relaxing) - .debug_str 0x00000a59 0x75 ./Source/assert.o - 0xf1 (size before relaxing) - .debug_str 0x00000ace 0x60 ./Source/backdoor.o - 0xd0 (size before relaxing) - .debug_str 0x00000b2e 0x46 ./Source/boot.o - 0xad (size before relaxing) - .debug_str 0x00000b74 0xe2 ./Source/com.o - 0x17c (size before relaxing) - .debug_str 0x00000c56 0x46 ./Source/cop.o - 0xad (size before relaxing) - .debug_str 0x00000c9c 0x22b ./Source/xcp.o - 0x2cf (size before relaxing) - .debug_str 0x00000ec7 0xb ./hooks.o - 0xd0 (size before relaxing) - .debug_str 0x00000ed2 0x35 ./main.o - 0x1dd (size before relaxing) - -.comment 0x00000000 0x2a - .comment 0x00000000 0x2a ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - 0x2b (size before relaxing) - .comment 0x00000000 0x2b ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .comment 0x00000000 0x2b ./Source/ARMCM3_STM32/GCC/cstart.o - .comment 0x00000000 0x2b ./Source/ARMCM3_STM32/GCC/vectors.o - .comment 0x00000000 0x2b ./Source/ARMCM3_STM32/can.o - .comment 0x00000000 0x2b ./Source/ARMCM3_STM32/cpu.o - .comment 0x00000000 0x2b ./Source/ARMCM3_STM32/flash.o - .comment 0x00000000 0x2b ./Source/ARMCM3_STM32/nvm.o - .comment 0x00000000 0x2b ./Source/ARMCM3_STM32/timer.o - .comment 0x00000000 0x2b ./Source/ARMCM3_STM32/uart.o - .comment 0x00000000 0x2b ./Source/ARMCM3_STM32/usb.o - .comment 0x00000000 0x2b ./Source/assert.o - .comment 0x00000000 0x2b ./Source/backdoor.o - .comment 0x00000000 0x2b ./Source/boot.o - .comment 0x00000000 0x2b ./Source/com.o - .comment 0x00000000 0x2b ./Source/cop.o - .comment 0x00000000 0x2b ./Source/xcp.o - .comment 0x00000000 0x2b ./hooks.o - .comment 0x00000000 0x2b ./main.o - -.ARM.attributes - 0x00000000 0x31 - .ARM.attributes - 0x00000000 0x31 ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .ARM.attributes - 0x00000031 0x31 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .ARM.attributes - 0x00000062 0x31 ./Source/ARMCM3_STM32/GCC/cstart.o - .ARM.attributes - 0x00000093 0x31 ./Source/ARMCM3_STM32/GCC/vectors.o - .ARM.attributes - 0x000000c4 0x31 ./Source/ARMCM3_STM32/can.o - .ARM.attributes - 0x000000f5 0x31 ./Source/ARMCM3_STM32/cpu.o - .ARM.attributes - 0x00000126 0x31 ./Source/ARMCM3_STM32/flash.o - .ARM.attributes - 0x00000157 0x31 ./Source/ARMCM3_STM32/nvm.o - .ARM.attributes - 0x00000188 0x31 ./Source/ARMCM3_STM32/timer.o - .ARM.attributes - 0x000001b9 0x31 ./Source/ARMCM3_STM32/uart.o - .ARM.attributes - 0x000001ea 0x31 ./Source/ARMCM3_STM32/usb.o - .ARM.attributes - 0x0000021b 0x31 ./Source/assert.o - .ARM.attributes - 0x0000024c 0x31 ./Source/backdoor.o - .ARM.attributes - 0x0000027d 0x31 ./Source/boot.o - .ARM.attributes - 0x000002ae 0x31 ./Source/com.o - .ARM.attributes - 0x000002df 0x31 ./Source/cop.o - .ARM.attributes - 0x00000310 0x31 ./Source/xcp.o - .ARM.attributes - 0x00000341 0x31 ./hooks.o - .ARM.attributes - 0x00000372 0x31 ./main.o - -.debug_frame 0x00000000 0x82c - .debug_frame 0x00000000 0x34 ./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_frame 0x00000034 0x170 ./lib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_frame 0x000001a4 0x48 ./Source/ARMCM3_STM32/GCC/cstart.o - .debug_frame 0x000001ec 0x2c ./Source/ARMCM3_STM32/GCC/vectors.o - .debug_frame 0x00000218 0x68 ./Source/ARMCM3_STM32/cpu.o - .debug_frame 0x00000280 0x1ac ./Source/ARMCM3_STM32/flash.o - .debug_frame 0x0000042c 0x9c ./Source/ARMCM3_STM32/nvm.o - .debug_frame 0x000004c8 0x78 ./Source/ARMCM3_STM32/timer.o - .debug_frame 0x00000540 0x94 ./Source/ARMCM3_STM32/uart.o - .debug_frame 0x000005d4 0x2c ./Source/assert.o - .debug_frame 0x00000600 0x48 ./Source/backdoor.o - .debug_frame 0x00000648 0x48 ./Source/boot.o - .debug_frame 0x00000690 0xc0 ./Source/com.o - .debug_frame 0x00000750 0x30 ./Source/cop.o - .debug_frame 0x00000780 0x80 ./Source/xcp.o - .debug_frame 0x00000800 0x2c ./main.o - -.debug_ranges 0x00000000 0x18 - .debug_ranges 0x00000000 0x18 ./Source/ARMCM3_STM32/GCC/cstart.o diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/bin/openbtl_olimex_stm32p103.srec b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/bin/openbtl_olimex_stm32p103.srec deleted file mode 100644 index 957e527a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/bin/openbtl_olimex_stm32p103.srec +++ /dev/null @@ -1,295 +0,0 @@ -S02000006F70656E62746C5F6F6C696D65785F73746D3332703130332E7372656307 -S31508000000F0050020C901000825020008250200089D -S315080000102502000825020008250200082502000816 -S315080000202502000825020008250200082502000806 -S3150800003025020008250200082502000825020008F6 -S3150800004025020008250200082502000825020008E6 -S3150800005025020008250200082502000825020008D6 -S3150800006025020008250200082502000825020008C6 -S3150800007025020008250200082502000825020008B6 -S3150800008025020008250200082502000825020008A6 -S315080000902502000825020008250200082502000896 -S315080000A02502000825020008250200082502000886 -S315080000B02502000825020008250200082502000876 -S315080000C02502000825020008250200082502000866 -S315080000D02502000825020008250200082502000856 -S315080000E02502000825020008250200082502000846 -S315080000F02502000825020008250200082502000836 -S315080001002502000825020008250200082502000825 -S315080001102502000825020008250200082502000815 -S315080001202502000825020008250200082502000805 -S3150800013025020008250200082502000825020008F5 -S3150800014025020008250200082502000825020008E5 -S3150800015008B572B617481849016018498D4640F225 -S315080001600002C2F2000240F20003C2F200039A4201 -S3150800017011D241F25022C0F6000240F20003C2F248 -S31508000180000340F20000C2F2000052F8041B43F8D4 -S31508000190041B8342F9D30A480A494FF000028842F1 -S315080001A0B8BF40F8042BFADB00F0BEFC00F0ECFE0A -S315080001B008BD000008ED00E000000008F00500207A -S315080001C000000020F004002008B572B640F20002D4 -S315080001D0C2F2000240F20003C2F200039A4211D2B0 -S315080001E041F25022C0F6000240F20003C2F20003B8 -S315080001F040F20000C2F2000052F8041B43F8041B48 -S315080002008342F9D3054806494FF000028842B8BF31 -S3150800021040F8042BFADB00F0B7FE08BD000000200A -S31508000220F004002008B541F2FC00C0F600004FF0CB -S31508000230360100F003FC08BD08B500F0DFFA70B11E -S3150800024000F068FC4EF60853CEF200034FF4005255 -S315080002501A6042F20403C0F600031B68984708BDFB -S3150800026070B50D4614465AB1064615F8013B06F810 -S31508000270013B00F075FC04F1FF34A4B2002CF4D164 -S3150800028070BD00BF08B5FFF79FFF08BD4FF40053C8 -S31508000290C4F2020340F22312C4F267525A6048F6C7 -S315080002A0AB12CCF6EF525A604FF03402DA60704760 -S315080002B04FF40053C4F202031A6942F080021A612D -S315080002C0704700BFF8B507464FF00004254641F2CF -S315080002D04416C0F6000600F043FC3359BB420ED85C -S315080002E0311949685B189F4209D241F24413C0F696 -S315080002F0000305EB450203EB8203187AF8BD05F106 -S31508000300010504F10C04B42CE5D14FF0FF00F8BD4B -S315080003102DE9F84380460068FFF7D4FFFF2808BF99 -S31508000320002453D0FFF7B2FF4FF40053C4F2020380 -S31508000330DB6813F0010F04D0FFF7BAFF4FF0000493 -S3150800034044E04FF40053C4F202031A6942F0010272 -S315080003501A614FF0000508F104094FF40054C4F27D -S315080003600204D8F80030EF1859F80560B2B2EA521C -S31508000370E36813F0010F05D000F0F2FBE36813F011 -S31508000380010FF9D14FEA16437B80E36813F0010F9A -S3150800039005D000F0E5FBE36813F0010FF9D13B68DF -S315080003A0B34207D105F10405B5F5007FD9D14FF061 -S315080003B0010401E04FF000044FF40053C4F20203B5 -S315080003C01A6922F001021A61FFF772FF2046BDE89A -S315080003D0F88300BF70B5064641F24415C0F600051D -S315080003E04FF0000400F0BCFB2B7AB34208D141F26F -S315080003F04413C0F6000304EB440253F8220070BD10 -S3150800040004F1010405F10C050F2CEBD14FF0FF3078 -S3150800041070BD00BF08B54FEAC1534FEAD3535BB965 -S3150800042003688B420BD040F8041B4FF40072FFF7A9 -S3150800043017FF4FF0010008BD4FF0000008BD4FF050 -S31508000440010008BD38B504460D460F4B984209D041 -S315080004504FF40053C0F60003994208D0FFF758FF3F -S3150800046070B105E040F20004C2F2000400E0064C58 -S3150800047020462946FFF7CEFF002808BF002401E0E2 -S315080004804FF00004204638BD040200202DE9F84349 -S3150800049005460C4617461E464FEA51294FEA492992 -S315080004A00368B3F1FF3F03D14946FFF7B3FF50B3E3 -S315080004B02B684B4505D028464946FFF7C3FF054636 -S315080004C028B32B68E41A2C1904F1040440F2FF1827 -S315080004D009F5007900F044FB05F10403E31A4345E6 -S315080004E007D928464946FFF7ADFF054698B100F1FA -S315080004F0040417F8013B237006F1FF36B6B276B14D -S3150800050004F10104E6E74FF00000BDE8F8834FF078 -S315080005100000BDE8F8834FF00000BDE8F8834FF00F -S315080005200100BDE8F88300BF40F20003C2F20003F1 -S315080005304FF0FF321A60C3F80422704770B50446BC -S315080005400D461646FFF7BEFEFF281AD004F1FF3007 -S315080005504019FFF7B7FEFF2816D04FEA54224FF48A -S315080005600053C0F60003B3EB422F0EBF084840F213 -S315080005700000C2F2000021463246ABB2FFF786FF02 -S3150800058070BD4FF0000070BD4FF0000070BD00BF99 -S31508000590040200202DE9F04105460E46FFF792FEBB -S315080005A0044605F1FF308019FFF78CFE0546FF2843 -S315080005B014BF00230123FF2C08BF43F00103002BBF -S315080005C07ED1844270D8002C72D00F2874D8FFF7D9 -S315080005D05DFE4FF40053C4F20203DB6813F0010F0B -S315080005E005D0FFF765FE4FF00000BDE8F0814FF437 -S315080005F00053C4F202031A6942F002021A61204645 -S31508000600FFF7E8FE07462846FFF7E4FE804641F274 -S315080006104416C0F600064FF0000400F0A1FA337A3B -S31508000620AB4209D141F24413C0F6000304EB44027D -S3150800063003EB82035E6807E004F1010406F10C0689 -S315080006400F2CEAD14FF00006C7EB08084644C6F35C -S315080006508F26DEB14FF000054FF40054C4F20204B1 -S315080006606761236943F040032361E36813F0010FD0 -S3150800067005D000F075FAE36813F0010FF9D105F11A -S315080006800105ADB207F58067AE42E9D84FF40053CD -S31508000690C4F202031A6922F002021A61FFF708FE81 -S315080006A04FF00100BDE8F0814FF00000BDE8F08191 -S315080006B04FF00000BDE8F0814FF00000BDE8F08182 -S315080006C04FF00000BDE8F08100B583B040F20003AA -S315080006D0C2F20003D3F80432B3F1FF3F08BF01208A -S315080006E022D040F20002C2F2000202F50273D2F8EA -S315080006F00C02D2F810124118D2F808228918DA68C2 -S3150800070089181A6989185A6989189A698B18C3F158 -S31508000710000302AA42F8043D42F25010C0F6000057 -S315080007204FF00401FFF70AFF03B000BD42F20402CE -S31508000730C0F600024FF40053C0F6000310681B68A9 -S31508000740C01842F20803C0F600031B68C01842F23C -S315080007500C03C0F600031B68C01842F21003C0F66B -S3150800076000031B68C01842F21403C0F600031B6896 -S31508000770C01842F21803C0F600031B68C01842F2FC -S315080007805013C0F600031B68C018D0F1010038BF2B -S315080007900020704708B540F20003C2F20003D3F800 -S315080007A00432B3F1FF3F03D00D48FFF7B1FD88B11E -S315080007B040F20003C2F200031B68B3F1FF3F0CD0FE -S315080007C040F20000C2F20000FFF7A2FD003818BF91 -S315080007D0012008BD4FF0000008BD4FF0010008BD1C -S315080007E00402002008B5FFF79FFE08BD08B5FFF70D -S315080007F0A5FE08BD08B5FFF7CDFE08BD08B5FFF78D -S3150800080095FF08BD08B5FFF75FFF10B1FFF7C2FFF8 -S3150800081008BD4FF0000008BD4EF21003CEF20003EB -S315080008204FF000021A6070474EF21003CEF2000332 -S315080008301B6813F4803F1FBF40F20843C2F200034F -S315080008401A88013218BF1A80704700BF40F2084361 -S31508000850C2F200031880704708B5FFF7DDFF4EF2B5 -S315080008601003CEF2000341F63F12C0F201025A60AD -S315080008704FF0000098604FF005021A60FFF7E6FF98 -S3150800088008BD00BF08B5FFF7CFFF40F20843C2F224 -S315080008900003188808BD00BF4FF48843C4F200035C -S315080008A01B8813F0200F1FBF4FF48843C4F20003C0 -S315080008B09B88037014BF01200020704710B54FF4C1 -S315080008C08843C4F200031B8813F0800F15D04FF439 -S315080008D08843C4F2000398801B8813F0800F0FD159 -S315080008E04FF48844C4F2000400F03AF9238813F060 -S315080008F0800FF9D04FF0010010BD4FF0000010BD79 -S315080009004FF0010010BD00BF4FF48843C4F2000346 -S315080009104FF000021A819A811A829A821A8340F24B -S3150800092071221A819A8992B242F4005242F00C025C -S315080009309A8170472DE9F04105460C46402907D9AA -S3150800094041F2F810C0F600004FF0880100F076F882 -S315080009502046FFF7B3FF012807D041F2F810C0F68A -S3150800096000004FF08B0100F069F82646BCB14FF045 -S31508000970000441F2F817C0F600074FF0930800F09C -S31508000980EFF8285DFFF79AFF012803D0384641465D -S3150800099000F054F804F10104A3B2B342EFD3BDE862 -S315080009A0F08100BF70B5054640F20C43C2F2000361 -S315080009B01B7883B92048FFF76FFF012833D140F22F -S315080009C00C43C2F200034FF001021A704FF0000008 -S315080009D083F8450070BD40F20C40C2F2000090F862 -S315080009E04540001900F10500FFF756FF01281DD103 -S315080009F004F10104E2B240F20C43C2F2000383F8A8 -S31508000A0045201B79934214D140F20C46C2F20006E7 -S31508000A10284606F10501FFF723FC4FF00003337063 -S31508000A204FF0010070BD4FF0000070BD4FF00000A0 -S31508000A3070BD4FF0000070BD1004002008B540F2EC -S31508000A405443C2F200031860596000F089F8FCE7C5 -S31508000A5008B500F07FF8012815D040F25C43C2F2D1 -S31508000A6000031B78012B0ED1FFF70CFF31280AD99A -S31508000A7040F25C43C2F200034FF000021A70FFF71F -S31508000A80CBFEFFF7D9FB08BD08B540F25C43C2F2BE -S31508000A9000034FF001021A70FFF7DEFEFFF7D8FFDA -S31508000AA008BD00BF08B500F059F8FFF7EDFFFFF7DE -S31508000AB099FE00F009F808BD08B500F051F800F0F5 -S31508000AC01DF8FFF7C5FF08BD00B583B04FF0FF035B -S31508000AD08DF804304FF000038DF8053000F058F813 -S31508000AE0FFF712FF40F26043C2F200031B78012BA6 -S31508000AF002D101A800F070F803B000BD08B504489B -S31508000B00FFF750FF012802D1014800F065F808BD3B -S31508000B1064040020704700BF08B5C9B2FFF70AFF92 -S31508000B2000F050F808BD00BF40F26043C2F200036F -S31508000B304FF001021A70704740F26043C2F2000398 -S31508000B404FF000021A70704740F26043C2F2000389 -S31508000B501878704708B500F02BF808BD704700BF35 -S31508000B60704700BF40F2A443C2F200034FF00002F0 -S31508000B705A70704740F2A443C2F200034FF0FE02D7 -S31508000B80DA7018714FF00202A3F84420704700BFCC -S31508000B9040F2A443C2F200034FF000021A709A64AE -S31508000BA083F84320A3F844209A705A70704700BF10 -S31508000BB040F2A443C2F200031878003818BF012097 -S31508000BC0704700BF40F2A443C2F200034FF0000290 -S31508000BD083F84320704700BF38B504460278FF2AD9 -S31508000BE01DD1FFF7BFFF40F2A443C2F200034FF046 -S31508000BF001021A704FF0FF01D9704FF010011971F8 -S31508000C004FF0000159714FF040009871D871197270 -S31508000C105A729A724FF00802A3F8442098E140F2FB -S31508000C20A443C2F200031B78012B40F0AB81A2F16A -S31508000C30C902352A00F28881DFE812F0EC00860145 -S31508000C40860181018601860173010D01590143015F -S31508000C50860186018601860186018601860186014E -S31508000C60860186018601860186018601860186013E -S31508000C70860186018601860186018601860186012E -S31508000C80860186018601860186018601860186011E -S31508000C908200540036007400860186018601A80089 -S31508000CA08601C200C700DB0042783F2A04D94FF00C -S31508000CB02200FFF75FFF4BE140F2A445C2F20005B0 -S31508000CC005F10400A96CFFF7CBFA4FF0FF03EB70B0 -S31508000CD06278AB6CD318AB64637803F10103A5F8AB -S31508000CE0443035E143783F2B04D94FF02200FFF713 -S31508000CF041FF2DE1416840F2A445C2F20005A9640E -S31508000D0005F104006278FFF7ABFA4FF0FF03EB70CA -S31508000D106278AB6CD318AB64637803F10103A5F86A -S31508000D20443015E140F2A443C2F200034FF0FF023B -S31508000D30DA7042689A644FF00102A3F8442007E18A -S31508000D4040F2A445C2F200054FF0FF03EB70A96C10 -S31508000D5043684FF000023BB14FF0000211F8010B57 -S31508000D601218D2B2013BF9D1C5F8072040F2A443C4 -S31508000D70C2F200034FF001021A714FF000025A71D5 -S31508000D809A714FF00802A3F84420E1E040F2A44328 -S31508000D90C2F200034FF0FF02DA7041F23C22C0F6BD -S31508000DA000029A644FF000021A715A719A714FF054 -S31508000DB00702C3F807204FF00802A3F84420C7E04B -S31508000DC04FF00000FFF7D6FEC2E040F2A443C2F29D -S31508000DD000034FF0FF02DA704FF000021A715978DB -S31508000DE059719A71DA711A724FF00602A3F8442003 -S31508000DF0AEE040F2A444C2F200044FF000032370B0 -S31508000E00FFF7B0FE4FF0FF03E3704FF00103A4F8BD -S31508000E1044309DE040F2A443C2F20003986C4FF0C0 -S31508000E203F0104F10102FFF7E1FC20B94FF0310060 -S31508000E30FFF7A0FE8CE040F2A443C2F200034FF095 -S31508000E40FF02DA709A6C02F13F029A644FF00102CF -S31508000E50A3F844207CE043783E2B04D94FF02200C7 -S31508000E60FFF788FE74E040F2A443C2F200034FF095 -S31508000E70FF02DA704FF00102A3F84420417841B925 -S31508000E80FFF7C0FC002863D14FF03100FFF772FE70 -S31508000E905EE040F2A443C2F20003986C04F1020239 -S31508000EA0FFF7A4FC20B94FF03100FFF763FE4FE0CF -S31508000EB040F2A443C2F2000361789A6C8A189A64D5 -S31508000EC046E040F2A443C2F200034FF0FF02DA7094 -S31508000ED04FF000021A715A714FF040019971DA7198 -S31508000EE01A725A724FF00702A3F8442030E040F213 -S31508000EF0A443C2F20003986C6168FFF77BFC20B933 -S31508000F004FF03100FFF736FE22E040F2A443C2F26A -S31508000F1000034FF0FF02DA704FF00102A3F84420F5 -S31508000F2016E0FFF7AFF940F2A443C2F200034FF010 -S31508000F30FF02DA704FF00102A3F8442008E04FF0F0 -S31508000F403100FFF717FE03E04FF02000FFF712FE0F -S31508000F5040F2A443C2F2000393F84330012B03D1B5 -S31508000F604FF01000FFF706FE40F2A443C2F200035A -S31508000F704FF0010283F8432003F10300B3F844104D -S31508000F80FFF7CAFD38BD00BF00B583B04FF00003B8 -S31508000F90019300934FF48053C4F202031A6842F097 -S31508000FA001021A6059684FF00002CFF6FF0201EA03 -S31508000FB002025A601A6822F0847222F480321A6099 -S31508000FC01A6822F480221A605A6822F4FE025A60CD -S31508000FD04FF41F029A601A6842F480321A604FF47E -S31508000FE08053C4F2020340F2DC52196801F400315E -S31508000FF00091019901F101010191009911B9019935 -S315080010009142F2D14FF48053C4F202031B6813F4E1 -S31508001010003F07D141F24420C0F600004FF06F01AF -S31508001020FFF70CFD4FF40053C4F202031A6842F0AE -S3150800103010021A601A6822F003021A601A6842F04F -S3150800104002021A604FF48053C4F202035A685A60C7 -S315080010505A6842F400525A605A6842F480625A60EA -S315080010605A6822F47C125A605A6842F4E8125A60A6 -S315080010701A6842F080721A604FF48053C4F2020371 -S315080010801A6812F0007FFBD04FF48053C4F20203B3 -S315080010905A6822F003025A605A6842F002025A60FD -S315080010A04FF48053C4F202035A6802F00C02082A6D -S315080010B0FAD14FF48053C4F20203DA6942F40032DB -S315080010C0DA619A6942F005029A614FF40063C4F244 -S315080010D001031A6822F470621A601A6842F43062D0 -S315080010E01A601A6822F470421A601A6842F480423A -S315080010F01A60FFF7D7FCFFF7DFFCFCE7443A2F75C9 -S3150800110073722F6665617365722F736F6674776184 -S3150800111072652F4F70656E424C542F546172676525 -S31508001120742F536F757263652F41524D434D335F6C -S3150800113053544D33322F4743432F766563746F728A -S31508001140732E630000200008002000000100000044 -S3150800115000400008002000000200000000600008AF -S3150800116000200000030000000080000800200000A6 -S315080011700400000000A00008002000000500000090 -S3150800118000C00008002000000600000000E000087B -S3150800119000200000070000000000010800200000F1 -S315080011A008000000002001080020000009000000D7 -S315080011B000400108002000000A0000000060010845 -S315080011C0002000000B00000000800108002000003D -S315080011D00C00000000A00108002000000D0000001F -S315080011E000C00108002000000E00000000E0010811 -S315080011F0002000000F000000443A2F7573722F6616 -S3150800120065617365722F736F6674776172652F4FA8 -S3150800121070656E424C542F5461726765742F536F14 -S31508001220757263652F41524D434D335F53544D33A9 -S31508001230322F756172742E63000000004F70656E60 -S31508001240424C54002E2E2F6D61696E2E63000000ED -S70508000000F2 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/cmd/flash.cfg b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/cmd/flash.cfg deleted file mode 100644 index a647242f..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/cmd/flash.cfg +++ /dev/null @@ -1,20 +0,0 @@ -### -# Description: mass erases and flashes the binary with OpenOCD -# Usage: openocd.exe" -f flash.cfg -### - -source [find interface/olimex-arm-usb-tiny-h.cfg] -source [find board/olimex_stm32_h103.cfg] - -jtag_khz 1000 - -init -reset -sleep 500 -halt -stm32x mass_erase 0 -flash write_image ..\\bin\\openbtl_olimex_stm32p103.elf -reset run -shutdown - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/config.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/config.h deleted file mode 100644 index 672059ae..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/config.h +++ /dev/null @@ -1,128 +0,0 @@ -/**************************************************************************************** -| Description: bootloader configuration header file -| File Name: config.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ -#ifndef CONFIG_H -#define CONFIG_H - -/**************************************************************************************** -* C P U D R I V E R C O N F I G U R A T I O N -****************************************************************************************/ -/* To properly initialize the baudrate clocks of the communication interface, typically - * the speed of the crystal oscillator and/or the speed at which the system runs is - * needed. Set these through configurables BOOT_CPU_XTAL_SPEED_KHZ and - * BOOT_CPU_SYSTEM_SPEED_KHZ, respectively. To enable data exchange with the host that is - * not dependent on the targets architecture, the byte ordering needs to be known. - * Setting BOOT_CPU_BYTE_ORDER_MOTOROLA to 1 selects little endian mode and 0 selects - * big endian mode. - */ -#define BOOT_CPU_XTAL_SPEED_KHZ (8000) -#define BOOT_CPU_SYSTEM_SPEED_KHZ (72000) -#define BOOT_CPU_BYTE_ORDER_MOTOROLA (0) - - -/**************************************************************************************** -* C O M M U N I C A T I O N I N T E R F A C E C O N F I G U R A T I O N -****************************************************************************************/ -/* The CAN communication interface is selected by setting the BOOT_COM_CAN_ENABLE - * configurable to 1. Configurable BOOT_COM_CAN_BAUDRATE selects the communication speed - * in bits/second. Two CAN messages are reserved for communication with the host. The - * message identifier for sending data from the target to the host is configured with - * BOOT_COM_CAN_TXMSG_ID. The one for receiving data from the host is configured with - * BOOT_COM_CAN_RXMSG_ID. The maximum amount of data bytes in a message for data - * transmission and reception is set through BOOT_COM_CAN_TX_MAX_DATA and - * BOOT_COM_CAN_RX_MAX_DATA, respectively. It is common for a microcontroller to have more - * than 1 CAN controller on board. The zero-based BOOT_COM_CAN_CHANNEL_INDEX selects the - * CAN controller channel. - * - */ -#define BOOT_COM_CAN_ENABLE (0) -#define BOOT_COM_CAN_BAUDRATE (500000) -#define BOOT_COM_CAN_TX_MSG_ID (0x7E1) -#define BOOT_COM_CAN_TX_MAX_DATA (8) -#define BOOT_COM_CAN_RX_MSG_ID (0x667) -#define BOOT_COM_CAN_RX_MAX_DATA (8) -#define BOOT_COM_CAN_CHANNEL_INDEX (0) - -/* The UART communication interface is selected by setting the BOOT_COM_UART_ENABLE - * configurable to 1. Configurable BOOT_COM_UART_BAUDRATE selects the communication speed - * in bits/second. The maximum amount of data bytes in a message for data transmission - * and reception is set through BOOT_COM_UART_TX_MAX_DATA and BOOT_COM_UART_RX_MAX_DATA, - * respectively. It is common for a microcontroller to have more than 1 UART interface - * on board. The zero-based BOOT_COM_UART_CHANNEL_INDEX selects the UART interface. - * - */ -#define BOOT_COM_UART_ENABLE (1) -#define BOOT_COM_UART_BAUDRATE (57600) -#define BOOT_COM_UART_TX_MAX_DATA (64) -#define BOOT_COM_UART_RX_MAX_DATA (64) -#define BOOT_COM_UART_CHANNEL_INDEX (1) - - -/**************************************************************************************** -* B A C K D O O R E N T R Y C O N F I G U R A T I O N -****************************************************************************************/ -/* It is possible to implement an application specific method to force the bootloader to - * stay active after a reset. Such a backdoor entry into the bootloader is desired in - * situations where the user program does not run properly and therefore cannot - * reactivate the bootloader. By enabling these hook functions, the application can - * implement the backdoor, which overrides the default backdoor entry that is programmed - * into the bootloader. When desired for security purposes, these hook functions can - * also be implemented in a way that disables the backdoor entry altogether. - */ -#define BOOT_BACKDOOR_HOOKS_ENABLE (0) - - -/**************************************************************************************** -* N O N - V O L A T I L E M E M O R Y D R I V E R C O N F I G U R A T I O N -****************************************************************************************/ -/* The NVM driver typically supports erase and program operations of the internal memory - * present on the microcontroller. Through these hook functions the NVM driver can be - * extended to support additional memory types such as external flash memory and serial - * eeproms. The size of the internal memory in kilobytes is specified with configurable - * BOOT_NVM_SIZE_KB. - */ -#define BOOT_NVM_HOOKS_ENABLE (0) -#define BOOT_NVM_SIZE_KB (128) - - -/**************************************************************************************** -* W A T C H D O G D R I V E R C O N F I G U R A T I O N -****************************************************************************************/ -/* The COP driver cannot be configured internally in the bootloader, because its use - * and configuration is application specific. The bootloader does need to service the - * watchdog in case it is used. When the application requires the use of a watchdog, - * set BOOT_COP_HOOKS_ENABLE to be able to initialize and service the watchdog through - * hook functions. - */ -#define BOOT_COP_HOOKS_ENABLE (0) - - -#endif /* CONFIG_H */ -/*********************************** end of config.h ***********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/hooks.c deleted file mode 100644 index d9da4e05..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/hooks.c +++ /dev/null @@ -1,179 +0,0 @@ -/**************************************************************************************** -| Description: bootloader callback source file -| File Name: hooks.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "boot.h" /* bootloader generic header */ - - -/**************************************************************************************** -* B A C K D O O R E N T R Y H O O K F U N C T I O N S -****************************************************************************************/ - -#if (BOOT_BACKDOOR_HOOKS_ENABLE > 0) -/**************************************************************************************** -** NAME: BackDoorInitHook -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the backdoor entry option. -** -****************************************************************************************/ -void BackDoorInitHook(void) -{ -} /*** end of BackDoorInitHook ***/ - - -/**************************************************************************************** -** NAME: BackDoorEntryHook -** PARAMETER: none -** RETURN VALUE: BLT_TRUE if the backdoor entry is requested, BLT_FALSE otherwise. -** DESCRIPTION: Checks if a backdoor entry is requested. -** -****************************************************************************************/ -blt_bool BackDoorEntryHook(void) -{ - /* default implementation always activates the bootloader after a reset */ - return BLT_TRUE; -} /*** end of BackDoorEntryHook ***/ -#endif /* BOOT_BACKDOOR_HOOKS_ENABLE > 0 */ - - -/**************************************************************************************** -* N O N - V O L A T I L E M E M O R Y D R I V E R H O O K F U N C T I O N S -****************************************************************************************/ - -#if (BOOT_NVM_HOOKS_ENABLE > 0) -/**************************************************************************************** -** NAME: NvmInitHook -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Callback that gets called at the start of the internal NVM driver -** initialization routine. -** -****************************************************************************************/ -void NvmInitHook(void) -{ -} /*** end of NvmInitHook ***/ - - -/**************************************************************************************** -** NAME: NvmWriteHook -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is -** not within the supported memory range, or BLT_NVM_ERROR is the write -** operation failed. -** DESCRIPTION: Callback that gets called at the start of the NVM driver write -** routine. It allows additional memory to be operated on. If the address -** is not within the range of the additional memory, then -** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't -** been written yet. -** -** -****************************************************************************************/ -blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data) -{ - return BLT_NVM_NOT_IN_RANGE; -} /*** end of NvmWriteHook ***/ - - -/**************************************************************************************** -** NAME: NvmEraseHook -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is -** not within the supported memory range, or BLT_NVM_ERROR is the erase -** operation failed. -** DESCRIPTION: Callback that gets called at the start of the NVM driver erase -** routine. It allows additional memory to be operated on. If the address -** is not within the range of the additional memory, then -** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory -** hasn't been erased yet. -** -****************************************************************************************/ -blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len) -{ - return BLT_NVM_NOT_IN_RANGE; -} /*** end of NvmEraseHook ***/ - - -/**************************************************************************************** -** NAME: NvmDoneHook -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise. -** DESCRIPTION: Callback that gets called at the end of the NVM programming session. -** -****************************************************************************************/ -blt_bool NvmDoneHook(void) -{ - return BLT_TRUE; -} /*** end of NvmDoneHook ***/ -#endif /* BOOT_NVM_HOOKS_ENABLE > 0 */ - - -/**************************************************************************************** -* W A T C H D O G D R I V E R H O O K F U N C T I O N S -****************************************************************************************/ - -#if (BOOT_COP_HOOKS_ENABLE > 0) -/**************************************************************************************** -** NAME: CopInitHook -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Callback that gets called at the end of the internal COP driver -** initialization routine. It can be used to configure and enable the -** watchdog. -** -****************************************************************************************/ -void CopInitHook(void) -{ -} /*** end of CopInitHook ***/ - - -/**************************************************************************************** -** NAME: CopServiceHook -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Callback that gets called at the end of the internal COP driver -** service routine. This gets called upon initialization and during -** potential long lasting loops and routine. It can be used to service -** the watchdog to prevent a watchdog reset. -** -****************************************************************************************/ -void CopServiceHook(void) -{ -} /*** end of CopServiceHook ***/ -#endif /* BOOT_COP_HOOKS_ENABLE > 0 */ - - -/*********************************** end of hooks.c ************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/ide/readme.txt b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/ide/readme.txt deleted file mode 100644 index 1b397421..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/ide/readme.txt +++ /dev/null @@ -1,10 +0,0 @@ -Integrated Development Environment ----------------------------------- -Eclipse IDE for C/C++ Developers (version 3.7) was used as the editor during the development of this software. It can be downloaded -from http://www.eclipse.org. - -Plugins -------- -The following plugins are required. Refer to the plugin's website for installation instructions: -- GNU ARM Eclipse Plug-in (http://sourceforge.net/projects/gnuarmeclipse/) - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.c deleted file mode 100644 index 56fddc52..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.c +++ /dev/null @@ -1,784 +0,0 @@ -/**************************************************************************//** - * @file core_cm3.c - * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Source File - * @version V1.30 - * @date 30. October 2009 - * - * @note - * Copyright (C) 2009 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - -#include - -/* define compiler specific symbols */ -#if defined ( __CC_ARM ) - #define __ASM __asm /*!< asm keyword for ARM Compiler */ - #define __INLINE __inline /*!< inline keyword for ARM Compiler */ - -#elif defined ( __ICCARM__ ) - #define __ASM __asm /*!< asm keyword for IAR Compiler */ - #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ - -#elif defined ( __GNUC__ ) - #define __ASM __asm /*!< asm keyword for GNU Compiler */ - #define __INLINE inline /*!< inline keyword for GNU Compiler */ - -#elif defined ( __TASKING__ ) - #define __ASM __asm /*!< asm keyword for TASKING Compiler */ - #define __INLINE inline /*!< inline keyword for TASKING Compiler */ - -#endif - - -/* ################### Compiler specific Intrinsics ########################### */ - -#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ -/* ARM armcc specific functions */ - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -__ASM uint32_t __get_PSP(void) -{ - mrs r0, psp - bx lr -} - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -__ASM void __set_PSP(uint32_t topOfProcStack) -{ - msr psp, r0 - bx lr -} - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -__ASM uint32_t __get_MSP(void) -{ - mrs r0, msp - bx lr -} - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -__ASM void __set_MSP(uint32_t mainStackPointer) -{ - msr msp, r0 - bx lr -} - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -__ASM uint32_t __REV16(uint16_t value) -{ - rev16 r0, r0 - bx lr -} - -/** - * @brief Reverse byte order in signed short value with sign extension to integer - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in signed short value with sign extension to integer - */ -__ASM int32_t __REVSH(int16_t value) -{ - revsh r0, r0 - bx lr -} - - -#if (__ARMCC_VERSION < 400000) - -/** - * @brief Remove the exclusive lock created by ldrex - * - * Removes the exclusive lock which is created by ldrex. - */ -__ASM void __CLREX(void) -{ - clrex -} - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -__ASM uint32_t __get_BASEPRI(void) -{ - mrs r0, basepri - bx lr -} - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -__ASM void __set_BASEPRI(uint32_t basePri) -{ - msr basepri, r0 - bx lr -} - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -__ASM uint32_t __get_PRIMASK(void) -{ - mrs r0, primask - bx lr -} - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -__ASM void __set_PRIMASK(uint32_t priMask) -{ - msr primask, r0 - bx lr -} - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -__ASM uint32_t __get_FAULTMASK(void) -{ - mrs r0, faultmask - bx lr -} - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -__ASM void __set_FAULTMASK(uint32_t faultMask) -{ - msr faultmask, r0 - bx lr -} - -/** - * @brief Return the Control Register value - * - * @return Control value - * - * Return the content of the control register - */ -__ASM uint32_t __get_CONTROL(void) -{ - mrs r0, control - bx lr -} - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -__ASM void __set_CONTROL(uint32_t control) -{ - msr control, r0 - bx lr -} - -#endif /* __ARMCC_VERSION */ - - - -#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/ -/* IAR iccarm specific functions */ -#pragma diag_suppress=Pe940 - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -uint32_t __get_PSP(void) -{ - __ASM("mrs r0, psp"); - __ASM("bx lr"); -} - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -void __set_PSP(uint32_t topOfProcStack) -{ - __ASM("msr psp, r0"); - __ASM("bx lr"); -} - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -uint32_t __get_MSP(void) -{ - __ASM("mrs r0, msp"); - __ASM("bx lr"); -} - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -void __set_MSP(uint32_t topOfMainStack) -{ - __ASM("msr msp, r0"); - __ASM("bx lr"); -} - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -uint32_t __REV16(uint16_t value) -{ - __ASM("rev16 r0, r0"); - __ASM("bx lr"); -} - -/** - * @brief Reverse bit order of value - * - * @param value value to reverse - * @return reversed value - * - * Reverse bit order of value - */ -uint32_t __RBIT(uint32_t value) -{ - __ASM("rbit r0, r0"); - __ASM("bx lr"); -} - -/** - * @brief LDR Exclusive (8 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 8 bit values) - */ -uint8_t __LDREXB(uint8_t *addr) -{ - __ASM("ldrexb r0, [r0]"); - __ASM("bx lr"); -} - -/** - * @brief LDR Exclusive (16 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 16 bit values - */ -uint16_t __LDREXH(uint16_t *addr) -{ - __ASM("ldrexh r0, [r0]"); - __ASM("bx lr"); -} - -/** - * @brief LDR Exclusive (32 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 32 bit values - */ -uint32_t __LDREXW(uint32_t *addr) -{ - __ASM("ldrex r0, [r0]"); - __ASM("bx lr"); -} - -/** - * @brief STR Exclusive (8 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 8 bit values - */ -uint32_t __STREXB(uint8_t value, uint8_t *addr) -{ - __ASM("strexb r0, r0, [r1]"); - __ASM("bx lr"); -} - -/** - * @brief STR Exclusive (16 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 16 bit values - */ -uint32_t __STREXH(uint16_t value, uint16_t *addr) -{ - __ASM("strexh r0, r0, [r1]"); - __ASM("bx lr"); -} - -/** - * @brief STR Exclusive (32 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 32 bit values - */ -uint32_t __STREXW(uint32_t value, uint32_t *addr) -{ - __ASM("strex r0, r0, [r1]"); - __ASM("bx lr"); -} - -#pragma diag_default=Pe940 - - -#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ -/* GNU gcc specific functions */ - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -uint32_t __get_PSP(void) __attribute__( ( naked ) ); -uint32_t __get_PSP(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, psp\n\t" - "MOV r0, %0 \n\t" - "BX lr \n\t" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -void __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) ); -void __set_PSP(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp, %0\n\t" - "BX lr \n\t" : : "r" (topOfProcStack) ); -} - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -uint32_t __get_MSP(void) __attribute__( ( naked ) ); -uint32_t __get_MSP(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, msp\n\t" - "MOV r0, %0 \n\t" - "BX lr \n\t" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -void __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) ); -void __set_MSP(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp, %0\n\t" - "BX lr \n\t" : : "r" (topOfMainStack) ); -} - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -uint32_t __get_BASEPRI(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, basepri_max" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -void __set_BASEPRI(uint32_t value) -{ - __ASM volatile ("MSR basepri, %0" : : "r" (value) ); -} - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -uint32_t __get_PRIMASK(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, primask" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -void __set_PRIMASK(uint32_t priMask) -{ - __ASM volatile ("MSR primask, %0" : : "r" (priMask) ); -} - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -uint32_t __get_FAULTMASK(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -void __set_FAULTMASK(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) ); -} - -/** - * @brief Return the Control Register value -* -* @return Control value - * - * Return the content of the control register - */ -uint32_t __get_CONTROL(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, control" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -void __set_CONTROL(uint32_t control) -{ - __ASM volatile ("MSR control, %0" : : "r" (control) ); -} - - -/** - * @brief Reverse byte order in integer value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in integer value - */ -uint32_t __REV(uint32_t value) -{ - uint32_t result=0; - - __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -uint32_t __REV16(uint16_t value) -{ - uint32_t result=0; - - __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -/** - * @brief Reverse byte order in signed short value with sign extension to integer - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in signed short value with sign extension to integer - */ -int32_t __REVSH(int16_t value) -{ - uint32_t result=0; - - __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -/** - * @brief Reverse bit order of value - * - * @param value value to reverse - * @return reversed value - * - * Reverse bit order of value - */ -uint32_t __RBIT(uint32_t value) -{ - uint32_t result=0; - - __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -/** - * @brief LDR Exclusive (8 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 8 bit value - */ -uint8_t __LDREXB(uint8_t *addr) -{ - uint8_t result=0; - - __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) ); - return(result); -} - -/** - * @brief LDR Exclusive (16 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 16 bit values - */ -uint16_t __LDREXH(uint16_t *addr) -{ - uint16_t result=0; - - __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) ); - return(result); -} - -/** - * @brief LDR Exclusive (32 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 32 bit values - */ -uint32_t __LDREXW(uint32_t *addr) -{ - uint32_t result=0; - - __ASM volatile ("ldrex %0, [%1]" : "=r" (result) : "r" (addr) ); - return(result); -} - -/** - * @brief STR Exclusive (8 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 8 bit values - */ -uint32_t __STREXB(uint8_t value, uint8_t *addr) -{ - uint32_t result=0; - - __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); - return(result); -} - -/** - * @brief STR Exclusive (16 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 16 bit values - */ -uint32_t __STREXH(uint16_t value, uint16_t *addr) -{ - uint32_t result=0; - - __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); - return(result); -} - -/** - * @brief STR Exclusive (32 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 32 bit values - */ -uint32_t __STREXW(uint32_t value, uint32_t *addr) -{ - uint32_t result=0; - - __ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); - return(result); -} - - -#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/ -/* TASKING carm specific functions */ - -/* - * The CMSIS functions have been implemented as intrinsics in the compiler. - * Please use "carm -?i" to get an up to date list of all instrinsics, - * Including the CMSIS ones. - */ - -#endif diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.h deleted file mode 100644 index 2b6b51a7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/CoreSupport/core_cm3.h +++ /dev/null @@ -1,1818 +0,0 @@ -/**************************************************************************//** - * @file core_cm3.h - * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File - * @version V1.30 - * @date 30. October 2009 - * - * @note - * Copyright (C) 2009 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - -#ifndef __CM3_CORE_H__ -#define __CM3_CORE_H__ - -/** @addtogroup CMSIS_CM3_core_LintCinfiguration CMSIS CM3 Core Lint Configuration - * - * List of Lint messages which will be suppressed and not shown: - * - Error 10: \n - * register uint32_t __regBasePri __asm("basepri"); \n - * Error 10: Expecting ';' - * . - * - Error 530: \n - * return(__regBasePri); \n - * Warning 530: Symbol '__regBasePri' (line 264) not initialized - * . - * - Error 550: \n - * __regBasePri = (basePri & 0x1ff); \n - * Warning 550: Symbol '__regBasePri' (line 271) not accessed - * . - * - Error 754: \n - * uint32_t RESERVED0[24]; \n - * Info 754: local structure member '' (line 109, file ./cm3_core.h) not referenced - * . - * - Error 750: \n - * #define __CM3_CORE_H__ \n - * Info 750: local macro '__CM3_CORE_H__' (line 43, file./cm3_core.h) not referenced - * . - * - Error 528: \n - * static __INLINE void NVIC_DisableIRQ(uint32_t IRQn) \n - * Warning 528: Symbol 'NVIC_DisableIRQ(unsigned int)' (line 419, file ./cm3_core.h) not referenced - * . - * - Error 751: \n - * } InterruptType_Type; \n - * Info 751: local typedef 'InterruptType_Type' (line 170, file ./cm3_core.h) not referenced - * . - * Note: To re-enable a Message, insert a space before 'lint' * - * - */ - -/*lint -save */ -/*lint -e10 */ -/*lint -e530 */ -/*lint -e550 */ -/*lint -e754 */ -/*lint -e750 */ -/*lint -e528 */ -/*lint -e751 */ - - -/** @addtogroup CMSIS_CM3_core_definitions CM3 Core Definitions - This file defines all structures and symbols for CMSIS core: - - CMSIS version number - - Cortex-M core registers and bitfields - - Cortex-M core peripheral base address - @{ - */ - -#ifdef __cplusplus - extern "C" { -#endif - -#define __CM3_CMSIS_VERSION_MAIN (0x01) /*!< [31:16] CMSIS HAL main version */ -#define __CM3_CMSIS_VERSION_SUB (0x30) /*!< [15:0] CMSIS HAL sub version */ -#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */ - -#define __CORTEX_M (0x03) /*!< Cortex core */ - -#include /* Include standard types */ - -#if defined (__ICCARM__) - #include /* IAR Intrinsics */ -#endif - - -#ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 4 /*!< standard definition for NVIC Priority Bits */ -#endif - - - - -/** - * IO definitions - * - * define access restrictions to peripheral registers - */ - -#ifdef __cplusplus - #define __I volatile /*!< defines 'read only' permissions */ -#else - #define __I volatile const /*!< defines 'read only' permissions */ -#endif -#define __O volatile /*!< defines 'write only' permissions */ -#define __IO volatile /*!< defines 'read / write' permissions */ - - - -/******************************************************************************* - * Register Abstraction - ******************************************************************************/ -/** @addtogroup CMSIS_CM3_core_register CMSIS CM3 Core Register - @{ -*/ - - -/** @addtogroup CMSIS_CM3_NVIC CMSIS CM3 NVIC - memory mapped structure for Nested Vectored Interrupt Controller (NVIC) - @{ - */ -typedef struct -{ - __IO uint32_t ISER[8]; /*!< Offset: 0x000 Interrupt Set Enable Register */ - uint32_t RESERVED0[24]; - __IO uint32_t ICER[8]; /*!< Offset: 0x080 Interrupt Clear Enable Register */ - uint32_t RSERVED1[24]; - __IO uint32_t ISPR[8]; /*!< Offset: 0x100 Interrupt Set Pending Register */ - uint32_t RESERVED2[24]; - __IO uint32_t ICPR[8]; /*!< Offset: 0x180 Interrupt Clear Pending Register */ - uint32_t RESERVED3[24]; - __IO uint32_t IABR[8]; /*!< Offset: 0x200 Interrupt Active bit Register */ - uint32_t RESERVED4[56]; - __IO uint8_t IP[240]; /*!< Offset: 0x300 Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644]; - __O uint32_t STIR; /*!< Offset: 0xE00 Software Trigger Interrupt Register */ -} NVIC_Type; -/*@}*/ /* end of group CMSIS_CM3_NVIC */ - - -/** @addtogroup CMSIS_CM3_SCB CMSIS CM3 SCB - memory mapped structure for System Control Block (SCB) - @{ - */ -typedef struct -{ - __I uint32_t CPUID; /*!< Offset: 0x00 CPU ID Base Register */ - __IO uint32_t ICSR; /*!< Offset: 0x04 Interrupt Control State Register */ - __IO uint32_t VTOR; /*!< Offset: 0x08 Vector Table Offset Register */ - __IO uint32_t AIRCR; /*!< Offset: 0x0C Application Interrupt / Reset Control Register */ - __IO uint32_t SCR; /*!< Offset: 0x10 System Control Register */ - __IO uint32_t CCR; /*!< Offset: 0x14 Configuration Control Register */ - __IO uint8_t SHP[12]; /*!< Offset: 0x18 System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IO uint32_t SHCSR; /*!< Offset: 0x24 System Handler Control and State Register */ - __IO uint32_t CFSR; /*!< Offset: 0x28 Configurable Fault Status Register */ - __IO uint32_t HFSR; /*!< Offset: 0x2C Hard Fault Status Register */ - __IO uint32_t DFSR; /*!< Offset: 0x30 Debug Fault Status Register */ - __IO uint32_t MMFAR; /*!< Offset: 0x34 Mem Manage Address Register */ - __IO uint32_t BFAR; /*!< Offset: 0x38 Bus Fault Address Register */ - __IO uint32_t AFSR; /*!< Offset: 0x3C Auxiliary Fault Status Register */ - __I uint32_t PFR[2]; /*!< Offset: 0x40 Processor Feature Register */ - __I uint32_t DFR; /*!< Offset: 0x48 Debug Feature Register */ - __I uint32_t ADR; /*!< Offset: 0x4C Auxiliary Feature Register */ - __I uint32_t MMFR[4]; /*!< Offset: 0x50 Memory Model Feature Register */ - __I uint32_t ISAR[5]; /*!< Offset: 0x60 ISA Feature Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFul << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFul << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFul << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0 /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFul << SCB_CPUID_REVISION_Pos) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31 /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1ul << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1ul << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1ul << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1ul << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1ul << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1ul << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1ul << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFul << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1ul << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFul << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_VTOR_TBLBASE_Pos 29 /*!< SCB VTOR: TBLBASE Position */ -#define SCB_VTOR_TBLBASE_Msk (0x1FFul << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ - -#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFul << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16 /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFul << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFul << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1ul << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7ul << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1ul << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1ul << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0 /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1ul << SCB_AIRCR_VECTRESET_Pos) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4 /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1ul << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1ul << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1ul << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9 /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1ul << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1ul << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4 /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1ul << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1ul << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1 /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1ul << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1ul << SCB_CCR_NONBASETHRDENA_Pos) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18 /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1ul << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1ul << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1ul << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1ul << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1ul << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1ul << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1ul << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1ul << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1ul << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1ul << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1ul << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1ul << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1ul << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1ul << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Registers Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFul << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8 /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFul << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0 /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFul << SCB_CFSR_MEMFAULTSR_Pos) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* SCB Hard Fault Status Registers Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1ul << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1ul << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1 /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1ul << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4 /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1ul << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1ul << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1ul << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1ul << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1ul << SCB_DFSR_HALTED_Pos) /*!< SCB DFSR: HALTED Mask */ -/*@}*/ /* end of group CMSIS_CM3_SCB */ - - -/** @addtogroup CMSIS_CM3_SysTick CMSIS CM3 SysTick - memory mapped structure for SysTick - @{ - */ -typedef struct -{ - __IO uint32_t CTRL; /*!< Offset: 0x00 SysTick Control and Status Register */ - __IO uint32_t LOAD; /*!< Offset: 0x04 SysTick Reload Value Register */ - __IO uint32_t VAL; /*!< Offset: 0x08 SysTick Current Value Register */ - __I uint32_t CALIB; /*!< Offset: 0x0C SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1ul << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1ul << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1ul << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0 /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1ul << SysTick_CTRL_ENABLE_Pos) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0 /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0 /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31 /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1ul << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1ul << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */ -/*@}*/ /* end of group CMSIS_CM3_SysTick */ - - -/** @addtogroup CMSIS_CM3_ITM CMSIS CM3 ITM - memory mapped structure for Instrumentation Trace Macrocell (ITM) - @{ - */ -typedef struct -{ - __O union - { - __O uint8_t u8; /*!< Offset: ITM Stimulus Port 8-bit */ - __O uint16_t u16; /*!< Offset: ITM Stimulus Port 16-bit */ - __O uint32_t u32; /*!< Offset: ITM Stimulus Port 32-bit */ - } PORT [32]; /*!< Offset: 0x00 ITM Stimulus Port Registers */ - uint32_t RESERVED0[864]; - __IO uint32_t TER; /*!< Offset: ITM Trace Enable Register */ - uint32_t RESERVED1[15]; - __IO uint32_t TPR; /*!< Offset: ITM Trace Privilege Register */ - uint32_t RESERVED2[15]; - __IO uint32_t TCR; /*!< Offset: ITM Trace Control Register */ - uint32_t RESERVED3[29]; - __IO uint32_t IWR; /*!< Offset: ITM Integration Write Register */ - __IO uint32_t IRR; /*!< Offset: ITM Integration Read Register */ - __IO uint32_t IMCR; /*!< Offset: ITM Integration Mode Control Register */ - uint32_t RESERVED4[43]; - __IO uint32_t LAR; /*!< Offset: ITM Lock Access Register */ - __IO uint32_t LSR; /*!< Offset: ITM Lock Status Register */ - uint32_t RESERVED5[6]; - __I uint32_t PID4; /*!< Offset: ITM Peripheral Identification Register #4 */ - __I uint32_t PID5; /*!< Offset: ITM Peripheral Identification Register #5 */ - __I uint32_t PID6; /*!< Offset: ITM Peripheral Identification Register #6 */ - __I uint32_t PID7; /*!< Offset: ITM Peripheral Identification Register #7 */ - __I uint32_t PID0; /*!< Offset: ITM Peripheral Identification Register #0 */ - __I uint32_t PID1; /*!< Offset: ITM Peripheral Identification Register #1 */ - __I uint32_t PID2; /*!< Offset: ITM Peripheral Identification Register #2 */ - __I uint32_t PID3; /*!< Offset: ITM Peripheral Identification Register #3 */ - __I uint32_t CID0; /*!< Offset: ITM Component Identification Register #0 */ - __I uint32_t CID1; /*!< Offset: ITM Component Identification Register #1 */ - __I uint32_t CID2; /*!< Offset: ITM Component Identification Register #2 */ - __I uint32_t CID3; /*!< Offset: ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0 /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFul << ITM_TPR_PRIVMASK_Pos) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23 /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1ul << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_ATBID_Pos 16 /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_ATBID_Msk (0x7Ful << ITM_TCR_ATBID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_TSPrescale_Pos 8 /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3ul << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1ul << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1ul << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1ul << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1ul << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0 /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1ul << ITM_TCR_ITMENA_Pos) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Integration Write Register Definitions */ -#define ITM_IWR_ATVALIDM_Pos 0 /*!< ITM IWR: ATVALIDM Position */ -#define ITM_IWR_ATVALIDM_Msk (1ul << ITM_IWR_ATVALIDM_Pos) /*!< ITM IWR: ATVALIDM Mask */ - -/* ITM Integration Read Register Definitions */ -#define ITM_IRR_ATREADYM_Pos 0 /*!< ITM IRR: ATREADYM Position */ -#define ITM_IRR_ATREADYM_Msk (1ul << ITM_IRR_ATREADYM_Pos) /*!< ITM IRR: ATREADYM Mask */ - -/* ITM Integration Mode Control Register Definitions */ -#define ITM_IMCR_INTEGRATION_Pos 0 /*!< ITM IMCR: INTEGRATION Position */ -#define ITM_IMCR_INTEGRATION_Msk (1ul << ITM_IMCR_INTEGRATION_Pos) /*!< ITM IMCR: INTEGRATION Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2 /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1ul << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1ul << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0 /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1ul << ITM_LSR_Present_Pos) /*!< ITM LSR: Present Mask */ -/*@}*/ /* end of group CMSIS_CM3_ITM */ - - -/** @addtogroup CMSIS_CM3_InterruptType CMSIS CM3 Interrupt Type - memory mapped structure for Interrupt Type - @{ - */ -typedef struct -{ - uint32_t RESERVED0; - __I uint32_t ICTR; /*!< Offset: 0x04 Interrupt Control Type Register */ -#if ((defined __CM3_REV) && (__CM3_REV >= 0x200)) - __IO uint32_t ACTLR; /*!< Offset: 0x08 Auxiliary Control Register */ -#else - uint32_t RESERVED1; -#endif -} InterruptType_Type; - -/* Interrupt Controller Type Register Definitions */ -#define InterruptType_ICTR_INTLINESNUM_Pos 0 /*!< InterruptType ICTR: INTLINESNUM Position */ -#define InterruptType_ICTR_INTLINESNUM_Msk (0x1Ful << InterruptType_ICTR_INTLINESNUM_Pos) /*!< InterruptType ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#define InterruptType_ACTLR_DISFOLD_Pos 2 /*!< InterruptType ACTLR: DISFOLD Position */ -#define InterruptType_ACTLR_DISFOLD_Msk (1ul << InterruptType_ACTLR_DISFOLD_Pos) /*!< InterruptType ACTLR: DISFOLD Mask */ - -#define InterruptType_ACTLR_DISDEFWBUF_Pos 1 /*!< InterruptType ACTLR: DISDEFWBUF Position */ -#define InterruptType_ACTLR_DISDEFWBUF_Msk (1ul << InterruptType_ACTLR_DISDEFWBUF_Pos) /*!< InterruptType ACTLR: DISDEFWBUF Mask */ - -#define InterruptType_ACTLR_DISMCYCINT_Pos 0 /*!< InterruptType ACTLR: DISMCYCINT Position */ -#define InterruptType_ACTLR_DISMCYCINT_Msk (1ul << InterruptType_ACTLR_DISMCYCINT_Pos) /*!< InterruptType ACTLR: DISMCYCINT Mask */ -/*@}*/ /* end of group CMSIS_CM3_InterruptType */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1) -/** @addtogroup CMSIS_CM3_MPU CMSIS CM3 MPU - memory mapped structure for Memory Protection Unit (MPU) - @{ - */ -typedef struct -{ - __I uint32_t TYPE; /*!< Offset: 0x00 MPU Type Register */ - __IO uint32_t CTRL; /*!< Offset: 0x04 MPU Control Register */ - __IO uint32_t RNR; /*!< Offset: 0x08 MPU Region RNRber Register */ - __IO uint32_t RBAR; /*!< Offset: 0x0C MPU Region Base Address Register */ - __IO uint32_t RASR; /*!< Offset: 0x10 MPU Region Attribute and Size Register */ - __IO uint32_t RBAR_A1; /*!< Offset: 0x14 MPU Alias 1 Region Base Address Register */ - __IO uint32_t RASR_A1; /*!< Offset: 0x18 MPU Alias 1 Region Attribute and Size Register */ - __IO uint32_t RBAR_A2; /*!< Offset: 0x1C MPU Alias 2 Region Base Address Register */ - __IO uint32_t RASR_A2; /*!< Offset: 0x20 MPU Alias 2 Region Attribute and Size Register */ - __IO uint32_t RBAR_A3; /*!< Offset: 0x24 MPU Alias 3 Region Base Address Register */ - __IO uint32_t RASR_A3; /*!< Offset: 0x28 MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -/* MPU Type Register */ -#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFul << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFul << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1ul << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register */ -#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1ul << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1ul << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1ul << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register */ -#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFul << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register */ -#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFul << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1ul << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFul << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register */ -#define MPU_RASR_XN_Pos 28 /*!< MPU RASR: XN Position */ -#define MPU_RASR_XN_Msk (1ul << MPU_RASR_XN_Pos) /*!< MPU RASR: XN Mask */ - -#define MPU_RASR_AP_Pos 24 /*!< MPU RASR: AP Position */ -#define MPU_RASR_AP_Msk (7ul << MPU_RASR_AP_Pos) /*!< MPU RASR: AP Mask */ - -#define MPU_RASR_TEX_Pos 19 /*!< MPU RASR: TEX Position */ -#define MPU_RASR_TEX_Msk (7ul << MPU_RASR_TEX_Pos) /*!< MPU RASR: TEX Mask */ - -#define MPU_RASR_S_Pos 18 /*!< MPU RASR: Shareable bit Position */ -#define MPU_RASR_S_Msk (1ul << MPU_RASR_S_Pos) /*!< MPU RASR: Shareable bit Mask */ - -#define MPU_RASR_C_Pos 17 /*!< MPU RASR: Cacheable bit Position */ -#define MPU_RASR_C_Msk (1ul << MPU_RASR_C_Pos) /*!< MPU RASR: Cacheable bit Mask */ - -#define MPU_RASR_B_Pos 16 /*!< MPU RASR: Bufferable bit Position */ -#define MPU_RASR_B_Msk (1ul << MPU_RASR_B_Pos) /*!< MPU RASR: Bufferable bit Mask */ - -#define MPU_RASR_SRD_Pos 8 /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFul << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1 /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1Ful << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENA_Pos 0 /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENA_Msk (0x1Ful << MPU_RASR_ENA_Pos) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@}*/ /* end of group CMSIS_CM3_MPU */ -#endif - - -/** @addtogroup CMSIS_CM3_CoreDebug CMSIS CM3 Core Debug - memory mapped structure for Core Debug Register - @{ - */ -typedef struct -{ - __IO uint32_t DHCSR; /*!< Offset: 0x00 Debug Halting Control and Status Register */ - __O uint32_t DCRSR; /*!< Offset: 0x04 Debug Core Register Selector Register */ - __IO uint32_t DCRDR; /*!< Offset: 0x08 Debug Core Register Data Register */ - __IO uint32_t DEMCR; /*!< Offset: 0x0C Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFul << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25 /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1ul << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24 /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1ul << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19 /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1ul << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18 /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1ul << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17 /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1ul << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16 /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1ul << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5 /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1ul << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3 /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1ul << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2 /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1ul << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1 /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1ul << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0 /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1ul << CoreDebug_DHCSR_C_DEBUGEN_Pos) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register */ -#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1ul << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1Ful << CoreDebug_DCRSR_REGSEL_Pos) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register */ -#define CoreDebug_DEMCR_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1ul << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1ul << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18 /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1ul << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17 /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1ul << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16 /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1ul << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10 /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1ul << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9 /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1ul << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8 /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1ul << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7 /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1ul << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6 /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1ul << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5 /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1ul << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4 /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1ul << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0 /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1ul << CoreDebug_DEMCR_VC_CORERESET_Pos) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ -/*@}*/ /* end of group CMSIS_CM3_CoreDebug */ - - -/* Memory mapping of Cortex-M3 Hardware */ -#define SCS_BASE (0xE000E000) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000) /*!< ITM Base Address */ -#define CoreDebug_BASE (0xE000EDF0) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00) /*!< System Control Block Base Address */ - -#define InterruptType ((InterruptType_Type *) SCS_BASE) /*!< Interrupt Type Register */ -#define SCB ((SCB_Type *) SCB_BASE) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE) /*!< ITM configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1) - #define MPU_BASE (SCS_BASE + 0x0D90) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type*) MPU_BASE) /*!< Memory Protection Unit */ -#endif - -/*@}*/ /* end of group CMSIS_CM3_core_register */ - - -/******************************************************************************* - * Hardware Abstraction Layer - ******************************************************************************/ - -#if defined ( __CC_ARM ) - #define __ASM __asm /*!< asm keyword for ARM Compiler */ - #define __INLINE __inline /*!< inline keyword for ARM Compiler */ - -#elif defined ( __ICCARM__ ) - #define __ASM __asm /*!< asm keyword for IAR Compiler */ - #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ - -#elif defined ( __GNUC__ ) - #define __ASM __asm /*!< asm keyword for GNU Compiler */ - #define __INLINE inline /*!< inline keyword for GNU Compiler */ - -#elif defined ( __TASKING__ ) - #define __ASM __asm /*!< asm keyword for TASKING Compiler */ - #define __INLINE inline /*!< inline keyword for TASKING Compiler */ - -#endif - - -/* ################### Compiler specific Intrinsics ########################### */ - -#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ -/* ARM armcc specific functions */ - -#define __enable_fault_irq __enable_fiq -#define __disable_fault_irq __disable_fiq - -#define __NOP __nop -#define __WFI __wfi -#define __WFE __wfe -#define __SEV __sev -#define __ISB() __isb(0) -#define __DSB() __dsb(0) -#define __DMB() __dmb(0) -#define __REV __rev -#define __RBIT __rbit -#define __LDREXB(ptr) ((unsigned char ) __ldrex(ptr)) -#define __LDREXH(ptr) ((unsigned short) __ldrex(ptr)) -#define __LDREXW(ptr) ((unsigned int ) __ldrex(ptr)) -#define __STREXB(value, ptr) __strex(value, ptr) -#define __STREXH(value, ptr) __strex(value, ptr) -#define __STREXW(value, ptr) __strex(value, ptr) - - -/* intrinsic unsigned long long __ldrexd(volatile void *ptr) */ -/* intrinsic int __strexd(unsigned long long val, volatile void *ptr) */ -/* intrinsic void __enable_irq(); */ -/* intrinsic void __disable_irq(); */ - - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -extern uint32_t __get_PSP(void); - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -extern void __set_PSP(uint32_t topOfProcStack); - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -extern uint32_t __get_MSP(void); - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -extern void __set_MSP(uint32_t topOfMainStack); - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -extern uint32_t __REV16(uint16_t value); - -/** - * @brief Reverse byte order in signed short value with sign extension to integer - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in signed short value with sign extension to integer - */ -extern int32_t __REVSH(int16_t value); - - -#if (__ARMCC_VERSION < 400000) - -/** - * @brief Remove the exclusive lock created by ldrex - * - * Removes the exclusive lock which is created by ldrex. - */ -extern void __CLREX(void); - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -extern uint32_t __get_BASEPRI(void); - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -extern void __set_BASEPRI(uint32_t basePri); - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -extern uint32_t __get_PRIMASK(void); - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -extern void __set_PRIMASK(uint32_t priMask); - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -extern uint32_t __get_FAULTMASK(void); - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -extern void __set_FAULTMASK(uint32_t faultMask); - -/** - * @brief Return the Control Register value - * - * @return Control value - * - * Return the content of the control register - */ -extern uint32_t __get_CONTROL(void); - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -extern void __set_CONTROL(uint32_t control); - -#else /* (__ARMCC_VERSION >= 400000) */ - -/** - * @brief Remove the exclusive lock created by ldrex - * - * Removes the exclusive lock which is created by ldrex. - */ -#define __CLREX __clrex - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -static __INLINE uint32_t __get_BASEPRI(void) -{ - register uint32_t __regBasePri __ASM("basepri"); - return(__regBasePri); -} - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -static __INLINE void __set_BASEPRI(uint32_t basePri) -{ - register uint32_t __regBasePri __ASM("basepri"); - __regBasePri = (basePri & 0xff); -} - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -static __INLINE uint32_t __get_PRIMASK(void) -{ - register uint32_t __regPriMask __ASM("primask"); - return(__regPriMask); -} - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -static __INLINE void __set_PRIMASK(uint32_t priMask) -{ - register uint32_t __regPriMask __ASM("primask"); - __regPriMask = (priMask); -} - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -static __INLINE uint32_t __get_FAULTMASK(void) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - return(__regFaultMask); -} - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -static __INLINE void __set_FAULTMASK(uint32_t faultMask) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - __regFaultMask = (faultMask & 1); -} - -/** - * @brief Return the Control Register value - * - * @return Control value - * - * Return the content of the control register - */ -static __INLINE uint32_t __get_CONTROL(void) -{ - register uint32_t __regControl __ASM("control"); - return(__regControl); -} - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -static __INLINE void __set_CONTROL(uint32_t control) -{ - register uint32_t __regControl __ASM("control"); - __regControl = control; -} - -#endif /* __ARMCC_VERSION */ - - - -#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/ -/* IAR iccarm specific functions */ - -#define __enable_irq __enable_interrupt /*!< global Interrupt enable */ -#define __disable_irq __disable_interrupt /*!< global Interrupt disable */ - -static __INLINE void __enable_fault_irq() { __ASM ("cpsie f"); } -static __INLINE void __disable_fault_irq() { __ASM ("cpsid f"); } - -#define __NOP __no_operation /*!< no operation intrinsic in IAR Compiler */ -static __INLINE void __WFI() { __ASM ("wfi"); } -static __INLINE void __WFE() { __ASM ("wfe"); } -static __INLINE void __SEV() { __ASM ("sev"); } -static __INLINE void __CLREX() { __ASM ("clrex"); } - -/* intrinsic void __ISB(void) */ -/* intrinsic void __DSB(void) */ -/* intrinsic void __DMB(void) */ -/* intrinsic void __set_PRIMASK(); */ -/* intrinsic void __get_PRIMASK(); */ -/* intrinsic void __set_FAULTMASK(); */ -/* intrinsic void __get_FAULTMASK(); */ -/* intrinsic uint32_t __REV(uint32_t value); */ -/* intrinsic uint32_t __REVSH(uint32_t value); */ -/* intrinsic unsigned long __STREX(unsigned long, unsigned long); */ -/* intrinsic unsigned long __LDREX(unsigned long *); */ - - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -extern uint32_t __get_PSP(void); - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -extern void __set_PSP(uint32_t topOfProcStack); - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -extern uint32_t __get_MSP(void); - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -extern void __set_MSP(uint32_t topOfMainStack); - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -extern uint32_t __REV16(uint16_t value); - -/** - * @brief Reverse bit order of value - * - * @param value value to reverse - * @return reversed value - * - * Reverse bit order of value - */ -extern uint32_t __RBIT(uint32_t value); - -/** - * @brief LDR Exclusive (8 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 8 bit values) - */ -extern uint8_t __LDREXB(uint8_t *addr); - -/** - * @brief LDR Exclusive (16 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 16 bit values - */ -extern uint16_t __LDREXH(uint16_t *addr); - -/** - * @brief LDR Exclusive (32 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 32 bit values - */ -extern uint32_t __LDREXW(uint32_t *addr); - -/** - * @brief STR Exclusive (8 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 8 bit values - */ -extern uint32_t __STREXB(uint8_t value, uint8_t *addr); - -/** - * @brief STR Exclusive (16 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 16 bit values - */ -extern uint32_t __STREXH(uint16_t value, uint16_t *addr); - -/** - * @brief STR Exclusive (32 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 32 bit values - */ -extern uint32_t __STREXW(uint32_t value, uint32_t *addr); - - - -#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ -/* GNU gcc specific functions */ - -static __INLINE void __enable_irq() { __ASM volatile ("cpsie i"); } -static __INLINE void __disable_irq() { __ASM volatile ("cpsid i"); } - -static __INLINE void __enable_fault_irq() { __ASM volatile ("cpsie f"); } -static __INLINE void __disable_fault_irq() { __ASM volatile ("cpsid f"); } - -static __INLINE void __NOP() { __ASM volatile ("nop"); } -static __INLINE void __WFI() { __ASM volatile ("wfi"); } -static __INLINE void __WFE() { __ASM volatile ("wfe"); } -static __INLINE void __SEV() { __ASM volatile ("sev"); } -static __INLINE void __ISB() { __ASM volatile ("isb"); } -static __INLINE void __DSB() { __ASM volatile ("dsb"); } -static __INLINE void __DMB() { __ASM volatile ("dmb"); } -static __INLINE void __CLREX() { __ASM volatile ("clrex"); } - - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -extern uint32_t __get_PSP(void); - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -extern void __set_PSP(uint32_t topOfProcStack); - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -extern uint32_t __get_MSP(void); - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -extern void __set_MSP(uint32_t topOfMainStack); - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -extern uint32_t __get_BASEPRI(void); - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -extern void __set_BASEPRI(uint32_t basePri); - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -extern uint32_t __get_PRIMASK(void); - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -extern void __set_PRIMASK(uint32_t priMask); - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -extern uint32_t __get_FAULTMASK(void); - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -extern void __set_FAULTMASK(uint32_t faultMask); - -/** - * @brief Return the Control Register value -* -* @return Control value - * - * Return the content of the control register - */ -extern uint32_t __get_CONTROL(void); - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -extern void __set_CONTROL(uint32_t control); - -/** - * @brief Reverse byte order in integer value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in integer value - */ -extern uint32_t __REV(uint32_t value); - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -extern uint32_t __REV16(uint16_t value); - -/** - * @brief Reverse byte order in signed short value with sign extension to integer - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in signed short value with sign extension to integer - */ -extern int32_t __REVSH(int16_t value); - -/** - * @brief Reverse bit order of value - * - * @param value value to reverse - * @return reversed value - * - * Reverse bit order of value - */ -extern uint32_t __RBIT(uint32_t value); - -/** - * @brief LDR Exclusive (8 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 8 bit value - */ -extern uint8_t __LDREXB(uint8_t *addr); - -/** - * @brief LDR Exclusive (16 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 16 bit values - */ -extern uint16_t __LDREXH(uint16_t *addr); - -/** - * @brief LDR Exclusive (32 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 32 bit values - */ -extern uint32_t __LDREXW(uint32_t *addr); - -/** - * @brief STR Exclusive (8 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 8 bit values - */ -extern uint32_t __STREXB(uint8_t value, uint8_t *addr); - -/** - * @brief STR Exclusive (16 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 16 bit values - */ -extern uint32_t __STREXH(uint16_t value, uint16_t *addr); - -/** - * @brief STR Exclusive (32 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 32 bit values - */ -extern uint32_t __STREXW(uint32_t value, uint32_t *addr); - - -#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/ -/* TASKING carm specific functions */ - -/* - * The CMSIS functions have been implemented as intrinsics in the compiler. - * Please use "carm -?i" to get an up to date list of all instrinsics, - * Including the CMSIS ones. - */ - -#endif - - -/** @addtogroup CMSIS_CM3_Core_FunctionInterface CMSIS CM3 Core Function Interface - Core Function Interface containing: - - Core NVIC Functions - - Core SysTick Functions - - Core Reset Functions -*/ -/*@{*/ - -/* ########################## NVIC functions #################################### */ - -/** - * @brief Set the Priority Grouping in NVIC Interrupt Controller - * - * @param PriorityGroup is priority grouping field - * - * Set the priority grouping field using the required unlock sequence. - * The parameter priority_grouping is assigned to the field - * SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used. - * In case of a conflict between priority grouping and available - * priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - */ -static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ - reg_value = (reg_value | - (0x5FA << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ - SCB->AIRCR = reg_value; -} - -/** - * @brief Get the Priority Grouping from NVIC Interrupt Controller - * - * @return priority grouping field - * - * Get the priority grouping from NVIC Interrupt Controller. - * priority grouping is SCB->AIRCR [10:8] PRIGROUP field. - */ -static __INLINE uint32_t NVIC_GetPriorityGrouping(void) -{ - return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ -} - -/** - * @brief Enable Interrupt in NVIC Interrupt Controller - * - * @param IRQn The positive number of the external interrupt to enable - * - * Enable a device specific interupt in the NVIC interrupt controller. - * The interrupt number cannot be a negative value. - */ -static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) -{ - NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ -} - -/** - * @brief Disable the interrupt line for external interrupt specified - * - * @param IRQn The positive number of the external interrupt to disable - * - * Disable a device specific interupt in the NVIC interrupt controller. - * The interrupt number cannot be a negative value. - */ -static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) -{ - NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ -} - -/** - * @brief Read the interrupt pending bit for a device specific interrupt source - * - * @param IRQn The number of the device specifc interrupt - * @return 1 = interrupt pending, 0 = interrupt not pending - * - * Read the pending register in NVIC and return 1 if its status is pending, - * otherwise it returns 0 - */ -static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */ -} - -/** - * @brief Set the pending bit for an external interrupt - * - * @param IRQn The number of the interrupt for set pending - * - * Set the pending bit for the specified interrupt. - * The interrupt number cannot be a negative value. - */ -static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ -} - -/** - * @brief Clear the pending bit for an external interrupt - * - * @param IRQn The number of the interrupt for clear pending - * - * Clear the pending bit for the specified interrupt. - * The interrupt number cannot be a negative value. - */ -static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ -} - -/** - * @brief Read the active bit for an external interrupt - * - * @param IRQn The number of the interrupt for read active bit - * @return 1 = interrupt active, 0 = interrupt not active - * - * Read the active register in NVIC and returns 1 if its status is active, - * otherwise it returns 0. - */ -static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) -{ - return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if active else 0 */ -} - -/** - * @brief Set the priority for an interrupt - * - * @param IRQn The number of the interrupt for set priority - * @param priority The priority to set - * - * Set the priority for the specified interrupt. The interrupt - * number can be positive to specify an external (device specific) - * interrupt, or negative to specify an internal (core) interrupt. - * - * Note: The priority cannot be set for every core interrupt. - */ -static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if(IRQn < 0) { - SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M3 System Interrupts */ - else { - NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for device specific Interrupts */ -} - -/** - * @brief Read the priority for an interrupt - * - * @param IRQn The number of the interrupt for get priority - * @return The priority for the interrupt - * - * Read the priority for the specified interrupt. The interrupt - * number can be positive to specify an external (device specific) - * interrupt, or negative to specify an internal (core) interrupt. - * - * The returned priority value is automatically aligned to the implemented - * priority bits of the microcontroller. - * - * Note: The priority cannot be set for every core interrupt. - */ -static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) -{ - - if(IRQn < 0) { - return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M3 system interrupts */ - else { - return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */ -} - - -/** - * @brief Encode the priority for an interrupt - * - * @param PriorityGroup The used priority group - * @param PreemptPriority The preemptive priority value (starting from 0) - * @param SubPriority The sub priority value (starting from 0) - * @return The encoded priority for the interrupt - * - * Encode the priority for an interrupt with the given priority group, - * preemptive priority value and sub priority value. - * In case of a conflict between priority grouping and available - * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set. - * - * The returned priority value can be used for NVIC_SetPriority(...) function - */ -static __INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; - SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; - - return ( - ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | - ((SubPriority & ((1 << (SubPriorityBits )) - 1))) - ); -} - - -/** - * @brief Decode the priority of an interrupt - * - * @param Priority The priority for the interrupt - * @param PriorityGroup The used priority group - * @param pPreemptPriority The preemptive priority value (starting from 0) - * @param pSubPriority The sub priority value (starting from 0) - * - * Decode an interrupt priority value with the given priority group to - * preemptive priority value and sub priority value. - * In case of a conflict between priority grouping and available - * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set. - * - * The priority value can be retrieved with NVIC_GetPriority(...) function - */ -static __INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; - SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; - - *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); - *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); -} - - - -/* ################################## SysTick function ############################################ */ - -#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0) - -/** - * @brief Initialize and start the SysTick counter and its interrupt. - * - * @param ticks number of ticks between two interrupts - * @return 1 = failed, 0 = successful - * - * Initialise the system tick timer and its interrupt and start the - * system tick timer / counter in free running mode to generate - * periodical interrupts. - */ -static __INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ - - SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */ - SysTick->VAL = 0; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0); /* Function successful */ -} - -#endif - - - - -/* ################################## Reset function ############################################ */ - -/** - * @brief Initiate a system reset request. - * - * Initiate a system reset request to reset the MCU - */ -static __INLINE void NVIC_SystemReset(void) -{ - SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - while(1); /* wait until reset */ -} - -/*@}*/ /* end of group CMSIS_CM3_Core_FunctionInterface */ - - - -/* ##################################### Debug In/Output function ########################################### */ - -/** @addtogroup CMSIS_CM3_CoreDebugInterface CMSIS CM3 Core Debug Interface - Core Debug Interface containing: - - Core Debug Receive / Transmit Functions - - Core Debug Defines - - Core Debug Variables -*/ -/*@{*/ - -extern volatile int ITM_RxBuffer; /*!< variable to receive characters */ -#define ITM_RXBUFFER_EMPTY 0x5AA55AA5 /*!< value identifying ITM_RxBuffer is ready for next character */ - - -/** - * @brief Outputs a character via the ITM channel 0 - * - * @param ch character to output - * @return character to output - * - * The function outputs a character via the ITM channel 0. - * The function returns when no debugger is connected that has booked the output. - * It is blocking when a debugger is connected, but the previous character send is not transmitted. - */ -static __INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk) && /* Trace enabled */ - (ITM->TCR & ITM_TCR_ITMENA_Msk) && /* ITM enabled */ - (ITM->TER & (1ul << 0) ) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0].u32 == 0); - ITM->PORT[0].u8 = (uint8_t) ch; - } - return (ch); -} - - -/** - * @brief Inputs a character via variable ITM_RxBuffer - * - * @return received character, -1 = no character received - * - * The function inputs a character via variable ITM_RxBuffer. - * The function returns when no debugger is connected that has booked the output. - * It is blocking when a debugger is connected, but the previous character send is not transmitted. - */ -static __INLINE int ITM_ReceiveChar (void) { - int ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - * @brief Check if a character via variable ITM_RxBuffer is available - * - * @return 1 = character available, 0 = no character available - * - * The function checks variable ITM_RxBuffer whether a character is available or not. - * The function returns '1' if a character is available and '0' if no character is available. - */ -static __INLINE int ITM_CheckChar (void) { - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) { - return (0); /* no character available */ - } else { - return (1); /* character available */ - } -} - -/*@}*/ /* end of group CMSIS_CM3_core_DebugInterface */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ /* end of group CMSIS_CM3_core_definitions */ - -#endif /* __CM3_CORE_H__ */ - -/*lint -restore */ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/Release_Notes.html b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/Release_Notes.html deleted file mode 100644 index b80f38df..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/Release_Notes.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - -Release Notes for STM32F10x CMSIS - - - - - -
-


-

-
- - - - - - -
- - - - - - - - - -
Back to Release page
-

Release -Notes for STM32F10x CMSIS

-

Copyright 2011 STMicroelectronics

-

-
-

 

- - - - - - -
-

Contents

-
    -
  1. STM32F10x CMSIS -update History
  2. -
  3. License
  4. -
- -

STM32F10x CMSIS -update History


-

V3.5.0 / 11-March-2011

-

Main -Changes

- -
    -
  • stm32f10x.h -and startup_stm32f10x_hd_vl.s files: remove the FSMC interrupt -definition for STM32F10x High-density Value line devices.
    -
  • -
  • system_stm32f10x.c file provided within the CMSIS folder.
    -
  • - -
- -

3.4.0 -- 10/15/2010

- -
    -
  1. General
  2. -
- -
    -
  • Add support -for STM32F10x High-density Value line devices.
  • -
-
    -
  1. STM32F10x CMSIS Device Peripheral Access Layer
  2. -
- - - -
    -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer Header File: stm32f10x.h
    -
    • Update to support High-density Value line devices
      • Add new define STM32F10X_HD_VL
      • -
      • RCC, AFIO, FSMC bits definition updated
      • -
      -
    • - - All -STM32 devices definitions are commented by default. User has to select the -appropriate device before starting else an error will be signaled on compile -time.
    • -
    • Add new IRQs definitons inside the IRQn_Type enumeration for STM23 High-density Value line devices.
    • -
    • "bool" type removed.
      -
    • -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer System Files: system_stm32f10x.h and system_stm32f10x.c
    -
  • -
      -
    • "system_stm32f10x.c" moved to to "STM32F10x_StdPeriph_Template" directory. This file is also moved to each example directory under "STM32F10x_StdPeriph_Examples".
      -
    • -
    • SystemInit_ExtMemCtl() function: update to support High-density Value line devices.
    • -
    • Add "VECT_TAB_SRAM" inside "system_stm32f10x.c" -to select if the user want to place the Vector Table in internal SRAM. -An additional define is also to specify the Vector Table offset "VECT_TAB_OFFSET".
      -
    • - -
    -
  • STM32F10x CMSIS startup files:startup_stm32f10x_xx.s
    • Add three -startup files for STM32 High-density Value line devices: - startup_stm32f10x_hd_vl.s
    -
-

3.3.0 -- 04/16/2010

- -
  1. General
-
  • Add support -for STM32F10x XL-density devices.
  • Add startup files for TrueSTUDIO toolchain
  1. STM32F10x CMSIS Device Peripheral Access Layer
- -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer Header File: stm32f10x.h
    -
    • Update to support XL-density devices
      • Add new define STM32F10X_XL
      • Add new IRQs for TIM9..14
      • Update FLASH_TypeDef structure
      • Add new IP instances TIM9..14
      • RCC, AFIO, DBGMCU bits definition updated
    • Correct IRQs definition for MD-, LD-, MD_VL- and LD_VL-density devices (remove comma "," at the end of enum list)
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer System Files: system_stm32f10x.h and system_stm32f10x.c
    -
    • SystemInit_ExtMemCtl() function: update to support XL-density devices
    • SystemInit() function: swap the order of SetSysClock() and SystemInit_ExtMemCtl() functions. 
      -
  • STM32F10x CMSIS startup files:
    • add three -startup files for STM32 XL-density devices: - startup_stm32f10x_xl.s
    • startup_stm32f10x_md_vl.s for RIDE7: add USART3 IRQ Handler (was missing in previous version)
    • Add startup files for TrueSTUDIO toolchain
-

3.2.0 -- 03/01/2010

-
    -
  1. General
  2. -
-
    - -
  • STM32F10x CMSIS files updated to CMSIS V1.30 release
  • -
  • Directory structure updated to be aligned with CMSIS V1.30
    -
  • -
  • Add support -for STM32 Low-density Value line (STM32F100x4/6) and -Medium-density Value line (STM32F100x8/B) devices
  • - -
-
    -
  1. CMSIS Core Peripheral Access Layer
- -
    -
  1. STM32F10x CMSIS Device Peripheral Access Layer
  2. - -
- -
    - -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer Header File: stm32f10x.h
    -
  • -
      -
    • Update -the stm32f10x.h file to support new Value line devices features: CEC -peripheral, new General purpose timers TIM15, TIM16 and TIM17.
    • -
    • Peripherals Bits definitions updated to be in line with Value line devices available features.
      -
    • -
    • HSE_Value, -HSI_Value and HSEStartup_TimeOut changed to upper case: HSE_VALUE, -HSI_VALUE and HSE_STARTUP_TIMEOUT. Old names are kept for legacy -purposes.
      -
    • -
    -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer System Files: system_stm32f10x.h and system_stm32f10x.c
    -
  • -
      -
    • SystemFrequency variable name changed to SystemCoreClock
      -
    • -
    • Default - SystemCoreClock is changed to 24MHz when Value line devices are selected and to 72MHz on other devices.
      -
    • -
    • All while(1) loop were removed from all clock setting functions. User has to handle the HSE startup failure.
      -
    • -
    • Additional function void SystemCoreClockUpdate (void) is provided.
      -
    • -
    -
  • STM32F10x CMSIS Startup files: startup_stm32f10x_xx.s
  • -
      -
    • Add new -startup files for STM32 Low-density Value line devices: - startup_stm32f10x_ld_vl.s
    • -
    • Add new startup -files for STM32 Medium-density Value line devices: - startup_stm32f10x_md_vl.s
    • -
    • SystemInit() function is called from startup file (startup_stm32f10x_xx.s) before to branch to application main.
      -To reconfigure the default setting of SystemInit() function, refer to system_stm32f10x.c file
      -
    • -
    • GNU startup file for Low density devices (startup_stm32f10x_ld.s) is updated to fix compilation errors.
      -
    • -
    - -
- -
    -
-

License

-

The -enclosed firmware and all the related documentation are not covered by -a License Agreement, if you need such License you can contact your -local STMicroelectronics office.

-

THE -PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS -WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO -SAVE TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR -ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY -CLAIMS ARISING FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY -CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH -THEIR PRODUCTS.

-

 

-
-
-

For -complete documentation on STM32(CORTEX M3) 32-Bit Microcontrollers -visit www.st.com/STM32

-
-

-
-
-

 

-
- \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h deleted file mode 100644 index af0c7c9a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h +++ /dev/null @@ -1,8336 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief CMSIS Cortex-M3 Device Peripheral Access Layer Header File. - * This file contains all the peripheral register's definitions, bits - * definitions and memory mapping for STM32F10x Connectivity line, - * High density, High density value line, Medium density, - * Medium density Value line, Low density, Low density Value line - * and XL-density devices. - * - * The file is the unique include file that the application programmer - * is using in the C source code, usually in main.c. This file contains: - * - Configuration section that allows to select: - * - The device used in the target application - * - To use or not the peripheral’s drivers in application code(i.e. - * code will be based on direct access to peripheral’s registers - * rather than drivers API), this option is controlled by - * "#define USE_STDPERIPH_DRIVER" - * - To change few application-specific parameters such as the HSE - * crystal frequency - * - Data structures and the address mapping for all peripherals - * - Peripheral's registers declarations and bits definition - * - Macros to access peripheral’s registers hardware - * - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/** @addtogroup CMSIS - * @{ - */ - -/** @addtogroup stm32f10x - * @{ - */ - -#ifndef __STM32F10x_H -#define __STM32F10x_H - -#ifdef __cplusplus - extern "C" { -#endif - -/** @addtogroup Library_configuration_section - * @{ - */ - -/* Uncomment the line below according to the target STM32 device used in your - application - */ - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) - /* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices */ - /* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */ - /* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */ - /* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */ - /* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices */ - /* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices */ - /* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices */ - /* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */ -#endif -/* Tip: To avoid modifying this file each time you need to switch between these - devices, you can define the device in your toolchain compiler preprocessor. - - - Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers - where the Flash memory density ranges between 16 and 32 Kbytes. - - Low-density value line devices are STM32F100xx microcontrollers where the Flash - memory density ranges between 16 and 32 Kbytes. - - Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers - where the Flash memory density ranges between 64 and 128 Kbytes. - - Medium-density value line devices are STM32F100xx microcontrollers where the - Flash memory density ranges between 64 and 128 Kbytes. - - High-density devices are STM32F101xx and STM32F103xx microcontrollers where - the Flash memory density ranges between 256 and 512 Kbytes. - - High-density value line devices are STM32F100xx microcontrollers where the - Flash memory density ranges between 256 and 512 Kbytes. - - XL-density devices are STM32F101xx and STM32F103xx microcontrollers where - the Flash memory density ranges between 512 and 1024 Kbytes. - - Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers. - */ - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) - #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)" -#endif - -#if !defined USE_STDPERIPH_DRIVER -/** - * @brief Comment the line below if you will not use the peripherals drivers. - In this case, these drivers will not be included and the application code will - be based on direct access to peripherals registers - */ - /*#define USE_STDPERIPH_DRIVER*/ -#endif - -/** - * @brief In the following line adjust the value of External High Speed oscillator (HSE) - used in your application - - Tip: To avoid modifying this file each time you need to use different HSE, you - can define the HSE value in your toolchain compiler preprocessor. - */ -#if !defined HSE_VALUE - #ifdef STM32F10X_CL - #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */ - #else - #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ - #endif /* STM32F10X_CL */ -#endif /* HSE_VALUE */ - - -/** - * @brief In the following line adjust the External High Speed oscillator (HSE) Startup - Timeout value - */ -#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*!< Time out for HSE start up */ - -#define HSI_VALUE ((uint32_t)8000000) /*!< Value of the Internal oscillator in Hz*/ - -/** - * @brief STM32F10x Standard Peripheral Library version number - */ -#define __STM32F10X_STDPERIPH_VERSION_MAIN (0x03) /*!< [31:24] main version */ -#define __STM32F10X_STDPERIPH_VERSION_SUB1 (0x05) /*!< [23:16] sub1 version */ -#define __STM32F10X_STDPERIPH_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */ -#define __STM32F10X_STDPERIPH_VERSION_RC (0x00) /*!< [7:0] release candidate */ -#define __STM32F10X_STDPERIPH_VERSION ( (__STM32F10X_STDPERIPH_VERSION_MAIN << 24)\ - |(__STM32F10X_STDPERIPH_VERSION_SUB1 << 16)\ - |(__STM32F10X_STDPERIPH_VERSION_SUB2 << 8)\ - |(__STM32F10X_STDPERIPH_VERSION_RC)) - -/** - * @} - */ - -/** @addtogroup Configuration_section_for_CMSIS - * @{ - */ - -/** - * @brief Configuration of the Cortex-M3 Processor and Core Peripherals - */ -#ifdef STM32F10X_XL - #define __MPU_PRESENT 1 /*!< STM32 XL-density devices provide an MPU */ -#else - #define __MPU_PRESENT 0 /*!< Other STM32 devices does not provide an MPU */ -#endif /* STM32F10X_XL */ -#define __NVIC_PRIO_BITS 4 /*!< STM32 uses 4 Bits for the Priority Levels */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * @brief STM32F10x Interrupt Number Definition, according to the selected device - * in @ref Library_configuration_section - */ -typedef enum IRQn -{ -/****** Cortex-M3 Processor Exceptions Numbers ***************************************************/ - NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ - MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */ - BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */ - UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */ - SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */ - SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */ - -/****** STM32 specific Interrupt Numbers *********************************************************/ - WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ - PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */ - TAMPER_IRQn = 2, /*!< Tamper Interrupt */ - RTC_IRQn = 3, /*!< RTC global Interrupt */ - FLASH_IRQn = 4, /*!< FLASH global Interrupt */ - RCC_IRQn = 5, /*!< RCC global Interrupt */ - EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */ - EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */ - EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */ - EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */ - EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt */ - DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */ - DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 global Interrupt */ - DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 global Interrupt */ - DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 global Interrupt */ - DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 global Interrupt */ - DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 global Interrupt */ - DMA1_Channel7_IRQn = 17, /*!< DMA1 Channel 7 global Interrupt */ - -#ifdef STM32F10X_LD - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ - TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ - TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - USBWakeUp_IRQn = 42 /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */ -#endif /* STM32F10X_LD */ - -#ifdef STM32F10X_LD_VL - ADC1_IRQn = 18, /*!< ADC1 global Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_TIM15_IRQn = 24, /*!< TIM1 Break and TIM15 Interrupts */ - TIM1_UP_TIM16_IRQn = 25, /*!< TIM1 Update and TIM16 Interrupts */ - TIM1_TRG_COM_TIM17_IRQn = 26, /*!< TIM1 Trigger and Commutation and TIM17 Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - CEC_IRQn = 42, /*!< HDMI-CEC Interrupt */ - TIM6_DAC_IRQn = 54, /*!< TIM6 and DAC underrun Interrupt */ - TIM7_IRQn = 55 /*!< TIM7 Interrupt */ -#endif /* STM32F10X_LD_VL */ - -#ifdef STM32F10X_MD - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ - TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ - TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - USBWakeUp_IRQn = 42 /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */ -#endif /* STM32F10X_MD */ - -#ifdef STM32F10X_MD_VL - ADC1_IRQn = 18, /*!< ADC1 global Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_TIM15_IRQn = 24, /*!< TIM1 Break and TIM15 Interrupts */ - TIM1_UP_TIM16_IRQn = 25, /*!< TIM1 Update and TIM16 Interrupts */ - TIM1_TRG_COM_TIM17_IRQn = 26, /*!< TIM1 Trigger and Commutation and TIM17 Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - CEC_IRQn = 42, /*!< HDMI-CEC Interrupt */ - TIM6_DAC_IRQn = 54, /*!< TIM6 and DAC underrun Interrupt */ - TIM7_IRQn = 55 /*!< TIM7 Interrupt */ -#endif /* STM32F10X_MD_VL */ - -#ifdef STM32F10X_HD - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ - TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ - TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - USBWakeUp_IRQn = 42, /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */ - TIM8_BRK_IRQn = 43, /*!< TIM8 Break Interrupt */ - TIM8_UP_IRQn = 44, /*!< TIM8 Update Interrupt */ - TIM8_TRG_COM_IRQn = 45, /*!< TIM8 Trigger and Commutation Interrupt */ - TIM8_CC_IRQn = 46, /*!< TIM8 Capture Compare Interrupt */ - ADC3_IRQn = 47, /*!< ADC3 global Interrupt */ - FSMC_IRQn = 48, /*!< FSMC global Interrupt */ - SDIO_IRQn = 49, /*!< SDIO global Interrupt */ - TIM5_IRQn = 50, /*!< TIM5 global Interrupt */ - SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ - UART4_IRQn = 52, /*!< UART4 global Interrupt */ - UART5_IRQn = 53, /*!< UART5 global Interrupt */ - TIM6_IRQn = 54, /*!< TIM6 global Interrupt */ - TIM7_IRQn = 55, /*!< TIM7 global Interrupt */ - DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ - DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ - DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ - DMA2_Channel4_5_IRQn = 59 /*!< DMA2 Channel 4 and Channel 5 global Interrupt */ -#endif /* STM32F10X_HD */ - -#ifdef STM32F10X_HD_VL - ADC1_IRQn = 18, /*!< ADC1 global Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_TIM15_IRQn = 24, /*!< TIM1 Break and TIM15 Interrupts */ - TIM1_UP_TIM16_IRQn = 25, /*!< TIM1 Update and TIM16 Interrupts */ - TIM1_TRG_COM_TIM17_IRQn = 26, /*!< TIM1 Trigger and Commutation and TIM17 Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - CEC_IRQn = 42, /*!< HDMI-CEC Interrupt */ - TIM12_IRQn = 43, /*!< TIM12 global Interrupt */ - TIM13_IRQn = 44, /*!< TIM13 global Interrupt */ - TIM14_IRQn = 45, /*!< TIM14 global Interrupt */ - TIM5_IRQn = 50, /*!< TIM5 global Interrupt */ - SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ - UART4_IRQn = 52, /*!< UART4 global Interrupt */ - UART5_IRQn = 53, /*!< UART5 global Interrupt */ - TIM6_DAC_IRQn = 54, /*!< TIM6 and DAC underrun Interrupt */ - TIM7_IRQn = 55, /*!< TIM7 Interrupt */ - DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ - DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ - DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ - DMA2_Channel4_5_IRQn = 59, /*!< DMA2 Channel 4 and Channel 5 global Interrupt */ - DMA2_Channel5_IRQn = 60 /*!< DMA2 Channel 5 global Interrupt (DMA2 Channel 5 is - mapped at position 60 only if the MISC_REMAP bit in - the AFIO_MAPR2 register is set) */ -#endif /* STM32F10X_HD_VL */ - -#ifdef STM32F10X_XL - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_TIM9_IRQn = 24, /*!< TIM1 Break Interrupt and TIM9 global Interrupt */ - TIM1_UP_TIM10_IRQn = 25, /*!< TIM1 Update Interrupt and TIM10 global Interrupt */ - TIM1_TRG_COM_TIM11_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt and TIM11 global interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - USBWakeUp_IRQn = 42, /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */ - TIM8_BRK_TIM12_IRQn = 43, /*!< TIM8 Break Interrupt and TIM12 global Interrupt */ - TIM8_UP_TIM13_IRQn = 44, /*!< TIM8 Update Interrupt and TIM13 global Interrupt */ - TIM8_TRG_COM_TIM14_IRQn = 45, /*!< TIM8 Trigger and Commutation Interrupt and TIM14 global interrupt */ - TIM8_CC_IRQn = 46, /*!< TIM8 Capture Compare Interrupt */ - ADC3_IRQn = 47, /*!< ADC3 global Interrupt */ - FSMC_IRQn = 48, /*!< FSMC global Interrupt */ - SDIO_IRQn = 49, /*!< SDIO global Interrupt */ - TIM5_IRQn = 50, /*!< TIM5 global Interrupt */ - SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ - UART4_IRQn = 52, /*!< UART4 global Interrupt */ - UART5_IRQn = 53, /*!< UART5 global Interrupt */ - TIM6_IRQn = 54, /*!< TIM6 global Interrupt */ - TIM7_IRQn = 55, /*!< TIM7 global Interrupt */ - DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ - DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ - DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ - DMA2_Channel4_5_IRQn = 59 /*!< DMA2 Channel 4 and Channel 5 global Interrupt */ -#endif /* STM32F10X_XL */ - -#ifdef STM32F10X_CL - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ - TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ - TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - OTG_FS_WKUP_IRQn = 42, /*!< USB OTG FS WakeUp from suspend through EXTI Line Interrupt */ - TIM5_IRQn = 50, /*!< TIM5 global Interrupt */ - SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ - UART4_IRQn = 52, /*!< UART4 global Interrupt */ - UART5_IRQn = 53, /*!< UART5 global Interrupt */ - TIM6_IRQn = 54, /*!< TIM6 global Interrupt */ - TIM7_IRQn = 55, /*!< TIM7 global Interrupt */ - DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ - DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ - DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ - DMA2_Channel4_IRQn = 59, /*!< DMA2 Channel 4 global Interrupt */ - DMA2_Channel5_IRQn = 60, /*!< DMA2 Channel 5 global Interrupt */ - ETH_IRQn = 61, /*!< Ethernet global Interrupt */ - ETH_WKUP_IRQn = 62, /*!< Ethernet Wakeup through EXTI line Interrupt */ - CAN2_TX_IRQn = 63, /*!< CAN2 TX Interrupt */ - CAN2_RX0_IRQn = 64, /*!< CAN2 RX0 Interrupt */ - CAN2_RX1_IRQn = 65, /*!< CAN2 RX1 Interrupt */ - CAN2_SCE_IRQn = 66, /*!< CAN2 SCE Interrupt */ - OTG_FS_IRQn = 67 /*!< USB OTG FS global Interrupt */ -#endif /* STM32F10X_CL */ -} IRQn_Type; - -/** - * @} - */ - -#include "core_cm3.h" -#include "system_stm32f10x.h" -#include - -/** @addtogroup Exported_types - * @{ - */ - -/*!< STM32F10x Standard Peripheral Library old types (maintained for legacy purpose) */ -typedef int32_t s32; -typedef int16_t s16; -typedef int8_t s8; - -typedef const int32_t sc32; /*!< Read Only */ -typedef const int16_t sc16; /*!< Read Only */ -typedef const int8_t sc8; /*!< Read Only */ - -typedef __IO int32_t vs32; -typedef __IO int16_t vs16; -typedef __IO int8_t vs8; - -typedef __I int32_t vsc32; /*!< Read Only */ -typedef __I int16_t vsc16; /*!< Read Only */ -typedef __I int8_t vsc8; /*!< Read Only */ - -typedef uint32_t u32; -typedef uint16_t u16; -typedef uint8_t u8; - -typedef const uint32_t uc32; /*!< Read Only */ -typedef const uint16_t uc16; /*!< Read Only */ -typedef const uint8_t uc8; /*!< Read Only */ - -typedef __IO uint32_t vu32; -typedef __IO uint16_t vu16; -typedef __IO uint8_t vu8; - -typedef __I uint32_t vuc32; /*!< Read Only */ -typedef __I uint16_t vuc16; /*!< Read Only */ -typedef __I uint8_t vuc8; /*!< Read Only */ - -typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus; - -typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; -#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE)) - -typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; - -/*!< STM32F10x Standard Peripheral Library old definitions (maintained for legacy purpose) */ -#define HSEStartUp_TimeOut HSE_STARTUP_TIMEOUT -#define HSE_Value HSE_VALUE -#define HSI_Value HSI_VALUE -/** - * @} - */ - -/** @addtogroup Peripheral_registers_structures - * @{ - */ - -/** - * @brief Analog to Digital Converter - */ - -typedef struct -{ - __IO uint32_t SR; - __IO uint32_t CR1; - __IO uint32_t CR2; - __IO uint32_t SMPR1; - __IO uint32_t SMPR2; - __IO uint32_t JOFR1; - __IO uint32_t JOFR2; - __IO uint32_t JOFR3; - __IO uint32_t JOFR4; - __IO uint32_t HTR; - __IO uint32_t LTR; - __IO uint32_t SQR1; - __IO uint32_t SQR2; - __IO uint32_t SQR3; - __IO uint32_t JSQR; - __IO uint32_t JDR1; - __IO uint32_t JDR2; - __IO uint32_t JDR3; - __IO uint32_t JDR4; - __IO uint32_t DR; -} ADC_TypeDef; - -/** - * @brief Backup Registers - */ - -typedef struct -{ - uint32_t RESERVED0; - __IO uint16_t DR1; - uint16_t RESERVED1; - __IO uint16_t DR2; - uint16_t RESERVED2; - __IO uint16_t DR3; - uint16_t RESERVED3; - __IO uint16_t DR4; - uint16_t RESERVED4; - __IO uint16_t DR5; - uint16_t RESERVED5; - __IO uint16_t DR6; - uint16_t RESERVED6; - __IO uint16_t DR7; - uint16_t RESERVED7; - __IO uint16_t DR8; - uint16_t RESERVED8; - __IO uint16_t DR9; - uint16_t RESERVED9; - __IO uint16_t DR10; - uint16_t RESERVED10; - __IO uint16_t RTCCR; - uint16_t RESERVED11; - __IO uint16_t CR; - uint16_t RESERVED12; - __IO uint16_t CSR; - uint16_t RESERVED13[5]; - __IO uint16_t DR11; - uint16_t RESERVED14; - __IO uint16_t DR12; - uint16_t RESERVED15; - __IO uint16_t DR13; - uint16_t RESERVED16; - __IO uint16_t DR14; - uint16_t RESERVED17; - __IO uint16_t DR15; - uint16_t RESERVED18; - __IO uint16_t DR16; - uint16_t RESERVED19; - __IO uint16_t DR17; - uint16_t RESERVED20; - __IO uint16_t DR18; - uint16_t RESERVED21; - __IO uint16_t DR19; - uint16_t RESERVED22; - __IO uint16_t DR20; - uint16_t RESERVED23; - __IO uint16_t DR21; - uint16_t RESERVED24; - __IO uint16_t DR22; - uint16_t RESERVED25; - __IO uint16_t DR23; - uint16_t RESERVED26; - __IO uint16_t DR24; - uint16_t RESERVED27; - __IO uint16_t DR25; - uint16_t RESERVED28; - __IO uint16_t DR26; - uint16_t RESERVED29; - __IO uint16_t DR27; - uint16_t RESERVED30; - __IO uint16_t DR28; - uint16_t RESERVED31; - __IO uint16_t DR29; - uint16_t RESERVED32; - __IO uint16_t DR30; - uint16_t RESERVED33; - __IO uint16_t DR31; - uint16_t RESERVED34; - __IO uint16_t DR32; - uint16_t RESERVED35; - __IO uint16_t DR33; - uint16_t RESERVED36; - __IO uint16_t DR34; - uint16_t RESERVED37; - __IO uint16_t DR35; - uint16_t RESERVED38; - __IO uint16_t DR36; - uint16_t RESERVED39; - __IO uint16_t DR37; - uint16_t RESERVED40; - __IO uint16_t DR38; - uint16_t RESERVED41; - __IO uint16_t DR39; - uint16_t RESERVED42; - __IO uint16_t DR40; - uint16_t RESERVED43; - __IO uint16_t DR41; - uint16_t RESERVED44; - __IO uint16_t DR42; - uint16_t RESERVED45; -} BKP_TypeDef; - -/** - * @brief Controller Area Network TxMailBox - */ - -typedef struct -{ - __IO uint32_t TIR; - __IO uint32_t TDTR; - __IO uint32_t TDLR; - __IO uint32_t TDHR; -} CAN_TxMailBox_TypeDef; - -/** - * @brief Controller Area Network FIFOMailBox - */ - -typedef struct -{ - __IO uint32_t RIR; - __IO uint32_t RDTR; - __IO uint32_t RDLR; - __IO uint32_t RDHR; -} CAN_FIFOMailBox_TypeDef; - -/** - * @brief Controller Area Network FilterRegister - */ - -typedef struct -{ - __IO uint32_t FR1; - __IO uint32_t FR2; -} CAN_FilterRegister_TypeDef; - -/** - * @brief Controller Area Network - */ - -typedef struct -{ - __IO uint32_t MCR; - __IO uint32_t MSR; - __IO uint32_t TSR; - __IO uint32_t RF0R; - __IO uint32_t RF1R; - __IO uint32_t IER; - __IO uint32_t ESR; - __IO uint32_t BTR; - uint32_t RESERVED0[88]; - CAN_TxMailBox_TypeDef sTxMailBox[3]; - CAN_FIFOMailBox_TypeDef sFIFOMailBox[2]; - uint32_t RESERVED1[12]; - __IO uint32_t FMR; - __IO uint32_t FM1R; - uint32_t RESERVED2; - __IO uint32_t FS1R; - uint32_t RESERVED3; - __IO uint32_t FFA1R; - uint32_t RESERVED4; - __IO uint32_t FA1R; - uint32_t RESERVED5[8]; -#ifndef STM32F10X_CL - CAN_FilterRegister_TypeDef sFilterRegister[14]; -#else - CAN_FilterRegister_TypeDef sFilterRegister[28]; -#endif /* STM32F10X_CL */ -} CAN_TypeDef; - -/** - * @brief Consumer Electronics Control (CEC) - */ -typedef struct -{ - __IO uint32_t CFGR; - __IO uint32_t OAR; - __IO uint32_t PRES; - __IO uint32_t ESR; - __IO uint32_t CSR; - __IO uint32_t TXD; - __IO uint32_t RXD; -} CEC_TypeDef; - -/** - * @brief CRC calculation unit - */ - -typedef struct -{ - __IO uint32_t DR; - __IO uint8_t IDR; - uint8_t RESERVED0; - uint16_t RESERVED1; - __IO uint32_t CR; -} CRC_TypeDef; - -/** - * @brief Digital to Analog Converter - */ - -typedef struct -{ - __IO uint32_t CR; - __IO uint32_t SWTRIGR; - __IO uint32_t DHR12R1; - __IO uint32_t DHR12L1; - __IO uint32_t DHR8R1; - __IO uint32_t DHR12R2; - __IO uint32_t DHR12L2; - __IO uint32_t DHR8R2; - __IO uint32_t DHR12RD; - __IO uint32_t DHR12LD; - __IO uint32_t DHR8RD; - __IO uint32_t DOR1; - __IO uint32_t DOR2; -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - __IO uint32_t SR; -#endif -} DAC_TypeDef; - -/** - * @brief Debug MCU - */ - -typedef struct -{ - __IO uint32_t IDCODE; - __IO uint32_t CR; -}DBGMCU_TypeDef; - -/** - * @brief DMA Controller - */ - -typedef struct -{ - __IO uint32_t CCR; - __IO uint32_t CNDTR; - __IO uint32_t CPAR; - __IO uint32_t CMAR; -} DMA_Channel_TypeDef; - -typedef struct -{ - __IO uint32_t ISR; - __IO uint32_t IFCR; -} DMA_TypeDef; - -/** - * @brief Ethernet MAC - */ - -typedef struct -{ - __IO uint32_t MACCR; - __IO uint32_t MACFFR; - __IO uint32_t MACHTHR; - __IO uint32_t MACHTLR; - __IO uint32_t MACMIIAR; - __IO uint32_t MACMIIDR; - __IO uint32_t MACFCR; - __IO uint32_t MACVLANTR; /* 8 */ - uint32_t RESERVED0[2]; - __IO uint32_t MACRWUFFR; /* 11 */ - __IO uint32_t MACPMTCSR; - uint32_t RESERVED1[2]; - __IO uint32_t MACSR; /* 15 */ - __IO uint32_t MACIMR; - __IO uint32_t MACA0HR; - __IO uint32_t MACA0LR; - __IO uint32_t MACA1HR; - __IO uint32_t MACA1LR; - __IO uint32_t MACA2HR; - __IO uint32_t MACA2LR; - __IO uint32_t MACA3HR; - __IO uint32_t MACA3LR; /* 24 */ - uint32_t RESERVED2[40]; - __IO uint32_t MMCCR; /* 65 */ - __IO uint32_t MMCRIR; - __IO uint32_t MMCTIR; - __IO uint32_t MMCRIMR; - __IO uint32_t MMCTIMR; /* 69 */ - uint32_t RESERVED3[14]; - __IO uint32_t MMCTGFSCCR; /* 84 */ - __IO uint32_t MMCTGFMSCCR; - uint32_t RESERVED4[5]; - __IO uint32_t MMCTGFCR; - uint32_t RESERVED5[10]; - __IO uint32_t MMCRFCECR; - __IO uint32_t MMCRFAECR; - uint32_t RESERVED6[10]; - __IO uint32_t MMCRGUFCR; - uint32_t RESERVED7[334]; - __IO uint32_t PTPTSCR; - __IO uint32_t PTPSSIR; - __IO uint32_t PTPTSHR; - __IO uint32_t PTPTSLR; - __IO uint32_t PTPTSHUR; - __IO uint32_t PTPTSLUR; - __IO uint32_t PTPTSAR; - __IO uint32_t PTPTTHR; - __IO uint32_t PTPTTLR; - uint32_t RESERVED8[567]; - __IO uint32_t DMABMR; - __IO uint32_t DMATPDR; - __IO uint32_t DMARPDR; - __IO uint32_t DMARDLAR; - __IO uint32_t DMATDLAR; - __IO uint32_t DMASR; - __IO uint32_t DMAOMR; - __IO uint32_t DMAIER; - __IO uint32_t DMAMFBOCR; - uint32_t RESERVED9[9]; - __IO uint32_t DMACHTDR; - __IO uint32_t DMACHRDR; - __IO uint32_t DMACHTBAR; - __IO uint32_t DMACHRBAR; -} ETH_TypeDef; - -/** - * @brief External Interrupt/Event Controller - */ - -typedef struct -{ - __IO uint32_t IMR; - __IO uint32_t EMR; - __IO uint32_t RTSR; - __IO uint32_t FTSR; - __IO uint32_t SWIER; - __IO uint32_t PR; -} EXTI_TypeDef; - -/** - * @brief FLASH Registers - */ - -typedef struct -{ - __IO uint32_t ACR; - __IO uint32_t KEYR; - __IO uint32_t OPTKEYR; - __IO uint32_t SR; - __IO uint32_t CR; - __IO uint32_t AR; - __IO uint32_t RESERVED; - __IO uint32_t OBR; - __IO uint32_t WRPR; -#ifdef STM32F10X_XL - uint32_t RESERVED1[8]; - __IO uint32_t KEYR2; - uint32_t RESERVED2; - __IO uint32_t SR2; - __IO uint32_t CR2; - __IO uint32_t AR2; -#endif /* STM32F10X_XL */ -} FLASH_TypeDef; - -/** - * @brief Option Bytes Registers - */ - -typedef struct -{ - __IO uint16_t RDP; - __IO uint16_t USER; - __IO uint16_t Data0; - __IO uint16_t Data1; - __IO uint16_t WRP0; - __IO uint16_t WRP1; - __IO uint16_t WRP2; - __IO uint16_t WRP3; -} OB_TypeDef; - -/** - * @brief Flexible Static Memory Controller - */ - -typedef struct -{ - __IO uint32_t BTCR[8]; -} FSMC_Bank1_TypeDef; - -/** - * @brief Flexible Static Memory Controller Bank1E - */ - -typedef struct -{ - __IO uint32_t BWTR[7]; -} FSMC_Bank1E_TypeDef; - -/** - * @brief Flexible Static Memory Controller Bank2 - */ - -typedef struct -{ - __IO uint32_t PCR2; - __IO uint32_t SR2; - __IO uint32_t PMEM2; - __IO uint32_t PATT2; - uint32_t RESERVED0; - __IO uint32_t ECCR2; -} FSMC_Bank2_TypeDef; - -/** - * @brief Flexible Static Memory Controller Bank3 - */ - -typedef struct -{ - __IO uint32_t PCR3; - __IO uint32_t SR3; - __IO uint32_t PMEM3; - __IO uint32_t PATT3; - uint32_t RESERVED0; - __IO uint32_t ECCR3; -} FSMC_Bank3_TypeDef; - -/** - * @brief Flexible Static Memory Controller Bank4 - */ - -typedef struct -{ - __IO uint32_t PCR4; - __IO uint32_t SR4; - __IO uint32_t PMEM4; - __IO uint32_t PATT4; - __IO uint32_t PIO4; -} FSMC_Bank4_TypeDef; - -/** - * @brief General Purpose I/O - */ - -typedef struct -{ - __IO uint32_t CRL; - __IO uint32_t CRH; - __IO uint32_t IDR; - __IO uint32_t ODR; - __IO uint32_t BSRR; - __IO uint32_t BRR; - __IO uint32_t LCKR; -} GPIO_TypeDef; - -/** - * @brief Alternate Function I/O - */ - -typedef struct -{ - __IO uint32_t EVCR; - __IO uint32_t MAPR; - __IO uint32_t EXTICR[4]; - uint32_t RESERVED0; - __IO uint32_t MAPR2; -} AFIO_TypeDef; -/** - * @brief Inter Integrated Circuit Interface - */ - -typedef struct -{ - __IO uint16_t CR1; - uint16_t RESERVED0; - __IO uint16_t CR2; - uint16_t RESERVED1; - __IO uint16_t OAR1; - uint16_t RESERVED2; - __IO uint16_t OAR2; - uint16_t RESERVED3; - __IO uint16_t DR; - uint16_t RESERVED4; - __IO uint16_t SR1; - uint16_t RESERVED5; - __IO uint16_t SR2; - uint16_t RESERVED6; - __IO uint16_t CCR; - uint16_t RESERVED7; - __IO uint16_t TRISE; - uint16_t RESERVED8; -} I2C_TypeDef; - -/** - * @brief Independent WATCHDOG - */ - -typedef struct -{ - __IO uint32_t KR; - __IO uint32_t PR; - __IO uint32_t RLR; - __IO uint32_t SR; -} IWDG_TypeDef; - -/** - * @brief Power Control - */ - -typedef struct -{ - __IO uint32_t CR; - __IO uint32_t CSR; -} PWR_TypeDef; - -/** - * @brief Reset and Clock Control - */ - -typedef struct -{ - __IO uint32_t CR; - __IO uint32_t CFGR; - __IO uint32_t CIR; - __IO uint32_t APB2RSTR; - __IO uint32_t APB1RSTR; - __IO uint32_t AHBENR; - __IO uint32_t APB2ENR; - __IO uint32_t APB1ENR; - __IO uint32_t BDCR; - __IO uint32_t CSR; - -#ifdef STM32F10X_CL - __IO uint32_t AHBRSTR; - __IO uint32_t CFGR2; -#endif /* STM32F10X_CL */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - uint32_t RESERVED0; - __IO uint32_t CFGR2; -#endif /* STM32F10X_LD_VL || STM32F10X_MD_VL || STM32F10X_HD_VL */ -} RCC_TypeDef; - -/** - * @brief Real-Time Clock - */ - -typedef struct -{ - __IO uint16_t CRH; - uint16_t RESERVED0; - __IO uint16_t CRL; - uint16_t RESERVED1; - __IO uint16_t PRLH; - uint16_t RESERVED2; - __IO uint16_t PRLL; - uint16_t RESERVED3; - __IO uint16_t DIVH; - uint16_t RESERVED4; - __IO uint16_t DIVL; - uint16_t RESERVED5; - __IO uint16_t CNTH; - uint16_t RESERVED6; - __IO uint16_t CNTL; - uint16_t RESERVED7; - __IO uint16_t ALRH; - uint16_t RESERVED8; - __IO uint16_t ALRL; - uint16_t RESERVED9; -} RTC_TypeDef; - -/** - * @brief SD host Interface - */ - -typedef struct -{ - __IO uint32_t POWER; - __IO uint32_t CLKCR; - __IO uint32_t ARG; - __IO uint32_t CMD; - __I uint32_t RESPCMD; - __I uint32_t RESP1; - __I uint32_t RESP2; - __I uint32_t RESP3; - __I uint32_t RESP4; - __IO uint32_t DTIMER; - __IO uint32_t DLEN; - __IO uint32_t DCTRL; - __I uint32_t DCOUNT; - __I uint32_t STA; - __IO uint32_t ICR; - __IO uint32_t MASK; - uint32_t RESERVED0[2]; - __I uint32_t FIFOCNT; - uint32_t RESERVED1[13]; - __IO uint32_t FIFO; -} SDIO_TypeDef; - -/** - * @brief Serial Peripheral Interface - */ - -typedef struct -{ - __IO uint16_t CR1; - uint16_t RESERVED0; - __IO uint16_t CR2; - uint16_t RESERVED1; - __IO uint16_t SR; - uint16_t RESERVED2; - __IO uint16_t DR; - uint16_t RESERVED3; - __IO uint16_t CRCPR; - uint16_t RESERVED4; - __IO uint16_t RXCRCR; - uint16_t RESERVED5; - __IO uint16_t TXCRCR; - uint16_t RESERVED6; - __IO uint16_t I2SCFGR; - uint16_t RESERVED7; - __IO uint16_t I2SPR; - uint16_t RESERVED8; -} SPI_TypeDef; - -/** - * @brief TIM - */ - -typedef struct -{ - __IO uint16_t CR1; - uint16_t RESERVED0; - __IO uint16_t CR2; - uint16_t RESERVED1; - __IO uint16_t SMCR; - uint16_t RESERVED2; - __IO uint16_t DIER; - uint16_t RESERVED3; - __IO uint16_t SR; - uint16_t RESERVED4; - __IO uint16_t EGR; - uint16_t RESERVED5; - __IO uint16_t CCMR1; - uint16_t RESERVED6; - __IO uint16_t CCMR2; - uint16_t RESERVED7; - __IO uint16_t CCER; - uint16_t RESERVED8; - __IO uint16_t CNT; - uint16_t RESERVED9; - __IO uint16_t PSC; - uint16_t RESERVED10; - __IO uint16_t ARR; - uint16_t RESERVED11; - __IO uint16_t RCR; - uint16_t RESERVED12; - __IO uint16_t CCR1; - uint16_t RESERVED13; - __IO uint16_t CCR2; - uint16_t RESERVED14; - __IO uint16_t CCR3; - uint16_t RESERVED15; - __IO uint16_t CCR4; - uint16_t RESERVED16; - __IO uint16_t BDTR; - uint16_t RESERVED17; - __IO uint16_t DCR; - uint16_t RESERVED18; - __IO uint16_t DMAR; - uint16_t RESERVED19; -} TIM_TypeDef; - -/** - * @brief Universal Synchronous Asynchronous Receiver Transmitter - */ - -typedef struct -{ - __IO uint16_t SR; - uint16_t RESERVED0; - __IO uint16_t DR; - uint16_t RESERVED1; - __IO uint16_t BRR; - uint16_t RESERVED2; - __IO uint16_t CR1; - uint16_t RESERVED3; - __IO uint16_t CR2; - uint16_t RESERVED4; - __IO uint16_t CR3; - uint16_t RESERVED5; - __IO uint16_t GTPR; - uint16_t RESERVED6; -} USART_TypeDef; - -/** - * @brief Window WATCHDOG - */ - -typedef struct -{ - __IO uint32_t CR; - __IO uint32_t CFR; - __IO uint32_t SR; -} WWDG_TypeDef; - -/** - * @} - */ - -/** @addtogroup Peripheral_memory_map - * @{ - */ - - -#define FLASH_BASE ((uint32_t)0x08000000) /*!< FLASH base address in the alias region */ -#define SRAM_BASE ((uint32_t)0x20000000) /*!< SRAM base address in the alias region */ -#define PERIPH_BASE ((uint32_t)0x40000000) /*!< Peripheral base address in the alias region */ - -#define SRAM_BB_BASE ((uint32_t)0x22000000) /*!< SRAM base address in the bit-band region */ -#define PERIPH_BB_BASE ((uint32_t)0x42000000) /*!< Peripheral base address in the bit-band region */ - -#define FSMC_R_BASE ((uint32_t)0xA0000000) /*!< FSMC registers base address */ - -/*!< Peripheral memory map */ -#define APB1PERIPH_BASE PERIPH_BASE -#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) -#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000) - -#define TIM2_BASE (APB1PERIPH_BASE + 0x0000) -#define TIM3_BASE (APB1PERIPH_BASE + 0x0400) -#define TIM4_BASE (APB1PERIPH_BASE + 0x0800) -#define TIM5_BASE (APB1PERIPH_BASE + 0x0C00) -#define TIM6_BASE (APB1PERIPH_BASE + 0x1000) -#define TIM7_BASE (APB1PERIPH_BASE + 0x1400) -#define TIM12_BASE (APB1PERIPH_BASE + 0x1800) -#define TIM13_BASE (APB1PERIPH_BASE + 0x1C00) -#define TIM14_BASE (APB1PERIPH_BASE + 0x2000) -#define RTC_BASE (APB1PERIPH_BASE + 0x2800) -#define WWDG_BASE (APB1PERIPH_BASE + 0x2C00) -#define IWDG_BASE (APB1PERIPH_BASE + 0x3000) -#define SPI2_BASE (APB1PERIPH_BASE + 0x3800) -#define SPI3_BASE (APB1PERIPH_BASE + 0x3C00) -#define USART2_BASE (APB1PERIPH_BASE + 0x4400) -#define USART3_BASE (APB1PERIPH_BASE + 0x4800) -#define UART4_BASE (APB1PERIPH_BASE + 0x4C00) -#define UART5_BASE (APB1PERIPH_BASE + 0x5000) -#define I2C1_BASE (APB1PERIPH_BASE + 0x5400) -#define I2C2_BASE (APB1PERIPH_BASE + 0x5800) -#define CAN1_BASE (APB1PERIPH_BASE + 0x6400) -#define CAN2_BASE (APB1PERIPH_BASE + 0x6800) -#define BKP_BASE (APB1PERIPH_BASE + 0x6C00) -#define PWR_BASE (APB1PERIPH_BASE + 0x7000) -#define DAC_BASE (APB1PERIPH_BASE + 0x7400) -#define CEC_BASE (APB1PERIPH_BASE + 0x7800) - -#define AFIO_BASE (APB2PERIPH_BASE + 0x0000) -#define EXTI_BASE (APB2PERIPH_BASE + 0x0400) -#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800) -#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00) -#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000) -#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400) -#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800) -#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00) -#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000) -#define ADC1_BASE (APB2PERIPH_BASE + 0x2400) -#define ADC2_BASE (APB2PERIPH_BASE + 0x2800) -#define TIM1_BASE (APB2PERIPH_BASE + 0x2C00) -#define SPI1_BASE (APB2PERIPH_BASE + 0x3000) -#define TIM8_BASE (APB2PERIPH_BASE + 0x3400) -#define USART1_BASE (APB2PERIPH_BASE + 0x3800) -#define ADC3_BASE (APB2PERIPH_BASE + 0x3C00) -#define TIM15_BASE (APB2PERIPH_BASE + 0x4000) -#define TIM16_BASE (APB2PERIPH_BASE + 0x4400) -#define TIM17_BASE (APB2PERIPH_BASE + 0x4800) -#define TIM9_BASE (APB2PERIPH_BASE + 0x4C00) -#define TIM10_BASE (APB2PERIPH_BASE + 0x5000) -#define TIM11_BASE (APB2PERIPH_BASE + 0x5400) - -#define SDIO_BASE (PERIPH_BASE + 0x18000) - -#define DMA1_BASE (AHBPERIPH_BASE + 0x0000) -#define DMA1_Channel1_BASE (AHBPERIPH_BASE + 0x0008) -#define DMA1_Channel2_BASE (AHBPERIPH_BASE + 0x001C) -#define DMA1_Channel3_BASE (AHBPERIPH_BASE + 0x0030) -#define DMA1_Channel4_BASE (AHBPERIPH_BASE + 0x0044) -#define DMA1_Channel5_BASE (AHBPERIPH_BASE + 0x0058) -#define DMA1_Channel6_BASE (AHBPERIPH_BASE + 0x006C) -#define DMA1_Channel7_BASE (AHBPERIPH_BASE + 0x0080) -#define DMA2_BASE (AHBPERIPH_BASE + 0x0400) -#define DMA2_Channel1_BASE (AHBPERIPH_BASE + 0x0408) -#define DMA2_Channel2_BASE (AHBPERIPH_BASE + 0x041C) -#define DMA2_Channel3_BASE (AHBPERIPH_BASE + 0x0430) -#define DMA2_Channel4_BASE (AHBPERIPH_BASE + 0x0444) -#define DMA2_Channel5_BASE (AHBPERIPH_BASE + 0x0458) -#define RCC_BASE (AHBPERIPH_BASE + 0x1000) -#define CRC_BASE (AHBPERIPH_BASE + 0x3000) - -#define FLASH_R_BASE (AHBPERIPH_BASE + 0x2000) /*!< Flash registers base address */ -#define OB_BASE ((uint32_t)0x1FFFF800) /*!< Flash Option Bytes base address */ - -#define ETH_BASE (AHBPERIPH_BASE + 0x8000) -#define ETH_MAC_BASE (ETH_BASE) -#define ETH_MMC_BASE (ETH_BASE + 0x0100) -#define ETH_PTP_BASE (ETH_BASE + 0x0700) -#define ETH_DMA_BASE (ETH_BASE + 0x1000) - -#define FSMC_Bank1_R_BASE (FSMC_R_BASE + 0x0000) /*!< FSMC Bank1 registers base address */ -#define FSMC_Bank1E_R_BASE (FSMC_R_BASE + 0x0104) /*!< FSMC Bank1E registers base address */ -#define FSMC_Bank2_R_BASE (FSMC_R_BASE + 0x0060) /*!< FSMC Bank2 registers base address */ -#define FSMC_Bank3_R_BASE (FSMC_R_BASE + 0x0080) /*!< FSMC Bank3 registers base address */ -#define FSMC_Bank4_R_BASE (FSMC_R_BASE + 0x00A0) /*!< FSMC Bank4 registers base address */ - -#define DBGMCU_BASE ((uint32_t)0xE0042000) /*!< Debug MCU registers base address */ - -/** - * @} - */ - -/** @addtogroup Peripheral_declaration - * @{ - */ - -#define TIM2 ((TIM_TypeDef *) TIM2_BASE) -#define TIM3 ((TIM_TypeDef *) TIM3_BASE) -#define TIM4 ((TIM_TypeDef *) TIM4_BASE) -#define TIM5 ((TIM_TypeDef *) TIM5_BASE) -#define TIM6 ((TIM_TypeDef *) TIM6_BASE) -#define TIM7 ((TIM_TypeDef *) TIM7_BASE) -#define TIM12 ((TIM_TypeDef *) TIM12_BASE) -#define TIM13 ((TIM_TypeDef *) TIM13_BASE) -#define TIM14 ((TIM_TypeDef *) TIM14_BASE) -#define RTC ((RTC_TypeDef *) RTC_BASE) -#define WWDG ((WWDG_TypeDef *) WWDG_BASE) -#define IWDG ((IWDG_TypeDef *) IWDG_BASE) -#define SPI2 ((SPI_TypeDef *) SPI2_BASE) -#define SPI3 ((SPI_TypeDef *) SPI3_BASE) -#define USART2 ((USART_TypeDef *) USART2_BASE) -#define USART3 ((USART_TypeDef *) USART3_BASE) -#define UART4 ((USART_TypeDef *) UART4_BASE) -#define UART5 ((USART_TypeDef *) UART5_BASE) -#define I2C1 ((I2C_TypeDef *) I2C1_BASE) -#define I2C2 ((I2C_TypeDef *) I2C2_BASE) -#define CAN1 ((CAN_TypeDef *) CAN1_BASE) -#define CAN2 ((CAN_TypeDef *) CAN2_BASE) -#define BKP ((BKP_TypeDef *) BKP_BASE) -#define PWR ((PWR_TypeDef *) PWR_BASE) -#define DAC ((DAC_TypeDef *) DAC_BASE) -#define CEC ((CEC_TypeDef *) CEC_BASE) -#define AFIO ((AFIO_TypeDef *) AFIO_BASE) -#define EXTI ((EXTI_TypeDef *) EXTI_BASE) -#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) -#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) -#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE) -#define GPIOD ((GPIO_TypeDef *) GPIOD_BASE) -#define GPIOE ((GPIO_TypeDef *) GPIOE_BASE) -#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE) -#define GPIOG ((GPIO_TypeDef *) GPIOG_BASE) -#define ADC1 ((ADC_TypeDef *) ADC1_BASE) -#define ADC2 ((ADC_TypeDef *) ADC2_BASE) -#define TIM1 ((TIM_TypeDef *) TIM1_BASE) -#define SPI1 ((SPI_TypeDef *) SPI1_BASE) -#define TIM8 ((TIM_TypeDef *) TIM8_BASE) -#define USART1 ((USART_TypeDef *) USART1_BASE) -#define ADC3 ((ADC_TypeDef *) ADC3_BASE) -#define TIM15 ((TIM_TypeDef *) TIM15_BASE) -#define TIM16 ((TIM_TypeDef *) TIM16_BASE) -#define TIM17 ((TIM_TypeDef *) TIM17_BASE) -#define TIM9 ((TIM_TypeDef *) TIM9_BASE) -#define TIM10 ((TIM_TypeDef *) TIM10_BASE) -#define TIM11 ((TIM_TypeDef *) TIM11_BASE) -#define SDIO ((SDIO_TypeDef *) SDIO_BASE) -#define DMA1 ((DMA_TypeDef *) DMA1_BASE) -#define DMA2 ((DMA_TypeDef *) DMA2_BASE) -#define DMA1_Channel1 ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE) -#define DMA1_Channel2 ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE) -#define DMA1_Channel3 ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE) -#define DMA1_Channel4 ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE) -#define DMA1_Channel5 ((DMA_Channel_TypeDef *) DMA1_Channel5_BASE) -#define DMA1_Channel6 ((DMA_Channel_TypeDef *) DMA1_Channel6_BASE) -#define DMA1_Channel7 ((DMA_Channel_TypeDef *) DMA1_Channel7_BASE) -#define DMA2_Channel1 ((DMA_Channel_TypeDef *) DMA2_Channel1_BASE) -#define DMA2_Channel2 ((DMA_Channel_TypeDef *) DMA2_Channel2_BASE) -#define DMA2_Channel3 ((DMA_Channel_TypeDef *) DMA2_Channel3_BASE) -#define DMA2_Channel4 ((DMA_Channel_TypeDef *) DMA2_Channel4_BASE) -#define DMA2_Channel5 ((DMA_Channel_TypeDef *) DMA2_Channel5_BASE) -#define RCC ((RCC_TypeDef *) RCC_BASE) -#define CRC ((CRC_TypeDef *) CRC_BASE) -#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE) -#define OB ((OB_TypeDef *) OB_BASE) -#define ETH ((ETH_TypeDef *) ETH_BASE) -#define FSMC_Bank1 ((FSMC_Bank1_TypeDef *) FSMC_Bank1_R_BASE) -#define FSMC_Bank1E ((FSMC_Bank1E_TypeDef *) FSMC_Bank1E_R_BASE) -#define FSMC_Bank2 ((FSMC_Bank2_TypeDef *) FSMC_Bank2_R_BASE) -#define FSMC_Bank3 ((FSMC_Bank3_TypeDef *) FSMC_Bank3_R_BASE) -#define FSMC_Bank4 ((FSMC_Bank4_TypeDef *) FSMC_Bank4_R_BASE) -#define DBGMCU ((DBGMCU_TypeDef *) DBGMCU_BASE) - -/** - * @} - */ - -/** @addtogroup Exported_constants - * @{ - */ - - /** @addtogroup Peripheral_Registers_Bits_Definition - * @{ - */ - -/******************************************************************************/ -/* Peripheral Registers_Bits_Definition */ -/******************************************************************************/ - -/******************************************************************************/ -/* */ -/* CRC calculation unit */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for CRC_DR register *********************/ -#define CRC_DR_DR ((uint32_t)0xFFFFFFFF) /*!< Data register bits */ - - -/******************* Bit definition for CRC_IDR register ********************/ -#define CRC_IDR_IDR ((uint8_t)0xFF) /*!< General-purpose 8-bit data register bits */ - - -/******************** Bit definition for CRC_CR register ********************/ -#define CRC_CR_RESET ((uint8_t)0x01) /*!< RESET bit */ - -/******************************************************************************/ -/* */ -/* Power Control */ -/* */ -/******************************************************************************/ - -/******************** Bit definition for PWR_CR register ********************/ -#define PWR_CR_LPDS ((uint16_t)0x0001) /*!< Low-Power Deepsleep */ -#define PWR_CR_PDDS ((uint16_t)0x0002) /*!< Power Down Deepsleep */ -#define PWR_CR_CWUF ((uint16_t)0x0004) /*!< Clear Wakeup Flag */ -#define PWR_CR_CSBF ((uint16_t)0x0008) /*!< Clear Standby Flag */ -#define PWR_CR_PVDE ((uint16_t)0x0010) /*!< Power Voltage Detector Enable */ - -#define PWR_CR_PLS ((uint16_t)0x00E0) /*!< PLS[2:0] bits (PVD Level Selection) */ -#define PWR_CR_PLS_0 ((uint16_t)0x0020) /*!< Bit 0 */ -#define PWR_CR_PLS_1 ((uint16_t)0x0040) /*!< Bit 1 */ -#define PWR_CR_PLS_2 ((uint16_t)0x0080) /*!< Bit 2 */ - -/*!< PVD level configuration */ -#define PWR_CR_PLS_2V2 ((uint16_t)0x0000) /*!< PVD level 2.2V */ -#define PWR_CR_PLS_2V3 ((uint16_t)0x0020) /*!< PVD level 2.3V */ -#define PWR_CR_PLS_2V4 ((uint16_t)0x0040) /*!< PVD level 2.4V */ -#define PWR_CR_PLS_2V5 ((uint16_t)0x0060) /*!< PVD level 2.5V */ -#define PWR_CR_PLS_2V6 ((uint16_t)0x0080) /*!< PVD level 2.6V */ -#define PWR_CR_PLS_2V7 ((uint16_t)0x00A0) /*!< PVD level 2.7V */ -#define PWR_CR_PLS_2V8 ((uint16_t)0x00C0) /*!< PVD level 2.8V */ -#define PWR_CR_PLS_2V9 ((uint16_t)0x00E0) /*!< PVD level 2.9V */ - -#define PWR_CR_DBP ((uint16_t)0x0100) /*!< Disable Backup Domain write protection */ - - -/******************* Bit definition for PWR_CSR register ********************/ -#define PWR_CSR_WUF ((uint16_t)0x0001) /*!< Wakeup Flag */ -#define PWR_CSR_SBF ((uint16_t)0x0002) /*!< Standby Flag */ -#define PWR_CSR_PVDO ((uint16_t)0x0004) /*!< PVD Output */ -#define PWR_CSR_EWUP ((uint16_t)0x0100) /*!< Enable WKUP pin */ - -/******************************************************************************/ -/* */ -/* Backup registers */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for BKP_DR1 register ********************/ -#define BKP_DR1_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR2 register ********************/ -#define BKP_DR2_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR3 register ********************/ -#define BKP_DR3_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR4 register ********************/ -#define BKP_DR4_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR5 register ********************/ -#define BKP_DR5_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR6 register ********************/ -#define BKP_DR6_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR7 register ********************/ -#define BKP_DR7_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR8 register ********************/ -#define BKP_DR8_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR9 register ********************/ -#define BKP_DR9_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR10 register *******************/ -#define BKP_DR10_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR11 register *******************/ -#define BKP_DR11_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR12 register *******************/ -#define BKP_DR12_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR13 register *******************/ -#define BKP_DR13_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR14 register *******************/ -#define BKP_DR14_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR15 register *******************/ -#define BKP_DR15_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR16 register *******************/ -#define BKP_DR16_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR17 register *******************/ -#define BKP_DR17_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/****************** Bit definition for BKP_DR18 register ********************/ -#define BKP_DR18_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR19 register *******************/ -#define BKP_DR19_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR20 register *******************/ -#define BKP_DR20_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR21 register *******************/ -#define BKP_DR21_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR22 register *******************/ -#define BKP_DR22_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR23 register *******************/ -#define BKP_DR23_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR24 register *******************/ -#define BKP_DR24_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR25 register *******************/ -#define BKP_DR25_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR26 register *******************/ -#define BKP_DR26_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR27 register *******************/ -#define BKP_DR27_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR28 register *******************/ -#define BKP_DR28_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR29 register *******************/ -#define BKP_DR29_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR30 register *******************/ -#define BKP_DR30_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR31 register *******************/ -#define BKP_DR31_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR32 register *******************/ -#define BKP_DR32_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR33 register *******************/ -#define BKP_DR33_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR34 register *******************/ -#define BKP_DR34_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR35 register *******************/ -#define BKP_DR35_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR36 register *******************/ -#define BKP_DR36_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR37 register *******************/ -#define BKP_DR37_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR38 register *******************/ -#define BKP_DR38_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR39 register *******************/ -#define BKP_DR39_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR40 register *******************/ -#define BKP_DR40_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR41 register *******************/ -#define BKP_DR41_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR42 register *******************/ -#define BKP_DR42_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/****************** Bit definition for BKP_RTCCR register *******************/ -#define BKP_RTCCR_CAL ((uint16_t)0x007F) /*!< Calibration value */ -#define BKP_RTCCR_CCO ((uint16_t)0x0080) /*!< Calibration Clock Output */ -#define BKP_RTCCR_ASOE ((uint16_t)0x0100) /*!< Alarm or Second Output Enable */ -#define BKP_RTCCR_ASOS ((uint16_t)0x0200) /*!< Alarm or Second Output Selection */ - -/******************** Bit definition for BKP_CR register ********************/ -#define BKP_CR_TPE ((uint8_t)0x01) /*!< TAMPER pin enable */ -#define BKP_CR_TPAL ((uint8_t)0x02) /*!< TAMPER pin active level */ - -/******************* Bit definition for BKP_CSR register ********************/ -#define BKP_CSR_CTE ((uint16_t)0x0001) /*!< Clear Tamper event */ -#define BKP_CSR_CTI ((uint16_t)0x0002) /*!< Clear Tamper Interrupt */ -#define BKP_CSR_TPIE ((uint16_t)0x0004) /*!< TAMPER Pin interrupt enable */ -#define BKP_CSR_TEF ((uint16_t)0x0100) /*!< Tamper Event Flag */ -#define BKP_CSR_TIF ((uint16_t)0x0200) /*!< Tamper Interrupt Flag */ - -/******************************************************************************/ -/* */ -/* Reset and Clock Control */ -/* */ -/******************************************************************************/ - -/******************** Bit definition for RCC_CR register ********************/ -#define RCC_CR_HSION ((uint32_t)0x00000001) /*!< Internal High Speed clock enable */ -#define RCC_CR_HSIRDY ((uint32_t)0x00000002) /*!< Internal High Speed clock ready flag */ -#define RCC_CR_HSITRIM ((uint32_t)0x000000F8) /*!< Internal High Speed clock trimming */ -#define RCC_CR_HSICAL ((uint32_t)0x0000FF00) /*!< Internal High Speed clock Calibration */ -#define RCC_CR_HSEON ((uint32_t)0x00010000) /*!< External High Speed clock enable */ -#define RCC_CR_HSERDY ((uint32_t)0x00020000) /*!< External High Speed clock ready flag */ -#define RCC_CR_HSEBYP ((uint32_t)0x00040000) /*!< External High Speed clock Bypass */ -#define RCC_CR_CSSON ((uint32_t)0x00080000) /*!< Clock Security System enable */ -#define RCC_CR_PLLON ((uint32_t)0x01000000) /*!< PLL enable */ -#define RCC_CR_PLLRDY ((uint32_t)0x02000000) /*!< PLL clock ready flag */ - -#ifdef STM32F10X_CL - #define RCC_CR_PLL2ON ((uint32_t)0x04000000) /*!< PLL2 enable */ - #define RCC_CR_PLL2RDY ((uint32_t)0x08000000) /*!< PLL2 clock ready flag */ - #define RCC_CR_PLL3ON ((uint32_t)0x10000000) /*!< PLL3 enable */ - #define RCC_CR_PLL3RDY ((uint32_t)0x20000000) /*!< PLL3 clock ready flag */ -#endif /* STM32F10X_CL */ - -/******************* Bit definition for RCC_CFGR register *******************/ -/*!< SW configuration */ -#define RCC_CFGR_SW ((uint32_t)0x00000003) /*!< SW[1:0] bits (System clock Switch) */ -#define RCC_CFGR_SW_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define RCC_CFGR_SW_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - -#define RCC_CFGR_SW_HSI ((uint32_t)0x00000000) /*!< HSI selected as system clock */ -#define RCC_CFGR_SW_HSE ((uint32_t)0x00000001) /*!< HSE selected as system clock */ -#define RCC_CFGR_SW_PLL ((uint32_t)0x00000002) /*!< PLL selected as system clock */ - -/*!< SWS configuration */ -#define RCC_CFGR_SWS ((uint32_t)0x0000000C) /*!< SWS[1:0] bits (System Clock Switch Status) */ -#define RCC_CFGR_SWS_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define RCC_CFGR_SWS_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define RCC_CFGR_SWS_HSI ((uint32_t)0x00000000) /*!< HSI oscillator used as system clock */ -#define RCC_CFGR_SWS_HSE ((uint32_t)0x00000004) /*!< HSE oscillator used as system clock */ -#define RCC_CFGR_SWS_PLL ((uint32_t)0x00000008) /*!< PLL used as system clock */ - -/*!< HPRE configuration */ -#define RCC_CFGR_HPRE ((uint32_t)0x000000F0) /*!< HPRE[3:0] bits (AHB prescaler) */ -#define RCC_CFGR_HPRE_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define RCC_CFGR_HPRE_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define RCC_CFGR_HPRE_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define RCC_CFGR_HPRE_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define RCC_CFGR_HPRE_DIV1 ((uint32_t)0x00000000) /*!< SYSCLK not divided */ -#define RCC_CFGR_HPRE_DIV2 ((uint32_t)0x00000080) /*!< SYSCLK divided by 2 */ -#define RCC_CFGR_HPRE_DIV4 ((uint32_t)0x00000090) /*!< SYSCLK divided by 4 */ -#define RCC_CFGR_HPRE_DIV8 ((uint32_t)0x000000A0) /*!< SYSCLK divided by 8 */ -#define RCC_CFGR_HPRE_DIV16 ((uint32_t)0x000000B0) /*!< SYSCLK divided by 16 */ -#define RCC_CFGR_HPRE_DIV64 ((uint32_t)0x000000C0) /*!< SYSCLK divided by 64 */ -#define RCC_CFGR_HPRE_DIV128 ((uint32_t)0x000000D0) /*!< SYSCLK divided by 128 */ -#define RCC_CFGR_HPRE_DIV256 ((uint32_t)0x000000E0) /*!< SYSCLK divided by 256 */ -#define RCC_CFGR_HPRE_DIV512 ((uint32_t)0x000000F0) /*!< SYSCLK divided by 512 */ - -/*!< PPRE1 configuration */ -#define RCC_CFGR_PPRE1 ((uint32_t)0x00000700) /*!< PRE1[2:0] bits (APB1 prescaler) */ -#define RCC_CFGR_PPRE1_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define RCC_CFGR_PPRE1_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define RCC_CFGR_PPRE1_2 ((uint32_t)0x00000400) /*!< Bit 2 */ - -#define RCC_CFGR_PPRE1_DIV1 ((uint32_t)0x00000000) /*!< HCLK not divided */ -#define RCC_CFGR_PPRE1_DIV2 ((uint32_t)0x00000400) /*!< HCLK divided by 2 */ -#define RCC_CFGR_PPRE1_DIV4 ((uint32_t)0x00000500) /*!< HCLK divided by 4 */ -#define RCC_CFGR_PPRE1_DIV8 ((uint32_t)0x00000600) /*!< HCLK divided by 8 */ -#define RCC_CFGR_PPRE1_DIV16 ((uint32_t)0x00000700) /*!< HCLK divided by 16 */ - -/*!< PPRE2 configuration */ -#define RCC_CFGR_PPRE2 ((uint32_t)0x00003800) /*!< PRE2[2:0] bits (APB2 prescaler) */ -#define RCC_CFGR_PPRE2_0 ((uint32_t)0x00000800) /*!< Bit 0 */ -#define RCC_CFGR_PPRE2_1 ((uint32_t)0x00001000) /*!< Bit 1 */ -#define RCC_CFGR_PPRE2_2 ((uint32_t)0x00002000) /*!< Bit 2 */ - -#define RCC_CFGR_PPRE2_DIV1 ((uint32_t)0x00000000) /*!< HCLK not divided */ -#define RCC_CFGR_PPRE2_DIV2 ((uint32_t)0x00002000) /*!< HCLK divided by 2 */ -#define RCC_CFGR_PPRE2_DIV4 ((uint32_t)0x00002800) /*!< HCLK divided by 4 */ -#define RCC_CFGR_PPRE2_DIV8 ((uint32_t)0x00003000) /*!< HCLK divided by 8 */ -#define RCC_CFGR_PPRE2_DIV16 ((uint32_t)0x00003800) /*!< HCLK divided by 16 */ - -/*!< ADCPPRE configuration */ -#define RCC_CFGR_ADCPRE ((uint32_t)0x0000C000) /*!< ADCPRE[1:0] bits (ADC prescaler) */ -#define RCC_CFGR_ADCPRE_0 ((uint32_t)0x00004000) /*!< Bit 0 */ -#define RCC_CFGR_ADCPRE_1 ((uint32_t)0x00008000) /*!< Bit 1 */ - -#define RCC_CFGR_ADCPRE_DIV2 ((uint32_t)0x00000000) /*!< PCLK2 divided by 2 */ -#define RCC_CFGR_ADCPRE_DIV4 ((uint32_t)0x00004000) /*!< PCLK2 divided by 4 */ -#define RCC_CFGR_ADCPRE_DIV6 ((uint32_t)0x00008000) /*!< PCLK2 divided by 6 */ -#define RCC_CFGR_ADCPRE_DIV8 ((uint32_t)0x0000C000) /*!< PCLK2 divided by 8 */ - -#define RCC_CFGR_PLLSRC ((uint32_t)0x00010000) /*!< PLL entry clock source */ - -#define RCC_CFGR_PLLXTPRE ((uint32_t)0x00020000) /*!< HSE divider for PLL entry */ - -/*!< PLLMUL configuration */ -#define RCC_CFGR_PLLMULL ((uint32_t)0x003C0000) /*!< PLLMUL[3:0] bits (PLL multiplication factor) */ -#define RCC_CFGR_PLLMULL_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define RCC_CFGR_PLLMULL_1 ((uint32_t)0x00080000) /*!< Bit 1 */ -#define RCC_CFGR_PLLMULL_2 ((uint32_t)0x00100000) /*!< Bit 2 */ -#define RCC_CFGR_PLLMULL_3 ((uint32_t)0x00200000) /*!< Bit 3 */ - -#ifdef STM32F10X_CL - #define RCC_CFGR_PLLSRC_HSI_Div2 ((uint32_t)0x00000000) /*!< HSI clock divided by 2 selected as PLL entry clock source */ - #define RCC_CFGR_PLLSRC_PREDIV1 ((uint32_t)0x00010000) /*!< PREDIV1 clock selected as PLL entry clock source */ - - #define RCC_CFGR_PLLXTPRE_PREDIV1 ((uint32_t)0x00000000) /*!< PREDIV1 clock not divided for PLL entry */ - #define RCC_CFGR_PLLXTPRE_PREDIV1_Div2 ((uint32_t)0x00020000) /*!< PREDIV1 clock divided by 2 for PLL entry */ - - #define RCC_CFGR_PLLMULL4 ((uint32_t)0x00080000) /*!< PLL input clock * 4 */ - #define RCC_CFGR_PLLMULL5 ((uint32_t)0x000C0000) /*!< PLL input clock * 5 */ - #define RCC_CFGR_PLLMULL6 ((uint32_t)0x00100000) /*!< PLL input clock * 6 */ - #define RCC_CFGR_PLLMULL7 ((uint32_t)0x00140000) /*!< PLL input clock * 7 */ - #define RCC_CFGR_PLLMULL8 ((uint32_t)0x00180000) /*!< PLL input clock * 8 */ - #define RCC_CFGR_PLLMULL9 ((uint32_t)0x001C0000) /*!< PLL input clock * 9 */ - #define RCC_CFGR_PLLMULL6_5 ((uint32_t)0x00340000) /*!< PLL input clock * 6.5 */ - - #define RCC_CFGR_OTGFSPRE ((uint32_t)0x00400000) /*!< USB OTG FS prescaler */ - -/*!< MCO configuration */ - #define RCC_CFGR_MCO ((uint32_t)0x0F000000) /*!< MCO[3:0] bits (Microcontroller Clock Output) */ - #define RCC_CFGR_MCO_0 ((uint32_t)0x01000000) /*!< Bit 0 */ - #define RCC_CFGR_MCO_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - #define RCC_CFGR_MCO_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - #define RCC_CFGR_MCO_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - - #define RCC_CFGR_MCO_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ - #define RCC_CFGR_MCO_SYSCLK ((uint32_t)0x04000000) /*!< System clock selected as MCO source */ - #define RCC_CFGR_MCO_HSI ((uint32_t)0x05000000) /*!< HSI clock selected as MCO source */ - #define RCC_CFGR_MCO_HSE ((uint32_t)0x06000000) /*!< HSE clock selected as MCO source */ - #define RCC_CFGR_MCO_PLLCLK_Div2 ((uint32_t)0x07000000) /*!< PLL clock divided by 2 selected as MCO source */ - #define RCC_CFGR_MCO_PLL2CLK ((uint32_t)0x08000000) /*!< PLL2 clock selected as MCO source*/ - #define RCC_CFGR_MCO_PLL3CLK_Div2 ((uint32_t)0x09000000) /*!< PLL3 clock divided by 2 selected as MCO source*/ - #define RCC_CFGR_MCO_Ext_HSE ((uint32_t)0x0A000000) /*!< XT1 external 3-25 MHz oscillator clock selected as MCO source */ - #define RCC_CFGR_MCO_PLL3CLK ((uint32_t)0x0B000000) /*!< PLL3 clock selected as MCO source */ -#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - #define RCC_CFGR_PLLSRC_HSI_Div2 ((uint32_t)0x00000000) /*!< HSI clock divided by 2 selected as PLL entry clock source */ - #define RCC_CFGR_PLLSRC_PREDIV1 ((uint32_t)0x00010000) /*!< PREDIV1 clock selected as PLL entry clock source */ - - #define RCC_CFGR_PLLXTPRE_PREDIV1 ((uint32_t)0x00000000) /*!< PREDIV1 clock not divided for PLL entry */ - #define RCC_CFGR_PLLXTPRE_PREDIV1_Div2 ((uint32_t)0x00020000) /*!< PREDIV1 clock divided by 2 for PLL entry */ - - #define RCC_CFGR_PLLMULL2 ((uint32_t)0x00000000) /*!< PLL input clock*2 */ - #define RCC_CFGR_PLLMULL3 ((uint32_t)0x00040000) /*!< PLL input clock*3 */ - #define RCC_CFGR_PLLMULL4 ((uint32_t)0x00080000) /*!< PLL input clock*4 */ - #define RCC_CFGR_PLLMULL5 ((uint32_t)0x000C0000) /*!< PLL input clock*5 */ - #define RCC_CFGR_PLLMULL6 ((uint32_t)0x00100000) /*!< PLL input clock*6 */ - #define RCC_CFGR_PLLMULL7 ((uint32_t)0x00140000) /*!< PLL input clock*7 */ - #define RCC_CFGR_PLLMULL8 ((uint32_t)0x00180000) /*!< PLL input clock*8 */ - #define RCC_CFGR_PLLMULL9 ((uint32_t)0x001C0000) /*!< PLL input clock*9 */ - #define RCC_CFGR_PLLMULL10 ((uint32_t)0x00200000) /*!< PLL input clock10 */ - #define RCC_CFGR_PLLMULL11 ((uint32_t)0x00240000) /*!< PLL input clock*11 */ - #define RCC_CFGR_PLLMULL12 ((uint32_t)0x00280000) /*!< PLL input clock*12 */ - #define RCC_CFGR_PLLMULL13 ((uint32_t)0x002C0000) /*!< PLL input clock*13 */ - #define RCC_CFGR_PLLMULL14 ((uint32_t)0x00300000) /*!< PLL input clock*14 */ - #define RCC_CFGR_PLLMULL15 ((uint32_t)0x00340000) /*!< PLL input clock*15 */ - #define RCC_CFGR_PLLMULL16 ((uint32_t)0x00380000) /*!< PLL input clock*16 */ - -/*!< MCO configuration */ - #define RCC_CFGR_MCO ((uint32_t)0x07000000) /*!< MCO[2:0] bits (Microcontroller Clock Output) */ - #define RCC_CFGR_MCO_0 ((uint32_t)0x01000000) /*!< Bit 0 */ - #define RCC_CFGR_MCO_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - #define RCC_CFGR_MCO_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - - #define RCC_CFGR_MCO_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ - #define RCC_CFGR_MCO_SYSCLK ((uint32_t)0x04000000) /*!< System clock selected as MCO source */ - #define RCC_CFGR_MCO_HSI ((uint32_t)0x05000000) /*!< HSI clock selected as MCO source */ - #define RCC_CFGR_MCO_HSE ((uint32_t)0x06000000) /*!< HSE clock selected as MCO source */ - #define RCC_CFGR_MCO_PLL ((uint32_t)0x07000000) /*!< PLL clock divided by 2 selected as MCO source */ -#else - #define RCC_CFGR_PLLSRC_HSI_Div2 ((uint32_t)0x00000000) /*!< HSI clock divided by 2 selected as PLL entry clock source */ - #define RCC_CFGR_PLLSRC_HSE ((uint32_t)0x00010000) /*!< HSE clock selected as PLL entry clock source */ - - #define RCC_CFGR_PLLXTPRE_HSE ((uint32_t)0x00000000) /*!< HSE clock not divided for PLL entry */ - #define RCC_CFGR_PLLXTPRE_HSE_Div2 ((uint32_t)0x00020000) /*!< HSE clock divided by 2 for PLL entry */ - - #define RCC_CFGR_PLLMULL2 ((uint32_t)0x00000000) /*!< PLL input clock*2 */ - #define RCC_CFGR_PLLMULL3 ((uint32_t)0x00040000) /*!< PLL input clock*3 */ - #define RCC_CFGR_PLLMULL4 ((uint32_t)0x00080000) /*!< PLL input clock*4 */ - #define RCC_CFGR_PLLMULL5 ((uint32_t)0x000C0000) /*!< PLL input clock*5 */ - #define RCC_CFGR_PLLMULL6 ((uint32_t)0x00100000) /*!< PLL input clock*6 */ - #define RCC_CFGR_PLLMULL7 ((uint32_t)0x00140000) /*!< PLL input clock*7 */ - #define RCC_CFGR_PLLMULL8 ((uint32_t)0x00180000) /*!< PLL input clock*8 */ - #define RCC_CFGR_PLLMULL9 ((uint32_t)0x001C0000) /*!< PLL input clock*9 */ - #define RCC_CFGR_PLLMULL10 ((uint32_t)0x00200000) /*!< PLL input clock10 */ - #define RCC_CFGR_PLLMULL11 ((uint32_t)0x00240000) /*!< PLL input clock*11 */ - #define RCC_CFGR_PLLMULL12 ((uint32_t)0x00280000) /*!< PLL input clock*12 */ - #define RCC_CFGR_PLLMULL13 ((uint32_t)0x002C0000) /*!< PLL input clock*13 */ - #define RCC_CFGR_PLLMULL14 ((uint32_t)0x00300000) /*!< PLL input clock*14 */ - #define RCC_CFGR_PLLMULL15 ((uint32_t)0x00340000) /*!< PLL input clock*15 */ - #define RCC_CFGR_PLLMULL16 ((uint32_t)0x00380000) /*!< PLL input clock*16 */ - #define RCC_CFGR_USBPRE ((uint32_t)0x00400000) /*!< USB Device prescaler */ - -/*!< MCO configuration */ - #define RCC_CFGR_MCO ((uint32_t)0x07000000) /*!< MCO[2:0] bits (Microcontroller Clock Output) */ - #define RCC_CFGR_MCO_0 ((uint32_t)0x01000000) /*!< Bit 0 */ - #define RCC_CFGR_MCO_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - #define RCC_CFGR_MCO_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - - #define RCC_CFGR_MCO_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ - #define RCC_CFGR_MCO_SYSCLK ((uint32_t)0x04000000) /*!< System clock selected as MCO source */ - #define RCC_CFGR_MCO_HSI ((uint32_t)0x05000000) /*!< HSI clock selected as MCO source */ - #define RCC_CFGR_MCO_HSE ((uint32_t)0x06000000) /*!< HSE clock selected as MCO source */ - #define RCC_CFGR_MCO_PLL ((uint32_t)0x07000000) /*!< PLL clock divided by 2 selected as MCO source */ -#endif /* STM32F10X_CL */ - -/*!<****************** Bit definition for RCC_CIR register ********************/ -#define RCC_CIR_LSIRDYF ((uint32_t)0x00000001) /*!< LSI Ready Interrupt flag */ -#define RCC_CIR_LSERDYF ((uint32_t)0x00000002) /*!< LSE Ready Interrupt flag */ -#define RCC_CIR_HSIRDYF ((uint32_t)0x00000004) /*!< HSI Ready Interrupt flag */ -#define RCC_CIR_HSERDYF ((uint32_t)0x00000008) /*!< HSE Ready Interrupt flag */ -#define RCC_CIR_PLLRDYF ((uint32_t)0x00000010) /*!< PLL Ready Interrupt flag */ -#define RCC_CIR_CSSF ((uint32_t)0x00000080) /*!< Clock Security System Interrupt flag */ -#define RCC_CIR_LSIRDYIE ((uint32_t)0x00000100) /*!< LSI Ready Interrupt Enable */ -#define RCC_CIR_LSERDYIE ((uint32_t)0x00000200) /*!< LSE Ready Interrupt Enable */ -#define RCC_CIR_HSIRDYIE ((uint32_t)0x00000400) /*!< HSI Ready Interrupt Enable */ -#define RCC_CIR_HSERDYIE ((uint32_t)0x00000800) /*!< HSE Ready Interrupt Enable */ -#define RCC_CIR_PLLRDYIE ((uint32_t)0x00001000) /*!< PLL Ready Interrupt Enable */ -#define RCC_CIR_LSIRDYC ((uint32_t)0x00010000) /*!< LSI Ready Interrupt Clear */ -#define RCC_CIR_LSERDYC ((uint32_t)0x00020000) /*!< LSE Ready Interrupt Clear */ -#define RCC_CIR_HSIRDYC ((uint32_t)0x00040000) /*!< HSI Ready Interrupt Clear */ -#define RCC_CIR_HSERDYC ((uint32_t)0x00080000) /*!< HSE Ready Interrupt Clear */ -#define RCC_CIR_PLLRDYC ((uint32_t)0x00100000) /*!< PLL Ready Interrupt Clear */ -#define RCC_CIR_CSSC ((uint32_t)0x00800000) /*!< Clock Security System Interrupt Clear */ - -#ifdef STM32F10X_CL - #define RCC_CIR_PLL2RDYF ((uint32_t)0x00000020) /*!< PLL2 Ready Interrupt flag */ - #define RCC_CIR_PLL3RDYF ((uint32_t)0x00000040) /*!< PLL3 Ready Interrupt flag */ - #define RCC_CIR_PLL2RDYIE ((uint32_t)0x00002000) /*!< PLL2 Ready Interrupt Enable */ - #define RCC_CIR_PLL3RDYIE ((uint32_t)0x00004000) /*!< PLL3 Ready Interrupt Enable */ - #define RCC_CIR_PLL2RDYC ((uint32_t)0x00200000) /*!< PLL2 Ready Interrupt Clear */ - #define RCC_CIR_PLL3RDYC ((uint32_t)0x00400000) /*!< PLL3 Ready Interrupt Clear */ -#endif /* STM32F10X_CL */ - -/***************** Bit definition for RCC_APB2RSTR register *****************/ -#define RCC_APB2RSTR_AFIORST ((uint32_t)0x00000001) /*!< Alternate Function I/O reset */ -#define RCC_APB2RSTR_IOPARST ((uint32_t)0x00000004) /*!< I/O port A reset */ -#define RCC_APB2RSTR_IOPBRST ((uint32_t)0x00000008) /*!< I/O port B reset */ -#define RCC_APB2RSTR_IOPCRST ((uint32_t)0x00000010) /*!< I/O port C reset */ -#define RCC_APB2RSTR_IOPDRST ((uint32_t)0x00000020) /*!< I/O port D reset */ -#define RCC_APB2RSTR_ADC1RST ((uint32_t)0x00000200) /*!< ADC 1 interface reset */ - -#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) -#define RCC_APB2RSTR_ADC2RST ((uint32_t)0x00000400) /*!< ADC 2 interface reset */ -#endif - -#define RCC_APB2RSTR_TIM1RST ((uint32_t)0x00000800) /*!< TIM1 Timer reset */ -#define RCC_APB2RSTR_SPI1RST ((uint32_t)0x00001000) /*!< SPI 1 reset */ -#define RCC_APB2RSTR_USART1RST ((uint32_t)0x00004000) /*!< USART1 reset */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -#define RCC_APB2RSTR_TIM15RST ((uint32_t)0x00010000) /*!< TIM15 Timer reset */ -#define RCC_APB2RSTR_TIM16RST ((uint32_t)0x00020000) /*!< TIM16 Timer reset */ -#define RCC_APB2RSTR_TIM17RST ((uint32_t)0x00040000) /*!< TIM17 Timer reset */ -#endif - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) - #define RCC_APB2RSTR_IOPERST ((uint32_t)0x00000040) /*!< I/O port E reset */ -#endif /* STM32F10X_LD && STM32F10X_LD_VL */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_XL) - #define RCC_APB2RSTR_IOPFRST ((uint32_t)0x00000080) /*!< I/O port F reset */ - #define RCC_APB2RSTR_IOPGRST ((uint32_t)0x00000100) /*!< I/O port G reset */ - #define RCC_APB2RSTR_TIM8RST ((uint32_t)0x00002000) /*!< TIM8 Timer reset */ - #define RCC_APB2RSTR_ADC3RST ((uint32_t)0x00008000) /*!< ADC3 interface reset */ -#endif - -#if defined (STM32F10X_HD_VL) - #define RCC_APB2RSTR_IOPFRST ((uint32_t)0x00000080) /*!< I/O port F reset */ - #define RCC_APB2RSTR_IOPGRST ((uint32_t)0x00000100) /*!< I/O port G reset */ -#endif - -#ifdef STM32F10X_XL - #define RCC_APB2RSTR_TIM9RST ((uint32_t)0x00080000) /*!< TIM9 Timer reset */ - #define RCC_APB2RSTR_TIM10RST ((uint32_t)0x00100000) /*!< TIM10 Timer reset */ - #define RCC_APB2RSTR_TIM11RST ((uint32_t)0x00200000) /*!< TIM11 Timer reset */ -#endif /* STM32F10X_XL */ - -/***************** Bit definition for RCC_APB1RSTR register *****************/ -#define RCC_APB1RSTR_TIM2RST ((uint32_t)0x00000001) /*!< Timer 2 reset */ -#define RCC_APB1RSTR_TIM3RST ((uint32_t)0x00000002) /*!< Timer 3 reset */ -#define RCC_APB1RSTR_WWDGRST ((uint32_t)0x00000800) /*!< Window Watchdog reset */ -#define RCC_APB1RSTR_USART2RST ((uint32_t)0x00020000) /*!< USART 2 reset */ -#define RCC_APB1RSTR_I2C1RST ((uint32_t)0x00200000) /*!< I2C 1 reset */ - -#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) -#define RCC_APB1RSTR_CAN1RST ((uint32_t)0x02000000) /*!< CAN1 reset */ -#endif - -#define RCC_APB1RSTR_BKPRST ((uint32_t)0x08000000) /*!< Backup interface reset */ -#define RCC_APB1RSTR_PWRRST ((uint32_t)0x10000000) /*!< Power interface reset */ - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) - #define RCC_APB1RSTR_TIM4RST ((uint32_t)0x00000004) /*!< Timer 4 reset */ - #define RCC_APB1RSTR_SPI2RST ((uint32_t)0x00004000) /*!< SPI 2 reset */ - #define RCC_APB1RSTR_USART3RST ((uint32_t)0x00040000) /*!< USART 3 reset */ - #define RCC_APB1RSTR_I2C2RST ((uint32_t)0x00400000) /*!< I2C 2 reset */ -#endif /* STM32F10X_LD && STM32F10X_LD_VL */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_MD) || defined (STM32F10X_LD) || defined (STM32F10X_XL) - #define RCC_APB1RSTR_USBRST ((uint32_t)0x00800000) /*!< USB Device reset */ -#endif - -#if defined (STM32F10X_HD) || defined (STM32F10X_CL) || defined (STM32F10X_XL) - #define RCC_APB1RSTR_TIM5RST ((uint32_t)0x00000008) /*!< Timer 5 reset */ - #define RCC_APB1RSTR_TIM6RST ((uint32_t)0x00000010) /*!< Timer 6 reset */ - #define RCC_APB1RSTR_TIM7RST ((uint32_t)0x00000020) /*!< Timer 7 reset */ - #define RCC_APB1RSTR_SPI3RST ((uint32_t)0x00008000) /*!< SPI 3 reset */ - #define RCC_APB1RSTR_UART4RST ((uint32_t)0x00080000) /*!< UART 4 reset */ - #define RCC_APB1RSTR_UART5RST ((uint32_t)0x00100000) /*!< UART 5 reset */ - #define RCC_APB1RSTR_DACRST ((uint32_t)0x20000000) /*!< DAC interface reset */ -#endif - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - #define RCC_APB1RSTR_TIM6RST ((uint32_t)0x00000010) /*!< Timer 6 reset */ - #define RCC_APB1RSTR_TIM7RST ((uint32_t)0x00000020) /*!< Timer 7 reset */ - #define RCC_APB1RSTR_DACRST ((uint32_t)0x20000000) /*!< DAC interface reset */ - #define RCC_APB1RSTR_CECRST ((uint32_t)0x40000000) /*!< CEC interface reset */ -#endif - -#if defined (STM32F10X_HD_VL) - #define RCC_APB1RSTR_TIM5RST ((uint32_t)0x00000008) /*!< Timer 5 reset */ - #define RCC_APB1RSTR_TIM12RST ((uint32_t)0x00000040) /*!< TIM12 Timer reset */ - #define RCC_APB1RSTR_TIM13RST ((uint32_t)0x00000080) /*!< TIM13 Timer reset */ - #define RCC_APB1RSTR_TIM14RST ((uint32_t)0x00000100) /*!< TIM14 Timer reset */ - #define RCC_APB1RSTR_SPI3RST ((uint32_t)0x00008000) /*!< SPI 3 reset */ - #define RCC_APB1RSTR_UART4RST ((uint32_t)0x00080000) /*!< UART 4 reset */ - #define RCC_APB1RSTR_UART5RST ((uint32_t)0x00100000) /*!< UART 5 reset */ -#endif - -#ifdef STM32F10X_CL - #define RCC_APB1RSTR_CAN2RST ((uint32_t)0x04000000) /*!< CAN2 reset */ -#endif /* STM32F10X_CL */ - -#ifdef STM32F10X_XL - #define RCC_APB1RSTR_TIM12RST ((uint32_t)0x00000040) /*!< TIM12 Timer reset */ - #define RCC_APB1RSTR_TIM13RST ((uint32_t)0x00000080) /*!< TIM13 Timer reset */ - #define RCC_APB1RSTR_TIM14RST ((uint32_t)0x00000100) /*!< TIM14 Timer reset */ -#endif /* STM32F10X_XL */ - -/****************** Bit definition for RCC_AHBENR register ******************/ -#define RCC_AHBENR_DMA1EN ((uint16_t)0x0001) /*!< DMA1 clock enable */ -#define RCC_AHBENR_SRAMEN ((uint16_t)0x0004) /*!< SRAM interface clock enable */ -#define RCC_AHBENR_FLITFEN ((uint16_t)0x0010) /*!< FLITF clock enable */ -#define RCC_AHBENR_CRCEN ((uint16_t)0x0040) /*!< CRC clock enable */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_CL) || defined (STM32F10X_HD_VL) - #define RCC_AHBENR_DMA2EN ((uint16_t)0x0002) /*!< DMA2 clock enable */ -#endif - -#if defined (STM32F10X_HD) || defined (STM32F10X_XL) - #define RCC_AHBENR_FSMCEN ((uint16_t)0x0100) /*!< FSMC clock enable */ - #define RCC_AHBENR_SDIOEN ((uint16_t)0x0400) /*!< SDIO clock enable */ -#endif - -#if defined (STM32F10X_HD_VL) - #define RCC_AHBENR_FSMCEN ((uint16_t)0x0100) /*!< FSMC clock enable */ -#endif - -#ifdef STM32F10X_CL - #define RCC_AHBENR_OTGFSEN ((uint32_t)0x00001000) /*!< USB OTG FS clock enable */ - #define RCC_AHBENR_ETHMACEN ((uint32_t)0x00004000) /*!< ETHERNET MAC clock enable */ - #define RCC_AHBENR_ETHMACTXEN ((uint32_t)0x00008000) /*!< ETHERNET MAC Tx clock enable */ - #define RCC_AHBENR_ETHMACRXEN ((uint32_t)0x00010000) /*!< ETHERNET MAC Rx clock enable */ -#endif /* STM32F10X_CL */ - -/****************** Bit definition for RCC_APB2ENR register *****************/ -#define RCC_APB2ENR_AFIOEN ((uint32_t)0x00000001) /*!< Alternate Function I/O clock enable */ -#define RCC_APB2ENR_IOPAEN ((uint32_t)0x00000004) /*!< I/O port A clock enable */ -#define RCC_APB2ENR_IOPBEN ((uint32_t)0x00000008) /*!< I/O port B clock enable */ -#define RCC_APB2ENR_IOPCEN ((uint32_t)0x00000010) /*!< I/O port C clock enable */ -#define RCC_APB2ENR_IOPDEN ((uint32_t)0x00000020) /*!< I/O port D clock enable */ -#define RCC_APB2ENR_ADC1EN ((uint32_t)0x00000200) /*!< ADC 1 interface clock enable */ - -#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) -#define RCC_APB2ENR_ADC2EN ((uint32_t)0x00000400) /*!< ADC 2 interface clock enable */ -#endif - -#define RCC_APB2ENR_TIM1EN ((uint32_t)0x00000800) /*!< TIM1 Timer clock enable */ -#define RCC_APB2ENR_SPI1EN ((uint32_t)0x00001000) /*!< SPI 1 clock enable */ -#define RCC_APB2ENR_USART1EN ((uint32_t)0x00004000) /*!< USART1 clock enable */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -#define RCC_APB2ENR_TIM15EN ((uint32_t)0x00010000) /*!< TIM15 Timer clock enable */ -#define RCC_APB2ENR_TIM16EN ((uint32_t)0x00020000) /*!< TIM16 Timer clock enable */ -#define RCC_APB2ENR_TIM17EN ((uint32_t)0x00040000) /*!< TIM17 Timer clock enable */ -#endif - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) - #define RCC_APB2ENR_IOPEEN ((uint32_t)0x00000040) /*!< I/O port E clock enable */ -#endif /* STM32F10X_LD && STM32F10X_LD_VL */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_XL) - #define RCC_APB2ENR_IOPFEN ((uint32_t)0x00000080) /*!< I/O port F clock enable */ - #define RCC_APB2ENR_IOPGEN ((uint32_t)0x00000100) /*!< I/O port G clock enable */ - #define RCC_APB2ENR_TIM8EN ((uint32_t)0x00002000) /*!< TIM8 Timer clock enable */ - #define RCC_APB2ENR_ADC3EN ((uint32_t)0x00008000) /*!< DMA1 clock enable */ -#endif - -#if defined (STM32F10X_HD_VL) - #define RCC_APB2ENR_IOPFEN ((uint32_t)0x00000080) /*!< I/O port F clock enable */ - #define RCC_APB2ENR_IOPGEN ((uint32_t)0x00000100) /*!< I/O port G clock enable */ -#endif - -#ifdef STM32F10X_XL - #define RCC_APB2ENR_TIM9EN ((uint32_t)0x00080000) /*!< TIM9 Timer clock enable */ - #define RCC_APB2ENR_TIM10EN ((uint32_t)0x00100000) /*!< TIM10 Timer clock enable */ - #define RCC_APB2ENR_TIM11EN ((uint32_t)0x00200000) /*!< TIM11 Timer clock enable */ -#endif - -/***************** Bit definition for RCC_APB1ENR register ******************/ -#define RCC_APB1ENR_TIM2EN ((uint32_t)0x00000001) /*!< Timer 2 clock enabled*/ -#define RCC_APB1ENR_TIM3EN ((uint32_t)0x00000002) /*!< Timer 3 clock enable */ -#define RCC_APB1ENR_WWDGEN ((uint32_t)0x00000800) /*!< Window Watchdog clock enable */ -#define RCC_APB1ENR_USART2EN ((uint32_t)0x00020000) /*!< USART 2 clock enable */ -#define RCC_APB1ENR_I2C1EN ((uint32_t)0x00200000) /*!< I2C 1 clock enable */ - -#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) -#define RCC_APB1ENR_CAN1EN ((uint32_t)0x02000000) /*!< CAN1 clock enable */ -#endif - -#define RCC_APB1ENR_BKPEN ((uint32_t)0x08000000) /*!< Backup interface clock enable */ -#define RCC_APB1ENR_PWREN ((uint32_t)0x10000000) /*!< Power interface clock enable */ - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) - #define RCC_APB1ENR_TIM4EN ((uint32_t)0x00000004) /*!< Timer 4 clock enable */ - #define RCC_APB1ENR_SPI2EN ((uint32_t)0x00004000) /*!< SPI 2 clock enable */ - #define RCC_APB1ENR_USART3EN ((uint32_t)0x00040000) /*!< USART 3 clock enable */ - #define RCC_APB1ENR_I2C2EN ((uint32_t)0x00400000) /*!< I2C 2 clock enable */ -#endif /* STM32F10X_LD && STM32F10X_LD_VL */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_MD) || defined (STM32F10X_LD) - #define RCC_APB1ENR_USBEN ((uint32_t)0x00800000) /*!< USB Device clock enable */ -#endif - -#if defined (STM32F10X_HD) || defined (STM32F10X_CL) - #define RCC_APB1ENR_TIM5EN ((uint32_t)0x00000008) /*!< Timer 5 clock enable */ - #define RCC_APB1ENR_TIM6EN ((uint32_t)0x00000010) /*!< Timer 6 clock enable */ - #define RCC_APB1ENR_TIM7EN ((uint32_t)0x00000020) /*!< Timer 7 clock enable */ - #define RCC_APB1ENR_SPI3EN ((uint32_t)0x00008000) /*!< SPI 3 clock enable */ - #define RCC_APB1ENR_UART4EN ((uint32_t)0x00080000) /*!< UART 4 clock enable */ - #define RCC_APB1ENR_UART5EN ((uint32_t)0x00100000) /*!< UART 5 clock enable */ - #define RCC_APB1ENR_DACEN ((uint32_t)0x20000000) /*!< DAC interface clock enable */ -#endif - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - #define RCC_APB1ENR_TIM6EN ((uint32_t)0x00000010) /*!< Timer 6 clock enable */ - #define RCC_APB1ENR_TIM7EN ((uint32_t)0x00000020) /*!< Timer 7 clock enable */ - #define RCC_APB1ENR_DACEN ((uint32_t)0x20000000) /*!< DAC interface clock enable */ - #define RCC_APB1ENR_CECEN ((uint32_t)0x40000000) /*!< CEC interface clock enable */ -#endif - -#ifdef STM32F10X_HD_VL - #define RCC_APB1ENR_TIM5EN ((uint32_t)0x00000008) /*!< Timer 5 clock enable */ - #define RCC_APB1ENR_TIM12EN ((uint32_t)0x00000040) /*!< TIM12 Timer clock enable */ - #define RCC_APB1ENR_TIM13EN ((uint32_t)0x00000080) /*!< TIM13 Timer clock enable */ - #define RCC_APB1ENR_TIM14EN ((uint32_t)0x00000100) /*!< TIM14 Timer clock enable */ - #define RCC_APB1ENR_SPI3EN ((uint32_t)0x00008000) /*!< SPI 3 clock enable */ - #define RCC_APB1ENR_UART4EN ((uint32_t)0x00080000) /*!< UART 4 clock enable */ - #define RCC_APB1ENR_UART5EN ((uint32_t)0x00100000) /*!< UART 5 clock enable */ -#endif /* STM32F10X_HD_VL */ - -#ifdef STM32F10X_CL - #define RCC_APB1ENR_CAN2EN ((uint32_t)0x04000000) /*!< CAN2 clock enable */ -#endif /* STM32F10X_CL */ - -#ifdef STM32F10X_XL - #define RCC_APB1ENR_TIM12EN ((uint32_t)0x00000040) /*!< TIM12 Timer clock enable */ - #define RCC_APB1ENR_TIM13EN ((uint32_t)0x00000080) /*!< TIM13 Timer clock enable */ - #define RCC_APB1ENR_TIM14EN ((uint32_t)0x00000100) /*!< TIM14 Timer clock enable */ -#endif /* STM32F10X_XL */ - -/******************* Bit definition for RCC_BDCR register *******************/ -#define RCC_BDCR_LSEON ((uint32_t)0x00000001) /*!< External Low Speed oscillator enable */ -#define RCC_BDCR_LSERDY ((uint32_t)0x00000002) /*!< External Low Speed oscillator Ready */ -#define RCC_BDCR_LSEBYP ((uint32_t)0x00000004) /*!< External Low Speed oscillator Bypass */ - -#define RCC_BDCR_RTCSEL ((uint32_t)0x00000300) /*!< RTCSEL[1:0] bits (RTC clock source selection) */ -#define RCC_BDCR_RTCSEL_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define RCC_BDCR_RTCSEL_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - -/*!< RTC congiguration */ -#define RCC_BDCR_RTCSEL_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ -#define RCC_BDCR_RTCSEL_LSE ((uint32_t)0x00000100) /*!< LSE oscillator clock used as RTC clock */ -#define RCC_BDCR_RTCSEL_LSI ((uint32_t)0x00000200) /*!< LSI oscillator clock used as RTC clock */ -#define RCC_BDCR_RTCSEL_HSE ((uint32_t)0x00000300) /*!< HSE oscillator clock divided by 128 used as RTC clock */ - -#define RCC_BDCR_RTCEN ((uint32_t)0x00008000) /*!< RTC clock enable */ -#define RCC_BDCR_BDRST ((uint32_t)0x00010000) /*!< Backup domain software reset */ - -/******************* Bit definition for RCC_CSR register ********************/ -#define RCC_CSR_LSION ((uint32_t)0x00000001) /*!< Internal Low Speed oscillator enable */ -#define RCC_CSR_LSIRDY ((uint32_t)0x00000002) /*!< Internal Low Speed oscillator Ready */ -#define RCC_CSR_RMVF ((uint32_t)0x01000000) /*!< Remove reset flag */ -#define RCC_CSR_PINRSTF ((uint32_t)0x04000000) /*!< PIN reset flag */ -#define RCC_CSR_PORRSTF ((uint32_t)0x08000000) /*!< POR/PDR reset flag */ -#define RCC_CSR_SFTRSTF ((uint32_t)0x10000000) /*!< Software Reset flag */ -#define RCC_CSR_IWDGRSTF ((uint32_t)0x20000000) /*!< Independent Watchdog reset flag */ -#define RCC_CSR_WWDGRSTF ((uint32_t)0x40000000) /*!< Window watchdog reset flag */ -#define RCC_CSR_LPWRRSTF ((uint32_t)0x80000000) /*!< Low-Power reset flag */ - -#ifdef STM32F10X_CL -/******************* Bit definition for RCC_AHBRSTR register ****************/ - #define RCC_AHBRSTR_OTGFSRST ((uint32_t)0x00001000) /*!< USB OTG FS reset */ - #define RCC_AHBRSTR_ETHMACRST ((uint32_t)0x00004000) /*!< ETHERNET MAC reset */ - -/******************* Bit definition for RCC_CFGR2 register ******************/ -/*!< PREDIV1 configuration */ - #define RCC_CFGR2_PREDIV1 ((uint32_t)0x0000000F) /*!< PREDIV1[3:0] bits */ - #define RCC_CFGR2_PREDIV1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ - #define RCC_CFGR2_PREDIV1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - #define RCC_CFGR2_PREDIV1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ - #define RCC_CFGR2_PREDIV1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - - #define RCC_CFGR2_PREDIV1_DIV1 ((uint32_t)0x00000000) /*!< PREDIV1 input clock not divided */ - #define RCC_CFGR2_PREDIV1_DIV2 ((uint32_t)0x00000001) /*!< PREDIV1 input clock divided by 2 */ - #define RCC_CFGR2_PREDIV1_DIV3 ((uint32_t)0x00000002) /*!< PREDIV1 input clock divided by 3 */ - #define RCC_CFGR2_PREDIV1_DIV4 ((uint32_t)0x00000003) /*!< PREDIV1 input clock divided by 4 */ - #define RCC_CFGR2_PREDIV1_DIV5 ((uint32_t)0x00000004) /*!< PREDIV1 input clock divided by 5 */ - #define RCC_CFGR2_PREDIV1_DIV6 ((uint32_t)0x00000005) /*!< PREDIV1 input clock divided by 6 */ - #define RCC_CFGR2_PREDIV1_DIV7 ((uint32_t)0x00000006) /*!< PREDIV1 input clock divided by 7 */ - #define RCC_CFGR2_PREDIV1_DIV8 ((uint32_t)0x00000007) /*!< PREDIV1 input clock divided by 8 */ - #define RCC_CFGR2_PREDIV1_DIV9 ((uint32_t)0x00000008) /*!< PREDIV1 input clock divided by 9 */ - #define RCC_CFGR2_PREDIV1_DIV10 ((uint32_t)0x00000009) /*!< PREDIV1 input clock divided by 10 */ - #define RCC_CFGR2_PREDIV1_DIV11 ((uint32_t)0x0000000A) /*!< PREDIV1 input clock divided by 11 */ - #define RCC_CFGR2_PREDIV1_DIV12 ((uint32_t)0x0000000B) /*!< PREDIV1 input clock divided by 12 */ - #define RCC_CFGR2_PREDIV1_DIV13 ((uint32_t)0x0000000C) /*!< PREDIV1 input clock divided by 13 */ - #define RCC_CFGR2_PREDIV1_DIV14 ((uint32_t)0x0000000D) /*!< PREDIV1 input clock divided by 14 */ - #define RCC_CFGR2_PREDIV1_DIV15 ((uint32_t)0x0000000E) /*!< PREDIV1 input clock divided by 15 */ - #define RCC_CFGR2_PREDIV1_DIV16 ((uint32_t)0x0000000F) /*!< PREDIV1 input clock divided by 16 */ - -/*!< PREDIV2 configuration */ - #define RCC_CFGR2_PREDIV2 ((uint32_t)0x000000F0) /*!< PREDIV2[3:0] bits */ - #define RCC_CFGR2_PREDIV2_0 ((uint32_t)0x00000010) /*!< Bit 0 */ - #define RCC_CFGR2_PREDIV2_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - #define RCC_CFGR2_PREDIV2_2 ((uint32_t)0x00000040) /*!< Bit 2 */ - #define RCC_CFGR2_PREDIV2_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - - #define RCC_CFGR2_PREDIV2_DIV1 ((uint32_t)0x00000000) /*!< PREDIV2 input clock not divided */ - #define RCC_CFGR2_PREDIV2_DIV2 ((uint32_t)0x00000010) /*!< PREDIV2 input clock divided by 2 */ - #define RCC_CFGR2_PREDIV2_DIV3 ((uint32_t)0x00000020) /*!< PREDIV2 input clock divided by 3 */ - #define RCC_CFGR2_PREDIV2_DIV4 ((uint32_t)0x00000030) /*!< PREDIV2 input clock divided by 4 */ - #define RCC_CFGR2_PREDIV2_DIV5 ((uint32_t)0x00000040) /*!< PREDIV2 input clock divided by 5 */ - #define RCC_CFGR2_PREDIV2_DIV6 ((uint32_t)0x00000050) /*!< PREDIV2 input clock divided by 6 */ - #define RCC_CFGR2_PREDIV2_DIV7 ((uint32_t)0x00000060) /*!< PREDIV2 input clock divided by 7 */ - #define RCC_CFGR2_PREDIV2_DIV8 ((uint32_t)0x00000070) /*!< PREDIV2 input clock divided by 8 */ - #define RCC_CFGR2_PREDIV2_DIV9 ((uint32_t)0x00000080) /*!< PREDIV2 input clock divided by 9 */ - #define RCC_CFGR2_PREDIV2_DIV10 ((uint32_t)0x00000090) /*!< PREDIV2 input clock divided by 10 */ - #define RCC_CFGR2_PREDIV2_DIV11 ((uint32_t)0x000000A0) /*!< PREDIV2 input clock divided by 11 */ - #define RCC_CFGR2_PREDIV2_DIV12 ((uint32_t)0x000000B0) /*!< PREDIV2 input clock divided by 12 */ - #define RCC_CFGR2_PREDIV2_DIV13 ((uint32_t)0x000000C0) /*!< PREDIV2 input clock divided by 13 */ - #define RCC_CFGR2_PREDIV2_DIV14 ((uint32_t)0x000000D0) /*!< PREDIV2 input clock divided by 14 */ - #define RCC_CFGR2_PREDIV2_DIV15 ((uint32_t)0x000000E0) /*!< PREDIV2 input clock divided by 15 */ - #define RCC_CFGR2_PREDIV2_DIV16 ((uint32_t)0x000000F0) /*!< PREDIV2 input clock divided by 16 */ - -/*!< PLL2MUL configuration */ - #define RCC_CFGR2_PLL2MUL ((uint32_t)0x00000F00) /*!< PLL2MUL[3:0] bits */ - #define RCC_CFGR2_PLL2MUL_0 ((uint32_t)0x00000100) /*!< Bit 0 */ - #define RCC_CFGR2_PLL2MUL_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - #define RCC_CFGR2_PLL2MUL_2 ((uint32_t)0x00000400) /*!< Bit 2 */ - #define RCC_CFGR2_PLL2MUL_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - - #define RCC_CFGR2_PLL2MUL8 ((uint32_t)0x00000600) /*!< PLL2 input clock * 8 */ - #define RCC_CFGR2_PLL2MUL9 ((uint32_t)0x00000700) /*!< PLL2 input clock * 9 */ - #define RCC_CFGR2_PLL2MUL10 ((uint32_t)0x00000800) /*!< PLL2 input clock * 10 */ - #define RCC_CFGR2_PLL2MUL11 ((uint32_t)0x00000900) /*!< PLL2 input clock * 11 */ - #define RCC_CFGR2_PLL2MUL12 ((uint32_t)0x00000A00) /*!< PLL2 input clock * 12 */ - #define RCC_CFGR2_PLL2MUL13 ((uint32_t)0x00000B00) /*!< PLL2 input clock * 13 */ - #define RCC_CFGR2_PLL2MUL14 ((uint32_t)0x00000C00) /*!< PLL2 input clock * 14 */ - #define RCC_CFGR2_PLL2MUL16 ((uint32_t)0x00000E00) /*!< PLL2 input clock * 16 */ - #define RCC_CFGR2_PLL2MUL20 ((uint32_t)0x00000F00) /*!< PLL2 input clock * 20 */ - -/*!< PLL3MUL configuration */ - #define RCC_CFGR2_PLL3MUL ((uint32_t)0x0000F000) /*!< PLL3MUL[3:0] bits */ - #define RCC_CFGR2_PLL3MUL_0 ((uint32_t)0x00001000) /*!< Bit 0 */ - #define RCC_CFGR2_PLL3MUL_1 ((uint32_t)0x00002000) /*!< Bit 1 */ - #define RCC_CFGR2_PLL3MUL_2 ((uint32_t)0x00004000) /*!< Bit 2 */ - #define RCC_CFGR2_PLL3MUL_3 ((uint32_t)0x00008000) /*!< Bit 3 */ - - #define RCC_CFGR2_PLL3MUL8 ((uint32_t)0x00006000) /*!< PLL3 input clock * 8 */ - #define RCC_CFGR2_PLL3MUL9 ((uint32_t)0x00007000) /*!< PLL3 input clock * 9 */ - #define RCC_CFGR2_PLL3MUL10 ((uint32_t)0x00008000) /*!< PLL3 input clock * 10 */ - #define RCC_CFGR2_PLL3MUL11 ((uint32_t)0x00009000) /*!< PLL3 input clock * 11 */ - #define RCC_CFGR2_PLL3MUL12 ((uint32_t)0x0000A000) /*!< PLL3 input clock * 12 */ - #define RCC_CFGR2_PLL3MUL13 ((uint32_t)0x0000B000) /*!< PLL3 input clock * 13 */ - #define RCC_CFGR2_PLL3MUL14 ((uint32_t)0x0000C000) /*!< PLL3 input clock * 14 */ - #define RCC_CFGR2_PLL3MUL16 ((uint32_t)0x0000E000) /*!< PLL3 input clock * 16 */ - #define RCC_CFGR2_PLL3MUL20 ((uint32_t)0x0000F000) /*!< PLL3 input clock * 20 */ - - #define RCC_CFGR2_PREDIV1SRC ((uint32_t)0x00010000) /*!< PREDIV1 entry clock source */ - #define RCC_CFGR2_PREDIV1SRC_PLL2 ((uint32_t)0x00010000) /*!< PLL2 selected as PREDIV1 entry clock source */ - #define RCC_CFGR2_PREDIV1SRC_HSE ((uint32_t)0x00000000) /*!< HSE selected as PREDIV1 entry clock source */ - #define RCC_CFGR2_I2S2SRC ((uint32_t)0x00020000) /*!< I2S2 entry clock source */ - #define RCC_CFGR2_I2S3SRC ((uint32_t)0x00040000) /*!< I2S3 clock source */ -#endif /* STM32F10X_CL */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -/******************* Bit definition for RCC_CFGR2 register ******************/ -/*!< PREDIV1 configuration */ - #define RCC_CFGR2_PREDIV1 ((uint32_t)0x0000000F) /*!< PREDIV1[3:0] bits */ - #define RCC_CFGR2_PREDIV1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ - #define RCC_CFGR2_PREDIV1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - #define RCC_CFGR2_PREDIV1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ - #define RCC_CFGR2_PREDIV1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - - #define RCC_CFGR2_PREDIV1_DIV1 ((uint32_t)0x00000000) /*!< PREDIV1 input clock not divided */ - #define RCC_CFGR2_PREDIV1_DIV2 ((uint32_t)0x00000001) /*!< PREDIV1 input clock divided by 2 */ - #define RCC_CFGR2_PREDIV1_DIV3 ((uint32_t)0x00000002) /*!< PREDIV1 input clock divided by 3 */ - #define RCC_CFGR2_PREDIV1_DIV4 ((uint32_t)0x00000003) /*!< PREDIV1 input clock divided by 4 */ - #define RCC_CFGR2_PREDIV1_DIV5 ((uint32_t)0x00000004) /*!< PREDIV1 input clock divided by 5 */ - #define RCC_CFGR2_PREDIV1_DIV6 ((uint32_t)0x00000005) /*!< PREDIV1 input clock divided by 6 */ - #define RCC_CFGR2_PREDIV1_DIV7 ((uint32_t)0x00000006) /*!< PREDIV1 input clock divided by 7 */ - #define RCC_CFGR2_PREDIV1_DIV8 ((uint32_t)0x00000007) /*!< PREDIV1 input clock divided by 8 */ - #define RCC_CFGR2_PREDIV1_DIV9 ((uint32_t)0x00000008) /*!< PREDIV1 input clock divided by 9 */ - #define RCC_CFGR2_PREDIV1_DIV10 ((uint32_t)0x00000009) /*!< PREDIV1 input clock divided by 10 */ - #define RCC_CFGR2_PREDIV1_DIV11 ((uint32_t)0x0000000A) /*!< PREDIV1 input clock divided by 11 */ - #define RCC_CFGR2_PREDIV1_DIV12 ((uint32_t)0x0000000B) /*!< PREDIV1 input clock divided by 12 */ - #define RCC_CFGR2_PREDIV1_DIV13 ((uint32_t)0x0000000C) /*!< PREDIV1 input clock divided by 13 */ - #define RCC_CFGR2_PREDIV1_DIV14 ((uint32_t)0x0000000D) /*!< PREDIV1 input clock divided by 14 */ - #define RCC_CFGR2_PREDIV1_DIV15 ((uint32_t)0x0000000E) /*!< PREDIV1 input clock divided by 15 */ - #define RCC_CFGR2_PREDIV1_DIV16 ((uint32_t)0x0000000F) /*!< PREDIV1 input clock divided by 16 */ -#endif - -/******************************************************************************/ -/* */ -/* General Purpose and Alternate Function I/O */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for GPIO_CRL register *******************/ -#define GPIO_CRL_MODE ((uint32_t)0x33333333) /*!< Port x mode bits */ - -#define GPIO_CRL_MODE0 ((uint32_t)0x00000003) /*!< MODE0[1:0] bits (Port x mode bits, pin 0) */ -#define GPIO_CRL_MODE0_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define GPIO_CRL_MODE0_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - -#define GPIO_CRL_MODE1 ((uint32_t)0x00000030) /*!< MODE1[1:0] bits (Port x mode bits, pin 1) */ -#define GPIO_CRL_MODE1_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define GPIO_CRL_MODE1_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define GPIO_CRL_MODE2 ((uint32_t)0x00000300) /*!< MODE2[1:0] bits (Port x mode bits, pin 2) */ -#define GPIO_CRL_MODE2_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define GPIO_CRL_MODE2_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - -#define GPIO_CRL_MODE3 ((uint32_t)0x00003000) /*!< MODE3[1:0] bits (Port x mode bits, pin 3) */ -#define GPIO_CRL_MODE3_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define GPIO_CRL_MODE3_1 ((uint32_t)0x00002000) /*!< Bit 1 */ - -#define GPIO_CRL_MODE4 ((uint32_t)0x00030000) /*!< MODE4[1:0] bits (Port x mode bits, pin 4) */ -#define GPIO_CRL_MODE4_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define GPIO_CRL_MODE4_1 ((uint32_t)0x00020000) /*!< Bit 1 */ - -#define GPIO_CRL_MODE5 ((uint32_t)0x00300000) /*!< MODE5[1:0] bits (Port x mode bits, pin 5) */ -#define GPIO_CRL_MODE5_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define GPIO_CRL_MODE5_1 ((uint32_t)0x00200000) /*!< Bit 1 */ - -#define GPIO_CRL_MODE6 ((uint32_t)0x03000000) /*!< MODE6[1:0] bits (Port x mode bits, pin 6) */ -#define GPIO_CRL_MODE6_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define GPIO_CRL_MODE6_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - -#define GPIO_CRL_MODE7 ((uint32_t)0x30000000) /*!< MODE7[1:0] bits (Port x mode bits, pin 7) */ -#define GPIO_CRL_MODE7_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define GPIO_CRL_MODE7_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF ((uint32_t)0xCCCCCCCC) /*!< Port x configuration bits */ - -#define GPIO_CRL_CNF0 ((uint32_t)0x0000000C) /*!< CNF0[1:0] bits (Port x configuration bits, pin 0) */ -#define GPIO_CRL_CNF0_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define GPIO_CRL_CNF0_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define GPIO_CRL_CNF1 ((uint32_t)0x000000C0) /*!< CNF1[1:0] bits (Port x configuration bits, pin 1) */ -#define GPIO_CRL_CNF1_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define GPIO_CRL_CNF1_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -#define GPIO_CRL_CNF2 ((uint32_t)0x00000C00) /*!< CNF2[1:0] bits (Port x configuration bits, pin 2) */ -#define GPIO_CRL_CNF2_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define GPIO_CRL_CNF2_1 ((uint32_t)0x00000800) /*!< Bit 1 */ - -#define GPIO_CRL_CNF3 ((uint32_t)0x0000C000) /*!< CNF3[1:0] bits (Port x configuration bits, pin 3) */ -#define GPIO_CRL_CNF3_0 ((uint32_t)0x00004000) /*!< Bit 0 */ -#define GPIO_CRL_CNF3_1 ((uint32_t)0x00008000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF4 ((uint32_t)0x000C0000) /*!< CNF4[1:0] bits (Port x configuration bits, pin 4) */ -#define GPIO_CRL_CNF4_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define GPIO_CRL_CNF4_1 ((uint32_t)0x00080000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF5 ((uint32_t)0x00C00000) /*!< CNF5[1:0] bits (Port x configuration bits, pin 5) */ -#define GPIO_CRL_CNF5_0 ((uint32_t)0x00400000) /*!< Bit 0 */ -#define GPIO_CRL_CNF5_1 ((uint32_t)0x00800000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF6 ((uint32_t)0x0C000000) /*!< CNF6[1:0] bits (Port x configuration bits, pin 6) */ -#define GPIO_CRL_CNF6_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define GPIO_CRL_CNF6_1 ((uint32_t)0x08000000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF7 ((uint32_t)0xC0000000) /*!< CNF7[1:0] bits (Port x configuration bits, pin 7) */ -#define GPIO_CRL_CNF7_0 ((uint32_t)0x40000000) /*!< Bit 0 */ -#define GPIO_CRL_CNF7_1 ((uint32_t)0x80000000) /*!< Bit 1 */ - -/******************* Bit definition for GPIO_CRH register *******************/ -#define GPIO_CRH_MODE ((uint32_t)0x33333333) /*!< Port x mode bits */ - -#define GPIO_CRH_MODE8 ((uint32_t)0x00000003) /*!< MODE8[1:0] bits (Port x mode bits, pin 8) */ -#define GPIO_CRH_MODE8_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define GPIO_CRH_MODE8_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - -#define GPIO_CRH_MODE9 ((uint32_t)0x00000030) /*!< MODE9[1:0] bits (Port x mode bits, pin 9) */ -#define GPIO_CRH_MODE9_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define GPIO_CRH_MODE9_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define GPIO_CRH_MODE10 ((uint32_t)0x00000300) /*!< MODE10[1:0] bits (Port x mode bits, pin 10) */ -#define GPIO_CRH_MODE10_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define GPIO_CRH_MODE10_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - -#define GPIO_CRH_MODE11 ((uint32_t)0x00003000) /*!< MODE11[1:0] bits (Port x mode bits, pin 11) */ -#define GPIO_CRH_MODE11_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define GPIO_CRH_MODE11_1 ((uint32_t)0x00002000) /*!< Bit 1 */ - -#define GPIO_CRH_MODE12 ((uint32_t)0x00030000) /*!< MODE12[1:0] bits (Port x mode bits, pin 12) */ -#define GPIO_CRH_MODE12_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define GPIO_CRH_MODE12_1 ((uint32_t)0x00020000) /*!< Bit 1 */ - -#define GPIO_CRH_MODE13 ((uint32_t)0x00300000) /*!< MODE13[1:0] bits (Port x mode bits, pin 13) */ -#define GPIO_CRH_MODE13_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define GPIO_CRH_MODE13_1 ((uint32_t)0x00200000) /*!< Bit 1 */ - -#define GPIO_CRH_MODE14 ((uint32_t)0x03000000) /*!< MODE14[1:0] bits (Port x mode bits, pin 14) */ -#define GPIO_CRH_MODE14_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define GPIO_CRH_MODE14_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - -#define GPIO_CRH_MODE15 ((uint32_t)0x30000000) /*!< MODE15[1:0] bits (Port x mode bits, pin 15) */ -#define GPIO_CRH_MODE15_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define GPIO_CRH_MODE15_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF ((uint32_t)0xCCCCCCCC) /*!< Port x configuration bits */ - -#define GPIO_CRH_CNF8 ((uint32_t)0x0000000C) /*!< CNF8[1:0] bits (Port x configuration bits, pin 8) */ -#define GPIO_CRH_CNF8_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define GPIO_CRH_CNF8_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define GPIO_CRH_CNF9 ((uint32_t)0x000000C0) /*!< CNF9[1:0] bits (Port x configuration bits, pin 9) */ -#define GPIO_CRH_CNF9_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define GPIO_CRH_CNF9_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -#define GPIO_CRH_CNF10 ((uint32_t)0x00000C00) /*!< CNF10[1:0] bits (Port x configuration bits, pin 10) */ -#define GPIO_CRH_CNF10_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define GPIO_CRH_CNF10_1 ((uint32_t)0x00000800) /*!< Bit 1 */ - -#define GPIO_CRH_CNF11 ((uint32_t)0x0000C000) /*!< CNF11[1:0] bits (Port x configuration bits, pin 11) */ -#define GPIO_CRH_CNF11_0 ((uint32_t)0x00004000) /*!< Bit 0 */ -#define GPIO_CRH_CNF11_1 ((uint32_t)0x00008000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF12 ((uint32_t)0x000C0000) /*!< CNF12[1:0] bits (Port x configuration bits, pin 12) */ -#define GPIO_CRH_CNF12_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define GPIO_CRH_CNF12_1 ((uint32_t)0x00080000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF13 ((uint32_t)0x00C00000) /*!< CNF13[1:0] bits (Port x configuration bits, pin 13) */ -#define GPIO_CRH_CNF13_0 ((uint32_t)0x00400000) /*!< Bit 0 */ -#define GPIO_CRH_CNF13_1 ((uint32_t)0x00800000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF14 ((uint32_t)0x0C000000) /*!< CNF14[1:0] bits (Port x configuration bits, pin 14) */ -#define GPIO_CRH_CNF14_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define GPIO_CRH_CNF14_1 ((uint32_t)0x08000000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF15 ((uint32_t)0xC0000000) /*!< CNF15[1:0] bits (Port x configuration bits, pin 15) */ -#define GPIO_CRH_CNF15_0 ((uint32_t)0x40000000) /*!< Bit 0 */ -#define GPIO_CRH_CNF15_1 ((uint32_t)0x80000000) /*!< Bit 1 */ - -/*!<****************** Bit definition for GPIO_IDR register *******************/ -#define GPIO_IDR_IDR0 ((uint16_t)0x0001) /*!< Port input data, bit 0 */ -#define GPIO_IDR_IDR1 ((uint16_t)0x0002) /*!< Port input data, bit 1 */ -#define GPIO_IDR_IDR2 ((uint16_t)0x0004) /*!< Port input data, bit 2 */ -#define GPIO_IDR_IDR3 ((uint16_t)0x0008) /*!< Port input data, bit 3 */ -#define GPIO_IDR_IDR4 ((uint16_t)0x0010) /*!< Port input data, bit 4 */ -#define GPIO_IDR_IDR5 ((uint16_t)0x0020) /*!< Port input data, bit 5 */ -#define GPIO_IDR_IDR6 ((uint16_t)0x0040) /*!< Port input data, bit 6 */ -#define GPIO_IDR_IDR7 ((uint16_t)0x0080) /*!< Port input data, bit 7 */ -#define GPIO_IDR_IDR8 ((uint16_t)0x0100) /*!< Port input data, bit 8 */ -#define GPIO_IDR_IDR9 ((uint16_t)0x0200) /*!< Port input data, bit 9 */ -#define GPIO_IDR_IDR10 ((uint16_t)0x0400) /*!< Port input data, bit 10 */ -#define GPIO_IDR_IDR11 ((uint16_t)0x0800) /*!< Port input data, bit 11 */ -#define GPIO_IDR_IDR12 ((uint16_t)0x1000) /*!< Port input data, bit 12 */ -#define GPIO_IDR_IDR13 ((uint16_t)0x2000) /*!< Port input data, bit 13 */ -#define GPIO_IDR_IDR14 ((uint16_t)0x4000) /*!< Port input data, bit 14 */ -#define GPIO_IDR_IDR15 ((uint16_t)0x8000) /*!< Port input data, bit 15 */ - -/******************* Bit definition for GPIO_ODR register *******************/ -#define GPIO_ODR_ODR0 ((uint16_t)0x0001) /*!< Port output data, bit 0 */ -#define GPIO_ODR_ODR1 ((uint16_t)0x0002) /*!< Port output data, bit 1 */ -#define GPIO_ODR_ODR2 ((uint16_t)0x0004) /*!< Port output data, bit 2 */ -#define GPIO_ODR_ODR3 ((uint16_t)0x0008) /*!< Port output data, bit 3 */ -#define GPIO_ODR_ODR4 ((uint16_t)0x0010) /*!< Port output data, bit 4 */ -#define GPIO_ODR_ODR5 ((uint16_t)0x0020) /*!< Port output data, bit 5 */ -#define GPIO_ODR_ODR6 ((uint16_t)0x0040) /*!< Port output data, bit 6 */ -#define GPIO_ODR_ODR7 ((uint16_t)0x0080) /*!< Port output data, bit 7 */ -#define GPIO_ODR_ODR8 ((uint16_t)0x0100) /*!< Port output data, bit 8 */ -#define GPIO_ODR_ODR9 ((uint16_t)0x0200) /*!< Port output data, bit 9 */ -#define GPIO_ODR_ODR10 ((uint16_t)0x0400) /*!< Port output data, bit 10 */ -#define GPIO_ODR_ODR11 ((uint16_t)0x0800) /*!< Port output data, bit 11 */ -#define GPIO_ODR_ODR12 ((uint16_t)0x1000) /*!< Port output data, bit 12 */ -#define GPIO_ODR_ODR13 ((uint16_t)0x2000) /*!< Port output data, bit 13 */ -#define GPIO_ODR_ODR14 ((uint16_t)0x4000) /*!< Port output data, bit 14 */ -#define GPIO_ODR_ODR15 ((uint16_t)0x8000) /*!< Port output data, bit 15 */ - -/****************** Bit definition for GPIO_BSRR register *******************/ -#define GPIO_BSRR_BS0 ((uint32_t)0x00000001) /*!< Port x Set bit 0 */ -#define GPIO_BSRR_BS1 ((uint32_t)0x00000002) /*!< Port x Set bit 1 */ -#define GPIO_BSRR_BS2 ((uint32_t)0x00000004) /*!< Port x Set bit 2 */ -#define GPIO_BSRR_BS3 ((uint32_t)0x00000008) /*!< Port x Set bit 3 */ -#define GPIO_BSRR_BS4 ((uint32_t)0x00000010) /*!< Port x Set bit 4 */ -#define GPIO_BSRR_BS5 ((uint32_t)0x00000020) /*!< Port x Set bit 5 */ -#define GPIO_BSRR_BS6 ((uint32_t)0x00000040) /*!< Port x Set bit 6 */ -#define GPIO_BSRR_BS7 ((uint32_t)0x00000080) /*!< Port x Set bit 7 */ -#define GPIO_BSRR_BS8 ((uint32_t)0x00000100) /*!< Port x Set bit 8 */ -#define GPIO_BSRR_BS9 ((uint32_t)0x00000200) /*!< Port x Set bit 9 */ -#define GPIO_BSRR_BS10 ((uint32_t)0x00000400) /*!< Port x Set bit 10 */ -#define GPIO_BSRR_BS11 ((uint32_t)0x00000800) /*!< Port x Set bit 11 */ -#define GPIO_BSRR_BS12 ((uint32_t)0x00001000) /*!< Port x Set bit 12 */ -#define GPIO_BSRR_BS13 ((uint32_t)0x00002000) /*!< Port x Set bit 13 */ -#define GPIO_BSRR_BS14 ((uint32_t)0x00004000) /*!< Port x Set bit 14 */ -#define GPIO_BSRR_BS15 ((uint32_t)0x00008000) /*!< Port x Set bit 15 */ - -#define GPIO_BSRR_BR0 ((uint32_t)0x00010000) /*!< Port x Reset bit 0 */ -#define GPIO_BSRR_BR1 ((uint32_t)0x00020000) /*!< Port x Reset bit 1 */ -#define GPIO_BSRR_BR2 ((uint32_t)0x00040000) /*!< Port x Reset bit 2 */ -#define GPIO_BSRR_BR3 ((uint32_t)0x00080000) /*!< Port x Reset bit 3 */ -#define GPIO_BSRR_BR4 ((uint32_t)0x00100000) /*!< Port x Reset bit 4 */ -#define GPIO_BSRR_BR5 ((uint32_t)0x00200000) /*!< Port x Reset bit 5 */ -#define GPIO_BSRR_BR6 ((uint32_t)0x00400000) /*!< Port x Reset bit 6 */ -#define GPIO_BSRR_BR7 ((uint32_t)0x00800000) /*!< Port x Reset bit 7 */ -#define GPIO_BSRR_BR8 ((uint32_t)0x01000000) /*!< Port x Reset bit 8 */ -#define GPIO_BSRR_BR9 ((uint32_t)0x02000000) /*!< Port x Reset bit 9 */ -#define GPIO_BSRR_BR10 ((uint32_t)0x04000000) /*!< Port x Reset bit 10 */ -#define GPIO_BSRR_BR11 ((uint32_t)0x08000000) /*!< Port x Reset bit 11 */ -#define GPIO_BSRR_BR12 ((uint32_t)0x10000000) /*!< Port x Reset bit 12 */ -#define GPIO_BSRR_BR13 ((uint32_t)0x20000000) /*!< Port x Reset bit 13 */ -#define GPIO_BSRR_BR14 ((uint32_t)0x40000000) /*!< Port x Reset bit 14 */ -#define GPIO_BSRR_BR15 ((uint32_t)0x80000000) /*!< Port x Reset bit 15 */ - -/******************* Bit definition for GPIO_BRR register *******************/ -#define GPIO_BRR_BR0 ((uint16_t)0x0001) /*!< Port x Reset bit 0 */ -#define GPIO_BRR_BR1 ((uint16_t)0x0002) /*!< Port x Reset bit 1 */ -#define GPIO_BRR_BR2 ((uint16_t)0x0004) /*!< Port x Reset bit 2 */ -#define GPIO_BRR_BR3 ((uint16_t)0x0008) /*!< Port x Reset bit 3 */ -#define GPIO_BRR_BR4 ((uint16_t)0x0010) /*!< Port x Reset bit 4 */ -#define GPIO_BRR_BR5 ((uint16_t)0x0020) /*!< Port x Reset bit 5 */ -#define GPIO_BRR_BR6 ((uint16_t)0x0040) /*!< Port x Reset bit 6 */ -#define GPIO_BRR_BR7 ((uint16_t)0x0080) /*!< Port x Reset bit 7 */ -#define GPIO_BRR_BR8 ((uint16_t)0x0100) /*!< Port x Reset bit 8 */ -#define GPIO_BRR_BR9 ((uint16_t)0x0200) /*!< Port x Reset bit 9 */ -#define GPIO_BRR_BR10 ((uint16_t)0x0400) /*!< Port x Reset bit 10 */ -#define GPIO_BRR_BR11 ((uint16_t)0x0800) /*!< Port x Reset bit 11 */ -#define GPIO_BRR_BR12 ((uint16_t)0x1000) /*!< Port x Reset bit 12 */ -#define GPIO_BRR_BR13 ((uint16_t)0x2000) /*!< Port x Reset bit 13 */ -#define GPIO_BRR_BR14 ((uint16_t)0x4000) /*!< Port x Reset bit 14 */ -#define GPIO_BRR_BR15 ((uint16_t)0x8000) /*!< Port x Reset bit 15 */ - -/****************** Bit definition for GPIO_LCKR register *******************/ -#define GPIO_LCKR_LCK0 ((uint32_t)0x00000001) /*!< Port x Lock bit 0 */ -#define GPIO_LCKR_LCK1 ((uint32_t)0x00000002) /*!< Port x Lock bit 1 */ -#define GPIO_LCKR_LCK2 ((uint32_t)0x00000004) /*!< Port x Lock bit 2 */ -#define GPIO_LCKR_LCK3 ((uint32_t)0x00000008) /*!< Port x Lock bit 3 */ -#define GPIO_LCKR_LCK4 ((uint32_t)0x00000010) /*!< Port x Lock bit 4 */ -#define GPIO_LCKR_LCK5 ((uint32_t)0x00000020) /*!< Port x Lock bit 5 */ -#define GPIO_LCKR_LCK6 ((uint32_t)0x00000040) /*!< Port x Lock bit 6 */ -#define GPIO_LCKR_LCK7 ((uint32_t)0x00000080) /*!< Port x Lock bit 7 */ -#define GPIO_LCKR_LCK8 ((uint32_t)0x00000100) /*!< Port x Lock bit 8 */ -#define GPIO_LCKR_LCK9 ((uint32_t)0x00000200) /*!< Port x Lock bit 9 */ -#define GPIO_LCKR_LCK10 ((uint32_t)0x00000400) /*!< Port x Lock bit 10 */ -#define GPIO_LCKR_LCK11 ((uint32_t)0x00000800) /*!< Port x Lock bit 11 */ -#define GPIO_LCKR_LCK12 ((uint32_t)0x00001000) /*!< Port x Lock bit 12 */ -#define GPIO_LCKR_LCK13 ((uint32_t)0x00002000) /*!< Port x Lock bit 13 */ -#define GPIO_LCKR_LCK14 ((uint32_t)0x00004000) /*!< Port x Lock bit 14 */ -#define GPIO_LCKR_LCK15 ((uint32_t)0x00008000) /*!< Port x Lock bit 15 */ -#define GPIO_LCKR_LCKK ((uint32_t)0x00010000) /*!< Lock key */ - -/*----------------------------------------------------------------------------*/ - -/****************** Bit definition for AFIO_EVCR register *******************/ -#define AFIO_EVCR_PIN ((uint8_t)0x0F) /*!< PIN[3:0] bits (Pin selection) */ -#define AFIO_EVCR_PIN_0 ((uint8_t)0x01) /*!< Bit 0 */ -#define AFIO_EVCR_PIN_1 ((uint8_t)0x02) /*!< Bit 1 */ -#define AFIO_EVCR_PIN_2 ((uint8_t)0x04) /*!< Bit 2 */ -#define AFIO_EVCR_PIN_3 ((uint8_t)0x08) /*!< Bit 3 */ - -/*!< PIN configuration */ -#define AFIO_EVCR_PIN_PX0 ((uint8_t)0x00) /*!< Pin 0 selected */ -#define AFIO_EVCR_PIN_PX1 ((uint8_t)0x01) /*!< Pin 1 selected */ -#define AFIO_EVCR_PIN_PX2 ((uint8_t)0x02) /*!< Pin 2 selected */ -#define AFIO_EVCR_PIN_PX3 ((uint8_t)0x03) /*!< Pin 3 selected */ -#define AFIO_EVCR_PIN_PX4 ((uint8_t)0x04) /*!< Pin 4 selected */ -#define AFIO_EVCR_PIN_PX5 ((uint8_t)0x05) /*!< Pin 5 selected */ -#define AFIO_EVCR_PIN_PX6 ((uint8_t)0x06) /*!< Pin 6 selected */ -#define AFIO_EVCR_PIN_PX7 ((uint8_t)0x07) /*!< Pin 7 selected */ -#define AFIO_EVCR_PIN_PX8 ((uint8_t)0x08) /*!< Pin 8 selected */ -#define AFIO_EVCR_PIN_PX9 ((uint8_t)0x09) /*!< Pin 9 selected */ -#define AFIO_EVCR_PIN_PX10 ((uint8_t)0x0A) /*!< Pin 10 selected */ -#define AFIO_EVCR_PIN_PX11 ((uint8_t)0x0B) /*!< Pin 11 selected */ -#define AFIO_EVCR_PIN_PX12 ((uint8_t)0x0C) /*!< Pin 12 selected */ -#define AFIO_EVCR_PIN_PX13 ((uint8_t)0x0D) /*!< Pin 13 selected */ -#define AFIO_EVCR_PIN_PX14 ((uint8_t)0x0E) /*!< Pin 14 selected */ -#define AFIO_EVCR_PIN_PX15 ((uint8_t)0x0F) /*!< Pin 15 selected */ - -#define AFIO_EVCR_PORT ((uint8_t)0x70) /*!< PORT[2:0] bits (Port selection) */ -#define AFIO_EVCR_PORT_0 ((uint8_t)0x10) /*!< Bit 0 */ -#define AFIO_EVCR_PORT_1 ((uint8_t)0x20) /*!< Bit 1 */ -#define AFIO_EVCR_PORT_2 ((uint8_t)0x40) /*!< Bit 2 */ - -/*!< PORT configuration */ -#define AFIO_EVCR_PORT_PA ((uint8_t)0x00) /*!< Port A selected */ -#define AFIO_EVCR_PORT_PB ((uint8_t)0x10) /*!< Port B selected */ -#define AFIO_EVCR_PORT_PC ((uint8_t)0x20) /*!< Port C selected */ -#define AFIO_EVCR_PORT_PD ((uint8_t)0x30) /*!< Port D selected */ -#define AFIO_EVCR_PORT_PE ((uint8_t)0x40) /*!< Port E selected */ - -#define AFIO_EVCR_EVOE ((uint8_t)0x80) /*!< Event Output Enable */ - -/****************** Bit definition for AFIO_MAPR register *******************/ -#define AFIO_MAPR_SPI1_REMAP ((uint32_t)0x00000001) /*!< SPI1 remapping */ -#define AFIO_MAPR_I2C1_REMAP ((uint32_t)0x00000002) /*!< I2C1 remapping */ -#define AFIO_MAPR_USART1_REMAP ((uint32_t)0x00000004) /*!< USART1 remapping */ -#define AFIO_MAPR_USART2_REMAP ((uint32_t)0x00000008) /*!< USART2 remapping */ - -#define AFIO_MAPR_USART3_REMAP ((uint32_t)0x00000030) /*!< USART3_REMAP[1:0] bits (USART3 remapping) */ -#define AFIO_MAPR_USART3_REMAP_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define AFIO_MAPR_USART3_REMAP_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -/* USART3_REMAP configuration */ -#define AFIO_MAPR_USART3_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (TX/PB10, RX/PB11, CK/PB12, CTS/PB13, RTS/PB14) */ -#define AFIO_MAPR_USART3_REMAP_PARTIALREMAP ((uint32_t)0x00000010) /*!< Partial remap (TX/PC10, RX/PC11, CK/PC12, CTS/PB13, RTS/PB14) */ -#define AFIO_MAPR_USART3_REMAP_FULLREMAP ((uint32_t)0x00000030) /*!< Full remap (TX/PD8, RX/PD9, CK/PD10, CTS/PD11, RTS/PD12) */ - -#define AFIO_MAPR_TIM1_REMAP ((uint32_t)0x000000C0) /*!< TIM1_REMAP[1:0] bits (TIM1 remapping) */ -#define AFIO_MAPR_TIM1_REMAP_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define AFIO_MAPR_TIM1_REMAP_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -/*!< TIM1_REMAP configuration */ -#define AFIO_MAPR_TIM1_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PB12, CH1N/PB13, CH2N/PB14, CH3N/PB15) */ -#define AFIO_MAPR_TIM1_REMAP_PARTIALREMAP ((uint32_t)0x00000040) /*!< Partial remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PA6, CH1N/PA7, CH2N/PB0, CH3N/PB1) */ -#define AFIO_MAPR_TIM1_REMAP_FULLREMAP ((uint32_t)0x000000C0) /*!< Full remap (ETR/PE7, CH1/PE9, CH2/PE11, CH3/PE13, CH4/PE14, BKIN/PE15, CH1N/PE8, CH2N/PE10, CH3N/PE12) */ - -#define AFIO_MAPR_TIM2_REMAP ((uint32_t)0x00000300) /*!< TIM2_REMAP[1:0] bits (TIM2 remapping) */ -#define AFIO_MAPR_TIM2_REMAP_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define AFIO_MAPR_TIM2_REMAP_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - -/*!< TIM2_REMAP configuration */ -#define AFIO_MAPR_TIM2_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (CH1/ETR/PA0, CH2/PA1, CH3/PA2, CH4/PA3) */ -#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1 ((uint32_t)0x00000100) /*!< Partial remap (CH1/ETR/PA15, CH2/PB3, CH3/PA2, CH4/PA3) */ -#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2 ((uint32_t)0x00000200) /*!< Partial remap (CH1/ETR/PA0, CH2/PA1, CH3/PB10, CH4/PB11) */ -#define AFIO_MAPR_TIM2_REMAP_FULLREMAP ((uint32_t)0x00000300) /*!< Full remap (CH1/ETR/PA15, CH2/PB3, CH3/PB10, CH4/PB11) */ - -#define AFIO_MAPR_TIM3_REMAP ((uint32_t)0x00000C00) /*!< TIM3_REMAP[1:0] bits (TIM3 remapping) */ -#define AFIO_MAPR_TIM3_REMAP_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define AFIO_MAPR_TIM3_REMAP_1 ((uint32_t)0x00000800) /*!< Bit 1 */ - -/*!< TIM3_REMAP configuration */ -#define AFIO_MAPR_TIM3_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (CH1/PA6, CH2/PA7, CH3/PB0, CH4/PB1) */ -#define AFIO_MAPR_TIM3_REMAP_PARTIALREMAP ((uint32_t)0x00000800) /*!< Partial remap (CH1/PB4, CH2/PB5, CH3/PB0, CH4/PB1) */ -#define AFIO_MAPR_TIM3_REMAP_FULLREMAP ((uint32_t)0x00000C00) /*!< Full remap (CH1/PC6, CH2/PC7, CH3/PC8, CH4/PC9) */ - -#define AFIO_MAPR_TIM4_REMAP ((uint32_t)0x00001000) /*!< TIM4_REMAP bit (TIM4 remapping) */ - -#define AFIO_MAPR_CAN_REMAP ((uint32_t)0x00006000) /*!< CAN_REMAP[1:0] bits (CAN Alternate function remapping) */ -#define AFIO_MAPR_CAN_REMAP_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define AFIO_MAPR_CAN_REMAP_1 ((uint32_t)0x00004000) /*!< Bit 1 */ - -/*!< CAN_REMAP configuration */ -#define AFIO_MAPR_CAN_REMAP_REMAP1 ((uint32_t)0x00000000) /*!< CANRX mapped to PA11, CANTX mapped to PA12 */ -#define AFIO_MAPR_CAN_REMAP_REMAP2 ((uint32_t)0x00004000) /*!< CANRX mapped to PB8, CANTX mapped to PB9 */ -#define AFIO_MAPR_CAN_REMAP_REMAP3 ((uint32_t)0x00006000) /*!< CANRX mapped to PD0, CANTX mapped to PD1 */ - -#define AFIO_MAPR_PD01_REMAP ((uint32_t)0x00008000) /*!< Port D0/Port D1 mapping on OSC_IN/OSC_OUT */ -#define AFIO_MAPR_TIM5CH4_IREMAP ((uint32_t)0x00010000) /*!< TIM5 Channel4 Internal Remap */ -#define AFIO_MAPR_ADC1_ETRGINJ_REMAP ((uint32_t)0x00020000) /*!< ADC 1 External Trigger Injected Conversion remapping */ -#define AFIO_MAPR_ADC1_ETRGREG_REMAP ((uint32_t)0x00040000) /*!< ADC 1 External Trigger Regular Conversion remapping */ -#define AFIO_MAPR_ADC2_ETRGINJ_REMAP ((uint32_t)0x00080000) /*!< ADC 2 External Trigger Injected Conversion remapping */ -#define AFIO_MAPR_ADC2_ETRGREG_REMAP ((uint32_t)0x00100000) /*!< ADC 2 External Trigger Regular Conversion remapping */ - -/*!< SWJ_CFG configuration */ -#define AFIO_MAPR_SWJ_CFG ((uint32_t)0x07000000) /*!< SWJ_CFG[2:0] bits (Serial Wire JTAG configuration) */ -#define AFIO_MAPR_SWJ_CFG_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define AFIO_MAPR_SWJ_CFG_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define AFIO_MAPR_SWJ_CFG_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - -#define AFIO_MAPR_SWJ_CFG_RESET ((uint32_t)0x00000000) /*!< Full SWJ (JTAG-DP + SW-DP) : Reset State */ -#define AFIO_MAPR_SWJ_CFG_NOJNTRST ((uint32_t)0x01000000) /*!< Full SWJ (JTAG-DP + SW-DP) but without JNTRST */ -#define AFIO_MAPR_SWJ_CFG_JTAGDISABLE ((uint32_t)0x02000000) /*!< JTAG-DP Disabled and SW-DP Enabled */ -#define AFIO_MAPR_SWJ_CFG_DISABLE ((uint32_t)0x04000000) /*!< JTAG-DP Disabled and SW-DP Disabled */ - -#ifdef STM32F10X_CL -/*!< ETH_REMAP configuration */ - #define AFIO_MAPR_ETH_REMAP ((uint32_t)0x00200000) /*!< SPI3_REMAP bit (Ethernet MAC I/O remapping) */ - -/*!< CAN2_REMAP configuration */ - #define AFIO_MAPR_CAN2_REMAP ((uint32_t)0x00400000) /*!< CAN2_REMAP bit (CAN2 I/O remapping) */ - -/*!< MII_RMII_SEL configuration */ - #define AFIO_MAPR_MII_RMII_SEL ((uint32_t)0x00800000) /*!< MII_RMII_SEL bit (Ethernet MII or RMII selection) */ - -/*!< SPI3_REMAP configuration */ - #define AFIO_MAPR_SPI3_REMAP ((uint32_t)0x10000000) /*!< SPI3_REMAP bit (SPI3 remapping) */ - -/*!< TIM2ITR1_IREMAP configuration */ - #define AFIO_MAPR_TIM2ITR1_IREMAP ((uint32_t)0x20000000) /*!< TIM2ITR1_IREMAP bit (TIM2 internal trigger 1 remapping) */ - -/*!< PTP_PPS_REMAP configuration */ - #define AFIO_MAPR_PTP_PPS_REMAP ((uint32_t)0x40000000) /*!< PTP_PPS_REMAP bit (Ethernet PTP PPS remapping) */ -#endif - -/***************** Bit definition for AFIO_EXTICR1 register *****************/ -#define AFIO_EXTICR1_EXTI0 ((uint16_t)0x000F) /*!< EXTI 0 configuration */ -#define AFIO_EXTICR1_EXTI1 ((uint16_t)0x00F0) /*!< EXTI 1 configuration */ -#define AFIO_EXTICR1_EXTI2 ((uint16_t)0x0F00) /*!< EXTI 2 configuration */ -#define AFIO_EXTICR1_EXTI3 ((uint16_t)0xF000) /*!< EXTI 3 configuration */ - -/*!< EXTI0 configuration */ -#define AFIO_EXTICR1_EXTI0_PA ((uint16_t)0x0000) /*!< PA[0] pin */ -#define AFIO_EXTICR1_EXTI0_PB ((uint16_t)0x0001) /*!< PB[0] pin */ -#define AFIO_EXTICR1_EXTI0_PC ((uint16_t)0x0002) /*!< PC[0] pin */ -#define AFIO_EXTICR1_EXTI0_PD ((uint16_t)0x0003) /*!< PD[0] pin */ -#define AFIO_EXTICR1_EXTI0_PE ((uint16_t)0x0004) /*!< PE[0] pin */ -#define AFIO_EXTICR1_EXTI0_PF ((uint16_t)0x0005) /*!< PF[0] pin */ -#define AFIO_EXTICR1_EXTI0_PG ((uint16_t)0x0006) /*!< PG[0] pin */ - -/*!< EXTI1 configuration */ -#define AFIO_EXTICR1_EXTI1_PA ((uint16_t)0x0000) /*!< PA[1] pin */ -#define AFIO_EXTICR1_EXTI1_PB ((uint16_t)0x0010) /*!< PB[1] pin */ -#define AFIO_EXTICR1_EXTI1_PC ((uint16_t)0x0020) /*!< PC[1] pin */ -#define AFIO_EXTICR1_EXTI1_PD ((uint16_t)0x0030) /*!< PD[1] pin */ -#define AFIO_EXTICR1_EXTI1_PE ((uint16_t)0x0040) /*!< PE[1] pin */ -#define AFIO_EXTICR1_EXTI1_PF ((uint16_t)0x0050) /*!< PF[1] pin */ -#define AFIO_EXTICR1_EXTI1_PG ((uint16_t)0x0060) /*!< PG[1] pin */ - -/*!< EXTI2 configuration */ -#define AFIO_EXTICR1_EXTI2_PA ((uint16_t)0x0000) /*!< PA[2] pin */ -#define AFIO_EXTICR1_EXTI2_PB ((uint16_t)0x0100) /*!< PB[2] pin */ -#define AFIO_EXTICR1_EXTI2_PC ((uint16_t)0x0200) /*!< PC[2] pin */ -#define AFIO_EXTICR1_EXTI2_PD ((uint16_t)0x0300) /*!< PD[2] pin */ -#define AFIO_EXTICR1_EXTI2_PE ((uint16_t)0x0400) /*!< PE[2] pin */ -#define AFIO_EXTICR1_EXTI2_PF ((uint16_t)0x0500) /*!< PF[2] pin */ -#define AFIO_EXTICR1_EXTI2_PG ((uint16_t)0x0600) /*!< PG[2] pin */ - -/*!< EXTI3 configuration */ -#define AFIO_EXTICR1_EXTI3_PA ((uint16_t)0x0000) /*!< PA[3] pin */ -#define AFIO_EXTICR1_EXTI3_PB ((uint16_t)0x1000) /*!< PB[3] pin */ -#define AFIO_EXTICR1_EXTI3_PC ((uint16_t)0x2000) /*!< PC[3] pin */ -#define AFIO_EXTICR1_EXTI3_PD ((uint16_t)0x3000) /*!< PD[3] pin */ -#define AFIO_EXTICR1_EXTI3_PE ((uint16_t)0x4000) /*!< PE[3] pin */ -#define AFIO_EXTICR1_EXTI3_PF ((uint16_t)0x5000) /*!< PF[3] pin */ -#define AFIO_EXTICR1_EXTI3_PG ((uint16_t)0x6000) /*!< PG[3] pin */ - -/***************** Bit definition for AFIO_EXTICR2 register *****************/ -#define AFIO_EXTICR2_EXTI4 ((uint16_t)0x000F) /*!< EXTI 4 configuration */ -#define AFIO_EXTICR2_EXTI5 ((uint16_t)0x00F0) /*!< EXTI 5 configuration */ -#define AFIO_EXTICR2_EXTI6 ((uint16_t)0x0F00) /*!< EXTI 6 configuration */ -#define AFIO_EXTICR2_EXTI7 ((uint16_t)0xF000) /*!< EXTI 7 configuration */ - -/*!< EXTI4 configuration */ -#define AFIO_EXTICR2_EXTI4_PA ((uint16_t)0x0000) /*!< PA[4] pin */ -#define AFIO_EXTICR2_EXTI4_PB ((uint16_t)0x0001) /*!< PB[4] pin */ -#define AFIO_EXTICR2_EXTI4_PC ((uint16_t)0x0002) /*!< PC[4] pin */ -#define AFIO_EXTICR2_EXTI4_PD ((uint16_t)0x0003) /*!< PD[4] pin */ -#define AFIO_EXTICR2_EXTI4_PE ((uint16_t)0x0004) /*!< PE[4] pin */ -#define AFIO_EXTICR2_EXTI4_PF ((uint16_t)0x0005) /*!< PF[4] pin */ -#define AFIO_EXTICR2_EXTI4_PG ((uint16_t)0x0006) /*!< PG[4] pin */ - -/* EXTI5 configuration */ -#define AFIO_EXTICR2_EXTI5_PA ((uint16_t)0x0000) /*!< PA[5] pin */ -#define AFIO_EXTICR2_EXTI5_PB ((uint16_t)0x0010) /*!< PB[5] pin */ -#define AFIO_EXTICR2_EXTI5_PC ((uint16_t)0x0020) /*!< PC[5] pin */ -#define AFIO_EXTICR2_EXTI5_PD ((uint16_t)0x0030) /*!< PD[5] pin */ -#define AFIO_EXTICR2_EXTI5_PE ((uint16_t)0x0040) /*!< PE[5] pin */ -#define AFIO_EXTICR2_EXTI5_PF ((uint16_t)0x0050) /*!< PF[5] pin */ -#define AFIO_EXTICR2_EXTI5_PG ((uint16_t)0x0060) /*!< PG[5] pin */ - -/*!< EXTI6 configuration */ -#define AFIO_EXTICR2_EXTI6_PA ((uint16_t)0x0000) /*!< PA[6] pin */ -#define AFIO_EXTICR2_EXTI6_PB ((uint16_t)0x0100) /*!< PB[6] pin */ -#define AFIO_EXTICR2_EXTI6_PC ((uint16_t)0x0200) /*!< PC[6] pin */ -#define AFIO_EXTICR2_EXTI6_PD ((uint16_t)0x0300) /*!< PD[6] pin */ -#define AFIO_EXTICR2_EXTI6_PE ((uint16_t)0x0400) /*!< PE[6] pin */ -#define AFIO_EXTICR2_EXTI6_PF ((uint16_t)0x0500) /*!< PF[6] pin */ -#define AFIO_EXTICR2_EXTI6_PG ((uint16_t)0x0600) /*!< PG[6] pin */ - -/*!< EXTI7 configuration */ -#define AFIO_EXTICR2_EXTI7_PA ((uint16_t)0x0000) /*!< PA[7] pin */ -#define AFIO_EXTICR2_EXTI7_PB ((uint16_t)0x1000) /*!< PB[7] pin */ -#define AFIO_EXTICR2_EXTI7_PC ((uint16_t)0x2000) /*!< PC[7] pin */ -#define AFIO_EXTICR2_EXTI7_PD ((uint16_t)0x3000) /*!< PD[7] pin */ -#define AFIO_EXTICR2_EXTI7_PE ((uint16_t)0x4000) /*!< PE[7] pin */ -#define AFIO_EXTICR2_EXTI7_PF ((uint16_t)0x5000) /*!< PF[7] pin */ -#define AFIO_EXTICR2_EXTI7_PG ((uint16_t)0x6000) /*!< PG[7] pin */ - -/***************** Bit definition for AFIO_EXTICR3 register *****************/ -#define AFIO_EXTICR3_EXTI8 ((uint16_t)0x000F) /*!< EXTI 8 configuration */ -#define AFIO_EXTICR3_EXTI9 ((uint16_t)0x00F0) /*!< EXTI 9 configuration */ -#define AFIO_EXTICR3_EXTI10 ((uint16_t)0x0F00) /*!< EXTI 10 configuration */ -#define AFIO_EXTICR3_EXTI11 ((uint16_t)0xF000) /*!< EXTI 11 configuration */ - -/*!< EXTI8 configuration */ -#define AFIO_EXTICR3_EXTI8_PA ((uint16_t)0x0000) /*!< PA[8] pin */ -#define AFIO_EXTICR3_EXTI8_PB ((uint16_t)0x0001) /*!< PB[8] pin */ -#define AFIO_EXTICR3_EXTI8_PC ((uint16_t)0x0002) /*!< PC[8] pin */ -#define AFIO_EXTICR3_EXTI8_PD ((uint16_t)0x0003) /*!< PD[8] pin */ -#define AFIO_EXTICR3_EXTI8_PE ((uint16_t)0x0004) /*!< PE[8] pin */ -#define AFIO_EXTICR3_EXTI8_PF ((uint16_t)0x0005) /*!< PF[8] pin */ -#define AFIO_EXTICR3_EXTI8_PG ((uint16_t)0x0006) /*!< PG[8] pin */ - -/*!< EXTI9 configuration */ -#define AFIO_EXTICR3_EXTI9_PA ((uint16_t)0x0000) /*!< PA[9] pin */ -#define AFIO_EXTICR3_EXTI9_PB ((uint16_t)0x0010) /*!< PB[9] pin */ -#define AFIO_EXTICR3_EXTI9_PC ((uint16_t)0x0020) /*!< PC[9] pin */ -#define AFIO_EXTICR3_EXTI9_PD ((uint16_t)0x0030) /*!< PD[9] pin */ -#define AFIO_EXTICR3_EXTI9_PE ((uint16_t)0x0040) /*!< PE[9] pin */ -#define AFIO_EXTICR3_EXTI9_PF ((uint16_t)0x0050) /*!< PF[9] pin */ -#define AFIO_EXTICR3_EXTI9_PG ((uint16_t)0x0060) /*!< PG[9] pin */ - -/*!< EXTI10 configuration */ -#define AFIO_EXTICR3_EXTI10_PA ((uint16_t)0x0000) /*!< PA[10] pin */ -#define AFIO_EXTICR3_EXTI10_PB ((uint16_t)0x0100) /*!< PB[10] pin */ -#define AFIO_EXTICR3_EXTI10_PC ((uint16_t)0x0200) /*!< PC[10] pin */ -#define AFIO_EXTICR3_EXTI10_PD ((uint16_t)0x0300) /*!< PD[10] pin */ -#define AFIO_EXTICR3_EXTI10_PE ((uint16_t)0x0400) /*!< PE[10] pin */ -#define AFIO_EXTICR3_EXTI10_PF ((uint16_t)0x0500) /*!< PF[10] pin */ -#define AFIO_EXTICR3_EXTI10_PG ((uint16_t)0x0600) /*!< PG[10] pin */ - -/*!< EXTI11 configuration */ -#define AFIO_EXTICR3_EXTI11_PA ((uint16_t)0x0000) /*!< PA[11] pin */ -#define AFIO_EXTICR3_EXTI11_PB ((uint16_t)0x1000) /*!< PB[11] pin */ -#define AFIO_EXTICR3_EXTI11_PC ((uint16_t)0x2000) /*!< PC[11] pin */ -#define AFIO_EXTICR3_EXTI11_PD ((uint16_t)0x3000) /*!< PD[11] pin */ -#define AFIO_EXTICR3_EXTI11_PE ((uint16_t)0x4000) /*!< PE[11] pin */ -#define AFIO_EXTICR3_EXTI11_PF ((uint16_t)0x5000) /*!< PF[11] pin */ -#define AFIO_EXTICR3_EXTI11_PG ((uint16_t)0x6000) /*!< PG[11] pin */ - -/***************** Bit definition for AFIO_EXTICR4 register *****************/ -#define AFIO_EXTICR4_EXTI12 ((uint16_t)0x000F) /*!< EXTI 12 configuration */ -#define AFIO_EXTICR4_EXTI13 ((uint16_t)0x00F0) /*!< EXTI 13 configuration */ -#define AFIO_EXTICR4_EXTI14 ((uint16_t)0x0F00) /*!< EXTI 14 configuration */ -#define AFIO_EXTICR4_EXTI15 ((uint16_t)0xF000) /*!< EXTI 15 configuration */ - -/* EXTI12 configuration */ -#define AFIO_EXTICR4_EXTI12_PA ((uint16_t)0x0000) /*!< PA[12] pin */ -#define AFIO_EXTICR4_EXTI12_PB ((uint16_t)0x0001) /*!< PB[12] pin */ -#define AFIO_EXTICR4_EXTI12_PC ((uint16_t)0x0002) /*!< PC[12] pin */ -#define AFIO_EXTICR4_EXTI12_PD ((uint16_t)0x0003) /*!< PD[12] pin */ -#define AFIO_EXTICR4_EXTI12_PE ((uint16_t)0x0004) /*!< PE[12] pin */ -#define AFIO_EXTICR4_EXTI12_PF ((uint16_t)0x0005) /*!< PF[12] pin */ -#define AFIO_EXTICR4_EXTI12_PG ((uint16_t)0x0006) /*!< PG[12] pin */ - -/* EXTI13 configuration */ -#define AFIO_EXTICR4_EXTI13_PA ((uint16_t)0x0000) /*!< PA[13] pin */ -#define AFIO_EXTICR4_EXTI13_PB ((uint16_t)0x0010) /*!< PB[13] pin */ -#define AFIO_EXTICR4_EXTI13_PC ((uint16_t)0x0020) /*!< PC[13] pin */ -#define AFIO_EXTICR4_EXTI13_PD ((uint16_t)0x0030) /*!< PD[13] pin */ -#define AFIO_EXTICR4_EXTI13_PE ((uint16_t)0x0040) /*!< PE[13] pin */ -#define AFIO_EXTICR4_EXTI13_PF ((uint16_t)0x0050) /*!< PF[13] pin */ -#define AFIO_EXTICR4_EXTI13_PG ((uint16_t)0x0060) /*!< PG[13] pin */ - -/*!< EXTI14 configuration */ -#define AFIO_EXTICR4_EXTI14_PA ((uint16_t)0x0000) /*!< PA[14] pin */ -#define AFIO_EXTICR4_EXTI14_PB ((uint16_t)0x0100) /*!< PB[14] pin */ -#define AFIO_EXTICR4_EXTI14_PC ((uint16_t)0x0200) /*!< PC[14] pin */ -#define AFIO_EXTICR4_EXTI14_PD ((uint16_t)0x0300) /*!< PD[14] pin */ -#define AFIO_EXTICR4_EXTI14_PE ((uint16_t)0x0400) /*!< PE[14] pin */ -#define AFIO_EXTICR4_EXTI14_PF ((uint16_t)0x0500) /*!< PF[14] pin */ -#define AFIO_EXTICR4_EXTI14_PG ((uint16_t)0x0600) /*!< PG[14] pin */ - -/*!< EXTI15 configuration */ -#define AFIO_EXTICR4_EXTI15_PA ((uint16_t)0x0000) /*!< PA[15] pin */ -#define AFIO_EXTICR4_EXTI15_PB ((uint16_t)0x1000) /*!< PB[15] pin */ -#define AFIO_EXTICR4_EXTI15_PC ((uint16_t)0x2000) /*!< PC[15] pin */ -#define AFIO_EXTICR4_EXTI15_PD ((uint16_t)0x3000) /*!< PD[15] pin */ -#define AFIO_EXTICR4_EXTI15_PE ((uint16_t)0x4000) /*!< PE[15] pin */ -#define AFIO_EXTICR4_EXTI15_PF ((uint16_t)0x5000) /*!< PF[15] pin */ -#define AFIO_EXTICR4_EXTI15_PG ((uint16_t)0x6000) /*!< PG[15] pin */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -/****************** Bit definition for AFIO_MAPR2 register ******************/ -#define AFIO_MAPR2_TIM15_REMAP ((uint32_t)0x00000001) /*!< TIM15 remapping */ -#define AFIO_MAPR2_TIM16_REMAP ((uint32_t)0x00000002) /*!< TIM16 remapping */ -#define AFIO_MAPR2_TIM17_REMAP ((uint32_t)0x00000004) /*!< TIM17 remapping */ -#define AFIO_MAPR2_CEC_REMAP ((uint32_t)0x00000008) /*!< CEC remapping */ -#define AFIO_MAPR2_TIM1_DMA_REMAP ((uint32_t)0x00000010) /*!< TIM1_DMA remapping */ -#endif - -#ifdef STM32F10X_HD_VL -#define AFIO_MAPR2_TIM13_REMAP ((uint32_t)0x00000100) /*!< TIM13 remapping */ -#define AFIO_MAPR2_TIM14_REMAP ((uint32_t)0x00000200) /*!< TIM14 remapping */ -#define AFIO_MAPR2_FSMC_NADV_REMAP ((uint32_t)0x00000400) /*!< FSMC NADV remapping */ -#define AFIO_MAPR2_TIM67_DAC_DMA_REMAP ((uint32_t)0x00000800) /*!< TIM6/TIM7 and DAC DMA remapping */ -#define AFIO_MAPR2_TIM12_REMAP ((uint32_t)0x00001000) /*!< TIM12 remapping */ -#define AFIO_MAPR2_MISC_REMAP ((uint32_t)0x00002000) /*!< Miscellaneous remapping */ -#endif - -#ifdef STM32F10X_XL -/****************** Bit definition for AFIO_MAPR2 register ******************/ -#define AFIO_MAPR2_TIM9_REMAP ((uint32_t)0x00000020) /*!< TIM9 remapping */ -#define AFIO_MAPR2_TIM10_REMAP ((uint32_t)0x00000040) /*!< TIM10 remapping */ -#define AFIO_MAPR2_TIM11_REMAP ((uint32_t)0x00000080) /*!< TIM11 remapping */ -#define AFIO_MAPR2_TIM13_REMAP ((uint32_t)0x00000100) /*!< TIM13 remapping */ -#define AFIO_MAPR2_TIM14_REMAP ((uint32_t)0x00000200) /*!< TIM14 remapping */ -#define AFIO_MAPR2_FSMC_NADV_REMAP ((uint32_t)0x00000400) /*!< FSMC NADV remapping */ -#endif - -/******************************************************************************/ -/* */ -/* SystemTick */ -/* */ -/******************************************************************************/ - -/***************** Bit definition for SysTick_CTRL register *****************/ -#define SysTick_CTRL_ENABLE ((uint32_t)0x00000001) /*!< Counter enable */ -#define SysTick_CTRL_TICKINT ((uint32_t)0x00000002) /*!< Counting down to 0 pends the SysTick handler */ -#define SysTick_CTRL_CLKSOURCE ((uint32_t)0x00000004) /*!< Clock source */ -#define SysTick_CTRL_COUNTFLAG ((uint32_t)0x00010000) /*!< Count Flag */ - -/***************** Bit definition for SysTick_LOAD register *****************/ -#define SysTick_LOAD_RELOAD ((uint32_t)0x00FFFFFF) /*!< Value to load into the SysTick Current Value Register when the counter reaches 0 */ - -/***************** Bit definition for SysTick_VAL register ******************/ -#define SysTick_VAL_CURRENT ((uint32_t)0x00FFFFFF) /*!< Current value at the time the register is accessed */ - -/***************** Bit definition for SysTick_CALIB register ****************/ -#define SysTick_CALIB_TENMS ((uint32_t)0x00FFFFFF) /*!< Reload value to use for 10ms timing */ -#define SysTick_CALIB_SKEW ((uint32_t)0x40000000) /*!< Calibration value is not exactly 10 ms */ -#define SysTick_CALIB_NOREF ((uint32_t)0x80000000) /*!< The reference clock is not provided */ - -/******************************************************************************/ -/* */ -/* Nested Vectored Interrupt Controller */ -/* */ -/******************************************************************************/ - -/****************** Bit definition for NVIC_ISER register *******************/ -#define NVIC_ISER_SETENA ((uint32_t)0xFFFFFFFF) /*!< Interrupt set enable bits */ -#define NVIC_ISER_SETENA_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_ISER_SETENA_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_ISER_SETENA_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_ISER_SETENA_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_ISER_SETENA_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_ISER_SETENA_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_ISER_SETENA_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_ISER_SETENA_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_ISER_SETENA_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_ISER_SETENA_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_ISER_SETENA_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_ISER_SETENA_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_ISER_SETENA_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_ISER_SETENA_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_ISER_SETENA_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_ISER_SETENA_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_ISER_SETENA_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_ISER_SETENA_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_ISER_SETENA_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_ISER_SETENA_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_ISER_SETENA_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_ISER_SETENA_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_ISER_SETENA_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_ISER_SETENA_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_ISER_SETENA_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_ISER_SETENA_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_ISER_SETENA_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_ISER_SETENA_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_ISER_SETENA_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_ISER_SETENA_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_ISER_SETENA_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_ISER_SETENA_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_ICER register *******************/ -#define NVIC_ICER_CLRENA ((uint32_t)0xFFFFFFFF) /*!< Interrupt clear-enable bits */ -#define NVIC_ICER_CLRENA_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_ICER_CLRENA_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_ICER_CLRENA_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_ICER_CLRENA_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_ICER_CLRENA_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_ICER_CLRENA_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_ICER_CLRENA_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_ICER_CLRENA_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_ICER_CLRENA_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_ICER_CLRENA_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_ICER_CLRENA_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_ICER_CLRENA_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_ICER_CLRENA_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_ICER_CLRENA_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_ICER_CLRENA_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_ICER_CLRENA_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_ICER_CLRENA_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_ICER_CLRENA_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_ICER_CLRENA_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_ICER_CLRENA_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_ICER_CLRENA_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_ICER_CLRENA_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_ICER_CLRENA_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_ICER_CLRENA_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_ICER_CLRENA_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_ICER_CLRENA_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_ICER_CLRENA_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_ICER_CLRENA_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_ICER_CLRENA_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_ICER_CLRENA_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_ICER_CLRENA_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_ICER_CLRENA_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_ISPR register *******************/ -#define NVIC_ISPR_SETPEND ((uint32_t)0xFFFFFFFF) /*!< Interrupt set-pending bits */ -#define NVIC_ISPR_SETPEND_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_ISPR_SETPEND_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_ISPR_SETPEND_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_ISPR_SETPEND_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_ISPR_SETPEND_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_ISPR_SETPEND_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_ISPR_SETPEND_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_ISPR_SETPEND_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_ISPR_SETPEND_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_ISPR_SETPEND_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_ISPR_SETPEND_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_ISPR_SETPEND_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_ISPR_SETPEND_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_ISPR_SETPEND_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_ISPR_SETPEND_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_ISPR_SETPEND_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_ISPR_SETPEND_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_ISPR_SETPEND_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_ISPR_SETPEND_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_ISPR_SETPEND_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_ISPR_SETPEND_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_ISPR_SETPEND_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_ISPR_SETPEND_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_ISPR_SETPEND_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_ISPR_SETPEND_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_ISPR_SETPEND_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_ISPR_SETPEND_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_ISPR_SETPEND_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_ISPR_SETPEND_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_ISPR_SETPEND_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_ISPR_SETPEND_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_ISPR_SETPEND_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_ICPR register *******************/ -#define NVIC_ICPR_CLRPEND ((uint32_t)0xFFFFFFFF) /*!< Interrupt clear-pending bits */ -#define NVIC_ICPR_CLRPEND_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_ICPR_CLRPEND_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_ICPR_CLRPEND_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_ICPR_CLRPEND_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_ICPR_CLRPEND_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_ICPR_CLRPEND_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_ICPR_CLRPEND_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_ICPR_CLRPEND_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_ICPR_CLRPEND_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_ICPR_CLRPEND_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_ICPR_CLRPEND_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_ICPR_CLRPEND_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_ICPR_CLRPEND_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_ICPR_CLRPEND_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_ICPR_CLRPEND_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_ICPR_CLRPEND_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_ICPR_CLRPEND_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_ICPR_CLRPEND_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_ICPR_CLRPEND_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_ICPR_CLRPEND_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_ICPR_CLRPEND_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_ICPR_CLRPEND_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_ICPR_CLRPEND_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_ICPR_CLRPEND_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_ICPR_CLRPEND_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_ICPR_CLRPEND_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_ICPR_CLRPEND_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_ICPR_CLRPEND_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_ICPR_CLRPEND_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_ICPR_CLRPEND_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_ICPR_CLRPEND_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_ICPR_CLRPEND_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_IABR register *******************/ -#define NVIC_IABR_ACTIVE ((uint32_t)0xFFFFFFFF) /*!< Interrupt active flags */ -#define NVIC_IABR_ACTIVE_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_IABR_ACTIVE_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_IABR_ACTIVE_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_IABR_ACTIVE_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_IABR_ACTIVE_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_IABR_ACTIVE_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_IABR_ACTIVE_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_IABR_ACTIVE_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_IABR_ACTIVE_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_IABR_ACTIVE_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_IABR_ACTIVE_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_IABR_ACTIVE_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_IABR_ACTIVE_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_IABR_ACTIVE_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_IABR_ACTIVE_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_IABR_ACTIVE_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_IABR_ACTIVE_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_IABR_ACTIVE_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_IABR_ACTIVE_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_IABR_ACTIVE_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_IABR_ACTIVE_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_IABR_ACTIVE_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_IABR_ACTIVE_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_IABR_ACTIVE_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_IABR_ACTIVE_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_IABR_ACTIVE_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_IABR_ACTIVE_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_IABR_ACTIVE_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_IABR_ACTIVE_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_IABR_ACTIVE_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_IABR_ACTIVE_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_IABR_ACTIVE_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_PRI0 register *******************/ -#define NVIC_IPR0_PRI_0 ((uint32_t)0x000000FF) /*!< Priority of interrupt 0 */ -#define NVIC_IPR0_PRI_1 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 1 */ -#define NVIC_IPR0_PRI_2 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 2 */ -#define NVIC_IPR0_PRI_3 ((uint32_t)0xFF000000) /*!< Priority of interrupt 3 */ - -/****************** Bit definition for NVIC_PRI1 register *******************/ -#define NVIC_IPR1_PRI_4 ((uint32_t)0x000000FF) /*!< Priority of interrupt 4 */ -#define NVIC_IPR1_PRI_5 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 5 */ -#define NVIC_IPR1_PRI_6 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 6 */ -#define NVIC_IPR1_PRI_7 ((uint32_t)0xFF000000) /*!< Priority of interrupt 7 */ - -/****************** Bit definition for NVIC_PRI2 register *******************/ -#define NVIC_IPR2_PRI_8 ((uint32_t)0x000000FF) /*!< Priority of interrupt 8 */ -#define NVIC_IPR2_PRI_9 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 9 */ -#define NVIC_IPR2_PRI_10 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 10 */ -#define NVIC_IPR2_PRI_11 ((uint32_t)0xFF000000) /*!< Priority of interrupt 11 */ - -/****************** Bit definition for NVIC_PRI3 register *******************/ -#define NVIC_IPR3_PRI_12 ((uint32_t)0x000000FF) /*!< Priority of interrupt 12 */ -#define NVIC_IPR3_PRI_13 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 13 */ -#define NVIC_IPR3_PRI_14 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 14 */ -#define NVIC_IPR3_PRI_15 ((uint32_t)0xFF000000) /*!< Priority of interrupt 15 */ - -/****************** Bit definition for NVIC_PRI4 register *******************/ -#define NVIC_IPR4_PRI_16 ((uint32_t)0x000000FF) /*!< Priority of interrupt 16 */ -#define NVIC_IPR4_PRI_17 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 17 */ -#define NVIC_IPR4_PRI_18 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 18 */ -#define NVIC_IPR4_PRI_19 ((uint32_t)0xFF000000) /*!< Priority of interrupt 19 */ - -/****************** Bit definition for NVIC_PRI5 register *******************/ -#define NVIC_IPR5_PRI_20 ((uint32_t)0x000000FF) /*!< Priority of interrupt 20 */ -#define NVIC_IPR5_PRI_21 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 21 */ -#define NVIC_IPR5_PRI_22 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 22 */ -#define NVIC_IPR5_PRI_23 ((uint32_t)0xFF000000) /*!< Priority of interrupt 23 */ - -/****************** Bit definition for NVIC_PRI6 register *******************/ -#define NVIC_IPR6_PRI_24 ((uint32_t)0x000000FF) /*!< Priority of interrupt 24 */ -#define NVIC_IPR6_PRI_25 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 25 */ -#define NVIC_IPR6_PRI_26 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 26 */ -#define NVIC_IPR6_PRI_27 ((uint32_t)0xFF000000) /*!< Priority of interrupt 27 */ - -/****************** Bit definition for NVIC_PRI7 register *******************/ -#define NVIC_IPR7_PRI_28 ((uint32_t)0x000000FF) /*!< Priority of interrupt 28 */ -#define NVIC_IPR7_PRI_29 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 29 */ -#define NVIC_IPR7_PRI_30 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 30 */ -#define NVIC_IPR7_PRI_31 ((uint32_t)0xFF000000) /*!< Priority of interrupt 31 */ - -/****************** Bit definition for SCB_CPUID register *******************/ -#define SCB_CPUID_REVISION ((uint32_t)0x0000000F) /*!< Implementation defined revision number */ -#define SCB_CPUID_PARTNO ((uint32_t)0x0000FFF0) /*!< Number of processor within family */ -#define SCB_CPUID_Constant ((uint32_t)0x000F0000) /*!< Reads as 0x0F */ -#define SCB_CPUID_VARIANT ((uint32_t)0x00F00000) /*!< Implementation defined variant number */ -#define SCB_CPUID_IMPLEMENTER ((uint32_t)0xFF000000) /*!< Implementer code. ARM is 0x41 */ - -/******************* Bit definition for SCB_ICSR register *******************/ -#define SCB_ICSR_VECTACTIVE ((uint32_t)0x000001FF) /*!< Active ISR number field */ -#define SCB_ICSR_RETTOBASE ((uint32_t)0x00000800) /*!< All active exceptions minus the IPSR_current_exception yields the empty set */ -#define SCB_ICSR_VECTPENDING ((uint32_t)0x003FF000) /*!< Pending ISR number field */ -#define SCB_ICSR_ISRPENDING ((uint32_t)0x00400000) /*!< Interrupt pending flag */ -#define SCB_ICSR_ISRPREEMPT ((uint32_t)0x00800000) /*!< It indicates that a pending interrupt becomes active in the next running cycle */ -#define SCB_ICSR_PENDSTCLR ((uint32_t)0x02000000) /*!< Clear pending SysTick bit */ -#define SCB_ICSR_PENDSTSET ((uint32_t)0x04000000) /*!< Set pending SysTick bit */ -#define SCB_ICSR_PENDSVCLR ((uint32_t)0x08000000) /*!< Clear pending pendSV bit */ -#define SCB_ICSR_PENDSVSET ((uint32_t)0x10000000) /*!< Set pending pendSV bit */ -#define SCB_ICSR_NMIPENDSET ((uint32_t)0x80000000) /*!< Set pending NMI bit */ - -/******************* Bit definition for SCB_VTOR register *******************/ -#define SCB_VTOR_TBLOFF ((uint32_t)0x1FFFFF80) /*!< Vector table base offset field */ -#define SCB_VTOR_TBLBASE ((uint32_t)0x20000000) /*!< Table base in code(0) or RAM(1) */ - -/*!<***************** Bit definition for SCB_AIRCR register *******************/ -#define SCB_AIRCR_VECTRESET ((uint32_t)0x00000001) /*!< System Reset bit */ -#define SCB_AIRCR_VECTCLRACTIVE ((uint32_t)0x00000002) /*!< Clear active vector bit */ -#define SCB_AIRCR_SYSRESETREQ ((uint32_t)0x00000004) /*!< Requests chip control logic to generate a reset */ - -#define SCB_AIRCR_PRIGROUP ((uint32_t)0x00000700) /*!< PRIGROUP[2:0] bits (Priority group) */ -#define SCB_AIRCR_PRIGROUP_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define SCB_AIRCR_PRIGROUP_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define SCB_AIRCR_PRIGROUP_2 ((uint32_t)0x00000400) /*!< Bit 2 */ - -/* prority group configuration */ -#define SCB_AIRCR_PRIGROUP0 ((uint32_t)0x00000000) /*!< Priority group=0 (7 bits of pre-emption priority, 1 bit of subpriority) */ -#define SCB_AIRCR_PRIGROUP1 ((uint32_t)0x00000100) /*!< Priority group=1 (6 bits of pre-emption priority, 2 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP2 ((uint32_t)0x00000200) /*!< Priority group=2 (5 bits of pre-emption priority, 3 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP3 ((uint32_t)0x00000300) /*!< Priority group=3 (4 bits of pre-emption priority, 4 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP4 ((uint32_t)0x00000400) /*!< Priority group=4 (3 bits of pre-emption priority, 5 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP5 ((uint32_t)0x00000500) /*!< Priority group=5 (2 bits of pre-emption priority, 6 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP6 ((uint32_t)0x00000600) /*!< Priority group=6 (1 bit of pre-emption priority, 7 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP7 ((uint32_t)0x00000700) /*!< Priority group=7 (no pre-emption priority, 8 bits of subpriority) */ - -#define SCB_AIRCR_ENDIANESS ((uint32_t)0x00008000) /*!< Data endianness bit */ -#define SCB_AIRCR_VECTKEY ((uint32_t)0xFFFF0000) /*!< Register key (VECTKEY) - Reads as 0xFA05 (VECTKEYSTAT) */ - -/******************* Bit definition for SCB_SCR register ********************/ -#define SCB_SCR_SLEEPONEXIT ((uint8_t)0x02) /*!< Sleep on exit bit */ -#define SCB_SCR_SLEEPDEEP ((uint8_t)0x04) /*!< Sleep deep bit */ -#define SCB_SCR_SEVONPEND ((uint8_t)0x10) /*!< Wake up from WFE */ - -/******************** Bit definition for SCB_CCR register *******************/ -#define SCB_CCR_NONBASETHRDENA ((uint16_t)0x0001) /*!< Thread mode can be entered from any level in Handler mode by controlled return value */ -#define SCB_CCR_USERSETMPEND ((uint16_t)0x0002) /*!< Enables user code to write the Software Trigger Interrupt register to trigger (pend) a Main exception */ -#define SCB_CCR_UNALIGN_TRP ((uint16_t)0x0008) /*!< Trap for unaligned access */ -#define SCB_CCR_DIV_0_TRP ((uint16_t)0x0010) /*!< Trap on Divide by 0 */ -#define SCB_CCR_BFHFNMIGN ((uint16_t)0x0100) /*!< Handlers running at priority -1 and -2 */ -#define SCB_CCR_STKALIGN ((uint16_t)0x0200) /*!< On exception entry, the SP used prior to the exception is adjusted to be 8-byte aligned */ - -/******************* Bit definition for SCB_SHPR register ********************/ -#define SCB_SHPR_PRI_N ((uint32_t)0x000000FF) /*!< Priority of system handler 4,8, and 12. Mem Manage, reserved and Debug Monitor */ -#define SCB_SHPR_PRI_N1 ((uint32_t)0x0000FF00) /*!< Priority of system handler 5,9, and 13. Bus Fault, reserved and reserved */ -#define SCB_SHPR_PRI_N2 ((uint32_t)0x00FF0000) /*!< Priority of system handler 6,10, and 14. Usage Fault, reserved and PendSV */ -#define SCB_SHPR_PRI_N3 ((uint32_t)0xFF000000) /*!< Priority of system handler 7,11, and 15. Reserved, SVCall and SysTick */ - -/****************** Bit definition for SCB_SHCSR register *******************/ -#define SCB_SHCSR_MEMFAULTACT ((uint32_t)0x00000001) /*!< MemManage is active */ -#define SCB_SHCSR_BUSFAULTACT ((uint32_t)0x00000002) /*!< BusFault is active */ -#define SCB_SHCSR_USGFAULTACT ((uint32_t)0x00000008) /*!< UsageFault is active */ -#define SCB_SHCSR_SVCALLACT ((uint32_t)0x00000080) /*!< SVCall is active */ -#define SCB_SHCSR_MONITORACT ((uint32_t)0x00000100) /*!< Monitor is active */ -#define SCB_SHCSR_PENDSVACT ((uint32_t)0x00000400) /*!< PendSV is active */ -#define SCB_SHCSR_SYSTICKACT ((uint32_t)0x00000800) /*!< SysTick is active */ -#define SCB_SHCSR_USGFAULTPENDED ((uint32_t)0x00001000) /*!< Usage Fault is pended */ -#define SCB_SHCSR_MEMFAULTPENDED ((uint32_t)0x00002000) /*!< MemManage is pended */ -#define SCB_SHCSR_BUSFAULTPENDED ((uint32_t)0x00004000) /*!< Bus Fault is pended */ -#define SCB_SHCSR_SVCALLPENDED ((uint32_t)0x00008000) /*!< SVCall is pended */ -#define SCB_SHCSR_MEMFAULTENA ((uint32_t)0x00010000) /*!< MemManage enable */ -#define SCB_SHCSR_BUSFAULTENA ((uint32_t)0x00020000) /*!< Bus Fault enable */ -#define SCB_SHCSR_USGFAULTENA ((uint32_t)0x00040000) /*!< UsageFault enable */ - -/******************* Bit definition for SCB_CFSR register *******************/ -/*!< MFSR */ -#define SCB_CFSR_IACCVIOL ((uint32_t)0x00000001) /*!< Instruction access violation */ -#define SCB_CFSR_DACCVIOL ((uint32_t)0x00000002) /*!< Data access violation */ -#define SCB_CFSR_MUNSTKERR ((uint32_t)0x00000008) /*!< Unstacking error */ -#define SCB_CFSR_MSTKERR ((uint32_t)0x00000010) /*!< Stacking error */ -#define SCB_CFSR_MMARVALID ((uint32_t)0x00000080) /*!< Memory Manage Address Register address valid flag */ -/*!< BFSR */ -#define SCB_CFSR_IBUSERR ((uint32_t)0x00000100) /*!< Instruction bus error flag */ -#define SCB_CFSR_PRECISERR ((uint32_t)0x00000200) /*!< Precise data bus error */ -#define SCB_CFSR_IMPRECISERR ((uint32_t)0x00000400) /*!< Imprecise data bus error */ -#define SCB_CFSR_UNSTKERR ((uint32_t)0x00000800) /*!< Unstacking error */ -#define SCB_CFSR_STKERR ((uint32_t)0x00001000) /*!< Stacking error */ -#define SCB_CFSR_BFARVALID ((uint32_t)0x00008000) /*!< Bus Fault Address Register address valid flag */ -/*!< UFSR */ -#define SCB_CFSR_UNDEFINSTR ((uint32_t)0x00010000) /*!< The processor attempt to execute an undefined instruction */ -#define SCB_CFSR_INVSTATE ((uint32_t)0x00020000) /*!< Invalid combination of EPSR and instruction */ -#define SCB_CFSR_INVPC ((uint32_t)0x00040000) /*!< Attempt to load EXC_RETURN into pc illegally */ -#define SCB_CFSR_NOCP ((uint32_t)0x00080000) /*!< Attempt to use a coprocessor instruction */ -#define SCB_CFSR_UNALIGNED ((uint32_t)0x01000000) /*!< Fault occurs when there is an attempt to make an unaligned memory access */ -#define SCB_CFSR_DIVBYZERO ((uint32_t)0x02000000) /*!< Fault occurs when SDIV or DIV instruction is used with a divisor of 0 */ - -/******************* Bit definition for SCB_HFSR register *******************/ -#define SCB_HFSR_VECTTBL ((uint32_t)0x00000002) /*!< Fault occurs because of vector table read on exception processing */ -#define SCB_HFSR_FORCED ((uint32_t)0x40000000) /*!< Hard Fault activated when a configurable Fault was received and cannot activate */ -#define SCB_HFSR_DEBUGEVT ((uint32_t)0x80000000) /*!< Fault related to debug */ - -/******************* Bit definition for SCB_DFSR register *******************/ -#define SCB_DFSR_HALTED ((uint8_t)0x01) /*!< Halt request flag */ -#define SCB_DFSR_BKPT ((uint8_t)0x02) /*!< BKPT flag */ -#define SCB_DFSR_DWTTRAP ((uint8_t)0x04) /*!< Data Watchpoint and Trace (DWT) flag */ -#define SCB_DFSR_VCATCH ((uint8_t)0x08) /*!< Vector catch flag */ -#define SCB_DFSR_EXTERNAL ((uint8_t)0x10) /*!< External debug request flag */ - -/******************* Bit definition for SCB_MMFAR register ******************/ -#define SCB_MMFAR_ADDRESS ((uint32_t)0xFFFFFFFF) /*!< Mem Manage fault address field */ - -/******************* Bit definition for SCB_BFAR register *******************/ -#define SCB_BFAR_ADDRESS ((uint32_t)0xFFFFFFFF) /*!< Bus fault address field */ - -/******************* Bit definition for SCB_afsr register *******************/ -#define SCB_AFSR_IMPDEF ((uint32_t)0xFFFFFFFF) /*!< Implementation defined */ - -/******************************************************************************/ -/* */ -/* External Interrupt/Event Controller */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for EXTI_IMR register *******************/ -#define EXTI_IMR_MR0 ((uint32_t)0x00000001) /*!< Interrupt Mask on line 0 */ -#define EXTI_IMR_MR1 ((uint32_t)0x00000002) /*!< Interrupt Mask on line 1 */ -#define EXTI_IMR_MR2 ((uint32_t)0x00000004) /*!< Interrupt Mask on line 2 */ -#define EXTI_IMR_MR3 ((uint32_t)0x00000008) /*!< Interrupt Mask on line 3 */ -#define EXTI_IMR_MR4 ((uint32_t)0x00000010) /*!< Interrupt Mask on line 4 */ -#define EXTI_IMR_MR5 ((uint32_t)0x00000020) /*!< Interrupt Mask on line 5 */ -#define EXTI_IMR_MR6 ((uint32_t)0x00000040) /*!< Interrupt Mask on line 6 */ -#define EXTI_IMR_MR7 ((uint32_t)0x00000080) /*!< Interrupt Mask on line 7 */ -#define EXTI_IMR_MR8 ((uint32_t)0x00000100) /*!< Interrupt Mask on line 8 */ -#define EXTI_IMR_MR9 ((uint32_t)0x00000200) /*!< Interrupt Mask on line 9 */ -#define EXTI_IMR_MR10 ((uint32_t)0x00000400) /*!< Interrupt Mask on line 10 */ -#define EXTI_IMR_MR11 ((uint32_t)0x00000800) /*!< Interrupt Mask on line 11 */ -#define EXTI_IMR_MR12 ((uint32_t)0x00001000) /*!< Interrupt Mask on line 12 */ -#define EXTI_IMR_MR13 ((uint32_t)0x00002000) /*!< Interrupt Mask on line 13 */ -#define EXTI_IMR_MR14 ((uint32_t)0x00004000) /*!< Interrupt Mask on line 14 */ -#define EXTI_IMR_MR15 ((uint32_t)0x00008000) /*!< Interrupt Mask on line 15 */ -#define EXTI_IMR_MR16 ((uint32_t)0x00010000) /*!< Interrupt Mask on line 16 */ -#define EXTI_IMR_MR17 ((uint32_t)0x00020000) /*!< Interrupt Mask on line 17 */ -#define EXTI_IMR_MR18 ((uint32_t)0x00040000) /*!< Interrupt Mask on line 18 */ -#define EXTI_IMR_MR19 ((uint32_t)0x00080000) /*!< Interrupt Mask on line 19 */ - -/******************* Bit definition for EXTI_EMR register *******************/ -#define EXTI_EMR_MR0 ((uint32_t)0x00000001) /*!< Event Mask on line 0 */ -#define EXTI_EMR_MR1 ((uint32_t)0x00000002) /*!< Event Mask on line 1 */ -#define EXTI_EMR_MR2 ((uint32_t)0x00000004) /*!< Event Mask on line 2 */ -#define EXTI_EMR_MR3 ((uint32_t)0x00000008) /*!< Event Mask on line 3 */ -#define EXTI_EMR_MR4 ((uint32_t)0x00000010) /*!< Event Mask on line 4 */ -#define EXTI_EMR_MR5 ((uint32_t)0x00000020) /*!< Event Mask on line 5 */ -#define EXTI_EMR_MR6 ((uint32_t)0x00000040) /*!< Event Mask on line 6 */ -#define EXTI_EMR_MR7 ((uint32_t)0x00000080) /*!< Event Mask on line 7 */ -#define EXTI_EMR_MR8 ((uint32_t)0x00000100) /*!< Event Mask on line 8 */ -#define EXTI_EMR_MR9 ((uint32_t)0x00000200) /*!< Event Mask on line 9 */ -#define EXTI_EMR_MR10 ((uint32_t)0x00000400) /*!< Event Mask on line 10 */ -#define EXTI_EMR_MR11 ((uint32_t)0x00000800) /*!< Event Mask on line 11 */ -#define EXTI_EMR_MR12 ((uint32_t)0x00001000) /*!< Event Mask on line 12 */ -#define EXTI_EMR_MR13 ((uint32_t)0x00002000) /*!< Event Mask on line 13 */ -#define EXTI_EMR_MR14 ((uint32_t)0x00004000) /*!< Event Mask on line 14 */ -#define EXTI_EMR_MR15 ((uint32_t)0x00008000) /*!< Event Mask on line 15 */ -#define EXTI_EMR_MR16 ((uint32_t)0x00010000) /*!< Event Mask on line 16 */ -#define EXTI_EMR_MR17 ((uint32_t)0x00020000) /*!< Event Mask on line 17 */ -#define EXTI_EMR_MR18 ((uint32_t)0x00040000) /*!< Event Mask on line 18 */ -#define EXTI_EMR_MR19 ((uint32_t)0x00080000) /*!< Event Mask on line 19 */ - -/****************** Bit definition for EXTI_RTSR register *******************/ -#define EXTI_RTSR_TR0 ((uint32_t)0x00000001) /*!< Rising trigger event configuration bit of line 0 */ -#define EXTI_RTSR_TR1 ((uint32_t)0x00000002) /*!< Rising trigger event configuration bit of line 1 */ -#define EXTI_RTSR_TR2 ((uint32_t)0x00000004) /*!< Rising trigger event configuration bit of line 2 */ -#define EXTI_RTSR_TR3 ((uint32_t)0x00000008) /*!< Rising trigger event configuration bit of line 3 */ -#define EXTI_RTSR_TR4 ((uint32_t)0x00000010) /*!< Rising trigger event configuration bit of line 4 */ -#define EXTI_RTSR_TR5 ((uint32_t)0x00000020) /*!< Rising trigger event configuration bit of line 5 */ -#define EXTI_RTSR_TR6 ((uint32_t)0x00000040) /*!< Rising trigger event configuration bit of line 6 */ -#define EXTI_RTSR_TR7 ((uint32_t)0x00000080) /*!< Rising trigger event configuration bit of line 7 */ -#define EXTI_RTSR_TR8 ((uint32_t)0x00000100) /*!< Rising trigger event configuration bit of line 8 */ -#define EXTI_RTSR_TR9 ((uint32_t)0x00000200) /*!< Rising trigger event configuration bit of line 9 */ -#define EXTI_RTSR_TR10 ((uint32_t)0x00000400) /*!< Rising trigger event configuration bit of line 10 */ -#define EXTI_RTSR_TR11 ((uint32_t)0x00000800) /*!< Rising trigger event configuration bit of line 11 */ -#define EXTI_RTSR_TR12 ((uint32_t)0x00001000) /*!< Rising trigger event configuration bit of line 12 */ -#define EXTI_RTSR_TR13 ((uint32_t)0x00002000) /*!< Rising trigger event configuration bit of line 13 */ -#define EXTI_RTSR_TR14 ((uint32_t)0x00004000) /*!< Rising trigger event configuration bit of line 14 */ -#define EXTI_RTSR_TR15 ((uint32_t)0x00008000) /*!< Rising trigger event configuration bit of line 15 */ -#define EXTI_RTSR_TR16 ((uint32_t)0x00010000) /*!< Rising trigger event configuration bit of line 16 */ -#define EXTI_RTSR_TR17 ((uint32_t)0x00020000) /*!< Rising trigger event configuration bit of line 17 */ -#define EXTI_RTSR_TR18 ((uint32_t)0x00040000) /*!< Rising trigger event configuration bit of line 18 */ -#define EXTI_RTSR_TR19 ((uint32_t)0x00080000) /*!< Rising trigger event configuration bit of line 19 */ - -/****************** Bit definition for EXTI_FTSR register *******************/ -#define EXTI_FTSR_TR0 ((uint32_t)0x00000001) /*!< Falling trigger event configuration bit of line 0 */ -#define EXTI_FTSR_TR1 ((uint32_t)0x00000002) /*!< Falling trigger event configuration bit of line 1 */ -#define EXTI_FTSR_TR2 ((uint32_t)0x00000004) /*!< Falling trigger event configuration bit of line 2 */ -#define EXTI_FTSR_TR3 ((uint32_t)0x00000008) /*!< Falling trigger event configuration bit of line 3 */ -#define EXTI_FTSR_TR4 ((uint32_t)0x00000010) /*!< Falling trigger event configuration bit of line 4 */ -#define EXTI_FTSR_TR5 ((uint32_t)0x00000020) /*!< Falling trigger event configuration bit of line 5 */ -#define EXTI_FTSR_TR6 ((uint32_t)0x00000040) /*!< Falling trigger event configuration bit of line 6 */ -#define EXTI_FTSR_TR7 ((uint32_t)0x00000080) /*!< Falling trigger event configuration bit of line 7 */ -#define EXTI_FTSR_TR8 ((uint32_t)0x00000100) /*!< Falling trigger event configuration bit of line 8 */ -#define EXTI_FTSR_TR9 ((uint32_t)0x00000200) /*!< Falling trigger event configuration bit of line 9 */ -#define EXTI_FTSR_TR10 ((uint32_t)0x00000400) /*!< Falling trigger event configuration bit of line 10 */ -#define EXTI_FTSR_TR11 ((uint32_t)0x00000800) /*!< Falling trigger event configuration bit of line 11 */ -#define EXTI_FTSR_TR12 ((uint32_t)0x00001000) /*!< Falling trigger event configuration bit of line 12 */ -#define EXTI_FTSR_TR13 ((uint32_t)0x00002000) /*!< Falling trigger event configuration bit of line 13 */ -#define EXTI_FTSR_TR14 ((uint32_t)0x00004000) /*!< Falling trigger event configuration bit of line 14 */ -#define EXTI_FTSR_TR15 ((uint32_t)0x00008000) /*!< Falling trigger event configuration bit of line 15 */ -#define EXTI_FTSR_TR16 ((uint32_t)0x00010000) /*!< Falling trigger event configuration bit of line 16 */ -#define EXTI_FTSR_TR17 ((uint32_t)0x00020000) /*!< Falling trigger event configuration bit of line 17 */ -#define EXTI_FTSR_TR18 ((uint32_t)0x00040000) /*!< Falling trigger event configuration bit of line 18 */ -#define EXTI_FTSR_TR19 ((uint32_t)0x00080000) /*!< Falling trigger event configuration bit of line 19 */ - -/****************** Bit definition for EXTI_SWIER register ******************/ -#define EXTI_SWIER_SWIER0 ((uint32_t)0x00000001) /*!< Software Interrupt on line 0 */ -#define EXTI_SWIER_SWIER1 ((uint32_t)0x00000002) /*!< Software Interrupt on line 1 */ -#define EXTI_SWIER_SWIER2 ((uint32_t)0x00000004) /*!< Software Interrupt on line 2 */ -#define EXTI_SWIER_SWIER3 ((uint32_t)0x00000008) /*!< Software Interrupt on line 3 */ -#define EXTI_SWIER_SWIER4 ((uint32_t)0x00000010) /*!< Software Interrupt on line 4 */ -#define EXTI_SWIER_SWIER5 ((uint32_t)0x00000020) /*!< Software Interrupt on line 5 */ -#define EXTI_SWIER_SWIER6 ((uint32_t)0x00000040) /*!< Software Interrupt on line 6 */ -#define EXTI_SWIER_SWIER7 ((uint32_t)0x00000080) /*!< Software Interrupt on line 7 */ -#define EXTI_SWIER_SWIER8 ((uint32_t)0x00000100) /*!< Software Interrupt on line 8 */ -#define EXTI_SWIER_SWIER9 ((uint32_t)0x00000200) /*!< Software Interrupt on line 9 */ -#define EXTI_SWIER_SWIER10 ((uint32_t)0x00000400) /*!< Software Interrupt on line 10 */ -#define EXTI_SWIER_SWIER11 ((uint32_t)0x00000800) /*!< Software Interrupt on line 11 */ -#define EXTI_SWIER_SWIER12 ((uint32_t)0x00001000) /*!< Software Interrupt on line 12 */ -#define EXTI_SWIER_SWIER13 ((uint32_t)0x00002000) /*!< Software Interrupt on line 13 */ -#define EXTI_SWIER_SWIER14 ((uint32_t)0x00004000) /*!< Software Interrupt on line 14 */ -#define EXTI_SWIER_SWIER15 ((uint32_t)0x00008000) /*!< Software Interrupt on line 15 */ -#define EXTI_SWIER_SWIER16 ((uint32_t)0x00010000) /*!< Software Interrupt on line 16 */ -#define EXTI_SWIER_SWIER17 ((uint32_t)0x00020000) /*!< Software Interrupt on line 17 */ -#define EXTI_SWIER_SWIER18 ((uint32_t)0x00040000) /*!< Software Interrupt on line 18 */ -#define EXTI_SWIER_SWIER19 ((uint32_t)0x00080000) /*!< Software Interrupt on line 19 */ - -/******************* Bit definition for EXTI_PR register ********************/ -#define EXTI_PR_PR0 ((uint32_t)0x00000001) /*!< Pending bit for line 0 */ -#define EXTI_PR_PR1 ((uint32_t)0x00000002) /*!< Pending bit for line 1 */ -#define EXTI_PR_PR2 ((uint32_t)0x00000004) /*!< Pending bit for line 2 */ -#define EXTI_PR_PR3 ((uint32_t)0x00000008) /*!< Pending bit for line 3 */ -#define EXTI_PR_PR4 ((uint32_t)0x00000010) /*!< Pending bit for line 4 */ -#define EXTI_PR_PR5 ((uint32_t)0x00000020) /*!< Pending bit for line 5 */ -#define EXTI_PR_PR6 ((uint32_t)0x00000040) /*!< Pending bit for line 6 */ -#define EXTI_PR_PR7 ((uint32_t)0x00000080) /*!< Pending bit for line 7 */ -#define EXTI_PR_PR8 ((uint32_t)0x00000100) /*!< Pending bit for line 8 */ -#define EXTI_PR_PR9 ((uint32_t)0x00000200) /*!< Pending bit for line 9 */ -#define EXTI_PR_PR10 ((uint32_t)0x00000400) /*!< Pending bit for line 10 */ -#define EXTI_PR_PR11 ((uint32_t)0x00000800) /*!< Pending bit for line 11 */ -#define EXTI_PR_PR12 ((uint32_t)0x00001000) /*!< Pending bit for line 12 */ -#define EXTI_PR_PR13 ((uint32_t)0x00002000) /*!< Pending bit for line 13 */ -#define EXTI_PR_PR14 ((uint32_t)0x00004000) /*!< Pending bit for line 14 */ -#define EXTI_PR_PR15 ((uint32_t)0x00008000) /*!< Pending bit for line 15 */ -#define EXTI_PR_PR16 ((uint32_t)0x00010000) /*!< Pending bit for line 16 */ -#define EXTI_PR_PR17 ((uint32_t)0x00020000) /*!< Pending bit for line 17 */ -#define EXTI_PR_PR18 ((uint32_t)0x00040000) /*!< Pending bit for line 18 */ -#define EXTI_PR_PR19 ((uint32_t)0x00080000) /*!< Pending bit for line 19 */ - -/******************************************************************************/ -/* */ -/* DMA Controller */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for DMA_ISR register ********************/ -#define DMA_ISR_GIF1 ((uint32_t)0x00000001) /*!< Channel 1 Global interrupt flag */ -#define DMA_ISR_TCIF1 ((uint32_t)0x00000002) /*!< Channel 1 Transfer Complete flag */ -#define DMA_ISR_HTIF1 ((uint32_t)0x00000004) /*!< Channel 1 Half Transfer flag */ -#define DMA_ISR_TEIF1 ((uint32_t)0x00000008) /*!< Channel 1 Transfer Error flag */ -#define DMA_ISR_GIF2 ((uint32_t)0x00000010) /*!< Channel 2 Global interrupt flag */ -#define DMA_ISR_TCIF2 ((uint32_t)0x00000020) /*!< Channel 2 Transfer Complete flag */ -#define DMA_ISR_HTIF2 ((uint32_t)0x00000040) /*!< Channel 2 Half Transfer flag */ -#define DMA_ISR_TEIF2 ((uint32_t)0x00000080) /*!< Channel 2 Transfer Error flag */ -#define DMA_ISR_GIF3 ((uint32_t)0x00000100) /*!< Channel 3 Global interrupt flag */ -#define DMA_ISR_TCIF3 ((uint32_t)0x00000200) /*!< Channel 3 Transfer Complete flag */ -#define DMA_ISR_HTIF3 ((uint32_t)0x00000400) /*!< Channel 3 Half Transfer flag */ -#define DMA_ISR_TEIF3 ((uint32_t)0x00000800) /*!< Channel 3 Transfer Error flag */ -#define DMA_ISR_GIF4 ((uint32_t)0x00001000) /*!< Channel 4 Global interrupt flag */ -#define DMA_ISR_TCIF4 ((uint32_t)0x00002000) /*!< Channel 4 Transfer Complete flag */ -#define DMA_ISR_HTIF4 ((uint32_t)0x00004000) /*!< Channel 4 Half Transfer flag */ -#define DMA_ISR_TEIF4 ((uint32_t)0x00008000) /*!< Channel 4 Transfer Error flag */ -#define DMA_ISR_GIF5 ((uint32_t)0x00010000) /*!< Channel 5 Global interrupt flag */ -#define DMA_ISR_TCIF5 ((uint32_t)0x00020000) /*!< Channel 5 Transfer Complete flag */ -#define DMA_ISR_HTIF5 ((uint32_t)0x00040000) /*!< Channel 5 Half Transfer flag */ -#define DMA_ISR_TEIF5 ((uint32_t)0x00080000) /*!< Channel 5 Transfer Error flag */ -#define DMA_ISR_GIF6 ((uint32_t)0x00100000) /*!< Channel 6 Global interrupt flag */ -#define DMA_ISR_TCIF6 ((uint32_t)0x00200000) /*!< Channel 6 Transfer Complete flag */ -#define DMA_ISR_HTIF6 ((uint32_t)0x00400000) /*!< Channel 6 Half Transfer flag */ -#define DMA_ISR_TEIF6 ((uint32_t)0x00800000) /*!< Channel 6 Transfer Error flag */ -#define DMA_ISR_GIF7 ((uint32_t)0x01000000) /*!< Channel 7 Global interrupt flag */ -#define DMA_ISR_TCIF7 ((uint32_t)0x02000000) /*!< Channel 7 Transfer Complete flag */ -#define DMA_ISR_HTIF7 ((uint32_t)0x04000000) /*!< Channel 7 Half Transfer flag */ -#define DMA_ISR_TEIF7 ((uint32_t)0x08000000) /*!< Channel 7 Transfer Error flag */ - -/******************* Bit definition for DMA_IFCR register *******************/ -#define DMA_IFCR_CGIF1 ((uint32_t)0x00000001) /*!< Channel 1 Global interrupt clear */ -#define DMA_IFCR_CTCIF1 ((uint32_t)0x00000002) /*!< Channel 1 Transfer Complete clear */ -#define DMA_IFCR_CHTIF1 ((uint32_t)0x00000004) /*!< Channel 1 Half Transfer clear */ -#define DMA_IFCR_CTEIF1 ((uint32_t)0x00000008) /*!< Channel 1 Transfer Error clear */ -#define DMA_IFCR_CGIF2 ((uint32_t)0x00000010) /*!< Channel 2 Global interrupt clear */ -#define DMA_IFCR_CTCIF2 ((uint32_t)0x00000020) /*!< Channel 2 Transfer Complete clear */ -#define DMA_IFCR_CHTIF2 ((uint32_t)0x00000040) /*!< Channel 2 Half Transfer clear */ -#define DMA_IFCR_CTEIF2 ((uint32_t)0x00000080) /*!< Channel 2 Transfer Error clear */ -#define DMA_IFCR_CGIF3 ((uint32_t)0x00000100) /*!< Channel 3 Global interrupt clear */ -#define DMA_IFCR_CTCIF3 ((uint32_t)0x00000200) /*!< Channel 3 Transfer Complete clear */ -#define DMA_IFCR_CHTIF3 ((uint32_t)0x00000400) /*!< Channel 3 Half Transfer clear */ -#define DMA_IFCR_CTEIF3 ((uint32_t)0x00000800) /*!< Channel 3 Transfer Error clear */ -#define DMA_IFCR_CGIF4 ((uint32_t)0x00001000) /*!< Channel 4 Global interrupt clear */ -#define DMA_IFCR_CTCIF4 ((uint32_t)0x00002000) /*!< Channel 4 Transfer Complete clear */ -#define DMA_IFCR_CHTIF4 ((uint32_t)0x00004000) /*!< Channel 4 Half Transfer clear */ -#define DMA_IFCR_CTEIF4 ((uint32_t)0x00008000) /*!< Channel 4 Transfer Error clear */ -#define DMA_IFCR_CGIF5 ((uint32_t)0x00010000) /*!< Channel 5 Global interrupt clear */ -#define DMA_IFCR_CTCIF5 ((uint32_t)0x00020000) /*!< Channel 5 Transfer Complete clear */ -#define DMA_IFCR_CHTIF5 ((uint32_t)0x00040000) /*!< Channel 5 Half Transfer clear */ -#define DMA_IFCR_CTEIF5 ((uint32_t)0x00080000) /*!< Channel 5 Transfer Error clear */ -#define DMA_IFCR_CGIF6 ((uint32_t)0x00100000) /*!< Channel 6 Global interrupt clear */ -#define DMA_IFCR_CTCIF6 ((uint32_t)0x00200000) /*!< Channel 6 Transfer Complete clear */ -#define DMA_IFCR_CHTIF6 ((uint32_t)0x00400000) /*!< Channel 6 Half Transfer clear */ -#define DMA_IFCR_CTEIF6 ((uint32_t)0x00800000) /*!< Channel 6 Transfer Error clear */ -#define DMA_IFCR_CGIF7 ((uint32_t)0x01000000) /*!< Channel 7 Global interrupt clear */ -#define DMA_IFCR_CTCIF7 ((uint32_t)0x02000000) /*!< Channel 7 Transfer Complete clear */ -#define DMA_IFCR_CHTIF7 ((uint32_t)0x04000000) /*!< Channel 7 Half Transfer clear */ -#define DMA_IFCR_CTEIF7 ((uint32_t)0x08000000) /*!< Channel 7 Transfer Error clear */ - -/******************* Bit definition for DMA_CCR1 register *******************/ -#define DMA_CCR1_EN ((uint16_t)0x0001) /*!< Channel enable*/ -#define DMA_CCR1_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR1_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR1_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR1_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR1_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR1_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR1_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR1_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR1_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR1_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR1_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR1_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR1_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR1_PL ((uint16_t)0x3000) /*!< PL[1:0] bits(Channel Priority level) */ -#define DMA_CCR1_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR1_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR1_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/******************* Bit definition for DMA_CCR2 register *******************/ -#define DMA_CCR2_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR2_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR2_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR2_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR2_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR2_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR2_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR2_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR2_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR2_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR2_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR2_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR2_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR2_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR2_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR2_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR2_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR2_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/******************* Bit definition for DMA_CCR3 register *******************/ -#define DMA_CCR3_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR3_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR3_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR3_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR3_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR3_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR3_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR3_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR3_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR3_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR3_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR3_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR3_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR3_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR3_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR3_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR3_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR3_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/*!<****************** Bit definition for DMA_CCR4 register *******************/ -#define DMA_CCR4_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR4_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR4_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR4_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR4_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR4_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR4_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR4_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR4_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR4_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR4_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR4_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR4_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR4_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR4_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR4_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR4_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR4_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/****************** Bit definition for DMA_CCR5 register *******************/ -#define DMA_CCR5_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR5_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR5_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR5_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR5_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR5_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR5_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR5_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR5_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR5_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR5_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR5_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR5_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR5_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR5_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR5_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR5_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR5_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode enable */ - -/******************* Bit definition for DMA_CCR6 register *******************/ -#define DMA_CCR6_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR6_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR6_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR6_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR6_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR6_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR6_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR6_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR6_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR6_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR6_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR6_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR6_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR6_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR6_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR6_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR6_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR6_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/******************* Bit definition for DMA_CCR7 register *******************/ -#define DMA_CCR7_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR7_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR7_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR7_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR7_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR7_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR7_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR7_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR7_PSIZE , ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR7_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR7_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR7_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR7_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR7_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR7_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR7_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR7_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR7_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode enable */ - -/****************** Bit definition for DMA_CNDTR1 register ******************/ -#define DMA_CNDTR1_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR2 register ******************/ -#define DMA_CNDTR2_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR3 register ******************/ -#define DMA_CNDTR3_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR4 register ******************/ -#define DMA_CNDTR4_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR5 register ******************/ -#define DMA_CNDTR5_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR6 register ******************/ -#define DMA_CNDTR6_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR7 register ******************/ -#define DMA_CNDTR7_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CPAR1 register *******************/ -#define DMA_CPAR1_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CPAR2 register *******************/ -#define DMA_CPAR2_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CPAR3 register *******************/ -#define DMA_CPAR3_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - - -/****************** Bit definition for DMA_CPAR4 register *******************/ -#define DMA_CPAR4_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CPAR5 register *******************/ -#define DMA_CPAR5_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CPAR6 register *******************/ -#define DMA_CPAR6_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - - -/****************** Bit definition for DMA_CPAR7 register *******************/ -#define DMA_CPAR7_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CMAR1 register *******************/ -#define DMA_CMAR1_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR2 register *******************/ -#define DMA_CMAR2_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR3 register *******************/ -#define DMA_CMAR3_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - - -/****************** Bit definition for DMA_CMAR4 register *******************/ -#define DMA_CMAR4_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR5 register *******************/ -#define DMA_CMAR5_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR6 register *******************/ -#define DMA_CMAR6_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR7 register *******************/ -#define DMA_CMAR7_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/******************************************************************************/ -/* */ -/* Analog to Digital Converter */ -/* */ -/******************************************************************************/ - -/******************** Bit definition for ADC_SR register ********************/ -#define ADC_SR_AWD ((uint8_t)0x01) /*!< Analog watchdog flag */ -#define ADC_SR_EOC ((uint8_t)0x02) /*!< End of conversion */ -#define ADC_SR_JEOC ((uint8_t)0x04) /*!< Injected channel end of conversion */ -#define ADC_SR_JSTRT ((uint8_t)0x08) /*!< Injected channel Start flag */ -#define ADC_SR_STRT ((uint8_t)0x10) /*!< Regular channel Start flag */ - -/******************* Bit definition for ADC_CR1 register ********************/ -#define ADC_CR1_AWDCH ((uint32_t)0x0000001F) /*!< AWDCH[4:0] bits (Analog watchdog channel select bits) */ -#define ADC_CR1_AWDCH_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_CR1_AWDCH_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_CR1_AWDCH_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_CR1_AWDCH_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_CR1_AWDCH_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_CR1_EOCIE ((uint32_t)0x00000020) /*!< Interrupt enable for EOC */ -#define ADC_CR1_AWDIE ((uint32_t)0x00000040) /*!< Analog Watchdog interrupt enable */ -#define ADC_CR1_JEOCIE ((uint32_t)0x00000080) /*!< Interrupt enable for injected channels */ -#define ADC_CR1_SCAN ((uint32_t)0x00000100) /*!< Scan mode */ -#define ADC_CR1_AWDSGL ((uint32_t)0x00000200) /*!< Enable the watchdog on a single channel in scan mode */ -#define ADC_CR1_JAUTO ((uint32_t)0x00000400) /*!< Automatic injected group conversion */ -#define ADC_CR1_DISCEN ((uint32_t)0x00000800) /*!< Discontinuous mode on regular channels */ -#define ADC_CR1_JDISCEN ((uint32_t)0x00001000) /*!< Discontinuous mode on injected channels */ - -#define ADC_CR1_DISCNUM ((uint32_t)0x0000E000) /*!< DISCNUM[2:0] bits (Discontinuous mode channel count) */ -#define ADC_CR1_DISCNUM_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define ADC_CR1_DISCNUM_1 ((uint32_t)0x00004000) /*!< Bit 1 */ -#define ADC_CR1_DISCNUM_2 ((uint32_t)0x00008000) /*!< Bit 2 */ - -#define ADC_CR1_DUALMOD ((uint32_t)0x000F0000) /*!< DUALMOD[3:0] bits (Dual mode selection) */ -#define ADC_CR1_DUALMOD_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define ADC_CR1_DUALMOD_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define ADC_CR1_DUALMOD_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define ADC_CR1_DUALMOD_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define ADC_CR1_JAWDEN ((uint32_t)0x00400000) /*!< Analog watchdog enable on injected channels */ -#define ADC_CR1_AWDEN ((uint32_t)0x00800000) /*!< Analog watchdog enable on regular channels */ - - -/******************* Bit definition for ADC_CR2 register ********************/ -#define ADC_CR2_ADON ((uint32_t)0x00000001) /*!< A/D Converter ON / OFF */ -#define ADC_CR2_CONT ((uint32_t)0x00000002) /*!< Continuous Conversion */ -#define ADC_CR2_CAL ((uint32_t)0x00000004) /*!< A/D Calibration */ -#define ADC_CR2_RSTCAL ((uint32_t)0x00000008) /*!< Reset Calibration */ -#define ADC_CR2_DMA ((uint32_t)0x00000100) /*!< Direct Memory access mode */ -#define ADC_CR2_ALIGN ((uint32_t)0x00000800) /*!< Data Alignment */ - -#define ADC_CR2_JEXTSEL ((uint32_t)0x00007000) /*!< JEXTSEL[2:0] bits (External event select for injected group) */ -#define ADC_CR2_JEXTSEL_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define ADC_CR2_JEXTSEL_1 ((uint32_t)0x00002000) /*!< Bit 1 */ -#define ADC_CR2_JEXTSEL_2 ((uint32_t)0x00004000) /*!< Bit 2 */ - -#define ADC_CR2_JEXTTRIG ((uint32_t)0x00008000) /*!< External Trigger Conversion mode for injected channels */ - -#define ADC_CR2_EXTSEL ((uint32_t)0x000E0000) /*!< EXTSEL[2:0] bits (External Event Select for regular group) */ -#define ADC_CR2_EXTSEL_0 ((uint32_t)0x00020000) /*!< Bit 0 */ -#define ADC_CR2_EXTSEL_1 ((uint32_t)0x00040000) /*!< Bit 1 */ -#define ADC_CR2_EXTSEL_2 ((uint32_t)0x00080000) /*!< Bit 2 */ - -#define ADC_CR2_EXTTRIG ((uint32_t)0x00100000) /*!< External Trigger Conversion mode for regular channels */ -#define ADC_CR2_JSWSTART ((uint32_t)0x00200000) /*!< Start Conversion of injected channels */ -#define ADC_CR2_SWSTART ((uint32_t)0x00400000) /*!< Start Conversion of regular channels */ -#define ADC_CR2_TSVREFE ((uint32_t)0x00800000) /*!< Temperature Sensor and VREFINT Enable */ - -/****************** Bit definition for ADC_SMPR1 register *******************/ -#define ADC_SMPR1_SMP10 ((uint32_t)0x00000007) /*!< SMP10[2:0] bits (Channel 10 Sample time selection) */ -#define ADC_SMPR1_SMP10_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SMPR1_SMP10_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SMPR1_SMP10_2 ((uint32_t)0x00000004) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP11 ((uint32_t)0x00000038) /*!< SMP11[2:0] bits (Channel 11 Sample time selection) */ -#define ADC_SMPR1_SMP11_0 ((uint32_t)0x00000008) /*!< Bit 0 */ -#define ADC_SMPR1_SMP11_1 ((uint32_t)0x00000010) /*!< Bit 1 */ -#define ADC_SMPR1_SMP11_2 ((uint32_t)0x00000020) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP12 ((uint32_t)0x000001C0) /*!< SMP12[2:0] bits (Channel 12 Sample time selection) */ -#define ADC_SMPR1_SMP12_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define ADC_SMPR1_SMP12_1 ((uint32_t)0x00000080) /*!< Bit 1 */ -#define ADC_SMPR1_SMP12_2 ((uint32_t)0x00000100) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP13 ((uint32_t)0x00000E00) /*!< SMP13[2:0] bits (Channel 13 Sample time selection) */ -#define ADC_SMPR1_SMP13_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define ADC_SMPR1_SMP13_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define ADC_SMPR1_SMP13_2 ((uint32_t)0x00000800) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP14 ((uint32_t)0x00007000) /*!< SMP14[2:0] bits (Channel 14 Sample time selection) */ -#define ADC_SMPR1_SMP14_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define ADC_SMPR1_SMP14_1 ((uint32_t)0x00002000) /*!< Bit 1 */ -#define ADC_SMPR1_SMP14_2 ((uint32_t)0x00004000) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP15 ((uint32_t)0x00038000) /*!< SMP15[2:0] bits (Channel 15 Sample time selection) */ -#define ADC_SMPR1_SMP15_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SMPR1_SMP15_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SMPR1_SMP15_2 ((uint32_t)0x00020000) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP16 ((uint32_t)0x001C0000) /*!< SMP16[2:0] bits (Channel 16 Sample time selection) */ -#define ADC_SMPR1_SMP16_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define ADC_SMPR1_SMP16_1 ((uint32_t)0x00080000) /*!< Bit 1 */ -#define ADC_SMPR1_SMP16_2 ((uint32_t)0x00100000) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP17 ((uint32_t)0x00E00000) /*!< SMP17[2:0] bits (Channel 17 Sample time selection) */ -#define ADC_SMPR1_SMP17_0 ((uint32_t)0x00200000) /*!< Bit 0 */ -#define ADC_SMPR1_SMP17_1 ((uint32_t)0x00400000) /*!< Bit 1 */ -#define ADC_SMPR1_SMP17_2 ((uint32_t)0x00800000) /*!< Bit 2 */ - -/****************** Bit definition for ADC_SMPR2 register *******************/ -#define ADC_SMPR2_SMP0 ((uint32_t)0x00000007) /*!< SMP0[2:0] bits (Channel 0 Sample time selection) */ -#define ADC_SMPR2_SMP0_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SMPR2_SMP0_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SMPR2_SMP0_2 ((uint32_t)0x00000004) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP1 ((uint32_t)0x00000038) /*!< SMP1[2:0] bits (Channel 1 Sample time selection) */ -#define ADC_SMPR2_SMP1_0 ((uint32_t)0x00000008) /*!< Bit 0 */ -#define ADC_SMPR2_SMP1_1 ((uint32_t)0x00000010) /*!< Bit 1 */ -#define ADC_SMPR2_SMP1_2 ((uint32_t)0x00000020) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP2 ((uint32_t)0x000001C0) /*!< SMP2[2:0] bits (Channel 2 Sample time selection) */ -#define ADC_SMPR2_SMP2_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define ADC_SMPR2_SMP2_1 ((uint32_t)0x00000080) /*!< Bit 1 */ -#define ADC_SMPR2_SMP2_2 ((uint32_t)0x00000100) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP3 ((uint32_t)0x00000E00) /*!< SMP3[2:0] bits (Channel 3 Sample time selection) */ -#define ADC_SMPR2_SMP3_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define ADC_SMPR2_SMP3_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define ADC_SMPR2_SMP3_2 ((uint32_t)0x00000800) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP4 ((uint32_t)0x00007000) /*!< SMP4[2:0] bits (Channel 4 Sample time selection) */ -#define ADC_SMPR2_SMP4_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP4_1 ((uint32_t)0x00002000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP4_2 ((uint32_t)0x00004000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP5 ((uint32_t)0x00038000) /*!< SMP5[2:0] bits (Channel 5 Sample time selection) */ -#define ADC_SMPR2_SMP5_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP5_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP5_2 ((uint32_t)0x00020000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP6 ((uint32_t)0x001C0000) /*!< SMP6[2:0] bits (Channel 6 Sample time selection) */ -#define ADC_SMPR2_SMP6_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP6_1 ((uint32_t)0x00080000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP6_2 ((uint32_t)0x00100000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP7 ((uint32_t)0x00E00000) /*!< SMP7[2:0] bits (Channel 7 Sample time selection) */ -#define ADC_SMPR2_SMP7_0 ((uint32_t)0x00200000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP7_1 ((uint32_t)0x00400000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP7_2 ((uint32_t)0x00800000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP8 ((uint32_t)0x07000000) /*!< SMP8[2:0] bits (Channel 8 Sample time selection) */ -#define ADC_SMPR2_SMP8_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP8_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP8_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP9 ((uint32_t)0x38000000) /*!< SMP9[2:0] bits (Channel 9 Sample time selection) */ -#define ADC_SMPR2_SMP9_0 ((uint32_t)0x08000000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP9_1 ((uint32_t)0x10000000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP9_2 ((uint32_t)0x20000000) /*!< Bit 2 */ - -/****************** Bit definition for ADC_JOFR1 register *******************/ -#define ADC_JOFR1_JOFFSET1 ((uint16_t)0x0FFF) /*!< Data offset for injected channel 1 */ - -/****************** Bit definition for ADC_JOFR2 register *******************/ -#define ADC_JOFR2_JOFFSET2 ((uint16_t)0x0FFF) /*!< Data offset for injected channel 2 */ - -/****************** Bit definition for ADC_JOFR3 register *******************/ -#define ADC_JOFR3_JOFFSET3 ((uint16_t)0x0FFF) /*!< Data offset for injected channel 3 */ - -/****************** Bit definition for ADC_JOFR4 register *******************/ -#define ADC_JOFR4_JOFFSET4 ((uint16_t)0x0FFF) /*!< Data offset for injected channel 4 */ - -/******************* Bit definition for ADC_HTR register ********************/ -#define ADC_HTR_HT ((uint16_t)0x0FFF) /*!< Analog watchdog high threshold */ - -/******************* Bit definition for ADC_LTR register ********************/ -#define ADC_LTR_LT ((uint16_t)0x0FFF) /*!< Analog watchdog low threshold */ - -/******************* Bit definition for ADC_SQR1 register *******************/ -#define ADC_SQR1_SQ13 ((uint32_t)0x0000001F) /*!< SQ13[4:0] bits (13th conversion in regular sequence) */ -#define ADC_SQR1_SQ13_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SQR1_SQ13_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SQR1_SQ13_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_SQR1_SQ13_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_SQR1_SQ13_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_SQR1_SQ14 ((uint32_t)0x000003E0) /*!< SQ14[4:0] bits (14th conversion in regular sequence) */ -#define ADC_SQR1_SQ14_0 ((uint32_t)0x00000020) /*!< Bit 0 */ -#define ADC_SQR1_SQ14_1 ((uint32_t)0x00000040) /*!< Bit 1 */ -#define ADC_SQR1_SQ14_2 ((uint32_t)0x00000080) /*!< Bit 2 */ -#define ADC_SQR1_SQ14_3 ((uint32_t)0x00000100) /*!< Bit 3 */ -#define ADC_SQR1_SQ14_4 ((uint32_t)0x00000200) /*!< Bit 4 */ - -#define ADC_SQR1_SQ15 ((uint32_t)0x00007C00) /*!< SQ15[4:0] bits (15th conversion in regular sequence) */ -#define ADC_SQR1_SQ15_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define ADC_SQR1_SQ15_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define ADC_SQR1_SQ15_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define ADC_SQR1_SQ15_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define ADC_SQR1_SQ15_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define ADC_SQR1_SQ16 ((uint32_t)0x000F8000) /*!< SQ16[4:0] bits (16th conversion in regular sequence) */ -#define ADC_SQR1_SQ16_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SQR1_SQ16_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SQR1_SQ16_2 ((uint32_t)0x00020000) /*!< Bit 2 */ -#define ADC_SQR1_SQ16_3 ((uint32_t)0x00040000) /*!< Bit 3 */ -#define ADC_SQR1_SQ16_4 ((uint32_t)0x00080000) /*!< Bit 4 */ - -#define ADC_SQR1_L ((uint32_t)0x00F00000) /*!< L[3:0] bits (Regular channel sequence length) */ -#define ADC_SQR1_L_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define ADC_SQR1_L_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define ADC_SQR1_L_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define ADC_SQR1_L_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -/******************* Bit definition for ADC_SQR2 register *******************/ -#define ADC_SQR2_SQ7 ((uint32_t)0x0000001F) /*!< SQ7[4:0] bits (7th conversion in regular sequence) */ -#define ADC_SQR2_SQ7_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SQR2_SQ7_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SQR2_SQ7_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_SQR2_SQ7_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_SQR2_SQ7_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_SQR2_SQ8 ((uint32_t)0x000003E0) /*!< SQ8[4:0] bits (8th conversion in regular sequence) */ -#define ADC_SQR2_SQ8_0 ((uint32_t)0x00000020) /*!< Bit 0 */ -#define ADC_SQR2_SQ8_1 ((uint32_t)0x00000040) /*!< Bit 1 */ -#define ADC_SQR2_SQ8_2 ((uint32_t)0x00000080) /*!< Bit 2 */ -#define ADC_SQR2_SQ8_3 ((uint32_t)0x00000100) /*!< Bit 3 */ -#define ADC_SQR2_SQ8_4 ((uint32_t)0x00000200) /*!< Bit 4 */ - -#define ADC_SQR2_SQ9 ((uint32_t)0x00007C00) /*!< SQ9[4:0] bits (9th conversion in regular sequence) */ -#define ADC_SQR2_SQ9_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define ADC_SQR2_SQ9_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define ADC_SQR2_SQ9_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define ADC_SQR2_SQ9_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define ADC_SQR2_SQ9_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define ADC_SQR2_SQ10 ((uint32_t)0x000F8000) /*!< SQ10[4:0] bits (10th conversion in regular sequence) */ -#define ADC_SQR2_SQ10_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SQR2_SQ10_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SQR2_SQ10_2 ((uint32_t)0x00020000) /*!< Bit 2 */ -#define ADC_SQR2_SQ10_3 ((uint32_t)0x00040000) /*!< Bit 3 */ -#define ADC_SQR2_SQ10_4 ((uint32_t)0x00080000) /*!< Bit 4 */ - -#define ADC_SQR2_SQ11 ((uint32_t)0x01F00000) /*!< SQ11[4:0] bits (11th conversion in regular sequence) */ -#define ADC_SQR2_SQ11_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define ADC_SQR2_SQ11_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define ADC_SQR2_SQ11_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define ADC_SQR2_SQ11_3 ((uint32_t)0x00800000) /*!< Bit 3 */ -#define ADC_SQR2_SQ11_4 ((uint32_t)0x01000000) /*!< Bit 4 */ - -#define ADC_SQR2_SQ12 ((uint32_t)0x3E000000) /*!< SQ12[4:0] bits (12th conversion in regular sequence) */ -#define ADC_SQR2_SQ12_0 ((uint32_t)0x02000000) /*!< Bit 0 */ -#define ADC_SQR2_SQ12_1 ((uint32_t)0x04000000) /*!< Bit 1 */ -#define ADC_SQR2_SQ12_2 ((uint32_t)0x08000000) /*!< Bit 2 */ -#define ADC_SQR2_SQ12_3 ((uint32_t)0x10000000) /*!< Bit 3 */ -#define ADC_SQR2_SQ12_4 ((uint32_t)0x20000000) /*!< Bit 4 */ - -/******************* Bit definition for ADC_SQR3 register *******************/ -#define ADC_SQR3_SQ1 ((uint32_t)0x0000001F) /*!< SQ1[4:0] bits (1st conversion in regular sequence) */ -#define ADC_SQR3_SQ1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SQR3_SQ1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SQR3_SQ1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_SQR3_SQ1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_SQR3_SQ1_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_SQR3_SQ2 ((uint32_t)0x000003E0) /*!< SQ2[4:0] bits (2nd conversion in regular sequence) */ -#define ADC_SQR3_SQ2_0 ((uint32_t)0x00000020) /*!< Bit 0 */ -#define ADC_SQR3_SQ2_1 ((uint32_t)0x00000040) /*!< Bit 1 */ -#define ADC_SQR3_SQ2_2 ((uint32_t)0x00000080) /*!< Bit 2 */ -#define ADC_SQR3_SQ2_3 ((uint32_t)0x00000100) /*!< Bit 3 */ -#define ADC_SQR3_SQ2_4 ((uint32_t)0x00000200) /*!< Bit 4 */ - -#define ADC_SQR3_SQ3 ((uint32_t)0x00007C00) /*!< SQ3[4:0] bits (3rd conversion in regular sequence) */ -#define ADC_SQR3_SQ3_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define ADC_SQR3_SQ3_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define ADC_SQR3_SQ3_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define ADC_SQR3_SQ3_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define ADC_SQR3_SQ3_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define ADC_SQR3_SQ4 ((uint32_t)0x000F8000) /*!< SQ4[4:0] bits (4th conversion in regular sequence) */ -#define ADC_SQR3_SQ4_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SQR3_SQ4_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SQR3_SQ4_2 ((uint32_t)0x00020000) /*!< Bit 2 */ -#define ADC_SQR3_SQ4_3 ((uint32_t)0x00040000) /*!< Bit 3 */ -#define ADC_SQR3_SQ4_4 ((uint32_t)0x00080000) /*!< Bit 4 */ - -#define ADC_SQR3_SQ5 ((uint32_t)0x01F00000) /*!< SQ5[4:0] bits (5th conversion in regular sequence) */ -#define ADC_SQR3_SQ5_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define ADC_SQR3_SQ5_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define ADC_SQR3_SQ5_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define ADC_SQR3_SQ5_3 ((uint32_t)0x00800000) /*!< Bit 3 */ -#define ADC_SQR3_SQ5_4 ((uint32_t)0x01000000) /*!< Bit 4 */ - -#define ADC_SQR3_SQ6 ((uint32_t)0x3E000000) /*!< SQ6[4:0] bits (6th conversion in regular sequence) */ -#define ADC_SQR3_SQ6_0 ((uint32_t)0x02000000) /*!< Bit 0 */ -#define ADC_SQR3_SQ6_1 ((uint32_t)0x04000000) /*!< Bit 1 */ -#define ADC_SQR3_SQ6_2 ((uint32_t)0x08000000) /*!< Bit 2 */ -#define ADC_SQR3_SQ6_3 ((uint32_t)0x10000000) /*!< Bit 3 */ -#define ADC_SQR3_SQ6_4 ((uint32_t)0x20000000) /*!< Bit 4 */ - -/******************* Bit definition for ADC_JSQR register *******************/ -#define ADC_JSQR_JSQ1 ((uint32_t)0x0000001F) /*!< JSQ1[4:0] bits (1st conversion in injected sequence) */ -#define ADC_JSQR_JSQ1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_JSQR_JSQ1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_JSQR_JSQ1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_JSQR_JSQ1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_JSQR_JSQ1_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_JSQR_JSQ2 ((uint32_t)0x000003E0) /*!< JSQ2[4:0] bits (2nd conversion in injected sequence) */ -#define ADC_JSQR_JSQ2_0 ((uint32_t)0x00000020) /*!< Bit 0 */ -#define ADC_JSQR_JSQ2_1 ((uint32_t)0x00000040) /*!< Bit 1 */ -#define ADC_JSQR_JSQ2_2 ((uint32_t)0x00000080) /*!< Bit 2 */ -#define ADC_JSQR_JSQ2_3 ((uint32_t)0x00000100) /*!< Bit 3 */ -#define ADC_JSQR_JSQ2_4 ((uint32_t)0x00000200) /*!< Bit 4 */ - -#define ADC_JSQR_JSQ3 ((uint32_t)0x00007C00) /*!< JSQ3[4:0] bits (3rd conversion in injected sequence) */ -#define ADC_JSQR_JSQ3_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define ADC_JSQR_JSQ3_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define ADC_JSQR_JSQ3_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define ADC_JSQR_JSQ3_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define ADC_JSQR_JSQ3_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define ADC_JSQR_JSQ4 ((uint32_t)0x000F8000) /*!< JSQ4[4:0] bits (4th conversion in injected sequence) */ -#define ADC_JSQR_JSQ4_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_JSQR_JSQ4_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_JSQR_JSQ4_2 ((uint32_t)0x00020000) /*!< Bit 2 */ -#define ADC_JSQR_JSQ4_3 ((uint32_t)0x00040000) /*!< Bit 3 */ -#define ADC_JSQR_JSQ4_4 ((uint32_t)0x00080000) /*!< Bit 4 */ - -#define ADC_JSQR_JL ((uint32_t)0x00300000) /*!< JL[1:0] bits (Injected Sequence length) */ -#define ADC_JSQR_JL_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define ADC_JSQR_JL_1 ((uint32_t)0x00200000) /*!< Bit 1 */ - -/******************* Bit definition for ADC_JDR1 register *******************/ -#define ADC_JDR1_JDATA ((uint16_t)0xFFFF) /*!< Injected data */ - -/******************* Bit definition for ADC_JDR2 register *******************/ -#define ADC_JDR2_JDATA ((uint16_t)0xFFFF) /*!< Injected data */ - -/******************* Bit definition for ADC_JDR3 register *******************/ -#define ADC_JDR3_JDATA ((uint16_t)0xFFFF) /*!< Injected data */ - -/******************* Bit definition for ADC_JDR4 register *******************/ -#define ADC_JDR4_JDATA ((uint16_t)0xFFFF) /*!< Injected data */ - -/******************** Bit definition for ADC_DR register ********************/ -#define ADC_DR_DATA ((uint32_t)0x0000FFFF) /*!< Regular data */ -#define ADC_DR_ADC2DATA ((uint32_t)0xFFFF0000) /*!< ADC2 data */ - -/******************************************************************************/ -/* */ -/* Digital to Analog Converter */ -/* */ -/******************************************************************************/ - -/******************** Bit definition for DAC_CR register ********************/ -#define DAC_CR_EN1 ((uint32_t)0x00000001) /*!< DAC channel1 enable */ -#define DAC_CR_BOFF1 ((uint32_t)0x00000002) /*!< DAC channel1 output buffer disable */ -#define DAC_CR_TEN1 ((uint32_t)0x00000004) /*!< DAC channel1 Trigger enable */ - -#define DAC_CR_TSEL1 ((uint32_t)0x00000038) /*!< TSEL1[2:0] (DAC channel1 Trigger selection) */ -#define DAC_CR_TSEL1_0 ((uint32_t)0x00000008) /*!< Bit 0 */ -#define DAC_CR_TSEL1_1 ((uint32_t)0x00000010) /*!< Bit 1 */ -#define DAC_CR_TSEL1_2 ((uint32_t)0x00000020) /*!< Bit 2 */ - -#define DAC_CR_WAVE1 ((uint32_t)0x000000C0) /*!< WAVE1[1:0] (DAC channel1 noise/triangle wave generation enable) */ -#define DAC_CR_WAVE1_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define DAC_CR_WAVE1_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -#define DAC_CR_MAMP1 ((uint32_t)0x00000F00) /*!< MAMP1[3:0] (DAC channel1 Mask/Amplitude selector) */ -#define DAC_CR_MAMP1_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define DAC_CR_MAMP1_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define DAC_CR_MAMP1_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define DAC_CR_MAMP1_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define DAC_CR_DMAEN1 ((uint32_t)0x00001000) /*!< DAC channel1 DMA enable */ -#define DAC_CR_EN2 ((uint32_t)0x00010000) /*!< DAC channel2 enable */ -#define DAC_CR_BOFF2 ((uint32_t)0x00020000) /*!< DAC channel2 output buffer disable */ -#define DAC_CR_TEN2 ((uint32_t)0x00040000) /*!< DAC channel2 Trigger enable */ - -#define DAC_CR_TSEL2 ((uint32_t)0x00380000) /*!< TSEL2[2:0] (DAC channel2 Trigger selection) */ -#define DAC_CR_TSEL2_0 ((uint32_t)0x00080000) /*!< Bit 0 */ -#define DAC_CR_TSEL2_1 ((uint32_t)0x00100000) /*!< Bit 1 */ -#define DAC_CR_TSEL2_2 ((uint32_t)0x00200000) /*!< Bit 2 */ - -#define DAC_CR_WAVE2 ((uint32_t)0x00C00000) /*!< WAVE2[1:0] (DAC channel2 noise/triangle wave generation enable) */ -#define DAC_CR_WAVE2_0 ((uint32_t)0x00400000) /*!< Bit 0 */ -#define DAC_CR_WAVE2_1 ((uint32_t)0x00800000) /*!< Bit 1 */ - -#define DAC_CR_MAMP2 ((uint32_t)0x0F000000) /*!< MAMP2[3:0] (DAC channel2 Mask/Amplitude selector) */ -#define DAC_CR_MAMP2_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define DAC_CR_MAMP2_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define DAC_CR_MAMP2_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define DAC_CR_MAMP2_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define DAC_CR_DMAEN2 ((uint32_t)0x10000000) /*!< DAC channel2 DMA enabled */ - -/***************** Bit definition for DAC_SWTRIGR register ******************/ -#define DAC_SWTRIGR_SWTRIG1 ((uint8_t)0x01) /*!< DAC channel1 software trigger */ -#define DAC_SWTRIGR_SWTRIG2 ((uint8_t)0x02) /*!< DAC channel2 software trigger */ - -/***************** Bit definition for DAC_DHR12R1 register ******************/ -#define DAC_DHR12R1_DACC1DHR ((uint16_t)0x0FFF) /*!< DAC channel1 12-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12L1 register ******************/ -#define DAC_DHR12L1_DACC1DHR ((uint16_t)0xFFF0) /*!< DAC channel1 12-bit Left aligned data */ - -/****************** Bit definition for DAC_DHR8R1 register ******************/ -#define DAC_DHR8R1_DACC1DHR ((uint8_t)0xFF) /*!< DAC channel1 8-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12R2 register ******************/ -#define DAC_DHR12R2_DACC2DHR ((uint16_t)0x0FFF) /*!< DAC channel2 12-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12L2 register ******************/ -#define DAC_DHR12L2_DACC2DHR ((uint16_t)0xFFF0) /*!< DAC channel2 12-bit Left aligned data */ - -/****************** Bit definition for DAC_DHR8R2 register ******************/ -#define DAC_DHR8R2_DACC2DHR ((uint8_t)0xFF) /*!< DAC channel2 8-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12RD register ******************/ -#define DAC_DHR12RD_DACC1DHR ((uint32_t)0x00000FFF) /*!< DAC channel1 12-bit Right aligned data */ -#define DAC_DHR12RD_DACC2DHR ((uint32_t)0x0FFF0000) /*!< DAC channel2 12-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12LD register ******************/ -#define DAC_DHR12LD_DACC1DHR ((uint32_t)0x0000FFF0) /*!< DAC channel1 12-bit Left aligned data */ -#define DAC_DHR12LD_DACC2DHR ((uint32_t)0xFFF00000) /*!< DAC channel2 12-bit Left aligned data */ - -/****************** Bit definition for DAC_DHR8RD register ******************/ -#define DAC_DHR8RD_DACC1DHR ((uint16_t)0x00FF) /*!< DAC channel1 8-bit Right aligned data */ -#define DAC_DHR8RD_DACC2DHR ((uint16_t)0xFF00) /*!< DAC channel2 8-bit Right aligned data */ - -/******************* Bit definition for DAC_DOR1 register *******************/ -#define DAC_DOR1_DACC1DOR ((uint16_t)0x0FFF) /*!< DAC channel1 data output */ - -/******************* Bit definition for DAC_DOR2 register *******************/ -#define DAC_DOR2_DACC2DOR ((uint16_t)0x0FFF) /*!< DAC channel2 data output */ - -/******************** Bit definition for DAC_SR register ********************/ -#define DAC_SR_DMAUDR1 ((uint32_t)0x00002000) /*!< DAC channel1 DMA underrun flag */ -#define DAC_SR_DMAUDR2 ((uint32_t)0x20000000) /*!< DAC channel2 DMA underrun flag */ - -/******************************************************************************/ -/* */ -/* CEC */ -/* */ -/******************************************************************************/ -/******************** Bit definition for CEC_CFGR register ******************/ -#define CEC_CFGR_PE ((uint16_t)0x0001) /*!< Peripheral Enable */ -#define CEC_CFGR_IE ((uint16_t)0x0002) /*!< Interrupt Enable */ -#define CEC_CFGR_BTEM ((uint16_t)0x0004) /*!< Bit Timing Error Mode */ -#define CEC_CFGR_BPEM ((uint16_t)0x0008) /*!< Bit Period Error Mode */ - -/******************** Bit definition for CEC_OAR register ******************/ -#define CEC_OAR_OA ((uint16_t)0x000F) /*!< OA[3:0]: Own Address */ -#define CEC_OAR_OA_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define CEC_OAR_OA_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define CEC_OAR_OA_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define CEC_OAR_OA_3 ((uint16_t)0x0008) /*!< Bit 3 */ - -/******************** Bit definition for CEC_PRES register ******************/ -#define CEC_PRES_PRES ((uint16_t)0x3FFF) /*!< Prescaler Counter Value */ - -/******************** Bit definition for CEC_ESR register ******************/ -#define CEC_ESR_BTE ((uint16_t)0x0001) /*!< Bit Timing Error */ -#define CEC_ESR_BPE ((uint16_t)0x0002) /*!< Bit Period Error */ -#define CEC_ESR_RBTFE ((uint16_t)0x0004) /*!< Rx Block Transfer Finished Error */ -#define CEC_ESR_SBE ((uint16_t)0x0008) /*!< Start Bit Error */ -#define CEC_ESR_ACKE ((uint16_t)0x0010) /*!< Block Acknowledge Error */ -#define CEC_ESR_LINE ((uint16_t)0x0020) /*!< Line Error */ -#define CEC_ESR_TBTFE ((uint16_t)0x0040) /*!< Tx Block Transfer Finished Error */ - -/******************** Bit definition for CEC_CSR register ******************/ -#define CEC_CSR_TSOM ((uint16_t)0x0001) /*!< Tx Start Of Message */ -#define CEC_CSR_TEOM ((uint16_t)0x0002) /*!< Tx End Of Message */ -#define CEC_CSR_TERR ((uint16_t)0x0004) /*!< Tx Error */ -#define CEC_CSR_TBTRF ((uint16_t)0x0008) /*!< Tx Byte Transfer Request or Block Transfer Finished */ -#define CEC_CSR_RSOM ((uint16_t)0x0010) /*!< Rx Start Of Message */ -#define CEC_CSR_REOM ((uint16_t)0x0020) /*!< Rx End Of Message */ -#define CEC_CSR_RERR ((uint16_t)0x0040) /*!< Rx Error */ -#define CEC_CSR_RBTF ((uint16_t)0x0080) /*!< Rx Block Transfer Finished */ - -/******************** Bit definition for CEC_TXD register ******************/ -#define CEC_TXD_TXD ((uint16_t)0x00FF) /*!< Tx Data register */ - -/******************** Bit definition for CEC_RXD register ******************/ -#define CEC_RXD_RXD ((uint16_t)0x00FF) /*!< Rx Data register */ - -/******************************************************************************/ -/* */ -/* TIM */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for TIM_CR1 register ********************/ -#define TIM_CR1_CEN ((uint16_t)0x0001) /*!< Counter enable */ -#define TIM_CR1_UDIS ((uint16_t)0x0002) /*!< Update disable */ -#define TIM_CR1_URS ((uint16_t)0x0004) /*!< Update request source */ -#define TIM_CR1_OPM ((uint16_t)0x0008) /*!< One pulse mode */ -#define TIM_CR1_DIR ((uint16_t)0x0010) /*!< Direction */ - -#define TIM_CR1_CMS ((uint16_t)0x0060) /*!< CMS[1:0] bits (Center-aligned mode selection) */ -#define TIM_CR1_CMS_0 ((uint16_t)0x0020) /*!< Bit 0 */ -#define TIM_CR1_CMS_1 ((uint16_t)0x0040) /*!< Bit 1 */ - -#define TIM_CR1_ARPE ((uint16_t)0x0080) /*!< Auto-reload preload enable */ - -#define TIM_CR1_CKD ((uint16_t)0x0300) /*!< CKD[1:0] bits (clock division) */ -#define TIM_CR1_CKD_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_CR1_CKD_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -/******************* Bit definition for TIM_CR2 register ********************/ -#define TIM_CR2_CCPC ((uint16_t)0x0001) /*!< Capture/Compare Preloaded Control */ -#define TIM_CR2_CCUS ((uint16_t)0x0004) /*!< Capture/Compare Control Update Selection */ -#define TIM_CR2_CCDS ((uint16_t)0x0008) /*!< Capture/Compare DMA Selection */ - -#define TIM_CR2_MMS ((uint16_t)0x0070) /*!< MMS[2:0] bits (Master Mode Selection) */ -#define TIM_CR2_MMS_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CR2_MMS_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CR2_MMS_2 ((uint16_t)0x0040) /*!< Bit 2 */ - -#define TIM_CR2_TI1S ((uint16_t)0x0080) /*!< TI1 Selection */ -#define TIM_CR2_OIS1 ((uint16_t)0x0100) /*!< Output Idle state 1 (OC1 output) */ -#define TIM_CR2_OIS1N ((uint16_t)0x0200) /*!< Output Idle state 1 (OC1N output) */ -#define TIM_CR2_OIS2 ((uint16_t)0x0400) /*!< Output Idle state 2 (OC2 output) */ -#define TIM_CR2_OIS2N ((uint16_t)0x0800) /*!< Output Idle state 2 (OC2N output) */ -#define TIM_CR2_OIS3 ((uint16_t)0x1000) /*!< Output Idle state 3 (OC3 output) */ -#define TIM_CR2_OIS3N ((uint16_t)0x2000) /*!< Output Idle state 3 (OC3N output) */ -#define TIM_CR2_OIS4 ((uint16_t)0x4000) /*!< Output Idle state 4 (OC4 output) */ - -/******************* Bit definition for TIM_SMCR register *******************/ -#define TIM_SMCR_SMS ((uint16_t)0x0007) /*!< SMS[2:0] bits (Slave mode selection) */ -#define TIM_SMCR_SMS_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_SMCR_SMS_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define TIM_SMCR_SMS_2 ((uint16_t)0x0004) /*!< Bit 2 */ - -#define TIM_SMCR_TS ((uint16_t)0x0070) /*!< TS[2:0] bits (Trigger selection) */ -#define TIM_SMCR_TS_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_SMCR_TS_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_SMCR_TS_2 ((uint16_t)0x0040) /*!< Bit 2 */ - -#define TIM_SMCR_MSM ((uint16_t)0x0080) /*!< Master/slave mode */ - -#define TIM_SMCR_ETF ((uint16_t)0x0F00) /*!< ETF[3:0] bits (External trigger filter) */ -#define TIM_SMCR_ETF_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_SMCR_ETF_1 ((uint16_t)0x0200) /*!< Bit 1 */ -#define TIM_SMCR_ETF_2 ((uint16_t)0x0400) /*!< Bit 2 */ -#define TIM_SMCR_ETF_3 ((uint16_t)0x0800) /*!< Bit 3 */ - -#define TIM_SMCR_ETPS ((uint16_t)0x3000) /*!< ETPS[1:0] bits (External trigger prescaler) */ -#define TIM_SMCR_ETPS_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_SMCR_ETPS_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define TIM_SMCR_ECE ((uint16_t)0x4000) /*!< External clock enable */ -#define TIM_SMCR_ETP ((uint16_t)0x8000) /*!< External trigger polarity */ - -/******************* Bit definition for TIM_DIER register *******************/ -#define TIM_DIER_UIE ((uint16_t)0x0001) /*!< Update interrupt enable */ -#define TIM_DIER_CC1IE ((uint16_t)0x0002) /*!< Capture/Compare 1 interrupt enable */ -#define TIM_DIER_CC2IE ((uint16_t)0x0004) /*!< Capture/Compare 2 interrupt enable */ -#define TIM_DIER_CC3IE ((uint16_t)0x0008) /*!< Capture/Compare 3 interrupt enable */ -#define TIM_DIER_CC4IE ((uint16_t)0x0010) /*!< Capture/Compare 4 interrupt enable */ -#define TIM_DIER_COMIE ((uint16_t)0x0020) /*!< COM interrupt enable */ -#define TIM_DIER_TIE ((uint16_t)0x0040) /*!< Trigger interrupt enable */ -#define TIM_DIER_BIE ((uint16_t)0x0080) /*!< Break interrupt enable */ -#define TIM_DIER_UDE ((uint16_t)0x0100) /*!< Update DMA request enable */ -#define TIM_DIER_CC1DE ((uint16_t)0x0200) /*!< Capture/Compare 1 DMA request enable */ -#define TIM_DIER_CC2DE ((uint16_t)0x0400) /*!< Capture/Compare 2 DMA request enable */ -#define TIM_DIER_CC3DE ((uint16_t)0x0800) /*!< Capture/Compare 3 DMA request enable */ -#define TIM_DIER_CC4DE ((uint16_t)0x1000) /*!< Capture/Compare 4 DMA request enable */ -#define TIM_DIER_COMDE ((uint16_t)0x2000) /*!< COM DMA request enable */ -#define TIM_DIER_TDE ((uint16_t)0x4000) /*!< Trigger DMA request enable */ - -/******************** Bit definition for TIM_SR register ********************/ -#define TIM_SR_UIF ((uint16_t)0x0001) /*!< Update interrupt Flag */ -#define TIM_SR_CC1IF ((uint16_t)0x0002) /*!< Capture/Compare 1 interrupt Flag */ -#define TIM_SR_CC2IF ((uint16_t)0x0004) /*!< Capture/Compare 2 interrupt Flag */ -#define TIM_SR_CC3IF ((uint16_t)0x0008) /*!< Capture/Compare 3 interrupt Flag */ -#define TIM_SR_CC4IF ((uint16_t)0x0010) /*!< Capture/Compare 4 interrupt Flag */ -#define TIM_SR_COMIF ((uint16_t)0x0020) /*!< COM interrupt Flag */ -#define TIM_SR_TIF ((uint16_t)0x0040) /*!< Trigger interrupt Flag */ -#define TIM_SR_BIF ((uint16_t)0x0080) /*!< Break interrupt Flag */ -#define TIM_SR_CC1OF ((uint16_t)0x0200) /*!< Capture/Compare 1 Overcapture Flag */ -#define TIM_SR_CC2OF ((uint16_t)0x0400) /*!< Capture/Compare 2 Overcapture Flag */ -#define TIM_SR_CC3OF ((uint16_t)0x0800) /*!< Capture/Compare 3 Overcapture Flag */ -#define TIM_SR_CC4OF ((uint16_t)0x1000) /*!< Capture/Compare 4 Overcapture Flag */ - -/******************* Bit definition for TIM_EGR register ********************/ -#define TIM_EGR_UG ((uint8_t)0x01) /*!< Update Generation */ -#define TIM_EGR_CC1G ((uint8_t)0x02) /*!< Capture/Compare 1 Generation */ -#define TIM_EGR_CC2G ((uint8_t)0x04) /*!< Capture/Compare 2 Generation */ -#define TIM_EGR_CC3G ((uint8_t)0x08) /*!< Capture/Compare 3 Generation */ -#define TIM_EGR_CC4G ((uint8_t)0x10) /*!< Capture/Compare 4 Generation */ -#define TIM_EGR_COMG ((uint8_t)0x20) /*!< Capture/Compare Control Update Generation */ -#define TIM_EGR_TG ((uint8_t)0x40) /*!< Trigger Generation */ -#define TIM_EGR_BG ((uint8_t)0x80) /*!< Break Generation */ - -/****************** Bit definition for TIM_CCMR1 register *******************/ -#define TIM_CCMR1_CC1S ((uint16_t)0x0003) /*!< CC1S[1:0] bits (Capture/Compare 1 Selection) */ -#define TIM_CCMR1_CC1S_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_CCMR1_CC1S_1 ((uint16_t)0x0002) /*!< Bit 1 */ - -#define TIM_CCMR1_OC1FE ((uint16_t)0x0004) /*!< Output Compare 1 Fast enable */ -#define TIM_CCMR1_OC1PE ((uint16_t)0x0008) /*!< Output Compare 1 Preload enable */ - -#define TIM_CCMR1_OC1M ((uint16_t)0x0070) /*!< OC1M[2:0] bits (Output Compare 1 Mode) */ -#define TIM_CCMR1_OC1M_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CCMR1_OC1M_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CCMR1_OC1M_2 ((uint16_t)0x0040) /*!< Bit 2 */ - -#define TIM_CCMR1_OC1CE ((uint16_t)0x0080) /*!< Output Compare 1Clear Enable */ - -#define TIM_CCMR1_CC2S ((uint16_t)0x0300) /*!< CC2S[1:0] bits (Capture/Compare 2 Selection) */ -#define TIM_CCMR1_CC2S_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_CCMR1_CC2S_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define TIM_CCMR1_OC2FE ((uint16_t)0x0400) /*!< Output Compare 2 Fast enable */ -#define TIM_CCMR1_OC2PE ((uint16_t)0x0800) /*!< Output Compare 2 Preload enable */ - -#define TIM_CCMR1_OC2M ((uint16_t)0x7000) /*!< OC2M[2:0] bits (Output Compare 2 Mode) */ -#define TIM_CCMR1_OC2M_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_CCMR1_OC2M_1 ((uint16_t)0x2000) /*!< Bit 1 */ -#define TIM_CCMR1_OC2M_2 ((uint16_t)0x4000) /*!< Bit 2 */ - -#define TIM_CCMR1_OC2CE ((uint16_t)0x8000) /*!< Output Compare 2 Clear Enable */ - -/*----------------------------------------------------------------------------*/ - -#define TIM_CCMR1_IC1PSC ((uint16_t)0x000C) /*!< IC1PSC[1:0] bits (Input Capture 1 Prescaler) */ -#define TIM_CCMR1_IC1PSC_0 ((uint16_t)0x0004) /*!< Bit 0 */ -#define TIM_CCMR1_IC1PSC_1 ((uint16_t)0x0008) /*!< Bit 1 */ - -#define TIM_CCMR1_IC1F ((uint16_t)0x00F0) /*!< IC1F[3:0] bits (Input Capture 1 Filter) */ -#define TIM_CCMR1_IC1F_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CCMR1_IC1F_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CCMR1_IC1F_2 ((uint16_t)0x0040) /*!< Bit 2 */ -#define TIM_CCMR1_IC1F_3 ((uint16_t)0x0080) /*!< Bit 3 */ - -#define TIM_CCMR1_IC2PSC ((uint16_t)0x0C00) /*!< IC2PSC[1:0] bits (Input Capture 2 Prescaler) */ -#define TIM_CCMR1_IC2PSC_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define TIM_CCMR1_IC2PSC_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define TIM_CCMR1_IC2F ((uint16_t)0xF000) /*!< IC2F[3:0] bits (Input Capture 2 Filter) */ -#define TIM_CCMR1_IC2F_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_CCMR1_IC2F_1 ((uint16_t)0x2000) /*!< Bit 1 */ -#define TIM_CCMR1_IC2F_2 ((uint16_t)0x4000) /*!< Bit 2 */ -#define TIM_CCMR1_IC2F_3 ((uint16_t)0x8000) /*!< Bit 3 */ - -/****************** Bit definition for TIM_CCMR2 register *******************/ -#define TIM_CCMR2_CC3S ((uint16_t)0x0003) /*!< CC3S[1:0] bits (Capture/Compare 3 Selection) */ -#define TIM_CCMR2_CC3S_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_CCMR2_CC3S_1 ((uint16_t)0x0002) /*!< Bit 1 */ - -#define TIM_CCMR2_OC3FE ((uint16_t)0x0004) /*!< Output Compare 3 Fast enable */ -#define TIM_CCMR2_OC3PE ((uint16_t)0x0008) /*!< Output Compare 3 Preload enable */ - -#define TIM_CCMR2_OC3M ((uint16_t)0x0070) /*!< OC3M[2:0] bits (Output Compare 3 Mode) */ -#define TIM_CCMR2_OC3M_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CCMR2_OC3M_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CCMR2_OC3M_2 ((uint16_t)0x0040) /*!< Bit 2 */ - -#define TIM_CCMR2_OC3CE ((uint16_t)0x0080) /*!< Output Compare 3 Clear Enable */ - -#define TIM_CCMR2_CC4S ((uint16_t)0x0300) /*!< CC4S[1:0] bits (Capture/Compare 4 Selection) */ -#define TIM_CCMR2_CC4S_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_CCMR2_CC4S_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define TIM_CCMR2_OC4FE ((uint16_t)0x0400) /*!< Output Compare 4 Fast enable */ -#define TIM_CCMR2_OC4PE ((uint16_t)0x0800) /*!< Output Compare 4 Preload enable */ - -#define TIM_CCMR2_OC4M ((uint16_t)0x7000) /*!< OC4M[2:0] bits (Output Compare 4 Mode) */ -#define TIM_CCMR2_OC4M_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_CCMR2_OC4M_1 ((uint16_t)0x2000) /*!< Bit 1 */ -#define TIM_CCMR2_OC4M_2 ((uint16_t)0x4000) /*!< Bit 2 */ - -#define TIM_CCMR2_OC4CE ((uint16_t)0x8000) /*!< Output Compare 4 Clear Enable */ - -/*----------------------------------------------------------------------------*/ - -#define TIM_CCMR2_IC3PSC ((uint16_t)0x000C) /*!< IC3PSC[1:0] bits (Input Capture 3 Prescaler) */ -#define TIM_CCMR2_IC3PSC_0 ((uint16_t)0x0004) /*!< Bit 0 */ -#define TIM_CCMR2_IC3PSC_1 ((uint16_t)0x0008) /*!< Bit 1 */ - -#define TIM_CCMR2_IC3F ((uint16_t)0x00F0) /*!< IC3F[3:0] bits (Input Capture 3 Filter) */ -#define TIM_CCMR2_IC3F_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CCMR2_IC3F_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CCMR2_IC3F_2 ((uint16_t)0x0040) /*!< Bit 2 */ -#define TIM_CCMR2_IC3F_3 ((uint16_t)0x0080) /*!< Bit 3 */ - -#define TIM_CCMR2_IC4PSC ((uint16_t)0x0C00) /*!< IC4PSC[1:0] bits (Input Capture 4 Prescaler) */ -#define TIM_CCMR2_IC4PSC_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define TIM_CCMR2_IC4PSC_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define TIM_CCMR2_IC4F ((uint16_t)0xF000) /*!< IC4F[3:0] bits (Input Capture 4 Filter) */ -#define TIM_CCMR2_IC4F_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_CCMR2_IC4F_1 ((uint16_t)0x2000) /*!< Bit 1 */ -#define TIM_CCMR2_IC4F_2 ((uint16_t)0x4000) /*!< Bit 2 */ -#define TIM_CCMR2_IC4F_3 ((uint16_t)0x8000) /*!< Bit 3 */ - -/******************* Bit definition for TIM_CCER register *******************/ -#define TIM_CCER_CC1E ((uint16_t)0x0001) /*!< Capture/Compare 1 output enable */ -#define TIM_CCER_CC1P ((uint16_t)0x0002) /*!< Capture/Compare 1 output Polarity */ -#define TIM_CCER_CC1NE ((uint16_t)0x0004) /*!< Capture/Compare 1 Complementary output enable */ -#define TIM_CCER_CC1NP ((uint16_t)0x0008) /*!< Capture/Compare 1 Complementary output Polarity */ -#define TIM_CCER_CC2E ((uint16_t)0x0010) /*!< Capture/Compare 2 output enable */ -#define TIM_CCER_CC2P ((uint16_t)0x0020) /*!< Capture/Compare 2 output Polarity */ -#define TIM_CCER_CC2NE ((uint16_t)0x0040) /*!< Capture/Compare 2 Complementary output enable */ -#define TIM_CCER_CC2NP ((uint16_t)0x0080) /*!< Capture/Compare 2 Complementary output Polarity */ -#define TIM_CCER_CC3E ((uint16_t)0x0100) /*!< Capture/Compare 3 output enable */ -#define TIM_CCER_CC3P ((uint16_t)0x0200) /*!< Capture/Compare 3 output Polarity */ -#define TIM_CCER_CC3NE ((uint16_t)0x0400) /*!< Capture/Compare 3 Complementary output enable */ -#define TIM_CCER_CC3NP ((uint16_t)0x0800) /*!< Capture/Compare 3 Complementary output Polarity */ -#define TIM_CCER_CC4E ((uint16_t)0x1000) /*!< Capture/Compare 4 output enable */ -#define TIM_CCER_CC4P ((uint16_t)0x2000) /*!< Capture/Compare 4 output Polarity */ -#define TIM_CCER_CC4NP ((uint16_t)0x8000) /*!< Capture/Compare 4 Complementary output Polarity */ - -/******************* Bit definition for TIM_CNT register ********************/ -#define TIM_CNT_CNT ((uint16_t)0xFFFF) /*!< Counter Value */ - -/******************* Bit definition for TIM_PSC register ********************/ -#define TIM_PSC_PSC ((uint16_t)0xFFFF) /*!< Prescaler Value */ - -/******************* Bit definition for TIM_ARR register ********************/ -#define TIM_ARR_ARR ((uint16_t)0xFFFF) /*!< actual auto-reload Value */ - -/******************* Bit definition for TIM_RCR register ********************/ -#define TIM_RCR_REP ((uint8_t)0xFF) /*!< Repetition Counter Value */ - -/******************* Bit definition for TIM_CCR1 register *******************/ -#define TIM_CCR1_CCR1 ((uint16_t)0xFFFF) /*!< Capture/Compare 1 Value */ - -/******************* Bit definition for TIM_CCR2 register *******************/ -#define TIM_CCR2_CCR2 ((uint16_t)0xFFFF) /*!< Capture/Compare 2 Value */ - -/******************* Bit definition for TIM_CCR3 register *******************/ -#define TIM_CCR3_CCR3 ((uint16_t)0xFFFF) /*!< Capture/Compare 3 Value */ - -/******************* Bit definition for TIM_CCR4 register *******************/ -#define TIM_CCR4_CCR4 ((uint16_t)0xFFFF) /*!< Capture/Compare 4 Value */ - -/******************* Bit definition for TIM_BDTR register *******************/ -#define TIM_BDTR_DTG ((uint16_t)0x00FF) /*!< DTG[0:7] bits (Dead-Time Generator set-up) */ -#define TIM_BDTR_DTG_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_BDTR_DTG_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define TIM_BDTR_DTG_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define TIM_BDTR_DTG_3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define TIM_BDTR_DTG_4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define TIM_BDTR_DTG_5 ((uint16_t)0x0020) /*!< Bit 5 */ -#define TIM_BDTR_DTG_6 ((uint16_t)0x0040) /*!< Bit 6 */ -#define TIM_BDTR_DTG_7 ((uint16_t)0x0080) /*!< Bit 7 */ - -#define TIM_BDTR_LOCK ((uint16_t)0x0300) /*!< LOCK[1:0] bits (Lock Configuration) */ -#define TIM_BDTR_LOCK_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_BDTR_LOCK_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define TIM_BDTR_OSSI ((uint16_t)0x0400) /*!< Off-State Selection for Idle mode */ -#define TIM_BDTR_OSSR ((uint16_t)0x0800) /*!< Off-State Selection for Run mode */ -#define TIM_BDTR_BKE ((uint16_t)0x1000) /*!< Break enable */ -#define TIM_BDTR_BKP ((uint16_t)0x2000) /*!< Break Polarity */ -#define TIM_BDTR_AOE ((uint16_t)0x4000) /*!< Automatic Output enable */ -#define TIM_BDTR_MOE ((uint16_t)0x8000) /*!< Main Output enable */ - -/******************* Bit definition for TIM_DCR register ********************/ -#define TIM_DCR_DBA ((uint16_t)0x001F) /*!< DBA[4:0] bits (DMA Base Address) */ -#define TIM_DCR_DBA_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_DCR_DBA_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define TIM_DCR_DBA_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define TIM_DCR_DBA_3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define TIM_DCR_DBA_4 ((uint16_t)0x0010) /*!< Bit 4 */ - -#define TIM_DCR_DBL ((uint16_t)0x1F00) /*!< DBL[4:0] bits (DMA Burst Length) */ -#define TIM_DCR_DBL_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_DCR_DBL_1 ((uint16_t)0x0200) /*!< Bit 1 */ -#define TIM_DCR_DBL_2 ((uint16_t)0x0400) /*!< Bit 2 */ -#define TIM_DCR_DBL_3 ((uint16_t)0x0800) /*!< Bit 3 */ -#define TIM_DCR_DBL_4 ((uint16_t)0x1000) /*!< Bit 4 */ - -/******************* Bit definition for TIM_DMAR register *******************/ -#define TIM_DMAR_DMAB ((uint16_t)0xFFFF) /*!< DMA register for burst accesses */ - -/******************************************************************************/ -/* */ -/* Real-Time Clock */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for RTC_CRH register ********************/ -#define RTC_CRH_SECIE ((uint8_t)0x01) /*!< Second Interrupt Enable */ -#define RTC_CRH_ALRIE ((uint8_t)0x02) /*!< Alarm Interrupt Enable */ -#define RTC_CRH_OWIE ((uint8_t)0x04) /*!< OverfloW Interrupt Enable */ - -/******************* Bit definition for RTC_CRL register ********************/ -#define RTC_CRL_SECF ((uint8_t)0x01) /*!< Second Flag */ -#define RTC_CRL_ALRF ((uint8_t)0x02) /*!< Alarm Flag */ -#define RTC_CRL_OWF ((uint8_t)0x04) /*!< OverfloW Flag */ -#define RTC_CRL_RSF ((uint8_t)0x08) /*!< Registers Synchronized Flag */ -#define RTC_CRL_CNF ((uint8_t)0x10) /*!< Configuration Flag */ -#define RTC_CRL_RTOFF ((uint8_t)0x20) /*!< RTC operation OFF */ - -/******************* Bit definition for RTC_PRLH register *******************/ -#define RTC_PRLH_PRL ((uint16_t)0x000F) /*!< RTC Prescaler Reload Value High */ - -/******************* Bit definition for RTC_PRLL register *******************/ -#define RTC_PRLL_PRL ((uint16_t)0xFFFF) /*!< RTC Prescaler Reload Value Low */ - -/******************* Bit definition for RTC_DIVH register *******************/ -#define RTC_DIVH_RTC_DIV ((uint16_t)0x000F) /*!< RTC Clock Divider High */ - -/******************* Bit definition for RTC_DIVL register *******************/ -#define RTC_DIVL_RTC_DIV ((uint16_t)0xFFFF) /*!< RTC Clock Divider Low */ - -/******************* Bit definition for RTC_CNTH register *******************/ -#define RTC_CNTH_RTC_CNT ((uint16_t)0xFFFF) /*!< RTC Counter High */ - -/******************* Bit definition for RTC_CNTL register *******************/ -#define RTC_CNTL_RTC_CNT ((uint16_t)0xFFFF) /*!< RTC Counter Low */ - -/******************* Bit definition for RTC_ALRH register *******************/ -#define RTC_ALRH_RTC_ALR ((uint16_t)0xFFFF) /*!< RTC Alarm High */ - -/******************* Bit definition for RTC_ALRL register *******************/ -#define RTC_ALRL_RTC_ALR ((uint16_t)0xFFFF) /*!< RTC Alarm Low */ - -/******************************************************************************/ -/* */ -/* Independent WATCHDOG */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for IWDG_KR register ********************/ -#define IWDG_KR_KEY ((uint16_t)0xFFFF) /*!< Key value (write only, read 0000h) */ - -/******************* Bit definition for IWDG_PR register ********************/ -#define IWDG_PR_PR ((uint8_t)0x07) /*!< PR[2:0] (Prescaler divider) */ -#define IWDG_PR_PR_0 ((uint8_t)0x01) /*!< Bit 0 */ -#define IWDG_PR_PR_1 ((uint8_t)0x02) /*!< Bit 1 */ -#define IWDG_PR_PR_2 ((uint8_t)0x04) /*!< Bit 2 */ - -/******************* Bit definition for IWDG_RLR register *******************/ -#define IWDG_RLR_RL ((uint16_t)0x0FFF) /*!< Watchdog counter reload value */ - -/******************* Bit definition for IWDG_SR register ********************/ -#define IWDG_SR_PVU ((uint8_t)0x01) /*!< Watchdog prescaler value update */ -#define IWDG_SR_RVU ((uint8_t)0x02) /*!< Watchdog counter reload value update */ - -/******************************************************************************/ -/* */ -/* Window WATCHDOG */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for WWDG_CR register ********************/ -#define WWDG_CR_T ((uint8_t)0x7F) /*!< T[6:0] bits (7-Bit counter (MSB to LSB)) */ -#define WWDG_CR_T0 ((uint8_t)0x01) /*!< Bit 0 */ -#define WWDG_CR_T1 ((uint8_t)0x02) /*!< Bit 1 */ -#define WWDG_CR_T2 ((uint8_t)0x04) /*!< Bit 2 */ -#define WWDG_CR_T3 ((uint8_t)0x08) /*!< Bit 3 */ -#define WWDG_CR_T4 ((uint8_t)0x10) /*!< Bit 4 */ -#define WWDG_CR_T5 ((uint8_t)0x20) /*!< Bit 5 */ -#define WWDG_CR_T6 ((uint8_t)0x40) /*!< Bit 6 */ - -#define WWDG_CR_WDGA ((uint8_t)0x80) /*!< Activation bit */ - -/******************* Bit definition for WWDG_CFR register *******************/ -#define WWDG_CFR_W ((uint16_t)0x007F) /*!< W[6:0] bits (7-bit window value) */ -#define WWDG_CFR_W0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define WWDG_CFR_W1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define WWDG_CFR_W2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define WWDG_CFR_W3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define WWDG_CFR_W4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define WWDG_CFR_W5 ((uint16_t)0x0020) /*!< Bit 5 */ -#define WWDG_CFR_W6 ((uint16_t)0x0040) /*!< Bit 6 */ - -#define WWDG_CFR_WDGTB ((uint16_t)0x0180) /*!< WDGTB[1:0] bits (Timer Base) */ -#define WWDG_CFR_WDGTB0 ((uint16_t)0x0080) /*!< Bit 0 */ -#define WWDG_CFR_WDGTB1 ((uint16_t)0x0100) /*!< Bit 1 */ - -#define WWDG_CFR_EWI ((uint16_t)0x0200) /*!< Early Wakeup Interrupt */ - -/******************* Bit definition for WWDG_SR register ********************/ -#define WWDG_SR_EWIF ((uint8_t)0x01) /*!< Early Wakeup Interrupt Flag */ - -/******************************************************************************/ -/* */ -/* Flexible Static Memory Controller */ -/* */ -/******************************************************************************/ - -/****************** Bit definition for FSMC_BCR1 register *******************/ -#define FSMC_BCR1_MBKEN ((uint32_t)0x00000001) /*!< Memory bank enable bit */ -#define FSMC_BCR1_MUXEN ((uint32_t)0x00000002) /*!< Address/data multiplexing enable bit */ - -#define FSMC_BCR1_MTYP ((uint32_t)0x0000000C) /*!< MTYP[1:0] bits (Memory type) */ -#define FSMC_BCR1_MTYP_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define FSMC_BCR1_MTYP_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define FSMC_BCR1_MWID ((uint32_t)0x00000030) /*!< MWID[1:0] bits (Memory data bus width) */ -#define FSMC_BCR1_MWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BCR1_MWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_BCR1_FACCEN ((uint32_t)0x00000040) /*!< Flash access enable */ -#define FSMC_BCR1_BURSTEN ((uint32_t)0x00000100) /*!< Burst enable bit */ -#define FSMC_BCR1_WAITPOL ((uint32_t)0x00000200) /*!< Wait signal polarity bit */ -#define FSMC_BCR1_WRAPMOD ((uint32_t)0x00000400) /*!< Wrapped burst mode support */ -#define FSMC_BCR1_WAITCFG ((uint32_t)0x00000800) /*!< Wait timing configuration */ -#define FSMC_BCR1_WREN ((uint32_t)0x00001000) /*!< Write enable bit */ -#define FSMC_BCR1_WAITEN ((uint32_t)0x00002000) /*!< Wait enable bit */ -#define FSMC_BCR1_EXTMOD ((uint32_t)0x00004000) /*!< Extended mode enable */ -#define FSMC_BCR1_ASYNCWAIT ((uint32_t)0x00008000) /*!< Asynchronous wait */ -#define FSMC_BCR1_CBURSTRW ((uint32_t)0x00080000) /*!< Write burst enable */ - -/****************** Bit definition for FSMC_BCR2 register *******************/ -#define FSMC_BCR2_MBKEN ((uint32_t)0x00000001) /*!< Memory bank enable bit */ -#define FSMC_BCR2_MUXEN ((uint32_t)0x00000002) /*!< Address/data multiplexing enable bit */ - -#define FSMC_BCR2_MTYP ((uint32_t)0x0000000C) /*!< MTYP[1:0] bits (Memory type) */ -#define FSMC_BCR2_MTYP_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define FSMC_BCR2_MTYP_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define FSMC_BCR2_MWID ((uint32_t)0x00000030) /*!< MWID[1:0] bits (Memory data bus width) */ -#define FSMC_BCR2_MWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BCR2_MWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_BCR2_FACCEN ((uint32_t)0x00000040) /*!< Flash access enable */ -#define FSMC_BCR2_BURSTEN ((uint32_t)0x00000100) /*!< Burst enable bit */ -#define FSMC_BCR2_WAITPOL ((uint32_t)0x00000200) /*!< Wait signal polarity bit */ -#define FSMC_BCR2_WRAPMOD ((uint32_t)0x00000400) /*!< Wrapped burst mode support */ -#define FSMC_BCR2_WAITCFG ((uint32_t)0x00000800) /*!< Wait timing configuration */ -#define FSMC_BCR2_WREN ((uint32_t)0x00001000) /*!< Write enable bit */ -#define FSMC_BCR2_WAITEN ((uint32_t)0x00002000) /*!< Wait enable bit */ -#define FSMC_BCR2_EXTMOD ((uint32_t)0x00004000) /*!< Extended mode enable */ -#define FSMC_BCR2_ASYNCWAIT ((uint32_t)0x00008000) /*!< Asynchronous wait */ -#define FSMC_BCR2_CBURSTRW ((uint32_t)0x00080000) /*!< Write burst enable */ - -/****************** Bit definition for FSMC_BCR3 register *******************/ -#define FSMC_BCR3_MBKEN ((uint32_t)0x00000001) /*!< Memory bank enable bit */ -#define FSMC_BCR3_MUXEN ((uint32_t)0x00000002) /*!< Address/data multiplexing enable bit */ - -#define FSMC_BCR3_MTYP ((uint32_t)0x0000000C) /*!< MTYP[1:0] bits (Memory type) */ -#define FSMC_BCR3_MTYP_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define FSMC_BCR3_MTYP_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define FSMC_BCR3_MWID ((uint32_t)0x00000030) /*!< MWID[1:0] bits (Memory data bus width) */ -#define FSMC_BCR3_MWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BCR3_MWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_BCR3_FACCEN ((uint32_t)0x00000040) /*!< Flash access enable */ -#define FSMC_BCR3_BURSTEN ((uint32_t)0x00000100) /*!< Burst enable bit */ -#define FSMC_BCR3_WAITPOL ((uint32_t)0x00000200) /*!< Wait signal polarity bit. */ -#define FSMC_BCR3_WRAPMOD ((uint32_t)0x00000400) /*!< Wrapped burst mode support */ -#define FSMC_BCR3_WAITCFG ((uint32_t)0x00000800) /*!< Wait timing configuration */ -#define FSMC_BCR3_WREN ((uint32_t)0x00001000) /*!< Write enable bit */ -#define FSMC_BCR3_WAITEN ((uint32_t)0x00002000) /*!< Wait enable bit */ -#define FSMC_BCR3_EXTMOD ((uint32_t)0x00004000) /*!< Extended mode enable */ -#define FSMC_BCR3_ASYNCWAIT ((uint32_t)0x00008000) /*!< Asynchronous wait */ -#define FSMC_BCR3_CBURSTRW ((uint32_t)0x00080000) /*!< Write burst enable */ - -/****************** Bit definition for FSMC_BCR4 register *******************/ -#define FSMC_BCR4_MBKEN ((uint32_t)0x00000001) /*!< Memory bank enable bit */ -#define FSMC_BCR4_MUXEN ((uint32_t)0x00000002) /*!< Address/data multiplexing enable bit */ - -#define FSMC_BCR4_MTYP ((uint32_t)0x0000000C) /*!< MTYP[1:0] bits (Memory type) */ -#define FSMC_BCR4_MTYP_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define FSMC_BCR4_MTYP_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define FSMC_BCR4_MWID ((uint32_t)0x00000030) /*!< MWID[1:0] bits (Memory data bus width) */ -#define FSMC_BCR4_MWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BCR4_MWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_BCR4_FACCEN ((uint32_t)0x00000040) /*!< Flash access enable */ -#define FSMC_BCR4_BURSTEN ((uint32_t)0x00000100) /*!< Burst enable bit */ -#define FSMC_BCR4_WAITPOL ((uint32_t)0x00000200) /*!< Wait signal polarity bit */ -#define FSMC_BCR4_WRAPMOD ((uint32_t)0x00000400) /*!< Wrapped burst mode support */ -#define FSMC_BCR4_WAITCFG ((uint32_t)0x00000800) /*!< Wait timing configuration */ -#define FSMC_BCR4_WREN ((uint32_t)0x00001000) /*!< Write enable bit */ -#define FSMC_BCR4_WAITEN ((uint32_t)0x00002000) /*!< Wait enable bit */ -#define FSMC_BCR4_EXTMOD ((uint32_t)0x00004000) /*!< Extended mode enable */ -#define FSMC_BCR4_ASYNCWAIT ((uint32_t)0x00008000) /*!< Asynchronous wait */ -#define FSMC_BCR4_CBURSTRW ((uint32_t)0x00080000) /*!< Write burst enable */ - -/****************** Bit definition for FSMC_BTR1 register ******************/ -#define FSMC_BTR1_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BTR1_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BTR1_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BTR1_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BTR1_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BTR1_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BTR1_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BTR1_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BTR1_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BTR1_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BTR1_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BTR1_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BTR1_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BTR1_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BTR1_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BTR1_BUSTURN ((uint32_t)0x000F0000) /*!< BUSTURN[3:0] bits (Bus turnaround phase duration) */ -#define FSMC_BTR1_BUSTURN_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_BTR1_BUSTURN_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_BTR1_BUSTURN_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_BTR1_BUSTURN_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define FSMC_BTR1_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BTR1_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BTR1_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BTR1_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BTR1_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BTR1_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BTR1_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BTR1_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BTR1_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BTR1_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BTR1_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BTR1_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BTR1_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BTR2 register *******************/ -#define FSMC_BTR2_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BTR2_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BTR2_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BTR2_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BTR2_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BTR2_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BTR2_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BTR2_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BTR2_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BTR2_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BTR2_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BTR2_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BTR2_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BTR2_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BTR2_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BTR2_BUSTURN ((uint32_t)0x000F0000) /*!< BUSTURN[3:0] bits (Bus turnaround phase duration) */ -#define FSMC_BTR2_BUSTURN_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_BTR2_BUSTURN_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_BTR2_BUSTURN_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_BTR2_BUSTURN_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define FSMC_BTR2_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BTR2_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BTR2_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BTR2_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BTR2_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BTR2_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BTR2_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BTR2_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BTR2_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BTR2_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BTR2_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BTR2_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BTR2_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/******************* Bit definition for FSMC_BTR3 register *******************/ -#define FSMC_BTR3_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BTR3_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BTR3_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BTR3_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BTR3_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BTR3_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BTR3_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BTR3_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BTR3_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BTR3_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BTR3_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BTR3_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BTR3_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BTR3_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BTR3_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BTR3_BUSTURN ((uint32_t)0x000F0000) /*!< BUSTURN[3:0] bits (Bus turnaround phase duration) */ -#define FSMC_BTR3_BUSTURN_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_BTR3_BUSTURN_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_BTR3_BUSTURN_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_BTR3_BUSTURN_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define FSMC_BTR3_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BTR3_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BTR3_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BTR3_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BTR3_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BTR3_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BTR3_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BTR3_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BTR3_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BTR3_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BTR3_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BTR3_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BTR3_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BTR4 register *******************/ -#define FSMC_BTR4_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BTR4_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BTR4_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BTR4_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BTR4_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BTR4_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BTR4_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BTR4_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BTR4_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BTR4_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BTR4_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BTR4_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BTR4_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BTR4_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BTR4_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BTR4_BUSTURN ((uint32_t)0x000F0000) /*!< BUSTURN[3:0] bits (Bus turnaround phase duration) */ -#define FSMC_BTR4_BUSTURN_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_BTR4_BUSTURN_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_BTR4_BUSTURN_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_BTR4_BUSTURN_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define FSMC_BTR4_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BTR4_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BTR4_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BTR4_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BTR4_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BTR4_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BTR4_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BTR4_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BTR4_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BTR4_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BTR4_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BTR4_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BTR4_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BWTR1 register ******************/ -#define FSMC_BWTR1_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BWTR1_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BWTR1_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BWTR1_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BWTR1_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BWTR1_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BWTR1_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BWTR1_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BWTR1_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BWTR1_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BWTR1_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BWTR1_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BWTR1_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BWTR1_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BWTR1_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BWTR1_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BWTR1_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BWTR1_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BWTR1_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BWTR1_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BWTR1_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BWTR1_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BWTR1_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BWTR1_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BWTR1_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BWTR1_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BWTR1_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BWTR1_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BWTR2 register ******************/ -#define FSMC_BWTR2_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BWTR2_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BWTR2_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BWTR2_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BWTR2_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BWTR2_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BWTR2_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BWTR2_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BWTR2_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BWTR2_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BWTR2_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BWTR2_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BWTR2_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BWTR2_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BWTR2_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BWTR2_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BWTR2_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BWTR2_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1*/ -#define FSMC_BWTR2_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BWTR2_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BWTR2_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BWTR2_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BWTR2_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BWTR2_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BWTR2_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BWTR2_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BWTR2_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BWTR2_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BWTR3 register ******************/ -#define FSMC_BWTR3_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BWTR3_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BWTR3_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BWTR3_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BWTR3_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BWTR3_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BWTR3_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BWTR3_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BWTR3_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BWTR3_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BWTR3_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BWTR3_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BWTR3_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BWTR3_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BWTR3_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BWTR3_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BWTR3_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BWTR3_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BWTR3_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BWTR3_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BWTR3_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BWTR3_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BWTR3_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BWTR3_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BWTR3_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BWTR3_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BWTR3_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BWTR3_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BWTR4 register ******************/ -#define FSMC_BWTR4_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BWTR4_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BWTR4_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BWTR4_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BWTR4_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BWTR4_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BWTR4_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BWTR4_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BWTR4_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BWTR4_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BWTR4_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BWTR4_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BWTR4_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BWTR4_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BWTR4_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BWTR4_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BWTR4_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BWTR4_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BWTR4_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BWTR4_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BWTR4_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BWTR4_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BWTR4_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BWTR4_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BWTR4_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BWTR4_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BWTR4_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BWTR4_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_PCR2 register *******************/ -#define FSMC_PCR2_PWAITEN ((uint32_t)0x00000002) /*!< Wait feature enable bit */ -#define FSMC_PCR2_PBKEN ((uint32_t)0x00000004) /*!< PC Card/NAND Flash memory bank enable bit */ -#define FSMC_PCR2_PTYP ((uint32_t)0x00000008) /*!< Memory type */ - -#define FSMC_PCR2_PWID ((uint32_t)0x00000030) /*!< PWID[1:0] bits (NAND Flash databus width) */ -#define FSMC_PCR2_PWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_PCR2_PWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_PCR2_ECCEN ((uint32_t)0x00000040) /*!< ECC computation logic enable bit */ - -#define FSMC_PCR2_TCLR ((uint32_t)0x00001E00) /*!< TCLR[3:0] bits (CLE to RE delay) */ -#define FSMC_PCR2_TCLR_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define FSMC_PCR2_TCLR_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define FSMC_PCR2_TCLR_2 ((uint32_t)0x00000800) /*!< Bit 2 */ -#define FSMC_PCR2_TCLR_3 ((uint32_t)0x00001000) /*!< Bit 3 */ - -#define FSMC_PCR2_TAR ((uint32_t)0x0001E000) /*!< TAR[3:0] bits (ALE to RE delay) */ -#define FSMC_PCR2_TAR_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define FSMC_PCR2_TAR_1 ((uint32_t)0x00004000) /*!< Bit 1 */ -#define FSMC_PCR2_TAR_2 ((uint32_t)0x00008000) /*!< Bit 2 */ -#define FSMC_PCR2_TAR_3 ((uint32_t)0x00010000) /*!< Bit 3 */ - -#define FSMC_PCR2_ECCPS ((uint32_t)0x000E0000) /*!< ECCPS[1:0] bits (ECC page size) */ -#define FSMC_PCR2_ECCPS_0 ((uint32_t)0x00020000) /*!< Bit 0 */ -#define FSMC_PCR2_ECCPS_1 ((uint32_t)0x00040000) /*!< Bit 1 */ -#define FSMC_PCR2_ECCPS_2 ((uint32_t)0x00080000) /*!< Bit 2 */ - -/****************** Bit definition for FSMC_PCR3 register *******************/ -#define FSMC_PCR3_PWAITEN ((uint32_t)0x00000002) /*!< Wait feature enable bit */ -#define FSMC_PCR3_PBKEN ((uint32_t)0x00000004) /*!< PC Card/NAND Flash memory bank enable bit */ -#define FSMC_PCR3_PTYP ((uint32_t)0x00000008) /*!< Memory type */ - -#define FSMC_PCR3_PWID ((uint32_t)0x00000030) /*!< PWID[1:0] bits (NAND Flash databus width) */ -#define FSMC_PCR3_PWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_PCR3_PWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_PCR3_ECCEN ((uint32_t)0x00000040) /*!< ECC computation logic enable bit */ - -#define FSMC_PCR3_TCLR ((uint32_t)0x00001E00) /*!< TCLR[3:0] bits (CLE to RE delay) */ -#define FSMC_PCR3_TCLR_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define FSMC_PCR3_TCLR_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define FSMC_PCR3_TCLR_2 ((uint32_t)0x00000800) /*!< Bit 2 */ -#define FSMC_PCR3_TCLR_3 ((uint32_t)0x00001000) /*!< Bit 3 */ - -#define FSMC_PCR3_TAR ((uint32_t)0x0001E000) /*!< TAR[3:0] bits (ALE to RE delay) */ -#define FSMC_PCR3_TAR_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define FSMC_PCR3_TAR_1 ((uint32_t)0x00004000) /*!< Bit 1 */ -#define FSMC_PCR3_TAR_2 ((uint32_t)0x00008000) /*!< Bit 2 */ -#define FSMC_PCR3_TAR_3 ((uint32_t)0x00010000) /*!< Bit 3 */ - -#define FSMC_PCR3_ECCPS ((uint32_t)0x000E0000) /*!< ECCPS[2:0] bits (ECC page size) */ -#define FSMC_PCR3_ECCPS_0 ((uint32_t)0x00020000) /*!< Bit 0 */ -#define FSMC_PCR3_ECCPS_1 ((uint32_t)0x00040000) /*!< Bit 1 */ -#define FSMC_PCR3_ECCPS_2 ((uint32_t)0x00080000) /*!< Bit 2 */ - -/****************** Bit definition for FSMC_PCR4 register *******************/ -#define FSMC_PCR4_PWAITEN ((uint32_t)0x00000002) /*!< Wait feature enable bit */ -#define FSMC_PCR4_PBKEN ((uint32_t)0x00000004) /*!< PC Card/NAND Flash memory bank enable bit */ -#define FSMC_PCR4_PTYP ((uint32_t)0x00000008) /*!< Memory type */ - -#define FSMC_PCR4_PWID ((uint32_t)0x00000030) /*!< PWID[1:0] bits (NAND Flash databus width) */ -#define FSMC_PCR4_PWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_PCR4_PWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_PCR4_ECCEN ((uint32_t)0x00000040) /*!< ECC computation logic enable bit */ - -#define FSMC_PCR4_TCLR ((uint32_t)0x00001E00) /*!< TCLR[3:0] bits (CLE to RE delay) */ -#define FSMC_PCR4_TCLR_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define FSMC_PCR4_TCLR_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define FSMC_PCR4_TCLR_2 ((uint32_t)0x00000800) /*!< Bit 2 */ -#define FSMC_PCR4_TCLR_3 ((uint32_t)0x00001000) /*!< Bit 3 */ - -#define FSMC_PCR4_TAR ((uint32_t)0x0001E000) /*!< TAR[3:0] bits (ALE to RE delay) */ -#define FSMC_PCR4_TAR_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define FSMC_PCR4_TAR_1 ((uint32_t)0x00004000) /*!< Bit 1 */ -#define FSMC_PCR4_TAR_2 ((uint32_t)0x00008000) /*!< Bit 2 */ -#define FSMC_PCR4_TAR_3 ((uint32_t)0x00010000) /*!< Bit 3 */ - -#define FSMC_PCR4_ECCPS ((uint32_t)0x000E0000) /*!< ECCPS[2:0] bits (ECC page size) */ -#define FSMC_PCR4_ECCPS_0 ((uint32_t)0x00020000) /*!< Bit 0 */ -#define FSMC_PCR4_ECCPS_1 ((uint32_t)0x00040000) /*!< Bit 1 */ -#define FSMC_PCR4_ECCPS_2 ((uint32_t)0x00080000) /*!< Bit 2 */ - -/******************* Bit definition for FSMC_SR2 register *******************/ -#define FSMC_SR2_IRS ((uint8_t)0x01) /*!< Interrupt Rising Edge status */ -#define FSMC_SR2_ILS ((uint8_t)0x02) /*!< Interrupt Level status */ -#define FSMC_SR2_IFS ((uint8_t)0x04) /*!< Interrupt Falling Edge status */ -#define FSMC_SR2_IREN ((uint8_t)0x08) /*!< Interrupt Rising Edge detection Enable bit */ -#define FSMC_SR2_ILEN ((uint8_t)0x10) /*!< Interrupt Level detection Enable bit */ -#define FSMC_SR2_IFEN ((uint8_t)0x20) /*!< Interrupt Falling Edge detection Enable bit */ -#define FSMC_SR2_FEMPT ((uint8_t)0x40) /*!< FIFO empty */ - -/******************* Bit definition for FSMC_SR3 register *******************/ -#define FSMC_SR3_IRS ((uint8_t)0x01) /*!< Interrupt Rising Edge status */ -#define FSMC_SR3_ILS ((uint8_t)0x02) /*!< Interrupt Level status */ -#define FSMC_SR3_IFS ((uint8_t)0x04) /*!< Interrupt Falling Edge status */ -#define FSMC_SR3_IREN ((uint8_t)0x08) /*!< Interrupt Rising Edge detection Enable bit */ -#define FSMC_SR3_ILEN ((uint8_t)0x10) /*!< Interrupt Level detection Enable bit */ -#define FSMC_SR3_IFEN ((uint8_t)0x20) /*!< Interrupt Falling Edge detection Enable bit */ -#define FSMC_SR3_FEMPT ((uint8_t)0x40) /*!< FIFO empty */ - -/******************* Bit definition for FSMC_SR4 register *******************/ -#define FSMC_SR4_IRS ((uint8_t)0x01) /*!< Interrupt Rising Edge status */ -#define FSMC_SR4_ILS ((uint8_t)0x02) /*!< Interrupt Level status */ -#define FSMC_SR4_IFS ((uint8_t)0x04) /*!< Interrupt Falling Edge status */ -#define FSMC_SR4_IREN ((uint8_t)0x08) /*!< Interrupt Rising Edge detection Enable bit */ -#define FSMC_SR4_ILEN ((uint8_t)0x10) /*!< Interrupt Level detection Enable bit */ -#define FSMC_SR4_IFEN ((uint8_t)0x20) /*!< Interrupt Falling Edge detection Enable bit */ -#define FSMC_SR4_FEMPT ((uint8_t)0x40) /*!< FIFO empty */ - -/****************** Bit definition for FSMC_PMEM2 register ******************/ -#define FSMC_PMEM2_MEMSET2 ((uint32_t)0x000000FF) /*!< MEMSET2[7:0] bits (Common memory 2 setup time) */ -#define FSMC_PMEM2_MEMSET2_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PMEM2_MEMSET2_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PMEM2_MEMSET2_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PMEM2_MEMSET2_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PMEM2_MEMSET2_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PMEM2_MEMSET2_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PMEM2_MEMSET2_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PMEM2_MEMSET2_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PMEM2_MEMWAIT2 ((uint32_t)0x0000FF00) /*!< MEMWAIT2[7:0] bits (Common memory 2 wait time) */ -#define FSMC_PMEM2_MEMWAIT2_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PMEM2_MEMWAIT2_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PMEM2_MEMWAIT2_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PMEM2_MEMWAIT2_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PMEM2_MEMWAIT2_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PMEM2_MEMWAIT2_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PMEM2_MEMWAIT2_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PMEM2_MEMWAIT2_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PMEM2_MEMHOLD2 ((uint32_t)0x00FF0000) /*!< MEMHOLD2[7:0] bits (Common memory 2 hold time) */ -#define FSMC_PMEM2_MEMHOLD2_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PMEM2_MEMHOLD2_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PMEM2_MEMHOLD2_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PMEM2_MEMHOLD2_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PMEM2_MEMHOLD2_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PMEM2_MEMHOLD2_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PMEM2_MEMHOLD2_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PMEM2_MEMHOLD2_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PMEM2_MEMHIZ2 ((uint32_t)0xFF000000) /*!< MEMHIZ2[7:0] bits (Common memory 2 databus HiZ time) */ -#define FSMC_PMEM2_MEMHIZ2_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PMEM2_MEMHIZ2_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PMEM2_MEMHIZ2_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PMEM2_MEMHIZ2_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PMEM2_MEMHIZ2_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PMEM2_MEMHIZ2_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PMEM2_MEMHIZ2_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PMEM2_MEMHIZ2_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PMEM3 register ******************/ -#define FSMC_PMEM3_MEMSET3 ((uint32_t)0x000000FF) /*!< MEMSET3[7:0] bits (Common memory 3 setup time) */ -#define FSMC_PMEM3_MEMSET3_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PMEM3_MEMSET3_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PMEM3_MEMSET3_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PMEM3_MEMSET3_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PMEM3_MEMSET3_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PMEM3_MEMSET3_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PMEM3_MEMSET3_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PMEM3_MEMSET3_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PMEM3_MEMWAIT3 ((uint32_t)0x0000FF00) /*!< MEMWAIT3[7:0] bits (Common memory 3 wait time) */ -#define FSMC_PMEM3_MEMWAIT3_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PMEM3_MEMWAIT3_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PMEM3_MEMWAIT3_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PMEM3_MEMWAIT3_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PMEM3_MEMWAIT3_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PMEM3_MEMWAIT3_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PMEM3_MEMWAIT3_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PMEM3_MEMWAIT3_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PMEM3_MEMHOLD3 ((uint32_t)0x00FF0000) /*!< MEMHOLD3[7:0] bits (Common memory 3 hold time) */ -#define FSMC_PMEM3_MEMHOLD3_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PMEM3_MEMHOLD3_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PMEM3_MEMHOLD3_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PMEM3_MEMHOLD3_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PMEM3_MEMHOLD3_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PMEM3_MEMHOLD3_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PMEM3_MEMHOLD3_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PMEM3_MEMHOLD3_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PMEM3_MEMHIZ3 ((uint32_t)0xFF000000) /*!< MEMHIZ3[7:0] bits (Common memory 3 databus HiZ time) */ -#define FSMC_PMEM3_MEMHIZ3_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PMEM3_MEMHIZ3_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PMEM3_MEMHIZ3_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PMEM3_MEMHIZ3_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PMEM3_MEMHIZ3_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PMEM3_MEMHIZ3_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PMEM3_MEMHIZ3_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PMEM3_MEMHIZ3_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PMEM4 register ******************/ -#define FSMC_PMEM4_MEMSET4 ((uint32_t)0x000000FF) /*!< MEMSET4[7:0] bits (Common memory 4 setup time) */ -#define FSMC_PMEM4_MEMSET4_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PMEM4_MEMSET4_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PMEM4_MEMSET4_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PMEM4_MEMSET4_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PMEM4_MEMSET4_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PMEM4_MEMSET4_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PMEM4_MEMSET4_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PMEM4_MEMSET4_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PMEM4_MEMWAIT4 ((uint32_t)0x0000FF00) /*!< MEMWAIT4[7:0] bits (Common memory 4 wait time) */ -#define FSMC_PMEM4_MEMWAIT4_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PMEM4_MEMWAIT4_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PMEM4_MEMWAIT4_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PMEM4_MEMWAIT4_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PMEM4_MEMWAIT4_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PMEM4_MEMWAIT4_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PMEM4_MEMWAIT4_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PMEM4_MEMWAIT4_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PMEM4_MEMHOLD4 ((uint32_t)0x00FF0000) /*!< MEMHOLD4[7:0] bits (Common memory 4 hold time) */ -#define FSMC_PMEM4_MEMHOLD4_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PMEM4_MEMHOLD4_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PMEM4_MEMHOLD4_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PMEM4_MEMHOLD4_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PMEM4_MEMHOLD4_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PMEM4_MEMHOLD4_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PMEM4_MEMHOLD4_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PMEM4_MEMHOLD4_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PMEM4_MEMHIZ4 ((uint32_t)0xFF000000) /*!< MEMHIZ4[7:0] bits (Common memory 4 databus HiZ time) */ -#define FSMC_PMEM4_MEMHIZ4_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PMEM4_MEMHIZ4_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PMEM4_MEMHIZ4_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PMEM4_MEMHIZ4_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PMEM4_MEMHIZ4_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PMEM4_MEMHIZ4_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PMEM4_MEMHIZ4_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PMEM4_MEMHIZ4_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PATT2 register ******************/ -#define FSMC_PATT2_ATTSET2 ((uint32_t)0x000000FF) /*!< ATTSET2[7:0] bits (Attribute memory 2 setup time) */ -#define FSMC_PATT2_ATTSET2_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PATT2_ATTSET2_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PATT2_ATTSET2_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PATT2_ATTSET2_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PATT2_ATTSET2_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PATT2_ATTSET2_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PATT2_ATTSET2_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PATT2_ATTSET2_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PATT2_ATTWAIT2 ((uint32_t)0x0000FF00) /*!< ATTWAIT2[7:0] bits (Attribute memory 2 wait time) */ -#define FSMC_PATT2_ATTWAIT2_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PATT2_ATTWAIT2_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PATT2_ATTWAIT2_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PATT2_ATTWAIT2_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PATT2_ATTWAIT2_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PATT2_ATTWAIT2_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PATT2_ATTWAIT2_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PATT2_ATTWAIT2_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PATT2_ATTHOLD2 ((uint32_t)0x00FF0000) /*!< ATTHOLD2[7:0] bits (Attribute memory 2 hold time) */ -#define FSMC_PATT2_ATTHOLD2_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PATT2_ATTHOLD2_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PATT2_ATTHOLD2_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PATT2_ATTHOLD2_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PATT2_ATTHOLD2_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PATT2_ATTHOLD2_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PATT2_ATTHOLD2_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PATT2_ATTHOLD2_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PATT2_ATTHIZ2 ((uint32_t)0xFF000000) /*!< ATTHIZ2[7:0] bits (Attribute memory 2 databus HiZ time) */ -#define FSMC_PATT2_ATTHIZ2_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PATT2_ATTHIZ2_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PATT2_ATTHIZ2_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PATT2_ATTHIZ2_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PATT2_ATTHIZ2_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PATT2_ATTHIZ2_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PATT2_ATTHIZ2_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PATT2_ATTHIZ2_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PATT3 register ******************/ -#define FSMC_PATT3_ATTSET3 ((uint32_t)0x000000FF) /*!< ATTSET3[7:0] bits (Attribute memory 3 setup time) */ -#define FSMC_PATT3_ATTSET3_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PATT3_ATTSET3_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PATT3_ATTSET3_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PATT3_ATTSET3_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PATT3_ATTSET3_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PATT3_ATTSET3_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PATT3_ATTSET3_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PATT3_ATTSET3_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PATT3_ATTWAIT3 ((uint32_t)0x0000FF00) /*!< ATTWAIT3[7:0] bits (Attribute memory 3 wait time) */ -#define FSMC_PATT3_ATTWAIT3_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PATT3_ATTWAIT3_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PATT3_ATTWAIT3_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PATT3_ATTWAIT3_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PATT3_ATTWAIT3_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PATT3_ATTWAIT3_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PATT3_ATTWAIT3_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PATT3_ATTWAIT3_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PATT3_ATTHOLD3 ((uint32_t)0x00FF0000) /*!< ATTHOLD3[7:0] bits (Attribute memory 3 hold time) */ -#define FSMC_PATT3_ATTHOLD3_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PATT3_ATTHOLD3_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PATT3_ATTHOLD3_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PATT3_ATTHOLD3_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PATT3_ATTHOLD3_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PATT3_ATTHOLD3_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PATT3_ATTHOLD3_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PATT3_ATTHOLD3_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PATT3_ATTHIZ3 ((uint32_t)0xFF000000) /*!< ATTHIZ3[7:0] bits (Attribute memory 3 databus HiZ time) */ -#define FSMC_PATT3_ATTHIZ3_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PATT3_ATTHIZ3_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PATT3_ATTHIZ3_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PATT3_ATTHIZ3_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PATT3_ATTHIZ3_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PATT3_ATTHIZ3_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PATT3_ATTHIZ3_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PATT3_ATTHIZ3_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PATT4 register ******************/ -#define FSMC_PATT4_ATTSET4 ((uint32_t)0x000000FF) /*!< ATTSET4[7:0] bits (Attribute memory 4 setup time) */ -#define FSMC_PATT4_ATTSET4_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PATT4_ATTSET4_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PATT4_ATTSET4_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PATT4_ATTSET4_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PATT4_ATTSET4_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PATT4_ATTSET4_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PATT4_ATTSET4_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PATT4_ATTSET4_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PATT4_ATTWAIT4 ((uint32_t)0x0000FF00) /*!< ATTWAIT4[7:0] bits (Attribute memory 4 wait time) */ -#define FSMC_PATT4_ATTWAIT4_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PATT4_ATTWAIT4_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PATT4_ATTWAIT4_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PATT4_ATTWAIT4_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PATT4_ATTWAIT4_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PATT4_ATTWAIT4_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PATT4_ATTWAIT4_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PATT4_ATTWAIT4_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PATT4_ATTHOLD4 ((uint32_t)0x00FF0000) /*!< ATTHOLD4[7:0] bits (Attribute memory 4 hold time) */ -#define FSMC_PATT4_ATTHOLD4_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PATT4_ATTHOLD4_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PATT4_ATTHOLD4_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PATT4_ATTHOLD4_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PATT4_ATTHOLD4_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PATT4_ATTHOLD4_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PATT4_ATTHOLD4_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PATT4_ATTHOLD4_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PATT4_ATTHIZ4 ((uint32_t)0xFF000000) /*!< ATTHIZ4[7:0] bits (Attribute memory 4 databus HiZ time) */ -#define FSMC_PATT4_ATTHIZ4_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PATT4_ATTHIZ4_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PATT4_ATTHIZ4_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PATT4_ATTHIZ4_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PATT4_ATTHIZ4_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PATT4_ATTHIZ4_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PATT4_ATTHIZ4_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PATT4_ATTHIZ4_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PIO4 register *******************/ -#define FSMC_PIO4_IOSET4 ((uint32_t)0x000000FF) /*!< IOSET4[7:0] bits (I/O 4 setup time) */ -#define FSMC_PIO4_IOSET4_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PIO4_IOSET4_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PIO4_IOSET4_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PIO4_IOSET4_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PIO4_IOSET4_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PIO4_IOSET4_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PIO4_IOSET4_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PIO4_IOSET4_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PIO4_IOWAIT4 ((uint32_t)0x0000FF00) /*!< IOWAIT4[7:0] bits (I/O 4 wait time) */ -#define FSMC_PIO4_IOWAIT4_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PIO4_IOWAIT4_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PIO4_IOWAIT4_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PIO4_IOWAIT4_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PIO4_IOWAIT4_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PIO4_IOWAIT4_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PIO4_IOWAIT4_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PIO4_IOWAIT4_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PIO4_IOHOLD4 ((uint32_t)0x00FF0000) /*!< IOHOLD4[7:0] bits (I/O 4 hold time) */ -#define FSMC_PIO4_IOHOLD4_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PIO4_IOHOLD4_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PIO4_IOHOLD4_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PIO4_IOHOLD4_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PIO4_IOHOLD4_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PIO4_IOHOLD4_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PIO4_IOHOLD4_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PIO4_IOHOLD4_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PIO4_IOHIZ4 ((uint32_t)0xFF000000) /*!< IOHIZ4[7:0] bits (I/O 4 databus HiZ time) */ -#define FSMC_PIO4_IOHIZ4_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PIO4_IOHIZ4_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PIO4_IOHIZ4_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PIO4_IOHIZ4_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PIO4_IOHIZ4_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PIO4_IOHIZ4_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PIO4_IOHIZ4_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PIO4_IOHIZ4_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_ECCR2 register ******************/ -#define FSMC_ECCR2_ECC2 ((uint32_t)0xFFFFFFFF) /*!< ECC result */ - -/****************** Bit definition for FSMC_ECCR3 register ******************/ -#define FSMC_ECCR3_ECC3 ((uint32_t)0xFFFFFFFF) /*!< ECC result */ - -/******************************************************************************/ -/* */ -/* SD host Interface */ -/* */ -/******************************************************************************/ - -/****************** Bit definition for SDIO_POWER register ******************/ -#define SDIO_POWER_PWRCTRL ((uint8_t)0x03) /*!< PWRCTRL[1:0] bits (Power supply control bits) */ -#define SDIO_POWER_PWRCTRL_0 ((uint8_t)0x01) /*!< Bit 0 */ -#define SDIO_POWER_PWRCTRL_1 ((uint8_t)0x02) /*!< Bit 1 */ - -/****************** Bit definition for SDIO_CLKCR register ******************/ -#define SDIO_CLKCR_CLKDIV ((uint16_t)0x00FF) /*!< Clock divide factor */ -#define SDIO_CLKCR_CLKEN ((uint16_t)0x0100) /*!< Clock enable bit */ -#define SDIO_CLKCR_PWRSAV ((uint16_t)0x0200) /*!< Power saving configuration bit */ -#define SDIO_CLKCR_BYPASS ((uint16_t)0x0400) /*!< Clock divider bypass enable bit */ - -#define SDIO_CLKCR_WIDBUS ((uint16_t)0x1800) /*!< WIDBUS[1:0] bits (Wide bus mode enable bit) */ -#define SDIO_CLKCR_WIDBUS_0 ((uint16_t)0x0800) /*!< Bit 0 */ -#define SDIO_CLKCR_WIDBUS_1 ((uint16_t)0x1000) /*!< Bit 1 */ - -#define SDIO_CLKCR_NEGEDGE ((uint16_t)0x2000) /*!< SDIO_CK dephasing selection bit */ -#define SDIO_CLKCR_HWFC_EN ((uint16_t)0x4000) /*!< HW Flow Control enable */ - -/******************* Bit definition for SDIO_ARG register *******************/ -#define SDIO_ARG_CMDARG ((uint32_t)0xFFFFFFFF) /*!< Command argument */ - -/******************* Bit definition for SDIO_CMD register *******************/ -#define SDIO_CMD_CMDINDEX ((uint16_t)0x003F) /*!< Command Index */ - -#define SDIO_CMD_WAITRESP ((uint16_t)0x00C0) /*!< WAITRESP[1:0] bits (Wait for response bits) */ -#define SDIO_CMD_WAITRESP_0 ((uint16_t)0x0040) /*!< Bit 0 */ -#define SDIO_CMD_WAITRESP_1 ((uint16_t)0x0080) /*!< Bit 1 */ - -#define SDIO_CMD_WAITINT ((uint16_t)0x0100) /*!< CPSM Waits for Interrupt Request */ -#define SDIO_CMD_WAITPEND ((uint16_t)0x0200) /*!< CPSM Waits for ends of data transfer (CmdPend internal signal) */ -#define SDIO_CMD_CPSMEN ((uint16_t)0x0400) /*!< Command path state machine (CPSM) Enable bit */ -#define SDIO_CMD_SDIOSUSPEND ((uint16_t)0x0800) /*!< SD I/O suspend command */ -#define SDIO_CMD_ENCMDCOMPL ((uint16_t)0x1000) /*!< Enable CMD completion */ -#define SDIO_CMD_NIEN ((uint16_t)0x2000) /*!< Not Interrupt Enable */ -#define SDIO_CMD_CEATACMD ((uint16_t)0x4000) /*!< CE-ATA command */ - -/***************** Bit definition for SDIO_RESPCMD register *****************/ -#define SDIO_RESPCMD_RESPCMD ((uint8_t)0x3F) /*!< Response command index */ - -/****************** Bit definition for SDIO_RESP0 register ******************/ -#define SDIO_RESP0_CARDSTATUS0 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_RESP1 register ******************/ -#define SDIO_RESP1_CARDSTATUS1 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_RESP2 register ******************/ -#define SDIO_RESP2_CARDSTATUS2 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_RESP3 register ******************/ -#define SDIO_RESP3_CARDSTATUS3 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_RESP4 register ******************/ -#define SDIO_RESP4_CARDSTATUS4 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_DTIMER register *****************/ -#define SDIO_DTIMER_DATATIME ((uint32_t)0xFFFFFFFF) /*!< Data timeout period. */ - -/****************** Bit definition for SDIO_DLEN register *******************/ -#define SDIO_DLEN_DATALENGTH ((uint32_t)0x01FFFFFF) /*!< Data length value */ - -/****************** Bit definition for SDIO_DCTRL register ******************/ -#define SDIO_DCTRL_DTEN ((uint16_t)0x0001) /*!< Data transfer enabled bit */ -#define SDIO_DCTRL_DTDIR ((uint16_t)0x0002) /*!< Data transfer direction selection */ -#define SDIO_DCTRL_DTMODE ((uint16_t)0x0004) /*!< Data transfer mode selection */ -#define SDIO_DCTRL_DMAEN ((uint16_t)0x0008) /*!< DMA enabled bit */ - -#define SDIO_DCTRL_DBLOCKSIZE ((uint16_t)0x00F0) /*!< DBLOCKSIZE[3:0] bits (Data block size) */ -#define SDIO_DCTRL_DBLOCKSIZE_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define SDIO_DCTRL_DBLOCKSIZE_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define SDIO_DCTRL_DBLOCKSIZE_2 ((uint16_t)0x0040) /*!< Bit 2 */ -#define SDIO_DCTRL_DBLOCKSIZE_3 ((uint16_t)0x0080) /*!< Bit 3 */ - -#define SDIO_DCTRL_RWSTART ((uint16_t)0x0100) /*!< Read wait start */ -#define SDIO_DCTRL_RWSTOP ((uint16_t)0x0200) /*!< Read wait stop */ -#define SDIO_DCTRL_RWMOD ((uint16_t)0x0400) /*!< Read wait mode */ -#define SDIO_DCTRL_SDIOEN ((uint16_t)0x0800) /*!< SD I/O enable functions */ - -/****************** Bit definition for SDIO_DCOUNT register *****************/ -#define SDIO_DCOUNT_DATACOUNT ((uint32_t)0x01FFFFFF) /*!< Data count value */ - -/****************** Bit definition for SDIO_STA register ********************/ -#define SDIO_STA_CCRCFAIL ((uint32_t)0x00000001) /*!< Command response received (CRC check failed) */ -#define SDIO_STA_DCRCFAIL ((uint32_t)0x00000002) /*!< Data block sent/received (CRC check failed) */ -#define SDIO_STA_CTIMEOUT ((uint32_t)0x00000004) /*!< Command response timeout */ -#define SDIO_STA_DTIMEOUT ((uint32_t)0x00000008) /*!< Data timeout */ -#define SDIO_STA_TXUNDERR ((uint32_t)0x00000010) /*!< Transmit FIFO underrun error */ -#define SDIO_STA_RXOVERR ((uint32_t)0x00000020) /*!< Received FIFO overrun error */ -#define SDIO_STA_CMDREND ((uint32_t)0x00000040) /*!< Command response received (CRC check passed) */ -#define SDIO_STA_CMDSENT ((uint32_t)0x00000080) /*!< Command sent (no response required) */ -#define SDIO_STA_DATAEND ((uint32_t)0x00000100) /*!< Data end (data counter, SDIDCOUNT, is zero) */ -#define SDIO_STA_STBITERR ((uint32_t)0x00000200) /*!< Start bit not detected on all data signals in wide bus mode */ -#define SDIO_STA_DBCKEND ((uint32_t)0x00000400) /*!< Data block sent/received (CRC check passed) */ -#define SDIO_STA_CMDACT ((uint32_t)0x00000800) /*!< Command transfer in progress */ -#define SDIO_STA_TXACT ((uint32_t)0x00001000) /*!< Data transmit in progress */ -#define SDIO_STA_RXACT ((uint32_t)0x00002000) /*!< Data receive in progress */ -#define SDIO_STA_TXFIFOHE ((uint32_t)0x00004000) /*!< Transmit FIFO Half Empty: at least 8 words can be written into the FIFO */ -#define SDIO_STA_RXFIFOHF ((uint32_t)0x00008000) /*!< Receive FIFO Half Full: there are at least 8 words in the FIFO */ -#define SDIO_STA_TXFIFOF ((uint32_t)0x00010000) /*!< Transmit FIFO full */ -#define SDIO_STA_RXFIFOF ((uint32_t)0x00020000) /*!< Receive FIFO full */ -#define SDIO_STA_TXFIFOE ((uint32_t)0x00040000) /*!< Transmit FIFO empty */ -#define SDIO_STA_RXFIFOE ((uint32_t)0x00080000) /*!< Receive FIFO empty */ -#define SDIO_STA_TXDAVL ((uint32_t)0x00100000) /*!< Data available in transmit FIFO */ -#define SDIO_STA_RXDAVL ((uint32_t)0x00200000) /*!< Data available in receive FIFO */ -#define SDIO_STA_SDIOIT ((uint32_t)0x00400000) /*!< SDIO interrupt received */ -#define SDIO_STA_CEATAEND ((uint32_t)0x00800000) /*!< CE-ATA command completion signal received for CMD61 */ - -/******************* Bit definition for SDIO_ICR register *******************/ -#define SDIO_ICR_CCRCFAILC ((uint32_t)0x00000001) /*!< CCRCFAIL flag clear bit */ -#define SDIO_ICR_DCRCFAILC ((uint32_t)0x00000002) /*!< DCRCFAIL flag clear bit */ -#define SDIO_ICR_CTIMEOUTC ((uint32_t)0x00000004) /*!< CTIMEOUT flag clear bit */ -#define SDIO_ICR_DTIMEOUTC ((uint32_t)0x00000008) /*!< DTIMEOUT flag clear bit */ -#define SDIO_ICR_TXUNDERRC ((uint32_t)0x00000010) /*!< TXUNDERR flag clear bit */ -#define SDIO_ICR_RXOVERRC ((uint32_t)0x00000020) /*!< RXOVERR flag clear bit */ -#define SDIO_ICR_CMDRENDC ((uint32_t)0x00000040) /*!< CMDREND flag clear bit */ -#define SDIO_ICR_CMDSENTC ((uint32_t)0x00000080) /*!< CMDSENT flag clear bit */ -#define SDIO_ICR_DATAENDC ((uint32_t)0x00000100) /*!< DATAEND flag clear bit */ -#define SDIO_ICR_STBITERRC ((uint32_t)0x00000200) /*!< STBITERR flag clear bit */ -#define SDIO_ICR_DBCKENDC ((uint32_t)0x00000400) /*!< DBCKEND flag clear bit */ -#define SDIO_ICR_SDIOITC ((uint32_t)0x00400000) /*!< SDIOIT flag clear bit */ -#define SDIO_ICR_CEATAENDC ((uint32_t)0x00800000) /*!< CEATAEND flag clear bit */ - -/****************** Bit definition for SDIO_MASK register *******************/ -#define SDIO_MASK_CCRCFAILIE ((uint32_t)0x00000001) /*!< Command CRC Fail Interrupt Enable */ -#define SDIO_MASK_DCRCFAILIE ((uint32_t)0x00000002) /*!< Data CRC Fail Interrupt Enable */ -#define SDIO_MASK_CTIMEOUTIE ((uint32_t)0x00000004) /*!< Command TimeOut Interrupt Enable */ -#define SDIO_MASK_DTIMEOUTIE ((uint32_t)0x00000008) /*!< Data TimeOut Interrupt Enable */ -#define SDIO_MASK_TXUNDERRIE ((uint32_t)0x00000010) /*!< Tx FIFO UnderRun Error Interrupt Enable */ -#define SDIO_MASK_RXOVERRIE ((uint32_t)0x00000020) /*!< Rx FIFO OverRun Error Interrupt Enable */ -#define SDIO_MASK_CMDRENDIE ((uint32_t)0x00000040) /*!< Command Response Received Interrupt Enable */ -#define SDIO_MASK_CMDSENTIE ((uint32_t)0x00000080) /*!< Command Sent Interrupt Enable */ -#define SDIO_MASK_DATAENDIE ((uint32_t)0x00000100) /*!< Data End Interrupt Enable */ -#define SDIO_MASK_STBITERRIE ((uint32_t)0x00000200) /*!< Start Bit Error Interrupt Enable */ -#define SDIO_MASK_DBCKENDIE ((uint32_t)0x00000400) /*!< Data Block End Interrupt Enable */ -#define SDIO_MASK_CMDACTIE ((uint32_t)0x00000800) /*!< Command Acting Interrupt Enable */ -#define SDIO_MASK_TXACTIE ((uint32_t)0x00001000) /*!< Data Transmit Acting Interrupt Enable */ -#define SDIO_MASK_RXACTIE ((uint32_t)0x00002000) /*!< Data receive acting interrupt enabled */ -#define SDIO_MASK_TXFIFOHEIE ((uint32_t)0x00004000) /*!< Tx FIFO Half Empty interrupt Enable */ -#define SDIO_MASK_RXFIFOHFIE ((uint32_t)0x00008000) /*!< Rx FIFO Half Full interrupt Enable */ -#define SDIO_MASK_TXFIFOFIE ((uint32_t)0x00010000) /*!< Tx FIFO Full interrupt Enable */ -#define SDIO_MASK_RXFIFOFIE ((uint32_t)0x00020000) /*!< Rx FIFO Full interrupt Enable */ -#define SDIO_MASK_TXFIFOEIE ((uint32_t)0x00040000) /*!< Tx FIFO Empty interrupt Enable */ -#define SDIO_MASK_RXFIFOEIE ((uint32_t)0x00080000) /*!< Rx FIFO Empty interrupt Enable */ -#define SDIO_MASK_TXDAVLIE ((uint32_t)0x00100000) /*!< Data available in Tx FIFO interrupt Enable */ -#define SDIO_MASK_RXDAVLIE ((uint32_t)0x00200000) /*!< Data available in Rx FIFO interrupt Enable */ -#define SDIO_MASK_SDIOITIE ((uint32_t)0x00400000) /*!< SDIO Mode Interrupt Received interrupt Enable */ -#define SDIO_MASK_CEATAENDIE ((uint32_t)0x00800000) /*!< CE-ATA command completion signal received Interrupt Enable */ - -/***************** Bit definition for SDIO_FIFOCNT register *****************/ -#define SDIO_FIFOCNT_FIFOCOUNT ((uint32_t)0x00FFFFFF) /*!< Remaining number of words to be written to or read from the FIFO */ - -/****************** Bit definition for SDIO_FIFO register *******************/ -#define SDIO_FIFO_FIFODATA ((uint32_t)0xFFFFFFFF) /*!< Receive and transmit FIFO data */ - -/******************************************************************************/ -/* */ -/* USB Device FS */ -/* */ -/******************************************************************************/ - -/*!< Endpoint-specific registers */ -/******************* Bit definition for USB_EP0R register *******************/ -#define USB_EP0R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP0R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP0R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP0R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP0R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP0R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP0R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP0R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP0R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP0R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP0R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP0R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP0R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP0R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP0R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP0R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP1R register *******************/ -#define USB_EP1R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP1R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP1R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP1R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP1R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP1R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP1R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP1R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP1R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP1R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP1R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP1R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP1R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP1R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP1R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP1R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP2R register *******************/ -#define USB_EP2R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP2R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP2R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP2R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP2R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP2R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP2R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP2R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP2R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP2R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP2R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP2R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP2R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP2R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP2R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP2R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP3R register *******************/ -#define USB_EP3R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP3R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP3R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP3R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP3R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP3R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP3R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP3R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP3R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP3R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP3R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP3R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP3R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP3R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP3R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP3R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP4R register *******************/ -#define USB_EP4R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP4R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP4R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP4R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP4R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP4R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP4R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP4R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP4R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP4R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP4R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP4R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP4R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP4R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP4R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP4R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP5R register *******************/ -#define USB_EP5R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP5R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP5R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP5R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP5R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP5R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP5R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP5R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP5R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP5R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP5R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP5R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP5R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP5R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP5R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP5R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP6R register *******************/ -#define USB_EP6R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP6R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP6R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP6R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP6R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP6R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP6R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP6R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP6R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP6R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP6R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP6R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP6R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP6R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP6R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP6R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP7R register *******************/ -#define USB_EP7R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP7R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP7R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP7R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP7R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP7R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP7R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP7R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP7R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP7R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP7R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP7R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP7R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP7R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP7R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP7R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/*!< Common registers */ -/******************* Bit definition for USB_CNTR register *******************/ -#define USB_CNTR_FRES ((uint16_t)0x0001) /*!< Force USB Reset */ -#define USB_CNTR_PDWN ((uint16_t)0x0002) /*!< Power down */ -#define USB_CNTR_LP_MODE ((uint16_t)0x0004) /*!< Low-power mode */ -#define USB_CNTR_FSUSP ((uint16_t)0x0008) /*!< Force suspend */ -#define USB_CNTR_RESUME ((uint16_t)0x0010) /*!< Resume request */ -#define USB_CNTR_ESOFM ((uint16_t)0x0100) /*!< Expected Start Of Frame Interrupt Mask */ -#define USB_CNTR_SOFM ((uint16_t)0x0200) /*!< Start Of Frame Interrupt Mask */ -#define USB_CNTR_RESETM ((uint16_t)0x0400) /*!< RESET Interrupt Mask */ -#define USB_CNTR_SUSPM ((uint16_t)0x0800) /*!< Suspend mode Interrupt Mask */ -#define USB_CNTR_WKUPM ((uint16_t)0x1000) /*!< Wakeup Interrupt Mask */ -#define USB_CNTR_ERRM ((uint16_t)0x2000) /*!< Error Interrupt Mask */ -#define USB_CNTR_PMAOVRM ((uint16_t)0x4000) /*!< Packet Memory Area Over / Underrun Interrupt Mask */ -#define USB_CNTR_CTRM ((uint16_t)0x8000) /*!< Correct Transfer Interrupt Mask */ - -/******************* Bit definition for USB_ISTR register *******************/ -#define USB_ISTR_EP_ID ((uint16_t)0x000F) /*!< Endpoint Identifier */ -#define USB_ISTR_DIR ((uint16_t)0x0010) /*!< Direction of transaction */ -#define USB_ISTR_ESOF ((uint16_t)0x0100) /*!< Expected Start Of Frame */ -#define USB_ISTR_SOF ((uint16_t)0x0200) /*!< Start Of Frame */ -#define USB_ISTR_RESET ((uint16_t)0x0400) /*!< USB RESET request */ -#define USB_ISTR_SUSP ((uint16_t)0x0800) /*!< Suspend mode request */ -#define USB_ISTR_WKUP ((uint16_t)0x1000) /*!< Wake up */ -#define USB_ISTR_ERR ((uint16_t)0x2000) /*!< Error */ -#define USB_ISTR_PMAOVR ((uint16_t)0x4000) /*!< Packet Memory Area Over / Underrun */ -#define USB_ISTR_CTR ((uint16_t)0x8000) /*!< Correct Transfer */ - -/******************* Bit definition for USB_FNR register ********************/ -#define USB_FNR_FN ((uint16_t)0x07FF) /*!< Frame Number */ -#define USB_FNR_LSOF ((uint16_t)0x1800) /*!< Lost SOF */ -#define USB_FNR_LCK ((uint16_t)0x2000) /*!< Locked */ -#define USB_FNR_RXDM ((uint16_t)0x4000) /*!< Receive Data - Line Status */ -#define USB_FNR_RXDP ((uint16_t)0x8000) /*!< Receive Data + Line Status */ - -/****************** Bit definition for USB_DADDR register *******************/ -#define USB_DADDR_ADD ((uint8_t)0x7F) /*!< ADD[6:0] bits (Device Address) */ -#define USB_DADDR_ADD0 ((uint8_t)0x01) /*!< Bit 0 */ -#define USB_DADDR_ADD1 ((uint8_t)0x02) /*!< Bit 1 */ -#define USB_DADDR_ADD2 ((uint8_t)0x04) /*!< Bit 2 */ -#define USB_DADDR_ADD3 ((uint8_t)0x08) /*!< Bit 3 */ -#define USB_DADDR_ADD4 ((uint8_t)0x10) /*!< Bit 4 */ -#define USB_DADDR_ADD5 ((uint8_t)0x20) /*!< Bit 5 */ -#define USB_DADDR_ADD6 ((uint8_t)0x40) /*!< Bit 6 */ - -#define USB_DADDR_EF ((uint8_t)0x80) /*!< Enable Function */ - -/****************** Bit definition for USB_BTABLE register ******************/ -#define USB_BTABLE_BTABLE ((uint16_t)0xFFF8) /*!< Buffer Table */ - -/*!< Buffer descriptor table */ -/***************** Bit definition for USB_ADDR0_TX register *****************/ -#define USB_ADDR0_TX_ADDR0_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 0 */ - -/***************** Bit definition for USB_ADDR1_TX register *****************/ -#define USB_ADDR1_TX_ADDR1_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 1 */ - -/***************** Bit definition for USB_ADDR2_TX register *****************/ -#define USB_ADDR2_TX_ADDR2_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 2 */ - -/***************** Bit definition for USB_ADDR3_TX register *****************/ -#define USB_ADDR3_TX_ADDR3_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 3 */ - -/***************** Bit definition for USB_ADDR4_TX register *****************/ -#define USB_ADDR4_TX_ADDR4_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 4 */ - -/***************** Bit definition for USB_ADDR5_TX register *****************/ -#define USB_ADDR5_TX_ADDR5_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 5 */ - -/***************** Bit definition for USB_ADDR6_TX register *****************/ -#define USB_ADDR6_TX_ADDR6_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 6 */ - -/***************** Bit definition for USB_ADDR7_TX register *****************/ -#define USB_ADDR7_TX_ADDR7_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 7 */ - -/*----------------------------------------------------------------------------*/ - -/***************** Bit definition for USB_COUNT0_TX register ****************/ -#define USB_COUNT0_TX_COUNT0_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 0 */ - -/***************** Bit definition for USB_COUNT1_TX register ****************/ -#define USB_COUNT1_TX_COUNT1_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 1 */ - -/***************** Bit definition for USB_COUNT2_TX register ****************/ -#define USB_COUNT2_TX_COUNT2_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 2 */ - -/***************** Bit definition for USB_COUNT3_TX register ****************/ -#define USB_COUNT3_TX_COUNT3_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 3 */ - -/***************** Bit definition for USB_COUNT4_TX register ****************/ -#define USB_COUNT4_TX_COUNT4_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 4 */ - -/***************** Bit definition for USB_COUNT5_TX register ****************/ -#define USB_COUNT5_TX_COUNT5_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 5 */ - -/***************** Bit definition for USB_COUNT6_TX register ****************/ -#define USB_COUNT6_TX_COUNT6_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 6 */ - -/***************** Bit definition for USB_COUNT7_TX register ****************/ -#define USB_COUNT7_TX_COUNT7_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 7 */ - -/*----------------------------------------------------------------------------*/ - -/**************** Bit definition for USB_COUNT0_TX_0 register ***************/ -#define USB_COUNT0_TX_0_COUNT0_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 0 (low) */ - -/**************** Bit definition for USB_COUNT0_TX_1 register ***************/ -#define USB_COUNT0_TX_1_COUNT0_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 0 (high) */ - -/**************** Bit definition for USB_COUNT1_TX_0 register ***************/ -#define USB_COUNT1_TX_0_COUNT1_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 1 (low) */ - -/**************** Bit definition for USB_COUNT1_TX_1 register ***************/ -#define USB_COUNT1_TX_1_COUNT1_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 1 (high) */ - -/**************** Bit definition for USB_COUNT2_TX_0 register ***************/ -#define USB_COUNT2_TX_0_COUNT2_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 2 (low) */ - -/**************** Bit definition for USB_COUNT2_TX_1 register ***************/ -#define USB_COUNT2_TX_1_COUNT2_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 2 (high) */ - -/**************** Bit definition for USB_COUNT3_TX_0 register ***************/ -#define USB_COUNT3_TX_0_COUNT3_TX_0 ((uint16_t)0x000003FF) /*!< Transmission Byte Count 3 (low) */ - -/**************** Bit definition for USB_COUNT3_TX_1 register ***************/ -#define USB_COUNT3_TX_1_COUNT3_TX_1 ((uint16_t)0x03FF0000) /*!< Transmission Byte Count 3 (high) */ - -/**************** Bit definition for USB_COUNT4_TX_0 register ***************/ -#define USB_COUNT4_TX_0_COUNT4_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 4 (low) */ - -/**************** Bit definition for USB_COUNT4_TX_1 register ***************/ -#define USB_COUNT4_TX_1_COUNT4_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 4 (high) */ - -/**************** Bit definition for USB_COUNT5_TX_0 register ***************/ -#define USB_COUNT5_TX_0_COUNT5_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 5 (low) */ - -/**************** Bit definition for USB_COUNT5_TX_1 register ***************/ -#define USB_COUNT5_TX_1_COUNT5_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 5 (high) */ - -/**************** Bit definition for USB_COUNT6_TX_0 register ***************/ -#define USB_COUNT6_TX_0_COUNT6_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 6 (low) */ - -/**************** Bit definition for USB_COUNT6_TX_1 register ***************/ -#define USB_COUNT6_TX_1_COUNT6_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 6 (high) */ - -/**************** Bit definition for USB_COUNT7_TX_0 register ***************/ -#define USB_COUNT7_TX_0_COUNT7_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 7 (low) */ - -/**************** Bit definition for USB_COUNT7_TX_1 register ***************/ -#define USB_COUNT7_TX_1_COUNT7_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 7 (high) */ - -/*----------------------------------------------------------------------------*/ - -/***************** Bit definition for USB_ADDR0_RX register *****************/ -#define USB_ADDR0_RX_ADDR0_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 0 */ - -/***************** Bit definition for USB_ADDR1_RX register *****************/ -#define USB_ADDR1_RX_ADDR1_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 1 */ - -/***************** Bit definition for USB_ADDR2_RX register *****************/ -#define USB_ADDR2_RX_ADDR2_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 2 */ - -/***************** Bit definition for USB_ADDR3_RX register *****************/ -#define USB_ADDR3_RX_ADDR3_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 3 */ - -/***************** Bit definition for USB_ADDR4_RX register *****************/ -#define USB_ADDR4_RX_ADDR4_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 4 */ - -/***************** Bit definition for USB_ADDR5_RX register *****************/ -#define USB_ADDR5_RX_ADDR5_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 5 */ - -/***************** Bit definition for USB_ADDR6_RX register *****************/ -#define USB_ADDR6_RX_ADDR6_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 6 */ - -/***************** Bit definition for USB_ADDR7_RX register *****************/ -#define USB_ADDR7_RX_ADDR7_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 7 */ - -/*----------------------------------------------------------------------------*/ - -/***************** Bit definition for USB_COUNT0_RX register ****************/ -#define USB_COUNT0_RX_COUNT0_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT0_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT0_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT0_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT0_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT0_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT0_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT0_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT1_RX register ****************/ -#define USB_COUNT1_RX_COUNT1_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT1_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT1_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT1_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT1_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT1_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT1_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT1_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT2_RX register ****************/ -#define USB_COUNT2_RX_COUNT2_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT2_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT2_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT2_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT2_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT2_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT2_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT2_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT3_RX register ****************/ -#define USB_COUNT3_RX_COUNT3_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT3_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT3_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT3_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT3_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT3_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT3_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT3_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT4_RX register ****************/ -#define USB_COUNT4_RX_COUNT4_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT4_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT4_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT4_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT4_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT4_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT4_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT4_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT5_RX register ****************/ -#define USB_COUNT5_RX_COUNT5_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT5_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT5_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT5_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT5_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT5_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT5_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT5_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT6_RX register ****************/ -#define USB_COUNT6_RX_COUNT6_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT6_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT6_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT6_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT6_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT6_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT6_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT6_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT7_RX register ****************/ -#define USB_COUNT7_RX_COUNT7_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT7_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT7_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT7_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT7_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT7_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT7_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT7_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/*----------------------------------------------------------------------------*/ - -/**************** Bit definition for USB_COUNT0_RX_0 register ***************/ -#define USB_COUNT0_RX_0_COUNT0_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT0_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT0_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT0_RX_1 register ***************/ -#define USB_COUNT0_RX_1_COUNT0_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT0_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 1 */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT0_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT1_RX_0 register ***************/ -#define USB_COUNT1_RX_0_COUNT1_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT1_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT1_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT1_RX_1 register ***************/ -#define USB_COUNT1_RX_1_COUNT1_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT1_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT1_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT2_RX_0 register ***************/ -#define USB_COUNT2_RX_0_COUNT2_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT2_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT2_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT2_RX_1 register ***************/ -#define USB_COUNT2_RX_1_COUNT2_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT2_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT2_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT3_RX_0 register ***************/ -#define USB_COUNT3_RX_0_COUNT3_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT3_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT3_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT3_RX_1 register ***************/ -#define USB_COUNT3_RX_1_COUNT3_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT3_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT3_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT4_RX_0 register ***************/ -#define USB_COUNT4_RX_0_COUNT4_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT4_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT4_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT4_RX_1 register ***************/ -#define USB_COUNT4_RX_1_COUNT4_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT4_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT4_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT5_RX_0 register ***************/ -#define USB_COUNT5_RX_0_COUNT5_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT5_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT5_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT5_RX_1 register ***************/ -#define USB_COUNT5_RX_1_COUNT5_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT5_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT5_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/*************** Bit definition for USB_COUNT6_RX_0 register ***************/ -#define USB_COUNT6_RX_0_COUNT6_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT6_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT6_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT6_RX_1 register ***************/ -#define USB_COUNT6_RX_1_COUNT6_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT6_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT6_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/*************** Bit definition for USB_COUNT7_RX_0 register ****************/ -#define USB_COUNT7_RX_0_COUNT7_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT7_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT7_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/*************** Bit definition for USB_COUNT7_RX_1 register ****************/ -#define USB_COUNT7_RX_1_COUNT7_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT7_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT7_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/******************************************************************************/ -/* */ -/* Controller Area Network */ -/* */ -/******************************************************************************/ - -/*!< CAN control and status registers */ -/******************* Bit definition for CAN_MCR register ********************/ -#define CAN_MCR_INRQ ((uint16_t)0x0001) /*!< Initialization Request */ -#define CAN_MCR_SLEEP ((uint16_t)0x0002) /*!< Sleep Mode Request */ -#define CAN_MCR_TXFP ((uint16_t)0x0004) /*!< Transmit FIFO Priority */ -#define CAN_MCR_RFLM ((uint16_t)0x0008) /*!< Receive FIFO Locked Mode */ -#define CAN_MCR_NART ((uint16_t)0x0010) /*!< No Automatic Retransmission */ -#define CAN_MCR_AWUM ((uint16_t)0x0020) /*!< Automatic Wakeup Mode */ -#define CAN_MCR_ABOM ((uint16_t)0x0040) /*!< Automatic Bus-Off Management */ -#define CAN_MCR_TTCM ((uint16_t)0x0080) /*!< Time Triggered Communication Mode */ -#define CAN_MCR_RESET ((uint16_t)0x8000) /*!< CAN software master reset */ - -/******************* Bit definition for CAN_MSR register ********************/ -#define CAN_MSR_INAK ((uint16_t)0x0001) /*!< Initialization Acknowledge */ -#define CAN_MSR_SLAK ((uint16_t)0x0002) /*!< Sleep Acknowledge */ -#define CAN_MSR_ERRI ((uint16_t)0x0004) /*!< Error Interrupt */ -#define CAN_MSR_WKUI ((uint16_t)0x0008) /*!< Wakeup Interrupt */ -#define CAN_MSR_SLAKI ((uint16_t)0x0010) /*!< Sleep Acknowledge Interrupt */ -#define CAN_MSR_TXM ((uint16_t)0x0100) /*!< Transmit Mode */ -#define CAN_MSR_RXM ((uint16_t)0x0200) /*!< Receive Mode */ -#define CAN_MSR_SAMP ((uint16_t)0x0400) /*!< Last Sample Point */ -#define CAN_MSR_RX ((uint16_t)0x0800) /*!< CAN Rx Signal */ - -/******************* Bit definition for CAN_TSR register ********************/ -#define CAN_TSR_RQCP0 ((uint32_t)0x00000001) /*!< Request Completed Mailbox0 */ -#define CAN_TSR_TXOK0 ((uint32_t)0x00000002) /*!< Transmission OK of Mailbox0 */ -#define CAN_TSR_ALST0 ((uint32_t)0x00000004) /*!< Arbitration Lost for Mailbox0 */ -#define CAN_TSR_TERR0 ((uint32_t)0x00000008) /*!< Transmission Error of Mailbox0 */ -#define CAN_TSR_ABRQ0 ((uint32_t)0x00000080) /*!< Abort Request for Mailbox0 */ -#define CAN_TSR_RQCP1 ((uint32_t)0x00000100) /*!< Request Completed Mailbox1 */ -#define CAN_TSR_TXOK1 ((uint32_t)0x00000200) /*!< Transmission OK of Mailbox1 */ -#define CAN_TSR_ALST1 ((uint32_t)0x00000400) /*!< Arbitration Lost for Mailbox1 */ -#define CAN_TSR_TERR1 ((uint32_t)0x00000800) /*!< Transmission Error of Mailbox1 */ -#define CAN_TSR_ABRQ1 ((uint32_t)0x00008000) /*!< Abort Request for Mailbox 1 */ -#define CAN_TSR_RQCP2 ((uint32_t)0x00010000) /*!< Request Completed Mailbox2 */ -#define CAN_TSR_TXOK2 ((uint32_t)0x00020000) /*!< Transmission OK of Mailbox 2 */ -#define CAN_TSR_ALST2 ((uint32_t)0x00040000) /*!< Arbitration Lost for mailbox 2 */ -#define CAN_TSR_TERR2 ((uint32_t)0x00080000) /*!< Transmission Error of Mailbox 2 */ -#define CAN_TSR_ABRQ2 ((uint32_t)0x00800000) /*!< Abort Request for Mailbox 2 */ -#define CAN_TSR_CODE ((uint32_t)0x03000000) /*!< Mailbox Code */ - -#define CAN_TSR_TME ((uint32_t)0x1C000000) /*!< TME[2:0] bits */ -#define CAN_TSR_TME0 ((uint32_t)0x04000000) /*!< Transmit Mailbox 0 Empty */ -#define CAN_TSR_TME1 ((uint32_t)0x08000000) /*!< Transmit Mailbox 1 Empty */ -#define CAN_TSR_TME2 ((uint32_t)0x10000000) /*!< Transmit Mailbox 2 Empty */ - -#define CAN_TSR_LOW ((uint32_t)0xE0000000) /*!< LOW[2:0] bits */ -#define CAN_TSR_LOW0 ((uint32_t)0x20000000) /*!< Lowest Priority Flag for Mailbox 0 */ -#define CAN_TSR_LOW1 ((uint32_t)0x40000000) /*!< Lowest Priority Flag for Mailbox 1 */ -#define CAN_TSR_LOW2 ((uint32_t)0x80000000) /*!< Lowest Priority Flag for Mailbox 2 */ - -/******************* Bit definition for CAN_RF0R register *******************/ -#define CAN_RF0R_FMP0 ((uint8_t)0x03) /*!< FIFO 0 Message Pending */ -#define CAN_RF0R_FULL0 ((uint8_t)0x08) /*!< FIFO 0 Full */ -#define CAN_RF0R_FOVR0 ((uint8_t)0x10) /*!< FIFO 0 Overrun */ -#define CAN_RF0R_RFOM0 ((uint8_t)0x20) /*!< Release FIFO 0 Output Mailbox */ - -/******************* Bit definition for CAN_RF1R register *******************/ -#define CAN_RF1R_FMP1 ((uint8_t)0x03) /*!< FIFO 1 Message Pending */ -#define CAN_RF1R_FULL1 ((uint8_t)0x08) /*!< FIFO 1 Full */ -#define CAN_RF1R_FOVR1 ((uint8_t)0x10) /*!< FIFO 1 Overrun */ -#define CAN_RF1R_RFOM1 ((uint8_t)0x20) /*!< Release FIFO 1 Output Mailbox */ - -/******************** Bit definition for CAN_IER register *******************/ -#define CAN_IER_TMEIE ((uint32_t)0x00000001) /*!< Transmit Mailbox Empty Interrupt Enable */ -#define CAN_IER_FMPIE0 ((uint32_t)0x00000002) /*!< FIFO Message Pending Interrupt Enable */ -#define CAN_IER_FFIE0 ((uint32_t)0x00000004) /*!< FIFO Full Interrupt Enable */ -#define CAN_IER_FOVIE0 ((uint32_t)0x00000008) /*!< FIFO Overrun Interrupt Enable */ -#define CAN_IER_FMPIE1 ((uint32_t)0x00000010) /*!< FIFO Message Pending Interrupt Enable */ -#define CAN_IER_FFIE1 ((uint32_t)0x00000020) /*!< FIFO Full Interrupt Enable */ -#define CAN_IER_FOVIE1 ((uint32_t)0x00000040) /*!< FIFO Overrun Interrupt Enable */ -#define CAN_IER_EWGIE ((uint32_t)0x00000100) /*!< Error Warning Interrupt Enable */ -#define CAN_IER_EPVIE ((uint32_t)0x00000200) /*!< Error Passive Interrupt Enable */ -#define CAN_IER_BOFIE ((uint32_t)0x00000400) /*!< Bus-Off Interrupt Enable */ -#define CAN_IER_LECIE ((uint32_t)0x00000800) /*!< Last Error Code Interrupt Enable */ -#define CAN_IER_ERRIE ((uint32_t)0x00008000) /*!< Error Interrupt Enable */ -#define CAN_IER_WKUIE ((uint32_t)0x00010000) /*!< Wakeup Interrupt Enable */ -#define CAN_IER_SLKIE ((uint32_t)0x00020000) /*!< Sleep Interrupt Enable */ - -/******************** Bit definition for CAN_ESR register *******************/ -#define CAN_ESR_EWGF ((uint32_t)0x00000001) /*!< Error Warning Flag */ -#define CAN_ESR_EPVF ((uint32_t)0x00000002) /*!< Error Passive Flag */ -#define CAN_ESR_BOFF ((uint32_t)0x00000004) /*!< Bus-Off Flag */ - -#define CAN_ESR_LEC ((uint32_t)0x00000070) /*!< LEC[2:0] bits (Last Error Code) */ -#define CAN_ESR_LEC_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define CAN_ESR_LEC_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define CAN_ESR_LEC_2 ((uint32_t)0x00000040) /*!< Bit 2 */ - -#define CAN_ESR_TEC ((uint32_t)0x00FF0000) /*!< Least significant byte of the 9-bit Transmit Error Counter */ -#define CAN_ESR_REC ((uint32_t)0xFF000000) /*!< Receive Error Counter */ - -/******************* Bit definition for CAN_BTR register ********************/ -#define CAN_BTR_BRP ((uint32_t)0x000003FF) /*!< Baud Rate Prescaler */ -#define CAN_BTR_TS1 ((uint32_t)0x000F0000) /*!< Time Segment 1 */ -#define CAN_BTR_TS2 ((uint32_t)0x00700000) /*!< Time Segment 2 */ -#define CAN_BTR_SJW ((uint32_t)0x03000000) /*!< Resynchronization Jump Width */ -#define CAN_BTR_LBKM ((uint32_t)0x40000000) /*!< Loop Back Mode (Debug) */ -#define CAN_BTR_SILM ((uint32_t)0x80000000) /*!< Silent Mode */ - -/*!< Mailbox registers */ -/****************** Bit definition for CAN_TI0R register ********************/ -#define CAN_TI0R_TXRQ ((uint32_t)0x00000001) /*!< Transmit Mailbox Request */ -#define CAN_TI0R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_TI0R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_TI0R_EXID ((uint32_t)0x001FFFF8) /*!< Extended Identifier */ -#define CAN_TI0R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/****************** Bit definition for CAN_TDT0R register *******************/ -#define CAN_TDT0R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_TDT0R_TGT ((uint32_t)0x00000100) /*!< Transmit Global Time */ -#define CAN_TDT0R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/****************** Bit definition for CAN_TDL0R register *******************/ -#define CAN_TDL0R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_TDL0R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_TDL0R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_TDL0R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/****************** Bit definition for CAN_TDH0R register *******************/ -#define CAN_TDH0R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_TDH0R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_TDH0R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_TDH0R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/******************* Bit definition for CAN_TI1R register *******************/ -#define CAN_TI1R_TXRQ ((uint32_t)0x00000001) /*!< Transmit Mailbox Request */ -#define CAN_TI1R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_TI1R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_TI1R_EXID ((uint32_t)0x001FFFF8) /*!< Extended Identifier */ -#define CAN_TI1R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/******************* Bit definition for CAN_TDT1R register ******************/ -#define CAN_TDT1R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_TDT1R_TGT ((uint32_t)0x00000100) /*!< Transmit Global Time */ -#define CAN_TDT1R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/******************* Bit definition for CAN_TDL1R register ******************/ -#define CAN_TDL1R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_TDL1R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_TDL1R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_TDL1R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/******************* Bit definition for CAN_TDH1R register ******************/ -#define CAN_TDH1R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_TDH1R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_TDH1R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_TDH1R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/******************* Bit definition for CAN_TI2R register *******************/ -#define CAN_TI2R_TXRQ ((uint32_t)0x00000001) /*!< Transmit Mailbox Request */ -#define CAN_TI2R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_TI2R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_TI2R_EXID ((uint32_t)0x001FFFF8) /*!< Extended identifier */ -#define CAN_TI2R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/******************* Bit definition for CAN_TDT2R register ******************/ -#define CAN_TDT2R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_TDT2R_TGT ((uint32_t)0x00000100) /*!< Transmit Global Time */ -#define CAN_TDT2R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/******************* Bit definition for CAN_TDL2R register ******************/ -#define CAN_TDL2R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_TDL2R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_TDL2R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_TDL2R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/******************* Bit definition for CAN_TDH2R register ******************/ -#define CAN_TDH2R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_TDH2R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_TDH2R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_TDH2R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/******************* Bit definition for CAN_RI0R register *******************/ -#define CAN_RI0R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_RI0R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_RI0R_EXID ((uint32_t)0x001FFFF8) /*!< Extended Identifier */ -#define CAN_RI0R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/******************* Bit definition for CAN_RDT0R register ******************/ -#define CAN_RDT0R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_RDT0R_FMI ((uint32_t)0x0000FF00) /*!< Filter Match Index */ -#define CAN_RDT0R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/******************* Bit definition for CAN_RDL0R register ******************/ -#define CAN_RDL0R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_RDL0R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_RDL0R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_RDL0R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/******************* Bit definition for CAN_RDH0R register ******************/ -#define CAN_RDH0R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_RDH0R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_RDH0R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_RDH0R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/******************* Bit definition for CAN_RI1R register *******************/ -#define CAN_RI1R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_RI1R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_RI1R_EXID ((uint32_t)0x001FFFF8) /*!< Extended identifier */ -#define CAN_RI1R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/******************* Bit definition for CAN_RDT1R register ******************/ -#define CAN_RDT1R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_RDT1R_FMI ((uint32_t)0x0000FF00) /*!< Filter Match Index */ -#define CAN_RDT1R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/******************* Bit definition for CAN_RDL1R register ******************/ -#define CAN_RDL1R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_RDL1R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_RDL1R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_RDL1R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/******************* Bit definition for CAN_RDH1R register ******************/ -#define CAN_RDH1R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_RDH1R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_RDH1R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_RDH1R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/*!< CAN filter registers */ -/******************* Bit definition for CAN_FMR register ********************/ -#define CAN_FMR_FINIT ((uint8_t)0x01) /*!< Filter Init Mode */ - -/******************* Bit definition for CAN_FM1R register *******************/ -#define CAN_FM1R_FBM ((uint16_t)0x3FFF) /*!< Filter Mode */ -#define CAN_FM1R_FBM0 ((uint16_t)0x0001) /*!< Filter Init Mode bit 0 */ -#define CAN_FM1R_FBM1 ((uint16_t)0x0002) /*!< Filter Init Mode bit 1 */ -#define CAN_FM1R_FBM2 ((uint16_t)0x0004) /*!< Filter Init Mode bit 2 */ -#define CAN_FM1R_FBM3 ((uint16_t)0x0008) /*!< Filter Init Mode bit 3 */ -#define CAN_FM1R_FBM4 ((uint16_t)0x0010) /*!< Filter Init Mode bit 4 */ -#define CAN_FM1R_FBM5 ((uint16_t)0x0020) /*!< Filter Init Mode bit 5 */ -#define CAN_FM1R_FBM6 ((uint16_t)0x0040) /*!< Filter Init Mode bit 6 */ -#define CAN_FM1R_FBM7 ((uint16_t)0x0080) /*!< Filter Init Mode bit 7 */ -#define CAN_FM1R_FBM8 ((uint16_t)0x0100) /*!< Filter Init Mode bit 8 */ -#define CAN_FM1R_FBM9 ((uint16_t)0x0200) /*!< Filter Init Mode bit 9 */ -#define CAN_FM1R_FBM10 ((uint16_t)0x0400) /*!< Filter Init Mode bit 10 */ -#define CAN_FM1R_FBM11 ((uint16_t)0x0800) /*!< Filter Init Mode bit 11 */ -#define CAN_FM1R_FBM12 ((uint16_t)0x1000) /*!< Filter Init Mode bit 12 */ -#define CAN_FM1R_FBM13 ((uint16_t)0x2000) /*!< Filter Init Mode bit 13 */ - -/******************* Bit definition for CAN_FS1R register *******************/ -#define CAN_FS1R_FSC ((uint16_t)0x3FFF) /*!< Filter Scale Configuration */ -#define CAN_FS1R_FSC0 ((uint16_t)0x0001) /*!< Filter Scale Configuration bit 0 */ -#define CAN_FS1R_FSC1 ((uint16_t)0x0002) /*!< Filter Scale Configuration bit 1 */ -#define CAN_FS1R_FSC2 ((uint16_t)0x0004) /*!< Filter Scale Configuration bit 2 */ -#define CAN_FS1R_FSC3 ((uint16_t)0x0008) /*!< Filter Scale Configuration bit 3 */ -#define CAN_FS1R_FSC4 ((uint16_t)0x0010) /*!< Filter Scale Configuration bit 4 */ -#define CAN_FS1R_FSC5 ((uint16_t)0x0020) /*!< Filter Scale Configuration bit 5 */ -#define CAN_FS1R_FSC6 ((uint16_t)0x0040) /*!< Filter Scale Configuration bit 6 */ -#define CAN_FS1R_FSC7 ((uint16_t)0x0080) /*!< Filter Scale Configuration bit 7 */ -#define CAN_FS1R_FSC8 ((uint16_t)0x0100) /*!< Filter Scale Configuration bit 8 */ -#define CAN_FS1R_FSC9 ((uint16_t)0x0200) /*!< Filter Scale Configuration bit 9 */ -#define CAN_FS1R_FSC10 ((uint16_t)0x0400) /*!< Filter Scale Configuration bit 10 */ -#define CAN_FS1R_FSC11 ((uint16_t)0x0800) /*!< Filter Scale Configuration bit 11 */ -#define CAN_FS1R_FSC12 ((uint16_t)0x1000) /*!< Filter Scale Configuration bit 12 */ -#define CAN_FS1R_FSC13 ((uint16_t)0x2000) /*!< Filter Scale Configuration bit 13 */ - -/****************** Bit definition for CAN_FFA1R register *******************/ -#define CAN_FFA1R_FFA ((uint16_t)0x3FFF) /*!< Filter FIFO Assignment */ -#define CAN_FFA1R_FFA0 ((uint16_t)0x0001) /*!< Filter FIFO Assignment for Filter 0 */ -#define CAN_FFA1R_FFA1 ((uint16_t)0x0002) /*!< Filter FIFO Assignment for Filter 1 */ -#define CAN_FFA1R_FFA2 ((uint16_t)0x0004) /*!< Filter FIFO Assignment for Filter 2 */ -#define CAN_FFA1R_FFA3 ((uint16_t)0x0008) /*!< Filter FIFO Assignment for Filter 3 */ -#define CAN_FFA1R_FFA4 ((uint16_t)0x0010) /*!< Filter FIFO Assignment for Filter 4 */ -#define CAN_FFA1R_FFA5 ((uint16_t)0x0020) /*!< Filter FIFO Assignment for Filter 5 */ -#define CAN_FFA1R_FFA6 ((uint16_t)0x0040) /*!< Filter FIFO Assignment for Filter 6 */ -#define CAN_FFA1R_FFA7 ((uint16_t)0x0080) /*!< Filter FIFO Assignment for Filter 7 */ -#define CAN_FFA1R_FFA8 ((uint16_t)0x0100) /*!< Filter FIFO Assignment for Filter 8 */ -#define CAN_FFA1R_FFA9 ((uint16_t)0x0200) /*!< Filter FIFO Assignment for Filter 9 */ -#define CAN_FFA1R_FFA10 ((uint16_t)0x0400) /*!< Filter FIFO Assignment for Filter 10 */ -#define CAN_FFA1R_FFA11 ((uint16_t)0x0800) /*!< Filter FIFO Assignment for Filter 11 */ -#define CAN_FFA1R_FFA12 ((uint16_t)0x1000) /*!< Filter FIFO Assignment for Filter 12 */ -#define CAN_FFA1R_FFA13 ((uint16_t)0x2000) /*!< Filter FIFO Assignment for Filter 13 */ - -/******************* Bit definition for CAN_FA1R register *******************/ -#define CAN_FA1R_FACT ((uint16_t)0x3FFF) /*!< Filter Active */ -#define CAN_FA1R_FACT0 ((uint16_t)0x0001) /*!< Filter 0 Active */ -#define CAN_FA1R_FACT1 ((uint16_t)0x0002) /*!< Filter 1 Active */ -#define CAN_FA1R_FACT2 ((uint16_t)0x0004) /*!< Filter 2 Active */ -#define CAN_FA1R_FACT3 ((uint16_t)0x0008) /*!< Filter 3 Active */ -#define CAN_FA1R_FACT4 ((uint16_t)0x0010) /*!< Filter 4 Active */ -#define CAN_FA1R_FACT5 ((uint16_t)0x0020) /*!< Filter 5 Active */ -#define CAN_FA1R_FACT6 ((uint16_t)0x0040) /*!< Filter 6 Active */ -#define CAN_FA1R_FACT7 ((uint16_t)0x0080) /*!< Filter 7 Active */ -#define CAN_FA1R_FACT8 ((uint16_t)0x0100) /*!< Filter 8 Active */ -#define CAN_FA1R_FACT9 ((uint16_t)0x0200) /*!< Filter 9 Active */ -#define CAN_FA1R_FACT10 ((uint16_t)0x0400) /*!< Filter 10 Active */ -#define CAN_FA1R_FACT11 ((uint16_t)0x0800) /*!< Filter 11 Active */ -#define CAN_FA1R_FACT12 ((uint16_t)0x1000) /*!< Filter 12 Active */ -#define CAN_FA1R_FACT13 ((uint16_t)0x2000) /*!< Filter 13 Active */ - -/******************* Bit definition for CAN_F0R1 register *******************/ -#define CAN_F0R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F0R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F0R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F0R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F0R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F0R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F0R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F0R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F0R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F0R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F0R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F0R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F0R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F0R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F0R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F0R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F0R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F0R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F0R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F0R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F0R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F0R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F0R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F0R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F0R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F0R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F0R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F0R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F0R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F0R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F0R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F0R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F1R1 register *******************/ -#define CAN_F1R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F1R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F1R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F1R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F1R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F1R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F1R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F1R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F1R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F1R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F1R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F1R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F1R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F1R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F1R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F1R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F1R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F1R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F1R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F1R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F1R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F1R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F1R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F1R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F1R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F1R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F1R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F1R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F1R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F1R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F1R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F1R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F2R1 register *******************/ -#define CAN_F2R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F2R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F2R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F2R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F2R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F2R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F2R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F2R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F2R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F2R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F2R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F2R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F2R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F2R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F2R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F2R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F2R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F2R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F2R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F2R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F2R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F2R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F2R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F2R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F2R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F2R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F2R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F2R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F2R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F2R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F2R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F2R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F3R1 register *******************/ -#define CAN_F3R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F3R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F3R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F3R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F3R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F3R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F3R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F3R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F3R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F3R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F3R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F3R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F3R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F3R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F3R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F3R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F3R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F3R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F3R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F3R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F3R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F3R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F3R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F3R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F3R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F3R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F3R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F3R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F3R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F3R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F3R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F3R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F4R1 register *******************/ -#define CAN_F4R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F4R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F4R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F4R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F4R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F4R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F4R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F4R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F4R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F4R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F4R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F4R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F4R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F4R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F4R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F4R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F4R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F4R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F4R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F4R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F4R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F4R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F4R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F4R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F4R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F4R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F4R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F4R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F4R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F4R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F4R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F4R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F5R1 register *******************/ -#define CAN_F5R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F5R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F5R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F5R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F5R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F5R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F5R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F5R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F5R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F5R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F5R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F5R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F5R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F5R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F5R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F5R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F5R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F5R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F5R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F5R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F5R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F5R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F5R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F5R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F5R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F5R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F5R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F5R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F5R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F5R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F5R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F5R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F6R1 register *******************/ -#define CAN_F6R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F6R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F6R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F6R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F6R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F6R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F6R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F6R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F6R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F6R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F6R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F6R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F6R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F6R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F6R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F6R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F6R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F6R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F6R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F6R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F6R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F6R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F6R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F6R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F6R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F6R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F6R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F6R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F6R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F6R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F6R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F6R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F7R1 register *******************/ -#define CAN_F7R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F7R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F7R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F7R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F7R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F7R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F7R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F7R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F7R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F7R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F7R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F7R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F7R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F7R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F7R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F7R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F7R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F7R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F7R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F7R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F7R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F7R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F7R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F7R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F7R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F7R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F7R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F7R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F7R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F7R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F7R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F7R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F8R1 register *******************/ -#define CAN_F8R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F8R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F8R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F8R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F8R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F8R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F8R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F8R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F8R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F8R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F8R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F8R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F8R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F8R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F8R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F8R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F8R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F8R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F8R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F8R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F8R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F8R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F8R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F8R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F8R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F8R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F8R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F8R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F8R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F8R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F8R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F8R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F9R1 register *******************/ -#define CAN_F9R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F9R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F9R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F9R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F9R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F9R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F9R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F9R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F9R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F9R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F9R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F9R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F9R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F9R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F9R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F9R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F9R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F9R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F9R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F9R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F9R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F9R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F9R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F9R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F9R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F9R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F9R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F9R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F9R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F9R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F9R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F9R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F10R1 register ******************/ -#define CAN_F10R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F10R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F10R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F10R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F10R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F10R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F10R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F10R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F10R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F10R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F10R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F10R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F10R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F10R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F10R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F10R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F10R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F10R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F10R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F10R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F10R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F10R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F10R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F10R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F10R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F10R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F10R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F10R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F10R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F10R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F10R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F10R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F11R1 register ******************/ -#define CAN_F11R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F11R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F11R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F11R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F11R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F11R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F11R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F11R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F11R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F11R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F11R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F11R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F11R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F11R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F11R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F11R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F11R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F11R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F11R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F11R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F11R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F11R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F11R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F11R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F11R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F11R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F11R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F11R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F11R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F11R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F11R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F11R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F12R1 register ******************/ -#define CAN_F12R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F12R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F12R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F12R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F12R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F12R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F12R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F12R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F12R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F12R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F12R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F12R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F12R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F12R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F12R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F12R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F12R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F12R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F12R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F12R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F12R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F12R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F12R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F12R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F12R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F12R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F12R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F12R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F12R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F12R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F12R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F12R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F13R1 register ******************/ -#define CAN_F13R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F13R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F13R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F13R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F13R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F13R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F13R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F13R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F13R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F13R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F13R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F13R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F13R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F13R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F13R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F13R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F13R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F13R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F13R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F13R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F13R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F13R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F13R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F13R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F13R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F13R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F13R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F13R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F13R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F13R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F13R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F13R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F0R2 register *******************/ -#define CAN_F0R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F0R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F0R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F0R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F0R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F0R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F0R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F0R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F0R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F0R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F0R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F0R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F0R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F0R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F0R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F0R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F0R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F0R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F0R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F0R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F0R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F0R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F0R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F0R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F0R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F0R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F0R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F0R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F0R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F0R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F0R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F0R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F1R2 register *******************/ -#define CAN_F1R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F1R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F1R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F1R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F1R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F1R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F1R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F1R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F1R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F1R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F1R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F1R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F1R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F1R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F1R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F1R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F1R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F1R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F1R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F1R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F1R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F1R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F1R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F1R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F1R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F1R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F1R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F1R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F1R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F1R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F1R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F1R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F2R2 register *******************/ -#define CAN_F2R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F2R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F2R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F2R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F2R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F2R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F2R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F2R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F2R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F2R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F2R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F2R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F2R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F2R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F2R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F2R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F2R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F2R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F2R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F2R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F2R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F2R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F2R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F2R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F2R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F2R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F2R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F2R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F2R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F2R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F2R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F2R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F3R2 register *******************/ -#define CAN_F3R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F3R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F3R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F3R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F3R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F3R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F3R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F3R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F3R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F3R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F3R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F3R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F3R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F3R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F3R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F3R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F3R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F3R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F3R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F3R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F3R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F3R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F3R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F3R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F3R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F3R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F3R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F3R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F3R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F3R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F3R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F3R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F4R2 register *******************/ -#define CAN_F4R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F4R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F4R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F4R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F4R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F4R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F4R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F4R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F4R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F4R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F4R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F4R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F4R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F4R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F4R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F4R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F4R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F4R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F4R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F4R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F4R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F4R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F4R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F4R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F4R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F4R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F4R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F4R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F4R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F4R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F4R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F4R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F5R2 register *******************/ -#define CAN_F5R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F5R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F5R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F5R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F5R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F5R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F5R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F5R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F5R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F5R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F5R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F5R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F5R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F5R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F5R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F5R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F5R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F5R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F5R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F5R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F5R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F5R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F5R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F5R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F5R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F5R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F5R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F5R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F5R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F5R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F5R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F5R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F6R2 register *******************/ -#define CAN_F6R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F6R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F6R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F6R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F6R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F6R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F6R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F6R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F6R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F6R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F6R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F6R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F6R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F6R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F6R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F6R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F6R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F6R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F6R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F6R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F6R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F6R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F6R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F6R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F6R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F6R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F6R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F6R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F6R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F6R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F6R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F6R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F7R2 register *******************/ -#define CAN_F7R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F7R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F7R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F7R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F7R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F7R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F7R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F7R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F7R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F7R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F7R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F7R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F7R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F7R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F7R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F7R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F7R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F7R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F7R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F7R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F7R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F7R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F7R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F7R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F7R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F7R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F7R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F7R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F7R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F7R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F7R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F7R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F8R2 register *******************/ -#define CAN_F8R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F8R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F8R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F8R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F8R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F8R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F8R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F8R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F8R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F8R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F8R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F8R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F8R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F8R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F8R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F8R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F8R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F8R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F8R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F8R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F8R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F8R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F8R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F8R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F8R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F8R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F8R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F8R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F8R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F8R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F8R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F8R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F9R2 register *******************/ -#define CAN_F9R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F9R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F9R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F9R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F9R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F9R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F9R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F9R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F9R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F9R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F9R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F9R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F9R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F9R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F9R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F9R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F9R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F9R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F9R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F9R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F9R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F9R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F9R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F9R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F9R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F9R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F9R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F9R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F9R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F9R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F9R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F9R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F10R2 register ******************/ -#define CAN_F10R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F10R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F10R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F10R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F10R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F10R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F10R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F10R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F10R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F10R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F10R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F10R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F10R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F10R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F10R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F10R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F10R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F10R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F10R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F10R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F10R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F10R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F10R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F10R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F10R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F10R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F10R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F10R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F10R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F10R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F10R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F10R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F11R2 register ******************/ -#define CAN_F11R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F11R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F11R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F11R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F11R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F11R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F11R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F11R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F11R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F11R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F11R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F11R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F11R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F11R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F11R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F11R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F11R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F11R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F11R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F11R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F11R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F11R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F11R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F11R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F11R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F11R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F11R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F11R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F11R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F11R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F11R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F11R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F12R2 register ******************/ -#define CAN_F12R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F12R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F12R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F12R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F12R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F12R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F12R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F12R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F12R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F12R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F12R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F12R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F12R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F12R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F12R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F12R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F12R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F12R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F12R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F12R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F12R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F12R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F12R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F12R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F12R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F12R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F12R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F12R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F12R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F12R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F12R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F12R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F13R2 register ******************/ -#define CAN_F13R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F13R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F13R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F13R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F13R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F13R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F13R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F13R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F13R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F13R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F13R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F13R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F13R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F13R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F13R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F13R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F13R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F13R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F13R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F13R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F13R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F13R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F13R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F13R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F13R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F13R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F13R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F13R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F13R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F13R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F13R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F13R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************************************************************************/ -/* */ -/* Serial Peripheral Interface */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for SPI_CR1 register ********************/ -#define SPI_CR1_CPHA ((uint16_t)0x0001) /*!< Clock Phase */ -#define SPI_CR1_CPOL ((uint16_t)0x0002) /*!< Clock Polarity */ -#define SPI_CR1_MSTR ((uint16_t)0x0004) /*!< Master Selection */ - -#define SPI_CR1_BR ((uint16_t)0x0038) /*!< BR[2:0] bits (Baud Rate Control) */ -#define SPI_CR1_BR_0 ((uint16_t)0x0008) /*!< Bit 0 */ -#define SPI_CR1_BR_1 ((uint16_t)0x0010) /*!< Bit 1 */ -#define SPI_CR1_BR_2 ((uint16_t)0x0020) /*!< Bit 2 */ - -#define SPI_CR1_SPE ((uint16_t)0x0040) /*!< SPI Enable */ -#define SPI_CR1_LSBFIRST ((uint16_t)0x0080) /*!< Frame Format */ -#define SPI_CR1_SSI ((uint16_t)0x0100) /*!< Internal slave select */ -#define SPI_CR1_SSM ((uint16_t)0x0200) /*!< Software slave management */ -#define SPI_CR1_RXONLY ((uint16_t)0x0400) /*!< Receive only */ -#define SPI_CR1_DFF ((uint16_t)0x0800) /*!< Data Frame Format */ -#define SPI_CR1_CRCNEXT ((uint16_t)0x1000) /*!< Transmit CRC next */ -#define SPI_CR1_CRCEN ((uint16_t)0x2000) /*!< Hardware CRC calculation enable */ -#define SPI_CR1_BIDIOE ((uint16_t)0x4000) /*!< Output enable in bidirectional mode */ -#define SPI_CR1_BIDIMODE ((uint16_t)0x8000) /*!< Bidirectional data mode enable */ - -/******************* Bit definition for SPI_CR2 register ********************/ -#define SPI_CR2_RXDMAEN ((uint8_t)0x01) /*!< Rx Buffer DMA Enable */ -#define SPI_CR2_TXDMAEN ((uint8_t)0x02) /*!< Tx Buffer DMA Enable */ -#define SPI_CR2_SSOE ((uint8_t)0x04) /*!< SS Output Enable */ -#define SPI_CR2_ERRIE ((uint8_t)0x20) /*!< Error Interrupt Enable */ -#define SPI_CR2_RXNEIE ((uint8_t)0x40) /*!< RX buffer Not Empty Interrupt Enable */ -#define SPI_CR2_TXEIE ((uint8_t)0x80) /*!< Tx buffer Empty Interrupt Enable */ - -/******************** Bit definition for SPI_SR register ********************/ -#define SPI_SR_RXNE ((uint8_t)0x01) /*!< Receive buffer Not Empty */ -#define SPI_SR_TXE ((uint8_t)0x02) /*!< Transmit buffer Empty */ -#define SPI_SR_CHSIDE ((uint8_t)0x04) /*!< Channel side */ -#define SPI_SR_UDR ((uint8_t)0x08) /*!< Underrun flag */ -#define SPI_SR_CRCERR ((uint8_t)0x10) /*!< CRC Error flag */ -#define SPI_SR_MODF ((uint8_t)0x20) /*!< Mode fault */ -#define SPI_SR_OVR ((uint8_t)0x40) /*!< Overrun flag */ -#define SPI_SR_BSY ((uint8_t)0x80) /*!< Busy flag */ - -/******************** Bit definition for SPI_DR register ********************/ -#define SPI_DR_DR ((uint16_t)0xFFFF) /*!< Data Register */ - -/******************* Bit definition for SPI_CRCPR register ******************/ -#define SPI_CRCPR_CRCPOLY ((uint16_t)0xFFFF) /*!< CRC polynomial register */ - -/****************** Bit definition for SPI_RXCRCR register ******************/ -#define SPI_RXCRCR_RXCRC ((uint16_t)0xFFFF) /*!< Rx CRC Register */ - -/****************** Bit definition for SPI_TXCRCR register ******************/ -#define SPI_TXCRCR_TXCRC ((uint16_t)0xFFFF) /*!< Tx CRC Register */ - -/****************** Bit definition for SPI_I2SCFGR register *****************/ -#define SPI_I2SCFGR_CHLEN ((uint16_t)0x0001) /*!< Channel length (number of bits per audio channel) */ - -#define SPI_I2SCFGR_DATLEN ((uint16_t)0x0006) /*!< DATLEN[1:0] bits (Data length to be transferred) */ -#define SPI_I2SCFGR_DATLEN_0 ((uint16_t)0x0002) /*!< Bit 0 */ -#define SPI_I2SCFGR_DATLEN_1 ((uint16_t)0x0004) /*!< Bit 1 */ - -#define SPI_I2SCFGR_CKPOL ((uint16_t)0x0008) /*!< steady state clock polarity */ - -#define SPI_I2SCFGR_I2SSTD ((uint16_t)0x0030) /*!< I2SSTD[1:0] bits (I2S standard selection) */ -#define SPI_I2SCFGR_I2SSTD_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define SPI_I2SCFGR_I2SSTD_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define SPI_I2SCFGR_PCMSYNC ((uint16_t)0x0080) /*!< PCM frame synchronization */ - -#define SPI_I2SCFGR_I2SCFG ((uint16_t)0x0300) /*!< I2SCFG[1:0] bits (I2S configuration mode) */ -#define SPI_I2SCFGR_I2SCFG_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define SPI_I2SCFGR_I2SCFG_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define SPI_I2SCFGR_I2SE ((uint16_t)0x0400) /*!< I2S Enable */ -#define SPI_I2SCFGR_I2SMOD ((uint16_t)0x0800) /*!< I2S mode selection */ - -/****************** Bit definition for SPI_I2SPR register *******************/ -#define SPI_I2SPR_I2SDIV ((uint16_t)0x00FF) /*!< I2S Linear prescaler */ -#define SPI_I2SPR_ODD ((uint16_t)0x0100) /*!< Odd factor for the prescaler */ -#define SPI_I2SPR_MCKOE ((uint16_t)0x0200) /*!< Master Clock Output Enable */ - -/******************************************************************************/ -/* */ -/* Inter-integrated Circuit Interface */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for I2C_CR1 register ********************/ -#define I2C_CR1_PE ((uint16_t)0x0001) /*!< Peripheral Enable */ -#define I2C_CR1_SMBUS ((uint16_t)0x0002) /*!< SMBus Mode */ -#define I2C_CR1_SMBTYPE ((uint16_t)0x0008) /*!< SMBus Type */ -#define I2C_CR1_ENARP ((uint16_t)0x0010) /*!< ARP Enable */ -#define I2C_CR1_ENPEC ((uint16_t)0x0020) /*!< PEC Enable */ -#define I2C_CR1_ENGC ((uint16_t)0x0040) /*!< General Call Enable */ -#define I2C_CR1_NOSTRETCH ((uint16_t)0x0080) /*!< Clock Stretching Disable (Slave mode) */ -#define I2C_CR1_START ((uint16_t)0x0100) /*!< Start Generation */ -#define I2C_CR1_STOP ((uint16_t)0x0200) /*!< Stop Generation */ -#define I2C_CR1_ACK ((uint16_t)0x0400) /*!< Acknowledge Enable */ -#define I2C_CR1_POS ((uint16_t)0x0800) /*!< Acknowledge/PEC Position (for data reception) */ -#define I2C_CR1_PEC ((uint16_t)0x1000) /*!< Packet Error Checking */ -#define I2C_CR1_ALERT ((uint16_t)0x2000) /*!< SMBus Alert */ -#define I2C_CR1_SWRST ((uint16_t)0x8000) /*!< Software Reset */ - -/******************* Bit definition for I2C_CR2 register ********************/ -#define I2C_CR2_FREQ ((uint16_t)0x003F) /*!< FREQ[5:0] bits (Peripheral Clock Frequency) */ -#define I2C_CR2_FREQ_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define I2C_CR2_FREQ_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define I2C_CR2_FREQ_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define I2C_CR2_FREQ_3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define I2C_CR2_FREQ_4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define I2C_CR2_FREQ_5 ((uint16_t)0x0020) /*!< Bit 5 */ - -#define I2C_CR2_ITERREN ((uint16_t)0x0100) /*!< Error Interrupt Enable */ -#define I2C_CR2_ITEVTEN ((uint16_t)0x0200) /*!< Event Interrupt Enable */ -#define I2C_CR2_ITBUFEN ((uint16_t)0x0400) /*!< Buffer Interrupt Enable */ -#define I2C_CR2_DMAEN ((uint16_t)0x0800) /*!< DMA Requests Enable */ -#define I2C_CR2_LAST ((uint16_t)0x1000) /*!< DMA Last Transfer */ - -/******************* Bit definition for I2C_OAR1 register *******************/ -#define I2C_OAR1_ADD1_7 ((uint16_t)0x00FE) /*!< Interface Address */ -#define I2C_OAR1_ADD8_9 ((uint16_t)0x0300) /*!< Interface Address */ - -#define I2C_OAR1_ADD0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define I2C_OAR1_ADD1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define I2C_OAR1_ADD2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define I2C_OAR1_ADD3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define I2C_OAR1_ADD4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define I2C_OAR1_ADD5 ((uint16_t)0x0020) /*!< Bit 5 */ -#define I2C_OAR1_ADD6 ((uint16_t)0x0040) /*!< Bit 6 */ -#define I2C_OAR1_ADD7 ((uint16_t)0x0080) /*!< Bit 7 */ -#define I2C_OAR1_ADD8 ((uint16_t)0x0100) /*!< Bit 8 */ -#define I2C_OAR1_ADD9 ((uint16_t)0x0200) /*!< Bit 9 */ - -#define I2C_OAR1_ADDMODE ((uint16_t)0x8000) /*!< Addressing Mode (Slave mode) */ - -/******************* Bit definition for I2C_OAR2 register *******************/ -#define I2C_OAR2_ENDUAL ((uint8_t)0x01) /*!< Dual addressing mode enable */ -#define I2C_OAR2_ADD2 ((uint8_t)0xFE) /*!< Interface address */ - -/******************** Bit definition for I2C_DR register ********************/ -#define I2C_DR_DR ((uint8_t)0xFF) /*!< 8-bit Data Register */ - -/******************* Bit definition for I2C_SR1 register ********************/ -#define I2C_SR1_SB ((uint16_t)0x0001) /*!< Start Bit (Master mode) */ -#define I2C_SR1_ADDR ((uint16_t)0x0002) /*!< Address sent (master mode)/matched (slave mode) */ -#define I2C_SR1_BTF ((uint16_t)0x0004) /*!< Byte Transfer Finished */ -#define I2C_SR1_ADD10 ((uint16_t)0x0008) /*!< 10-bit header sent (Master mode) */ -#define I2C_SR1_STOPF ((uint16_t)0x0010) /*!< Stop detection (Slave mode) */ -#define I2C_SR1_RXNE ((uint16_t)0x0040) /*!< Data Register not Empty (receivers) */ -#define I2C_SR1_TXE ((uint16_t)0x0080) /*!< Data Register Empty (transmitters) */ -#define I2C_SR1_BERR ((uint16_t)0x0100) /*!< Bus Error */ -#define I2C_SR1_ARLO ((uint16_t)0x0200) /*!< Arbitration Lost (master mode) */ -#define I2C_SR1_AF ((uint16_t)0x0400) /*!< Acknowledge Failure */ -#define I2C_SR1_OVR ((uint16_t)0x0800) /*!< Overrun/Underrun */ -#define I2C_SR1_PECERR ((uint16_t)0x1000) /*!< PEC Error in reception */ -#define I2C_SR1_TIMEOUT ((uint16_t)0x4000) /*!< Timeout or Tlow Error */ -#define I2C_SR1_SMBALERT ((uint16_t)0x8000) /*!< SMBus Alert */ - -/******************* Bit definition for I2C_SR2 register ********************/ -#define I2C_SR2_MSL ((uint16_t)0x0001) /*!< Master/Slave */ -#define I2C_SR2_BUSY ((uint16_t)0x0002) /*!< Bus Busy */ -#define I2C_SR2_TRA ((uint16_t)0x0004) /*!< Transmitter/Receiver */ -#define I2C_SR2_GENCALL ((uint16_t)0x0010) /*!< General Call Address (Slave mode) */ -#define I2C_SR2_SMBDEFAULT ((uint16_t)0x0020) /*!< SMBus Device Default Address (Slave mode) */ -#define I2C_SR2_SMBHOST ((uint16_t)0x0040) /*!< SMBus Host Header (Slave mode) */ -#define I2C_SR2_DUALF ((uint16_t)0x0080) /*!< Dual Flag (Slave mode) */ -#define I2C_SR2_PEC ((uint16_t)0xFF00) /*!< Packet Error Checking Register */ - -/******************* Bit definition for I2C_CCR register ********************/ -#define I2C_CCR_CCR ((uint16_t)0x0FFF) /*!< Clock Control Register in Fast/Standard mode (Master mode) */ -#define I2C_CCR_DUTY ((uint16_t)0x4000) /*!< Fast Mode Duty Cycle */ -#define I2C_CCR_FS ((uint16_t)0x8000) /*!< I2C Master Mode Selection */ - -/****************** Bit definition for I2C_TRISE register *******************/ -#define I2C_TRISE_TRISE ((uint8_t)0x3F) /*!< Maximum Rise Time in Fast/Standard mode (Master mode) */ - -/******************************************************************************/ -/* */ -/* Universal Synchronous Asynchronous Receiver Transmitter */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for USART_SR register *******************/ -#define USART_SR_PE ((uint16_t)0x0001) /*!< Parity Error */ -#define USART_SR_FE ((uint16_t)0x0002) /*!< Framing Error */ -#define USART_SR_NE ((uint16_t)0x0004) /*!< Noise Error Flag */ -#define USART_SR_ORE ((uint16_t)0x0008) /*!< OverRun Error */ -#define USART_SR_IDLE ((uint16_t)0x0010) /*!< IDLE line detected */ -#define USART_SR_RXNE ((uint16_t)0x0020) /*!< Read Data Register Not Empty */ -#define USART_SR_TC ((uint16_t)0x0040) /*!< Transmission Complete */ -#define USART_SR_TXE ((uint16_t)0x0080) /*!< Transmit Data Register Empty */ -#define USART_SR_LBD ((uint16_t)0x0100) /*!< LIN Break Detection Flag */ -#define USART_SR_CTS ((uint16_t)0x0200) /*!< CTS Flag */ - -/******************* Bit definition for USART_DR register *******************/ -#define USART_DR_DR ((uint16_t)0x01FF) /*!< Data value */ - -/****************** Bit definition for USART_BRR register *******************/ -#define USART_BRR_DIV_Fraction ((uint16_t)0x000F) /*!< Fraction of USARTDIV */ -#define USART_BRR_DIV_Mantissa ((uint16_t)0xFFF0) /*!< Mantissa of USARTDIV */ - -/****************** Bit definition for USART_CR1 register *******************/ -#define USART_CR1_SBK ((uint16_t)0x0001) /*!< Send Break */ -#define USART_CR1_RWU ((uint16_t)0x0002) /*!< Receiver wakeup */ -#define USART_CR1_RE ((uint16_t)0x0004) /*!< Receiver Enable */ -#define USART_CR1_TE ((uint16_t)0x0008) /*!< Transmitter Enable */ -#define USART_CR1_IDLEIE ((uint16_t)0x0010) /*!< IDLE Interrupt Enable */ -#define USART_CR1_RXNEIE ((uint16_t)0x0020) /*!< RXNE Interrupt Enable */ -#define USART_CR1_TCIE ((uint16_t)0x0040) /*!< Transmission Complete Interrupt Enable */ -#define USART_CR1_TXEIE ((uint16_t)0x0080) /*!< PE Interrupt Enable */ -#define USART_CR1_PEIE ((uint16_t)0x0100) /*!< PE Interrupt Enable */ -#define USART_CR1_PS ((uint16_t)0x0200) /*!< Parity Selection */ -#define USART_CR1_PCE ((uint16_t)0x0400) /*!< Parity Control Enable */ -#define USART_CR1_WAKE ((uint16_t)0x0800) /*!< Wakeup method */ -#define USART_CR1_M ((uint16_t)0x1000) /*!< Word length */ -#define USART_CR1_UE ((uint16_t)0x2000) /*!< USART Enable */ -#define USART_CR1_OVER8 ((uint16_t)0x8000) /*!< USART Oversmapling 8-bits */ - -/****************** Bit definition for USART_CR2 register *******************/ -#define USART_CR2_ADD ((uint16_t)0x000F) /*!< Address of the USART node */ -#define USART_CR2_LBDL ((uint16_t)0x0020) /*!< LIN Break Detection Length */ -#define USART_CR2_LBDIE ((uint16_t)0x0040) /*!< LIN Break Detection Interrupt Enable */ -#define USART_CR2_LBCL ((uint16_t)0x0100) /*!< Last Bit Clock pulse */ -#define USART_CR2_CPHA ((uint16_t)0x0200) /*!< Clock Phase */ -#define USART_CR2_CPOL ((uint16_t)0x0400) /*!< Clock Polarity */ -#define USART_CR2_CLKEN ((uint16_t)0x0800) /*!< Clock Enable */ - -#define USART_CR2_STOP ((uint16_t)0x3000) /*!< STOP[1:0] bits (STOP bits) */ -#define USART_CR2_STOP_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USART_CR2_STOP_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USART_CR2_LINEN ((uint16_t)0x4000) /*!< LIN mode enable */ - -/****************** Bit definition for USART_CR3 register *******************/ -#define USART_CR3_EIE ((uint16_t)0x0001) /*!< Error Interrupt Enable */ -#define USART_CR3_IREN ((uint16_t)0x0002) /*!< IrDA mode Enable */ -#define USART_CR3_IRLP ((uint16_t)0x0004) /*!< IrDA Low-Power */ -#define USART_CR3_HDSEL ((uint16_t)0x0008) /*!< Half-Duplex Selection */ -#define USART_CR3_NACK ((uint16_t)0x0010) /*!< Smartcard NACK enable */ -#define USART_CR3_SCEN ((uint16_t)0x0020) /*!< Smartcard mode enable */ -#define USART_CR3_DMAR ((uint16_t)0x0040) /*!< DMA Enable Receiver */ -#define USART_CR3_DMAT ((uint16_t)0x0080) /*!< DMA Enable Transmitter */ -#define USART_CR3_RTSE ((uint16_t)0x0100) /*!< RTS Enable */ -#define USART_CR3_CTSE ((uint16_t)0x0200) /*!< CTS Enable */ -#define USART_CR3_CTSIE ((uint16_t)0x0400) /*!< CTS Interrupt Enable */ -#define USART_CR3_ONEBIT ((uint16_t)0x0800) /*!< One Bit method */ - -/****************** Bit definition for USART_GTPR register ******************/ -#define USART_GTPR_PSC ((uint16_t)0x00FF) /*!< PSC[7:0] bits (Prescaler value) */ -#define USART_GTPR_PSC_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define USART_GTPR_PSC_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define USART_GTPR_PSC_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define USART_GTPR_PSC_3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define USART_GTPR_PSC_4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define USART_GTPR_PSC_5 ((uint16_t)0x0020) /*!< Bit 5 */ -#define USART_GTPR_PSC_6 ((uint16_t)0x0040) /*!< Bit 6 */ -#define USART_GTPR_PSC_7 ((uint16_t)0x0080) /*!< Bit 7 */ - -#define USART_GTPR_GT ((uint16_t)0xFF00) /*!< Guard time value */ - -/******************************************************************************/ -/* */ -/* Debug MCU */ -/* */ -/******************************************************************************/ - -/**************** Bit definition for DBGMCU_IDCODE register *****************/ -#define DBGMCU_IDCODE_DEV_ID ((uint32_t)0x00000FFF) /*!< Device Identifier */ - -#define DBGMCU_IDCODE_REV_ID ((uint32_t)0xFFFF0000) /*!< REV_ID[15:0] bits (Revision Identifier) */ -#define DBGMCU_IDCODE_REV_ID_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define DBGMCU_IDCODE_REV_ID_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define DBGMCU_IDCODE_REV_ID_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define DBGMCU_IDCODE_REV_ID_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define DBGMCU_IDCODE_REV_ID_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define DBGMCU_IDCODE_REV_ID_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define DBGMCU_IDCODE_REV_ID_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define DBGMCU_IDCODE_REV_ID_7 ((uint32_t)0x00800000) /*!< Bit 7 */ -#define DBGMCU_IDCODE_REV_ID_8 ((uint32_t)0x01000000) /*!< Bit 8 */ -#define DBGMCU_IDCODE_REV_ID_9 ((uint32_t)0x02000000) /*!< Bit 9 */ -#define DBGMCU_IDCODE_REV_ID_10 ((uint32_t)0x04000000) /*!< Bit 10 */ -#define DBGMCU_IDCODE_REV_ID_11 ((uint32_t)0x08000000) /*!< Bit 11 */ -#define DBGMCU_IDCODE_REV_ID_12 ((uint32_t)0x10000000) /*!< Bit 12 */ -#define DBGMCU_IDCODE_REV_ID_13 ((uint32_t)0x20000000) /*!< Bit 13 */ -#define DBGMCU_IDCODE_REV_ID_14 ((uint32_t)0x40000000) /*!< Bit 14 */ -#define DBGMCU_IDCODE_REV_ID_15 ((uint32_t)0x80000000) /*!< Bit 15 */ - -/****************** Bit definition for DBGMCU_CR register *******************/ -#define DBGMCU_CR_DBG_SLEEP ((uint32_t)0x00000001) /*!< Debug Sleep Mode */ -#define DBGMCU_CR_DBG_STOP ((uint32_t)0x00000002) /*!< Debug Stop Mode */ -#define DBGMCU_CR_DBG_STANDBY ((uint32_t)0x00000004) /*!< Debug Standby mode */ -#define DBGMCU_CR_TRACE_IOEN ((uint32_t)0x00000020) /*!< Trace Pin Assignment Control */ - -#define DBGMCU_CR_TRACE_MODE ((uint32_t)0x000000C0) /*!< TRACE_MODE[1:0] bits (Trace Pin Assignment Control) */ -#define DBGMCU_CR_TRACE_MODE_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define DBGMCU_CR_TRACE_MODE_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -#define DBGMCU_CR_DBG_IWDG_STOP ((uint32_t)0x00000100) /*!< Debug Independent Watchdog stopped when Core is halted */ -#define DBGMCU_CR_DBG_WWDG_STOP ((uint32_t)0x00000200) /*!< Debug Window Watchdog stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM1_STOP ((uint32_t)0x00000400) /*!< TIM1 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM2_STOP ((uint32_t)0x00000800) /*!< TIM2 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM3_STOP ((uint32_t)0x00001000) /*!< TIM3 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM4_STOP ((uint32_t)0x00002000) /*!< TIM4 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_CAN1_STOP ((uint32_t)0x00004000) /*!< Debug CAN1 stopped when Core is halted */ -#define DBGMCU_CR_DBG_I2C1_SMBUS_TIMEOUT ((uint32_t)0x00008000) /*!< SMBUS timeout mode stopped when Core is halted */ -#define DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT ((uint32_t)0x00010000) /*!< SMBUS timeout mode stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM8_STOP ((uint32_t)0x00020000) /*!< TIM8 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM5_STOP ((uint32_t)0x00040000) /*!< TIM5 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM6_STOP ((uint32_t)0x00080000) /*!< TIM6 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM7_STOP ((uint32_t)0x00100000) /*!< TIM7 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_CAN2_STOP ((uint32_t)0x00200000) /*!< Debug CAN2 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM15_STOP ((uint32_t)0x00400000) /*!< Debug TIM15 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM16_STOP ((uint32_t)0x00800000) /*!< Debug TIM16 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM17_STOP ((uint32_t)0x01000000) /*!< Debug TIM17 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM12_STOP ((uint32_t)0x02000000) /*!< Debug TIM12 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM13_STOP ((uint32_t)0x04000000) /*!< Debug TIM13 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM14_STOP ((uint32_t)0x08000000) /*!< Debug TIM14 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM9_STOP ((uint32_t)0x10000000) /*!< Debug TIM9 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM10_STOP ((uint32_t)0x20000000) /*!< Debug TIM10 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM11_STOP ((uint32_t)0x40000000) /*!< Debug TIM11 stopped when Core is halted */ - -/******************************************************************************/ -/* */ -/* FLASH and Option Bytes Registers */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for FLASH_ACR register ******************/ -#define FLASH_ACR_LATENCY ((uint8_t)0x03) /*!< LATENCY[2:0] bits (Latency) */ -#define FLASH_ACR_LATENCY_0 ((uint8_t)0x00) /*!< Bit 0 */ -#define FLASH_ACR_LATENCY_1 ((uint8_t)0x01) /*!< Bit 0 */ -#define FLASH_ACR_LATENCY_2 ((uint8_t)0x02) /*!< Bit 1 */ - -#define FLASH_ACR_HLFCYA ((uint8_t)0x08) /*!< Flash Half Cycle Access Enable */ -#define FLASH_ACR_PRFTBE ((uint8_t)0x10) /*!< Prefetch Buffer Enable */ -#define FLASH_ACR_PRFTBS ((uint8_t)0x20) /*!< Prefetch Buffer Status */ - -/****************** Bit definition for FLASH_KEYR register ******************/ -#define FLASH_KEYR_FKEYR ((uint32_t)0xFFFFFFFF) /*!< FPEC Key */ - -/***************** Bit definition for FLASH_OPTKEYR register ****************/ -#define FLASH_OPTKEYR_OPTKEYR ((uint32_t)0xFFFFFFFF) /*!< Option Byte Key */ - -/****************** Bit definition for FLASH_SR register *******************/ -#define FLASH_SR_BSY ((uint8_t)0x01) /*!< Busy */ -#define FLASH_SR_PGERR ((uint8_t)0x04) /*!< Programming Error */ -#define FLASH_SR_WRPRTERR ((uint8_t)0x10) /*!< Write Protection Error */ -#define FLASH_SR_EOP ((uint8_t)0x20) /*!< End of operation */ - -/******************* Bit definition for FLASH_CR register *******************/ -#define FLASH_CR_PG ((uint16_t)0x0001) /*!< Programming */ -#define FLASH_CR_PER ((uint16_t)0x0002) /*!< Page Erase */ -#define FLASH_CR_MER ((uint16_t)0x0004) /*!< Mass Erase */ -#define FLASH_CR_OPTPG ((uint16_t)0x0010) /*!< Option Byte Programming */ -#define FLASH_CR_OPTER ((uint16_t)0x0020) /*!< Option Byte Erase */ -#define FLASH_CR_STRT ((uint16_t)0x0040) /*!< Start */ -#define FLASH_CR_LOCK ((uint16_t)0x0080) /*!< Lock */ -#define FLASH_CR_OPTWRE ((uint16_t)0x0200) /*!< Option Bytes Write Enable */ -#define FLASH_CR_ERRIE ((uint16_t)0x0400) /*!< Error Interrupt Enable */ -#define FLASH_CR_EOPIE ((uint16_t)0x1000) /*!< End of operation interrupt enable */ - -/******************* Bit definition for FLASH_AR register *******************/ -#define FLASH_AR_FAR ((uint32_t)0xFFFFFFFF) /*!< Flash Address */ - -/****************** Bit definition for FLASH_OBR register *******************/ -#define FLASH_OBR_OPTERR ((uint16_t)0x0001) /*!< Option Byte Error */ -#define FLASH_OBR_RDPRT ((uint16_t)0x0002) /*!< Read protection */ - -#define FLASH_OBR_USER ((uint16_t)0x03FC) /*!< User Option Bytes */ -#define FLASH_OBR_WDG_SW ((uint16_t)0x0004) /*!< WDG_SW */ -#define FLASH_OBR_nRST_STOP ((uint16_t)0x0008) /*!< nRST_STOP */ -#define FLASH_OBR_nRST_STDBY ((uint16_t)0x0010) /*!< nRST_STDBY */ -#define FLASH_OBR_BFB2 ((uint16_t)0x0020) /*!< BFB2 */ - -/****************** Bit definition for FLASH_WRPR register ******************/ -#define FLASH_WRPR_WRP ((uint32_t)0xFFFFFFFF) /*!< Write Protect */ - -/*----------------------------------------------------------------------------*/ - -/****************** Bit definition for FLASH_RDP register *******************/ -#define FLASH_RDP_RDP ((uint32_t)0x000000FF) /*!< Read protection option byte */ -#define FLASH_RDP_nRDP ((uint32_t)0x0000FF00) /*!< Read protection complemented option byte */ - -/****************** Bit definition for FLASH_USER register ******************/ -#define FLASH_USER_USER ((uint32_t)0x00FF0000) /*!< User option byte */ -#define FLASH_USER_nUSER ((uint32_t)0xFF000000) /*!< User complemented option byte */ - -/****************** Bit definition for FLASH_Data0 register *****************/ -#define FLASH_Data0_Data0 ((uint32_t)0x000000FF) /*!< User data storage option byte */ -#define FLASH_Data0_nData0 ((uint32_t)0x0000FF00) /*!< User data storage complemented option byte */ - -/****************** Bit definition for FLASH_Data1 register *****************/ -#define FLASH_Data1_Data1 ((uint32_t)0x00FF0000) /*!< User data storage option byte */ -#define FLASH_Data1_nData1 ((uint32_t)0xFF000000) /*!< User data storage complemented option byte */ - -/****************** Bit definition for FLASH_WRP0 register ******************/ -#define FLASH_WRP0_WRP0 ((uint32_t)0x000000FF) /*!< Flash memory write protection option bytes */ -#define FLASH_WRP0_nWRP0 ((uint32_t)0x0000FF00) /*!< Flash memory write protection complemented option bytes */ - -/****************** Bit definition for FLASH_WRP1 register ******************/ -#define FLASH_WRP1_WRP1 ((uint32_t)0x00FF0000) /*!< Flash memory write protection option bytes */ -#define FLASH_WRP1_nWRP1 ((uint32_t)0xFF000000) /*!< Flash memory write protection complemented option bytes */ - -/****************** Bit definition for FLASH_WRP2 register ******************/ -#define FLASH_WRP2_WRP2 ((uint32_t)0x000000FF) /*!< Flash memory write protection option bytes */ -#define FLASH_WRP2_nWRP2 ((uint32_t)0x0000FF00) /*!< Flash memory write protection complemented option bytes */ - -/****************** Bit definition for FLASH_WRP3 register ******************/ -#define FLASH_WRP3_WRP3 ((uint32_t)0x00FF0000) /*!< Flash memory write protection option bytes */ -#define FLASH_WRP3_nWRP3 ((uint32_t)0xFF000000) /*!< Flash memory write protection complemented option bytes */ - -#ifdef STM32F10X_CL -/******************************************************************************/ -/* Ethernet MAC Registers bits definitions */ -/******************************************************************************/ -/* Bit definition for Ethernet MAC Control Register register */ -#define ETH_MACCR_WD ((uint32_t)0x00800000) /* Watchdog disable */ -#define ETH_MACCR_JD ((uint32_t)0x00400000) /* Jabber disable */ -#define ETH_MACCR_IFG ((uint32_t)0x000E0000) /* Inter-frame gap */ - #define ETH_MACCR_IFG_96Bit ((uint32_t)0x00000000) /* Minimum IFG between frames during transmission is 96Bit */ - #define ETH_MACCR_IFG_88Bit ((uint32_t)0x00020000) /* Minimum IFG between frames during transmission is 88Bit */ - #define ETH_MACCR_IFG_80Bit ((uint32_t)0x00040000) /* Minimum IFG between frames during transmission is 80Bit */ - #define ETH_MACCR_IFG_72Bit ((uint32_t)0x00060000) /* Minimum IFG between frames during transmission is 72Bit */ - #define ETH_MACCR_IFG_64Bit ((uint32_t)0x00080000) /* Minimum IFG between frames during transmission is 64Bit */ - #define ETH_MACCR_IFG_56Bit ((uint32_t)0x000A0000) /* Minimum IFG between frames during transmission is 56Bit */ - #define ETH_MACCR_IFG_48Bit ((uint32_t)0x000C0000) /* Minimum IFG between frames during transmission is 48Bit */ - #define ETH_MACCR_IFG_40Bit ((uint32_t)0x000E0000) /* Minimum IFG between frames during transmission is 40Bit */ -#define ETH_MACCR_CSD ((uint32_t)0x00010000) /* Carrier sense disable (during transmission) */ -#define ETH_MACCR_FES ((uint32_t)0x00004000) /* Fast ethernet speed */ -#define ETH_MACCR_ROD ((uint32_t)0x00002000) /* Receive own disable */ -#define ETH_MACCR_LM ((uint32_t)0x00001000) /* loopback mode */ -#define ETH_MACCR_DM ((uint32_t)0x00000800) /* Duplex mode */ -#define ETH_MACCR_IPCO ((uint32_t)0x00000400) /* IP Checksum offload */ -#define ETH_MACCR_RD ((uint32_t)0x00000200) /* Retry disable */ -#define ETH_MACCR_APCS ((uint32_t)0x00000080) /* Automatic Pad/CRC stripping */ -#define ETH_MACCR_BL ((uint32_t)0x00000060) /* Back-off limit: random integer number (r) of slot time delays before rescheduling - a transmission attempt during retries after a collision: 0 =< r <2^k */ - #define ETH_MACCR_BL_10 ((uint32_t)0x00000000) /* k = min (n, 10) */ - #define ETH_MACCR_BL_8 ((uint32_t)0x00000020) /* k = min (n, 8) */ - #define ETH_MACCR_BL_4 ((uint32_t)0x00000040) /* k = min (n, 4) */ - #define ETH_MACCR_BL_1 ((uint32_t)0x00000060) /* k = min (n, 1) */ -#define ETH_MACCR_DC ((uint32_t)0x00000010) /* Defferal check */ -#define ETH_MACCR_TE ((uint32_t)0x00000008) /* Transmitter enable */ -#define ETH_MACCR_RE ((uint32_t)0x00000004) /* Receiver enable */ - -/* Bit definition for Ethernet MAC Frame Filter Register */ -#define ETH_MACFFR_RA ((uint32_t)0x80000000) /* Receive all */ -#define ETH_MACFFR_HPF ((uint32_t)0x00000400) /* Hash or perfect filter */ -#define ETH_MACFFR_SAF ((uint32_t)0x00000200) /* Source address filter enable */ -#define ETH_MACFFR_SAIF ((uint32_t)0x00000100) /* SA inverse filtering */ -#define ETH_MACFFR_PCF ((uint32_t)0x000000C0) /* Pass control frames: 3 cases */ - #define ETH_MACFFR_PCF_BlockAll ((uint32_t)0x00000040) /* MAC filters all control frames from reaching the application */ - #define ETH_MACFFR_PCF_ForwardAll ((uint32_t)0x00000080) /* MAC forwards all control frames to application even if they fail the Address Filter */ - #define ETH_MACFFR_PCF_ForwardPassedAddrFilter ((uint32_t)0x000000C0) /* MAC forwards control frames that pass the Address Filter. */ -#define ETH_MACFFR_BFD ((uint32_t)0x00000020) /* Broadcast frame disable */ -#define ETH_MACFFR_PAM ((uint32_t)0x00000010) /* Pass all mutlicast */ -#define ETH_MACFFR_DAIF ((uint32_t)0x00000008) /* DA Inverse filtering */ -#define ETH_MACFFR_HM ((uint32_t)0x00000004) /* Hash multicast */ -#define ETH_MACFFR_HU ((uint32_t)0x00000002) /* Hash unicast */ -#define ETH_MACFFR_PM ((uint32_t)0x00000001) /* Promiscuous mode */ - -/* Bit definition for Ethernet MAC Hash Table High Register */ -#define ETH_MACHTHR_HTH ((uint32_t)0xFFFFFFFF) /* Hash table high */ - -/* Bit definition for Ethernet MAC Hash Table Low Register */ -#define ETH_MACHTLR_HTL ((uint32_t)0xFFFFFFFF) /* Hash table low */ - -/* Bit definition for Ethernet MAC MII Address Register */ -#define ETH_MACMIIAR_PA ((uint32_t)0x0000F800) /* Physical layer address */ -#define ETH_MACMIIAR_MR ((uint32_t)0x000007C0) /* MII register in the selected PHY */ -#define ETH_MACMIIAR_CR ((uint32_t)0x0000001C) /* CR clock range: 6 cases */ - #define ETH_MACMIIAR_CR_Div42 ((uint32_t)0x00000000) /* HCLK:60-72 MHz; MDC clock= HCLK/42 */ - #define ETH_MACMIIAR_CR_Div16 ((uint32_t)0x00000008) /* HCLK:20-35 MHz; MDC clock= HCLK/16 */ - #define ETH_MACMIIAR_CR_Div26 ((uint32_t)0x0000000C) /* HCLK:35-60 MHz; MDC clock= HCLK/26 */ -#define ETH_MACMIIAR_MW ((uint32_t)0x00000002) /* MII write */ -#define ETH_MACMIIAR_MB ((uint32_t)0x00000001) /* MII busy */ - -/* Bit definition for Ethernet MAC MII Data Register */ -#define ETH_MACMIIDR_MD ((uint32_t)0x0000FFFF) /* MII data: read/write data from/to PHY */ - -/* Bit definition for Ethernet MAC Flow Control Register */ -#define ETH_MACFCR_PT ((uint32_t)0xFFFF0000) /* Pause time */ -#define ETH_MACFCR_ZQPD ((uint32_t)0x00000080) /* Zero-quanta pause disable */ -#define ETH_MACFCR_PLT ((uint32_t)0x00000030) /* Pause low threshold: 4 cases */ - #define ETH_MACFCR_PLT_Minus4 ((uint32_t)0x00000000) /* Pause time minus 4 slot times */ - #define ETH_MACFCR_PLT_Minus28 ((uint32_t)0x00000010) /* Pause time minus 28 slot times */ - #define ETH_MACFCR_PLT_Minus144 ((uint32_t)0x00000020) /* Pause time minus 144 slot times */ - #define ETH_MACFCR_PLT_Minus256 ((uint32_t)0x00000030) /* Pause time minus 256 slot times */ -#define ETH_MACFCR_UPFD ((uint32_t)0x00000008) /* Unicast pause frame detect */ -#define ETH_MACFCR_RFCE ((uint32_t)0x00000004) /* Receive flow control enable */ -#define ETH_MACFCR_TFCE ((uint32_t)0x00000002) /* Transmit flow control enable */ -#define ETH_MACFCR_FCBBPA ((uint32_t)0x00000001) /* Flow control busy/backpressure activate */ - -/* Bit definition for Ethernet MAC VLAN Tag Register */ -#define ETH_MACVLANTR_VLANTC ((uint32_t)0x00010000) /* 12-bit VLAN tag comparison */ -#define ETH_MACVLANTR_VLANTI ((uint32_t)0x0000FFFF) /* VLAN tag identifier (for receive frames) */ - -/* Bit definition for Ethernet MAC Remote Wake-UpFrame Filter Register */ -#define ETH_MACRWUFFR_D ((uint32_t)0xFFFFFFFF) /* Wake-up frame filter register data */ -/* Eight sequential Writes to this address (offset 0x28) will write all Wake-UpFrame Filter Registers. - Eight sequential Reads from this address (offset 0x28) will read all Wake-UpFrame Filter Registers. */ -/* Wake-UpFrame Filter Reg0 : Filter 0 Byte Mask - Wake-UpFrame Filter Reg1 : Filter 1 Byte Mask - Wake-UpFrame Filter Reg2 : Filter 2 Byte Mask - Wake-UpFrame Filter Reg3 : Filter 3 Byte Mask - Wake-UpFrame Filter Reg4 : RSVD - Filter3 Command - RSVD - Filter2 Command - - RSVD - Filter1 Command - RSVD - Filter0 Command - Wake-UpFrame Filter Re5 : Filter3 Offset - Filter2 Offset - Filter1 Offset - Filter0 Offset - Wake-UpFrame Filter Re6 : Filter1 CRC16 - Filter0 CRC16 - Wake-UpFrame Filter Re7 : Filter3 CRC16 - Filter2 CRC16 */ - -/* Bit definition for Ethernet MAC PMT Control and Status Register */ -#define ETH_MACPMTCSR_WFFRPR ((uint32_t)0x80000000) /* Wake-Up Frame Filter Register Pointer Reset */ -#define ETH_MACPMTCSR_GU ((uint32_t)0x00000200) /* Global Unicast */ -#define ETH_MACPMTCSR_WFR ((uint32_t)0x00000040) /* Wake-Up Frame Received */ -#define ETH_MACPMTCSR_MPR ((uint32_t)0x00000020) /* Magic Packet Received */ -#define ETH_MACPMTCSR_WFE ((uint32_t)0x00000004) /* Wake-Up Frame Enable */ -#define ETH_MACPMTCSR_MPE ((uint32_t)0x00000002) /* Magic Packet Enable */ -#define ETH_MACPMTCSR_PD ((uint32_t)0x00000001) /* Power Down */ - -/* Bit definition for Ethernet MAC Status Register */ -#define ETH_MACSR_TSTS ((uint32_t)0x00000200) /* Time stamp trigger status */ -#define ETH_MACSR_MMCTS ((uint32_t)0x00000040) /* MMC transmit status */ -#define ETH_MACSR_MMMCRS ((uint32_t)0x00000020) /* MMC receive status */ -#define ETH_MACSR_MMCS ((uint32_t)0x00000010) /* MMC status */ -#define ETH_MACSR_PMTS ((uint32_t)0x00000008) /* PMT status */ - -/* Bit definition for Ethernet MAC Interrupt Mask Register */ -#define ETH_MACIMR_TSTIM ((uint32_t)0x00000200) /* Time stamp trigger interrupt mask */ -#define ETH_MACIMR_PMTIM ((uint32_t)0x00000008) /* PMT interrupt mask */ - -/* Bit definition for Ethernet MAC Address0 High Register */ -#define ETH_MACA0HR_MACA0H ((uint32_t)0x0000FFFF) /* MAC address0 high */ - -/* Bit definition for Ethernet MAC Address0 Low Register */ -#define ETH_MACA0LR_MACA0L ((uint32_t)0xFFFFFFFF) /* MAC address0 low */ - -/* Bit definition for Ethernet MAC Address1 High Register */ -#define ETH_MACA1HR_AE ((uint32_t)0x80000000) /* Address enable */ -#define ETH_MACA1HR_SA ((uint32_t)0x40000000) /* Source address */ -#define ETH_MACA1HR_MBC ((uint32_t)0x3F000000) /* Mask byte control: bits to mask for comparison of the MAC Address bytes */ - #define ETH_MACA1HR_MBC_HBits15_8 ((uint32_t)0x20000000) /* Mask MAC Address high reg bits [15:8] */ - #define ETH_MACA1HR_MBC_HBits7_0 ((uint32_t)0x10000000) /* Mask MAC Address high reg bits [7:0] */ - #define ETH_MACA1HR_MBC_LBits31_24 ((uint32_t)0x08000000) /* Mask MAC Address low reg bits [31:24] */ - #define ETH_MACA1HR_MBC_LBits23_16 ((uint32_t)0x04000000) /* Mask MAC Address low reg bits [23:16] */ - #define ETH_MACA1HR_MBC_LBits15_8 ((uint32_t)0x02000000) /* Mask MAC Address low reg bits [15:8] */ - #define ETH_MACA1HR_MBC_LBits7_0 ((uint32_t)0x01000000) /* Mask MAC Address low reg bits [7:0] */ -#define ETH_MACA1HR_MACA1H ((uint32_t)0x0000FFFF) /* MAC address1 high */ - -/* Bit definition for Ethernet MAC Address1 Low Register */ -#define ETH_MACA1LR_MACA1L ((uint32_t)0xFFFFFFFF) /* MAC address1 low */ - -/* Bit definition for Ethernet MAC Address2 High Register */ -#define ETH_MACA2HR_AE ((uint32_t)0x80000000) /* Address enable */ -#define ETH_MACA2HR_SA ((uint32_t)0x40000000) /* Source address */ -#define ETH_MACA2HR_MBC ((uint32_t)0x3F000000) /* Mask byte control */ - #define ETH_MACA2HR_MBC_HBits15_8 ((uint32_t)0x20000000) /* Mask MAC Address high reg bits [15:8] */ - #define ETH_MACA2HR_MBC_HBits7_0 ((uint32_t)0x10000000) /* Mask MAC Address high reg bits [7:0] */ - #define ETH_MACA2HR_MBC_LBits31_24 ((uint32_t)0x08000000) /* Mask MAC Address low reg bits [31:24] */ - #define ETH_MACA2HR_MBC_LBits23_16 ((uint32_t)0x04000000) /* Mask MAC Address low reg bits [23:16] */ - #define ETH_MACA2HR_MBC_LBits15_8 ((uint32_t)0x02000000) /* Mask MAC Address low reg bits [15:8] */ - #define ETH_MACA2HR_MBC_LBits7_0 ((uint32_t)0x01000000) /* Mask MAC Address low reg bits [70] */ -#define ETH_MACA2HR_MACA2H ((uint32_t)0x0000FFFF) /* MAC address1 high */ - -/* Bit definition for Ethernet MAC Address2 Low Register */ -#define ETH_MACA2LR_MACA2L ((uint32_t)0xFFFFFFFF) /* MAC address2 low */ - -/* Bit definition for Ethernet MAC Address3 High Register */ -#define ETH_MACA3HR_AE ((uint32_t)0x80000000) /* Address enable */ -#define ETH_MACA3HR_SA ((uint32_t)0x40000000) /* Source address */ -#define ETH_MACA3HR_MBC ((uint32_t)0x3F000000) /* Mask byte control */ - #define ETH_MACA3HR_MBC_HBits15_8 ((uint32_t)0x20000000) /* Mask MAC Address high reg bits [15:8] */ - #define ETH_MACA3HR_MBC_HBits7_0 ((uint32_t)0x10000000) /* Mask MAC Address high reg bits [7:0] */ - #define ETH_MACA3HR_MBC_LBits31_24 ((uint32_t)0x08000000) /* Mask MAC Address low reg bits [31:24] */ - #define ETH_MACA3HR_MBC_LBits23_16 ((uint32_t)0x04000000) /* Mask MAC Address low reg bits [23:16] */ - #define ETH_MACA3HR_MBC_LBits15_8 ((uint32_t)0x02000000) /* Mask MAC Address low reg bits [15:8] */ - #define ETH_MACA3HR_MBC_LBits7_0 ((uint32_t)0x01000000) /* Mask MAC Address low reg bits [70] */ -#define ETH_MACA3HR_MACA3H ((uint32_t)0x0000FFFF) /* MAC address3 high */ - -/* Bit definition for Ethernet MAC Address3 Low Register */ -#define ETH_MACA3LR_MACA3L ((uint32_t)0xFFFFFFFF) /* MAC address3 low */ - -/******************************************************************************/ -/* Ethernet MMC Registers bits definition */ -/******************************************************************************/ - -/* Bit definition for Ethernet MMC Contol Register */ -#define ETH_MMCCR_MCF ((uint32_t)0x00000008) /* MMC Counter Freeze */ -#define ETH_MMCCR_ROR ((uint32_t)0x00000004) /* Reset on Read */ -#define ETH_MMCCR_CSR ((uint32_t)0x00000002) /* Counter Stop Rollover */ -#define ETH_MMCCR_CR ((uint32_t)0x00000001) /* Counters Reset */ - -/* Bit definition for Ethernet MMC Receive Interrupt Register */ -#define ETH_MMCRIR_RGUFS ((uint32_t)0x00020000) /* Set when Rx good unicast frames counter reaches half the maximum value */ -#define ETH_MMCRIR_RFAES ((uint32_t)0x00000040) /* Set when Rx alignment error counter reaches half the maximum value */ -#define ETH_MMCRIR_RFCES ((uint32_t)0x00000020) /* Set when Rx crc error counter reaches half the maximum value */ - -/* Bit definition for Ethernet MMC Transmit Interrupt Register */ -#define ETH_MMCTIR_TGFS ((uint32_t)0x00200000) /* Set when Tx good frame count counter reaches half the maximum value */ -#define ETH_MMCTIR_TGFMSCS ((uint32_t)0x00008000) /* Set when Tx good multi col counter reaches half the maximum value */ -#define ETH_MMCTIR_TGFSCS ((uint32_t)0x00004000) /* Set when Tx good single col counter reaches half the maximum value */ - -/* Bit definition for Ethernet MMC Receive Interrupt Mask Register */ -#define ETH_MMCRIMR_RGUFM ((uint32_t)0x00020000) /* Mask the interrupt when Rx good unicast frames counter reaches half the maximum value */ -#define ETH_MMCRIMR_RFAEM ((uint32_t)0x00000040) /* Mask the interrupt when when Rx alignment error counter reaches half the maximum value */ -#define ETH_MMCRIMR_RFCEM ((uint32_t)0x00000020) /* Mask the interrupt when Rx crc error counter reaches half the maximum value */ - -/* Bit definition for Ethernet MMC Transmit Interrupt Mask Register */ -#define ETH_MMCTIMR_TGFM ((uint32_t)0x00200000) /* Mask the interrupt when Tx good frame count counter reaches half the maximum value */ -#define ETH_MMCTIMR_TGFMSCM ((uint32_t)0x00008000) /* Mask the interrupt when Tx good multi col counter reaches half the maximum value */ -#define ETH_MMCTIMR_TGFSCM ((uint32_t)0x00004000) /* Mask the interrupt when Tx good single col counter reaches half the maximum value */ - -/* Bit definition for Ethernet MMC Transmitted Good Frames after Single Collision Counter Register */ -#define ETH_MMCTGFSCCR_TGFSCC ((uint32_t)0xFFFFFFFF) /* Number of successfully transmitted frames after a single collision in Half-duplex mode. */ - -/* Bit definition for Ethernet MMC Transmitted Good Frames after More than a Single Collision Counter Register */ -#define ETH_MMCTGFMSCCR_TGFMSCC ((uint32_t)0xFFFFFFFF) /* Number of successfully transmitted frames after more than a single collision in Half-duplex mode. */ - -/* Bit definition for Ethernet MMC Transmitted Good Frames Counter Register */ -#define ETH_MMCTGFCR_TGFC ((uint32_t)0xFFFFFFFF) /* Number of good frames transmitted. */ - -/* Bit definition for Ethernet MMC Received Frames with CRC Error Counter Register */ -#define ETH_MMCRFCECR_RFCEC ((uint32_t)0xFFFFFFFF) /* Number of frames received with CRC error. */ - -/* Bit definition for Ethernet MMC Received Frames with Alignement Error Counter Register */ -#define ETH_MMCRFAECR_RFAEC ((uint32_t)0xFFFFFFFF) /* Number of frames received with alignment (dribble) error */ - -/* Bit definition for Ethernet MMC Received Good Unicast Frames Counter Register */ -#define ETH_MMCRGUFCR_RGUFC ((uint32_t)0xFFFFFFFF) /* Number of good unicast frames received. */ - -/******************************************************************************/ -/* Ethernet PTP Registers bits definition */ -/******************************************************************************/ - -/* Bit definition for Ethernet PTP Time Stamp Contol Register */ -#define ETH_PTPTSCR_TSARU ((uint32_t)0x00000020) /* Addend register update */ -#define ETH_PTPTSCR_TSITE ((uint32_t)0x00000010) /* Time stamp interrupt trigger enable */ -#define ETH_PTPTSCR_TSSTU ((uint32_t)0x00000008) /* Time stamp update */ -#define ETH_PTPTSCR_TSSTI ((uint32_t)0x00000004) /* Time stamp initialize */ -#define ETH_PTPTSCR_TSFCU ((uint32_t)0x00000002) /* Time stamp fine or coarse update */ -#define ETH_PTPTSCR_TSE ((uint32_t)0x00000001) /* Time stamp enable */ - -/* Bit definition for Ethernet PTP Sub-Second Increment Register */ -#define ETH_PTPSSIR_STSSI ((uint32_t)0x000000FF) /* System time Sub-second increment value */ - -/* Bit definition for Ethernet PTP Time Stamp High Register */ -#define ETH_PTPTSHR_STS ((uint32_t)0xFFFFFFFF) /* System Time second */ - -/* Bit definition for Ethernet PTP Time Stamp Low Register */ -#define ETH_PTPTSLR_STPNS ((uint32_t)0x80000000) /* System Time Positive or negative time */ -#define ETH_PTPTSLR_STSS ((uint32_t)0x7FFFFFFF) /* System Time sub-seconds */ - -/* Bit definition for Ethernet PTP Time Stamp High Update Register */ -#define ETH_PTPTSHUR_TSUS ((uint32_t)0xFFFFFFFF) /* Time stamp update seconds */ - -/* Bit definition for Ethernet PTP Time Stamp Low Update Register */ -#define ETH_PTPTSLUR_TSUPNS ((uint32_t)0x80000000) /* Time stamp update Positive or negative time */ -#define ETH_PTPTSLUR_TSUSS ((uint32_t)0x7FFFFFFF) /* Time stamp update sub-seconds */ - -/* Bit definition for Ethernet PTP Time Stamp Addend Register */ -#define ETH_PTPTSAR_TSA ((uint32_t)0xFFFFFFFF) /* Time stamp addend */ - -/* Bit definition for Ethernet PTP Target Time High Register */ -#define ETH_PTPTTHR_TTSH ((uint32_t)0xFFFFFFFF) /* Target time stamp high */ - -/* Bit definition for Ethernet PTP Target Time Low Register */ -#define ETH_PTPTTLR_TTSL ((uint32_t)0xFFFFFFFF) /* Target time stamp low */ - -/******************************************************************************/ -/* Ethernet DMA Registers bits definition */ -/******************************************************************************/ - -/* Bit definition for Ethernet DMA Bus Mode Register */ -#define ETH_DMABMR_AAB ((uint32_t)0x02000000) /* Address-Aligned beats */ -#define ETH_DMABMR_FPM ((uint32_t)0x01000000) /* 4xPBL mode */ -#define ETH_DMABMR_USP ((uint32_t)0x00800000) /* Use separate PBL */ -#define ETH_DMABMR_RDP ((uint32_t)0x007E0000) /* RxDMA PBL */ - #define ETH_DMABMR_RDP_1Beat ((uint32_t)0x00020000) /* maximum number of beats to be transferred in one RxDMA transaction is 1 */ - #define ETH_DMABMR_RDP_2Beat ((uint32_t)0x00040000) /* maximum number of beats to be transferred in one RxDMA transaction is 2 */ - #define ETH_DMABMR_RDP_4Beat ((uint32_t)0x00080000) /* maximum number of beats to be transferred in one RxDMA transaction is 4 */ - #define ETH_DMABMR_RDP_8Beat ((uint32_t)0x00100000) /* maximum number of beats to be transferred in one RxDMA transaction is 8 */ - #define ETH_DMABMR_RDP_16Beat ((uint32_t)0x00200000) /* maximum number of beats to be transferred in one RxDMA transaction is 16 */ - #define ETH_DMABMR_RDP_32Beat ((uint32_t)0x00400000) /* maximum number of beats to be transferred in one RxDMA transaction is 32 */ - #define ETH_DMABMR_RDP_4xPBL_4Beat ((uint32_t)0x01020000) /* maximum number of beats to be transferred in one RxDMA transaction is 4 */ - #define ETH_DMABMR_RDP_4xPBL_8Beat ((uint32_t)0x01040000) /* maximum number of beats to be transferred in one RxDMA transaction is 8 */ - #define ETH_DMABMR_RDP_4xPBL_16Beat ((uint32_t)0x01080000) /* maximum number of beats to be transferred in one RxDMA transaction is 16 */ - #define ETH_DMABMR_RDP_4xPBL_32Beat ((uint32_t)0x01100000) /* maximum number of beats to be transferred in one RxDMA transaction is 32 */ - #define ETH_DMABMR_RDP_4xPBL_64Beat ((uint32_t)0x01200000) /* maximum number of beats to be transferred in one RxDMA transaction is 64 */ - #define ETH_DMABMR_RDP_4xPBL_128Beat ((uint32_t)0x01400000) /* maximum number of beats to be transferred in one RxDMA transaction is 128 */ -#define ETH_DMABMR_FB ((uint32_t)0x00010000) /* Fixed Burst */ -#define ETH_DMABMR_RTPR ((uint32_t)0x0000C000) /* Rx Tx priority ratio */ - #define ETH_DMABMR_RTPR_1_1 ((uint32_t)0x00000000) /* Rx Tx priority ratio */ - #define ETH_DMABMR_RTPR_2_1 ((uint32_t)0x00004000) /* Rx Tx priority ratio */ - #define ETH_DMABMR_RTPR_3_1 ((uint32_t)0x00008000) /* Rx Tx priority ratio */ - #define ETH_DMABMR_RTPR_4_1 ((uint32_t)0x0000C000) /* Rx Tx priority ratio */ -#define ETH_DMABMR_PBL ((uint32_t)0x00003F00) /* Programmable burst length */ - #define ETH_DMABMR_PBL_1Beat ((uint32_t)0x00000100) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 1 */ - #define ETH_DMABMR_PBL_2Beat ((uint32_t)0x00000200) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 2 */ - #define ETH_DMABMR_PBL_4Beat ((uint32_t)0x00000400) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */ - #define ETH_DMABMR_PBL_8Beat ((uint32_t)0x00000800) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */ - #define ETH_DMABMR_PBL_16Beat ((uint32_t)0x00001000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */ - #define ETH_DMABMR_PBL_32Beat ((uint32_t)0x00002000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */ - #define ETH_DMABMR_PBL_4xPBL_4Beat ((uint32_t)0x01000100) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */ - #define ETH_DMABMR_PBL_4xPBL_8Beat ((uint32_t)0x01000200) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */ - #define ETH_DMABMR_PBL_4xPBL_16Beat ((uint32_t)0x01000400) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */ - #define ETH_DMABMR_PBL_4xPBL_32Beat ((uint32_t)0x01000800) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */ - #define ETH_DMABMR_PBL_4xPBL_64Beat ((uint32_t)0x01001000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 64 */ - #define ETH_DMABMR_PBL_4xPBL_128Beat ((uint32_t)0x01002000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 128 */ -#define ETH_DMABMR_DSL ((uint32_t)0x0000007C) /* Descriptor Skip Length */ -#define ETH_DMABMR_DA ((uint32_t)0x00000002) /* DMA arbitration scheme */ -#define ETH_DMABMR_SR ((uint32_t)0x00000001) /* Software reset */ - -/* Bit definition for Ethernet DMA Transmit Poll Demand Register */ -#define ETH_DMATPDR_TPD ((uint32_t)0xFFFFFFFF) /* Transmit poll demand */ - -/* Bit definition for Ethernet DMA Receive Poll Demand Register */ -#define ETH_DMARPDR_RPD ((uint32_t)0xFFFFFFFF) /* Receive poll demand */ - -/* Bit definition for Ethernet DMA Receive Descriptor List Address Register */ -#define ETH_DMARDLAR_SRL ((uint32_t)0xFFFFFFFF) /* Start of receive list */ - -/* Bit definition for Ethernet DMA Transmit Descriptor List Address Register */ -#define ETH_DMATDLAR_STL ((uint32_t)0xFFFFFFFF) /* Start of transmit list */ - -/* Bit definition for Ethernet DMA Status Register */ -#define ETH_DMASR_TSTS ((uint32_t)0x20000000) /* Time-stamp trigger status */ -#define ETH_DMASR_PMTS ((uint32_t)0x10000000) /* PMT status */ -#define ETH_DMASR_MMCS ((uint32_t)0x08000000) /* MMC status */ -#define ETH_DMASR_EBS ((uint32_t)0x03800000) /* Error bits status */ - /* combination with EBS[2:0] for GetFlagStatus function */ - #define ETH_DMASR_EBS_DescAccess ((uint32_t)0x02000000) /* Error bits 0-data buffer, 1-desc. access */ - #define ETH_DMASR_EBS_ReadTransf ((uint32_t)0x01000000) /* Error bits 0-write trnsf, 1-read transfr */ - #define ETH_DMASR_EBS_DataTransfTx ((uint32_t)0x00800000) /* Error bits 0-Rx DMA, 1-Tx DMA */ -#define ETH_DMASR_TPS ((uint32_t)0x00700000) /* Transmit process state */ - #define ETH_DMASR_TPS_Stopped ((uint32_t)0x00000000) /* Stopped - Reset or Stop Tx Command issued */ - #define ETH_DMASR_TPS_Fetching ((uint32_t)0x00100000) /* Running - fetching the Tx descriptor */ - #define ETH_DMASR_TPS_Waiting ((uint32_t)0x00200000) /* Running - waiting for status */ - #define ETH_DMASR_TPS_Reading ((uint32_t)0x00300000) /* Running - reading the data from host memory */ - #define ETH_DMASR_TPS_Suspended ((uint32_t)0x00600000) /* Suspended - Tx Descriptor unavailabe */ - #define ETH_DMASR_TPS_Closing ((uint32_t)0x00700000) /* Running - closing Rx descriptor */ -#define ETH_DMASR_RPS ((uint32_t)0x000E0000) /* Receive process state */ - #define ETH_DMASR_RPS_Stopped ((uint32_t)0x00000000) /* Stopped - Reset or Stop Rx Command issued */ - #define ETH_DMASR_RPS_Fetching ((uint32_t)0x00020000) /* Running - fetching the Rx descriptor */ - #define ETH_DMASR_RPS_Waiting ((uint32_t)0x00060000) /* Running - waiting for packet */ - #define ETH_DMASR_RPS_Suspended ((uint32_t)0x00080000) /* Suspended - Rx Descriptor unavailable */ - #define ETH_DMASR_RPS_Closing ((uint32_t)0x000A0000) /* Running - closing descriptor */ - #define ETH_DMASR_RPS_Queuing ((uint32_t)0x000E0000) /* Running - queuing the recieve frame into host memory */ -#define ETH_DMASR_NIS ((uint32_t)0x00010000) /* Normal interrupt summary */ -#define ETH_DMASR_AIS ((uint32_t)0x00008000) /* Abnormal interrupt summary */ -#define ETH_DMASR_ERS ((uint32_t)0x00004000) /* Early receive status */ -#define ETH_DMASR_FBES ((uint32_t)0x00002000) /* Fatal bus error status */ -#define ETH_DMASR_ETS ((uint32_t)0x00000400) /* Early transmit status */ -#define ETH_DMASR_RWTS ((uint32_t)0x00000200) /* Receive watchdog timeout status */ -#define ETH_DMASR_RPSS ((uint32_t)0x00000100) /* Receive process stopped status */ -#define ETH_DMASR_RBUS ((uint32_t)0x00000080) /* Receive buffer unavailable status */ -#define ETH_DMASR_RS ((uint32_t)0x00000040) /* Receive status */ -#define ETH_DMASR_TUS ((uint32_t)0x00000020) /* Transmit underflow status */ -#define ETH_DMASR_ROS ((uint32_t)0x00000010) /* Receive overflow status */ -#define ETH_DMASR_TJTS ((uint32_t)0x00000008) /* Transmit jabber timeout status */ -#define ETH_DMASR_TBUS ((uint32_t)0x00000004) /* Transmit buffer unavailable status */ -#define ETH_DMASR_TPSS ((uint32_t)0x00000002) /* Transmit process stopped status */ -#define ETH_DMASR_TS ((uint32_t)0x00000001) /* Transmit status */ - -/* Bit definition for Ethernet DMA Operation Mode Register */ -#define ETH_DMAOMR_DTCEFD ((uint32_t)0x04000000) /* Disable Dropping of TCP/IP checksum error frames */ -#define ETH_DMAOMR_RSF ((uint32_t)0x02000000) /* Receive store and forward */ -#define ETH_DMAOMR_DFRF ((uint32_t)0x01000000) /* Disable flushing of received frames */ -#define ETH_DMAOMR_TSF ((uint32_t)0x00200000) /* Transmit store and forward */ -#define ETH_DMAOMR_FTF ((uint32_t)0x00100000) /* Flush transmit FIFO */ -#define ETH_DMAOMR_TTC ((uint32_t)0x0001C000) /* Transmit threshold control */ - #define ETH_DMAOMR_TTC_64Bytes ((uint32_t)0x00000000) /* threshold level of the MTL Transmit FIFO is 64 Bytes */ - #define ETH_DMAOMR_TTC_128Bytes ((uint32_t)0x00004000) /* threshold level of the MTL Transmit FIFO is 128 Bytes */ - #define ETH_DMAOMR_TTC_192Bytes ((uint32_t)0x00008000) /* threshold level of the MTL Transmit FIFO is 192 Bytes */ - #define ETH_DMAOMR_TTC_256Bytes ((uint32_t)0x0000C000) /* threshold level of the MTL Transmit FIFO is 256 Bytes */ - #define ETH_DMAOMR_TTC_40Bytes ((uint32_t)0x00010000) /* threshold level of the MTL Transmit FIFO is 40 Bytes */ - #define ETH_DMAOMR_TTC_32Bytes ((uint32_t)0x00014000) /* threshold level of the MTL Transmit FIFO is 32 Bytes */ - #define ETH_DMAOMR_TTC_24Bytes ((uint32_t)0x00018000) /* threshold level of the MTL Transmit FIFO is 24 Bytes */ - #define ETH_DMAOMR_TTC_16Bytes ((uint32_t)0x0001C000) /* threshold level of the MTL Transmit FIFO is 16 Bytes */ -#define ETH_DMAOMR_ST ((uint32_t)0x00002000) /* Start/stop transmission command */ -#define ETH_DMAOMR_FEF ((uint32_t)0x00000080) /* Forward error frames */ -#define ETH_DMAOMR_FUGF ((uint32_t)0x00000040) /* Forward undersized good frames */ -#define ETH_DMAOMR_RTC ((uint32_t)0x00000018) /* receive threshold control */ - #define ETH_DMAOMR_RTC_64Bytes ((uint32_t)0x00000000) /* threshold level of the MTL Receive FIFO is 64 Bytes */ - #define ETH_DMAOMR_RTC_32Bytes ((uint32_t)0x00000008) /* threshold level of the MTL Receive FIFO is 32 Bytes */ - #define ETH_DMAOMR_RTC_96Bytes ((uint32_t)0x00000010) /* threshold level of the MTL Receive FIFO is 96 Bytes */ - #define ETH_DMAOMR_RTC_128Bytes ((uint32_t)0x00000018) /* threshold level of the MTL Receive FIFO is 128 Bytes */ -#define ETH_DMAOMR_OSF ((uint32_t)0x00000004) /* operate on second frame */ -#define ETH_DMAOMR_SR ((uint32_t)0x00000002) /* Start/stop receive */ - -/* Bit definition for Ethernet DMA Interrupt Enable Register */ -#define ETH_DMAIER_NISE ((uint32_t)0x00010000) /* Normal interrupt summary enable */ -#define ETH_DMAIER_AISE ((uint32_t)0x00008000) /* Abnormal interrupt summary enable */ -#define ETH_DMAIER_ERIE ((uint32_t)0x00004000) /* Early receive interrupt enable */ -#define ETH_DMAIER_FBEIE ((uint32_t)0x00002000) /* Fatal bus error interrupt enable */ -#define ETH_DMAIER_ETIE ((uint32_t)0x00000400) /* Early transmit interrupt enable */ -#define ETH_DMAIER_RWTIE ((uint32_t)0x00000200) /* Receive watchdog timeout interrupt enable */ -#define ETH_DMAIER_RPSIE ((uint32_t)0x00000100) /* Receive process stopped interrupt enable */ -#define ETH_DMAIER_RBUIE ((uint32_t)0x00000080) /* Receive buffer unavailable interrupt enable */ -#define ETH_DMAIER_RIE ((uint32_t)0x00000040) /* Receive interrupt enable */ -#define ETH_DMAIER_TUIE ((uint32_t)0x00000020) /* Transmit Underflow interrupt enable */ -#define ETH_DMAIER_ROIE ((uint32_t)0x00000010) /* Receive Overflow interrupt enable */ -#define ETH_DMAIER_TJTIE ((uint32_t)0x00000008) /* Transmit jabber timeout interrupt enable */ -#define ETH_DMAIER_TBUIE ((uint32_t)0x00000004) /* Transmit buffer unavailable interrupt enable */ -#define ETH_DMAIER_TPSIE ((uint32_t)0x00000002) /* Transmit process stopped interrupt enable */ -#define ETH_DMAIER_TIE ((uint32_t)0x00000001) /* Transmit interrupt enable */ - -/* Bit definition for Ethernet DMA Missed Frame and Buffer Overflow Counter Register */ -#define ETH_DMAMFBOCR_OFOC ((uint32_t)0x10000000) /* Overflow bit for FIFO overflow counter */ -#define ETH_DMAMFBOCR_MFA ((uint32_t)0x0FFE0000) /* Number of frames missed by the application */ -#define ETH_DMAMFBOCR_OMFC ((uint32_t)0x00010000) /* Overflow bit for missed frame counter */ -#define ETH_DMAMFBOCR_MFC ((uint32_t)0x0000FFFF) /* Number of frames missed by the controller */ - -/* Bit definition for Ethernet DMA Current Host Transmit Descriptor Register */ -#define ETH_DMACHTDR_HTDAP ((uint32_t)0xFFFFFFFF) /* Host transmit descriptor address pointer */ - -/* Bit definition for Ethernet DMA Current Host Receive Descriptor Register */ -#define ETH_DMACHRDR_HRDAP ((uint32_t)0xFFFFFFFF) /* Host receive descriptor address pointer */ - -/* Bit definition for Ethernet DMA Current Host Transmit Buffer Address Register */ -#define ETH_DMACHTBAR_HTBAP ((uint32_t)0xFFFFFFFF) /* Host transmit buffer address pointer */ - -/* Bit definition for Ethernet DMA Current Host Receive Buffer Address Register */ -#define ETH_DMACHRBAR_HRBAP ((uint32_t)0xFFFFFFFF) /* Host receive buffer address pointer */ -#endif /* STM32F10X_CL */ - -/** - * @} - */ - - /** - * @} - */ - -#ifdef USE_STDPERIPH_DRIVER - #include "stm32f10x_conf.h" -#endif - -/** @addtogroup Exported_macro - * @{ - */ - -#define SET_BIT(REG, BIT) ((REG) |= (BIT)) - -#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT)) - -#define READ_BIT(REG, BIT) ((REG) & (BIT)) - -#define CLEAR_REG(REG) ((REG) = (0x0)) - -#define WRITE_REG(REG, VAL) ((REG) = (VAL)) - -#define READ_REG(REG) ((REG)) - -#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK))) - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_H */ - -/** - * @} - */ - - /** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c deleted file mode 100644 index 6fb4579e..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c +++ /dev/null @@ -1,1094 +0,0 @@ -/** - ****************************************************************************** - * @file system_stm32f10x.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. - * - * 1. This file provides two functions and one global variable to be called from - * user application: - * - SystemInit(): Setups the system clock (System clock source, PLL Multiplier - * factors, AHB/APBx prescalers and Flash settings). - * This function is called at startup just after reset and - * before branch to main program. This call is made inside - * the "startup_stm32f10x_xx.s" file. - * - * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used - * by the user application to setup the SysTick - * timer or configure other parameters. - * - * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must - * be called whenever the core clock is changed - * during program execution. - * - * 2. After each device reset the HSI (8 MHz) is used as system clock source. - * Then SystemInit() function is called, in "startup_stm32f10x_xx.s" file, to - * configure the system clock before to branch to main program. - * - * 3. If the system clock source selected by user fails to startup, the SystemInit() - * function will do nothing and HSI still used as system clock source. User can - * add some code to deal with this issue inside the SetSysClock() function. - * - * 4. The default value of HSE crystal is set to 8 MHz (or 25 MHz, depedning on - * the product used), refer to "HSE_VALUE" define in "stm32f10x.h" file. - * When HSE is used as system clock source, directly or through PLL, and you - * are using different crystal you have to adapt the HSE value to your own - * configuration. - * - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/** @addtogroup CMSIS - * @{ - */ - -/** @addtogroup stm32f10x_system - * @{ - */ - -/** @addtogroup STM32F10x_System_Private_Includes - * @{ - */ - -#include "stm32f10x.h" - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_Defines - * @{ - */ - -/*!< Uncomment the line corresponding to the desired System clock (SYSCLK) - frequency (after reset the HSI is used as SYSCLK source) - - IMPORTANT NOTE: - ============== - 1. After each device reset the HSI is used as System clock source. - - 2. Please make sure that the selected System clock doesn't exceed your device's - maximum frequency. - - 3. If none of the define below is enabled, the HSI is used as System clock - source. - - 4. The System clock configuration functions provided within this file assume that: - - For Low, Medium and High density Value line devices an external 8MHz - crystal is used to drive the System clock. - - For Low, Medium and High density devices an external 8MHz crystal is - used to drive the System clock. - - For Connectivity line devices an external 25MHz crystal is used to drive - the System clock. - If you are using different crystal you have to adapt those functions accordingly. - */ - -#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) -/* #define SYSCLK_FREQ_HSE HSE_VALUE */ - #define SYSCLK_FREQ_24MHz 24000000 -#else -/* #define SYSCLK_FREQ_HSE HSE_VALUE */ -/* #define SYSCLK_FREQ_24MHz 24000000 */ -/* #define SYSCLK_FREQ_36MHz 36000000 */ -/* #define SYSCLK_FREQ_48MHz 48000000 */ -/* #define SYSCLK_FREQ_56MHz 56000000 */ -#define SYSCLK_FREQ_72MHz 72000000 -#endif - -/*!< Uncomment the following line if you need to use external SRAM mounted - on STM3210E-EVAL board (STM32 High density and XL-density devices) or on - STM32100E-EVAL board (STM32 High-density value line devices) as data memory */ -#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL) -/* #define DATA_IN_ExtSRAM */ -#endif - -/*!< Uncomment the following line if you need to relocate your vector Table in - Internal SRAM. */ -/* #define VECT_TAB_SRAM */ -#define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field. - This value must be a multiple of 0x200. */ - - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_Variables - * @{ - */ - -/******************************************************************************* -* Clock Definitions -*******************************************************************************/ -#ifdef SYSCLK_FREQ_HSE - uint32_t SystemCoreClock = SYSCLK_FREQ_HSE; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_24MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_24MHz; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_36MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_36MHz; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_48MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_48MHz; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_56MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_56MHz; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_72MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_72MHz; /*!< System Clock Frequency (Core Clock) */ -#else /*!< HSI Selected as System Clock source */ - uint32_t SystemCoreClock = HSI_VALUE; /*!< System Clock Frequency (Core Clock) */ -#endif - -__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_FunctionPrototypes - * @{ - */ - -static void SetSysClock(void); - -#ifdef SYSCLK_FREQ_HSE - static void SetSysClockToHSE(void); -#elif defined SYSCLK_FREQ_24MHz - static void SetSysClockTo24(void); -#elif defined SYSCLK_FREQ_36MHz - static void SetSysClockTo36(void); -#elif defined SYSCLK_FREQ_48MHz - static void SetSysClockTo48(void); -#elif defined SYSCLK_FREQ_56MHz - static void SetSysClockTo56(void); -#elif defined SYSCLK_FREQ_72MHz - static void SetSysClockTo72(void); -#endif - -#ifdef DATA_IN_ExtSRAM - static void SystemInit_ExtMemCtl(void); -#endif /* DATA_IN_ExtSRAM */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_Functions - * @{ - */ - -/** - * @brief Setup the microcontroller system - * Initialize the Embedded Flash Interface, the PLL and update the - * SystemCoreClock variable. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -void SystemInit (void) -{ - /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ - /* Set HSION bit */ - RCC->CR |= (uint32_t)0x00000001; - - /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ -#ifndef STM32F10X_CL - RCC->CFGR &= (uint32_t)0xF8FF0000; -#else - RCC->CFGR &= (uint32_t)0xF0FF0000; -#endif /* STM32F10X_CL */ - - /* Reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (uint32_t)0xFEF6FFFF; - - /* Reset HSEBYP bit */ - RCC->CR &= (uint32_t)0xFFFBFFFF; - - /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (uint32_t)0xFF80FFFF; - -#ifdef STM32F10X_CL - /* Reset PLL2ON and PLL3ON bits */ - RCC->CR &= (uint32_t)0xEBFFFFFF; - - /* Disable all interrupts and clear pending bits */ - RCC->CIR = 0x00FF0000; - - /* Reset CFGR2 register */ - RCC->CFGR2 = 0x00000000; -#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) - /* Disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - - /* Reset CFGR2 register */ - RCC->CFGR2 = 0x00000000; -#else - /* Disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; -#endif /* STM32F10X_CL */ - -#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL) - #ifdef DATA_IN_ExtSRAM - SystemInit_ExtMemCtl(); - #endif /* DATA_IN_ExtSRAM */ -#endif - - /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */ - /* Configure the Flash Latency cycles and enable prefetch buffer */ - SetSysClock(); - -#ifdef VECT_TAB_SRAM - SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ -#else - SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ -#endif -} - -/** - * @brief Update SystemCoreClock variable according to Clock Register Values. - * The SystemCoreClock variable contains the core clock (HCLK), it can - * be used by the user application to setup the SysTick timer or configure - * other parameters. - * - * @note Each time the core clock (HCLK) changes, this function must be called - * to update SystemCoreClock variable value. Otherwise, any configuration - * based on this variable will be incorrect. - * - * @note - The system frequency computed by this function is not the real - * frequency in the chip. It is calculated based on the predefined - * constant and the selected clock source: - * - * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) - * - * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) - * - * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) - * or HSI_VALUE(*) multiplied by the PLL factors. - * - * (*) HSI_VALUE is a constant defined in stm32f1xx.h file (default value - * 8 MHz) but the real value may vary depending on the variations - * in voltage and temperature. - * - * (**) HSE_VALUE is a constant defined in stm32f1xx.h file (default value - * 8 MHz or 25 MHz, depedning on the product used), user has to ensure - * that HSE_VALUE is same as the real frequency of the crystal used. - * Otherwise, this function may have wrong result. - * - * - The result of this function could be not correct when using fractional - * value for HSE crystal. - * @param None - * @retval None - */ -void SystemCoreClockUpdate (void) -{ - uint32_t tmp = 0, pllmull = 0, pllsource = 0; - -#ifdef STM32F10X_CL - uint32_t prediv1source = 0, prediv1factor = 0, prediv2factor = 0, pll2mull = 0; -#endif /* STM32F10X_CL */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) - uint32_t prediv1factor = 0; -#endif /* STM32F10X_LD_VL or STM32F10X_MD_VL or STM32F10X_HD_VL */ - - /* Get SYSCLK source -------------------------------------------------------*/ - tmp = RCC->CFGR & RCC_CFGR_SWS; - - switch (tmp) - { - case 0x00: /* HSI used as system clock */ - SystemCoreClock = HSI_VALUE; - break; - case 0x04: /* HSE used as system clock */ - SystemCoreClock = HSE_VALUE; - break; - case 0x08: /* PLL used as system clock */ - - /* Get PLL clock source and multiplication factor ----------------------*/ - pllmull = RCC->CFGR & RCC_CFGR_PLLMULL; - pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; - -#ifndef STM32F10X_CL - pllmull = ( pllmull >> 18) + 2; - - if (pllsource == 0x00) - { - /* HSI oscillator clock divided by 2 selected as PLL clock entry */ - SystemCoreClock = (HSI_VALUE >> 1) * pllmull; - } - else - { - #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) - prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1; - /* HSE oscillator clock selected as PREDIV1 clock entry */ - SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; - #else - /* HSE selected as PLL clock entry */ - if ((RCC->CFGR & RCC_CFGR_PLLXTPRE) != (uint32_t)RESET) - {/* HSE oscillator clock divided by 2 */ - SystemCoreClock = (HSE_VALUE >> 1) * pllmull; - } - else - { - SystemCoreClock = HSE_VALUE * pllmull; - } - #endif - } -#else - pllmull = pllmull >> 18; - - if (pllmull != 0x0D) - { - pllmull += 2; - } - else - { /* PLL multiplication factor = PLL input clock * 6.5 */ - pllmull = 13 / 2; - } - - if (pllsource == 0x00) - { - /* HSI oscillator clock divided by 2 selected as PLL clock entry */ - SystemCoreClock = (HSI_VALUE >> 1) * pllmull; - } - else - {/* PREDIV1 selected as PLL clock entry */ - - /* Get PREDIV1 clock source and division factor */ - prediv1source = RCC->CFGR2 & RCC_CFGR2_PREDIV1SRC; - prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1; - - if (prediv1source == 0) - { - /* HSE oscillator clock selected as PREDIV1 clock entry */ - SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; - } - else - {/* PLL2 clock selected as PREDIV1 clock entry */ - - /* Get PREDIV2 division factor and PLL2 multiplication factor */ - prediv2factor = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> 4) + 1; - pll2mull = ((RCC->CFGR2 & RCC_CFGR2_PLL2MUL) >> 8 ) + 2; - SystemCoreClock = (((HSE_VALUE / prediv2factor) * pll2mull) / prediv1factor) * pllmull; - } - } -#endif /* STM32F10X_CL */ - break; - - default: - SystemCoreClock = HSI_VALUE; - break; - } - - /* Compute HCLK clock frequency ----------------*/ - /* Get HCLK prescaler */ - tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; - /* HCLK clock frequency */ - SystemCoreClock >>= tmp; -} - -/** - * @brief Configures the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers. - * @param None - * @retval None - */ -static void SetSysClock(void) -{ -#ifdef SYSCLK_FREQ_HSE - SetSysClockToHSE(); -#elif defined SYSCLK_FREQ_24MHz - SetSysClockTo24(); -#elif defined SYSCLK_FREQ_36MHz - SetSysClockTo36(); -#elif defined SYSCLK_FREQ_48MHz - SetSysClockTo48(); -#elif defined SYSCLK_FREQ_56MHz - SetSysClockTo56(); -#elif defined SYSCLK_FREQ_72MHz - SetSysClockTo72(); -#endif - - /* If none of the define above is enabled, the HSI is used as System clock - source (default after reset) */ -} - -/** - * @brief Setup the external memory controller. Called in startup_stm32f10x.s - * before jump to __main - * @param None - * @retval None - */ -#ifdef DATA_IN_ExtSRAM -/** - * @brief Setup the external memory controller. - * Called in startup_stm32f10x_xx.s/.c before jump to main. - * This function configures the external SRAM mounted on STM3210E-EVAL - * board (STM32 High density devices). This SRAM will be used as program - * data memory (including heap and stack). - * @param None - * @retval None - */ -void SystemInit_ExtMemCtl(void) -{ -/*!< FSMC Bank1 NOR/SRAM3 is used for the STM3210E-EVAL, if another Bank is - required, then adjust the Register Addresses */ - - /* Enable FSMC clock */ - RCC->AHBENR = 0x00000114; - - /* Enable GPIOD, GPIOE, GPIOF and GPIOG clocks */ - RCC->APB2ENR = 0x000001E0; - -/* --------------- SRAM Data lines, NOE and NWE configuration ---------------*/ -/*---------------- SRAM Address lines configuration -------------------------*/ -/*---------------- NOE and NWE configuration --------------------------------*/ -/*---------------- NE3 configuration ----------------------------------------*/ -/*---------------- NBL0, NBL1 configuration ---------------------------------*/ - - GPIOD->CRL = 0x44BB44BB; - GPIOD->CRH = 0xBBBBBBBB; - - GPIOE->CRL = 0xB44444BB; - GPIOE->CRH = 0xBBBBBBBB; - - GPIOF->CRL = 0x44BBBBBB; - GPIOF->CRH = 0xBBBB4444; - - GPIOG->CRL = 0x44BBBBBB; - GPIOG->CRH = 0x44444B44; - -/*---------------- FSMC Configuration ---------------------------------------*/ -/*---------------- Enable FSMC Bank1_SRAM Bank ------------------------------*/ - - FSMC_Bank1->BTCR[4] = 0x00001011; - FSMC_Bank1->BTCR[5] = 0x00000200; -} -#endif /* DATA_IN_ExtSRAM */ - -#ifdef SYSCLK_FREQ_HSE -/** - * @brief Selects HSE as System clock source and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockToHSE(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - -#if !defined STM32F10X_LD_VL && !defined STM32F10X_MD_VL && !defined STM32F10X_HD_VL - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 0 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - -#ifndef STM32F10X_CL - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_0; -#else - if (HSE_VALUE <= 24000000) - { - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_0; - } - else - { - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; - } -#endif /* STM32F10X_CL */ -#endif - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; - - /* Select HSE as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_HSE; - - /* Wait till HSE is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x04) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} -#elif defined SYSCLK_FREQ_24MHz -/** - * @brief Sets System clock frequency to 24MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo24(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { -#if !defined STM32F10X_LD_VL && !defined STM32F10X_MD_VL && !defined STM32F10X_HD_VL - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 0 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_0; -#endif - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - /* PLL configuration: PLLCLK = PREDIV1 * 6 = 24 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL6); - - /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 10 = 4 MHz */ - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV10); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } -#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - /* PLL configuration: = (HSE / 2) * 6 = 24 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1_Div2 | RCC_CFGR_PLLMULL6); -#else - /* PLL configuration: = (HSE / 2) * 6 = 24 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6); -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} -#elif defined SYSCLK_FREQ_36MHz -/** - * @brief Sets System clock frequency to 36MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo36(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 1 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - - /* PLL configuration: PLLCLK = PREDIV1 * 9 = 36 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL9); - - /*!< PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 10 = 4 MHz */ - - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV10); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } - -#else - /* PLL configuration: PLLCLK = (HSE / 2) * 9 = 36 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL9); -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} -#elif defined SYSCLK_FREQ_48MHz -/** - * @brief Sets System clock frequency to 48MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo48(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 1 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */ - - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } - - - /* PLL configuration: PLLCLK = PREDIV1 * 6 = 48 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL6); -#else - /* PLL configuration: PLLCLK = HSE * 6 = 48 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6); -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} - -#elif defined SYSCLK_FREQ_56MHz -/** - * @brief Sets System clock frequency to 56MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo56(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 2 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2; - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */ - - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } - - - /* PLL configuration: PLLCLK = PREDIV1 * 7 = 56 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL7); -#else - /* PLL configuration: PLLCLK = HSE * 7 = 56 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL7); - -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} - -#elif defined SYSCLK_FREQ_72MHz -/** - * @brief Sets System clock frequency to 72MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo72(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 2 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2; - - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */ - - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } - - - /* PLL configuration: PLLCLK = PREDIV1 * 9 = 72 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL9); -#else - /* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | - RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9); -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} -#endif - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h deleted file mode 100644 index 739f3328..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h +++ /dev/null @@ -1,98 +0,0 @@ -/** - ****************************************************************************** - * @file system_stm32f10x.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Header File. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/** @addtogroup CMSIS - * @{ - */ - -/** @addtogroup stm32f10x_system - * @{ - */ - -/** - * @brief Define to prevent recursive inclusion - */ -#ifndef __SYSTEM_STM32F10X_H -#define __SYSTEM_STM32F10X_H - -#ifdef __cplusplus - extern "C" { -#endif - -/** @addtogroup STM32F10x_System_Includes - * @{ - */ - -/** - * @} - */ - - -/** @addtogroup STM32F10x_System_Exported_types - * @{ - */ - -extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Exported_Constants - * @{ - */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Exported_Functions - * @{ - */ - -extern void SystemInit(void); -extern void SystemCoreClockUpdate(void); -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /*__SYSTEM_STM32F10X_H */ - -/** - * @} - */ - -/** - * @} - */ -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CMSIS debug support.htm b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CMSIS debug support.htm deleted file mode 100644 index efda685b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CMSIS debug support.htm +++ /dev/null @@ -1,243 +0,0 @@ - - - -CMSIS Debug Support - - - - - - - - -

CMSIS Debug Support

- -
- -

Cortex-M3 ITM Debug Access

-

- The Cortex-M3 incorporates the Instrumented Trace Macrocell (ITM) that provides together with - the Serial Viewer Output trace capabilities for the microcontroller system. The ITM has - 32 communication channels which are able to transmit 32 / 16 / 8 bit values; two ITM - communication channels are used by CMSIS to output the following information: -

-
    -
  • ITM Channel 0: used for printf-style output via the debug interface.
  • -
  • ITM Channel 31: is reserved for RTOS kernel awareness debugging.
  • -
- -

Debug IN / OUT functions

-

CMSIS provides following debug functions:

-
    -
  • ITM_SendChar (uses ITM channel 0)
  • -
  • ITM_ReceiveChar (uses global variable)
  • -
  • ITM_CheckChar (uses global variable)
  • -
- -

ITM_SendChar

-

- ITM_SendChar is used to transmit a character over ITM channel 0 from - the microcontroller system to the debug system.
- Only a 8 bit value is transmitted. -

-
-static __INLINE uint32_t ITM_SendChar (uint32_t ch)
-{
-  /* check if debugger connected and ITM channel enabled for tracing */
-  if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA)  &&
-      (ITM->TCR & ITM_TCR_ITMENA)                  &&
-      (ITM->TER & (1UL << 0))  ) 
-  {
-    while (ITM->PORT[0].u32 == 0);
-    ITM->PORT[0].u8 = (uint8_t)ch;
-  }  
-  return (ch);
-}
- -

ITM_ReceiveChar

-

- ITM communication channel is only capable for OUT direction. For IN direction - a globel variable is used. A simple mechansim detects if a character is received. - The project to test need to be build with debug information. -

- -

- The globale variable ITM_RxBuffer is used to transmit a 8 bit value from debug system - to microcontroller system. ITM_RxBuffer is 32 bit wide to enshure a proper handshake. -

-
-extern volatile int ITM_RxBuffer;                    /* variable to receive characters                             */
-
-

- A dedicated bit pattern is used to determin if ITM_RxBuffer is empty - or contains a valid value. -

-
-#define             ITM_RXBUFFER_EMPTY    0x5AA55AA5 /* value identifying ITM_RxBuffer is ready for next character */
-
-

- ITM_ReceiveChar is used to receive a 8 bit value from the debug system. The function is nonblocking. - It returns the received character or '-1' if no character was available. -

-
-static __INLINE int ITM_ReceiveChar (void) {
-  int ch = -1;                               /* no character available */
-
-  if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) {
-    ch = ITM_RxBuffer;
-    ITM_RxBuffer = ITM_RXBUFFER_EMPTY;       /* ready for next character */
-  }
-  
-  return (ch); 
-}
-
- -

ITM_CheckChar

-

- ITM_CheckChar is used to check if a character is received. -

-
-static __INLINE int ITM_CheckChar (void) {
-
-  if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) {
-    return (0);                                 /* no character available */
-  } else {
-    return (1);                                 /*    character available */
-  }
-}
- - -

ITM Debug Support in uVision

-

- uVision uses in a debug session the Debug (printf) Viewer window to - display the debug data. -

-

Direction microcontroller system -> uVision:

-
    -
  • - Characters received via ITM communication channel 0 are written in a printf style - to Debug (printf) Viewer window. -
  • -
- -

Direction uVision -> microcontroller system:

-
    -
  • Check if ITM_RxBuffer variable is available (only performed once).
  • -
  • Read character from Debug (printf) Viewer window.
  • -
  • If ITM_RxBuffer empty write character to ITM_RxBuffer.
  • -
- -

Note

-
    -
  • Current solution does not use a buffer machanism for trasmitting the characters.

    -
  • -
- -

RTX Kernel awareness in uVision

-

- uVision / RTX are using a simple and efficient solution for RTX Kernel awareness. - No format overhead is necessary.
- uVsion debugger decodes the RTX events via the 32 / 16 / 8 bit ITM write access - to ITM communication channel 31. -

- -

Following RTX events are traced:

-
    -
  • Task Create / Delete event -
      -
    1. 32 bit access. Task start address is transmitted
    2. -
    3. 16 bit access. Task ID and Create/Delete flag are transmitted
      - High byte holds Create/Delete flag, Low byte holds TASK ID. -
    4. -
    -
  • -
  • Task switch event -
      -
    1. 8 bit access. Task ID of current task is transmitted
    2. -
    -
  • -
- -

Note

-
    -
  • Other RTOS information could be retrieved via memory read access in a polling mode manner.

    -
  • -
- - -

 

- -
- -
- - - - \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CMSIS_changes.htm b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CMSIS_changes.htm deleted file mode 100644 index 162ffcc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/CMSIS_changes.htm +++ /dev/null @@ -1,320 +0,0 @@ - - - -CMSIS Changes - - - - - - - - -

Changes to CMSIS version V1.20

- -
- -

1. Removed CMSIS Middelware packages

-

- CMSIS Middleware is on hold from ARM side until a agreement between all CMSIS partners is found. -

- -

2. SystemFrequency renamed to SystemCoreClock

-

- The variable name SystemCoreClock is more precise than SystemFrequency - because the variable holds the clock value at which the core is running. -

- -

3. Changed startup concept

-

- The old startup concept (calling SystemInit_ExtMemCtl from startup file and calling SystemInit - from main) has the weakness that it does not work for controllers which need a already - configuerd clock system to configure the external memory controller. -

- -

Changed startup concept

-
    -
  • - SystemInit() is called from startup file before premain. -
  • -
  • - SystemInit() configures the clock system and also configures - an existing external memory controller. -
  • -
  • - SystemInit() must not use global variables. -
  • -
  • - SystemCoreClock is initialized with a correct predefined value. -
  • -
  • - Additional function void SystemCoreClockUpdate (void) is provided.
    - SystemCoreClockUpdate() updates the variable SystemCoreClock - and must be called whenever the core clock is changed.
    - SystemCoreClockUpdate() evaluates the clock register settings and calculates - the current core clock. -
  • -
- - -

4. Advanced Debug Functions

-

- ITM communication channel is only capable for OUT direction. To allow also communication for - IN direction a simple concept is provided. -

-
    -
  • - Global variable volatile int ITM_RxBuffer used for IN data. -
  • -
  • - Function int ITM_CheckChar (void) checks if a new character is available. -
  • -
  • - Function int ITM_ReceiveChar (void) retrieves the new character. -
  • -
- -

- For detailed explanation see file CMSIS debug support.htm. -

- - -

5. Core Register Bit Definitions

-

- Files core_cm3.h and core_cm0.h contain now bit definitions for Core Registers. The name for the - defines correspond with the Cortex-M Technical Reference Manual. -

-

- e.g. SysTick structure with bit definitions -

-
-/** @addtogroup CMSIS_CM3_SysTick CMSIS CM3 SysTick
-  memory mapped structure for SysTick
-  @{
- */
-typedef struct
-{
-  __IO uint32_t CTRL;                         /*!< Offset: 0x00  SysTick Control and Status Register */
-  __IO uint32_t LOAD;                         /*!< Offset: 0x04  SysTick Reload Value Register       */
-  __IO uint32_t VAL;                          /*!< Offset: 0x08  SysTick Current Value Register      */
-  __I  uint32_t CALIB;                        /*!< Offset: 0x0C  SysTick Calibration Register        */
-} SysTick_Type;
-
-/* SysTick Control / Status Register Definitions */
-#define SysTick_CTRL_COUNTFLAG_Pos         16                                             /*!< SysTick CTRL: COUNTFLAG Position */
-#define SysTick_CTRL_COUNTFLAG_Msk         (1ul << SysTick_CTRL_COUNTFLAG_Pos)            /*!< SysTick CTRL: COUNTFLAG Mask */
-
-#define SysTick_CTRL_CLKSOURCE_Pos          2                                             /*!< SysTick CTRL: CLKSOURCE Position */
-#define SysTick_CTRL_CLKSOURCE_Msk         (1ul << SysTick_CTRL_CLKSOURCE_Pos)            /*!< SysTick CTRL: CLKSOURCE Mask */
-
-#define SysTick_CTRL_TICKINT_Pos            1                                             /*!< SysTick CTRL: TICKINT Position */
-#define SysTick_CTRL_TICKINT_Msk           (1ul << SysTick_CTRL_TICKINT_Pos)              /*!< SysTick CTRL: TICKINT Mask */
-
-#define SysTick_CTRL_ENABLE_Pos             0                                             /*!< SysTick CTRL: ENABLE Position */
-#define SysTick_CTRL_ENABLE_Msk            (1ul << SysTick_CTRL_ENABLE_Pos)               /*!< SysTick CTRL: ENABLE Mask */
-
-/* SysTick Reload Register Definitions */
-#define SysTick_LOAD_RELOAD_Pos             0                                             /*!< SysTick LOAD: RELOAD Position */
-#define SysTick_LOAD_RELOAD_Msk            (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos)        /*!< SysTick LOAD: RELOAD Mask */
-
-/* SysTick Current Register Definitions */
-#define SysTick_VAL_CURRENT_Pos             0                                             /*!< SysTick VAL: CURRENT Position */
-#define SysTick_VAL_CURRENT_Msk            (0xFFFFFFul << SysTick_VAL_CURRENT_Pos)        /*!< SysTick VAL: CURRENT Mask */
-
-/* SysTick Calibration Register Definitions */
-#define SysTick_CALIB_NOREF_Pos            31                                             /*!< SysTick CALIB: NOREF Position */
-#define SysTick_CALIB_NOREF_Msk            (1ul << SysTick_CALIB_NOREF_Pos)               /*!< SysTick CALIB: NOREF Mask */
-
-#define SysTick_CALIB_SKEW_Pos             30                                             /*!< SysTick CALIB: SKEW Position */
-#define SysTick_CALIB_SKEW_Msk             (1ul << SysTick_CALIB_SKEW_Pos)                /*!< SysTick CALIB: SKEW Mask */
-
-#define SysTick_CALIB_TENMS_Pos             0                                             /*!< SysTick CALIB: TENMS Position */
-#define SysTick_CALIB_TENMS_Msk            (0xFFFFFFul << SysTick_VAL_CURRENT_Pos)        /*!< SysTick CALIB: TENMS Mask */
-/*@}*/ /* end of group CMSIS_CM3_SysTick */
- -

7. DoxyGen Tags

-

- DoxyGen tags in files core_cm3.[c,h] and core_cm0.[c,h] are reworked to create proper documentation - using DoxyGen. -

- -

8. Folder Structure

-

- The folder structure is changed to differentiate the single support packages. -

- -
    -
  • CM0
  • -
  • CM3 -
      -
    • CoreSupport
    • -
    • DeviceSupport
    • -
        -
      • Vendor -
          -
        • Device -
            -
          • Startup -
              -
            • Toolchain
            • -
            • Toolchain
            • -
            • ...
            • -
            -
          • -
          -
        • -
        • Device
        • -
        • ...
        • -
        -
      • -
      • Vendor
      • -
      • ...
      • -
      - -
    • Example -
        -
      • Toolchain -
          -
        • Device
        • -
        • Device
        • -
        • ...
        • -
        -
      • -
      • Toolchain
      • -
      • ...
      • -
      -
    • -
    -
  • - -
  • Documentation
  • -
- -

9. Open Points

-

- Following points need to be clarified and solved: -

-
    -
  • -

    - Equivalent C and Assembler startup files. -

    -

    - Is there a need for having C startup files although assembler startup files are - very efficient and do not need to be changed? -

    -

  • -
  • -

    - Placing of HEAP in external RAM. -

    -

    - It must be possible to place HEAP in external RAM if the device supports an - external memory controller. -

    -
  • -
  • -

    - Placing of STACK /HEAP. -

    -

    - STACK should always be placed at the end of internal RAM. -

    -

    - If HEAP is placed in internal RAM than it should be placed after RW ZI section. -

    -
  • -
  • -

    - Removing core_cm3.c and core_cm0.c. -

    -

    - On a long term the functions in core_cm3.c and core_cm0.c must be replaced with - appropriate compiler intrinsics. -

    -
  • -
- - -

10. Limitations

-

- The following limitations are not covered with the current CMSIS version: -

-
    -
  • - No C startup files for ARM toolchain are provided. -
  • -
  • - No C startup files for GNU toolchain are provided. -
  • -
  • - No C startup files for IAR toolchain are provided. -
  • -
  • - No Tasking projects are provided yet. -
  • -
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/Documentation/CMSIS_Core.htm b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/Documentation/CMSIS_Core.htm deleted file mode 100644 index 6fd131e1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/Documentation/CMSIS_Core.htm +++ /dev/null @@ -1,1337 +0,0 @@ - - - - CMSIS: Cortex Microcontroller Software Interface Standard - - - -

Cortex Microcontroller Software Interface Standard

- -

This file describes the Cortex Microcontroller Software Interface Standard (CMSIS).

-

Version: 1.30 - 30. October 2009

- -

Information in this file, the accompany manuals, and software is
- Copyright © ARM Ltd.
All rights reserved. -

- -
- -

Revision History

-
    -
  • Version 1.00: initial release.
  • -
  • Version 1.01: added __LDREXx, __STREXx, and __CLREX.
  • -
  • Version 1.02: added Cortex-M0.
  • -
  • Version 1.10: second review.
  • -
  • Version 1.20: third review.
  • -
  • Version 1.30 PRE-RELEASE: reworked Startup Concept, additional Debug Functionality.
  • -
  • Version 1.30 2nd PRE-RELEASE: changed folder structure, added doxyGen comments, added Bit definitions.
  • -
  • Version 1.30: updated Device Support Packages.
  • -
- -
- -

Contents

- -
    -
  1. About
  2. -
  3. Coding Rules and Conventions
  4. -
  5. CMSIS Files
  6. -
  7. Core Peripheral Access Layer
  8. -
  9. CMSIS Example
  10. -
- -

About

- -

- The Cortex Microcontroller Software Interface Standard (CMSIS) answers the challenges - that are faced when software components are deployed to physical microcontroller devices based on a - Cortex-M0 or Cortex-M3 processor. The CMSIS will be also expanded to future Cortex-M - processor cores (the term Cortex-M is used to indicate that). The CMSIS is defined in close co-operation - with various silicon and software vendors and provides a common approach to interface to peripherals, - real-time operating systems, and middleware components. -

- -

ARM provides as part of the CMSIS the following software layers that are -available for various compiler implementations:

-
    -
  • Core Peripheral Access Layer: contains name definitions, - address definitions and helper functions to - access core registers and peripherals. It defines also a device - independent interface for RTOS Kernels that includes debug channel - definitions.
  • -
- -

These software layers are expanded by Silicon partners with:

-
    -
  • Device Peripheral Access Layer: provides definitions - for all device peripherals
  • -
  • Access Functions for Peripherals (optional): provides - additional helper functions for peripherals
  • -
- -

CMSIS defines for a Cortex-M Microcontroller System:

-
    -
  • A common way to access peripheral registers - and a common way to define exception vectors.
  • -
  • The register names of the Core - Peripherals and the names of the Core - Exception Vectors.
  • -
  • An device independent interface for RTOS Kernels including a debug - channel.
  • -
- -

- By using CMSIS compliant software components, the user can easier re-use template code. - CMSIS is intended to enable the combination of software components from multiple middleware vendors. -

- -

Coding Rules and Conventions

- -

- The following section describes the coding rules and conventions used in the CMSIS - implementation. It contains also information about data types and version number information. -

- -

Essentials

-
    -
  • The CMSIS C code conforms to MISRA 2004 rules. In case of MISRA violations, - there are disable and enable sequences for PC-LINT inserted.
  • -
  • ANSI standard data types defined in the ANSI C header file - <stdint.h> are used.
  • -
  • #define constants that include expressions must be enclosed by - parenthesis.
  • -
  • Variables and parameters have a complete data type.
  • -
  • All functions in the Core Peripheral Access Layer are - re-entrant.
  • -
  • The Core Peripheral Access Layer has no blocking code - (which means that wait/query loops are done at other software layers).
  • -
  • For each exception/interrupt there is definition for: -
      -
    • an exception/interrupt handler with the postfix _Handler - (for exceptions) or _IRQHandler (for interrupts).
    • -
    • a default exception/interrupt handler (weak definition) that contains an endless loop.
    • -
    • a #define of the interrupt number with the postfix _IRQn.
    • -
  • -
- -

Recommendations

- -

The CMSIS recommends the following conventions for identifiers.

-
    -
  • CAPITAL names to identify Core Registers, Peripheral Registers, and CPU Instructions.
  • -
  • CamelCase names to identify peripherals access functions and interrupts.
  • -
  • PERIPHERAL_ prefix to identify functions that belong to specify peripherals.
  • -
  • Doxygen comments for all functions are included as described under Function Comments below.
  • -
- -Comments - -
    -
  • Comments use the ANSI C90 style (/* comment */) or C++ style - (// comment). It is assumed that the programming tools support today - consistently the C++ comment style.
  • -
  • Function Comments provide for each function the following information: -
      -
    • one-line brief function overview.
    • -
    • detailed parameter explanation.
    • -
    • detailed information about return values.
    • -
    • detailed description of the actual function.
    • -
    -

    Doxygen Example:

    -
    -/** 
    - * @brief  Enable Interrupt in NVIC Interrupt Controller
    - * @param  IRQn  interrupt number that specifies the interrupt
    - * @return none.
    - * Enable the specified interrupt in the NVIC Interrupt Controller.
    - * Other settings of the interrupt such as priority are not affected.
    - */
    -
  • -
- -

Data Types and IO Type Qualifiers

- -

- The Cortex-M HAL uses the standard types from the standard ANSI C header file - <stdint.h>. IO Type Qualifiers are used to specify the access - to peripheral variables. IO Type Qualifiers are indented to be used for automatic generation of - debug information of peripheral registers. -

- - - - - - - - - - - - - - - - - - - - - - - - -
IO Type Qualifier#defineDescription
__Ivolatile constRead access only
__OvolatileWrite access only
__IOvolatileRead and write access
- -

CMSIS Version Number

-

- File core_cm3.h contains the version number of the CMSIS with the following define: -

- -
-#define __CM3_CMSIS_VERSION_MAIN  (0x01)      /* [31:16] main version       */
-#define __CM3_CMSIS_VERSION_SUB   (0x30)      /* [15:0]  sub version        */
-#define __CM3_CMSIS_VERSION       ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB)
- -

- File core_cm0.h contains the version number of the CMSIS with the following define: -

- -
-#define __CM0_CMSIS_VERSION_MAIN  (0x01)      /* [31:16] main version       */
-#define __CM0_CMSIS_VERSION_SUB   (0x30)      /* [15:0]  sub version        */
-#define __CM0_CMSIS_VERSION       ((__CM0_CMSIS_VERSION_MAIN << 16) | __CM0_CMSIS_VERSION_SUB)
- - -

CMSIS Cortex Core

-

- File core_cm3.h contains the type of the CMSIS Cortex-M with the following define: -

- -
-#define __CORTEX_M                (0x03)
- -

- File core_cm0.h contains the type of the CMSIS Cortex-M with the following define: -

- -
-#define __CORTEX_M                (0x00)
- - -

CMSIS Files

-

- This section describes the Files provided in context with the CMSIS to access the Cortex-M - hardware and peripherals. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileProviderDescription
device.hDevice specific (provided by silicon partner)Defines the peripherals for the actual device. The file may use - several other include files to define the peripherals of the actual device.
core_cm0.hARM (for RealView ARMCC, IAR, and GNU GCC)Defines the core peripherals for the Cortex-M0 CPU and core peripherals.
core_cm3.hARM (for RealView ARMCC, IAR, and GNU GCC)Defines the core peripherals for the Cortex-M3 CPU and core peripherals.
core_cm0.cARM (for RealView ARMCC, IAR, and GNU GCC)Provides helper functions that access core registers.
core_cm3.cARM (for RealView ARMCC, IAR, and GNU GCC)Provides helper functions that access core registers.
startup_deviceARM (adapted by compiler partner / silicon partner)Provides the Cortex-M startup code and the complete (device specific) Interrupt Vector Table
system_deviceARM (adapted by silicon partner)Provides a device specific configuration file for the device. It configures the device initializes - typically the oscillator (PLL) that is part of the microcontroller device
- -

device.h

- -

- The file device.h is provided by the silicon vendor and is the - central include file that the application programmer is using in - the C source code. This file contains: -

-
    -
  • -

    Interrupt Number Definition: provides interrupt numbers - (IRQn) for all core and device specific exceptions and interrupts.

    -
  • -
  • -

    Configuration for core_cm0.h / core_cm3.h: reflects the - actual configuration of the Cortex-M processor that is part of the actual - device. As such the file core_cm0.h / core_cm3.h is included that - implements access to processor registers and core peripherals.

    -
  • -
  • -

    Device Peripheral Access Layer: provides definitions - for all device peripherals. It contains all data structures and the address - mapping for the device specific peripherals.

    -
  • -
  • Access Functions for Peripherals (optional): provides - additional helper functions for peripherals that are useful for programming - of these peripherals. Access Functions may be provided as inline functions - or can be extern references to a device specific library provided by the - silicon vendor.
  • -
- - -

Interrupt Number Definition

- -

To access the device specific interrupts the device.h file defines IRQn -numbers for the complete device using a enum typedef as shown below:

-
-typedef enum IRQn
-{
-/******  Cortex-M3 Processor Exceptions/Interrupt Numbers ************************************************/
-  NonMaskableInt_IRQn             = -14,      /*!< 2 Non Maskable Interrupt                              */
-  HardFault_IRQn                  = -13,      /*!< 3 Cortex-M3 Hard Fault Interrupt                      */
-  MemoryManagement_IRQn           = -12,      /*!< 4 Cortex-M3 Memory Management Interrupt               */
-  BusFault_IRQn                   = -11,      /*!< 5 Cortex-M3 Bus Fault Interrupt                       */
-  UsageFault_IRQn                 = -10,      /*!< 6 Cortex-M3 Usage Fault Interrupt                     */
-  SVCall_IRQn                     = -5,       /*!< 11 Cortex-M3 SV Call Interrupt                        */
-  DebugMonitor_IRQn               = -4,       /*!< 12 Cortex-M3 Debug Monitor Interrupt                  */
-  PendSV_IRQn                     = -2,       /*!< 14 Cortex-M3 Pend SV Interrupt                        */
-  SysTick_IRQn                    = -1,       /*!< 15 Cortex-M3 System Tick Interrupt                    */
-/******  STM32 specific Interrupt Numbers ****************************************************************/
-  WWDG_STM_IRQn                   = 0,        /*!< Window WatchDog Interrupt                             */
-  PVD_STM_IRQn                    = 1,        /*!< PVD through EXTI Line detection Interrupt             */
-  :
-  :
-  } IRQn_Type;
- - -

Configuration for core_cm0.h / core_cm3.h

-

- The Cortex-M core configuration options which are defined for each device implementation. Some - configuration options are reflected in the CMSIS layer using the #define settings described below. -

-

- To access core peripherals file device.h includes file core_cm0.h / core_cm3.h. - Several features in core_cm0.h / core_cm3.h are configured by the following defines that must be - defined before #include <core_cm0.h> / #include <core_cm3.h> - preprocessor command. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#defineFileValueDescription
__NVIC_PRIO_BITScore_cm0.h(2)Number of priority bits implemented in the NVIC (device specific)
__NVIC_PRIO_BITScore_cm3.h(2 ... 8)Number of priority bits implemented in the NVIC (device specific)
__MPU_PRESENTcore_cm0.h, core_cm3.h(0, 1)Defines if an MPU is present or not
__Vendor_SysTickConfigcore_cm0.h, core_cm3.h(1)When this define is setup to 1, the SysTickConfig function - in core_cm3.h is excluded. In this case the device.h - file must contain a vendor specific implementation of this function.
- - -

Device Peripheral Access Layer

-

- Each peripheral uses a prefix which consists of <device abbreviation>_ - and <peripheral name>_ to identify peripheral registers that access this - specific peripheral. The intention of this is to avoid name collisions caused - due to short names. If more than one peripheral of the same type exists, - identifiers have a postfix (digit or letter). For example: -

-
    -
  • <device abbreviation>_UART_Type: defines the generic register layout for all UART channels in a device. -
    -typedef struct
    -{
    -  union {
    -  __I  uint8_t  RBR;                     /*!< Offset: 0x000   Receiver Buffer Register    */
    -  __O  uint8_t  THR;                     /*!< Offset: 0x000   Transmit Holding Register   */
    -  __IO uint8_t  DLL;                     /*!< Offset: 0x000   Divisor Latch LSB           */
    -       uint32_t RESERVED0;
    -  };
    -  union {
    -  __IO uint8_t  DLM;                     /*!< Offset: 0x004   Divisor Latch MSB           */
    -  __IO uint32_t IER;                     /*!< Offset: 0x004   Interrupt Enable Register   */
    -  };
    -  union {
    -  __I  uint32_t IIR;                     /*!< Offset: 0x008   Interrupt ID Register       */
    -  __O  uint8_t  FCR;                     /*!< Offset: 0x008   FIFO Control Register       */
    -  };
    -  __IO uint8_t  LCR;                     /*!< Offset: 0x00C   Line Control Register       */
    -       uint8_t  RESERVED1[7];
    -  __I  uint8_t  LSR;                     /*!< Offset: 0x014   Line Status Register        */
    -       uint8_t  RESERVED2[7];
    -  __IO uint8_t  SCR;                     /*!< Offset: 0x01C   Scratch Pad Register        */
    -       uint8_t  RESERVED3[3];
    -  __IO uint32_t ACR;                     /*!< Offset: 0x020   Autobaud Control Register   */
    -  __IO uint8_t  ICR;                     /*!< Offset: 0x024   IrDA Control Register       */
    -       uint8_t  RESERVED4[3];
    -  __IO uint8_t  FDR;                     /*!< Offset: 0x028   Fractional Divider Register */
    -       uint8_t  RESERVED5[7];
    -  __IO uint8_t  TER;                     /*!< Offset: 0x030   Transmit Enable Register    */
    -       uint8_t  RESERVED6[39];
    -  __I  uint8_t  FIFOLVL;                 /*!< Offset: 0x058   FIFO Level Register         */
    -} LPC_UART_TypeDef;
    -
  • -
  • <device abbreviation>_UART1: is a pointer to a register structure that refers to a specific UART. - For example UART1->DR is the data register of UART1. -
    -#define LPC_UART2             ((LPC_UART_TypeDef      *) LPC_UART2_BASE    )
    -#define LPC_UART3             ((LPC_UART_TypeDef      *) LPC_UART3_BASE    )
    -
  • -
- -
Minimal Requiements
-

- To access the peripheral registers and related function in a device the files device.h - and core_cm0.h / core_cm3.h defines as a minimum: -

-
    -
  • The Register Layout Typedef for each peripheral that defines all register names. - Names that start with RESERVE are used to introduce space into the structure to adjust the addresses of - the peripheral registers. For example: -
    -typedef struct {
    -  __IO uint32_t CTRL;      /* SysTick Control and Status Register */
    -  __IO uint32_t LOAD;      /* SysTick Reload Value Register       */
    -  __IO uint32_t VAL;       /* SysTick Current Value Register      */
    -  __I  uint32_t CALIB;     /* SysTick Calibration Register        */
    -  } SysTick_Type;
    -
  • - -
  • - Base Address for each peripheral (in case of multiple peripherals - that use the same register layout typedef multiple base addresses are defined). For example: -
    -#define SysTick_BASE (SCS_BASE + 0x0010)            /* SysTick Base Address */
    -
  • - -
  • - Access Definition for each peripheral (in case of multiple peripherals that use - the same register layout typedef multiple access definitions exist, i.e. LPC_UART0, - LPC_UART2). For Example: -
    -#define SysTick ((SysTick_Type *) SysTick_BASE)     /* SysTick access definition */
    -
  • -
- -

- These definitions allow to access the peripheral registers from user code with simple assignments like: -

-
SysTick->CTRL = 0;
- -
Optional Features
-

In addition the device.h file may define:

-
    -
  • - #define constants that simplify access to the peripheral registers. - These constant define bit-positions or other specific patterns are that required for the - programming of the peripheral registers. The identifiers used start with - <device abbreviation>_ and <peripheral name>_. - It is recommended to use CAPITAL letters for such #define constants. -
  • -
  • - Functions that perform more complex functions with the peripheral (i.e. status query before - a sending register is accessed). Again these function start with - <device abbreviation>_ and <peripheral name>_. -
  • -
- -

core_cm0.h and core_cm0.c

-

- File core_cm0.h describes the data structures for the Cortex-M0 core peripherals and does - the address mapping of this structures. It also provides basic access to the Cortex-M0 core registers - and core peripherals with efficient functions (defined as static inline). -

-

- File core_cm0.c defines several helper functions that access processor registers. -

-

Together these files implement the Core Peripheral Access Layer for a Cortex-M0.

- -

core_cm3.h and core_cm3.c

-

- File core_cm3.h describes the data structures for the Cortex-M3 core peripherals and does - the address mapping of this structures. It also provides basic access to the Cortex-M3 core registers - and core peripherals with efficient functions (defined as static inline). -

-

- File core_cm3.c defines several helper functions that access processor registers. -

-

Together these files implement the Core Peripheral Access Layer for a Cortex-M3.

- -

startup_device

-

- A template file for startup_device is provided by ARM for each supported - compiler. It is adapted by the silicon vendor to include interrupt vectors for all device specific - interrupt handlers. Each interrupt handler is defined as weak function - to an dummy handler. Therefore the interrupt handler can be directly used in application software - without any requirements to adapt the startup_device file. -

-

- The following exception names are fixed and define the start of the vector table for a Cortex-M0: -

-
-__Vectors       DCD     __initial_sp              ; Top of Stack
-                DCD     Reset_Handler             ; Reset Handler
-                DCD     NMI_Handler               ; NMI Handler
-                DCD     HardFault_Handler         ; Hard Fault Handler
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     SVC_Handler               ; SVCall Handler
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     PendSV_Handler            ; PendSV Handler
-                DCD     SysTick_Handler           ; SysTick Handler
- -

- The following exception names are fixed and define the start of the vector table for a Cortex-M3: -

-
-__Vectors       DCD     __initial_sp              ; Top of Stack
-                DCD     Reset_Handler             ; Reset Handler
-                DCD     NMI_Handler               ; NMI Handler
-                DCD     HardFault_Handler         ; Hard Fault Handler
-                DCD     MemManage_Handler         ; MPU Fault Handler
-                DCD     BusFault_Handler          ; Bus Fault Handler
-                DCD     UsageFault_Handler        ; Usage Fault Handler
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     SVC_Handler               ; SVCall Handler
-                DCD     DebugMon_Handler          ; Debug Monitor Handler
-                DCD     0                         ; Reserved
-                DCD     PendSV_Handler            ; PendSV Handler
-                DCD     SysTick_Handler           ; SysTick Handler
- -

- In the following examples for device specific interrupts are shown: -

-
-; External Interrupts
-                DCD     WWDG_IRQHandler           ; Window Watchdog
-                DCD     PVD_IRQHandler            ; PVD through EXTI Line detect
-                DCD     TAMPER_IRQHandler         ; Tamper
- -

- Device specific interrupts must have a dummy function that can be overwritten in user code. - Below is an example for this dummy function. -

-
-Default_Handler PROC
-                EXPORT WWDG_IRQHandler   [WEAK]
-                EXPORT PVD_IRQHandler    [WEAK]
-                EXPORT TAMPER_IRQHandler [WEAK]
-                :
-                :
-                WWDG_IRQHandler
-                PVD_IRQHandler
-                TAMPER_IRQHandler
-                :
-                :
-                B .
-                ENDP
- -

- The user application may simply define an interrupt handler function by using the handler name - as shown below. -

-
-void WWDG_IRQHandler(void)
-{
-  :
-  :
-}
- - -

system_device.c

-

- A template file for system_device.c is provided by ARM but adapted by - the silicon vendor to match their actual device. As a minimum requirement - this file must provide a device specific system configuration function and a global variable - that contains the system frequency. It configures the device and initializes typically the - oscillator (PLL) that is part of the microcontroller device. -

-

- The file system_device.c must provide - as a minimum requirement the SystemInit function as shown below. -

- - - - - - - - - - - - - - - - -
Function DefinitionDescription
void SystemInit (void)Setup the microcontroller system. Typically this function configures the - oscillator (PLL) that is part of the microcontroller device. For systems - with variable clock speed it also updates the variable SystemCoreClock.
- SystemInit is called from startup_device file.
void SystemCoreClockUpdate (void)Updates the variable SystemCoreClock and must be called whenever the - core clock is changed during program execution. SystemCoreClockUpdate() - evaluates the clock register settings and calculates the current core clock. -
- -

- Also part of the file system_device.c - is the variable SystemCoreClock which contains the current CPU clock speed shown below. -

- - - - - - - - - - - - -
Variable DefinitionDescription
uint32_t SystemCoreClockContains the system core clock (which is the system clock frequency supplied - to the SysTick timer and the processor core clock). This variable can be - used by the user application to setup the SysTick timer or configure other - parameters. It may also be used by debugger to query the frequency of the - debug timer or configure the trace clock speed.
- SystemCoreClock is initialized with a correct predefined value.

- The compiler must be configured to avoid the removal of this variable in - case that the application program is not using it. It is important for - debug systems that the variable is physically present in memory so that - it can be examined to configure the debugger.
- -

Note

-
    -
  • The above definitions are the minimum requirements for the file - system_device.c. This - file may export more functions or variables that provide a more flexible - configuration of the microcontroller system.

    -
  • -
- - -

Core Peripheral Access Layer

- -

Cortex-M Core Register Access

-

- The following functions are defined in core_cm0.h / core_cm3.h - and provide access to Cortex-M core registers. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Function DefinitionCoreCore RegisterDescription
void __enable_irq (void)M0, M3PRIMASK = 0Global Interrupt enable (using the instruction CPSIE - i)
void __disable_irq (void)M0, M3PRIMASK = 1Global Interrupt disable (using the instruction - CPSID i)
void __set_PRIMASK (uint32_t value)M0, M3PRIMASK = valueAssign value to Priority Mask Register (using the instruction - MSR)
uint32_t __get_PRIMASK (void)M0, M3return PRIMASKReturn Priority Mask Register (using the instruction - MRS)
void __enable_fault_irq (void)M3FAULTMASK = 0Global Fault exception and Interrupt enable (using the - instruction CPSIE - f)
void __disable_fault_irq (void)M3FAULTMASK = 1Global Fault exception and Interrupt disable (using the - instruction CPSID f)
void __set_FAULTMASK (uint32_t value)M3FAULTMASK = valueAssign value to Fault Mask Register (using the instruction - MSR)
uint32_t __get_FAULTMASK (void)M3return FAULTMASKReturn Fault Mask Register (using the instruction MRS)
void __set_BASEPRI (uint32_t value)M3BASEPRI = valueSet Base Priority (using the instruction MSR)
uiuint32_t __get_BASEPRI (void)M3return BASEPRIReturn Base Priority (using the instruction MRS)
void __set_CONTROL (uint32_t value)M0, M3CONTROL = valueSet CONTROL register value (using the instruction MSR)
uint32_t __get_CONTROL (void)M0, M3return CONTROLReturn Control Register Value (using the instruction - MRS)
void __set_PSP (uint32_t TopOfProcStack)M0, M3PSP = TopOfProcStackSet Process Stack Pointer value (using the instruction - MSR)
uint32_t __get_PSP (void)M0, M3return PSPReturn Process Stack Pointer (using the instruction MRS)
void __set_MSP (uint32_t TopOfMainStack)M0, M3MSP = TopOfMainStackSet Main Stack Pointer (using the instruction MSR)
uint32_t __get_MSP (void)M0, M3return MSPReturn Main Stack Pointer (using the instruction MRS)
- -

Cortex-M Instruction Access

-

- The following functions are defined in core_cm0.h / core_cm3.hand - generate specific Cortex-M instructions. The functions are implemented in the file - core_cm0.c / core_cm3.c. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameCoreGenerated CPU InstructionDescription
void __NOP (void)M0, M3NOPNo Operation
void __WFI (void)M0, M3WFIWait for Interrupt
void __WFE (void)M0, M3WFEWait for Event
void __SEV (void)M0, M3SEVSet Event
void __ISB (void)M0, M3ISBInstruction Synchronization Barrier
void __DSB (void)M0, M3DSBData Synchronization Barrier
void __DMB (void)M0, M3DMBData Memory Barrier
uint32_t __REV (uint32_t value)M0, M3REVReverse byte order in integer value.
uint32_t __REV16 (uint16_t value)M0, M3REV16Reverse byte order in unsigned short value.
sint32_t __REVSH (sint16_t value)M0, M3REVSHReverse byte order in signed short value with sign extension to integer.
uint32_t __RBIT (uint32_t value)M3RBITReverse bit order of value
uint8_t __LDREXB (uint8_t *addr)M3LDREXBLoad exclusive byte
uint16_t __LDREXH (uint16_t *addr)M3LDREXHLoad exclusive half-word
uint32_t __LDREXW (uint32_t *addr)M3LDREXWLoad exclusive word
uint32_t __STREXB (uint8_t value, uint8_t *addr)M3STREXBStore exclusive byte
uint32_t __STREXB (uint16_t value, uint16_t *addr)M3STREXHStore exclusive half-word
uint32_t __STREXB (uint32_t value, uint32_t *addr)M3STREXWStore exclusive word
void __CLREX (void)M3CLREXRemove the exclusive lock created by __LDREXB, __LDREXH, or __LDREXW
- - -

NVIC Access Functions

-

- The CMSIS provides access to the NVIC via the register interface structure and several helper - functions that simplify the setup of the NVIC. The CMSIS HAL uses IRQ numbers (IRQn) to - identify the interrupts. The first device interrupt has the IRQn value 0. Therefore negative - IRQn values are used for processor core exceptions. -

-

- For the IRQn values of core exceptions the file device.h provides - the following enum names. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Core Exception enum ValueCoreIRQnDescription
NonMaskableInt_IRQnM0, M3-14Cortex-M Non Maskable Interrupt
HardFault_IRQnM0, M3-13Cortex-M Hard Fault Interrupt
MemoryManagement_IRQnM3-12Cortex-M Memory Management Interrupt
BusFault_IRQnM3-11Cortex-M Bus Fault Interrupt
UsageFault_IRQnM3-10Cortex-M Usage Fault Interrupt
SVCall_IRQnM0, M3-5Cortex-M SV Call Interrupt
DebugMonitor_IRQnM3-4Cortex-M Debug Monitor Interrupt
PendSV_IRQnM0, M3-2Cortex-M Pend SV Interrupt
SysTick_IRQnM0, M3-1Cortex-M System Tick Interrupt
- -

The following functions simplify the setup of the NVIC. -The functions are defined as static inline.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameCoreParameterDescription
void NVIC_SetPriorityGrouping (uint32_t PriorityGroup)M3Priority Grouping ValueSet the Priority Grouping (Groups . Subgroups)
uint32_t NVIC_GetPriorityGrouping (void)M3(void)Get the Priority Grouping (Groups . Subgroups)
void NVIC_EnableIRQ (IRQn_Type IRQn)M0, M3IRQ NumberEnable IRQn
void NVIC_DisableIRQ (IRQn_Type IRQn)M0, M3IRQ NumberDisable IRQn
uint32_t NVIC_GetPendingIRQ (IRQn_Type IRQn)M0, M3IRQ NumberReturn 1 if IRQn is pending else 0
void NVIC_SetPendingIRQ (IRQn_Type IRQn)M0, M3IRQ NumberSet IRQn Pending
void NVIC_ClearPendingIRQ (IRQn_Type IRQn)M0, M3IRQ NumberClear IRQn Pending Status
uint32_t NVIC_GetActive (IRQn_Type IRQn)M3IRQ NumberReturn 1 if IRQn is active else 0
void NVIC_SetPriority (IRQn_Type IRQn, uint32_t priority)M0, M3IRQ Number, PrioritySet Priority for IRQn
- (not threadsafe for Cortex-M0)
uint32_t NVIC_GetPriority (IRQn_Type IRQn)M0, M3IRQ NumberGet Priority for IRQn
uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)M3IRQ Number, Priority Group, Preemptive Priority, Sub PriorityEncode priority for given group, preemptive and sub priority
NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority)M3IRQ Number, Priority, pointer to Priority Group, pointer to Preemptive Priority, pointer to Sub PriorityDeccode given priority to group, preemptive and sub priority
void NVIC_SystemReset (void)M0, M3(void)Resets the System
-

Note

-
    -
  • The processor exceptions have negative enum values. Device specific interrupts - have positive enum values and start with 0. The values are defined in - device.h file. -

    -
  • -
  • The values for PreemptPriority and SubPriority - used in functions NVIC_EncodePriority and NVIC_DecodePriority - depend on the available __NVIC_PRIO_BITS implemented in the NVIC. -

    -
  • -
- - -

SysTick Configuration Function

- -

The following function is used to configure the SysTick timer and start the -SysTick interrupt.

- - - - - - - - - - - - - - -
NameParameterDescription
uint32_t SysTickConfig - (uint32_t ticks)ticks is SysTick counter reload valueSetup the SysTick timer and enable the SysTick interrupt. After this - call the SysTick timer creates interrupts with the specified time - interval.
-
- Return: 0 when successful, 1 on failure.
-
- - -

Cortex-M3 ITM Debug Access

- -

The Cortex-M3 incorporates the Instrumented Trace Macrocell (ITM) that -provides together with the Serial Viewer Output trace capabilities for the -microcontroller system. The ITM has 32 communication channels; two ITM -communication channels are used by CMSIS to output the following information:

-
    -
  • ITM Channel 0: implements the ITM_SendChar function - which can be used for printf-style output via the debug interface.
  • -
  • ITM Channel 31: is reserved for the RTOS kernel and can be used for - kernel awareness debugging.
  • -
-

Note

-
    -
  • The ITM channel 31 is selected for the RTOS kernel since some kernels - may use the Privileged level for program execution. ITM - channels have 4 groups with 8 channels each, whereby each group can be - configured for access rights in the Unprivileged level. The ITM channel 0 - may be therefore enabled for the user task whereas ITM channel 31 may be - accessible only in Privileged level from the RTOS kernel itself.

    -
  • -
- -

The prototype of the ITM_SendChar routine is shown in the -table below.

- - - - - - - - - - - - - - -
NameParameterDescription
void uint32_t ITM_SendChar(uint32_t chr)character to outputThe function outputs a character via the ITM channel 0. The - function returns when no debugger is connected that has booked the - output. It is blocking when a debugger is connected, but the - previous character send is not transmitted.

- Return: the input character 'chr'.
- -

- Example for the usage of the ITM Channel 31 for RTOS Kernels: -

-
-  // check if debugger connected and ITM channel enabled for tracing
-  if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA) &&
-  (ITM->TCR & ITM_TCR_ITMENA) &&
-  (ITM->TER & (1UL << 31))) {
-    // transmit trace data
-    while (ITM->PORT31_U32 == 0);
-    ITM->PORT[31].u8 = task_id;      // id of next task
-    while (ITM->PORT[31].u32 == 0);
-    ITM->PORT[31].u32 = task_status; // status information
-  }
- - -

Cortex-M3 additional Debug Access

- -

CMSIS provides additional debug functions to enlarge the Cortex-M3 Debug Access. -Data can be transmitted via a certain global buffer variable towards the target system.

- -

The buffer variable and the prototypes of the additional functions are shown in the -table below.

- - - - - - - - - - - - - - - - - - - - - - - - -
NameParameterDescription
extern volatile int ITM_RxBuffer Buffer to transmit data towards debug system.

- Value 0x5AA55AA5 indicates that buffer is empty.
int ITM_ReceiveChar (void)noneThe nonblocking functions returns the character stored in - ITM_RxBuffer.

- Return: -1 indicates that no character was received.
int ITM_CheckChar (void)noneThe function checks if a character is available in ITM_RxBuffer.

- Return: 1 indicates that a character is available, 0 indicates that - no character is available.
- - -

CMSIS Example

-

- The following section shows a typical example for using the CMSIS layer in user applications. - The example is based on a STM32F10x Device. -

-
-#include "stm32f10x.h"
-
-volatile uint32_t msTicks;                       /* timeTicks counter */
-
-void SysTick_Handler(void) {
-  msTicks++;                                     /* increment timeTicks counter */
-}
-
-__INLINE static void Delay (uint32_t dlyTicks) {
-  uint32_t curTicks = msTicks;
-
-  while ((msTicks - curTicks) < dlyTicks);
-}
-
-__INLINE static void LED_Config(void) {
-  ;                                              /* Configure the LEDs */
-}
-
-__INLINE static void LED_On (uint32_t led) {
-  ;                                              /* Turn On  LED */
-}
-
-__INLINE static void LED_Off (uint32_t led) {
-  ;                                              /* Turn Off LED */
-}
-
-int main (void) {
-  if (SysTick_Config (SystemCoreClock / 1000)) { /* Setup SysTick for 1 msec interrupts */
-    ;                                            /* Handle Error */
-    while (1);
-  }
-  
-  LED_Config();                                  /* configure the LEDs */                            
- 
-  while(1) {
-    LED_On (0x100);                              /* Turn  on the LED   */
-    Delay (100);                                 /* delay  100 Msec    */
-    LED_Off (0x100);                             /* Turn off the LED   */
-    Delay (100);                                 /* delay  100 Msec    */
-  }
-}
- - - \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/License.doc b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/lib/CMSIS/License.doc deleted file mode 100644 index b6b8acecc137bca709444106cba045d3d01daedd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39936 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 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/main.c deleted file mode 100644 index ef5af572..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Boot/main.c +++ /dev/null @@ -1,193 +0,0 @@ -/**************************************************************************************** -| Description: bootloader application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "boot.h" /* bootloader generic header */ -#include "stm32f10x.h" /* microcontroller registers */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader */ - BootInit(); - - /* start the infinite program loop */ - while (1) - { - /* run the bootloader task */ - BootTask(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. The interrupts are disabled, the -** clocks are configured and the flash wait states are configured. -** -****************************************************************************************/ -static void Init(void) -{ - volatile blt_int32u StartUpCounter = 0, HSEStatus = 0; - blt_int32u pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (blt_int32u)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (blt_int32u)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (blt_int32u)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (blt_int32u)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (blt_int32u)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((blt_int32u)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - ASSERT_RT(BLT_FALSE); - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (blt_int32u)((blt_int32u)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (blt_int32u)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (blt_int32u)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (blt_int32u)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (blt_int32u)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (blt_int32u)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (blt_int32u)((blt_int32u)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* assert that the pll_multiplier is between 2 and 16 */ - ASSERT_CT((BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ) >= 2); - ASSERT_CT((BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ) <= 16); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (blt_int32u)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (blt_int32u)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (blt_int32u)((blt_int32u)~(RCC_CFGR_SW)); - RCC->CFGR |= (blt_int32u)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (blt_int32u)RCC_CFGR_SWS) != (blt_int32u)0x08) - { - } -#if (BOOT_COM_UART_ENABLE > 0) - /* enable clock for USART2 peripheral */ - RCC->APB1ENR |= (blt_int32u)0x00020000; - /* enable clocks for USART2 transmitter and receiver pins (GPIOA and AFIO) */ - RCC->APB2ENR |= (blt_int32u)(0x00000004 | 0x00000001); - /* configure USART2 Tx (GPIOA2) as alternate function push-pull */ - /* first reset the configuration */ - GPIOA->CRL &= ~(blt_int32u)((blt_int32u)0xf << 8); - /* CNF2[1:0] = %10 and MODE2[1:0] = %11 */ - GPIOA->CRL |= (blt_int32u)((blt_int32u)0xb << 8); - /* configure USART2 Rx (GPIOA3) as alternate function input floating */ - /* first reset the configuration */ - GPIOA->CRL &= ~(blt_int32u)((blt_int32u)0xf << 12); - /* CNF2[1:0] = %01 and MODE2[1:0] = %00 */ - GPIOA->CRL |= (blt_int32u)((blt_int32u)0x4 << 12); -#endif -#if (BOOT_COM_CAN_ENABLE > 0) - /* enable clocks for CAN transmitter and receiver pins (GPIOB and AFIO) */ - RCC->APB2ENR |= (blt_int32u)(0x00000008 | 0x00000001); - /* configure CAN Rx (GPIOB8) as alternate function input pull-up */ - /* first reset the configuration */ - GPIOB->CRH &= ~(blt_int32u)((blt_int32u)0xf << 0); - /* CNF8[1:0] = %10 and MODE8[1:0] = %00 */ - GPIOB->CRH |= (blt_int32u)((blt_int32u)0x8 << 0); - /* configure CAN Tx (GPIOB9) as alternate function push-pull */ - /* first reset the configuration */ - GPIOB->CRH &= ~(blt_int32u)((blt_int32u)0xf << 4); - /* CNF9[1:0] = %10 and MODE9[1:0] = %11 */ - GPIOB->CRH |= (blt_int32u)((blt_int32u)0xb << 4); - /* remap CAN1 pins to PortB */ - AFIO->MAPR &= ~(blt_int32u)((blt_int32u)0x3 << 13); - AFIO->MAPR |= (blt_int32u)((blt_int32u)0x2 << 13); - /* enable clocks for CAN controller peripheral */ - RCC->APB1ENR |= (blt_int32u)0x02000000; -#endif -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.cproject b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.cproject deleted file mode 100644 index 0b8696c1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.cproject +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.project b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.project deleted file mode 100644 index 9b8da01b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.project +++ /dev/null @@ -1,82 +0,0 @@ - - - Prog - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - cs-make - - - org.eclipse.cdt.make.core.buildLocation - ${workspace_loc:/Prog/Debug} - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.settings/org.eclipse.cdt.core.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index ccaafbe3..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,163 +0,0 @@ -#Fri Dec 02 15:00:26 CET 2011 -eclipse.preferences.version=1 -org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.cdt.core.formatter.alignment_for_assignment=16 -org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80 -org.eclipse.cdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.cdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=34 -org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain=18 -org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list=0 -org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16 -org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=48 -org.eclipse.cdt.core.formatter.alignment_for_expression_list=0 -org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.cdt.core.formatter.alignment_for_member_access=0 -org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain=16 -org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.cdt.core.formatter.brace_position_for_block=next_line -org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=next_line -org.eclipse.cdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment=1 -org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.cdt.core.formatter.compact_else_if=true -org.eclipse.cdt.core.formatter.continuation_indentation=2 -org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=false -org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces=0 -org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true -org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=false -org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=false -org.eclipse.cdt.core.formatter.indent_empty_lines=false -org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=false -org.eclipse.cdt.core.formatter.indentation.size=2 -org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert -org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert -org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert -org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert -org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert -org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.cdt.core.formatter.join_wrapped_lines=true -org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.cdt.core.formatter.lineSplit=90 -org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.cdt.core.formatter.tabulation.char=space -org.eclipse.cdt.core.formatter.tabulation.size=2 -org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=false diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.settings/org.eclipse.cdt.ui.prefs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.settings/org.eclipse.cdt.ui.prefs deleted file mode 100644 index 379e5255..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/.settings/org.eclipse.cdt.ui.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Fri Dec 02 15:00:26 CET 2011 -eclipse.preferences.version=1 -formatter_profile=_Feaser -formatter_settings_version=1 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/bin/demoprog_olimex_stm32p103.map b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/bin/demoprog_olimex_stm32p103.map deleted file mode 100644 index cebe2b54..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/bin/demoprog_olimex_stm32p103.map +++ /dev/null @@ -1,2009 +0,0 @@ -Archive member included because of file (symbol) - -c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-ctype_.o) - ./lib/stdio_mini.o (__ctype_ptr__) -c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtol.o) - ./lib/stdio_mini.o (strtol) -c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtoul.o) - ./lib/stdio_mini.o (strtoul) -c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-impure.o) - c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtol.o) (_impure_ptr) -c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_udivsi3.o) - c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtol.o) (__aeabi_uidiv) -c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_dvmd_tls.o) - c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_udivsi3.o) (__aeabi_idiv0) - -Discarded input sections - - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .text.NVIC_PriorityGroupConfig - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .text.NVIC_Init - 0x00000000 0x84 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .text.NVIC_SetVectorTable - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .text.NVIC_SystemLPConfig - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .text.SysTick_CLKSourceConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_DeInit - 0x00000000 0x80 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_Init - 0x00000000 0x50 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_StructInit - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_Cmd 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_DMACmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_ITConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_ResetCalibration - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_GetResetCalibrationStatus - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_StartCalibration - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_GetCalibrationStatus - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_SoftwareStartConvCmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_GetSoftwareStartConvStatus - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_DiscModeChannelCountConfig - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_DiscModeCmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_RegularChannelConfig - 0x00000000 0xb4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_ExternalTrigConvCmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_GetConversionValue - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_GetDualModeConversionValue - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_AutoInjectedConvCmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_InjectedDiscModeCmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_ExternalTrigInjectedConvConfig - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_ExternalTrigInjectedConvCmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_SoftwareStartInjectedConvCmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_GetSoftwareStartInjectedConvCmdStatus - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_InjectedChannelConfig - 0x00000000 0x70 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_InjectedSequencerLengthConfig - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_SetInjectedOffset - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_GetInjectedConversionValue - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_AnalogWatchdogCmd - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_AnalogWatchdogThresholdsConfig - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_AnalogWatchdogSingleChannelConfig - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_TempSensorVrefintCmd - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_GetFlagStatus - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_ClearFlag - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_GetITStatus - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text.ADC_ClearITPendingBit - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_DeInit - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_TamperPinLevelConfig - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_TamperPinCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_ITConfig - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_RTCOutputConfig - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_SetRTCCalibrationValue - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_WriteBackupRegister - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_ReadBackupRegister - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_GetFlagStatus - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_ClearFlag - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_GetITStatus - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text.BKP_ClearITPendingBit - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CheckITStatus - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_DeInit - 0x00000000 0x4c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_Init - 0x00000000 0xf4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_FilterInit - 0x00000000 0x140 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_StructInit - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_SlaveStartBank - 0x00000000 0x40 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_DBGFreeze - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_TTComModeCmd - 0x00000000 0x60 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_Transmit - 0x00000000 0xe0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_TransmitStatus - 0x00000000 0x94 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_CancelTransmit - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_Receive - 0x00000000 0xbc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_FIFORelease - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_MessagePending - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_OperatingModeRequest - 0x00000000 0xb0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_Sleep - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_WakeUp - 0x00000000 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_GetLastErrorCode - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_GetReceiveErrorCounter - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_GetLSBTransmitErrorCounter - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_ITConfig - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_GetFlagStatus - 0x00000000 0x7c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_ClearFlag - 0x00000000 0x3c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_GetITStatus - 0x00000000 0x174 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text.CAN_ClearITPendingBit - 0x00000000 0xbc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_DeInit - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_Init - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_Cmd 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_ITConfig - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_OwnAddressConfig - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_SetPrescaler - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_SendDataByte - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_ReceiveDataByte - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_StartOfMessage - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_EndOfMessageCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_GetFlagStatus - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_ClearFlag - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_GetITStatus - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text.CEC_ClearITPendingBit - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .text.CRC_ResetDR - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .text.CRC_CalcCRC - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .text.CRC_CalcBlockCRC - 0x00000000 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .text.CRC_GetCRC - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .text.CRC_SetIDRegister - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .text.CRC_GetIDRegister - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_DeInit - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_Init - 0x00000000 0x38 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_StructInit - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_Cmd 0x00000000 0x34 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_DMACmd - 0x00000000 0x34 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_SoftwareTriggerCmd - 0x00000000 0x3c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_DualSoftwareTriggerCmd - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_WaveGenerationCmd - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_SetChannel1Data - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_SetChannel2Data - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_SetDualChannelData - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text.DAC_GetDataOutputValue - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .text.DBGMCU_GetREVID - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .text.DBGMCU_GetDEVID - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .text.DBGMCU_Config - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_DeInit - 0x00000000 0x184 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_Init - 0x00000000 0x40 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_StructInit - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_Cmd 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_ITConfig - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_SetCurrDataCounter - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_GetCurrDataCounter - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_GetFlagStatus - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_ClearFlag - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_GetITStatus - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text.DMA_ClearITPendingBit - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .text.EXTI_DeInit - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .text.EXTI_Init - 0x00000000 0x9c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .text.EXTI_StructInit - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .text.EXTI_GenerateSWInterrupt - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .text.EXTI_GetFlagStatus - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .text.EXTI_ClearFlag - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .text.EXTI_GetITStatus - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .text.EXTI_ClearITPendingBit - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_SetLatency - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_HalfCycleAccessCmd - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_PrefetchBufferCmd - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_Unlock - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_UnlockBank1 - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_Lock - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_LockBank1 - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_GetUserOptionByte - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_GetWriteProtectionOptionByte - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_GetReadOutProtectionStatus - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_GetPrefetchBufferStatus - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_ITConfig - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_GetFlagStatus - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_ClearFlag - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_GetStatus - 0x00000000 0x44 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_GetBank1Status - 0x00000000 0x44 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_WaitForLastOperation - 0x00000000 0x38 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_UserOptionByteConfig - 0x00000000 0x80 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_ReadOutProtection - 0x00000000 0xd4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_EnableWriteProtection - 0x00000000 0x108 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_ProgramOptionByteData - 0x00000000 0x68 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_ProgramHalfWord - 0x00000000 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_ProgramWord - 0x00000000 0x90 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_EraseOptionBytes - 0x00000000 0xcc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_EraseAllPages - 0x00000000 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_ErasePage - 0x00000000 0x4c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_WaitForLastBank1Operation - 0x00000000 0x38 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text.FLASH_EraseAllBank1Pages - 0x00000000 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_NORSRAMDeInit - 0x00000000 0x3c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_NANDDeInit - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_PCCARDDeInit - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_NORSRAMInit - 0x00000000 0xdc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_NANDInit - 0x00000000 0x68 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_PCCARDInit - 0x00000000 0x70 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_NORSRAMStructInit - 0x00000000 0x70 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_NANDStructInit - 0x00000000 0x3c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_PCCARDStructInit - 0x00000000 0x40 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_NORSRAMCmd - 0x00000000 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_NANDCmd - 0x00000000 0x38 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_PCCARDCmd - 0x00000000 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_NANDECCCmd - 0x00000000 0x38 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_GetECC - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_ITConfig - 0x00000000 0x5c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_GetFlagStatus - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_ClearFlag - 0x00000000 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_GetITStatus - 0x00000000 0x38 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text.FSMC_ClearITPendingBit - 0x00000000 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_DeInit - 0x00000000 0x128 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_AFIODeInit - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_StructInit - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_ReadInputDataBit - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_ReadInputData - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_ReadOutputDataBit - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_ReadOutputData - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_WriteBit - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_Write - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_PinLockConfig - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_EventOutputConfig - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_EventOutputCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_PinRemapConfig - 0x00000000 0x7c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_EXTILineConfig - 0x00000000 0x44 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text.GPIO_ETH_MediaInterfaceConfig - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_DeInit - 0x00000000 0x4c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_Init - 0x00000000 0x10c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_StructInit - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_Cmd 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_DMACmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_DMALastTransferCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_GenerateSTART - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_GenerateSTOP - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_AcknowledgeConfig - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_OwnAddress2Config - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_DualAddressCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_GeneralCallCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_ITConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_SendData - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_ReceiveData - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_Send7bitAddress - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_ReadRegister - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_SoftwareResetCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_NACKPositionConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_SMBusAlertConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_TransmitPEC - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_PECPositionConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_CalculatePEC - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_GetPEC - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_ARPCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_StretchClockCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_FastModeDutyCycleConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_CheckEvent - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_GetLastEvent - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_GetFlagStatus - 0x00000000 0x40 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_ClearFlag - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_GetITStatus - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text.I2C_ClearITPendingBit - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .text.IWDG_WriteAccessCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .text.IWDG_SetPrescaler - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .text.IWDG_SetReload - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .text.IWDG_ReloadCounter - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .text.IWDG_Enable - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .text.IWDG_GetFlagStatus - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text.PWR_DeInit - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text.PWR_BackupAccessCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text.PWR_PVDCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text.PWR_PVDLevelConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text.PWR_WakeUpPinCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text.PWR_EnterSTOPMode - 0x00000000 0x40 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text.PWR_EnterSTANDBYMode - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text.PWR_GetFlagStatus - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text.PWR_ClearFlag - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_DeInit - 0x00000000 0x44 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_HSEConfig - 0x00000000 0x4c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_AdjustHSICalibrationValue - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_HSICmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_PLLConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_PLLCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_SYSCLKConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_GetSYSCLKSource - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_HCLKConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_PCLK1Config - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_PCLK2Config - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_ITConfig - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_USBCLKConfig - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_ADCCLKConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_LSEConfig - 0x00000000 0x3c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_LSICmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_RTCCLKConfig - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_RTCCLKCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_AHBPeriphClockCmd - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_APB2PeriphResetCmd - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_APB1PeriphResetCmd - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_BackupResetCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_ClockSecuritySystemCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_MCOConfig - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_GetFlagStatus - 0x00000000 0x34 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_WaitForHSEStartUp - 0x00000000 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_ClearFlag - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_GetITStatus - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text.RCC_ClearITPendingBit - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_ITConfig - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_EnterConfigMode - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_ExitConfigMode - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_GetCounter - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_SetCounter - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_SetPrescaler - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_SetAlarm - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_GetDivider - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_WaitForLastTask - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_WaitForSynchro - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_GetFlagStatus - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_ClearFlag - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_GetITStatus - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text.RTC_ClearITPendingBit - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_DeInit - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_Init - 0x00000000 0x34 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_StructInit - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_ClockCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_SetPowerState - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_GetPowerState - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_ITConfig - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_DMACmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_SendCommand - 0x00000000 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_CmdStructInit - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_GetCommandResponse - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_GetResponse - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_DataConfig - 0x00000000 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_DataStructInit - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_GetDataCounter - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_ReadData - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_WriteData - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_GetFIFOCount - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_StartSDIOReadWait - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_StopSDIOReadWait - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_SetSDIOReadWaitMode - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_SetSDIOOperation - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_SendSDIOSuspendCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_CommandCompletionCmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_CEATAITCmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_SendCEATACmd - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_GetFlagStatus - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_ClearFlag - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_GetITStatus - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text.SDIO_ClearITPendingBit - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_I2S_DeInit - 0x00000000 0x80 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_Init - 0x00000000 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.I2S_Init - 0x00000000 0xd8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_StructInit - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.I2S_StructInit - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_Cmd 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.I2S_Cmd 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_I2S_ITConfig - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_I2S_DMACmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_I2S_SendData - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_I2S_ReceiveData - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_NSSInternalSoftwareConfig - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_SSOutputCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_DataSizeConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_TransmitCRC - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_CalculateCRC - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_GetCRC - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_GetCRCPolynomial - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_BiDirectionalLineConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_I2S_GetFlagStatus - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_I2S_ClearFlag - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_I2S_GetITStatus - 0x00000000 0x34 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text.SPI_I2S_ClearITPendingBit - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TI1_Config - 0x00000000 0xb4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TI2_Config - 0x00000000 0xb8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_DeInit - 0x00000000 0x2c4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_TimeBaseInit - 0x00000000 0xf0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC1Init - 0x00000000 0xd4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC2Init - 0x00000000 0xb0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC3Init - 0x00000000 0xac ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC4Init - 0x00000000 0x8c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_BDTRConfig - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_TimeBaseStructInit - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OCStructInit - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ICStructInit - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_BDTRStructInit - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_Cmd 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_CtrlPWMOutputs - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ITConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_GenerateEvent - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_DMAConfig - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_DMACmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_InternalClockConfig - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ETRConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ETRClockMode2Config - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ETRClockMode1Config - 0x00000000 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_PrescalerConfig - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_CounterModeConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SelectInputTrigger - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_TIxExternalClockConfig - 0x00000000 0x3c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ITRxExternalClockConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_EncoderInterfaceConfig - 0x00000000 0x50 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ForcedOC1Config - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ForcedOC2Config - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ForcedOC3Config - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ForcedOC4Config - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ARRPreloadConfig - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SelectCOM - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SelectCCDMA - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_CCPreloadControl - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC1PreloadConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC2PreloadConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC3PreloadConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC4PreloadConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC1FastConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC2FastConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC3FastConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC4FastConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ClearOC1Ref - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ClearOC2Ref - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ClearOC3Ref - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ClearOC4Ref - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC1PolarityConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC1NPolarityConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC2PolarityConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC2NPolarityConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC3PolarityConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC3NPolarityConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_OC4PolarityConfig - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_CCxCmd - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_CCxNCmd - 0x00000000 0x28 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SelectOCxM - 0x00000000 0x64 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_UpdateDisableConfig - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_UpdateRequestConfig - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SelectHallSensor - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SelectOnePulseMode - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SelectOutputTrigger - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SelectSlaveMode - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SelectMasterSlaveMode - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetCounter - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetAutoreload - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetCompare1 - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetCompare2 - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetCompare3 - 0x00000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetCompare4 - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetIC1Prescaler - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetIC2Prescaler - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_PWMIConfig - 0x00000000 0xa0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetIC3Prescaler - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetIC4Prescaler - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ICInit - 0x00000000 0x1e4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_SetClockDivision - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_GetCapture1 - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_GetCapture2 - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_GetCapture3 - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_GetCapture4 - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_GetCounter - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_GetPrescaler - 0x00000000 0x8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_GetFlagStatus - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ClearFlag - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_GetITStatus - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text.TIM_ClearITPendingBit - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_DeInit - 0x00000000 0xd4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_StructInit - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_ClockInit - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_ClockStructInit - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_ITConfig - 0x00000000 0x3c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_DMACmd - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_SetAddress - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_WakeUpConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_ReceiverWakeUpCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_LINBreakDetectLengthConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_LINCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_SendBreak - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_SetGuardTime - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_SetPrescaler - 0x00000000 0x14 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_SmartCardCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_SmartCardNACKCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_HalfDuplexCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_OverSampling8Cmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_OneBitMethodCmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_IrDAConfig - 0x00000000 0x1c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_IrDACmd - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_ClearFlag - 0x00000000 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_GetITStatus - 0x00000000 0x54 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text.USART_ClearITPendingBit - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .text 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .data 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .text.WWDG_DeInit - 0x00000000 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .text.WWDG_SetPrescaler - 0x00000000 0x18 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .text.WWDG_SetWindowValue - 0x00000000 0x2c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .text.WWDG_EnableIT - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .text.WWDG_SetCounter - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .text.WWDG_Enable - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .text.WWDG_GetFlagStatus - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .text.WWDG_ClearFlag - 0x00000000 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .text 0x00000000 0x0 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .data 0x00000000 0x0 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .text.SystemInit - 0x00000000 0x130 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .text.SystemCoreClockUpdate - 0x00000000 0xe0 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .data.AHBPrescTable - 0x00000000 0x10 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .data.SystemCoreClock - 0x00000000 0x4 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .text 0x00000000 0x0 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .data 0x00000000 0x0 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .bss 0x00000000 0x0 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__get_PSP - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__set_PSP - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__get_MSP - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__set_MSP - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__get_BASEPRI - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__set_BASEPRI - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__get_PRIMASK - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__set_PRIMASK - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__get_FAULTMASK - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__set_FAULTMASK - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__get_CONTROL - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__set_CONTROL - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__REV 0x00000000 0x4 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__REV16 0x00000000 0x4 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__REVSH 0x00000000 0x4 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__RBIT 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__LDREXB - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__LDREXH - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__LDREXW - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__STREXB - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__STREXH - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text.__STREXW - 0x00000000 0x8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .text 0x00000000 0x0 ./lib/stdio_mini.o - .data 0x00000000 0x0 ./lib/stdio_mini.o - .bss 0x00000000 0x0 ./lib/stdio_mini.o - .text.puts 0x00000000 0x34 ./lib/stdio_mini.o - .text.scanf 0x00000000 0x258 ./lib/stdio_mini.o - .text 0x00000000 0x0 ./boot.o - .data 0x00000000 0x0 ./boot.o - .bss 0x00000000 0x0 ./boot.o - .text 0x00000000 0x0 ./cstart.o - .data 0x00000000 0x0 ./cstart.o - .bss 0x00000000 0x0 ./cstart.o - .text 0x00000000 0x0 ./irq.o - .data 0x00000000 0x0 ./irq.o - .bss 0x00000000 0x0 ./irq.o - .text.IrqInterruptDisable - 0x00000000 0x20 ./irq.o - .text.IrqInterruptRestore - 0x00000000 0x18 ./irq.o - .bss.interruptNesting - 0x00000000 0x1 ./irq.o - .text 0x00000000 0x0 ./led.o - .data 0x00000000 0x0 ./led.o - .bss 0x00000000 0x0 ./led.o - .text 0x00000000 0x0 ./main.o - .data 0x00000000 0x0 ./main.o - .bss 0x00000000 0x0 ./main.o - .text 0x00000000 0x0 ./timer.o - .data 0x00000000 0x0 ./timer.o - .bss 0x00000000 0x0 ./timer.o - .text 0x00000000 0x0 ./uart.o - .data 0x00000000 0x0 ./uart.o - .bss 0x00000000 0x0 ./uart.o - .text 0x00000000 0x0 ./vectors.o - .data 0x00000000 0x0 ./vectors.o - .bss 0x00000000 0x0 ./vectors.o - .text 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-ctype_.o) - .bss 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-ctype_.o) - .text 0x00000000 0x17c c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtol.o) - .data 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtol.o) - .bss 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtol.o) - .text 0x00000000 0x17c c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtoul.o) - .data 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtoul.o) - .bss 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtoul.o) - .text 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-impure.o) - .data 0x00000000 0xf4 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-impure.o) - .bss 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-impure.o) - .rodata 0x00000000 0x4 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-impure.o) - .rodata.str1.4 - 0x00000000 0x4 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-impure.o) - .text 0x00000000 0x278 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_udivsi3.o) - .data 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_udivsi3.o) - .bss 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_udivsi3.o) - .text 0x00000000 0x4 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_dvmd_tls.o) - .data 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_dvmd_tls.o) - .bss 0x00000000 0x0 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_dvmd_tls.o) - -Memory Configuration - -Name Origin Length Attributes -FLASH 0x08002000 0x0001e000 xr -SRAM 0x20000000 0x00005000 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o -LOAD ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o -LOAD ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o -LOAD ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o -LOAD ./lib/stdio_mini.o -LOAD ./boot.o -LOAD ./cstart.o -LOAD ./irq.o -LOAD ./led.o -LOAD ./main.o -LOAD ./timer.o -LOAD ./uart.o -LOAD ./vectors.o -START GROUP -LOAD c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a -LOAD c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a -END GROUP - 0x00000400 __STACKSIZE__ = 0x400 - -.text 0x08002000 0x1158 - *(.isr_vector) - .isr_vector 0x08002000 0x154 ./vectors.o - 0x08002000 _vectab - *(.text*) - .text.GPIO_Init - 0x08002154 0xc4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - 0x08002154 GPIO_Init - .text.GPIO_SetBits - 0x08002218 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - 0x08002218 GPIO_SetBits - .text.GPIO_ResetBits - 0x0800221c 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - 0x0800221c GPIO_ResetBits - .text.RCC_GetClocksFreq - 0x08002220 0xe4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - 0x08002220 RCC_GetClocksFreq - .text.RCC_APB2PeriphClockCmd - 0x08002304 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - 0x08002304 RCC_APB2PeriphClockCmd - .text.RCC_APB1PeriphClockCmd - 0x08002328 0x24 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - 0x08002328 RCC_APB1PeriphClockCmd - .text.USART_Init - 0x0800234c 0xf8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - 0x0800234c USART_Init - .text.USART_Cmd - 0x08002444 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - 0x08002444 USART_Cmd - .text.USART_SendData - 0x08002464 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - 0x08002464 USART_SendData - .text.USART_ReceiveData - 0x08002470 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - 0x08002470 USART_ReceiveData - .text.USART_GetFlagStatus - 0x0800247c 0xc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - 0x0800247c USART_GetFlagStatus - .text.output_dup - 0x08002488 0x2c ./lib/stdio_mini.o - .text.format_integer - 0x080024b4 0x1e8 ./lib/stdio_mini.o - .text.printf 0x0800269c 0x330 ./lib/stdio_mini.o - 0x0800269c printf - .text.BootComInit - 0x080029cc 0x14 ./boot.o - 0x080029cc BootComInit - .text.BootComCheckActivationRequest - 0x080029e0 0xc0 ./boot.o - 0x080029e0 BootComCheckActivationRequest - .text.reset_handler - 0x08002aa0 0x68 ./cstart.o - 0x08002aa0 reset_handler - .text.IrqInterruptEnable - 0x08002b08 0x4 ./irq.o - 0x08002b08 IrqInterruptEnable - .text.LedInit 0x08002b0c 0x48 ./led.o - 0x08002b0c LedInit - .text.LedToggle - 0x08002b54 0x84 ./led.o - 0x08002b54 LedToggle - .text.main 0x08002bd8 0x218 ./main.o - 0x08002bd8 main - .text.TimerDeinit - 0x08002df0 0x10 ./timer.o - 0x08002df0 TimerDeinit - .text.TimerSet - 0x08002e00 0xc ./timer.o - 0x08002e00 TimerSet - .text.TimerInit - 0x08002e0c 0x3c ./timer.o - 0x08002e0c TimerInit - .text.TimerGet - 0x08002e48 0xc ./timer.o - 0x08002e48 TimerGet - .text.TimerISRHandler - 0x08002e54 0x14 ./timer.o - 0x08002e54 TimerISRHandler - .text.UartInit - 0x08002e68 0xb4 ./uart.o - 0x08002e68 UartInit - .text.UartTxChar - 0x08002f1c 0x3c ./uart.o - 0x08002f1c UartTxChar - .text.UartRxChar - 0x08002f58 0x58 ./uart.o - 0x08002f58 UartRxChar - .text.UnusedISR - 0x08002fb0 0x4 ./vectors.o - 0x08002fb0 UnusedISR - *(.rodata*) - .rodata.str1.4 - 0x08002fb4 0x3d ./lib/stdio_mini.o - 0x40 (size before relaxing) - *fill* 0x08002ff1 0x3 00 - .rodata.base_X - 0x08002ff4 0x10 ./lib/stdio_mini.o - .rodata.base_x - 0x08003004 0x10 ./lib/stdio_mini.o - .rodata.base_o - 0x08003014 0x10 ./lib/stdio_mini.o - .rodata.base_d - 0x08003024 0x10 ./lib/stdio_mini.o - .rodata.str1.4 - 0x08003034 0x20 ./main.o - .rodata 0x08003054 0x104 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-ctype_.o) - 0x08003054 _ctype_ - 0x08003158 _etext = . - -.glue_7 0x08003158 0x0 - .glue_7 0x00000000 0x0 linker stubs - -.glue_7t 0x08003158 0x0 - .glue_7t 0x00000000 0x0 linker stubs - -.vfp11_veneer 0x08003158 0x0 - .vfp11_veneer 0x00000000 0x0 linker stubs - -.v4_bx 0x08003158 0x0 - .v4_bx 0x00000000 0x0 linker stubs - -.data 0x20000000 0x18 load address 0x08003158 - 0x20000000 _data = . - *(vtable) - *(.data*) - .data.ADCPrescTable - 0x20000000 0x4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .data.APBAHBPrescTable - 0x20000004 0x10 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .data 0x20000014 0x4 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-ctype_.o) - 0x20000014 __ctype_ptr__ - 0x20000018 _edata = . - -.bss 0x20000018 0x460 load address 0x08003170 - 0x20000018 _bss = . - *(.bss*) - .bss.txcharcnt - 0x20000018 0x4 ./lib/stdio_mini.o - .bss.xcpCtoReqPacket.3649 - 0x2000001c 0x44 ./boot.o - .bss.xcpCtoRxInProgress.3651 - 0x20000060 0x1 ./boot.o - .bss.xcpCtoRxLength.3650 - 0x20000061 0x1 ./boot.o - *fill* 0x20000062 0x2 00 - .bss.timer_counter_last.3646 - 0x20000064 0x4 ./led.o - .bss.led_toggle_state.3645 - 0x20000068 0x1 ./led.o - .bss.sec.4553 0x20000069 0x1 ./main.o - .bss.min.4552 0x2000006a 0x1 ./main.o - *fill* 0x2000006b 0x1 00 - .bss.uptime_ms_last.4549 - 0x2000006c 0x4 ./main.o - .bss.hr.4551 0x20000070 0x1 ./main.o - *fill* 0x20000071 0x3 00 - .bss.millisecond_counter - 0x20000074 0x4 ./timer.o - *(COMMON) - 0x20000078 _ebss = . - 0x20000078 _stack = . - 0x20000478 . = ALIGN (MAX ((_stack + __STACKSIZE__), .), 0x4) - *fill* 0x20000078 0x400 00 - 0x20000478 _estack = . -OUTPUT(demoprog_olimex_stm32p103.elf elf32-littlearm) - -.debug_abbrev 0x00000000 0x31f2 - .debug_abbrev 0x00000000 0x15f ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_abbrev 0x0000015f 0x1d3 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_abbrev 0x00000332 0x180 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_abbrev 0x000004b2 0x1fe ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_abbrev 0x000006b0 0x1c8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_abbrev 0x00000878 0x136 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_abbrev 0x000009ae 0x1b9 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_abbrev 0x00000b67 0xed ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_abbrev 0x00000c54 0x178 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_abbrev 0x00000dcc 0x174 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_abbrev 0x00000f40 0x19b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_abbrev 0x000010db 0x1b6 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_abbrev 0x00001291 0x1dd ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_abbrev 0x0000146e 0x198 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_abbrev 0x00001606 0x10d ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_abbrev 0x00001713 0x1a2 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_abbrev 0x000018b5 0x1d4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_abbrev 0x00001a89 0x19f ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_abbrev 0x00001c28 0x1fc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_abbrev 0x00001e24 0x1b4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_abbrev 0x00001fd8 0x227 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_abbrev 0x000021ff 0x1ad ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_abbrev 0x000023ac 0x137 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_abbrev 0x000024e3 0x1aa ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_abbrev 0x0000268d 0xb8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_abbrev 0x00002745 0x280 ./lib/stdio_mini.o - .debug_abbrev 0x000029c5 0xf1 ./boot.o - .debug_abbrev 0x00002ab6 0x93 ./cstart.o - .debug_abbrev 0x00002b49 0x88 ./irq.o - .debug_abbrev 0x00002bd1 0xff ./led.o - .debug_abbrev 0x00002cd0 0x139 ./main.o - .debug_abbrev 0x00002e09 0x1df ./timer.o - .debug_abbrev 0x00002fe8 0x130 ./uart.o - .debug_abbrev 0x00003118 0xda ./vectors.o - -.debug_info 0x00000000 0xd398 - .debug_info 0x00000000 0x54e ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_info 0x0000054e 0xbf1 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_info 0x0000113f 0x876 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_info 0x000019b5 0xc54 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_info 0x00002609 0x43d ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_info 0x00002a46 0x206 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_info 0x00002c4c 0x4e3 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_info 0x0000312f 0x15f ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_info 0x0000328e 0x49d ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_info 0x0000372b 0x363 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_info 0x00003a8e 0x828 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_info 0x000042b6 0x99d ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_info 0x00004c53 0x71f ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_info 0x00005372 0xb76 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_info 0x00005ee8 0x201 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_info 0x000060e9 0x474 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_info 0x0000655d 0x8ea ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_info 0x00006e47 0x46e ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_info 0x000072b5 0x876 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_info 0x00007b2b 0x960 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_info 0x0000848b 0x1e27 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_info 0x0000a2b2 0xa52 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_info 0x0000ad04 0x23b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_info 0x0000af3f 0x4cf ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_info 0x0000b40e 0x553 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_info 0x0000b961 0x5d1 ./lib/stdio_mini.o - .debug_info 0x0000bf32 0x159 ./boot.o - .debug_info 0x0000c08b 0x11d ./cstart.o - .debug_info 0x0000c1a8 0x130 ./irq.o - .debug_info 0x0000c2d8 0x261 ./led.o - .debug_info 0x0000c539 0x32a ./main.o - .debug_info 0x0000c863 0x624 ./timer.o - .debug_info 0x0000ce87 0x3f5 ./uart.o - .debug_info 0x0000d27c 0x11c ./vectors.o - -.debug_line 0x00000000 0xe2f0 - .debug_line 0x00000000 0x5be ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_line 0x000005be 0x87b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_line 0x00000e39 0x642 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_line 0x0000147b 0x896 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_line 0x00001d11 0x677 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_line 0x00002388 0x5d8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_line 0x00002960 0x653 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_line 0x00002fb3 0x597 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_line 0x0000354a 0x664 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_line 0x00003bae 0x615 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_line 0x000041c3 0x811 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_line 0x000049d4 0x789 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_line 0x0000515d 0x715 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_line 0x00005872 0x81f ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_line 0x00006091 0x5cb ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_line 0x0000665c 0x623 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_line 0x00006c7f 0x80e ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_line 0x0000748d 0x680 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_line 0x00007b0d 0x7b5 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_line 0x000082c2 0x76c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_line 0x00008a2e 0xd71 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_line 0x0000979f 0x7d1 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_line 0x00009f70 0x5f4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_line 0x0000a564 0x5d5 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_line 0x0000ab39 0x2dd ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_line 0x0000ae16 0x4bd ./lib/stdio_mini.o - .debug_line 0x0000b2d3 0x5c5 ./boot.o - .debug_line 0x0000b898 0x5a5 ./cstart.o - .debug_line 0x0000be3d 0x5da ./irq.o - .debug_line 0x0000c417 0x5b6 ./led.o - .debug_line 0x0000c9cd 0x7ac ./main.o - .debug_line 0x0000d179 0x5f8 ./timer.o - .debug_line 0x0000d771 0x5e3 ./uart.o - .debug_line 0x0000dd54 0x59c ./vectors.o - -.debug_macinfo 0x00000000 0xa1114f - .debug_macinfo - 0x00000000 0x5020a ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_macinfo - 0x0005020a 0x50871 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_macinfo - 0x000a0a7b 0x5045c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_macinfo - 0x000f0ed7 0x503e6 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_macinfo - 0x001412bd 0x50404 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_macinfo - 0x001916c1 0x501de ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_macinfo - 0x001e189f 0x502f5 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_macinfo - 0x00231b94 0x50209 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_macinfo - 0x00281d9d 0x506cd ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_macinfo - 0x002d246a 0x50202 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_macinfo - 0x0032266c 0x505fa ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_macinfo - 0x00372c66 0x50323 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_macinfo - 0x003c2f89 0x50439 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_macinfo - 0x004133c2 0x506ba ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_macinfo - 0x00463a7c 0x50224 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_macinfo - 0x004b3ca0 0x503a7 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_macinfo - 0x00504047 0x50970 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_macinfo - 0x005549b7 0x5022b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_macinfo - 0x005a4be2 0x50769 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_macinfo - 0x005f534b 0x5045d ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_macinfo - 0x006457a8 0x50267 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_macinfo - 0x00695a0f 0x505f4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_macinfo - 0x006e6003 0x50311 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_macinfo - 0x00736314 0x5020e ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_macinfo - 0x00786522 0x1f9b ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_macinfo - 0x007884bd 0x3caf ./lib/stdio_mini.o - .debug_macinfo - 0x0078c16c 0x50495 ./boot.o - .debug_macinfo - 0x007dc601 0x50495 ./cstart.o - .debug_macinfo - 0x0082ca96 0x50495 ./irq.o - .debug_macinfo - 0x0087cf2b 0x504ab ./led.o - .debug_macinfo - 0x008cd3d6 0x52fba ./main.o - .debug_macinfo - 0x00920390 0x50495 ./timer.o - .debug_macinfo - 0x00970825 0x50495 ./uart.o - .debug_macinfo - 0x009c0cba 0x50495 ./vectors.o - -.debug_loc 0x00000000 0x69da - .debug_loc 0x00000000 0x130 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_loc 0x00000130 0x937 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_loc 0x00000a67 0x133 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_loc 0x00000b9a 0x7f2 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_loc 0x0000138c 0x1f4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_loc 0x00001580 0x8f ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_loc 0x0000160f 0x300 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_loc 0x0000190f 0x1e ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_loc 0x0000192d 0x142 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_loc 0x00001a6f 0x146 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_loc 0x00001bb5 0x7b9 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_loc 0x0000236e 0x38b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_loc 0x000026f9 0x488 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_loc 0x00002b81 0x663 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_loc 0x000031e4 0x3d ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_loc 0x00003221 0xc3 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_loc 0x000032e4 0x4f9 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_loc 0x000037dd 0x1c8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_loc 0x000039a5 0x219 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_loc 0x00003bbe 0x3f8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_loc 0x00003fb6 0x1646 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_loc 0x000055fc 0x50e ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_loc 0x00005b0a 0xe5 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_loc 0x00005bef 0xfe ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_loc 0x00005ced 0x298 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_loc 0x00005f85 0x812 ./lib/stdio_mini.o - .debug_loc 0x00006797 0x76 ./boot.o - .debug_loc 0x0000680d 0x33 ./cstart.o - .debug_loc 0x00006840 0x6a ./led.o - .debug_loc 0x000068aa 0x4a ./main.o - .debug_loc 0x000068f4 0x20 ./timer.o - .debug_loc 0x00006914 0xc6 ./uart.o - -.debug_pubnames - 0x00000000 0x2e10 - .debug_pubnames - 0x00000000 0x89 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_pubnames - 0x00000089 0x401 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_pubnames - 0x0000048a 0x128 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_pubnames - 0x000005b2 0x208 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_pubnames - 0x000007ba 0x12b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_pubnames - 0x000008e5 0x82 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_pubnames - 0x00000967 0x116 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_pubnames - 0x00000a7d 0x4c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_pubnames - 0x00000ac9 0xea ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_pubnames - 0x00000bb3 0xbb ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_pubnames - 0x00000c6e 0x2f2 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_pubnames - 0x00000f60 0x1a3 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_pubnames - 0x00001103 0x19d ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_pubnames - 0x000012a0 0x2cb ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_pubnames - 0x0000156b 0x91 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_pubnames - 0x000015fc 0xcb ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_pubnames - 0x000016c7 0x2c4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_pubnames - 0x0000198b 0x136 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_pubnames - 0x00001ac1 0x2ac ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_pubnames - 0x00001d6d 0x1f6 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_pubnames - 0x00001f63 0x7b0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_pubnames - 0x00002713 0x294 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_pubnames - 0x000029a7 0xb0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_pubnames - 0x00002a57 0x61 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_pubnames - 0x00002ab8 0x159 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_pubnames - 0x00002c11 0x30 ./lib/stdio_mini.o - .debug_pubnames - 0x00002c41 0x44 ./boot.o - .debug_pubnames - 0x00002c85 0x24 ./cstart.o - .debug_pubnames - 0x00002ca9 0x59 ./irq.o - .debug_pubnames - 0x00002d02 0x2c ./led.o - .debug_pubnames - 0x00002d2e 0x1b ./main.o - .debug_pubnames - 0x00002d49 0x5e ./timer.o - .debug_pubnames - 0x00002da7 0x3d ./uart.o - .debug_pubnames - 0x00002de4 0x2c ./vectors.o - -.debug_pubtypes - 0x00000000 0x115b - .debug_pubtypes - 0x00000000 0x80 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_pubtypes - 0x00000080 0x8c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_pubtypes - 0x0000010c 0x78 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_pubtypes - 0x00000184 0x115 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_pubtypes - 0x00000299 0x8c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_pubtypes - 0x00000325 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_pubtypes - 0x0000036d 0x70 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_pubtypes - 0x000003dd 0x46 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_pubtypes - 0x00000423 0x98 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_pubtypes - 0x000004bb 0xa2 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_pubtypes - 0x0000055d 0x8d ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_pubtypes - 0x000005ea 0x168 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_pubtypes - 0x00000752 0xc3 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_pubtypes - 0x00000815 0xb2 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_pubtypes - 0x000008c7 0x58 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_pubtypes - 0x0000091f 0x78 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_pubtypes - 0x00000997 0x9e ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_pubtypes - 0x00000a35 0x78 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_pubtypes - 0x00000aad 0xb2 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_pubtypes - 0x00000b5f 0xb6 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_pubtypes - 0x00000c15 0xd8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_pubtypes - 0x00000ced 0xc9 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_pubtypes - 0x00000db6 0x4b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_pubtypes - 0x00000e01 0x67 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_pubtypes - 0x00000e68 0x50 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_pubtypes - 0x00000eb8 0x71 ./lib/stdio_mini.o - .debug_pubtypes - 0x00000f29 0x12 ./boot.o - .debug_pubtypes - 0x00000f3b 0x12 ./cstart.o - .debug_pubtypes - 0x00000f4d 0x12 ./irq.o - .debug_pubtypes - 0x00000f5f 0x7d ./led.o - .debug_pubtypes - 0x00000fdc 0x4d ./main.o - .debug_pubtypes - 0x00001029 0x6e ./timer.o - .debug_pubtypes - 0x00001097 0xa5 ./uart.o - .debug_pubtypes - 0x0000113c 0x1f ./vectors.o - -.debug_aranges 0x00000000 0x1358 - .debug_aranges - 0x00000000 0x40 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_aranges - 0x00000040 0x138 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_aranges - 0x00000178 0x78 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_aranges - 0x000001f0 0xe0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_aranges - 0x000002d0 0x88 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_aranges - 0x00000358 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_aranges - 0x000003a0 0x78 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_aranges - 0x00000418 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_aranges - 0x00000448 0x70 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_aranges - 0x000004b8 0x58 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_aranges - 0x00000510 0xf8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_aranges - 0x00000608 0xb0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_aranges - 0x000006b8 0xa8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_aranges - 0x00000760 0x120 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_aranges - 0x00000880 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_aranges - 0x000008c8 0x60 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_aranges - 0x00000928 0x118 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_aranges - 0x00000a40 0x88 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_aranges - 0x00000ac8 0x108 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_aranges - 0x00000bd0 0xd0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_aranges - 0x00000ca0 0x2e0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_aranges - 0x00000f80 0x100 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_aranges - 0x00001080 0x58 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_aranges - 0x000010d8 0x28 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_aranges - 0x00001100 0xc8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_aranges - 0x000011c8 0x40 ./lib/stdio_mini.o - .debug_aranges - 0x00001208 0x28 ./boot.o - .debug_aranges - 0x00001230 0x20 ./cstart.o - .debug_aranges - 0x00001250 0x30 ./irq.o - .debug_aranges - 0x00001280 0x28 ./led.o - .debug_aranges - 0x000012a8 0x20 ./main.o - .debug_aranges - 0x000012c8 0x40 ./timer.o - .debug_aranges - 0x00001308 0x30 ./uart.o - .debug_aranges - 0x00001338 0x20 ./vectors.o - -.debug_ranges 0x00000000 0x11e8 - .debug_ranges 0x00000000 0x30 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_ranges 0x00000030 0x128 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_ranges 0x00000158 0x68 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_ranges 0x000001c0 0xd0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_ranges 0x00000290 0x78 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_ranges 0x00000308 0x38 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_ranges 0x00000340 0x68 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_ranges 0x000003a8 0x20 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_ranges 0x000003c8 0x60 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_ranges 0x00000428 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_ranges 0x00000470 0xe8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_ranges 0x00000558 0xa0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_ranges 0x000005f8 0x98 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_ranges 0x00000690 0x110 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_ranges 0x000007a0 0x38 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_ranges 0x000007d8 0x50 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_ranges 0x00000828 0x108 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_ranges 0x00000930 0x78 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_ranges 0x000009a8 0xf8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_ranges 0x00000aa0 0xc0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_ranges 0x00000b60 0x2d0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_ranges 0x00000e30 0xf0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_ranges 0x00000f20 0x48 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_ranges 0x00000f68 0x18 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_ranges 0x00000f80 0xb8 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_ranges 0x00001038 0xb0 ./lib/stdio_mini.o - .debug_ranges 0x000010e8 0x18 ./boot.o - .debug_ranges 0x00001100 0x10 ./cstart.o - .debug_ranges 0x00001110 0x20 ./irq.o - .debug_ranges 0x00001130 0x18 ./led.o - .debug_ranges 0x00001148 0x40 ./main.o - .debug_ranges 0x00001188 0x30 ./timer.o - .debug_ranges 0x000011b8 0x20 ./uart.o - .debug_ranges 0x000011d8 0x10 ./vectors.o - -.debug_str 0x00000000 0x54a2 - .debug_str 0x00000000 0x340 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - 0x380 (size before relaxing) - .debug_str 0x00000340 0x54b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - 0x6b8 (size before relaxing) - .debug_str 0x0000088b 0x3cc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - 0x572 (size before relaxing) - .debug_str 0x00000c57 0x51e ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - 0x6eb (size before relaxing) - .debug_str 0x00001175 0x1b4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - 0x333 (size before relaxing) - .debug_str 0x00001329 0xca ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - 0x1f8 (size before relaxing) - .debug_str 0x000013f3 0x215 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - 0x36c (size before relaxing) - .debug_str 0x00001608 0x98 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - 0x1c4 (size before relaxing) - .debug_str 0x000016a0 0x21e ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - 0x37e (size before relaxing) - .debug_str 0x000018be 0x1c7 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - 0x31b (size before relaxing) - .debug_str 0x00001a85 0x427 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - 0x5a5 (size before relaxing) - .debug_str 0x00001eac 0x5d5 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - 0x741 (size before relaxing) - .debug_str 0x00002481 0x37e ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - 0x4d6 (size before relaxing) - .debug_str 0x000027ff 0x440 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - 0x623 (size before relaxing) - .debug_str 0x00002c3f 0xe2 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - 0x219 (size before relaxing) - .debug_str 0x00002d21 0x122 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - 0x2cf (size before relaxing) - .debug_str 0x00002e43 0x3d2 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - 0x5d7 (size before relaxing) - .debug_str 0x00003215 0x19a ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - 0x35f (size before relaxing) - .debug_str 0x000033af 0x47b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - 0x5f8 (size before relaxing) - .debug_str 0x0000382a 0x36b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - 0x5ba (size before relaxing) - .debug_str 0x00003b95 0xafc ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - 0xd9a (size before relaxing) - .debug_str 0x00004691 0x42a ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - 0x64d (size before relaxing) - .debug_str 0x00004abb 0xde ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - 0x225 (size before relaxing) - .debug_str 0x00004b99 0x99 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - 0x2a3 (size before relaxing) - .debug_str 0x00004c32 0x161 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - 0x286 (size before relaxing) - .debug_str 0x00004d93 0x175 ./lib/stdio_mini.o - 0x287 (size before relaxing) - .debug_str 0x00004f08 0x85 ./boot.o - 0x180 (size before relaxing) - .debug_str 0x00004f8d 0x39 ./cstart.o - 0x134 (size before relaxing) - .debug_str 0x00004fc6 0x70 ./irq.o - 0x16b (size before relaxing) - .debug_str 0x00005036 0x5b ./led.o - 0x294 (size before relaxing) - .debug_str 0x00005091 0x49 ./main.o - 0x1e6 (size before relaxing) - .debug_str 0x000050da 0x358 ./timer.o - 0x540 (size before relaxing) - .debug_str 0x00005432 0x3b ./uart.o - 0x367 (size before relaxing) - .debug_str 0x0000546d 0x35 ./vectors.o - 0x130 (size before relaxing) - -.comment 0x00000000 0x2a - .comment 0x00000000 0x2a ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - 0x2b (size before relaxing) - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .comment 0x00000000 0x2b ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .comment 0x00000000 0x2b ./lib/stdio_mini.o - .comment 0x00000000 0x2b ./boot.o - .comment 0x00000000 0x2b ./cstart.o - .comment 0x00000000 0x2b ./irq.o - .comment 0x00000000 0x2b ./led.o - .comment 0x00000000 0x2b ./main.o - .comment 0x00000000 0x2b ./timer.o - .comment 0x00000000 0x2b ./uart.o - .comment 0x00000000 0x2b ./vectors.o - -.ARM.attributes - 0x00000000 0x31 - .ARM.attributes - 0x00000000 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .ARM.attributes - 0x00000031 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .ARM.attributes - 0x00000062 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .ARM.attributes - 0x00000093 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .ARM.attributes - 0x000000c4 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .ARM.attributes - 0x000000f5 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .ARM.attributes - 0x00000126 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .ARM.attributes - 0x00000157 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .ARM.attributes - 0x00000188 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .ARM.attributes - 0x000001b9 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .ARM.attributes - 0x000001ea 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .ARM.attributes - 0x0000021b 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .ARM.attributes - 0x0000024c 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .ARM.attributes - 0x0000027d 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .ARM.attributes - 0x000002ae 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .ARM.attributes - 0x000002df 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .ARM.attributes - 0x00000310 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .ARM.attributes - 0x00000341 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .ARM.attributes - 0x00000372 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .ARM.attributes - 0x000003a3 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .ARM.attributes - 0x000003d4 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .ARM.attributes - 0x00000405 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .ARM.attributes - 0x00000436 0x31 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .ARM.attributes - 0x00000467 0x31 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .ARM.attributes - 0x00000498 0x31 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .ARM.attributes - 0x000004c9 0x31 ./lib/stdio_mini.o - .ARM.attributes - 0x000004fa 0x31 ./boot.o - .ARM.attributes - 0x0000052b 0x31 ./cstart.o - .ARM.attributes - 0x0000055c 0x31 ./irq.o - .ARM.attributes - 0x0000058d 0x31 ./led.o - .ARM.attributes - 0x000005be 0x31 ./main.o - .ARM.attributes - 0x000005ef 0x31 ./timer.o - .ARM.attributes - 0x00000620 0x31 ./uart.o - .ARM.attributes - 0x00000651 0x31 ./vectors.o - .ARM.attributes - 0x00000682 0x29 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-ctype_.o) - .ARM.attributes - 0x000006ab 0x29 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtol.o) - .ARM.attributes - 0x000006d4 0x29 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtoul.o) - .ARM.attributes - 0x000006fd 0x29 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-impure.o) - .ARM.attributes - 0x00000726 0x1b c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_udivsi3.o) - .ARM.attributes - 0x00000741 0x1b c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_dvmd_tls.o) - -.debug_frame 0x00000000 0x2874 - .debug_frame 0x00000000 0x68 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.o - .debug_frame 0x00000068 0x284 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o - .debug_frame 0x000002ec 0xe4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o - .debug_frame 0x000003d0 0x1e0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o - .debug_frame 0x000005b0 0x104 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o - .debug_frame 0x000006b4 0x78 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o - .debug_frame 0x0000072c 0xf4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o - .debug_frame 0x00000820 0x40 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o - .debug_frame 0x00000860 0xc8 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o - .debug_frame 0x00000928 0x98 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o - .debug_frame 0x000009c0 0x274 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o - .debug_frame 0x00000c34 0x164 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o - .debug_frame 0x00000d98 0x180 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o - .debug_frame 0x00000f18 0x248 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o - .debug_frame 0x00001160 0x70 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o - .debug_frame 0x000011d0 0xac ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o - .debug_frame 0x0000127c 0x228 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o - .debug_frame 0x000014a4 0x114 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o - .debug_frame 0x000015b8 0x20c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o - .debug_frame 0x000017c4 0x1b4 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o - .debug_frame 0x00001978 0x69c ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o - .debug_frame 0x00002014 0x214 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o - .debug_frame 0x00002228 0xa0 ./lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o - .debug_frame 0x000022c8 0x34 ./lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o - .debug_frame 0x000022fc 0x170 ./lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.o - .debug_frame 0x0000246c 0x100 ./lib/stdio_mini.o - .debug_frame 0x0000256c 0x48 ./boot.o - .debug_frame 0x000025b4 0x2c ./cstart.o - .debug_frame 0x000025e0 0x40 ./irq.o - .debug_frame 0x00002620 0x48 ./led.o - .debug_frame 0x00002668 0x38 ./main.o - .debug_frame 0x000026a0 0x6c ./timer.o - .debug_frame 0x0000270c 0x80 ./uart.o - .debug_frame 0x0000278c 0x20 ./vectors.o - .debug_frame 0x000027ac 0x54 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtol.o) - .debug_frame 0x00002800 0x54 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-strtoul.o) - .debug_frame 0x00002854 0x20 c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.1/thumb2\libgcc.a(_udivsi3.o) diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/bin/demoprog_olimex_stm32p103.srec b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/bin/demoprog_olimex_stm32p103.srec deleted file mode 100644 index 88418ce9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/bin/demoprog_olimex_stm32p103.srec +++ /dev/null @@ -1,282 +0,0 @@ -S021000064656D6F70726F675F6F6C696D65785F73746D3332703130332E737265639D -S3150800200078040020A12A0008B12F0008B12F000883 -S31508002010B12F0008B12F0008B12F0008B12F000812 -S31508002020B12F0008B12F0008B12F0008B12F000802 -S31508002030B12F0008B12F0008B12F0008552E00084F -S31508002040B12F0008B12F0008B12F0008B12F0008E2 -S31508002050B12F0008B12F0008B12F0008B12F0008D2 -S31508002060B12F0008B12F0008B12F0008B12F0008C2 -S31508002070B12F0008B12F0008B12F0008B12F0008B2 -S31508002080B12F0008B12F0008B12F0008B12F0008A2 -S31508002090B12F0008B12F0008B12F0008B12F000892 -S315080020A0B12F0008B12F0008B12F0008B12F000882 -S315080020B0B12F0008B12F0008B12F0008B12F000872 -S315080020C0B12F0008B12F0008B12F0008B12F000862 -S315080020D0B12F0008B12F0008B12F0008B12F000852 -S315080020E0B12F0008B12F0008B12F0008B12F000842 -S315080020F0B12F0008B12F0008B12F0008B12F000832 -S31508002100B12F0008B12F0008B12F0008B12F000821 -S31508002110B12F0008B12F0008B12F0008B12F000811 -S31508002120B12F0008B12F0008B12F0008B12F000801 -S31508002130B12F0008B12F0008B12F0008B12F0008F1 -S31508002140B12F0008B12F0008B12F0008B12F0008E1 -S31508002150EE11AA552DE9F003CB7803F00F0513F01D -S31508002160100F1CBF8B781D430B7833B3D0F800C013 -S315080021704FF000034FF001064FF00F0806FA03F27E -S315080021800C8802EA0404944211D14FEA830708FA3C -S3150800219007F92CEA090C05FA07F74CEA070CCF7879 -S315080021A0282F08BF446102D0482F08BF026103F1F7 -S315080021B00103082BE2D1C0F800C00B88FF2B28D9F1 -S315080021C0D0F804C04FF000034FF001064FF00F0897 -S315080021D003F1080206FA02F20C8802EA04049442A1 -S315080021E011D14FEA830708FA07F92CEA090C05FA10 -S315080021F007F74CEA070CCF78282F08BF4461CC783C -S31508002200482C08BF026103F10103082BE0D1C0F88E -S3150800221004C0BDE8F003704701617047416170472B -S3150800222010B44FF48053C4F202035B6803F00C0346 -S31508002230042B02BF4FF49053C0F27A03036036D0E2 -S31508002240082B06D073BB4FF49053C0F27A03036091 -S315080022502DE04FF48053C4F202035A685B68C2F358 -S31508002260834202F1020213F4803F07D14FF4106350 -S31508002270C0F23D0303FB02F2026018E04FF48053FC -S31508002280C4F202035B6813F4003F19BF4FF41063EE -S31508002290C0F23D034FF49053C0F27A0303FB02F2F7 -S315080022A0026004E04FF49053C0F27A0303604FF4DF -S315080022B08053C4F202035968C1F3031140F20402C1 -S315080022C0C2F20002515C046824FA01F141605C68BC -S315080022D0C4F30224145D21FA04F484605C68C4F330 -S315080022E0C224125D21FA02F1C1605A68C2F3813232 -S315080022F040F20003C2F200039B5CB1FBF3F10161FB -S3150800230010BC704739B14FF48053C4F202039A697E -S315080023101043986170474FF48053C4F202039A69D8 -S3150800232022EA00009861704739B14FF48053C4F22D -S315080023300203DA691043D86170474FF48053C4F238 -S315080023400203DA6922EA0000D861704730B587B01F -S3150800235004460D46038A23F440534FEA03434FEAE3 -S315080023601343CA8813430382838923F4B05323F0A3 -S315080023700C034FEA03434FEA13430989AA8841EA43 -S31508002380020269890A4392B242EA03038381838A75 -S3150800239023F440734FEA03434FEA1343AA891343CE -S315080023A0838201A842F22123C0F6000398474FF41E -S315080023B06053C4F201039C420CBF049A039AA38992 -S315080023C01BB2002B02EB820202EB8202BDBF2B6816 -S315080023D05B00B2FBF3F22968A4BF8900B2FBF1F2F5 -S315080023E048F21F53C5F2EB13A3FB02134FEA53132C -S315080023F04FEA03154FF0640003FB1023A08900B2CF -S3150800240000280DDA4FEAC30303F1320348F21F51DD -S31508002410C5F2EB11A1FB0321C1F3421129430CE0DC -S315080024204FEA031303F1320348F21F51C5F2EB11C9 -S31508002430A1FB0321C1F34311294389B2218107B0C6 -S3150800244030BD00BF29B183899BB243F40053838111 -S315080024507047838923F400534FEA03434FEA134333 -S31508002460838170474FEAC1514FEAD1518180704745 -S3150800247080884FEAC0504FEAD05070470388194207 -S315080024800CBF002001207047F8B507460C4679B105 -S3150800249042F61D76C0F6000640F21805C2F200059F -S315080024A03846B0472B6803F101032B60013CF7D18E -S315080024B0F8BD00BF2DE9F04790B0189E4FF0000513 -S315080024C0A1B1317811F0020F04D0002A0CBF2B25D8 -S315080024D02D250BE011F0040F04D0002A0CBF20258F -S315080024E02D2503E0002A14BF2D250025021E18BF3E -S315080024F00122317812EAD10114BF9F6800276C4681 -S315080025003AB3D3F80480D3F800C04FF000016C4604 -S315080025104FF02C0912E001F1010196F800A00029FC -S31508002520D4BF0022012212EA5A1207D0DA6891FBB8 -S31508002530F2FA02FB1A120AB904F8019BB0FBFCF284 -S315080025400CFB120018F8000004F8010B1046002ACC -S31508002550E1D1B06830EA200028BF0120EA46CAEB7C -S315080025600402904215DD0DF13F02944211D2224633 -S3150800257004F10104CAEB04014FF0300C0DF13F08D9 -S3150800258002F801CB1446884203DD01F101014245F8 -S31508002590F6D3327812F0080F0DD01B68082B0AD133 -S315080025A06B469C4203D014F8013C302B03D04FF005 -S315080025B0300304F8013B7268002F14BF022300237E -S315080025C00AEB0209002D18BFA9F10109C4EB090994 -S315080025D0C3EB090929EAE979337813F0110F07D112 -S315080025E04FF02000494642F28943C0F60003984757 -S315080025F06DB1284642F61D73C0F60003984740F2AF -S315080026001803C2F200031A6802F101021A60A7B1A0 -S315080026104FF0300042F61D78C0F60008C04740F279 -S315080026201805C2F200052B6803F101032B60384632 -S31508002630C0472B6803F101032B60337813F0100FA2 -S3150800264007D04FF03000494642F28943C0F60003EE -S3150800265098476B469C4211D942F61D77C0F600078B -S3150800266040F21805C2F20005E84614F8010DB8470D -S315080026702B6803F101032B60A045F6D3337813F0DA -S31508002680010F07D04FF02000494642F28943C0F6B1 -S315080026900003984710B0BDE8F08700BF0FB42DE9D6 -S315080026A0F04389B010AD55F8044B079520780028FB -S315080026B000F0798142F61D76C0F600064FF0000953 -S315080026C0C846252809D0B04740F21803C2F20003CD -S315080026D01A6802F101021A6060E114F8013F252B1D -S315080026E01EBF8DF80C90224640460BD14FF02500B0 -S315080026F0B04740F21803C2F200031A6802F1010259 -S315080027001A604BE1174612F8013B1446A3F1200163 -S3150800271010291CD8DFE801F00F1B1B121B1B1B1806 -S315080027201B1B1B0C1B091B1B150040F00100E9E7CE -S3150800273040F00200E6E740F00400E3E740F0080056 -S31508002740E0E740F01000DDE740F02000DAE78DF81A -S315080027500C0010F0010F1CBF20F010008DF80C00C3 -S315080027609DF80C2012F0020F1CBF22F004028DF80F -S315080027700C20CDF810802A2B0CD040F21402C2F29D -S3150800278000021068C1184A7812F0040F08BF3C46C8 -S3150800279005D123E02B68049305F1040512E007F13F -S315080027A00102049901EB81014FEA4101A1F13001CF -S315080027B0CB180493144612F8013BC118497811F056 -S315080027C0040FEED1049B002BBFBF5B4204939DF818 -S315080027D00C3043F00103B8BF8DF80C304FF0FF33CF -S315080027E0059323782E2B32D104F1010163782A2B25 -S315080027F006D101F101042B68059305F104051FE0D4 -S31508002800CDF8148040F21402C2F200021068C21811 -S31508002810527812F0040F00F0D08004F102020599F4 -S3150800282001EB81014FEA4101A1F13001CB18059373 -S31508002830144612F8013BC118497811F0040FEED17D -S31508002840059B002B80F2BA804FF0FF3305934FF0BB -S3150800285003038DF8183004F101022378682B02D09F -S315080028606C2B12D10CE06378682B03BF541C012330 -S315080028708DF8183002231CBF8DF81830144604E072 -S315080028804FF005038DF8183014462178A1F1580247 -S31508002890202A00F28380DFE802F04381818181816A -S315080028A081818181818111818181811181818181EA -S315080028B08143818181818143818143009DF818305C -S315080028C003F1FF33042B16D8DFE803F003080D15D0 -S315080028D0110095F9002005F104050DE0B5F9002071 -S315080028E005F1040508E02A6805F1040504E02A68EC -S315080028F005F1040500E04A4603AB009382EAE2705C -S31508002900A0EBE2704FF001014FEAD27243F22403C2 -S31508002910C0F6000342F2B547C0F60007B8473DE0E7 -S315080029209DF8183003F1FF33042B14D8DFE803F0C1 -S3150800293003070B130F00287805F104050CE0288817 -S3150800294005F1040508E0286805F1040504E028688F -S3150800295005F1040500E048466F2904BF43F2140355 -S31508002960C0F6000311D0782904BF43F20403C0F669 -S3150800297000030AD042F6F472C0F6000243F22403BA -S31508002980C0F60003582908BF134603AA0092494611 -S315080029904A4642F2B547C0F60007B84714F8010F91 -S315080029A000287FF48EAE40F21803C2F200031868BE -S315080029B009B0BDE8F04304B070470C469DF80C30EA -S315080029C023F010038DF80C3041E700BF08B54FF42B -S315080029D0614042F66963C0F60003984708BD00BF28 -S315080029E010B540F26003C2F200031B78EBB94FF052 -S315080029F0000042F65973C0F600039847B0F1FF3F4E -S31508002A004DD040F21C03C2F20003187040F2600376 -S31508002A10C2F200034FF001021A7040F26103C2F2DB -S31508002A2000034FF000021A7010BD4FF0000042F686 -S31508002A305973C0F600039847B0F1FF3F2FD040F214 -S31508002A406102C2F20002117840F21C03C2F20003CE -S31508002A505C18607001F10101C9B211701B788B42D4 -S31508002A601DD140F26003C2F200034FF000021A7053 -S31508002A7040F21C03C2F200035B78FF2B0FD140F231 -S31508002A801C03C2F200039B784BB942F6F153C0F619 -S31508002A900003984740F25113C0F60003984710BD4B -S31508002AA008B516498D4640F20002C2F2000240F20D -S31508002AB01803C2F200039A4211D243F25812C0F622 -S31508002AC0000240F20003C2F2000340F21800C2F20C -S31508002AD0000052F8041B43F8041B8342F9D3084844 -S31508002AE008494FF000028842B8BF40F8042BFADBC9 -S31508002AF042F6D933C0F60003984708BD780400208B -S31508002B00180000207800002062B6704700B583B030 -S31508002B104FF010004FF0010142F20533C0F60003F2 -S31508002B2098474FF48053ADF804304FF003038DF8FF -S31508002B3006304FF010038DF807304FF48050C4F27A -S31508002B40010001A942F25513C0F60003984703B0E5 -S31508002B5000BD00BF10B542F64963C0F600039847AA -S31508002B60044640F26403C2F200031B68C31AB3F5B5 -S31508002B70FA7F2FD340F26803C2F200031B7893B999 -S31508002B8040F26803C2F200034FF001021A704FF4D4 -S31508002B908050C4F201004FF4805142F21D23C0F662 -S31508002BA00003984711E040F26803C2F200034FF0B1 -S31508002BB000021A704FF48050C4F201004FF480519D -S31508002BC042F21923C0F60003984740F26403C2F2A2 -S31508002BD000031C6010BD00BF2DE9F04182B04FF024 -S31508002BE00003019300934FF48053C4F202031A685A -S31508002BF042F001021A6059684FF00002CFF6FF0250 -S31508002C0001EA02025A601A6822F0847222F48032BB -S31508002C101A601A6822F480221A605A6822F4FE02A0 -S31508002C205A604FF41F029A601A6842F480321A609A -S31508002C304FF48053C4F2020340F2DC52196801F4DF -S31508002C4000310091019901F101010191009911B931 -S31508002C5001999142F2D14FF48053C4F202031B68E2 -S31508002C6013F4003F00D1FEE74FF40053C4F2020309 -S31508002C701A6842F010021A601A6822F003021A60F3 -S31508002C801A6842F002021A604FF48053C4F2020333 -S31508002C905A685A605A6842F400525A605A6842F4AE -S31508002CA080625A605A6822F47C125A605A6842F462 -S31508002CB0E8125A601A6842F080721A604FF480531C -S31508002CC0C4F202031A6812F0007FFBD04FF4805357 -S31508002CD0C4F202035A6822F003025A605A6842F0A4 -S31508002CE002025A604FF48053C4F202035A6802F093 -S31508002CF00C02082AFAD142F60D33C0F600039847AB -S31508002D0042F60D63C0F60003984742F60933C0F64B -S31508002D100003984742F6CD13C0F60003984742F6DB -S31508002D205536C0F6000642F64968C0F6000840F275 -S31508002D306C05C2F20005B047C04704462B68C31AA3 -S31508002D40B3F57A7F4DD340F26903C2F200031A78CD -S31508002D5002F10102D2B21A703B2A29D940F269035C -S31508002D60C2F200034FF000021A7040F26A03C2F280 -S31508002D7000031A7802F10102D2B21A703B2A17D957 -S31508002D8040F26A03C2F200034FF000021A7040F2E2 -S31508002D907003C2F200031A7802F10102D2B21A7065 -S31508002DA0172A81BF40F27003C2F2000300221A708C -S31508002DB040F27001C2F2000140F26A02C2F2000259 -S31508002DC040F26903C2F2000343F23400C0F6000081 -S31508002DD0097812781B7842F29D67C0F60007B84753 -S31508002DE02C6042F6E113C0F600039847A3E700BF3C -S31508002DF04EF21003CEF200034FF000021A6070473D -S31508002E0040F27403C2F200031860704708B54EF228 -S31508002E101003CEF2000341F63F12C0F201025A60D7 -S31508002E204FF46D42CEF200024FF0F00182F8231003 -S31508002E304FF0000098604FF007021A6042F60163EF -S31508002E40C0F60003984708BD40F27403C2F20003B7 -S31508002E501868704740F27403C2F200031A6802F158 -S31508002E6001021A60704700BFF0B587B007464FF4F5 -S31508002E7000304FF0010142F22933C0F600039847AB -S31508002E804FF005004FF0010142F20533C0F600038A -S31508002E9098474FF018038DF817304FF004031E4675 -S31508002EA0ADF814304FF003038DF816304FF4006573 -S31508002EB0C4F20105284605A942F25514C0F60004D5 -S31508002EC0A0478DF817604FF00803ADF81430284670 -S31508002ED005A9A04701974FF00003ADF80830ADF8F3 -S31508002EE00A30ADF80C30ADF810304FF00C03ADF8E1 -S31508002EF00E304FF48844C4F20004204601A942F279 -S31508002F004D33C0F60003984720464FF0010142F2C0 -S31508002F104543C0F60003984707B0F0BDF8B5074625 -S31508002F204FF48845C4F200054FF0800642F27D440E -S31508002F30C0F6000428463146A0470028FAD04FF4C8 -S31508002F408840C4F20000F9B242F26543C0F60003B5 -S31508002F5098473846F8BD00BF70B560B94FF4884049 -S31508002F60C4F200004FF0200142F27D43C0F6000390 -S31508002F70984778B918E04FF48845C4F200054FF031 -S31508002F80200642F27D44C0F6000428463146A04792 -S31508002F900028FAD04FF48840C4F2000042F2714388 -S31508002FA0C0F60003984770BD4FF0FF3070BD00BFF4 -S31508002FB0FEE700BF30313233343536373839000052 -S31508002FC03031323334353637000000003031323391 -S31508002FD03435363738396162636465660000000047 -S31508002FE03031323334353637383941424344454631 -S31508002FF00000000010000000E02F00085800000044 -S315080030000400000010000000CC2F00087800000023 -S315080030100400000008000000C02F0008000000009F -S31508003020030000000A000000B42F0008000000009A -S315080030300300000050726F6772616D2075707469C5 -S315080030406D653A20253032643A253032643A2530A7 -S3150800305032640D000020202020202020202028284F -S31508003060282828202020202020202020202020203A -S31508003070202020202088101010101010101010107A -S3150800308010101010100404040404040404040410AA -S315080030901010101010104141414141410101010138 -S315080030A00101010101010101010101010101010102 -S315080030B0101010101010424242424242020202020E -S315080030C002020202020202020202020202020202D2 -S315080030D01010101020000000000000000000000082 -S315080030E000000000000000000000000000000000D2 -S315080030F000000000000000000000000000000000C2 -S3150800310000000000000000000000000000000000B1 -S3150800311000000000000000000000000000000000A1 -S315080031200000000000000000000000000000000091 -S315080031300000000000000000000000000000000081 -S315080031400000000000000000000000000000000071 -S30D08003150000000000000000069 -S315080031580204060800000000010203040102030431 -S30D080031680607080954300008A7 -S70508002000D2 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/boot.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/boot.c deleted file mode 100644 index 0c8de75e..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/boot.c +++ /dev/null @@ -1,324 +0,0 @@ -/**************************************************************************************** -| Description: demo program bootloader interface source file -| File Name: boot.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: BootActivate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Bootloader activation function. -** -****************************************************************************************/ -static void BootActivate(void) -{ - void (*pEntryFromProgFnc)(void); - - /* stop the timer interrupt */ - TimerDeinit(); - /* set pointer to the address of function EntryFromProg in the bootloader. note that - * 1 is added to this address to enable a switch from Thumb2 to Thumb mode - */ - pEntryFromProgFnc = (void*)0x08000150 + 1; - /* call EntryFromProg to activate the bootloader. */ - pEntryFromProgFnc(); -} /*** end of BootActivate ***/ - - -#if (BOOT_COM_UART_ENABLE > 0) -/**************************************************************************************** -* U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - UartInit(BOOT_COM_UART_BAUDRATE); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - static unsigned char xcpCtoReqPacket[BOOT_COM_UART_RX_MAX_DATA+1]; - static unsigned char xcpCtoRxLength; - static unsigned char xcpCtoRxInProgress = 0; - int ch; - - /* start of cto packet received? */ - if (xcpCtoRxInProgress == 0) - { - /* store the message length when received */ - ch = UartRxChar(0); - if (ch != -1) - { - xcpCtoReqPacket[0] = (unsigned char)ch; - /* indicate that a cto packet is being received */ - xcpCtoRxInProgress = 1; - - /* reset packet data count */ - xcpCtoRxLength = 0; - } - } - else - { - /* store the next packet byte */ - ch = UartRxChar(0); - if (ch != -1) - { - xcpCtoReqPacket[xcpCtoRxLength+1] = (unsigned char)ch; - /* increment the packet data count */ - xcpCtoRxLength++; - - /* check to see if the entire packet was received */ - if (xcpCtoRxLength == xcpCtoReqPacket[0]) - { - /* done with cto packet reception */ - xcpCtoRxInProgress = 0; - - /* check if this was an XCP CONNECT command */ - if ((xcpCtoReqPacket[1] == 0xff) && (xcpCtoReqPacket[2] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_UART_ENABLE > 0 */ - - -#if (BOOT_COM_CAN_ENABLE > 0) -/**************************************************************************************** -* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E -****************************************************************************************/ - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - -/**************************************************************************************** -* Type definitions -****************************************************************************************/ -typedef struct t_can_bus_timing -{ - unsigned char tseg1; /* CAN time segment 1 */ - unsigned char tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta - * (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1. - * The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains - * possible and valid time quanta configurations with a sample point between 68..78%. - */ -static const tCanBusTiming canTiming[] = -{ /* TQ | TSEG1 | TSEG2 | SP */ - /* ------------------------- */ - { 5, 2 }, /* 8 | 5 | 2 | 75% */ - { 6, 2 }, /* 9 | 6 | 2 | 78% */ - { 6, 3 }, /* 10 | 6 | 3 | 70% */ - { 7, 3 }, /* 11 | 7 | 3 | 73% */ - { 8, 3 }, /* 12 | 8 | 3 | 75% */ - { 9, 3 }, /* 13 | 9 | 3 | 77% */ - { 9, 4 }, /* 14 | 9 | 4 | 71% */ - { 10, 4 }, /* 15 | 10 | 4 | 73% */ - { 11, 4 }, /* 16 | 11 | 4 | 75% */ - { 12, 4 }, /* 17 | 12 | 4 | 76% */ - { 12, 5 }, /* 18 | 12 | 5 | 72% */ - { 13, 5 }, /* 19 | 13 | 5 | 74% */ - { 14, 5 }, /* 20 | 14 | 5 | 75% */ - { 15, 5 }, /* 21 | 15 | 5 | 76% */ - { 15, 6 }, /* 22 | 15 | 6 | 73% */ - { 16, 6 }, /* 23 | 16 | 6 | 74% */ - { 16, 7 }, /* 24 | 16 | 7 | 71% */ - { 16, 8 } /* 25 | 16 | 8 | 68% */ -}; - - -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 will be stored. -** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise. -** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus -** timing configuration. -** -****************************************************************************************/ -static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, - unsigned char *tseg1, unsigned char *tseg2) -{ - unsigned char cnt; - - /* loop through all possible time quanta configurations to find a match */ - for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) - { - if (((BOOT_CPU_SYSTEM_SPEED_KHZ/2) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) - { - /* compute the prescaler that goes with this TQ configuration */ - *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/2)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); - - /* make sure the prescaler is valid */ - if ( (*prescaler > 0) && (*prescaler <= 1024) ) - { - /* store the bustiming configuration */ - *tseg1 = canTiming[cnt].tseg1; - *tseg2 = canTiming[cnt].tseg2; - /* found a good bus timing configuration */ - return 1; - } - } - } - /* could not find a good bus timing configuration */ - return 0; -} /*** end of CanGetSpeedConfig ***/ - - -/**************************************************************************************** -** NAME: BootComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN communication interface -** -****************************************************************************************/ -void BootComInit(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - CAN_InitTypeDef CAN_InitStructure; - CAN_FilterInitTypeDef CAN_FilterInitStructure; - unsigned short prescaler; - unsigned char tseg1, tseg2; - - /* GPIO clock enable */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); - /* Configure CAN pin: RX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Configure CAN pin: TX */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOB, &GPIO_InitStructure); - /* Remap CAN1 pins to PortB */ - GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE); - /* CAN1 Periph clock enable */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); - /* CAN register init */ - CAN_DeInit(CAN1); - CAN_StructInit(&CAN_InitStructure); - /* obtain the bittiming configuration for this baudrate */ - CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); - /* CAN controller init */ - CAN_InitStructure.CAN_TTCM = DISABLE; - CAN_InitStructure.CAN_ABOM = DISABLE; - CAN_InitStructure.CAN_AWUM = DISABLE; - CAN_InitStructure.CAN_NART = DISABLE; - CAN_InitStructure.CAN_RFLM = DISABLE; - CAN_InitStructure.CAN_TXFP = DISABLE; - CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; - /* CAN Baudrate init */ - CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; - CAN_InitStructure.CAN_BS1 = tseg1 - 1; - CAN_InitStructure.CAN_BS2 = tseg2 - 1; - CAN_InitStructure.CAN_Prescaler = prescaler; - CAN_Init(CAN1, &CAN_InitStructure); - /* CAN filter init - receive all messages */ - CAN_FilterInitStructure.CAN_FilterNumber = 0; - CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; - CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; - CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; - CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; - CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; - CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; - CAN_FilterInit(&CAN_FilterInitStructure); -} /*** end of BootComInit ***/ - - -/**************************************************************************************** -** NAME: BootComCheckActivationRequest -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the -** bootloader should be activated and, if so, activates it. -** -****************************************************************************************/ -void BootComCheckActivationRequest(void) -{ - CanRxMsg RxMessage; - - /* check if a new message was received */ - if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0) - { - /* receive the message */ - CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); - if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) - { - /* check if this was an XCP CONNECT command */ - if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) - { - /* connection request received so start the bootloader */ - BootActivate(); - } - } - } -} /*** end of BootComCheckActivationRequest ***/ -#endif /* BOOT_COM_CAN_ENABLE > 0 */ - - -/*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/boot.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/boot.h deleted file mode 100644 index 92789052..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/boot.h +++ /dev/null @@ -1,42 +0,0 @@ -/**************************************************************************************** -| Description: demo program bootloader interface header file -| File Name: boot.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ -#ifndef BOOT_H -#define BOOT_H - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -void BootComInit(void); -void BootComCheckActivationRequest(void); - - -#endif /* BOOT_H */ -/*********************************** end of boot.h *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/cstart.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/cstart.c deleted file mode 100644 index b22b30be..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/cstart.c +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************************** -| Description: Demo program C startup source file -| File Name: cstart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* External function protoypes -****************************************************************************************/ -extern int main(void); - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -/* these externals are declared by the linker */ -extern unsigned long _etext; -extern unsigned long _data; -extern unsigned long _edata; - - -/**************************************************************************************** -** NAME: reset_handler -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset interrupt service routine. Configures the stack, initializes -** RAM and jumps to function main. -** -****************************************************************************************/ -void reset_handler(void) -{ - unsigned long *pSrc, *pDest; - - /* initialize stack pointer */ - __asm(" ldr r1, =_estack\n" - " mov sp, r1"); - /* copy the data segment initializers from flash to SRAM */ - pSrc = &_etext; - for(pDest = &_data; pDest < &_edata; ) - { - *pDest++ = *pSrc++; - } - /* zero fill the bss segment. this is done with inline assembly since this will - * clear the value of pDest if it is not kept in a register. - */ - __asm(" ldr r0, =_bss\n" - " ldr r1, =_ebss\n" - " mov r2, #0\n" - " .thumb_func\n" - "zero_loop:\n" - " cmp r0, r1\n" - " it lt\n" - " strlt r2, [r0], #4\n" - " blt zero_loop"); - /* start the software application by calling its entry point */ - main(); -} /*** end of reset_handler ***/ - - -/************************************ end of cstart.c **********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/header.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/header.h deleted file mode 100644 index cc2e9522..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/header.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************************** -| Description: generic header file -| File Name: header.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ -#ifndef HEADER_H -#define HEADER_H - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "../Boot/config.h" /* bootloader configuration */ -#include "stm32f10x.h" /* STM32 register definitions */ -#include "stm32f10x_conf.h" /* STM32 peripheral drivers */ -#include "boot.h" /* bootloader interface driver */ -#include "irq.h" /* IRQ driver */ -#include "led.h" /* LED driver */ -#include "uart.h" /* UART driver */ -#include "timer.h" /* Timer driver */ - - -#endif /* HEADER_H */ -/*********************************** end of header.h ***********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/ide/readme.txt b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/ide/readme.txt deleted file mode 100644 index 9441d3f0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/ide/readme.txt +++ /dev/null @@ -1,16 +0,0 @@ -Integrated Development Environment ----------------------------------- -Eclipse IDE for C/C++ Developers (version 3.7) was used as the editor during the development of this software. It can be downloaded -from http://www.eclipse.org. - -Plugins -------- -The following plugins are required. Refer to the plugin's website for installation instructions: -- GNU ARM Eclipse Plug-in (http://sourceforge.net/projects/gnuarmeclipse/) - -The following plugins are optional in case you can to use the terminal in Eclipse. The URL's are direct links to the update site for -Eclipse's "Help->Install New Software..." menu item. -- Target Management Terminal (http://download.eclipse.org/releases/indigo) -- RXTX Ebd-Usr Runtime (http://rxtx.qbang.org/eclipse/) - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/irq.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/irq.c deleted file mode 100644 index a5cd3cd8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/irq.c +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************************** -| Description: IRQ driver source file -| File Name: irq.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* Local data definitions -****************************************************************************************/ -static unsigned char interruptNesting = 0; /* used for global interrupt en/disable */ - - -/**************************************************************************************** -** NAME: IrqInterruptEnable -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Enables the generation IRQ interrupts. Typically called once during -** software startup after completion of the initialization. -** -****************************************************************************************/ -void IrqInterruptEnable(void) -{ - __enable_irq(); -} /*** end of IrqInterruptEnable ***/ - - -/**************************************************************************************** -** NAME: HwInterruptDisable -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Disables the generation IRQ interrupts and stores information on -** whether or not the interrupts were already disabled before explicitly -** disabling them with this function. Normally used as a pair together -** with IrqInterruptRestore during a critical section. -** -****************************************************************************************/ -void IrqInterruptDisable(void) -{ - if (interruptNesting == 0) - { - __disable_irq(); - } - interruptNesting++; -} /*** end of IrqInterruptDisable ***/ - - -/**************************************************************************************** -** NAME: IrqInterruptRestore -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Restore the generation IRQ interrupts to the setting it had prior to -** calling IrqInterruptDisable. Normally used as a pair together with -** IrqInterruptDisable during a critical section. -** -****************************************************************************************/ -void IrqInterruptRestore(void) -{ - interruptNesting--; - if (interruptNesting == 0) - { - __enable_irq(); - } -} /*** end of IrqInterruptRestore ***/ - - -/*********************************** end of irq.c **************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/irq.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/irq.h deleted file mode 100644 index 9f12faf4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/irq.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************************** -| Description: IRQ driver header file -| File Name: irq.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ -#ifndef IRQ_H -#define IRQ_H - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -void IrqInterruptEnable(void); -void IrqInterruptDisable(void); -void IrqInterruptRestore(void); - - -#endif /* IRQ_H */ -/*********************************** end of irq.h **************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/led.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/led.c deleted file mode 100644 index 74c43174..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/led.c +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************************** -| Description: LED driver source file -| File Name: led.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ -#define LED_TOGGLE_MS (500) /* toggle interval time in milliseconds */ - - -/**************************************************************************************** -** NAME: LedInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the LED. -** -****************************************************************************************/ -void LedInit(void) -{ - GPIO_InitTypeDef gpio_init; - - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); - gpio_init.GPIO_Pin = GPIO_Pin_12; - gpio_init.GPIO_Speed = GPIO_Speed_50MHz; - gpio_init.GPIO_Mode = GPIO_Mode_Out_PP; - GPIO_Init(GPIOC, &gpio_init); -} /*** end of LedInit ***/ - - -/**************************************************************************************** -** NAME: LedToggle -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Toggles the LED at a fixed time interval. -** -****************************************************************************************/ -void LedToggle(void) -{ - static unsigned char led_toggle_state = 0; - static unsigned long timer_counter_last = 0; - unsigned long timer_counter_now; - - /* check if toggle interval time passed */ - timer_counter_now = TimerGet(); - if ( (timer_counter_now - timer_counter_last) < LED_TOGGLE_MS) - { - /* not yet time to toggle */ - return; - } - - /* determine toggle action */ - if (led_toggle_state == 0) - { - led_toggle_state = 1; - /* turn the LED on */ - GPIO_ResetBits(GPIOC, GPIO_Pin_12); - } - else - { - led_toggle_state = 0; - /* turn the LED off */ - GPIO_SetBits(GPIOC, GPIO_Pin_12); - } - - /* store toggle time to determine next toggle interval */ - timer_counter_last = timer_counter_now; -} /*** end of LedToggle ***/ - - -/*********************************** end of led.c **************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/led.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/led.h deleted file mode 100644 index f69b6a44..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/led.h +++ /dev/null @@ -1,42 +0,0 @@ -/**************************************************************************************** -| Description: LED driver header file -| File Name: led.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ -#ifndef LED_H -#define LED_H - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -void LedInit(void); -void LedToggle(void); - - -#endif /* LED_H */ -/*********************************** end of led.h **************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdio_mini.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdio_mini.c deleted file mode 100644 index 97ba4565..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdio_mini.c +++ /dev/null @@ -1,668 +0,0 @@ -/**************************************************************************************** -| Description: Standard I/O integer optimized library source file -| The following functions are implemented: -| -| - int printf (const char *format, ...) -| - int scanf(const char *fmt, ...) -| File Name: stdio_mini.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include -#include -#include -#include -#include "../uart.h" - - -/**************************************************************************************** -* Structure definitions -****************************************************************************************/ -struct printf_conversion /* A printf() conversion. */ -{ - /* Flags. */ - enum - { - MINUS = 1 << 0, /* '-' */ - PLUS = 1 << 1, /* '+' */ - SPACE = 1 << 2, /* ' ' */ - POUND = 1 << 3, /* '#' */ - ZERO = 1 << 4, /* '0' */ - GROUP = 1 << 5 /* '\'' */ - } - flags; - - /* Minimum field width. */ - int width; - - /* Numeric precision. -1 indicates no precision was specified. */ - int precision; - - /* Type of argument to format. */ - enum - { - CHAR = 1, /* hh */ - SHORT = 2, /* h */ - INT = 3, /* (none) */ - LONG = 5, /* l */ - } - type; -}; - - -struct integer_base -{ - int base; /* Base. */ - const char *digits; /* Collection of digits. */ - int x; /* `x' character to use, for base 16 only. */ - int group; /* Number of digits to group with ' flag. */ -}; - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void output_dup(char ch, size_t cnt); -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c); -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args); -static int libvprintf(const char *format, va_list args); - - -/**************************************************************************************** -* Local constant declarations -****************************************************************************************/ -static const struct integer_base base_d = {10, "0123456789", 0, 3}; -static const struct integer_base base_o = {8, "01234567", 0, 3}; -static const struct integer_base base_x = {16, "0123456789abcdef", 'x', 4}; -static const struct integer_base base_X = {16, "0123456789ABCDEF", 'X', 4}; - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static volatile unsigned int txcharcnt; - - -/**************************************************************************************** -** NAME: puts -** PARAMETER: character to write -** RETURN VALUE: the character written. -** DESCRIPTION: writes the string s and a newline to the terminal and returns a non- -** negative value. -** -****************************************************************************************/ -int puts(const char *s) -{ - while(*s != '\0') - { - UartTxChar(*s); - s++; - } - UartTxChar('\n'); - UartTxChar('\r'); - - return 0; -} /*** end of puts ***/ - - -/**************************************************************************************** -** NAME: printf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of printed characters. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,i,o,u,x,X format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int printf (const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = libvprintf (format, args); - va_end (args); - - return retval; -} - - -/**************************************************************************************** -** NAME: scanf -** PARAMETER: format string and specifiers -** RETURN VALUE: number of conversions. -** DESCRIPTION: This is a minimal implementation of the STDIO ANSI-C library function -** with support for the d,u,o,x format string specifiers. If this -** library is linked before the standard ANSI-C library iwth STDIO, the -** standard library functions are automatically overridden. -** -****************************************************************************************/ -int scanf(const char *fmt, ...) -{ - char *s0, c; - char buf[64]; - char *s = &buf[0]; - va_list ap; - long L, *Lp; - int i, *ip, rc = 0; - - do - { - c = UartRxChar(1); /* read byte */ - UartTxChar(c); - *s++ = c; /* store in buf */ - } - while((c != '\r') && (c != '\n')); /* read bytes until enter is pressed */ - *s = '\0'; /* add string termination */ - s = &buf[0]; /* set pointer to start of buf for further processing */ - - va_start(ap, fmt); - - for( ; ; ) - { - for(;;) - { - switch(i = *(unsigned char *)fmt++) - { - case 0: - goto done; - case '%': - break; - default: - if (i <= ' ') - { - while(*s <= ' ') - if (!*s++) - goto done; - } - else if (*s++ != i) - goto done; - continue; - } - break; - } - - switch(*fmt++) - { - case 'l': - if (*fmt == 'd') - { - fmt++; - Lp = va_arg(ap, long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'u') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'x') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else if (*fmt == 'o') - { - fmt++; - Lp = (long*)va_arg(ap, unsigned long*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *Lp = L; - continue; - } - } - else - goto error; - goto done; - case 'd': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'u': - ip = (int*)va_arg(ap, unsigned int*); - L = strtoul(s0 = s, &s, 10); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'x': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 16); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - case 'o': - ip = va_arg(ap, int*); - L = strtol(s0 = s, &s, 8); - if (s > s0) - { - rc++; - *ip = (int)L; - continue; - } - goto done; - default: - goto error; /* wrong format */ - } - } - - done: - va_end(ap); - return rc; - - error: - va_end(ap); - return 0; - -} /*** end of scanf ***/ - - -/**************************************************************************************** -** NAME: output_dup -** PARAMETER: character to output and how many times. -** RETURN VALUE: none -** DESCRIPTION: writes ch to output cnt times. -** -****************************************************************************************/ -static void output_dup(char ch, size_t cnt) -{ - while (cnt-- > 0) - { - UartTxChar(ch); - txcharcnt++; - } -} /*** end of output_dup ***/ - - -/**************************************************************************************** -** NAME: format_integer -** PARAMETER: all necessary conversion information. -** RETURN VALUE: none -** DESCRIPTION: Formats an integer to a string and transmits each character through -** the terminal communication interface. -** -****************************************************************************************/ -static void format_integer(unsigned long value, char is_signed, char negative, - const struct integer_base *b, - const struct printf_conversion *c) -{ - char buf[64], *cp; /* Buffer and current position. */ - int x; /* `x' character to use or 0 if none. */ - int sign; /* Sign character or 0 if none. */ - int precision; /* Rendered precision. */ - int pad_cnt; /* # of pad characters to fill field width. */ - int digit_cnt; /* # of digits output so far. */ - - /* Determine sign character, if any. - An unsigned conversion will never have a sign character, - even if one of the flags requests one. */ - sign = 0; - if (is_signed) - { - if (c->flags & PLUS) - sign = negative ? '-' : '+'; - else if (c->flags & SPACE) - sign = negative ? '-' : ' '; - else if (negative) - sign = '-'; - } - - /* Determine whether to include `0x' or `0X'. - It will only be included with a hexadecimal conversion of a - nonzero value with the # flag. */ - x = (c->flags & POUND) && value ? b->x : 0; - - /* Accumulate digits into buffer. - This algorithm produces digits in reverse order, so later we - will output the buffer's content in reverse. */ - cp = buf; - digit_cnt = 0; - while (value > 0) - { - if ((c->flags & GROUP) && digit_cnt > 0 && digit_cnt % b->group == 0) - *cp++ = ','; - *cp++ = b->digits[value % b->base]; - value /= b->base; - digit_cnt++; - } - - /* Append enough zeros to match precision. - If requested precision is 0, then a value of zero is - rendered as a null string, otherwise as "0". - If the # flag is used with base 8, the result must always - begin with a zero. */ - precision = c->precision < 0 ? 1 : c->precision; - while (cp - buf < precision && cp < buf + sizeof buf - 1) - *cp++ = '0'; - if ((c->flags & POUND) && b->base == 8 && (cp == buf || cp[-1] != '0')) - *cp++ = '0'; - - /* Calculate number of pad characters to fill field width. */ - pad_cnt = c->width - (cp - buf) - (x ? 2 : 0) - (sign != 0); - if (pad_cnt < 0) - pad_cnt = 0; - - /* Do output. */ - if ((c->flags & (MINUS | ZERO)) == 0) - output_dup (' ', pad_cnt); - if (sign) - { - UartTxChar(sign); - txcharcnt++; - } - if (x) - { - UartTxChar ('0'); - txcharcnt++; - UartTxChar(x); - txcharcnt++; - } - if (c->flags & ZERO) - output_dup ('0', pad_cnt); - while (cp > buf) - { - UartTxChar (*--cp); - txcharcnt++; - } - if (c->flags & MINUS) - output_dup (' ', pad_cnt); -} /*** end of format_integer ***/ - - -/**************************************************************************************** -** NAME: parse_conversion -** PARAMETER: all necessary parsing information and the format string. -** RETURN VALUE: pointer to the unchanged format string. -** DESCRIPTION: Parses the actual printf format string for all arguments. -** -****************************************************************************************/ -static const char *parse_conversion(const char *format, struct printf_conversion *c, - va_list *args) -{ - /* Parse flag characters. */ - c->flags = 0; - for (;;) - { - switch (*format++) - { - case '-': - c->flags |= MINUS; - break; - case '+': - c->flags |= PLUS; - break; - case ' ': - c->flags |= SPACE; - break; - case '#': - c->flags |= POUND; - break; - case '0': - c->flags |= ZERO; - break; - case '\'': - c->flags |= GROUP; - break; - default: - format--; - goto not_a_flag; - } - } - not_a_flag: - if (c->flags & MINUS) - c->flags &= ~ZERO; - if (c->flags & PLUS) - c->flags &= ~SPACE; - - /* Parse field width. */ - c->width = 0; - if (*format == '*') - { - format++; - c->width = va_arg (*args, int); - } - else - { - for (; isdigit ((int)*format); format++) - c->width = c->width * 10 + *format - '0'; - } - if (c->width < 0) - { - c->width = -c->width; - c->flags |= MINUS; - } - - /* Parse precision. */ - c->precision = -1; - if (*format == '.') - { - format++; - if (*format == '*') - { - format++; - c->precision = va_arg (*args, int); - } - else - { - c->precision = 0; - for (; isdigit ((int)*format); format++) - c->precision = c->precision * 10 + *format - '0'; - } - if (c->precision < 0) - c->precision = -1; - } - if (c->precision >= 0) - c->flags &= ~ZERO; - - /* Parse type. */ - c->type = INT; - switch (*format++) - { - case 'h': - if (*format == 'h') - { - format++; - c->type = CHAR; - } - else - c->type = SHORT; - break; - - case 'l': - c->type = LONG; - break; - - default: - format--; - break; - } - - return format; -} /*** end of parse_conversion ***/ - - -/**************************************************************************************** -** NAME: libvprintf -** PARAMETER: format string and argument list. -** RETURN VALUE: number of printed characters. -** DESCRIPTION: low level virtual library printf function. -** -****************************************************************************************/ -static int libvprintf(const char *format, va_list args) -{ - for (; *format != '\0'; format++) - { - struct printf_conversion c; - - /* Literally copy non-conversions to output. */ - if (*format != '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - format++; - - /* %% => %. */ - if (*format == '%') - { - UartTxChar (*format); - txcharcnt++; - continue; - } - - /* Parse conversion specifiers. */ - format = parse_conversion (format, &c, &args); - - /* Do conversion. */ - switch (*format) - { - case 'd': - case 'i': - { - /* Signed integer conversions. */ - signed long value; - - switch (c.type) - { - case CHAR: - value = (signed char) va_arg (args, int); - break; - case SHORT: - value = (short) va_arg (args, int); - break; - case INT: - value = va_arg (args, int); - break; - case LONG: - value = va_arg (args, long); - break; - default: - value = 0; - break; - } - - format_integer (value < 0 ? -value : value, - 1, value < 0, &base_d, &c); - } - break; - - case 'o': - case 'u': - case 'x': - case 'X': - { - /* Unsigned integer conversions. */ - unsigned long value; - const struct integer_base *b; - - switch (c.type) - { - case CHAR: - value = (unsigned char) va_arg (args, unsigned); - break; - case SHORT: - value = (unsigned short) va_arg (args, unsigned); - break; - case INT: - value = va_arg (args, unsigned); - break; - case LONG: - value = va_arg (args, unsigned long); - break; - default: - value = 0; - break; - } - - switch (*format) - { - case 'o': b = &base_o; break; - case 'u': b = &base_d; break; - case 'x': b = &base_x; break; - case 'X': b = &base_X; break; - default: b = &base_d; break; - } - - format_integer (value, 0, 0, b, &c); - } - break; - - default: - break; - } - } - return txcharcnt; -} /*** end of libvprintf ***/ - - -/************************************ end of stdio.c ***********************************/ - - diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c deleted file mode 100644 index 56fddc52..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c +++ /dev/null @@ -1,784 +0,0 @@ -/**************************************************************************//** - * @file core_cm3.c - * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Source File - * @version V1.30 - * @date 30. October 2009 - * - * @note - * Copyright (C) 2009 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - -#include - -/* define compiler specific symbols */ -#if defined ( __CC_ARM ) - #define __ASM __asm /*!< asm keyword for ARM Compiler */ - #define __INLINE __inline /*!< inline keyword for ARM Compiler */ - -#elif defined ( __ICCARM__ ) - #define __ASM __asm /*!< asm keyword for IAR Compiler */ - #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ - -#elif defined ( __GNUC__ ) - #define __ASM __asm /*!< asm keyword for GNU Compiler */ - #define __INLINE inline /*!< inline keyword for GNU Compiler */ - -#elif defined ( __TASKING__ ) - #define __ASM __asm /*!< asm keyword for TASKING Compiler */ - #define __INLINE inline /*!< inline keyword for TASKING Compiler */ - -#endif - - -/* ################### Compiler specific Intrinsics ########################### */ - -#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ -/* ARM armcc specific functions */ - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -__ASM uint32_t __get_PSP(void) -{ - mrs r0, psp - bx lr -} - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -__ASM void __set_PSP(uint32_t topOfProcStack) -{ - msr psp, r0 - bx lr -} - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -__ASM uint32_t __get_MSP(void) -{ - mrs r0, msp - bx lr -} - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -__ASM void __set_MSP(uint32_t mainStackPointer) -{ - msr msp, r0 - bx lr -} - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -__ASM uint32_t __REV16(uint16_t value) -{ - rev16 r0, r0 - bx lr -} - -/** - * @brief Reverse byte order in signed short value with sign extension to integer - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in signed short value with sign extension to integer - */ -__ASM int32_t __REVSH(int16_t value) -{ - revsh r0, r0 - bx lr -} - - -#if (__ARMCC_VERSION < 400000) - -/** - * @brief Remove the exclusive lock created by ldrex - * - * Removes the exclusive lock which is created by ldrex. - */ -__ASM void __CLREX(void) -{ - clrex -} - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -__ASM uint32_t __get_BASEPRI(void) -{ - mrs r0, basepri - bx lr -} - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -__ASM void __set_BASEPRI(uint32_t basePri) -{ - msr basepri, r0 - bx lr -} - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -__ASM uint32_t __get_PRIMASK(void) -{ - mrs r0, primask - bx lr -} - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -__ASM void __set_PRIMASK(uint32_t priMask) -{ - msr primask, r0 - bx lr -} - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -__ASM uint32_t __get_FAULTMASK(void) -{ - mrs r0, faultmask - bx lr -} - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -__ASM void __set_FAULTMASK(uint32_t faultMask) -{ - msr faultmask, r0 - bx lr -} - -/** - * @brief Return the Control Register value - * - * @return Control value - * - * Return the content of the control register - */ -__ASM uint32_t __get_CONTROL(void) -{ - mrs r0, control - bx lr -} - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -__ASM void __set_CONTROL(uint32_t control) -{ - msr control, r0 - bx lr -} - -#endif /* __ARMCC_VERSION */ - - - -#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/ -/* IAR iccarm specific functions */ -#pragma diag_suppress=Pe940 - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -uint32_t __get_PSP(void) -{ - __ASM("mrs r0, psp"); - __ASM("bx lr"); -} - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -void __set_PSP(uint32_t topOfProcStack) -{ - __ASM("msr psp, r0"); - __ASM("bx lr"); -} - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -uint32_t __get_MSP(void) -{ - __ASM("mrs r0, msp"); - __ASM("bx lr"); -} - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -void __set_MSP(uint32_t topOfMainStack) -{ - __ASM("msr msp, r0"); - __ASM("bx lr"); -} - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -uint32_t __REV16(uint16_t value) -{ - __ASM("rev16 r0, r0"); - __ASM("bx lr"); -} - -/** - * @brief Reverse bit order of value - * - * @param value value to reverse - * @return reversed value - * - * Reverse bit order of value - */ -uint32_t __RBIT(uint32_t value) -{ - __ASM("rbit r0, r0"); - __ASM("bx lr"); -} - -/** - * @brief LDR Exclusive (8 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 8 bit values) - */ -uint8_t __LDREXB(uint8_t *addr) -{ - __ASM("ldrexb r0, [r0]"); - __ASM("bx lr"); -} - -/** - * @brief LDR Exclusive (16 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 16 bit values - */ -uint16_t __LDREXH(uint16_t *addr) -{ - __ASM("ldrexh r0, [r0]"); - __ASM("bx lr"); -} - -/** - * @brief LDR Exclusive (32 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 32 bit values - */ -uint32_t __LDREXW(uint32_t *addr) -{ - __ASM("ldrex r0, [r0]"); - __ASM("bx lr"); -} - -/** - * @brief STR Exclusive (8 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 8 bit values - */ -uint32_t __STREXB(uint8_t value, uint8_t *addr) -{ - __ASM("strexb r0, r0, [r1]"); - __ASM("bx lr"); -} - -/** - * @brief STR Exclusive (16 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 16 bit values - */ -uint32_t __STREXH(uint16_t value, uint16_t *addr) -{ - __ASM("strexh r0, r0, [r1]"); - __ASM("bx lr"); -} - -/** - * @brief STR Exclusive (32 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 32 bit values - */ -uint32_t __STREXW(uint32_t value, uint32_t *addr) -{ - __ASM("strex r0, r0, [r1]"); - __ASM("bx lr"); -} - -#pragma diag_default=Pe940 - - -#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ -/* GNU gcc specific functions */ - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -uint32_t __get_PSP(void) __attribute__( ( naked ) ); -uint32_t __get_PSP(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, psp\n\t" - "MOV r0, %0 \n\t" - "BX lr \n\t" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -void __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) ); -void __set_PSP(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp, %0\n\t" - "BX lr \n\t" : : "r" (topOfProcStack) ); -} - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -uint32_t __get_MSP(void) __attribute__( ( naked ) ); -uint32_t __get_MSP(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, msp\n\t" - "MOV r0, %0 \n\t" - "BX lr \n\t" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -void __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) ); -void __set_MSP(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp, %0\n\t" - "BX lr \n\t" : : "r" (topOfMainStack) ); -} - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -uint32_t __get_BASEPRI(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, basepri_max" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -void __set_BASEPRI(uint32_t value) -{ - __ASM volatile ("MSR basepri, %0" : : "r" (value) ); -} - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -uint32_t __get_PRIMASK(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, primask" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -void __set_PRIMASK(uint32_t priMask) -{ - __ASM volatile ("MSR primask, %0" : : "r" (priMask) ); -} - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -uint32_t __get_FAULTMASK(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -void __set_FAULTMASK(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) ); -} - -/** - * @brief Return the Control Register value -* -* @return Control value - * - * Return the content of the control register - */ -uint32_t __get_CONTROL(void) -{ - uint32_t result=0; - - __ASM volatile ("MRS %0, control" : "=r" (result) ); - return(result); -} - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -void __set_CONTROL(uint32_t control) -{ - __ASM volatile ("MSR control, %0" : : "r" (control) ); -} - - -/** - * @brief Reverse byte order in integer value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in integer value - */ -uint32_t __REV(uint32_t value) -{ - uint32_t result=0; - - __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -uint32_t __REV16(uint16_t value) -{ - uint32_t result=0; - - __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -/** - * @brief Reverse byte order in signed short value with sign extension to integer - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in signed short value with sign extension to integer - */ -int32_t __REVSH(int16_t value) -{ - uint32_t result=0; - - __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -/** - * @brief Reverse bit order of value - * - * @param value value to reverse - * @return reversed value - * - * Reverse bit order of value - */ -uint32_t __RBIT(uint32_t value) -{ - uint32_t result=0; - - __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -/** - * @brief LDR Exclusive (8 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 8 bit value - */ -uint8_t __LDREXB(uint8_t *addr) -{ - uint8_t result=0; - - __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) ); - return(result); -} - -/** - * @brief LDR Exclusive (16 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 16 bit values - */ -uint16_t __LDREXH(uint16_t *addr) -{ - uint16_t result=0; - - __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) ); - return(result); -} - -/** - * @brief LDR Exclusive (32 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 32 bit values - */ -uint32_t __LDREXW(uint32_t *addr) -{ - uint32_t result=0; - - __ASM volatile ("ldrex %0, [%1]" : "=r" (result) : "r" (addr) ); - return(result); -} - -/** - * @brief STR Exclusive (8 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 8 bit values - */ -uint32_t __STREXB(uint8_t value, uint8_t *addr) -{ - uint32_t result=0; - - __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); - return(result); -} - -/** - * @brief STR Exclusive (16 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 16 bit values - */ -uint32_t __STREXH(uint16_t value, uint16_t *addr) -{ - uint32_t result=0; - - __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); - return(result); -} - -/** - * @brief STR Exclusive (32 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 32 bit values - */ -uint32_t __STREXW(uint32_t value, uint32_t *addr) -{ - uint32_t result=0; - - __ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); - return(result); -} - - -#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/ -/* TASKING carm specific functions */ - -/* - * The CMSIS functions have been implemented as intrinsics in the compiler. - * Please use "carm -?i" to get an up to date list of all instrinsics, - * Including the CMSIS ones. - */ - -#endif diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.h deleted file mode 100644 index 2b6b51a7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.h +++ /dev/null @@ -1,1818 +0,0 @@ -/**************************************************************************//** - * @file core_cm3.h - * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File - * @version V1.30 - * @date 30. October 2009 - * - * @note - * Copyright (C) 2009 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - -#ifndef __CM3_CORE_H__ -#define __CM3_CORE_H__ - -/** @addtogroup CMSIS_CM3_core_LintCinfiguration CMSIS CM3 Core Lint Configuration - * - * List of Lint messages which will be suppressed and not shown: - * - Error 10: \n - * register uint32_t __regBasePri __asm("basepri"); \n - * Error 10: Expecting ';' - * . - * - Error 530: \n - * return(__regBasePri); \n - * Warning 530: Symbol '__regBasePri' (line 264) not initialized - * . - * - Error 550: \n - * __regBasePri = (basePri & 0x1ff); \n - * Warning 550: Symbol '__regBasePri' (line 271) not accessed - * . - * - Error 754: \n - * uint32_t RESERVED0[24]; \n - * Info 754: local structure member '' (line 109, file ./cm3_core.h) not referenced - * . - * - Error 750: \n - * #define __CM3_CORE_H__ \n - * Info 750: local macro '__CM3_CORE_H__' (line 43, file./cm3_core.h) not referenced - * . - * - Error 528: \n - * static __INLINE void NVIC_DisableIRQ(uint32_t IRQn) \n - * Warning 528: Symbol 'NVIC_DisableIRQ(unsigned int)' (line 419, file ./cm3_core.h) not referenced - * . - * - Error 751: \n - * } InterruptType_Type; \n - * Info 751: local typedef 'InterruptType_Type' (line 170, file ./cm3_core.h) not referenced - * . - * Note: To re-enable a Message, insert a space before 'lint' * - * - */ - -/*lint -save */ -/*lint -e10 */ -/*lint -e530 */ -/*lint -e550 */ -/*lint -e754 */ -/*lint -e750 */ -/*lint -e528 */ -/*lint -e751 */ - - -/** @addtogroup CMSIS_CM3_core_definitions CM3 Core Definitions - This file defines all structures and symbols for CMSIS core: - - CMSIS version number - - Cortex-M core registers and bitfields - - Cortex-M core peripheral base address - @{ - */ - -#ifdef __cplusplus - extern "C" { -#endif - -#define __CM3_CMSIS_VERSION_MAIN (0x01) /*!< [31:16] CMSIS HAL main version */ -#define __CM3_CMSIS_VERSION_SUB (0x30) /*!< [15:0] CMSIS HAL sub version */ -#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */ - -#define __CORTEX_M (0x03) /*!< Cortex core */ - -#include /* Include standard types */ - -#if defined (__ICCARM__) - #include /* IAR Intrinsics */ -#endif - - -#ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 4 /*!< standard definition for NVIC Priority Bits */ -#endif - - - - -/** - * IO definitions - * - * define access restrictions to peripheral registers - */ - -#ifdef __cplusplus - #define __I volatile /*!< defines 'read only' permissions */ -#else - #define __I volatile const /*!< defines 'read only' permissions */ -#endif -#define __O volatile /*!< defines 'write only' permissions */ -#define __IO volatile /*!< defines 'read / write' permissions */ - - - -/******************************************************************************* - * Register Abstraction - ******************************************************************************/ -/** @addtogroup CMSIS_CM3_core_register CMSIS CM3 Core Register - @{ -*/ - - -/** @addtogroup CMSIS_CM3_NVIC CMSIS CM3 NVIC - memory mapped structure for Nested Vectored Interrupt Controller (NVIC) - @{ - */ -typedef struct -{ - __IO uint32_t ISER[8]; /*!< Offset: 0x000 Interrupt Set Enable Register */ - uint32_t RESERVED0[24]; - __IO uint32_t ICER[8]; /*!< Offset: 0x080 Interrupt Clear Enable Register */ - uint32_t RSERVED1[24]; - __IO uint32_t ISPR[8]; /*!< Offset: 0x100 Interrupt Set Pending Register */ - uint32_t RESERVED2[24]; - __IO uint32_t ICPR[8]; /*!< Offset: 0x180 Interrupt Clear Pending Register */ - uint32_t RESERVED3[24]; - __IO uint32_t IABR[8]; /*!< Offset: 0x200 Interrupt Active bit Register */ - uint32_t RESERVED4[56]; - __IO uint8_t IP[240]; /*!< Offset: 0x300 Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644]; - __O uint32_t STIR; /*!< Offset: 0xE00 Software Trigger Interrupt Register */ -} NVIC_Type; -/*@}*/ /* end of group CMSIS_CM3_NVIC */ - - -/** @addtogroup CMSIS_CM3_SCB CMSIS CM3 SCB - memory mapped structure for System Control Block (SCB) - @{ - */ -typedef struct -{ - __I uint32_t CPUID; /*!< Offset: 0x00 CPU ID Base Register */ - __IO uint32_t ICSR; /*!< Offset: 0x04 Interrupt Control State Register */ - __IO uint32_t VTOR; /*!< Offset: 0x08 Vector Table Offset Register */ - __IO uint32_t AIRCR; /*!< Offset: 0x0C Application Interrupt / Reset Control Register */ - __IO uint32_t SCR; /*!< Offset: 0x10 System Control Register */ - __IO uint32_t CCR; /*!< Offset: 0x14 Configuration Control Register */ - __IO uint8_t SHP[12]; /*!< Offset: 0x18 System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IO uint32_t SHCSR; /*!< Offset: 0x24 System Handler Control and State Register */ - __IO uint32_t CFSR; /*!< Offset: 0x28 Configurable Fault Status Register */ - __IO uint32_t HFSR; /*!< Offset: 0x2C Hard Fault Status Register */ - __IO uint32_t DFSR; /*!< Offset: 0x30 Debug Fault Status Register */ - __IO uint32_t MMFAR; /*!< Offset: 0x34 Mem Manage Address Register */ - __IO uint32_t BFAR; /*!< Offset: 0x38 Bus Fault Address Register */ - __IO uint32_t AFSR; /*!< Offset: 0x3C Auxiliary Fault Status Register */ - __I uint32_t PFR[2]; /*!< Offset: 0x40 Processor Feature Register */ - __I uint32_t DFR; /*!< Offset: 0x48 Debug Feature Register */ - __I uint32_t ADR; /*!< Offset: 0x4C Auxiliary Feature Register */ - __I uint32_t MMFR[4]; /*!< Offset: 0x50 Memory Model Feature Register */ - __I uint32_t ISAR[5]; /*!< Offset: 0x60 ISA Feature Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFul << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFul << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFul << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0 /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFul << SCB_CPUID_REVISION_Pos) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31 /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1ul << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1ul << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1ul << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1ul << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1ul << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1ul << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1ul << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFul << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1ul << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFul << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_VTOR_TBLBASE_Pos 29 /*!< SCB VTOR: TBLBASE Position */ -#define SCB_VTOR_TBLBASE_Msk (0x1FFul << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ - -#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFul << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16 /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFul << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFul << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1ul << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7ul << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1ul << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1ul << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0 /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1ul << SCB_AIRCR_VECTRESET_Pos) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4 /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1ul << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1ul << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1ul << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9 /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1ul << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1ul << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4 /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1ul << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1ul << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1 /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1ul << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1ul << SCB_CCR_NONBASETHRDENA_Pos) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18 /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1ul << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1ul << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1ul << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1ul << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1ul << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1ul << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1ul << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1ul << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1ul << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1ul << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1ul << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1ul << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1ul << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1ul << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Registers Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFul << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8 /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFul << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0 /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFul << SCB_CFSR_MEMFAULTSR_Pos) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* SCB Hard Fault Status Registers Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1ul << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1ul << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1 /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1ul << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4 /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1ul << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1ul << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1ul << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1ul << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1ul << SCB_DFSR_HALTED_Pos) /*!< SCB DFSR: HALTED Mask */ -/*@}*/ /* end of group CMSIS_CM3_SCB */ - - -/** @addtogroup CMSIS_CM3_SysTick CMSIS CM3 SysTick - memory mapped structure for SysTick - @{ - */ -typedef struct -{ - __IO uint32_t CTRL; /*!< Offset: 0x00 SysTick Control and Status Register */ - __IO uint32_t LOAD; /*!< Offset: 0x04 SysTick Reload Value Register */ - __IO uint32_t VAL; /*!< Offset: 0x08 SysTick Current Value Register */ - __I uint32_t CALIB; /*!< Offset: 0x0C SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1ul << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1ul << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1ul << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0 /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1ul << SysTick_CTRL_ENABLE_Pos) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0 /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0 /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31 /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1ul << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1ul << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */ -/*@}*/ /* end of group CMSIS_CM3_SysTick */ - - -/** @addtogroup CMSIS_CM3_ITM CMSIS CM3 ITM - memory mapped structure for Instrumentation Trace Macrocell (ITM) - @{ - */ -typedef struct -{ - __O union - { - __O uint8_t u8; /*!< Offset: ITM Stimulus Port 8-bit */ - __O uint16_t u16; /*!< Offset: ITM Stimulus Port 16-bit */ - __O uint32_t u32; /*!< Offset: ITM Stimulus Port 32-bit */ - } PORT [32]; /*!< Offset: 0x00 ITM Stimulus Port Registers */ - uint32_t RESERVED0[864]; - __IO uint32_t TER; /*!< Offset: ITM Trace Enable Register */ - uint32_t RESERVED1[15]; - __IO uint32_t TPR; /*!< Offset: ITM Trace Privilege Register */ - uint32_t RESERVED2[15]; - __IO uint32_t TCR; /*!< Offset: ITM Trace Control Register */ - uint32_t RESERVED3[29]; - __IO uint32_t IWR; /*!< Offset: ITM Integration Write Register */ - __IO uint32_t IRR; /*!< Offset: ITM Integration Read Register */ - __IO uint32_t IMCR; /*!< Offset: ITM Integration Mode Control Register */ - uint32_t RESERVED4[43]; - __IO uint32_t LAR; /*!< Offset: ITM Lock Access Register */ - __IO uint32_t LSR; /*!< Offset: ITM Lock Status Register */ - uint32_t RESERVED5[6]; - __I uint32_t PID4; /*!< Offset: ITM Peripheral Identification Register #4 */ - __I uint32_t PID5; /*!< Offset: ITM Peripheral Identification Register #5 */ - __I uint32_t PID6; /*!< Offset: ITM Peripheral Identification Register #6 */ - __I uint32_t PID7; /*!< Offset: ITM Peripheral Identification Register #7 */ - __I uint32_t PID0; /*!< Offset: ITM Peripheral Identification Register #0 */ - __I uint32_t PID1; /*!< Offset: ITM Peripheral Identification Register #1 */ - __I uint32_t PID2; /*!< Offset: ITM Peripheral Identification Register #2 */ - __I uint32_t PID3; /*!< Offset: ITM Peripheral Identification Register #3 */ - __I uint32_t CID0; /*!< Offset: ITM Component Identification Register #0 */ - __I uint32_t CID1; /*!< Offset: ITM Component Identification Register #1 */ - __I uint32_t CID2; /*!< Offset: ITM Component Identification Register #2 */ - __I uint32_t CID3; /*!< Offset: ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0 /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFul << ITM_TPR_PRIVMASK_Pos) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23 /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1ul << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_ATBID_Pos 16 /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_ATBID_Msk (0x7Ful << ITM_TCR_ATBID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_TSPrescale_Pos 8 /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3ul << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1ul << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1ul << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1ul << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1ul << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0 /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1ul << ITM_TCR_ITMENA_Pos) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Integration Write Register Definitions */ -#define ITM_IWR_ATVALIDM_Pos 0 /*!< ITM IWR: ATVALIDM Position */ -#define ITM_IWR_ATVALIDM_Msk (1ul << ITM_IWR_ATVALIDM_Pos) /*!< ITM IWR: ATVALIDM Mask */ - -/* ITM Integration Read Register Definitions */ -#define ITM_IRR_ATREADYM_Pos 0 /*!< ITM IRR: ATREADYM Position */ -#define ITM_IRR_ATREADYM_Msk (1ul << ITM_IRR_ATREADYM_Pos) /*!< ITM IRR: ATREADYM Mask */ - -/* ITM Integration Mode Control Register Definitions */ -#define ITM_IMCR_INTEGRATION_Pos 0 /*!< ITM IMCR: INTEGRATION Position */ -#define ITM_IMCR_INTEGRATION_Msk (1ul << ITM_IMCR_INTEGRATION_Pos) /*!< ITM IMCR: INTEGRATION Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2 /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1ul << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1ul << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0 /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1ul << ITM_LSR_Present_Pos) /*!< ITM LSR: Present Mask */ -/*@}*/ /* end of group CMSIS_CM3_ITM */ - - -/** @addtogroup CMSIS_CM3_InterruptType CMSIS CM3 Interrupt Type - memory mapped structure for Interrupt Type - @{ - */ -typedef struct -{ - uint32_t RESERVED0; - __I uint32_t ICTR; /*!< Offset: 0x04 Interrupt Control Type Register */ -#if ((defined __CM3_REV) && (__CM3_REV >= 0x200)) - __IO uint32_t ACTLR; /*!< Offset: 0x08 Auxiliary Control Register */ -#else - uint32_t RESERVED1; -#endif -} InterruptType_Type; - -/* Interrupt Controller Type Register Definitions */ -#define InterruptType_ICTR_INTLINESNUM_Pos 0 /*!< InterruptType ICTR: INTLINESNUM Position */ -#define InterruptType_ICTR_INTLINESNUM_Msk (0x1Ful << InterruptType_ICTR_INTLINESNUM_Pos) /*!< InterruptType ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#define InterruptType_ACTLR_DISFOLD_Pos 2 /*!< InterruptType ACTLR: DISFOLD Position */ -#define InterruptType_ACTLR_DISFOLD_Msk (1ul << InterruptType_ACTLR_DISFOLD_Pos) /*!< InterruptType ACTLR: DISFOLD Mask */ - -#define InterruptType_ACTLR_DISDEFWBUF_Pos 1 /*!< InterruptType ACTLR: DISDEFWBUF Position */ -#define InterruptType_ACTLR_DISDEFWBUF_Msk (1ul << InterruptType_ACTLR_DISDEFWBUF_Pos) /*!< InterruptType ACTLR: DISDEFWBUF Mask */ - -#define InterruptType_ACTLR_DISMCYCINT_Pos 0 /*!< InterruptType ACTLR: DISMCYCINT Position */ -#define InterruptType_ACTLR_DISMCYCINT_Msk (1ul << InterruptType_ACTLR_DISMCYCINT_Pos) /*!< InterruptType ACTLR: DISMCYCINT Mask */ -/*@}*/ /* end of group CMSIS_CM3_InterruptType */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1) -/** @addtogroup CMSIS_CM3_MPU CMSIS CM3 MPU - memory mapped structure for Memory Protection Unit (MPU) - @{ - */ -typedef struct -{ - __I uint32_t TYPE; /*!< Offset: 0x00 MPU Type Register */ - __IO uint32_t CTRL; /*!< Offset: 0x04 MPU Control Register */ - __IO uint32_t RNR; /*!< Offset: 0x08 MPU Region RNRber Register */ - __IO uint32_t RBAR; /*!< Offset: 0x0C MPU Region Base Address Register */ - __IO uint32_t RASR; /*!< Offset: 0x10 MPU Region Attribute and Size Register */ - __IO uint32_t RBAR_A1; /*!< Offset: 0x14 MPU Alias 1 Region Base Address Register */ - __IO uint32_t RASR_A1; /*!< Offset: 0x18 MPU Alias 1 Region Attribute and Size Register */ - __IO uint32_t RBAR_A2; /*!< Offset: 0x1C MPU Alias 2 Region Base Address Register */ - __IO uint32_t RASR_A2; /*!< Offset: 0x20 MPU Alias 2 Region Attribute and Size Register */ - __IO uint32_t RBAR_A3; /*!< Offset: 0x24 MPU Alias 3 Region Base Address Register */ - __IO uint32_t RASR_A3; /*!< Offset: 0x28 MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -/* MPU Type Register */ -#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFul << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFul << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1ul << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register */ -#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1ul << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1ul << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1ul << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register */ -#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFul << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register */ -#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFul << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1ul << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFul << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register */ -#define MPU_RASR_XN_Pos 28 /*!< MPU RASR: XN Position */ -#define MPU_RASR_XN_Msk (1ul << MPU_RASR_XN_Pos) /*!< MPU RASR: XN Mask */ - -#define MPU_RASR_AP_Pos 24 /*!< MPU RASR: AP Position */ -#define MPU_RASR_AP_Msk (7ul << MPU_RASR_AP_Pos) /*!< MPU RASR: AP Mask */ - -#define MPU_RASR_TEX_Pos 19 /*!< MPU RASR: TEX Position */ -#define MPU_RASR_TEX_Msk (7ul << MPU_RASR_TEX_Pos) /*!< MPU RASR: TEX Mask */ - -#define MPU_RASR_S_Pos 18 /*!< MPU RASR: Shareable bit Position */ -#define MPU_RASR_S_Msk (1ul << MPU_RASR_S_Pos) /*!< MPU RASR: Shareable bit Mask */ - -#define MPU_RASR_C_Pos 17 /*!< MPU RASR: Cacheable bit Position */ -#define MPU_RASR_C_Msk (1ul << MPU_RASR_C_Pos) /*!< MPU RASR: Cacheable bit Mask */ - -#define MPU_RASR_B_Pos 16 /*!< MPU RASR: Bufferable bit Position */ -#define MPU_RASR_B_Msk (1ul << MPU_RASR_B_Pos) /*!< MPU RASR: Bufferable bit Mask */ - -#define MPU_RASR_SRD_Pos 8 /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFul << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1 /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1Ful << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENA_Pos 0 /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENA_Msk (0x1Ful << MPU_RASR_ENA_Pos) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@}*/ /* end of group CMSIS_CM3_MPU */ -#endif - - -/** @addtogroup CMSIS_CM3_CoreDebug CMSIS CM3 Core Debug - memory mapped structure for Core Debug Register - @{ - */ -typedef struct -{ - __IO uint32_t DHCSR; /*!< Offset: 0x00 Debug Halting Control and Status Register */ - __O uint32_t DCRSR; /*!< Offset: 0x04 Debug Core Register Selector Register */ - __IO uint32_t DCRDR; /*!< Offset: 0x08 Debug Core Register Data Register */ - __IO uint32_t DEMCR; /*!< Offset: 0x0C Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFul << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25 /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1ul << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24 /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1ul << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19 /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1ul << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18 /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1ul << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17 /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1ul << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16 /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1ul << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5 /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1ul << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3 /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1ul << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2 /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1ul << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1 /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1ul << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0 /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1ul << CoreDebug_DHCSR_C_DEBUGEN_Pos) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register */ -#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1ul << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1Ful << CoreDebug_DCRSR_REGSEL_Pos) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register */ -#define CoreDebug_DEMCR_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1ul << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1ul << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18 /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1ul << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17 /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1ul << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16 /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1ul << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10 /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1ul << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9 /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1ul << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8 /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1ul << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7 /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1ul << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6 /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1ul << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5 /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1ul << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4 /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1ul << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0 /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1ul << CoreDebug_DEMCR_VC_CORERESET_Pos) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ -/*@}*/ /* end of group CMSIS_CM3_CoreDebug */ - - -/* Memory mapping of Cortex-M3 Hardware */ -#define SCS_BASE (0xE000E000) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000) /*!< ITM Base Address */ -#define CoreDebug_BASE (0xE000EDF0) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00) /*!< System Control Block Base Address */ - -#define InterruptType ((InterruptType_Type *) SCS_BASE) /*!< Interrupt Type Register */ -#define SCB ((SCB_Type *) SCB_BASE) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE) /*!< ITM configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1) - #define MPU_BASE (SCS_BASE + 0x0D90) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type*) MPU_BASE) /*!< Memory Protection Unit */ -#endif - -/*@}*/ /* end of group CMSIS_CM3_core_register */ - - -/******************************************************************************* - * Hardware Abstraction Layer - ******************************************************************************/ - -#if defined ( __CC_ARM ) - #define __ASM __asm /*!< asm keyword for ARM Compiler */ - #define __INLINE __inline /*!< inline keyword for ARM Compiler */ - -#elif defined ( __ICCARM__ ) - #define __ASM __asm /*!< asm keyword for IAR Compiler */ - #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ - -#elif defined ( __GNUC__ ) - #define __ASM __asm /*!< asm keyword for GNU Compiler */ - #define __INLINE inline /*!< inline keyword for GNU Compiler */ - -#elif defined ( __TASKING__ ) - #define __ASM __asm /*!< asm keyword for TASKING Compiler */ - #define __INLINE inline /*!< inline keyword for TASKING Compiler */ - -#endif - - -/* ################### Compiler specific Intrinsics ########################### */ - -#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ -/* ARM armcc specific functions */ - -#define __enable_fault_irq __enable_fiq -#define __disable_fault_irq __disable_fiq - -#define __NOP __nop -#define __WFI __wfi -#define __WFE __wfe -#define __SEV __sev -#define __ISB() __isb(0) -#define __DSB() __dsb(0) -#define __DMB() __dmb(0) -#define __REV __rev -#define __RBIT __rbit -#define __LDREXB(ptr) ((unsigned char ) __ldrex(ptr)) -#define __LDREXH(ptr) ((unsigned short) __ldrex(ptr)) -#define __LDREXW(ptr) ((unsigned int ) __ldrex(ptr)) -#define __STREXB(value, ptr) __strex(value, ptr) -#define __STREXH(value, ptr) __strex(value, ptr) -#define __STREXW(value, ptr) __strex(value, ptr) - - -/* intrinsic unsigned long long __ldrexd(volatile void *ptr) */ -/* intrinsic int __strexd(unsigned long long val, volatile void *ptr) */ -/* intrinsic void __enable_irq(); */ -/* intrinsic void __disable_irq(); */ - - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -extern uint32_t __get_PSP(void); - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -extern void __set_PSP(uint32_t topOfProcStack); - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -extern uint32_t __get_MSP(void); - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -extern void __set_MSP(uint32_t topOfMainStack); - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -extern uint32_t __REV16(uint16_t value); - -/** - * @brief Reverse byte order in signed short value with sign extension to integer - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in signed short value with sign extension to integer - */ -extern int32_t __REVSH(int16_t value); - - -#if (__ARMCC_VERSION < 400000) - -/** - * @brief Remove the exclusive lock created by ldrex - * - * Removes the exclusive lock which is created by ldrex. - */ -extern void __CLREX(void); - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -extern uint32_t __get_BASEPRI(void); - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -extern void __set_BASEPRI(uint32_t basePri); - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -extern uint32_t __get_PRIMASK(void); - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -extern void __set_PRIMASK(uint32_t priMask); - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -extern uint32_t __get_FAULTMASK(void); - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -extern void __set_FAULTMASK(uint32_t faultMask); - -/** - * @brief Return the Control Register value - * - * @return Control value - * - * Return the content of the control register - */ -extern uint32_t __get_CONTROL(void); - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -extern void __set_CONTROL(uint32_t control); - -#else /* (__ARMCC_VERSION >= 400000) */ - -/** - * @brief Remove the exclusive lock created by ldrex - * - * Removes the exclusive lock which is created by ldrex. - */ -#define __CLREX __clrex - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -static __INLINE uint32_t __get_BASEPRI(void) -{ - register uint32_t __regBasePri __ASM("basepri"); - return(__regBasePri); -} - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -static __INLINE void __set_BASEPRI(uint32_t basePri) -{ - register uint32_t __regBasePri __ASM("basepri"); - __regBasePri = (basePri & 0xff); -} - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -static __INLINE uint32_t __get_PRIMASK(void) -{ - register uint32_t __regPriMask __ASM("primask"); - return(__regPriMask); -} - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -static __INLINE void __set_PRIMASK(uint32_t priMask) -{ - register uint32_t __regPriMask __ASM("primask"); - __regPriMask = (priMask); -} - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -static __INLINE uint32_t __get_FAULTMASK(void) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - return(__regFaultMask); -} - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -static __INLINE void __set_FAULTMASK(uint32_t faultMask) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - __regFaultMask = (faultMask & 1); -} - -/** - * @brief Return the Control Register value - * - * @return Control value - * - * Return the content of the control register - */ -static __INLINE uint32_t __get_CONTROL(void) -{ - register uint32_t __regControl __ASM("control"); - return(__regControl); -} - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -static __INLINE void __set_CONTROL(uint32_t control) -{ - register uint32_t __regControl __ASM("control"); - __regControl = control; -} - -#endif /* __ARMCC_VERSION */ - - - -#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/ -/* IAR iccarm specific functions */ - -#define __enable_irq __enable_interrupt /*!< global Interrupt enable */ -#define __disable_irq __disable_interrupt /*!< global Interrupt disable */ - -static __INLINE void __enable_fault_irq() { __ASM ("cpsie f"); } -static __INLINE void __disable_fault_irq() { __ASM ("cpsid f"); } - -#define __NOP __no_operation /*!< no operation intrinsic in IAR Compiler */ -static __INLINE void __WFI() { __ASM ("wfi"); } -static __INLINE void __WFE() { __ASM ("wfe"); } -static __INLINE void __SEV() { __ASM ("sev"); } -static __INLINE void __CLREX() { __ASM ("clrex"); } - -/* intrinsic void __ISB(void) */ -/* intrinsic void __DSB(void) */ -/* intrinsic void __DMB(void) */ -/* intrinsic void __set_PRIMASK(); */ -/* intrinsic void __get_PRIMASK(); */ -/* intrinsic void __set_FAULTMASK(); */ -/* intrinsic void __get_FAULTMASK(); */ -/* intrinsic uint32_t __REV(uint32_t value); */ -/* intrinsic uint32_t __REVSH(uint32_t value); */ -/* intrinsic unsigned long __STREX(unsigned long, unsigned long); */ -/* intrinsic unsigned long __LDREX(unsigned long *); */ - - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -extern uint32_t __get_PSP(void); - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -extern void __set_PSP(uint32_t topOfProcStack); - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -extern uint32_t __get_MSP(void); - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -extern void __set_MSP(uint32_t topOfMainStack); - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -extern uint32_t __REV16(uint16_t value); - -/** - * @brief Reverse bit order of value - * - * @param value value to reverse - * @return reversed value - * - * Reverse bit order of value - */ -extern uint32_t __RBIT(uint32_t value); - -/** - * @brief LDR Exclusive (8 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 8 bit values) - */ -extern uint8_t __LDREXB(uint8_t *addr); - -/** - * @brief LDR Exclusive (16 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 16 bit values - */ -extern uint16_t __LDREXH(uint16_t *addr); - -/** - * @brief LDR Exclusive (32 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 32 bit values - */ -extern uint32_t __LDREXW(uint32_t *addr); - -/** - * @brief STR Exclusive (8 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 8 bit values - */ -extern uint32_t __STREXB(uint8_t value, uint8_t *addr); - -/** - * @brief STR Exclusive (16 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 16 bit values - */ -extern uint32_t __STREXH(uint16_t value, uint16_t *addr); - -/** - * @brief STR Exclusive (32 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 32 bit values - */ -extern uint32_t __STREXW(uint32_t value, uint32_t *addr); - - - -#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ -/* GNU gcc specific functions */ - -static __INLINE void __enable_irq() { __ASM volatile ("cpsie i"); } -static __INLINE void __disable_irq() { __ASM volatile ("cpsid i"); } - -static __INLINE void __enable_fault_irq() { __ASM volatile ("cpsie f"); } -static __INLINE void __disable_fault_irq() { __ASM volatile ("cpsid f"); } - -static __INLINE void __NOP() { __ASM volatile ("nop"); } -static __INLINE void __WFI() { __ASM volatile ("wfi"); } -static __INLINE void __WFE() { __ASM volatile ("wfe"); } -static __INLINE void __SEV() { __ASM volatile ("sev"); } -static __INLINE void __ISB() { __ASM volatile ("isb"); } -static __INLINE void __DSB() { __ASM volatile ("dsb"); } -static __INLINE void __DMB() { __ASM volatile ("dmb"); } -static __INLINE void __CLREX() { __ASM volatile ("clrex"); } - - -/** - * @brief Return the Process Stack Pointer - * - * @return ProcessStackPointer - * - * Return the actual process stack pointer - */ -extern uint32_t __get_PSP(void); - -/** - * @brief Set the Process Stack Pointer - * - * @param topOfProcStack Process Stack Pointer - * - * Assign the value ProcessStackPointer to the MSP - * (process stack pointer) Cortex processor register - */ -extern void __set_PSP(uint32_t topOfProcStack); - -/** - * @brief Return the Main Stack Pointer - * - * @return Main Stack Pointer - * - * Return the current value of the MSP (main stack pointer) - * Cortex processor register - */ -extern uint32_t __get_MSP(void); - -/** - * @brief Set the Main Stack Pointer - * - * @param topOfMainStack Main Stack Pointer - * - * Assign the value mainStackPointer to the MSP - * (main stack pointer) Cortex processor register - */ -extern void __set_MSP(uint32_t topOfMainStack); - -/** - * @brief Return the Base Priority value - * - * @return BasePriority - * - * Return the content of the base priority register - */ -extern uint32_t __get_BASEPRI(void); - -/** - * @brief Set the Base Priority value - * - * @param basePri BasePriority - * - * Set the base priority register - */ -extern void __set_BASEPRI(uint32_t basePri); - -/** - * @brief Return the Priority Mask value - * - * @return PriMask - * - * Return state of the priority mask bit from the priority mask register - */ -extern uint32_t __get_PRIMASK(void); - -/** - * @brief Set the Priority Mask value - * - * @param priMask PriMask - * - * Set the priority mask bit in the priority mask register - */ -extern void __set_PRIMASK(uint32_t priMask); - -/** - * @brief Return the Fault Mask value - * - * @return FaultMask - * - * Return the content of the fault mask register - */ -extern uint32_t __get_FAULTMASK(void); - -/** - * @brief Set the Fault Mask value - * - * @param faultMask faultMask value - * - * Set the fault mask register - */ -extern void __set_FAULTMASK(uint32_t faultMask); - -/** - * @brief Return the Control Register value -* -* @return Control value - * - * Return the content of the control register - */ -extern uint32_t __get_CONTROL(void); - -/** - * @brief Set the Control Register value - * - * @param control Control value - * - * Set the control register - */ -extern void __set_CONTROL(uint32_t control); - -/** - * @brief Reverse byte order in integer value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in integer value - */ -extern uint32_t __REV(uint32_t value); - -/** - * @brief Reverse byte order in unsigned short value - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in unsigned short value - */ -extern uint32_t __REV16(uint16_t value); - -/** - * @brief Reverse byte order in signed short value with sign extension to integer - * - * @param value value to reverse - * @return reversed value - * - * Reverse byte order in signed short value with sign extension to integer - */ -extern int32_t __REVSH(int16_t value); - -/** - * @brief Reverse bit order of value - * - * @param value value to reverse - * @return reversed value - * - * Reverse bit order of value - */ -extern uint32_t __RBIT(uint32_t value); - -/** - * @brief LDR Exclusive (8 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 8 bit value - */ -extern uint8_t __LDREXB(uint8_t *addr); - -/** - * @brief LDR Exclusive (16 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 16 bit values - */ -extern uint16_t __LDREXH(uint16_t *addr); - -/** - * @brief LDR Exclusive (32 bit) - * - * @param *addr address pointer - * @return value of (*address) - * - * Exclusive LDR command for 32 bit values - */ -extern uint32_t __LDREXW(uint32_t *addr); - -/** - * @brief STR Exclusive (8 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 8 bit values - */ -extern uint32_t __STREXB(uint8_t value, uint8_t *addr); - -/** - * @brief STR Exclusive (16 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 16 bit values - */ -extern uint32_t __STREXH(uint16_t value, uint16_t *addr); - -/** - * @brief STR Exclusive (32 bit) - * - * @param value value to store - * @param *addr address pointer - * @return successful / failed - * - * Exclusive STR command for 32 bit values - */ -extern uint32_t __STREXW(uint32_t value, uint32_t *addr); - - -#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/ -/* TASKING carm specific functions */ - -/* - * The CMSIS functions have been implemented as intrinsics in the compiler. - * Please use "carm -?i" to get an up to date list of all instrinsics, - * Including the CMSIS ones. - */ - -#endif - - -/** @addtogroup CMSIS_CM3_Core_FunctionInterface CMSIS CM3 Core Function Interface - Core Function Interface containing: - - Core NVIC Functions - - Core SysTick Functions - - Core Reset Functions -*/ -/*@{*/ - -/* ########################## NVIC functions #################################### */ - -/** - * @brief Set the Priority Grouping in NVIC Interrupt Controller - * - * @param PriorityGroup is priority grouping field - * - * Set the priority grouping field using the required unlock sequence. - * The parameter priority_grouping is assigned to the field - * SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used. - * In case of a conflict between priority grouping and available - * priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - */ -static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ - reg_value = (reg_value | - (0x5FA << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ - SCB->AIRCR = reg_value; -} - -/** - * @brief Get the Priority Grouping from NVIC Interrupt Controller - * - * @return priority grouping field - * - * Get the priority grouping from NVIC Interrupt Controller. - * priority grouping is SCB->AIRCR [10:8] PRIGROUP field. - */ -static __INLINE uint32_t NVIC_GetPriorityGrouping(void) -{ - return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ -} - -/** - * @brief Enable Interrupt in NVIC Interrupt Controller - * - * @param IRQn The positive number of the external interrupt to enable - * - * Enable a device specific interupt in the NVIC interrupt controller. - * The interrupt number cannot be a negative value. - */ -static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) -{ - NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ -} - -/** - * @brief Disable the interrupt line for external interrupt specified - * - * @param IRQn The positive number of the external interrupt to disable - * - * Disable a device specific interupt in the NVIC interrupt controller. - * The interrupt number cannot be a negative value. - */ -static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) -{ - NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ -} - -/** - * @brief Read the interrupt pending bit for a device specific interrupt source - * - * @param IRQn The number of the device specifc interrupt - * @return 1 = interrupt pending, 0 = interrupt not pending - * - * Read the pending register in NVIC and return 1 if its status is pending, - * otherwise it returns 0 - */ -static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */ -} - -/** - * @brief Set the pending bit for an external interrupt - * - * @param IRQn The number of the interrupt for set pending - * - * Set the pending bit for the specified interrupt. - * The interrupt number cannot be a negative value. - */ -static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ -} - -/** - * @brief Clear the pending bit for an external interrupt - * - * @param IRQn The number of the interrupt for clear pending - * - * Clear the pending bit for the specified interrupt. - * The interrupt number cannot be a negative value. - */ -static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ -} - -/** - * @brief Read the active bit for an external interrupt - * - * @param IRQn The number of the interrupt for read active bit - * @return 1 = interrupt active, 0 = interrupt not active - * - * Read the active register in NVIC and returns 1 if its status is active, - * otherwise it returns 0. - */ -static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) -{ - return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if active else 0 */ -} - -/** - * @brief Set the priority for an interrupt - * - * @param IRQn The number of the interrupt for set priority - * @param priority The priority to set - * - * Set the priority for the specified interrupt. The interrupt - * number can be positive to specify an external (device specific) - * interrupt, or negative to specify an internal (core) interrupt. - * - * Note: The priority cannot be set for every core interrupt. - */ -static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if(IRQn < 0) { - SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M3 System Interrupts */ - else { - NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for device specific Interrupts */ -} - -/** - * @brief Read the priority for an interrupt - * - * @param IRQn The number of the interrupt for get priority - * @return The priority for the interrupt - * - * Read the priority for the specified interrupt. The interrupt - * number can be positive to specify an external (device specific) - * interrupt, or negative to specify an internal (core) interrupt. - * - * The returned priority value is automatically aligned to the implemented - * priority bits of the microcontroller. - * - * Note: The priority cannot be set for every core interrupt. - */ -static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) -{ - - if(IRQn < 0) { - return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M3 system interrupts */ - else { - return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */ -} - - -/** - * @brief Encode the priority for an interrupt - * - * @param PriorityGroup The used priority group - * @param PreemptPriority The preemptive priority value (starting from 0) - * @param SubPriority The sub priority value (starting from 0) - * @return The encoded priority for the interrupt - * - * Encode the priority for an interrupt with the given priority group, - * preemptive priority value and sub priority value. - * In case of a conflict between priority grouping and available - * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set. - * - * The returned priority value can be used for NVIC_SetPriority(...) function - */ -static __INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; - SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; - - return ( - ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | - ((SubPriority & ((1 << (SubPriorityBits )) - 1))) - ); -} - - -/** - * @brief Decode the priority of an interrupt - * - * @param Priority The priority for the interrupt - * @param PriorityGroup The used priority group - * @param pPreemptPriority The preemptive priority value (starting from 0) - * @param pSubPriority The sub priority value (starting from 0) - * - * Decode an interrupt priority value with the given priority group to - * preemptive priority value and sub priority value. - * In case of a conflict between priority grouping and available - * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set. - * - * The priority value can be retrieved with NVIC_GetPriority(...) function - */ -static __INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; - SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; - - *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); - *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); -} - - - -/* ################################## SysTick function ############################################ */ - -#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0) - -/** - * @brief Initialize and start the SysTick counter and its interrupt. - * - * @param ticks number of ticks between two interrupts - * @return 1 = failed, 0 = successful - * - * Initialise the system tick timer and its interrupt and start the - * system tick timer / counter in free running mode to generate - * periodical interrupts. - */ -static __INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ - - SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */ - SysTick->VAL = 0; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0); /* Function successful */ -} - -#endif - - - - -/* ################################## Reset function ############################################ */ - -/** - * @brief Initiate a system reset request. - * - * Initiate a system reset request to reset the MCU - */ -static __INLINE void NVIC_SystemReset(void) -{ - SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - while(1); /* wait until reset */ -} - -/*@}*/ /* end of group CMSIS_CM3_Core_FunctionInterface */ - - - -/* ##################################### Debug In/Output function ########################################### */ - -/** @addtogroup CMSIS_CM3_CoreDebugInterface CMSIS CM3 Core Debug Interface - Core Debug Interface containing: - - Core Debug Receive / Transmit Functions - - Core Debug Defines - - Core Debug Variables -*/ -/*@{*/ - -extern volatile int ITM_RxBuffer; /*!< variable to receive characters */ -#define ITM_RXBUFFER_EMPTY 0x5AA55AA5 /*!< value identifying ITM_RxBuffer is ready for next character */ - - -/** - * @brief Outputs a character via the ITM channel 0 - * - * @param ch character to output - * @return character to output - * - * The function outputs a character via the ITM channel 0. - * The function returns when no debugger is connected that has booked the output. - * It is blocking when a debugger is connected, but the previous character send is not transmitted. - */ -static __INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk) && /* Trace enabled */ - (ITM->TCR & ITM_TCR_ITMENA_Msk) && /* ITM enabled */ - (ITM->TER & (1ul << 0) ) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0].u32 == 0); - ITM->PORT[0].u8 = (uint8_t) ch; - } - return (ch); -} - - -/** - * @brief Inputs a character via variable ITM_RxBuffer - * - * @return received character, -1 = no character received - * - * The function inputs a character via variable ITM_RxBuffer. - * The function returns when no debugger is connected that has booked the output. - * It is blocking when a debugger is connected, but the previous character send is not transmitted. - */ -static __INLINE int ITM_ReceiveChar (void) { - int ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - * @brief Check if a character via variable ITM_RxBuffer is available - * - * @return 1 = character available, 0 = no character available - * - * The function checks variable ITM_RxBuffer whether a character is available or not. - * The function returns '1' if a character is available and '0' if no character is available. - */ -static __INLINE int ITM_CheckChar (void) { - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) { - return (0); /* no character available */ - } else { - return (1); /* character available */ - } -} - -/*@}*/ /* end of group CMSIS_CM3_core_DebugInterface */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ /* end of group CMSIS_CM3_core_definitions */ - -#endif /* __CM3_CORE_H__ */ - -/*lint -restore */ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/Release_Notes.html b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/Release_Notes.html deleted file mode 100644 index b80f38df..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/Release_Notes.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - -Release Notes for STM32F10x CMSIS - - - - - -
-


-

-
- - - - - - -
- - - - - - - - - -
Back to Release page
-

Release -Notes for STM32F10x CMSIS

-

Copyright 2011 STMicroelectronics

-

-
-

 

- - - - - - -
-

Contents

-
    -
  1. STM32F10x CMSIS -update History
  2. -
  3. License
  4. -
- -

STM32F10x CMSIS -update History


-

V3.5.0 / 11-March-2011

-

Main -Changes

- -
    -
  • stm32f10x.h -and startup_stm32f10x_hd_vl.s files: remove the FSMC interrupt -definition for STM32F10x High-density Value line devices.
    -
  • -
  • system_stm32f10x.c file provided within the CMSIS folder.
    -
  • - -
- -

3.4.0 -- 10/15/2010

- -
    -
  1. General
  2. -
- -
    -
  • Add support -for STM32F10x High-density Value line devices.
  • -
-
    -
  1. STM32F10x CMSIS Device Peripheral Access Layer
  2. -
- - - -
    -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer Header File: stm32f10x.h
    -
    • Update to support High-density Value line devices
      • Add new define STM32F10X_HD_VL
      • -
      • RCC, AFIO, FSMC bits definition updated
      • -
      -
    • - - All -STM32 devices definitions are commented by default. User has to select the -appropriate device before starting else an error will be signaled on compile -time.
    • -
    • Add new IRQs definitons inside the IRQn_Type enumeration for STM23 High-density Value line devices.
    • -
    • "bool" type removed.
      -
    • -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer System Files: system_stm32f10x.h and system_stm32f10x.c
    -
  • -
      -
    • "system_stm32f10x.c" moved to to "STM32F10x_StdPeriph_Template" directory. This file is also moved to each example directory under "STM32F10x_StdPeriph_Examples".
      -
    • -
    • SystemInit_ExtMemCtl() function: update to support High-density Value line devices.
    • -
    • Add "VECT_TAB_SRAM" inside "system_stm32f10x.c" -to select if the user want to place the Vector Table in internal SRAM. -An additional define is also to specify the Vector Table offset "VECT_TAB_OFFSET".
      -
    • - -
    -
  • STM32F10x CMSIS startup files:startup_stm32f10x_xx.s
    • Add three -startup files for STM32 High-density Value line devices: - startup_stm32f10x_hd_vl.s
    -
-

3.3.0 -- 04/16/2010

- -
  1. General
-
  • Add support -for STM32F10x XL-density devices.
  • Add startup files for TrueSTUDIO toolchain
  1. STM32F10x CMSIS Device Peripheral Access Layer
- -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer Header File: stm32f10x.h
    -
    • Update to support XL-density devices
      • Add new define STM32F10X_XL
      • Add new IRQs for TIM9..14
      • Update FLASH_TypeDef structure
      • Add new IP instances TIM9..14
      • RCC, AFIO, DBGMCU bits definition updated
    • Correct IRQs definition for MD-, LD-, MD_VL- and LD_VL-density devices (remove comma "," at the end of enum list)
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer System Files: system_stm32f10x.h and system_stm32f10x.c
    -
    • SystemInit_ExtMemCtl() function: update to support XL-density devices
    • SystemInit() function: swap the order of SetSysClock() and SystemInit_ExtMemCtl() functions. 
      -
  • STM32F10x CMSIS startup files:
    • add three -startup files for STM32 XL-density devices: - startup_stm32f10x_xl.s
    • startup_stm32f10x_md_vl.s for RIDE7: add USART3 IRQ Handler (was missing in previous version)
    • Add startup files for TrueSTUDIO toolchain
-

3.2.0 -- 03/01/2010

-
    -
  1. General
  2. -
-
    - -
  • STM32F10x CMSIS files updated to CMSIS V1.30 release
  • -
  • Directory structure updated to be aligned with CMSIS V1.30
    -
  • -
  • Add support -for STM32 Low-density Value line (STM32F100x4/6) and -Medium-density Value line (STM32F100x8/B) devices
  • - -
-
    -
  1. CMSIS Core Peripheral Access Layer
- -
    -
  1. STM32F10x CMSIS Device Peripheral Access Layer
  2. - -
- -
    - -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer Header File: stm32f10x.h
    -
  • -
      -
    • Update -the stm32f10x.h file to support new Value line devices features: CEC -peripheral, new General purpose timers TIM15, TIM16 and TIM17.
    • -
    • Peripherals Bits definitions updated to be in line with Value line devices available features.
      -
    • -
    • HSE_Value, -HSI_Value and HSEStartup_TimeOut changed to upper case: HSE_VALUE, -HSI_VALUE and HSE_STARTUP_TIMEOUT. Old names are kept for legacy -purposes.
      -
    • -
    -
  • STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer System Files: system_stm32f10x.h and system_stm32f10x.c
    -
  • -
      -
    • SystemFrequency variable name changed to SystemCoreClock
      -
    • -
    • Default - SystemCoreClock is changed to 24MHz when Value line devices are selected and to 72MHz on other devices.
      -
    • -
    • All while(1) loop were removed from all clock setting functions. User has to handle the HSE startup failure.
      -
    • -
    • Additional function void SystemCoreClockUpdate (void) is provided.
      -
    • -
    -
  • STM32F10x CMSIS Startup files: startup_stm32f10x_xx.s
  • -
      -
    • Add new -startup files for STM32 Low-density Value line devices: - startup_stm32f10x_ld_vl.s
    • -
    • Add new startup -files for STM32 Medium-density Value line devices: - startup_stm32f10x_md_vl.s
    • -
    • SystemInit() function is called from startup file (startup_stm32f10x_xx.s) before to branch to application main.
      -To reconfigure the default setting of SystemInit() function, refer to system_stm32f10x.c file
      -
    • -
    • GNU startup file for Low density devices (startup_stm32f10x_ld.s) is updated to fix compilation errors.
      -
    • -
    - -
- -
    -
-

License

-

The -enclosed firmware and all the related documentation are not covered by -a License Agreement, if you need such License you can contact your -local STMicroelectronics office.

-

THE -PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS -WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO -SAVE TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR -ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY -CLAIMS ARISING FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY -CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH -THEIR PRODUCTS.

-

 

-
-
-

For -complete documentation on STM32(CORTEX M3) 32-Bit Microcontrollers -visit www.st.com/STM32

-
-

-
-
-

 

-
- \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h deleted file mode 100644 index af0c7c9a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h +++ /dev/null @@ -1,8336 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief CMSIS Cortex-M3 Device Peripheral Access Layer Header File. - * This file contains all the peripheral register's definitions, bits - * definitions and memory mapping for STM32F10x Connectivity line, - * High density, High density value line, Medium density, - * Medium density Value line, Low density, Low density Value line - * and XL-density devices. - * - * The file is the unique include file that the application programmer - * is using in the C source code, usually in main.c. This file contains: - * - Configuration section that allows to select: - * - The device used in the target application - * - To use or not the peripheral’s drivers in application code(i.e. - * code will be based on direct access to peripheral’s registers - * rather than drivers API), this option is controlled by - * "#define USE_STDPERIPH_DRIVER" - * - To change few application-specific parameters such as the HSE - * crystal frequency - * - Data structures and the address mapping for all peripherals - * - Peripheral's registers declarations and bits definition - * - Macros to access peripheral’s registers hardware - * - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/** @addtogroup CMSIS - * @{ - */ - -/** @addtogroup stm32f10x - * @{ - */ - -#ifndef __STM32F10x_H -#define __STM32F10x_H - -#ifdef __cplusplus - extern "C" { -#endif - -/** @addtogroup Library_configuration_section - * @{ - */ - -/* Uncomment the line below according to the target STM32 device used in your - application - */ - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) - /* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices */ - /* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */ - /* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */ - /* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */ - /* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices */ - /* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices */ - /* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices */ - /* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */ -#endif -/* Tip: To avoid modifying this file each time you need to switch between these - devices, you can define the device in your toolchain compiler preprocessor. - - - Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers - where the Flash memory density ranges between 16 and 32 Kbytes. - - Low-density value line devices are STM32F100xx microcontrollers where the Flash - memory density ranges between 16 and 32 Kbytes. - - Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers - where the Flash memory density ranges between 64 and 128 Kbytes. - - Medium-density value line devices are STM32F100xx microcontrollers where the - Flash memory density ranges between 64 and 128 Kbytes. - - High-density devices are STM32F101xx and STM32F103xx microcontrollers where - the Flash memory density ranges between 256 and 512 Kbytes. - - High-density value line devices are STM32F100xx microcontrollers where the - Flash memory density ranges between 256 and 512 Kbytes. - - XL-density devices are STM32F101xx and STM32F103xx microcontrollers where - the Flash memory density ranges between 512 and 1024 Kbytes. - - Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers. - */ - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) - #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)" -#endif - -#if !defined USE_STDPERIPH_DRIVER -/** - * @brief Comment the line below if you will not use the peripherals drivers. - In this case, these drivers will not be included and the application code will - be based on direct access to peripherals registers - */ - /*#define USE_STDPERIPH_DRIVER*/ -#endif - -/** - * @brief In the following line adjust the value of External High Speed oscillator (HSE) - used in your application - - Tip: To avoid modifying this file each time you need to use different HSE, you - can define the HSE value in your toolchain compiler preprocessor. - */ -#if !defined HSE_VALUE - #ifdef STM32F10X_CL - #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */ - #else - #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ - #endif /* STM32F10X_CL */ -#endif /* HSE_VALUE */ - - -/** - * @brief In the following line adjust the External High Speed oscillator (HSE) Startup - Timeout value - */ -#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*!< Time out for HSE start up */ - -#define HSI_VALUE ((uint32_t)8000000) /*!< Value of the Internal oscillator in Hz*/ - -/** - * @brief STM32F10x Standard Peripheral Library version number - */ -#define __STM32F10X_STDPERIPH_VERSION_MAIN (0x03) /*!< [31:24] main version */ -#define __STM32F10X_STDPERIPH_VERSION_SUB1 (0x05) /*!< [23:16] sub1 version */ -#define __STM32F10X_STDPERIPH_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */ -#define __STM32F10X_STDPERIPH_VERSION_RC (0x00) /*!< [7:0] release candidate */ -#define __STM32F10X_STDPERIPH_VERSION ( (__STM32F10X_STDPERIPH_VERSION_MAIN << 24)\ - |(__STM32F10X_STDPERIPH_VERSION_SUB1 << 16)\ - |(__STM32F10X_STDPERIPH_VERSION_SUB2 << 8)\ - |(__STM32F10X_STDPERIPH_VERSION_RC)) - -/** - * @} - */ - -/** @addtogroup Configuration_section_for_CMSIS - * @{ - */ - -/** - * @brief Configuration of the Cortex-M3 Processor and Core Peripherals - */ -#ifdef STM32F10X_XL - #define __MPU_PRESENT 1 /*!< STM32 XL-density devices provide an MPU */ -#else - #define __MPU_PRESENT 0 /*!< Other STM32 devices does not provide an MPU */ -#endif /* STM32F10X_XL */ -#define __NVIC_PRIO_BITS 4 /*!< STM32 uses 4 Bits for the Priority Levels */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * @brief STM32F10x Interrupt Number Definition, according to the selected device - * in @ref Library_configuration_section - */ -typedef enum IRQn -{ -/****** Cortex-M3 Processor Exceptions Numbers ***************************************************/ - NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ - MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */ - BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */ - UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */ - SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */ - SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */ - -/****** STM32 specific Interrupt Numbers *********************************************************/ - WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ - PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */ - TAMPER_IRQn = 2, /*!< Tamper Interrupt */ - RTC_IRQn = 3, /*!< RTC global Interrupt */ - FLASH_IRQn = 4, /*!< FLASH global Interrupt */ - RCC_IRQn = 5, /*!< RCC global Interrupt */ - EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */ - EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */ - EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */ - EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */ - EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt */ - DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */ - DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 global Interrupt */ - DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 global Interrupt */ - DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 global Interrupt */ - DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 global Interrupt */ - DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 global Interrupt */ - DMA1_Channel7_IRQn = 17, /*!< DMA1 Channel 7 global Interrupt */ - -#ifdef STM32F10X_LD - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ - TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ - TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - USBWakeUp_IRQn = 42 /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */ -#endif /* STM32F10X_LD */ - -#ifdef STM32F10X_LD_VL - ADC1_IRQn = 18, /*!< ADC1 global Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_TIM15_IRQn = 24, /*!< TIM1 Break and TIM15 Interrupts */ - TIM1_UP_TIM16_IRQn = 25, /*!< TIM1 Update and TIM16 Interrupts */ - TIM1_TRG_COM_TIM17_IRQn = 26, /*!< TIM1 Trigger and Commutation and TIM17 Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - CEC_IRQn = 42, /*!< HDMI-CEC Interrupt */ - TIM6_DAC_IRQn = 54, /*!< TIM6 and DAC underrun Interrupt */ - TIM7_IRQn = 55 /*!< TIM7 Interrupt */ -#endif /* STM32F10X_LD_VL */ - -#ifdef STM32F10X_MD - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ - TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ - TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - USBWakeUp_IRQn = 42 /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */ -#endif /* STM32F10X_MD */ - -#ifdef STM32F10X_MD_VL - ADC1_IRQn = 18, /*!< ADC1 global Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_TIM15_IRQn = 24, /*!< TIM1 Break and TIM15 Interrupts */ - TIM1_UP_TIM16_IRQn = 25, /*!< TIM1 Update and TIM16 Interrupts */ - TIM1_TRG_COM_TIM17_IRQn = 26, /*!< TIM1 Trigger and Commutation and TIM17 Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - CEC_IRQn = 42, /*!< HDMI-CEC Interrupt */ - TIM6_DAC_IRQn = 54, /*!< TIM6 and DAC underrun Interrupt */ - TIM7_IRQn = 55 /*!< TIM7 Interrupt */ -#endif /* STM32F10X_MD_VL */ - -#ifdef STM32F10X_HD - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ - TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ - TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - USBWakeUp_IRQn = 42, /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */ - TIM8_BRK_IRQn = 43, /*!< TIM8 Break Interrupt */ - TIM8_UP_IRQn = 44, /*!< TIM8 Update Interrupt */ - TIM8_TRG_COM_IRQn = 45, /*!< TIM8 Trigger and Commutation Interrupt */ - TIM8_CC_IRQn = 46, /*!< TIM8 Capture Compare Interrupt */ - ADC3_IRQn = 47, /*!< ADC3 global Interrupt */ - FSMC_IRQn = 48, /*!< FSMC global Interrupt */ - SDIO_IRQn = 49, /*!< SDIO global Interrupt */ - TIM5_IRQn = 50, /*!< TIM5 global Interrupt */ - SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ - UART4_IRQn = 52, /*!< UART4 global Interrupt */ - UART5_IRQn = 53, /*!< UART5 global Interrupt */ - TIM6_IRQn = 54, /*!< TIM6 global Interrupt */ - TIM7_IRQn = 55, /*!< TIM7 global Interrupt */ - DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ - DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ - DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ - DMA2_Channel4_5_IRQn = 59 /*!< DMA2 Channel 4 and Channel 5 global Interrupt */ -#endif /* STM32F10X_HD */ - -#ifdef STM32F10X_HD_VL - ADC1_IRQn = 18, /*!< ADC1 global Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_TIM15_IRQn = 24, /*!< TIM1 Break and TIM15 Interrupts */ - TIM1_UP_TIM16_IRQn = 25, /*!< TIM1 Update and TIM16 Interrupts */ - TIM1_TRG_COM_TIM17_IRQn = 26, /*!< TIM1 Trigger and Commutation and TIM17 Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - CEC_IRQn = 42, /*!< HDMI-CEC Interrupt */ - TIM12_IRQn = 43, /*!< TIM12 global Interrupt */ - TIM13_IRQn = 44, /*!< TIM13 global Interrupt */ - TIM14_IRQn = 45, /*!< TIM14 global Interrupt */ - TIM5_IRQn = 50, /*!< TIM5 global Interrupt */ - SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ - UART4_IRQn = 52, /*!< UART4 global Interrupt */ - UART5_IRQn = 53, /*!< UART5 global Interrupt */ - TIM6_DAC_IRQn = 54, /*!< TIM6 and DAC underrun Interrupt */ - TIM7_IRQn = 55, /*!< TIM7 Interrupt */ - DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ - DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ - DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ - DMA2_Channel4_5_IRQn = 59, /*!< DMA2 Channel 4 and Channel 5 global Interrupt */ - DMA2_Channel5_IRQn = 60 /*!< DMA2 Channel 5 global Interrupt (DMA2 Channel 5 is - mapped at position 60 only if the MISC_REMAP bit in - the AFIO_MAPR2 register is set) */ -#endif /* STM32F10X_HD_VL */ - -#ifdef STM32F10X_XL - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_TIM9_IRQn = 24, /*!< TIM1 Break Interrupt and TIM9 global Interrupt */ - TIM1_UP_TIM10_IRQn = 25, /*!< TIM1 Update Interrupt and TIM10 global Interrupt */ - TIM1_TRG_COM_TIM11_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt and TIM11 global interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - USBWakeUp_IRQn = 42, /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */ - TIM8_BRK_TIM12_IRQn = 43, /*!< TIM8 Break Interrupt and TIM12 global Interrupt */ - TIM8_UP_TIM13_IRQn = 44, /*!< TIM8 Update Interrupt and TIM13 global Interrupt */ - TIM8_TRG_COM_TIM14_IRQn = 45, /*!< TIM8 Trigger and Commutation Interrupt and TIM14 global interrupt */ - TIM8_CC_IRQn = 46, /*!< TIM8 Capture Compare Interrupt */ - ADC3_IRQn = 47, /*!< ADC3 global Interrupt */ - FSMC_IRQn = 48, /*!< FSMC global Interrupt */ - SDIO_IRQn = 49, /*!< SDIO global Interrupt */ - TIM5_IRQn = 50, /*!< TIM5 global Interrupt */ - SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ - UART4_IRQn = 52, /*!< UART4 global Interrupt */ - UART5_IRQn = 53, /*!< UART5 global Interrupt */ - TIM6_IRQn = 54, /*!< TIM6 global Interrupt */ - TIM7_IRQn = 55, /*!< TIM7 global Interrupt */ - DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ - DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ - DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ - DMA2_Channel4_5_IRQn = 59 /*!< DMA2 Channel 4 and Channel 5 global Interrupt */ -#endif /* STM32F10X_XL */ - -#ifdef STM32F10X_CL - ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ - CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ - CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ - CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ - CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ - EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ - TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ - TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ - TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ - TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ - TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ - TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ - TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ - I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ - I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ - I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ - I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ - SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ - SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ - USART1_IRQn = 37, /*!< USART1 global Interrupt */ - USART2_IRQn = 38, /*!< USART2 global Interrupt */ - USART3_IRQn = 39, /*!< USART3 global Interrupt */ - EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ - RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ - OTG_FS_WKUP_IRQn = 42, /*!< USB OTG FS WakeUp from suspend through EXTI Line Interrupt */ - TIM5_IRQn = 50, /*!< TIM5 global Interrupt */ - SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ - UART4_IRQn = 52, /*!< UART4 global Interrupt */ - UART5_IRQn = 53, /*!< UART5 global Interrupt */ - TIM6_IRQn = 54, /*!< TIM6 global Interrupt */ - TIM7_IRQn = 55, /*!< TIM7 global Interrupt */ - DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ - DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ - DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ - DMA2_Channel4_IRQn = 59, /*!< DMA2 Channel 4 global Interrupt */ - DMA2_Channel5_IRQn = 60, /*!< DMA2 Channel 5 global Interrupt */ - ETH_IRQn = 61, /*!< Ethernet global Interrupt */ - ETH_WKUP_IRQn = 62, /*!< Ethernet Wakeup through EXTI line Interrupt */ - CAN2_TX_IRQn = 63, /*!< CAN2 TX Interrupt */ - CAN2_RX0_IRQn = 64, /*!< CAN2 RX0 Interrupt */ - CAN2_RX1_IRQn = 65, /*!< CAN2 RX1 Interrupt */ - CAN2_SCE_IRQn = 66, /*!< CAN2 SCE Interrupt */ - OTG_FS_IRQn = 67 /*!< USB OTG FS global Interrupt */ -#endif /* STM32F10X_CL */ -} IRQn_Type; - -/** - * @} - */ - -#include "core_cm3.h" -#include "system_stm32f10x.h" -#include - -/** @addtogroup Exported_types - * @{ - */ - -/*!< STM32F10x Standard Peripheral Library old types (maintained for legacy purpose) */ -typedef int32_t s32; -typedef int16_t s16; -typedef int8_t s8; - -typedef const int32_t sc32; /*!< Read Only */ -typedef const int16_t sc16; /*!< Read Only */ -typedef const int8_t sc8; /*!< Read Only */ - -typedef __IO int32_t vs32; -typedef __IO int16_t vs16; -typedef __IO int8_t vs8; - -typedef __I int32_t vsc32; /*!< Read Only */ -typedef __I int16_t vsc16; /*!< Read Only */ -typedef __I int8_t vsc8; /*!< Read Only */ - -typedef uint32_t u32; -typedef uint16_t u16; -typedef uint8_t u8; - -typedef const uint32_t uc32; /*!< Read Only */ -typedef const uint16_t uc16; /*!< Read Only */ -typedef const uint8_t uc8; /*!< Read Only */ - -typedef __IO uint32_t vu32; -typedef __IO uint16_t vu16; -typedef __IO uint8_t vu8; - -typedef __I uint32_t vuc32; /*!< Read Only */ -typedef __I uint16_t vuc16; /*!< Read Only */ -typedef __I uint8_t vuc8; /*!< Read Only */ - -typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus; - -typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; -#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE)) - -typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; - -/*!< STM32F10x Standard Peripheral Library old definitions (maintained for legacy purpose) */ -#define HSEStartUp_TimeOut HSE_STARTUP_TIMEOUT -#define HSE_Value HSE_VALUE -#define HSI_Value HSI_VALUE -/** - * @} - */ - -/** @addtogroup Peripheral_registers_structures - * @{ - */ - -/** - * @brief Analog to Digital Converter - */ - -typedef struct -{ - __IO uint32_t SR; - __IO uint32_t CR1; - __IO uint32_t CR2; - __IO uint32_t SMPR1; - __IO uint32_t SMPR2; - __IO uint32_t JOFR1; - __IO uint32_t JOFR2; - __IO uint32_t JOFR3; - __IO uint32_t JOFR4; - __IO uint32_t HTR; - __IO uint32_t LTR; - __IO uint32_t SQR1; - __IO uint32_t SQR2; - __IO uint32_t SQR3; - __IO uint32_t JSQR; - __IO uint32_t JDR1; - __IO uint32_t JDR2; - __IO uint32_t JDR3; - __IO uint32_t JDR4; - __IO uint32_t DR; -} ADC_TypeDef; - -/** - * @brief Backup Registers - */ - -typedef struct -{ - uint32_t RESERVED0; - __IO uint16_t DR1; - uint16_t RESERVED1; - __IO uint16_t DR2; - uint16_t RESERVED2; - __IO uint16_t DR3; - uint16_t RESERVED3; - __IO uint16_t DR4; - uint16_t RESERVED4; - __IO uint16_t DR5; - uint16_t RESERVED5; - __IO uint16_t DR6; - uint16_t RESERVED6; - __IO uint16_t DR7; - uint16_t RESERVED7; - __IO uint16_t DR8; - uint16_t RESERVED8; - __IO uint16_t DR9; - uint16_t RESERVED9; - __IO uint16_t DR10; - uint16_t RESERVED10; - __IO uint16_t RTCCR; - uint16_t RESERVED11; - __IO uint16_t CR; - uint16_t RESERVED12; - __IO uint16_t CSR; - uint16_t RESERVED13[5]; - __IO uint16_t DR11; - uint16_t RESERVED14; - __IO uint16_t DR12; - uint16_t RESERVED15; - __IO uint16_t DR13; - uint16_t RESERVED16; - __IO uint16_t DR14; - uint16_t RESERVED17; - __IO uint16_t DR15; - uint16_t RESERVED18; - __IO uint16_t DR16; - uint16_t RESERVED19; - __IO uint16_t DR17; - uint16_t RESERVED20; - __IO uint16_t DR18; - uint16_t RESERVED21; - __IO uint16_t DR19; - uint16_t RESERVED22; - __IO uint16_t DR20; - uint16_t RESERVED23; - __IO uint16_t DR21; - uint16_t RESERVED24; - __IO uint16_t DR22; - uint16_t RESERVED25; - __IO uint16_t DR23; - uint16_t RESERVED26; - __IO uint16_t DR24; - uint16_t RESERVED27; - __IO uint16_t DR25; - uint16_t RESERVED28; - __IO uint16_t DR26; - uint16_t RESERVED29; - __IO uint16_t DR27; - uint16_t RESERVED30; - __IO uint16_t DR28; - uint16_t RESERVED31; - __IO uint16_t DR29; - uint16_t RESERVED32; - __IO uint16_t DR30; - uint16_t RESERVED33; - __IO uint16_t DR31; - uint16_t RESERVED34; - __IO uint16_t DR32; - uint16_t RESERVED35; - __IO uint16_t DR33; - uint16_t RESERVED36; - __IO uint16_t DR34; - uint16_t RESERVED37; - __IO uint16_t DR35; - uint16_t RESERVED38; - __IO uint16_t DR36; - uint16_t RESERVED39; - __IO uint16_t DR37; - uint16_t RESERVED40; - __IO uint16_t DR38; - uint16_t RESERVED41; - __IO uint16_t DR39; - uint16_t RESERVED42; - __IO uint16_t DR40; - uint16_t RESERVED43; - __IO uint16_t DR41; - uint16_t RESERVED44; - __IO uint16_t DR42; - uint16_t RESERVED45; -} BKP_TypeDef; - -/** - * @brief Controller Area Network TxMailBox - */ - -typedef struct -{ - __IO uint32_t TIR; - __IO uint32_t TDTR; - __IO uint32_t TDLR; - __IO uint32_t TDHR; -} CAN_TxMailBox_TypeDef; - -/** - * @brief Controller Area Network FIFOMailBox - */ - -typedef struct -{ - __IO uint32_t RIR; - __IO uint32_t RDTR; - __IO uint32_t RDLR; - __IO uint32_t RDHR; -} CAN_FIFOMailBox_TypeDef; - -/** - * @brief Controller Area Network FilterRegister - */ - -typedef struct -{ - __IO uint32_t FR1; - __IO uint32_t FR2; -} CAN_FilterRegister_TypeDef; - -/** - * @brief Controller Area Network - */ - -typedef struct -{ - __IO uint32_t MCR; - __IO uint32_t MSR; - __IO uint32_t TSR; - __IO uint32_t RF0R; - __IO uint32_t RF1R; - __IO uint32_t IER; - __IO uint32_t ESR; - __IO uint32_t BTR; - uint32_t RESERVED0[88]; - CAN_TxMailBox_TypeDef sTxMailBox[3]; - CAN_FIFOMailBox_TypeDef sFIFOMailBox[2]; - uint32_t RESERVED1[12]; - __IO uint32_t FMR; - __IO uint32_t FM1R; - uint32_t RESERVED2; - __IO uint32_t FS1R; - uint32_t RESERVED3; - __IO uint32_t FFA1R; - uint32_t RESERVED4; - __IO uint32_t FA1R; - uint32_t RESERVED5[8]; -#ifndef STM32F10X_CL - CAN_FilterRegister_TypeDef sFilterRegister[14]; -#else - CAN_FilterRegister_TypeDef sFilterRegister[28]; -#endif /* STM32F10X_CL */ -} CAN_TypeDef; - -/** - * @brief Consumer Electronics Control (CEC) - */ -typedef struct -{ - __IO uint32_t CFGR; - __IO uint32_t OAR; - __IO uint32_t PRES; - __IO uint32_t ESR; - __IO uint32_t CSR; - __IO uint32_t TXD; - __IO uint32_t RXD; -} CEC_TypeDef; - -/** - * @brief CRC calculation unit - */ - -typedef struct -{ - __IO uint32_t DR; - __IO uint8_t IDR; - uint8_t RESERVED0; - uint16_t RESERVED1; - __IO uint32_t CR; -} CRC_TypeDef; - -/** - * @brief Digital to Analog Converter - */ - -typedef struct -{ - __IO uint32_t CR; - __IO uint32_t SWTRIGR; - __IO uint32_t DHR12R1; - __IO uint32_t DHR12L1; - __IO uint32_t DHR8R1; - __IO uint32_t DHR12R2; - __IO uint32_t DHR12L2; - __IO uint32_t DHR8R2; - __IO uint32_t DHR12RD; - __IO uint32_t DHR12LD; - __IO uint32_t DHR8RD; - __IO uint32_t DOR1; - __IO uint32_t DOR2; -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - __IO uint32_t SR; -#endif -} DAC_TypeDef; - -/** - * @brief Debug MCU - */ - -typedef struct -{ - __IO uint32_t IDCODE; - __IO uint32_t CR; -}DBGMCU_TypeDef; - -/** - * @brief DMA Controller - */ - -typedef struct -{ - __IO uint32_t CCR; - __IO uint32_t CNDTR; - __IO uint32_t CPAR; - __IO uint32_t CMAR; -} DMA_Channel_TypeDef; - -typedef struct -{ - __IO uint32_t ISR; - __IO uint32_t IFCR; -} DMA_TypeDef; - -/** - * @brief Ethernet MAC - */ - -typedef struct -{ - __IO uint32_t MACCR; - __IO uint32_t MACFFR; - __IO uint32_t MACHTHR; - __IO uint32_t MACHTLR; - __IO uint32_t MACMIIAR; - __IO uint32_t MACMIIDR; - __IO uint32_t MACFCR; - __IO uint32_t MACVLANTR; /* 8 */ - uint32_t RESERVED0[2]; - __IO uint32_t MACRWUFFR; /* 11 */ - __IO uint32_t MACPMTCSR; - uint32_t RESERVED1[2]; - __IO uint32_t MACSR; /* 15 */ - __IO uint32_t MACIMR; - __IO uint32_t MACA0HR; - __IO uint32_t MACA0LR; - __IO uint32_t MACA1HR; - __IO uint32_t MACA1LR; - __IO uint32_t MACA2HR; - __IO uint32_t MACA2LR; - __IO uint32_t MACA3HR; - __IO uint32_t MACA3LR; /* 24 */ - uint32_t RESERVED2[40]; - __IO uint32_t MMCCR; /* 65 */ - __IO uint32_t MMCRIR; - __IO uint32_t MMCTIR; - __IO uint32_t MMCRIMR; - __IO uint32_t MMCTIMR; /* 69 */ - uint32_t RESERVED3[14]; - __IO uint32_t MMCTGFSCCR; /* 84 */ - __IO uint32_t MMCTGFMSCCR; - uint32_t RESERVED4[5]; - __IO uint32_t MMCTGFCR; - uint32_t RESERVED5[10]; - __IO uint32_t MMCRFCECR; - __IO uint32_t MMCRFAECR; - uint32_t RESERVED6[10]; - __IO uint32_t MMCRGUFCR; - uint32_t RESERVED7[334]; - __IO uint32_t PTPTSCR; - __IO uint32_t PTPSSIR; - __IO uint32_t PTPTSHR; - __IO uint32_t PTPTSLR; - __IO uint32_t PTPTSHUR; - __IO uint32_t PTPTSLUR; - __IO uint32_t PTPTSAR; - __IO uint32_t PTPTTHR; - __IO uint32_t PTPTTLR; - uint32_t RESERVED8[567]; - __IO uint32_t DMABMR; - __IO uint32_t DMATPDR; - __IO uint32_t DMARPDR; - __IO uint32_t DMARDLAR; - __IO uint32_t DMATDLAR; - __IO uint32_t DMASR; - __IO uint32_t DMAOMR; - __IO uint32_t DMAIER; - __IO uint32_t DMAMFBOCR; - uint32_t RESERVED9[9]; - __IO uint32_t DMACHTDR; - __IO uint32_t DMACHRDR; - __IO uint32_t DMACHTBAR; - __IO uint32_t DMACHRBAR; -} ETH_TypeDef; - -/** - * @brief External Interrupt/Event Controller - */ - -typedef struct -{ - __IO uint32_t IMR; - __IO uint32_t EMR; - __IO uint32_t RTSR; - __IO uint32_t FTSR; - __IO uint32_t SWIER; - __IO uint32_t PR; -} EXTI_TypeDef; - -/** - * @brief FLASH Registers - */ - -typedef struct -{ - __IO uint32_t ACR; - __IO uint32_t KEYR; - __IO uint32_t OPTKEYR; - __IO uint32_t SR; - __IO uint32_t CR; - __IO uint32_t AR; - __IO uint32_t RESERVED; - __IO uint32_t OBR; - __IO uint32_t WRPR; -#ifdef STM32F10X_XL - uint32_t RESERVED1[8]; - __IO uint32_t KEYR2; - uint32_t RESERVED2; - __IO uint32_t SR2; - __IO uint32_t CR2; - __IO uint32_t AR2; -#endif /* STM32F10X_XL */ -} FLASH_TypeDef; - -/** - * @brief Option Bytes Registers - */ - -typedef struct -{ - __IO uint16_t RDP; - __IO uint16_t USER; - __IO uint16_t Data0; - __IO uint16_t Data1; - __IO uint16_t WRP0; - __IO uint16_t WRP1; - __IO uint16_t WRP2; - __IO uint16_t WRP3; -} OB_TypeDef; - -/** - * @brief Flexible Static Memory Controller - */ - -typedef struct -{ - __IO uint32_t BTCR[8]; -} FSMC_Bank1_TypeDef; - -/** - * @brief Flexible Static Memory Controller Bank1E - */ - -typedef struct -{ - __IO uint32_t BWTR[7]; -} FSMC_Bank1E_TypeDef; - -/** - * @brief Flexible Static Memory Controller Bank2 - */ - -typedef struct -{ - __IO uint32_t PCR2; - __IO uint32_t SR2; - __IO uint32_t PMEM2; - __IO uint32_t PATT2; - uint32_t RESERVED0; - __IO uint32_t ECCR2; -} FSMC_Bank2_TypeDef; - -/** - * @brief Flexible Static Memory Controller Bank3 - */ - -typedef struct -{ - __IO uint32_t PCR3; - __IO uint32_t SR3; - __IO uint32_t PMEM3; - __IO uint32_t PATT3; - uint32_t RESERVED0; - __IO uint32_t ECCR3; -} FSMC_Bank3_TypeDef; - -/** - * @brief Flexible Static Memory Controller Bank4 - */ - -typedef struct -{ - __IO uint32_t PCR4; - __IO uint32_t SR4; - __IO uint32_t PMEM4; - __IO uint32_t PATT4; - __IO uint32_t PIO4; -} FSMC_Bank4_TypeDef; - -/** - * @brief General Purpose I/O - */ - -typedef struct -{ - __IO uint32_t CRL; - __IO uint32_t CRH; - __IO uint32_t IDR; - __IO uint32_t ODR; - __IO uint32_t BSRR; - __IO uint32_t BRR; - __IO uint32_t LCKR; -} GPIO_TypeDef; - -/** - * @brief Alternate Function I/O - */ - -typedef struct -{ - __IO uint32_t EVCR; - __IO uint32_t MAPR; - __IO uint32_t EXTICR[4]; - uint32_t RESERVED0; - __IO uint32_t MAPR2; -} AFIO_TypeDef; -/** - * @brief Inter Integrated Circuit Interface - */ - -typedef struct -{ - __IO uint16_t CR1; - uint16_t RESERVED0; - __IO uint16_t CR2; - uint16_t RESERVED1; - __IO uint16_t OAR1; - uint16_t RESERVED2; - __IO uint16_t OAR2; - uint16_t RESERVED3; - __IO uint16_t DR; - uint16_t RESERVED4; - __IO uint16_t SR1; - uint16_t RESERVED5; - __IO uint16_t SR2; - uint16_t RESERVED6; - __IO uint16_t CCR; - uint16_t RESERVED7; - __IO uint16_t TRISE; - uint16_t RESERVED8; -} I2C_TypeDef; - -/** - * @brief Independent WATCHDOG - */ - -typedef struct -{ - __IO uint32_t KR; - __IO uint32_t PR; - __IO uint32_t RLR; - __IO uint32_t SR; -} IWDG_TypeDef; - -/** - * @brief Power Control - */ - -typedef struct -{ - __IO uint32_t CR; - __IO uint32_t CSR; -} PWR_TypeDef; - -/** - * @brief Reset and Clock Control - */ - -typedef struct -{ - __IO uint32_t CR; - __IO uint32_t CFGR; - __IO uint32_t CIR; - __IO uint32_t APB2RSTR; - __IO uint32_t APB1RSTR; - __IO uint32_t AHBENR; - __IO uint32_t APB2ENR; - __IO uint32_t APB1ENR; - __IO uint32_t BDCR; - __IO uint32_t CSR; - -#ifdef STM32F10X_CL - __IO uint32_t AHBRSTR; - __IO uint32_t CFGR2; -#endif /* STM32F10X_CL */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - uint32_t RESERVED0; - __IO uint32_t CFGR2; -#endif /* STM32F10X_LD_VL || STM32F10X_MD_VL || STM32F10X_HD_VL */ -} RCC_TypeDef; - -/** - * @brief Real-Time Clock - */ - -typedef struct -{ - __IO uint16_t CRH; - uint16_t RESERVED0; - __IO uint16_t CRL; - uint16_t RESERVED1; - __IO uint16_t PRLH; - uint16_t RESERVED2; - __IO uint16_t PRLL; - uint16_t RESERVED3; - __IO uint16_t DIVH; - uint16_t RESERVED4; - __IO uint16_t DIVL; - uint16_t RESERVED5; - __IO uint16_t CNTH; - uint16_t RESERVED6; - __IO uint16_t CNTL; - uint16_t RESERVED7; - __IO uint16_t ALRH; - uint16_t RESERVED8; - __IO uint16_t ALRL; - uint16_t RESERVED9; -} RTC_TypeDef; - -/** - * @brief SD host Interface - */ - -typedef struct -{ - __IO uint32_t POWER; - __IO uint32_t CLKCR; - __IO uint32_t ARG; - __IO uint32_t CMD; - __I uint32_t RESPCMD; - __I uint32_t RESP1; - __I uint32_t RESP2; - __I uint32_t RESP3; - __I uint32_t RESP4; - __IO uint32_t DTIMER; - __IO uint32_t DLEN; - __IO uint32_t DCTRL; - __I uint32_t DCOUNT; - __I uint32_t STA; - __IO uint32_t ICR; - __IO uint32_t MASK; - uint32_t RESERVED0[2]; - __I uint32_t FIFOCNT; - uint32_t RESERVED1[13]; - __IO uint32_t FIFO; -} SDIO_TypeDef; - -/** - * @brief Serial Peripheral Interface - */ - -typedef struct -{ - __IO uint16_t CR1; - uint16_t RESERVED0; - __IO uint16_t CR2; - uint16_t RESERVED1; - __IO uint16_t SR; - uint16_t RESERVED2; - __IO uint16_t DR; - uint16_t RESERVED3; - __IO uint16_t CRCPR; - uint16_t RESERVED4; - __IO uint16_t RXCRCR; - uint16_t RESERVED5; - __IO uint16_t TXCRCR; - uint16_t RESERVED6; - __IO uint16_t I2SCFGR; - uint16_t RESERVED7; - __IO uint16_t I2SPR; - uint16_t RESERVED8; -} SPI_TypeDef; - -/** - * @brief TIM - */ - -typedef struct -{ - __IO uint16_t CR1; - uint16_t RESERVED0; - __IO uint16_t CR2; - uint16_t RESERVED1; - __IO uint16_t SMCR; - uint16_t RESERVED2; - __IO uint16_t DIER; - uint16_t RESERVED3; - __IO uint16_t SR; - uint16_t RESERVED4; - __IO uint16_t EGR; - uint16_t RESERVED5; - __IO uint16_t CCMR1; - uint16_t RESERVED6; - __IO uint16_t CCMR2; - uint16_t RESERVED7; - __IO uint16_t CCER; - uint16_t RESERVED8; - __IO uint16_t CNT; - uint16_t RESERVED9; - __IO uint16_t PSC; - uint16_t RESERVED10; - __IO uint16_t ARR; - uint16_t RESERVED11; - __IO uint16_t RCR; - uint16_t RESERVED12; - __IO uint16_t CCR1; - uint16_t RESERVED13; - __IO uint16_t CCR2; - uint16_t RESERVED14; - __IO uint16_t CCR3; - uint16_t RESERVED15; - __IO uint16_t CCR4; - uint16_t RESERVED16; - __IO uint16_t BDTR; - uint16_t RESERVED17; - __IO uint16_t DCR; - uint16_t RESERVED18; - __IO uint16_t DMAR; - uint16_t RESERVED19; -} TIM_TypeDef; - -/** - * @brief Universal Synchronous Asynchronous Receiver Transmitter - */ - -typedef struct -{ - __IO uint16_t SR; - uint16_t RESERVED0; - __IO uint16_t DR; - uint16_t RESERVED1; - __IO uint16_t BRR; - uint16_t RESERVED2; - __IO uint16_t CR1; - uint16_t RESERVED3; - __IO uint16_t CR2; - uint16_t RESERVED4; - __IO uint16_t CR3; - uint16_t RESERVED5; - __IO uint16_t GTPR; - uint16_t RESERVED6; -} USART_TypeDef; - -/** - * @brief Window WATCHDOG - */ - -typedef struct -{ - __IO uint32_t CR; - __IO uint32_t CFR; - __IO uint32_t SR; -} WWDG_TypeDef; - -/** - * @} - */ - -/** @addtogroup Peripheral_memory_map - * @{ - */ - - -#define FLASH_BASE ((uint32_t)0x08000000) /*!< FLASH base address in the alias region */ -#define SRAM_BASE ((uint32_t)0x20000000) /*!< SRAM base address in the alias region */ -#define PERIPH_BASE ((uint32_t)0x40000000) /*!< Peripheral base address in the alias region */ - -#define SRAM_BB_BASE ((uint32_t)0x22000000) /*!< SRAM base address in the bit-band region */ -#define PERIPH_BB_BASE ((uint32_t)0x42000000) /*!< Peripheral base address in the bit-band region */ - -#define FSMC_R_BASE ((uint32_t)0xA0000000) /*!< FSMC registers base address */ - -/*!< Peripheral memory map */ -#define APB1PERIPH_BASE PERIPH_BASE -#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) -#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000) - -#define TIM2_BASE (APB1PERIPH_BASE + 0x0000) -#define TIM3_BASE (APB1PERIPH_BASE + 0x0400) -#define TIM4_BASE (APB1PERIPH_BASE + 0x0800) -#define TIM5_BASE (APB1PERIPH_BASE + 0x0C00) -#define TIM6_BASE (APB1PERIPH_BASE + 0x1000) -#define TIM7_BASE (APB1PERIPH_BASE + 0x1400) -#define TIM12_BASE (APB1PERIPH_BASE + 0x1800) -#define TIM13_BASE (APB1PERIPH_BASE + 0x1C00) -#define TIM14_BASE (APB1PERIPH_BASE + 0x2000) -#define RTC_BASE (APB1PERIPH_BASE + 0x2800) -#define WWDG_BASE (APB1PERIPH_BASE + 0x2C00) -#define IWDG_BASE (APB1PERIPH_BASE + 0x3000) -#define SPI2_BASE (APB1PERIPH_BASE + 0x3800) -#define SPI3_BASE (APB1PERIPH_BASE + 0x3C00) -#define USART2_BASE (APB1PERIPH_BASE + 0x4400) -#define USART3_BASE (APB1PERIPH_BASE + 0x4800) -#define UART4_BASE (APB1PERIPH_BASE + 0x4C00) -#define UART5_BASE (APB1PERIPH_BASE + 0x5000) -#define I2C1_BASE (APB1PERIPH_BASE + 0x5400) -#define I2C2_BASE (APB1PERIPH_BASE + 0x5800) -#define CAN1_BASE (APB1PERIPH_BASE + 0x6400) -#define CAN2_BASE (APB1PERIPH_BASE + 0x6800) -#define BKP_BASE (APB1PERIPH_BASE + 0x6C00) -#define PWR_BASE (APB1PERIPH_BASE + 0x7000) -#define DAC_BASE (APB1PERIPH_BASE + 0x7400) -#define CEC_BASE (APB1PERIPH_BASE + 0x7800) - -#define AFIO_BASE (APB2PERIPH_BASE + 0x0000) -#define EXTI_BASE (APB2PERIPH_BASE + 0x0400) -#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800) -#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00) -#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000) -#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400) -#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800) -#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00) -#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000) -#define ADC1_BASE (APB2PERIPH_BASE + 0x2400) -#define ADC2_BASE (APB2PERIPH_BASE + 0x2800) -#define TIM1_BASE (APB2PERIPH_BASE + 0x2C00) -#define SPI1_BASE (APB2PERIPH_BASE + 0x3000) -#define TIM8_BASE (APB2PERIPH_BASE + 0x3400) -#define USART1_BASE (APB2PERIPH_BASE + 0x3800) -#define ADC3_BASE (APB2PERIPH_BASE + 0x3C00) -#define TIM15_BASE (APB2PERIPH_BASE + 0x4000) -#define TIM16_BASE (APB2PERIPH_BASE + 0x4400) -#define TIM17_BASE (APB2PERIPH_BASE + 0x4800) -#define TIM9_BASE (APB2PERIPH_BASE + 0x4C00) -#define TIM10_BASE (APB2PERIPH_BASE + 0x5000) -#define TIM11_BASE (APB2PERIPH_BASE + 0x5400) - -#define SDIO_BASE (PERIPH_BASE + 0x18000) - -#define DMA1_BASE (AHBPERIPH_BASE + 0x0000) -#define DMA1_Channel1_BASE (AHBPERIPH_BASE + 0x0008) -#define DMA1_Channel2_BASE (AHBPERIPH_BASE + 0x001C) -#define DMA1_Channel3_BASE (AHBPERIPH_BASE + 0x0030) -#define DMA1_Channel4_BASE (AHBPERIPH_BASE + 0x0044) -#define DMA1_Channel5_BASE (AHBPERIPH_BASE + 0x0058) -#define DMA1_Channel6_BASE (AHBPERIPH_BASE + 0x006C) -#define DMA1_Channel7_BASE (AHBPERIPH_BASE + 0x0080) -#define DMA2_BASE (AHBPERIPH_BASE + 0x0400) -#define DMA2_Channel1_BASE (AHBPERIPH_BASE + 0x0408) -#define DMA2_Channel2_BASE (AHBPERIPH_BASE + 0x041C) -#define DMA2_Channel3_BASE (AHBPERIPH_BASE + 0x0430) -#define DMA2_Channel4_BASE (AHBPERIPH_BASE + 0x0444) -#define DMA2_Channel5_BASE (AHBPERIPH_BASE + 0x0458) -#define RCC_BASE (AHBPERIPH_BASE + 0x1000) -#define CRC_BASE (AHBPERIPH_BASE + 0x3000) - -#define FLASH_R_BASE (AHBPERIPH_BASE + 0x2000) /*!< Flash registers base address */ -#define OB_BASE ((uint32_t)0x1FFFF800) /*!< Flash Option Bytes base address */ - -#define ETH_BASE (AHBPERIPH_BASE + 0x8000) -#define ETH_MAC_BASE (ETH_BASE) -#define ETH_MMC_BASE (ETH_BASE + 0x0100) -#define ETH_PTP_BASE (ETH_BASE + 0x0700) -#define ETH_DMA_BASE (ETH_BASE + 0x1000) - -#define FSMC_Bank1_R_BASE (FSMC_R_BASE + 0x0000) /*!< FSMC Bank1 registers base address */ -#define FSMC_Bank1E_R_BASE (FSMC_R_BASE + 0x0104) /*!< FSMC Bank1E registers base address */ -#define FSMC_Bank2_R_BASE (FSMC_R_BASE + 0x0060) /*!< FSMC Bank2 registers base address */ -#define FSMC_Bank3_R_BASE (FSMC_R_BASE + 0x0080) /*!< FSMC Bank3 registers base address */ -#define FSMC_Bank4_R_BASE (FSMC_R_BASE + 0x00A0) /*!< FSMC Bank4 registers base address */ - -#define DBGMCU_BASE ((uint32_t)0xE0042000) /*!< Debug MCU registers base address */ - -/** - * @} - */ - -/** @addtogroup Peripheral_declaration - * @{ - */ - -#define TIM2 ((TIM_TypeDef *) TIM2_BASE) -#define TIM3 ((TIM_TypeDef *) TIM3_BASE) -#define TIM4 ((TIM_TypeDef *) TIM4_BASE) -#define TIM5 ((TIM_TypeDef *) TIM5_BASE) -#define TIM6 ((TIM_TypeDef *) TIM6_BASE) -#define TIM7 ((TIM_TypeDef *) TIM7_BASE) -#define TIM12 ((TIM_TypeDef *) TIM12_BASE) -#define TIM13 ((TIM_TypeDef *) TIM13_BASE) -#define TIM14 ((TIM_TypeDef *) TIM14_BASE) -#define RTC ((RTC_TypeDef *) RTC_BASE) -#define WWDG ((WWDG_TypeDef *) WWDG_BASE) -#define IWDG ((IWDG_TypeDef *) IWDG_BASE) -#define SPI2 ((SPI_TypeDef *) SPI2_BASE) -#define SPI3 ((SPI_TypeDef *) SPI3_BASE) -#define USART2 ((USART_TypeDef *) USART2_BASE) -#define USART3 ((USART_TypeDef *) USART3_BASE) -#define UART4 ((USART_TypeDef *) UART4_BASE) -#define UART5 ((USART_TypeDef *) UART5_BASE) -#define I2C1 ((I2C_TypeDef *) I2C1_BASE) -#define I2C2 ((I2C_TypeDef *) I2C2_BASE) -#define CAN1 ((CAN_TypeDef *) CAN1_BASE) -#define CAN2 ((CAN_TypeDef *) CAN2_BASE) -#define BKP ((BKP_TypeDef *) BKP_BASE) -#define PWR ((PWR_TypeDef *) PWR_BASE) -#define DAC ((DAC_TypeDef *) DAC_BASE) -#define CEC ((CEC_TypeDef *) CEC_BASE) -#define AFIO ((AFIO_TypeDef *) AFIO_BASE) -#define EXTI ((EXTI_TypeDef *) EXTI_BASE) -#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) -#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) -#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE) -#define GPIOD ((GPIO_TypeDef *) GPIOD_BASE) -#define GPIOE ((GPIO_TypeDef *) GPIOE_BASE) -#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE) -#define GPIOG ((GPIO_TypeDef *) GPIOG_BASE) -#define ADC1 ((ADC_TypeDef *) ADC1_BASE) -#define ADC2 ((ADC_TypeDef *) ADC2_BASE) -#define TIM1 ((TIM_TypeDef *) TIM1_BASE) -#define SPI1 ((SPI_TypeDef *) SPI1_BASE) -#define TIM8 ((TIM_TypeDef *) TIM8_BASE) -#define USART1 ((USART_TypeDef *) USART1_BASE) -#define ADC3 ((ADC_TypeDef *) ADC3_BASE) -#define TIM15 ((TIM_TypeDef *) TIM15_BASE) -#define TIM16 ((TIM_TypeDef *) TIM16_BASE) -#define TIM17 ((TIM_TypeDef *) TIM17_BASE) -#define TIM9 ((TIM_TypeDef *) TIM9_BASE) -#define TIM10 ((TIM_TypeDef *) TIM10_BASE) -#define TIM11 ((TIM_TypeDef *) TIM11_BASE) -#define SDIO ((SDIO_TypeDef *) SDIO_BASE) -#define DMA1 ((DMA_TypeDef *) DMA1_BASE) -#define DMA2 ((DMA_TypeDef *) DMA2_BASE) -#define DMA1_Channel1 ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE) -#define DMA1_Channel2 ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE) -#define DMA1_Channel3 ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE) -#define DMA1_Channel4 ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE) -#define DMA1_Channel5 ((DMA_Channel_TypeDef *) DMA1_Channel5_BASE) -#define DMA1_Channel6 ((DMA_Channel_TypeDef *) DMA1_Channel6_BASE) -#define DMA1_Channel7 ((DMA_Channel_TypeDef *) DMA1_Channel7_BASE) -#define DMA2_Channel1 ((DMA_Channel_TypeDef *) DMA2_Channel1_BASE) -#define DMA2_Channel2 ((DMA_Channel_TypeDef *) DMA2_Channel2_BASE) -#define DMA2_Channel3 ((DMA_Channel_TypeDef *) DMA2_Channel3_BASE) -#define DMA2_Channel4 ((DMA_Channel_TypeDef *) DMA2_Channel4_BASE) -#define DMA2_Channel5 ((DMA_Channel_TypeDef *) DMA2_Channel5_BASE) -#define RCC ((RCC_TypeDef *) RCC_BASE) -#define CRC ((CRC_TypeDef *) CRC_BASE) -#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE) -#define OB ((OB_TypeDef *) OB_BASE) -#define ETH ((ETH_TypeDef *) ETH_BASE) -#define FSMC_Bank1 ((FSMC_Bank1_TypeDef *) FSMC_Bank1_R_BASE) -#define FSMC_Bank1E ((FSMC_Bank1E_TypeDef *) FSMC_Bank1E_R_BASE) -#define FSMC_Bank2 ((FSMC_Bank2_TypeDef *) FSMC_Bank2_R_BASE) -#define FSMC_Bank3 ((FSMC_Bank3_TypeDef *) FSMC_Bank3_R_BASE) -#define FSMC_Bank4 ((FSMC_Bank4_TypeDef *) FSMC_Bank4_R_BASE) -#define DBGMCU ((DBGMCU_TypeDef *) DBGMCU_BASE) - -/** - * @} - */ - -/** @addtogroup Exported_constants - * @{ - */ - - /** @addtogroup Peripheral_Registers_Bits_Definition - * @{ - */ - -/******************************************************************************/ -/* Peripheral Registers_Bits_Definition */ -/******************************************************************************/ - -/******************************************************************************/ -/* */ -/* CRC calculation unit */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for CRC_DR register *********************/ -#define CRC_DR_DR ((uint32_t)0xFFFFFFFF) /*!< Data register bits */ - - -/******************* Bit definition for CRC_IDR register ********************/ -#define CRC_IDR_IDR ((uint8_t)0xFF) /*!< General-purpose 8-bit data register bits */ - - -/******************** Bit definition for CRC_CR register ********************/ -#define CRC_CR_RESET ((uint8_t)0x01) /*!< RESET bit */ - -/******************************************************************************/ -/* */ -/* Power Control */ -/* */ -/******************************************************************************/ - -/******************** Bit definition for PWR_CR register ********************/ -#define PWR_CR_LPDS ((uint16_t)0x0001) /*!< Low-Power Deepsleep */ -#define PWR_CR_PDDS ((uint16_t)0x0002) /*!< Power Down Deepsleep */ -#define PWR_CR_CWUF ((uint16_t)0x0004) /*!< Clear Wakeup Flag */ -#define PWR_CR_CSBF ((uint16_t)0x0008) /*!< Clear Standby Flag */ -#define PWR_CR_PVDE ((uint16_t)0x0010) /*!< Power Voltage Detector Enable */ - -#define PWR_CR_PLS ((uint16_t)0x00E0) /*!< PLS[2:0] bits (PVD Level Selection) */ -#define PWR_CR_PLS_0 ((uint16_t)0x0020) /*!< Bit 0 */ -#define PWR_CR_PLS_1 ((uint16_t)0x0040) /*!< Bit 1 */ -#define PWR_CR_PLS_2 ((uint16_t)0x0080) /*!< Bit 2 */ - -/*!< PVD level configuration */ -#define PWR_CR_PLS_2V2 ((uint16_t)0x0000) /*!< PVD level 2.2V */ -#define PWR_CR_PLS_2V3 ((uint16_t)0x0020) /*!< PVD level 2.3V */ -#define PWR_CR_PLS_2V4 ((uint16_t)0x0040) /*!< PVD level 2.4V */ -#define PWR_CR_PLS_2V5 ((uint16_t)0x0060) /*!< PVD level 2.5V */ -#define PWR_CR_PLS_2V6 ((uint16_t)0x0080) /*!< PVD level 2.6V */ -#define PWR_CR_PLS_2V7 ((uint16_t)0x00A0) /*!< PVD level 2.7V */ -#define PWR_CR_PLS_2V8 ((uint16_t)0x00C0) /*!< PVD level 2.8V */ -#define PWR_CR_PLS_2V9 ((uint16_t)0x00E0) /*!< PVD level 2.9V */ - -#define PWR_CR_DBP ((uint16_t)0x0100) /*!< Disable Backup Domain write protection */ - - -/******************* Bit definition for PWR_CSR register ********************/ -#define PWR_CSR_WUF ((uint16_t)0x0001) /*!< Wakeup Flag */ -#define PWR_CSR_SBF ((uint16_t)0x0002) /*!< Standby Flag */ -#define PWR_CSR_PVDO ((uint16_t)0x0004) /*!< PVD Output */ -#define PWR_CSR_EWUP ((uint16_t)0x0100) /*!< Enable WKUP pin */ - -/******************************************************************************/ -/* */ -/* Backup registers */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for BKP_DR1 register ********************/ -#define BKP_DR1_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR2 register ********************/ -#define BKP_DR2_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR3 register ********************/ -#define BKP_DR3_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR4 register ********************/ -#define BKP_DR4_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR5 register ********************/ -#define BKP_DR5_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR6 register ********************/ -#define BKP_DR6_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR7 register ********************/ -#define BKP_DR7_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR8 register ********************/ -#define BKP_DR8_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR9 register ********************/ -#define BKP_DR9_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR10 register *******************/ -#define BKP_DR10_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR11 register *******************/ -#define BKP_DR11_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR12 register *******************/ -#define BKP_DR12_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR13 register *******************/ -#define BKP_DR13_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR14 register *******************/ -#define BKP_DR14_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR15 register *******************/ -#define BKP_DR15_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR16 register *******************/ -#define BKP_DR16_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR17 register *******************/ -#define BKP_DR17_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/****************** Bit definition for BKP_DR18 register ********************/ -#define BKP_DR18_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR19 register *******************/ -#define BKP_DR19_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR20 register *******************/ -#define BKP_DR20_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR21 register *******************/ -#define BKP_DR21_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR22 register *******************/ -#define BKP_DR22_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR23 register *******************/ -#define BKP_DR23_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR24 register *******************/ -#define BKP_DR24_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR25 register *******************/ -#define BKP_DR25_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR26 register *******************/ -#define BKP_DR26_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR27 register *******************/ -#define BKP_DR27_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR28 register *******************/ -#define BKP_DR28_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR29 register *******************/ -#define BKP_DR29_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR30 register *******************/ -#define BKP_DR30_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR31 register *******************/ -#define BKP_DR31_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR32 register *******************/ -#define BKP_DR32_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR33 register *******************/ -#define BKP_DR33_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR34 register *******************/ -#define BKP_DR34_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR35 register *******************/ -#define BKP_DR35_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR36 register *******************/ -#define BKP_DR36_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR37 register *******************/ -#define BKP_DR37_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR38 register *******************/ -#define BKP_DR38_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR39 register *******************/ -#define BKP_DR39_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR40 register *******************/ -#define BKP_DR40_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR41 register *******************/ -#define BKP_DR41_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/******************* Bit definition for BKP_DR42 register *******************/ -#define BKP_DR42_D ((uint16_t)0xFFFF) /*!< Backup data */ - -/****************** Bit definition for BKP_RTCCR register *******************/ -#define BKP_RTCCR_CAL ((uint16_t)0x007F) /*!< Calibration value */ -#define BKP_RTCCR_CCO ((uint16_t)0x0080) /*!< Calibration Clock Output */ -#define BKP_RTCCR_ASOE ((uint16_t)0x0100) /*!< Alarm or Second Output Enable */ -#define BKP_RTCCR_ASOS ((uint16_t)0x0200) /*!< Alarm or Second Output Selection */ - -/******************** Bit definition for BKP_CR register ********************/ -#define BKP_CR_TPE ((uint8_t)0x01) /*!< TAMPER pin enable */ -#define BKP_CR_TPAL ((uint8_t)0x02) /*!< TAMPER pin active level */ - -/******************* Bit definition for BKP_CSR register ********************/ -#define BKP_CSR_CTE ((uint16_t)0x0001) /*!< Clear Tamper event */ -#define BKP_CSR_CTI ((uint16_t)0x0002) /*!< Clear Tamper Interrupt */ -#define BKP_CSR_TPIE ((uint16_t)0x0004) /*!< TAMPER Pin interrupt enable */ -#define BKP_CSR_TEF ((uint16_t)0x0100) /*!< Tamper Event Flag */ -#define BKP_CSR_TIF ((uint16_t)0x0200) /*!< Tamper Interrupt Flag */ - -/******************************************************************************/ -/* */ -/* Reset and Clock Control */ -/* */ -/******************************************************************************/ - -/******************** Bit definition for RCC_CR register ********************/ -#define RCC_CR_HSION ((uint32_t)0x00000001) /*!< Internal High Speed clock enable */ -#define RCC_CR_HSIRDY ((uint32_t)0x00000002) /*!< Internal High Speed clock ready flag */ -#define RCC_CR_HSITRIM ((uint32_t)0x000000F8) /*!< Internal High Speed clock trimming */ -#define RCC_CR_HSICAL ((uint32_t)0x0000FF00) /*!< Internal High Speed clock Calibration */ -#define RCC_CR_HSEON ((uint32_t)0x00010000) /*!< External High Speed clock enable */ -#define RCC_CR_HSERDY ((uint32_t)0x00020000) /*!< External High Speed clock ready flag */ -#define RCC_CR_HSEBYP ((uint32_t)0x00040000) /*!< External High Speed clock Bypass */ -#define RCC_CR_CSSON ((uint32_t)0x00080000) /*!< Clock Security System enable */ -#define RCC_CR_PLLON ((uint32_t)0x01000000) /*!< PLL enable */ -#define RCC_CR_PLLRDY ((uint32_t)0x02000000) /*!< PLL clock ready flag */ - -#ifdef STM32F10X_CL - #define RCC_CR_PLL2ON ((uint32_t)0x04000000) /*!< PLL2 enable */ - #define RCC_CR_PLL2RDY ((uint32_t)0x08000000) /*!< PLL2 clock ready flag */ - #define RCC_CR_PLL3ON ((uint32_t)0x10000000) /*!< PLL3 enable */ - #define RCC_CR_PLL3RDY ((uint32_t)0x20000000) /*!< PLL3 clock ready flag */ -#endif /* STM32F10X_CL */ - -/******************* Bit definition for RCC_CFGR register *******************/ -/*!< SW configuration */ -#define RCC_CFGR_SW ((uint32_t)0x00000003) /*!< SW[1:0] bits (System clock Switch) */ -#define RCC_CFGR_SW_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define RCC_CFGR_SW_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - -#define RCC_CFGR_SW_HSI ((uint32_t)0x00000000) /*!< HSI selected as system clock */ -#define RCC_CFGR_SW_HSE ((uint32_t)0x00000001) /*!< HSE selected as system clock */ -#define RCC_CFGR_SW_PLL ((uint32_t)0x00000002) /*!< PLL selected as system clock */ - -/*!< SWS configuration */ -#define RCC_CFGR_SWS ((uint32_t)0x0000000C) /*!< SWS[1:0] bits (System Clock Switch Status) */ -#define RCC_CFGR_SWS_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define RCC_CFGR_SWS_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define RCC_CFGR_SWS_HSI ((uint32_t)0x00000000) /*!< HSI oscillator used as system clock */ -#define RCC_CFGR_SWS_HSE ((uint32_t)0x00000004) /*!< HSE oscillator used as system clock */ -#define RCC_CFGR_SWS_PLL ((uint32_t)0x00000008) /*!< PLL used as system clock */ - -/*!< HPRE configuration */ -#define RCC_CFGR_HPRE ((uint32_t)0x000000F0) /*!< HPRE[3:0] bits (AHB prescaler) */ -#define RCC_CFGR_HPRE_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define RCC_CFGR_HPRE_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define RCC_CFGR_HPRE_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define RCC_CFGR_HPRE_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define RCC_CFGR_HPRE_DIV1 ((uint32_t)0x00000000) /*!< SYSCLK not divided */ -#define RCC_CFGR_HPRE_DIV2 ((uint32_t)0x00000080) /*!< SYSCLK divided by 2 */ -#define RCC_CFGR_HPRE_DIV4 ((uint32_t)0x00000090) /*!< SYSCLK divided by 4 */ -#define RCC_CFGR_HPRE_DIV8 ((uint32_t)0x000000A0) /*!< SYSCLK divided by 8 */ -#define RCC_CFGR_HPRE_DIV16 ((uint32_t)0x000000B0) /*!< SYSCLK divided by 16 */ -#define RCC_CFGR_HPRE_DIV64 ((uint32_t)0x000000C0) /*!< SYSCLK divided by 64 */ -#define RCC_CFGR_HPRE_DIV128 ((uint32_t)0x000000D0) /*!< SYSCLK divided by 128 */ -#define RCC_CFGR_HPRE_DIV256 ((uint32_t)0x000000E0) /*!< SYSCLK divided by 256 */ -#define RCC_CFGR_HPRE_DIV512 ((uint32_t)0x000000F0) /*!< SYSCLK divided by 512 */ - -/*!< PPRE1 configuration */ -#define RCC_CFGR_PPRE1 ((uint32_t)0x00000700) /*!< PRE1[2:0] bits (APB1 prescaler) */ -#define RCC_CFGR_PPRE1_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define RCC_CFGR_PPRE1_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define RCC_CFGR_PPRE1_2 ((uint32_t)0x00000400) /*!< Bit 2 */ - -#define RCC_CFGR_PPRE1_DIV1 ((uint32_t)0x00000000) /*!< HCLK not divided */ -#define RCC_CFGR_PPRE1_DIV2 ((uint32_t)0x00000400) /*!< HCLK divided by 2 */ -#define RCC_CFGR_PPRE1_DIV4 ((uint32_t)0x00000500) /*!< HCLK divided by 4 */ -#define RCC_CFGR_PPRE1_DIV8 ((uint32_t)0x00000600) /*!< HCLK divided by 8 */ -#define RCC_CFGR_PPRE1_DIV16 ((uint32_t)0x00000700) /*!< HCLK divided by 16 */ - -/*!< PPRE2 configuration */ -#define RCC_CFGR_PPRE2 ((uint32_t)0x00003800) /*!< PRE2[2:0] bits (APB2 prescaler) */ -#define RCC_CFGR_PPRE2_0 ((uint32_t)0x00000800) /*!< Bit 0 */ -#define RCC_CFGR_PPRE2_1 ((uint32_t)0x00001000) /*!< Bit 1 */ -#define RCC_CFGR_PPRE2_2 ((uint32_t)0x00002000) /*!< Bit 2 */ - -#define RCC_CFGR_PPRE2_DIV1 ((uint32_t)0x00000000) /*!< HCLK not divided */ -#define RCC_CFGR_PPRE2_DIV2 ((uint32_t)0x00002000) /*!< HCLK divided by 2 */ -#define RCC_CFGR_PPRE2_DIV4 ((uint32_t)0x00002800) /*!< HCLK divided by 4 */ -#define RCC_CFGR_PPRE2_DIV8 ((uint32_t)0x00003000) /*!< HCLK divided by 8 */ -#define RCC_CFGR_PPRE2_DIV16 ((uint32_t)0x00003800) /*!< HCLK divided by 16 */ - -/*!< ADCPPRE configuration */ -#define RCC_CFGR_ADCPRE ((uint32_t)0x0000C000) /*!< ADCPRE[1:0] bits (ADC prescaler) */ -#define RCC_CFGR_ADCPRE_0 ((uint32_t)0x00004000) /*!< Bit 0 */ -#define RCC_CFGR_ADCPRE_1 ((uint32_t)0x00008000) /*!< Bit 1 */ - -#define RCC_CFGR_ADCPRE_DIV2 ((uint32_t)0x00000000) /*!< PCLK2 divided by 2 */ -#define RCC_CFGR_ADCPRE_DIV4 ((uint32_t)0x00004000) /*!< PCLK2 divided by 4 */ -#define RCC_CFGR_ADCPRE_DIV6 ((uint32_t)0x00008000) /*!< PCLK2 divided by 6 */ -#define RCC_CFGR_ADCPRE_DIV8 ((uint32_t)0x0000C000) /*!< PCLK2 divided by 8 */ - -#define RCC_CFGR_PLLSRC ((uint32_t)0x00010000) /*!< PLL entry clock source */ - -#define RCC_CFGR_PLLXTPRE ((uint32_t)0x00020000) /*!< HSE divider for PLL entry */ - -/*!< PLLMUL configuration */ -#define RCC_CFGR_PLLMULL ((uint32_t)0x003C0000) /*!< PLLMUL[3:0] bits (PLL multiplication factor) */ -#define RCC_CFGR_PLLMULL_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define RCC_CFGR_PLLMULL_1 ((uint32_t)0x00080000) /*!< Bit 1 */ -#define RCC_CFGR_PLLMULL_2 ((uint32_t)0x00100000) /*!< Bit 2 */ -#define RCC_CFGR_PLLMULL_3 ((uint32_t)0x00200000) /*!< Bit 3 */ - -#ifdef STM32F10X_CL - #define RCC_CFGR_PLLSRC_HSI_Div2 ((uint32_t)0x00000000) /*!< HSI clock divided by 2 selected as PLL entry clock source */ - #define RCC_CFGR_PLLSRC_PREDIV1 ((uint32_t)0x00010000) /*!< PREDIV1 clock selected as PLL entry clock source */ - - #define RCC_CFGR_PLLXTPRE_PREDIV1 ((uint32_t)0x00000000) /*!< PREDIV1 clock not divided for PLL entry */ - #define RCC_CFGR_PLLXTPRE_PREDIV1_Div2 ((uint32_t)0x00020000) /*!< PREDIV1 clock divided by 2 for PLL entry */ - - #define RCC_CFGR_PLLMULL4 ((uint32_t)0x00080000) /*!< PLL input clock * 4 */ - #define RCC_CFGR_PLLMULL5 ((uint32_t)0x000C0000) /*!< PLL input clock * 5 */ - #define RCC_CFGR_PLLMULL6 ((uint32_t)0x00100000) /*!< PLL input clock * 6 */ - #define RCC_CFGR_PLLMULL7 ((uint32_t)0x00140000) /*!< PLL input clock * 7 */ - #define RCC_CFGR_PLLMULL8 ((uint32_t)0x00180000) /*!< PLL input clock * 8 */ - #define RCC_CFGR_PLLMULL9 ((uint32_t)0x001C0000) /*!< PLL input clock * 9 */ - #define RCC_CFGR_PLLMULL6_5 ((uint32_t)0x00340000) /*!< PLL input clock * 6.5 */ - - #define RCC_CFGR_OTGFSPRE ((uint32_t)0x00400000) /*!< USB OTG FS prescaler */ - -/*!< MCO configuration */ - #define RCC_CFGR_MCO ((uint32_t)0x0F000000) /*!< MCO[3:0] bits (Microcontroller Clock Output) */ - #define RCC_CFGR_MCO_0 ((uint32_t)0x01000000) /*!< Bit 0 */ - #define RCC_CFGR_MCO_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - #define RCC_CFGR_MCO_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - #define RCC_CFGR_MCO_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - - #define RCC_CFGR_MCO_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ - #define RCC_CFGR_MCO_SYSCLK ((uint32_t)0x04000000) /*!< System clock selected as MCO source */ - #define RCC_CFGR_MCO_HSI ((uint32_t)0x05000000) /*!< HSI clock selected as MCO source */ - #define RCC_CFGR_MCO_HSE ((uint32_t)0x06000000) /*!< HSE clock selected as MCO source */ - #define RCC_CFGR_MCO_PLLCLK_Div2 ((uint32_t)0x07000000) /*!< PLL clock divided by 2 selected as MCO source */ - #define RCC_CFGR_MCO_PLL2CLK ((uint32_t)0x08000000) /*!< PLL2 clock selected as MCO source*/ - #define RCC_CFGR_MCO_PLL3CLK_Div2 ((uint32_t)0x09000000) /*!< PLL3 clock divided by 2 selected as MCO source*/ - #define RCC_CFGR_MCO_Ext_HSE ((uint32_t)0x0A000000) /*!< XT1 external 3-25 MHz oscillator clock selected as MCO source */ - #define RCC_CFGR_MCO_PLL3CLK ((uint32_t)0x0B000000) /*!< PLL3 clock selected as MCO source */ -#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - #define RCC_CFGR_PLLSRC_HSI_Div2 ((uint32_t)0x00000000) /*!< HSI clock divided by 2 selected as PLL entry clock source */ - #define RCC_CFGR_PLLSRC_PREDIV1 ((uint32_t)0x00010000) /*!< PREDIV1 clock selected as PLL entry clock source */ - - #define RCC_CFGR_PLLXTPRE_PREDIV1 ((uint32_t)0x00000000) /*!< PREDIV1 clock not divided for PLL entry */ - #define RCC_CFGR_PLLXTPRE_PREDIV1_Div2 ((uint32_t)0x00020000) /*!< PREDIV1 clock divided by 2 for PLL entry */ - - #define RCC_CFGR_PLLMULL2 ((uint32_t)0x00000000) /*!< PLL input clock*2 */ - #define RCC_CFGR_PLLMULL3 ((uint32_t)0x00040000) /*!< PLL input clock*3 */ - #define RCC_CFGR_PLLMULL4 ((uint32_t)0x00080000) /*!< PLL input clock*4 */ - #define RCC_CFGR_PLLMULL5 ((uint32_t)0x000C0000) /*!< PLL input clock*5 */ - #define RCC_CFGR_PLLMULL6 ((uint32_t)0x00100000) /*!< PLL input clock*6 */ - #define RCC_CFGR_PLLMULL7 ((uint32_t)0x00140000) /*!< PLL input clock*7 */ - #define RCC_CFGR_PLLMULL8 ((uint32_t)0x00180000) /*!< PLL input clock*8 */ - #define RCC_CFGR_PLLMULL9 ((uint32_t)0x001C0000) /*!< PLL input clock*9 */ - #define RCC_CFGR_PLLMULL10 ((uint32_t)0x00200000) /*!< PLL input clock10 */ - #define RCC_CFGR_PLLMULL11 ((uint32_t)0x00240000) /*!< PLL input clock*11 */ - #define RCC_CFGR_PLLMULL12 ((uint32_t)0x00280000) /*!< PLL input clock*12 */ - #define RCC_CFGR_PLLMULL13 ((uint32_t)0x002C0000) /*!< PLL input clock*13 */ - #define RCC_CFGR_PLLMULL14 ((uint32_t)0x00300000) /*!< PLL input clock*14 */ - #define RCC_CFGR_PLLMULL15 ((uint32_t)0x00340000) /*!< PLL input clock*15 */ - #define RCC_CFGR_PLLMULL16 ((uint32_t)0x00380000) /*!< PLL input clock*16 */ - -/*!< MCO configuration */ - #define RCC_CFGR_MCO ((uint32_t)0x07000000) /*!< MCO[2:0] bits (Microcontroller Clock Output) */ - #define RCC_CFGR_MCO_0 ((uint32_t)0x01000000) /*!< Bit 0 */ - #define RCC_CFGR_MCO_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - #define RCC_CFGR_MCO_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - - #define RCC_CFGR_MCO_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ - #define RCC_CFGR_MCO_SYSCLK ((uint32_t)0x04000000) /*!< System clock selected as MCO source */ - #define RCC_CFGR_MCO_HSI ((uint32_t)0x05000000) /*!< HSI clock selected as MCO source */ - #define RCC_CFGR_MCO_HSE ((uint32_t)0x06000000) /*!< HSE clock selected as MCO source */ - #define RCC_CFGR_MCO_PLL ((uint32_t)0x07000000) /*!< PLL clock divided by 2 selected as MCO source */ -#else - #define RCC_CFGR_PLLSRC_HSI_Div2 ((uint32_t)0x00000000) /*!< HSI clock divided by 2 selected as PLL entry clock source */ - #define RCC_CFGR_PLLSRC_HSE ((uint32_t)0x00010000) /*!< HSE clock selected as PLL entry clock source */ - - #define RCC_CFGR_PLLXTPRE_HSE ((uint32_t)0x00000000) /*!< HSE clock not divided for PLL entry */ - #define RCC_CFGR_PLLXTPRE_HSE_Div2 ((uint32_t)0x00020000) /*!< HSE clock divided by 2 for PLL entry */ - - #define RCC_CFGR_PLLMULL2 ((uint32_t)0x00000000) /*!< PLL input clock*2 */ - #define RCC_CFGR_PLLMULL3 ((uint32_t)0x00040000) /*!< PLL input clock*3 */ - #define RCC_CFGR_PLLMULL4 ((uint32_t)0x00080000) /*!< PLL input clock*4 */ - #define RCC_CFGR_PLLMULL5 ((uint32_t)0x000C0000) /*!< PLL input clock*5 */ - #define RCC_CFGR_PLLMULL6 ((uint32_t)0x00100000) /*!< PLL input clock*6 */ - #define RCC_CFGR_PLLMULL7 ((uint32_t)0x00140000) /*!< PLL input clock*7 */ - #define RCC_CFGR_PLLMULL8 ((uint32_t)0x00180000) /*!< PLL input clock*8 */ - #define RCC_CFGR_PLLMULL9 ((uint32_t)0x001C0000) /*!< PLL input clock*9 */ - #define RCC_CFGR_PLLMULL10 ((uint32_t)0x00200000) /*!< PLL input clock10 */ - #define RCC_CFGR_PLLMULL11 ((uint32_t)0x00240000) /*!< PLL input clock*11 */ - #define RCC_CFGR_PLLMULL12 ((uint32_t)0x00280000) /*!< PLL input clock*12 */ - #define RCC_CFGR_PLLMULL13 ((uint32_t)0x002C0000) /*!< PLL input clock*13 */ - #define RCC_CFGR_PLLMULL14 ((uint32_t)0x00300000) /*!< PLL input clock*14 */ - #define RCC_CFGR_PLLMULL15 ((uint32_t)0x00340000) /*!< PLL input clock*15 */ - #define RCC_CFGR_PLLMULL16 ((uint32_t)0x00380000) /*!< PLL input clock*16 */ - #define RCC_CFGR_USBPRE ((uint32_t)0x00400000) /*!< USB Device prescaler */ - -/*!< MCO configuration */ - #define RCC_CFGR_MCO ((uint32_t)0x07000000) /*!< MCO[2:0] bits (Microcontroller Clock Output) */ - #define RCC_CFGR_MCO_0 ((uint32_t)0x01000000) /*!< Bit 0 */ - #define RCC_CFGR_MCO_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - #define RCC_CFGR_MCO_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - - #define RCC_CFGR_MCO_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ - #define RCC_CFGR_MCO_SYSCLK ((uint32_t)0x04000000) /*!< System clock selected as MCO source */ - #define RCC_CFGR_MCO_HSI ((uint32_t)0x05000000) /*!< HSI clock selected as MCO source */ - #define RCC_CFGR_MCO_HSE ((uint32_t)0x06000000) /*!< HSE clock selected as MCO source */ - #define RCC_CFGR_MCO_PLL ((uint32_t)0x07000000) /*!< PLL clock divided by 2 selected as MCO source */ -#endif /* STM32F10X_CL */ - -/*!<****************** Bit definition for RCC_CIR register ********************/ -#define RCC_CIR_LSIRDYF ((uint32_t)0x00000001) /*!< LSI Ready Interrupt flag */ -#define RCC_CIR_LSERDYF ((uint32_t)0x00000002) /*!< LSE Ready Interrupt flag */ -#define RCC_CIR_HSIRDYF ((uint32_t)0x00000004) /*!< HSI Ready Interrupt flag */ -#define RCC_CIR_HSERDYF ((uint32_t)0x00000008) /*!< HSE Ready Interrupt flag */ -#define RCC_CIR_PLLRDYF ((uint32_t)0x00000010) /*!< PLL Ready Interrupt flag */ -#define RCC_CIR_CSSF ((uint32_t)0x00000080) /*!< Clock Security System Interrupt flag */ -#define RCC_CIR_LSIRDYIE ((uint32_t)0x00000100) /*!< LSI Ready Interrupt Enable */ -#define RCC_CIR_LSERDYIE ((uint32_t)0x00000200) /*!< LSE Ready Interrupt Enable */ -#define RCC_CIR_HSIRDYIE ((uint32_t)0x00000400) /*!< HSI Ready Interrupt Enable */ -#define RCC_CIR_HSERDYIE ((uint32_t)0x00000800) /*!< HSE Ready Interrupt Enable */ -#define RCC_CIR_PLLRDYIE ((uint32_t)0x00001000) /*!< PLL Ready Interrupt Enable */ -#define RCC_CIR_LSIRDYC ((uint32_t)0x00010000) /*!< LSI Ready Interrupt Clear */ -#define RCC_CIR_LSERDYC ((uint32_t)0x00020000) /*!< LSE Ready Interrupt Clear */ -#define RCC_CIR_HSIRDYC ((uint32_t)0x00040000) /*!< HSI Ready Interrupt Clear */ -#define RCC_CIR_HSERDYC ((uint32_t)0x00080000) /*!< HSE Ready Interrupt Clear */ -#define RCC_CIR_PLLRDYC ((uint32_t)0x00100000) /*!< PLL Ready Interrupt Clear */ -#define RCC_CIR_CSSC ((uint32_t)0x00800000) /*!< Clock Security System Interrupt Clear */ - -#ifdef STM32F10X_CL - #define RCC_CIR_PLL2RDYF ((uint32_t)0x00000020) /*!< PLL2 Ready Interrupt flag */ - #define RCC_CIR_PLL3RDYF ((uint32_t)0x00000040) /*!< PLL3 Ready Interrupt flag */ - #define RCC_CIR_PLL2RDYIE ((uint32_t)0x00002000) /*!< PLL2 Ready Interrupt Enable */ - #define RCC_CIR_PLL3RDYIE ((uint32_t)0x00004000) /*!< PLL3 Ready Interrupt Enable */ - #define RCC_CIR_PLL2RDYC ((uint32_t)0x00200000) /*!< PLL2 Ready Interrupt Clear */ - #define RCC_CIR_PLL3RDYC ((uint32_t)0x00400000) /*!< PLL3 Ready Interrupt Clear */ -#endif /* STM32F10X_CL */ - -/***************** Bit definition for RCC_APB2RSTR register *****************/ -#define RCC_APB2RSTR_AFIORST ((uint32_t)0x00000001) /*!< Alternate Function I/O reset */ -#define RCC_APB2RSTR_IOPARST ((uint32_t)0x00000004) /*!< I/O port A reset */ -#define RCC_APB2RSTR_IOPBRST ((uint32_t)0x00000008) /*!< I/O port B reset */ -#define RCC_APB2RSTR_IOPCRST ((uint32_t)0x00000010) /*!< I/O port C reset */ -#define RCC_APB2RSTR_IOPDRST ((uint32_t)0x00000020) /*!< I/O port D reset */ -#define RCC_APB2RSTR_ADC1RST ((uint32_t)0x00000200) /*!< ADC 1 interface reset */ - -#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) -#define RCC_APB2RSTR_ADC2RST ((uint32_t)0x00000400) /*!< ADC 2 interface reset */ -#endif - -#define RCC_APB2RSTR_TIM1RST ((uint32_t)0x00000800) /*!< TIM1 Timer reset */ -#define RCC_APB2RSTR_SPI1RST ((uint32_t)0x00001000) /*!< SPI 1 reset */ -#define RCC_APB2RSTR_USART1RST ((uint32_t)0x00004000) /*!< USART1 reset */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -#define RCC_APB2RSTR_TIM15RST ((uint32_t)0x00010000) /*!< TIM15 Timer reset */ -#define RCC_APB2RSTR_TIM16RST ((uint32_t)0x00020000) /*!< TIM16 Timer reset */ -#define RCC_APB2RSTR_TIM17RST ((uint32_t)0x00040000) /*!< TIM17 Timer reset */ -#endif - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) - #define RCC_APB2RSTR_IOPERST ((uint32_t)0x00000040) /*!< I/O port E reset */ -#endif /* STM32F10X_LD && STM32F10X_LD_VL */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_XL) - #define RCC_APB2RSTR_IOPFRST ((uint32_t)0x00000080) /*!< I/O port F reset */ - #define RCC_APB2RSTR_IOPGRST ((uint32_t)0x00000100) /*!< I/O port G reset */ - #define RCC_APB2RSTR_TIM8RST ((uint32_t)0x00002000) /*!< TIM8 Timer reset */ - #define RCC_APB2RSTR_ADC3RST ((uint32_t)0x00008000) /*!< ADC3 interface reset */ -#endif - -#if defined (STM32F10X_HD_VL) - #define RCC_APB2RSTR_IOPFRST ((uint32_t)0x00000080) /*!< I/O port F reset */ - #define RCC_APB2RSTR_IOPGRST ((uint32_t)0x00000100) /*!< I/O port G reset */ -#endif - -#ifdef STM32F10X_XL - #define RCC_APB2RSTR_TIM9RST ((uint32_t)0x00080000) /*!< TIM9 Timer reset */ - #define RCC_APB2RSTR_TIM10RST ((uint32_t)0x00100000) /*!< TIM10 Timer reset */ - #define RCC_APB2RSTR_TIM11RST ((uint32_t)0x00200000) /*!< TIM11 Timer reset */ -#endif /* STM32F10X_XL */ - -/***************** Bit definition for RCC_APB1RSTR register *****************/ -#define RCC_APB1RSTR_TIM2RST ((uint32_t)0x00000001) /*!< Timer 2 reset */ -#define RCC_APB1RSTR_TIM3RST ((uint32_t)0x00000002) /*!< Timer 3 reset */ -#define RCC_APB1RSTR_WWDGRST ((uint32_t)0x00000800) /*!< Window Watchdog reset */ -#define RCC_APB1RSTR_USART2RST ((uint32_t)0x00020000) /*!< USART 2 reset */ -#define RCC_APB1RSTR_I2C1RST ((uint32_t)0x00200000) /*!< I2C 1 reset */ - -#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) -#define RCC_APB1RSTR_CAN1RST ((uint32_t)0x02000000) /*!< CAN1 reset */ -#endif - -#define RCC_APB1RSTR_BKPRST ((uint32_t)0x08000000) /*!< Backup interface reset */ -#define RCC_APB1RSTR_PWRRST ((uint32_t)0x10000000) /*!< Power interface reset */ - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) - #define RCC_APB1RSTR_TIM4RST ((uint32_t)0x00000004) /*!< Timer 4 reset */ - #define RCC_APB1RSTR_SPI2RST ((uint32_t)0x00004000) /*!< SPI 2 reset */ - #define RCC_APB1RSTR_USART3RST ((uint32_t)0x00040000) /*!< USART 3 reset */ - #define RCC_APB1RSTR_I2C2RST ((uint32_t)0x00400000) /*!< I2C 2 reset */ -#endif /* STM32F10X_LD && STM32F10X_LD_VL */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_MD) || defined (STM32F10X_LD) || defined (STM32F10X_XL) - #define RCC_APB1RSTR_USBRST ((uint32_t)0x00800000) /*!< USB Device reset */ -#endif - -#if defined (STM32F10X_HD) || defined (STM32F10X_CL) || defined (STM32F10X_XL) - #define RCC_APB1RSTR_TIM5RST ((uint32_t)0x00000008) /*!< Timer 5 reset */ - #define RCC_APB1RSTR_TIM6RST ((uint32_t)0x00000010) /*!< Timer 6 reset */ - #define RCC_APB1RSTR_TIM7RST ((uint32_t)0x00000020) /*!< Timer 7 reset */ - #define RCC_APB1RSTR_SPI3RST ((uint32_t)0x00008000) /*!< SPI 3 reset */ - #define RCC_APB1RSTR_UART4RST ((uint32_t)0x00080000) /*!< UART 4 reset */ - #define RCC_APB1RSTR_UART5RST ((uint32_t)0x00100000) /*!< UART 5 reset */ - #define RCC_APB1RSTR_DACRST ((uint32_t)0x20000000) /*!< DAC interface reset */ -#endif - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - #define RCC_APB1RSTR_TIM6RST ((uint32_t)0x00000010) /*!< Timer 6 reset */ - #define RCC_APB1RSTR_TIM7RST ((uint32_t)0x00000020) /*!< Timer 7 reset */ - #define RCC_APB1RSTR_DACRST ((uint32_t)0x20000000) /*!< DAC interface reset */ - #define RCC_APB1RSTR_CECRST ((uint32_t)0x40000000) /*!< CEC interface reset */ -#endif - -#if defined (STM32F10X_HD_VL) - #define RCC_APB1RSTR_TIM5RST ((uint32_t)0x00000008) /*!< Timer 5 reset */ - #define RCC_APB1RSTR_TIM12RST ((uint32_t)0x00000040) /*!< TIM12 Timer reset */ - #define RCC_APB1RSTR_TIM13RST ((uint32_t)0x00000080) /*!< TIM13 Timer reset */ - #define RCC_APB1RSTR_TIM14RST ((uint32_t)0x00000100) /*!< TIM14 Timer reset */ - #define RCC_APB1RSTR_SPI3RST ((uint32_t)0x00008000) /*!< SPI 3 reset */ - #define RCC_APB1RSTR_UART4RST ((uint32_t)0x00080000) /*!< UART 4 reset */ - #define RCC_APB1RSTR_UART5RST ((uint32_t)0x00100000) /*!< UART 5 reset */ -#endif - -#ifdef STM32F10X_CL - #define RCC_APB1RSTR_CAN2RST ((uint32_t)0x04000000) /*!< CAN2 reset */ -#endif /* STM32F10X_CL */ - -#ifdef STM32F10X_XL - #define RCC_APB1RSTR_TIM12RST ((uint32_t)0x00000040) /*!< TIM12 Timer reset */ - #define RCC_APB1RSTR_TIM13RST ((uint32_t)0x00000080) /*!< TIM13 Timer reset */ - #define RCC_APB1RSTR_TIM14RST ((uint32_t)0x00000100) /*!< TIM14 Timer reset */ -#endif /* STM32F10X_XL */ - -/****************** Bit definition for RCC_AHBENR register ******************/ -#define RCC_AHBENR_DMA1EN ((uint16_t)0x0001) /*!< DMA1 clock enable */ -#define RCC_AHBENR_SRAMEN ((uint16_t)0x0004) /*!< SRAM interface clock enable */ -#define RCC_AHBENR_FLITFEN ((uint16_t)0x0010) /*!< FLITF clock enable */ -#define RCC_AHBENR_CRCEN ((uint16_t)0x0040) /*!< CRC clock enable */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_CL) || defined (STM32F10X_HD_VL) - #define RCC_AHBENR_DMA2EN ((uint16_t)0x0002) /*!< DMA2 clock enable */ -#endif - -#if defined (STM32F10X_HD) || defined (STM32F10X_XL) - #define RCC_AHBENR_FSMCEN ((uint16_t)0x0100) /*!< FSMC clock enable */ - #define RCC_AHBENR_SDIOEN ((uint16_t)0x0400) /*!< SDIO clock enable */ -#endif - -#if defined (STM32F10X_HD_VL) - #define RCC_AHBENR_FSMCEN ((uint16_t)0x0100) /*!< FSMC clock enable */ -#endif - -#ifdef STM32F10X_CL - #define RCC_AHBENR_OTGFSEN ((uint32_t)0x00001000) /*!< USB OTG FS clock enable */ - #define RCC_AHBENR_ETHMACEN ((uint32_t)0x00004000) /*!< ETHERNET MAC clock enable */ - #define RCC_AHBENR_ETHMACTXEN ((uint32_t)0x00008000) /*!< ETHERNET MAC Tx clock enable */ - #define RCC_AHBENR_ETHMACRXEN ((uint32_t)0x00010000) /*!< ETHERNET MAC Rx clock enable */ -#endif /* STM32F10X_CL */ - -/****************** Bit definition for RCC_APB2ENR register *****************/ -#define RCC_APB2ENR_AFIOEN ((uint32_t)0x00000001) /*!< Alternate Function I/O clock enable */ -#define RCC_APB2ENR_IOPAEN ((uint32_t)0x00000004) /*!< I/O port A clock enable */ -#define RCC_APB2ENR_IOPBEN ((uint32_t)0x00000008) /*!< I/O port B clock enable */ -#define RCC_APB2ENR_IOPCEN ((uint32_t)0x00000010) /*!< I/O port C clock enable */ -#define RCC_APB2ENR_IOPDEN ((uint32_t)0x00000020) /*!< I/O port D clock enable */ -#define RCC_APB2ENR_ADC1EN ((uint32_t)0x00000200) /*!< ADC 1 interface clock enable */ - -#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) -#define RCC_APB2ENR_ADC2EN ((uint32_t)0x00000400) /*!< ADC 2 interface clock enable */ -#endif - -#define RCC_APB2ENR_TIM1EN ((uint32_t)0x00000800) /*!< TIM1 Timer clock enable */ -#define RCC_APB2ENR_SPI1EN ((uint32_t)0x00001000) /*!< SPI 1 clock enable */ -#define RCC_APB2ENR_USART1EN ((uint32_t)0x00004000) /*!< USART1 clock enable */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -#define RCC_APB2ENR_TIM15EN ((uint32_t)0x00010000) /*!< TIM15 Timer clock enable */ -#define RCC_APB2ENR_TIM16EN ((uint32_t)0x00020000) /*!< TIM16 Timer clock enable */ -#define RCC_APB2ENR_TIM17EN ((uint32_t)0x00040000) /*!< TIM17 Timer clock enable */ -#endif - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) - #define RCC_APB2ENR_IOPEEN ((uint32_t)0x00000040) /*!< I/O port E clock enable */ -#endif /* STM32F10X_LD && STM32F10X_LD_VL */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_XL) - #define RCC_APB2ENR_IOPFEN ((uint32_t)0x00000080) /*!< I/O port F clock enable */ - #define RCC_APB2ENR_IOPGEN ((uint32_t)0x00000100) /*!< I/O port G clock enable */ - #define RCC_APB2ENR_TIM8EN ((uint32_t)0x00002000) /*!< TIM8 Timer clock enable */ - #define RCC_APB2ENR_ADC3EN ((uint32_t)0x00008000) /*!< DMA1 clock enable */ -#endif - -#if defined (STM32F10X_HD_VL) - #define RCC_APB2ENR_IOPFEN ((uint32_t)0x00000080) /*!< I/O port F clock enable */ - #define RCC_APB2ENR_IOPGEN ((uint32_t)0x00000100) /*!< I/O port G clock enable */ -#endif - -#ifdef STM32F10X_XL - #define RCC_APB2ENR_TIM9EN ((uint32_t)0x00080000) /*!< TIM9 Timer clock enable */ - #define RCC_APB2ENR_TIM10EN ((uint32_t)0x00100000) /*!< TIM10 Timer clock enable */ - #define RCC_APB2ENR_TIM11EN ((uint32_t)0x00200000) /*!< TIM11 Timer clock enable */ -#endif - -/***************** Bit definition for RCC_APB1ENR register ******************/ -#define RCC_APB1ENR_TIM2EN ((uint32_t)0x00000001) /*!< Timer 2 clock enabled*/ -#define RCC_APB1ENR_TIM3EN ((uint32_t)0x00000002) /*!< Timer 3 clock enable */ -#define RCC_APB1ENR_WWDGEN ((uint32_t)0x00000800) /*!< Window Watchdog clock enable */ -#define RCC_APB1ENR_USART2EN ((uint32_t)0x00020000) /*!< USART 2 clock enable */ -#define RCC_APB1ENR_I2C1EN ((uint32_t)0x00200000) /*!< I2C 1 clock enable */ - -#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) -#define RCC_APB1ENR_CAN1EN ((uint32_t)0x02000000) /*!< CAN1 clock enable */ -#endif - -#define RCC_APB1ENR_BKPEN ((uint32_t)0x08000000) /*!< Backup interface clock enable */ -#define RCC_APB1ENR_PWREN ((uint32_t)0x10000000) /*!< Power interface clock enable */ - -#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) - #define RCC_APB1ENR_TIM4EN ((uint32_t)0x00000004) /*!< Timer 4 clock enable */ - #define RCC_APB1ENR_SPI2EN ((uint32_t)0x00004000) /*!< SPI 2 clock enable */ - #define RCC_APB1ENR_USART3EN ((uint32_t)0x00040000) /*!< USART 3 clock enable */ - #define RCC_APB1ENR_I2C2EN ((uint32_t)0x00400000) /*!< I2C 2 clock enable */ -#endif /* STM32F10X_LD && STM32F10X_LD_VL */ - -#if defined (STM32F10X_HD) || defined (STM32F10X_MD) || defined (STM32F10X_LD) - #define RCC_APB1ENR_USBEN ((uint32_t)0x00800000) /*!< USB Device clock enable */ -#endif - -#if defined (STM32F10X_HD) || defined (STM32F10X_CL) - #define RCC_APB1ENR_TIM5EN ((uint32_t)0x00000008) /*!< Timer 5 clock enable */ - #define RCC_APB1ENR_TIM6EN ((uint32_t)0x00000010) /*!< Timer 6 clock enable */ - #define RCC_APB1ENR_TIM7EN ((uint32_t)0x00000020) /*!< Timer 7 clock enable */ - #define RCC_APB1ENR_SPI3EN ((uint32_t)0x00008000) /*!< SPI 3 clock enable */ - #define RCC_APB1ENR_UART4EN ((uint32_t)0x00080000) /*!< UART 4 clock enable */ - #define RCC_APB1ENR_UART5EN ((uint32_t)0x00100000) /*!< UART 5 clock enable */ - #define RCC_APB1ENR_DACEN ((uint32_t)0x20000000) /*!< DAC interface clock enable */ -#endif - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - #define RCC_APB1ENR_TIM6EN ((uint32_t)0x00000010) /*!< Timer 6 clock enable */ - #define RCC_APB1ENR_TIM7EN ((uint32_t)0x00000020) /*!< Timer 7 clock enable */ - #define RCC_APB1ENR_DACEN ((uint32_t)0x20000000) /*!< DAC interface clock enable */ - #define RCC_APB1ENR_CECEN ((uint32_t)0x40000000) /*!< CEC interface clock enable */ -#endif - -#ifdef STM32F10X_HD_VL - #define RCC_APB1ENR_TIM5EN ((uint32_t)0x00000008) /*!< Timer 5 clock enable */ - #define RCC_APB1ENR_TIM12EN ((uint32_t)0x00000040) /*!< TIM12 Timer clock enable */ - #define RCC_APB1ENR_TIM13EN ((uint32_t)0x00000080) /*!< TIM13 Timer clock enable */ - #define RCC_APB1ENR_TIM14EN ((uint32_t)0x00000100) /*!< TIM14 Timer clock enable */ - #define RCC_APB1ENR_SPI3EN ((uint32_t)0x00008000) /*!< SPI 3 clock enable */ - #define RCC_APB1ENR_UART4EN ((uint32_t)0x00080000) /*!< UART 4 clock enable */ - #define RCC_APB1ENR_UART5EN ((uint32_t)0x00100000) /*!< UART 5 clock enable */ -#endif /* STM32F10X_HD_VL */ - -#ifdef STM32F10X_CL - #define RCC_APB1ENR_CAN2EN ((uint32_t)0x04000000) /*!< CAN2 clock enable */ -#endif /* STM32F10X_CL */ - -#ifdef STM32F10X_XL - #define RCC_APB1ENR_TIM12EN ((uint32_t)0x00000040) /*!< TIM12 Timer clock enable */ - #define RCC_APB1ENR_TIM13EN ((uint32_t)0x00000080) /*!< TIM13 Timer clock enable */ - #define RCC_APB1ENR_TIM14EN ((uint32_t)0x00000100) /*!< TIM14 Timer clock enable */ -#endif /* STM32F10X_XL */ - -/******************* Bit definition for RCC_BDCR register *******************/ -#define RCC_BDCR_LSEON ((uint32_t)0x00000001) /*!< External Low Speed oscillator enable */ -#define RCC_BDCR_LSERDY ((uint32_t)0x00000002) /*!< External Low Speed oscillator Ready */ -#define RCC_BDCR_LSEBYP ((uint32_t)0x00000004) /*!< External Low Speed oscillator Bypass */ - -#define RCC_BDCR_RTCSEL ((uint32_t)0x00000300) /*!< RTCSEL[1:0] bits (RTC clock source selection) */ -#define RCC_BDCR_RTCSEL_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define RCC_BDCR_RTCSEL_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - -/*!< RTC congiguration */ -#define RCC_BDCR_RTCSEL_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ -#define RCC_BDCR_RTCSEL_LSE ((uint32_t)0x00000100) /*!< LSE oscillator clock used as RTC clock */ -#define RCC_BDCR_RTCSEL_LSI ((uint32_t)0x00000200) /*!< LSI oscillator clock used as RTC clock */ -#define RCC_BDCR_RTCSEL_HSE ((uint32_t)0x00000300) /*!< HSE oscillator clock divided by 128 used as RTC clock */ - -#define RCC_BDCR_RTCEN ((uint32_t)0x00008000) /*!< RTC clock enable */ -#define RCC_BDCR_BDRST ((uint32_t)0x00010000) /*!< Backup domain software reset */ - -/******************* Bit definition for RCC_CSR register ********************/ -#define RCC_CSR_LSION ((uint32_t)0x00000001) /*!< Internal Low Speed oscillator enable */ -#define RCC_CSR_LSIRDY ((uint32_t)0x00000002) /*!< Internal Low Speed oscillator Ready */ -#define RCC_CSR_RMVF ((uint32_t)0x01000000) /*!< Remove reset flag */ -#define RCC_CSR_PINRSTF ((uint32_t)0x04000000) /*!< PIN reset flag */ -#define RCC_CSR_PORRSTF ((uint32_t)0x08000000) /*!< POR/PDR reset flag */ -#define RCC_CSR_SFTRSTF ((uint32_t)0x10000000) /*!< Software Reset flag */ -#define RCC_CSR_IWDGRSTF ((uint32_t)0x20000000) /*!< Independent Watchdog reset flag */ -#define RCC_CSR_WWDGRSTF ((uint32_t)0x40000000) /*!< Window watchdog reset flag */ -#define RCC_CSR_LPWRRSTF ((uint32_t)0x80000000) /*!< Low-Power reset flag */ - -#ifdef STM32F10X_CL -/******************* Bit definition for RCC_AHBRSTR register ****************/ - #define RCC_AHBRSTR_OTGFSRST ((uint32_t)0x00001000) /*!< USB OTG FS reset */ - #define RCC_AHBRSTR_ETHMACRST ((uint32_t)0x00004000) /*!< ETHERNET MAC reset */ - -/******************* Bit definition for RCC_CFGR2 register ******************/ -/*!< PREDIV1 configuration */ - #define RCC_CFGR2_PREDIV1 ((uint32_t)0x0000000F) /*!< PREDIV1[3:0] bits */ - #define RCC_CFGR2_PREDIV1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ - #define RCC_CFGR2_PREDIV1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - #define RCC_CFGR2_PREDIV1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ - #define RCC_CFGR2_PREDIV1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - - #define RCC_CFGR2_PREDIV1_DIV1 ((uint32_t)0x00000000) /*!< PREDIV1 input clock not divided */ - #define RCC_CFGR2_PREDIV1_DIV2 ((uint32_t)0x00000001) /*!< PREDIV1 input clock divided by 2 */ - #define RCC_CFGR2_PREDIV1_DIV3 ((uint32_t)0x00000002) /*!< PREDIV1 input clock divided by 3 */ - #define RCC_CFGR2_PREDIV1_DIV4 ((uint32_t)0x00000003) /*!< PREDIV1 input clock divided by 4 */ - #define RCC_CFGR2_PREDIV1_DIV5 ((uint32_t)0x00000004) /*!< PREDIV1 input clock divided by 5 */ - #define RCC_CFGR2_PREDIV1_DIV6 ((uint32_t)0x00000005) /*!< PREDIV1 input clock divided by 6 */ - #define RCC_CFGR2_PREDIV1_DIV7 ((uint32_t)0x00000006) /*!< PREDIV1 input clock divided by 7 */ - #define RCC_CFGR2_PREDIV1_DIV8 ((uint32_t)0x00000007) /*!< PREDIV1 input clock divided by 8 */ - #define RCC_CFGR2_PREDIV1_DIV9 ((uint32_t)0x00000008) /*!< PREDIV1 input clock divided by 9 */ - #define RCC_CFGR2_PREDIV1_DIV10 ((uint32_t)0x00000009) /*!< PREDIV1 input clock divided by 10 */ - #define RCC_CFGR2_PREDIV1_DIV11 ((uint32_t)0x0000000A) /*!< PREDIV1 input clock divided by 11 */ - #define RCC_CFGR2_PREDIV1_DIV12 ((uint32_t)0x0000000B) /*!< PREDIV1 input clock divided by 12 */ - #define RCC_CFGR2_PREDIV1_DIV13 ((uint32_t)0x0000000C) /*!< PREDIV1 input clock divided by 13 */ - #define RCC_CFGR2_PREDIV1_DIV14 ((uint32_t)0x0000000D) /*!< PREDIV1 input clock divided by 14 */ - #define RCC_CFGR2_PREDIV1_DIV15 ((uint32_t)0x0000000E) /*!< PREDIV1 input clock divided by 15 */ - #define RCC_CFGR2_PREDIV1_DIV16 ((uint32_t)0x0000000F) /*!< PREDIV1 input clock divided by 16 */ - -/*!< PREDIV2 configuration */ - #define RCC_CFGR2_PREDIV2 ((uint32_t)0x000000F0) /*!< PREDIV2[3:0] bits */ - #define RCC_CFGR2_PREDIV2_0 ((uint32_t)0x00000010) /*!< Bit 0 */ - #define RCC_CFGR2_PREDIV2_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - #define RCC_CFGR2_PREDIV2_2 ((uint32_t)0x00000040) /*!< Bit 2 */ - #define RCC_CFGR2_PREDIV2_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - - #define RCC_CFGR2_PREDIV2_DIV1 ((uint32_t)0x00000000) /*!< PREDIV2 input clock not divided */ - #define RCC_CFGR2_PREDIV2_DIV2 ((uint32_t)0x00000010) /*!< PREDIV2 input clock divided by 2 */ - #define RCC_CFGR2_PREDIV2_DIV3 ((uint32_t)0x00000020) /*!< PREDIV2 input clock divided by 3 */ - #define RCC_CFGR2_PREDIV2_DIV4 ((uint32_t)0x00000030) /*!< PREDIV2 input clock divided by 4 */ - #define RCC_CFGR2_PREDIV2_DIV5 ((uint32_t)0x00000040) /*!< PREDIV2 input clock divided by 5 */ - #define RCC_CFGR2_PREDIV2_DIV6 ((uint32_t)0x00000050) /*!< PREDIV2 input clock divided by 6 */ - #define RCC_CFGR2_PREDIV2_DIV7 ((uint32_t)0x00000060) /*!< PREDIV2 input clock divided by 7 */ - #define RCC_CFGR2_PREDIV2_DIV8 ((uint32_t)0x00000070) /*!< PREDIV2 input clock divided by 8 */ - #define RCC_CFGR2_PREDIV2_DIV9 ((uint32_t)0x00000080) /*!< PREDIV2 input clock divided by 9 */ - #define RCC_CFGR2_PREDIV2_DIV10 ((uint32_t)0x00000090) /*!< PREDIV2 input clock divided by 10 */ - #define RCC_CFGR2_PREDIV2_DIV11 ((uint32_t)0x000000A0) /*!< PREDIV2 input clock divided by 11 */ - #define RCC_CFGR2_PREDIV2_DIV12 ((uint32_t)0x000000B0) /*!< PREDIV2 input clock divided by 12 */ - #define RCC_CFGR2_PREDIV2_DIV13 ((uint32_t)0x000000C0) /*!< PREDIV2 input clock divided by 13 */ - #define RCC_CFGR2_PREDIV2_DIV14 ((uint32_t)0x000000D0) /*!< PREDIV2 input clock divided by 14 */ - #define RCC_CFGR2_PREDIV2_DIV15 ((uint32_t)0x000000E0) /*!< PREDIV2 input clock divided by 15 */ - #define RCC_CFGR2_PREDIV2_DIV16 ((uint32_t)0x000000F0) /*!< PREDIV2 input clock divided by 16 */ - -/*!< PLL2MUL configuration */ - #define RCC_CFGR2_PLL2MUL ((uint32_t)0x00000F00) /*!< PLL2MUL[3:0] bits */ - #define RCC_CFGR2_PLL2MUL_0 ((uint32_t)0x00000100) /*!< Bit 0 */ - #define RCC_CFGR2_PLL2MUL_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - #define RCC_CFGR2_PLL2MUL_2 ((uint32_t)0x00000400) /*!< Bit 2 */ - #define RCC_CFGR2_PLL2MUL_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - - #define RCC_CFGR2_PLL2MUL8 ((uint32_t)0x00000600) /*!< PLL2 input clock * 8 */ - #define RCC_CFGR2_PLL2MUL9 ((uint32_t)0x00000700) /*!< PLL2 input clock * 9 */ - #define RCC_CFGR2_PLL2MUL10 ((uint32_t)0x00000800) /*!< PLL2 input clock * 10 */ - #define RCC_CFGR2_PLL2MUL11 ((uint32_t)0x00000900) /*!< PLL2 input clock * 11 */ - #define RCC_CFGR2_PLL2MUL12 ((uint32_t)0x00000A00) /*!< PLL2 input clock * 12 */ - #define RCC_CFGR2_PLL2MUL13 ((uint32_t)0x00000B00) /*!< PLL2 input clock * 13 */ - #define RCC_CFGR2_PLL2MUL14 ((uint32_t)0x00000C00) /*!< PLL2 input clock * 14 */ - #define RCC_CFGR2_PLL2MUL16 ((uint32_t)0x00000E00) /*!< PLL2 input clock * 16 */ - #define RCC_CFGR2_PLL2MUL20 ((uint32_t)0x00000F00) /*!< PLL2 input clock * 20 */ - -/*!< PLL3MUL configuration */ - #define RCC_CFGR2_PLL3MUL ((uint32_t)0x0000F000) /*!< PLL3MUL[3:0] bits */ - #define RCC_CFGR2_PLL3MUL_0 ((uint32_t)0x00001000) /*!< Bit 0 */ - #define RCC_CFGR2_PLL3MUL_1 ((uint32_t)0x00002000) /*!< Bit 1 */ - #define RCC_CFGR2_PLL3MUL_2 ((uint32_t)0x00004000) /*!< Bit 2 */ - #define RCC_CFGR2_PLL3MUL_3 ((uint32_t)0x00008000) /*!< Bit 3 */ - - #define RCC_CFGR2_PLL3MUL8 ((uint32_t)0x00006000) /*!< PLL3 input clock * 8 */ - #define RCC_CFGR2_PLL3MUL9 ((uint32_t)0x00007000) /*!< PLL3 input clock * 9 */ - #define RCC_CFGR2_PLL3MUL10 ((uint32_t)0x00008000) /*!< PLL3 input clock * 10 */ - #define RCC_CFGR2_PLL3MUL11 ((uint32_t)0x00009000) /*!< PLL3 input clock * 11 */ - #define RCC_CFGR2_PLL3MUL12 ((uint32_t)0x0000A000) /*!< PLL3 input clock * 12 */ - #define RCC_CFGR2_PLL3MUL13 ((uint32_t)0x0000B000) /*!< PLL3 input clock * 13 */ - #define RCC_CFGR2_PLL3MUL14 ((uint32_t)0x0000C000) /*!< PLL3 input clock * 14 */ - #define RCC_CFGR2_PLL3MUL16 ((uint32_t)0x0000E000) /*!< PLL3 input clock * 16 */ - #define RCC_CFGR2_PLL3MUL20 ((uint32_t)0x0000F000) /*!< PLL3 input clock * 20 */ - - #define RCC_CFGR2_PREDIV1SRC ((uint32_t)0x00010000) /*!< PREDIV1 entry clock source */ - #define RCC_CFGR2_PREDIV1SRC_PLL2 ((uint32_t)0x00010000) /*!< PLL2 selected as PREDIV1 entry clock source */ - #define RCC_CFGR2_PREDIV1SRC_HSE ((uint32_t)0x00000000) /*!< HSE selected as PREDIV1 entry clock source */ - #define RCC_CFGR2_I2S2SRC ((uint32_t)0x00020000) /*!< I2S2 entry clock source */ - #define RCC_CFGR2_I2S3SRC ((uint32_t)0x00040000) /*!< I2S3 clock source */ -#endif /* STM32F10X_CL */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -/******************* Bit definition for RCC_CFGR2 register ******************/ -/*!< PREDIV1 configuration */ - #define RCC_CFGR2_PREDIV1 ((uint32_t)0x0000000F) /*!< PREDIV1[3:0] bits */ - #define RCC_CFGR2_PREDIV1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ - #define RCC_CFGR2_PREDIV1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - #define RCC_CFGR2_PREDIV1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ - #define RCC_CFGR2_PREDIV1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - - #define RCC_CFGR2_PREDIV1_DIV1 ((uint32_t)0x00000000) /*!< PREDIV1 input clock not divided */ - #define RCC_CFGR2_PREDIV1_DIV2 ((uint32_t)0x00000001) /*!< PREDIV1 input clock divided by 2 */ - #define RCC_CFGR2_PREDIV1_DIV3 ((uint32_t)0x00000002) /*!< PREDIV1 input clock divided by 3 */ - #define RCC_CFGR2_PREDIV1_DIV4 ((uint32_t)0x00000003) /*!< PREDIV1 input clock divided by 4 */ - #define RCC_CFGR2_PREDIV1_DIV5 ((uint32_t)0x00000004) /*!< PREDIV1 input clock divided by 5 */ - #define RCC_CFGR2_PREDIV1_DIV6 ((uint32_t)0x00000005) /*!< PREDIV1 input clock divided by 6 */ - #define RCC_CFGR2_PREDIV1_DIV7 ((uint32_t)0x00000006) /*!< PREDIV1 input clock divided by 7 */ - #define RCC_CFGR2_PREDIV1_DIV8 ((uint32_t)0x00000007) /*!< PREDIV1 input clock divided by 8 */ - #define RCC_CFGR2_PREDIV1_DIV9 ((uint32_t)0x00000008) /*!< PREDIV1 input clock divided by 9 */ - #define RCC_CFGR2_PREDIV1_DIV10 ((uint32_t)0x00000009) /*!< PREDIV1 input clock divided by 10 */ - #define RCC_CFGR2_PREDIV1_DIV11 ((uint32_t)0x0000000A) /*!< PREDIV1 input clock divided by 11 */ - #define RCC_CFGR2_PREDIV1_DIV12 ((uint32_t)0x0000000B) /*!< PREDIV1 input clock divided by 12 */ - #define RCC_CFGR2_PREDIV1_DIV13 ((uint32_t)0x0000000C) /*!< PREDIV1 input clock divided by 13 */ - #define RCC_CFGR2_PREDIV1_DIV14 ((uint32_t)0x0000000D) /*!< PREDIV1 input clock divided by 14 */ - #define RCC_CFGR2_PREDIV1_DIV15 ((uint32_t)0x0000000E) /*!< PREDIV1 input clock divided by 15 */ - #define RCC_CFGR2_PREDIV1_DIV16 ((uint32_t)0x0000000F) /*!< PREDIV1 input clock divided by 16 */ -#endif - -/******************************************************************************/ -/* */ -/* General Purpose and Alternate Function I/O */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for GPIO_CRL register *******************/ -#define GPIO_CRL_MODE ((uint32_t)0x33333333) /*!< Port x mode bits */ - -#define GPIO_CRL_MODE0 ((uint32_t)0x00000003) /*!< MODE0[1:0] bits (Port x mode bits, pin 0) */ -#define GPIO_CRL_MODE0_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define GPIO_CRL_MODE0_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - -#define GPIO_CRL_MODE1 ((uint32_t)0x00000030) /*!< MODE1[1:0] bits (Port x mode bits, pin 1) */ -#define GPIO_CRL_MODE1_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define GPIO_CRL_MODE1_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define GPIO_CRL_MODE2 ((uint32_t)0x00000300) /*!< MODE2[1:0] bits (Port x mode bits, pin 2) */ -#define GPIO_CRL_MODE2_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define GPIO_CRL_MODE2_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - -#define GPIO_CRL_MODE3 ((uint32_t)0x00003000) /*!< MODE3[1:0] bits (Port x mode bits, pin 3) */ -#define GPIO_CRL_MODE3_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define GPIO_CRL_MODE3_1 ((uint32_t)0x00002000) /*!< Bit 1 */ - -#define GPIO_CRL_MODE4 ((uint32_t)0x00030000) /*!< MODE4[1:0] bits (Port x mode bits, pin 4) */ -#define GPIO_CRL_MODE4_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define GPIO_CRL_MODE4_1 ((uint32_t)0x00020000) /*!< Bit 1 */ - -#define GPIO_CRL_MODE5 ((uint32_t)0x00300000) /*!< MODE5[1:0] bits (Port x mode bits, pin 5) */ -#define GPIO_CRL_MODE5_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define GPIO_CRL_MODE5_1 ((uint32_t)0x00200000) /*!< Bit 1 */ - -#define GPIO_CRL_MODE6 ((uint32_t)0x03000000) /*!< MODE6[1:0] bits (Port x mode bits, pin 6) */ -#define GPIO_CRL_MODE6_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define GPIO_CRL_MODE6_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - -#define GPIO_CRL_MODE7 ((uint32_t)0x30000000) /*!< MODE7[1:0] bits (Port x mode bits, pin 7) */ -#define GPIO_CRL_MODE7_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define GPIO_CRL_MODE7_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF ((uint32_t)0xCCCCCCCC) /*!< Port x configuration bits */ - -#define GPIO_CRL_CNF0 ((uint32_t)0x0000000C) /*!< CNF0[1:0] bits (Port x configuration bits, pin 0) */ -#define GPIO_CRL_CNF0_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define GPIO_CRL_CNF0_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define GPIO_CRL_CNF1 ((uint32_t)0x000000C0) /*!< CNF1[1:0] bits (Port x configuration bits, pin 1) */ -#define GPIO_CRL_CNF1_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define GPIO_CRL_CNF1_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -#define GPIO_CRL_CNF2 ((uint32_t)0x00000C00) /*!< CNF2[1:0] bits (Port x configuration bits, pin 2) */ -#define GPIO_CRL_CNF2_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define GPIO_CRL_CNF2_1 ((uint32_t)0x00000800) /*!< Bit 1 */ - -#define GPIO_CRL_CNF3 ((uint32_t)0x0000C000) /*!< CNF3[1:0] bits (Port x configuration bits, pin 3) */ -#define GPIO_CRL_CNF3_0 ((uint32_t)0x00004000) /*!< Bit 0 */ -#define GPIO_CRL_CNF3_1 ((uint32_t)0x00008000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF4 ((uint32_t)0x000C0000) /*!< CNF4[1:0] bits (Port x configuration bits, pin 4) */ -#define GPIO_CRL_CNF4_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define GPIO_CRL_CNF4_1 ((uint32_t)0x00080000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF5 ((uint32_t)0x00C00000) /*!< CNF5[1:0] bits (Port x configuration bits, pin 5) */ -#define GPIO_CRL_CNF5_0 ((uint32_t)0x00400000) /*!< Bit 0 */ -#define GPIO_CRL_CNF5_1 ((uint32_t)0x00800000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF6 ((uint32_t)0x0C000000) /*!< CNF6[1:0] bits (Port x configuration bits, pin 6) */ -#define GPIO_CRL_CNF6_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define GPIO_CRL_CNF6_1 ((uint32_t)0x08000000) /*!< Bit 1 */ - -#define GPIO_CRL_CNF7 ((uint32_t)0xC0000000) /*!< CNF7[1:0] bits (Port x configuration bits, pin 7) */ -#define GPIO_CRL_CNF7_0 ((uint32_t)0x40000000) /*!< Bit 0 */ -#define GPIO_CRL_CNF7_1 ((uint32_t)0x80000000) /*!< Bit 1 */ - -/******************* Bit definition for GPIO_CRH register *******************/ -#define GPIO_CRH_MODE ((uint32_t)0x33333333) /*!< Port x mode bits */ - -#define GPIO_CRH_MODE8 ((uint32_t)0x00000003) /*!< MODE8[1:0] bits (Port x mode bits, pin 8) */ -#define GPIO_CRH_MODE8_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define GPIO_CRH_MODE8_1 ((uint32_t)0x00000002) /*!< Bit 1 */ - -#define GPIO_CRH_MODE9 ((uint32_t)0x00000030) /*!< MODE9[1:0] bits (Port x mode bits, pin 9) */ -#define GPIO_CRH_MODE9_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define GPIO_CRH_MODE9_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define GPIO_CRH_MODE10 ((uint32_t)0x00000300) /*!< MODE10[1:0] bits (Port x mode bits, pin 10) */ -#define GPIO_CRH_MODE10_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define GPIO_CRH_MODE10_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - -#define GPIO_CRH_MODE11 ((uint32_t)0x00003000) /*!< MODE11[1:0] bits (Port x mode bits, pin 11) */ -#define GPIO_CRH_MODE11_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define GPIO_CRH_MODE11_1 ((uint32_t)0x00002000) /*!< Bit 1 */ - -#define GPIO_CRH_MODE12 ((uint32_t)0x00030000) /*!< MODE12[1:0] bits (Port x mode bits, pin 12) */ -#define GPIO_CRH_MODE12_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define GPIO_CRH_MODE12_1 ((uint32_t)0x00020000) /*!< Bit 1 */ - -#define GPIO_CRH_MODE13 ((uint32_t)0x00300000) /*!< MODE13[1:0] bits (Port x mode bits, pin 13) */ -#define GPIO_CRH_MODE13_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define GPIO_CRH_MODE13_1 ((uint32_t)0x00200000) /*!< Bit 1 */ - -#define GPIO_CRH_MODE14 ((uint32_t)0x03000000) /*!< MODE14[1:0] bits (Port x mode bits, pin 14) */ -#define GPIO_CRH_MODE14_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define GPIO_CRH_MODE14_1 ((uint32_t)0x02000000) /*!< Bit 1 */ - -#define GPIO_CRH_MODE15 ((uint32_t)0x30000000) /*!< MODE15[1:0] bits (Port x mode bits, pin 15) */ -#define GPIO_CRH_MODE15_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define GPIO_CRH_MODE15_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF ((uint32_t)0xCCCCCCCC) /*!< Port x configuration bits */ - -#define GPIO_CRH_CNF8 ((uint32_t)0x0000000C) /*!< CNF8[1:0] bits (Port x configuration bits, pin 8) */ -#define GPIO_CRH_CNF8_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define GPIO_CRH_CNF8_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define GPIO_CRH_CNF9 ((uint32_t)0x000000C0) /*!< CNF9[1:0] bits (Port x configuration bits, pin 9) */ -#define GPIO_CRH_CNF9_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define GPIO_CRH_CNF9_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -#define GPIO_CRH_CNF10 ((uint32_t)0x00000C00) /*!< CNF10[1:0] bits (Port x configuration bits, pin 10) */ -#define GPIO_CRH_CNF10_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define GPIO_CRH_CNF10_1 ((uint32_t)0x00000800) /*!< Bit 1 */ - -#define GPIO_CRH_CNF11 ((uint32_t)0x0000C000) /*!< CNF11[1:0] bits (Port x configuration bits, pin 11) */ -#define GPIO_CRH_CNF11_0 ((uint32_t)0x00004000) /*!< Bit 0 */ -#define GPIO_CRH_CNF11_1 ((uint32_t)0x00008000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF12 ((uint32_t)0x000C0000) /*!< CNF12[1:0] bits (Port x configuration bits, pin 12) */ -#define GPIO_CRH_CNF12_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define GPIO_CRH_CNF12_1 ((uint32_t)0x00080000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF13 ((uint32_t)0x00C00000) /*!< CNF13[1:0] bits (Port x configuration bits, pin 13) */ -#define GPIO_CRH_CNF13_0 ((uint32_t)0x00400000) /*!< Bit 0 */ -#define GPIO_CRH_CNF13_1 ((uint32_t)0x00800000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF14 ((uint32_t)0x0C000000) /*!< CNF14[1:0] bits (Port x configuration bits, pin 14) */ -#define GPIO_CRH_CNF14_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define GPIO_CRH_CNF14_1 ((uint32_t)0x08000000) /*!< Bit 1 */ - -#define GPIO_CRH_CNF15 ((uint32_t)0xC0000000) /*!< CNF15[1:0] bits (Port x configuration bits, pin 15) */ -#define GPIO_CRH_CNF15_0 ((uint32_t)0x40000000) /*!< Bit 0 */ -#define GPIO_CRH_CNF15_1 ((uint32_t)0x80000000) /*!< Bit 1 */ - -/*!<****************** Bit definition for GPIO_IDR register *******************/ -#define GPIO_IDR_IDR0 ((uint16_t)0x0001) /*!< Port input data, bit 0 */ -#define GPIO_IDR_IDR1 ((uint16_t)0x0002) /*!< Port input data, bit 1 */ -#define GPIO_IDR_IDR2 ((uint16_t)0x0004) /*!< Port input data, bit 2 */ -#define GPIO_IDR_IDR3 ((uint16_t)0x0008) /*!< Port input data, bit 3 */ -#define GPIO_IDR_IDR4 ((uint16_t)0x0010) /*!< Port input data, bit 4 */ -#define GPIO_IDR_IDR5 ((uint16_t)0x0020) /*!< Port input data, bit 5 */ -#define GPIO_IDR_IDR6 ((uint16_t)0x0040) /*!< Port input data, bit 6 */ -#define GPIO_IDR_IDR7 ((uint16_t)0x0080) /*!< Port input data, bit 7 */ -#define GPIO_IDR_IDR8 ((uint16_t)0x0100) /*!< Port input data, bit 8 */ -#define GPIO_IDR_IDR9 ((uint16_t)0x0200) /*!< Port input data, bit 9 */ -#define GPIO_IDR_IDR10 ((uint16_t)0x0400) /*!< Port input data, bit 10 */ -#define GPIO_IDR_IDR11 ((uint16_t)0x0800) /*!< Port input data, bit 11 */ -#define GPIO_IDR_IDR12 ((uint16_t)0x1000) /*!< Port input data, bit 12 */ -#define GPIO_IDR_IDR13 ((uint16_t)0x2000) /*!< Port input data, bit 13 */ -#define GPIO_IDR_IDR14 ((uint16_t)0x4000) /*!< Port input data, bit 14 */ -#define GPIO_IDR_IDR15 ((uint16_t)0x8000) /*!< Port input data, bit 15 */ - -/******************* Bit definition for GPIO_ODR register *******************/ -#define GPIO_ODR_ODR0 ((uint16_t)0x0001) /*!< Port output data, bit 0 */ -#define GPIO_ODR_ODR1 ((uint16_t)0x0002) /*!< Port output data, bit 1 */ -#define GPIO_ODR_ODR2 ((uint16_t)0x0004) /*!< Port output data, bit 2 */ -#define GPIO_ODR_ODR3 ((uint16_t)0x0008) /*!< Port output data, bit 3 */ -#define GPIO_ODR_ODR4 ((uint16_t)0x0010) /*!< Port output data, bit 4 */ -#define GPIO_ODR_ODR5 ((uint16_t)0x0020) /*!< Port output data, bit 5 */ -#define GPIO_ODR_ODR6 ((uint16_t)0x0040) /*!< Port output data, bit 6 */ -#define GPIO_ODR_ODR7 ((uint16_t)0x0080) /*!< Port output data, bit 7 */ -#define GPIO_ODR_ODR8 ((uint16_t)0x0100) /*!< Port output data, bit 8 */ -#define GPIO_ODR_ODR9 ((uint16_t)0x0200) /*!< Port output data, bit 9 */ -#define GPIO_ODR_ODR10 ((uint16_t)0x0400) /*!< Port output data, bit 10 */ -#define GPIO_ODR_ODR11 ((uint16_t)0x0800) /*!< Port output data, bit 11 */ -#define GPIO_ODR_ODR12 ((uint16_t)0x1000) /*!< Port output data, bit 12 */ -#define GPIO_ODR_ODR13 ((uint16_t)0x2000) /*!< Port output data, bit 13 */ -#define GPIO_ODR_ODR14 ((uint16_t)0x4000) /*!< Port output data, bit 14 */ -#define GPIO_ODR_ODR15 ((uint16_t)0x8000) /*!< Port output data, bit 15 */ - -/****************** Bit definition for GPIO_BSRR register *******************/ -#define GPIO_BSRR_BS0 ((uint32_t)0x00000001) /*!< Port x Set bit 0 */ -#define GPIO_BSRR_BS1 ((uint32_t)0x00000002) /*!< Port x Set bit 1 */ -#define GPIO_BSRR_BS2 ((uint32_t)0x00000004) /*!< Port x Set bit 2 */ -#define GPIO_BSRR_BS3 ((uint32_t)0x00000008) /*!< Port x Set bit 3 */ -#define GPIO_BSRR_BS4 ((uint32_t)0x00000010) /*!< Port x Set bit 4 */ -#define GPIO_BSRR_BS5 ((uint32_t)0x00000020) /*!< Port x Set bit 5 */ -#define GPIO_BSRR_BS6 ((uint32_t)0x00000040) /*!< Port x Set bit 6 */ -#define GPIO_BSRR_BS7 ((uint32_t)0x00000080) /*!< Port x Set bit 7 */ -#define GPIO_BSRR_BS8 ((uint32_t)0x00000100) /*!< Port x Set bit 8 */ -#define GPIO_BSRR_BS9 ((uint32_t)0x00000200) /*!< Port x Set bit 9 */ -#define GPIO_BSRR_BS10 ((uint32_t)0x00000400) /*!< Port x Set bit 10 */ -#define GPIO_BSRR_BS11 ((uint32_t)0x00000800) /*!< Port x Set bit 11 */ -#define GPIO_BSRR_BS12 ((uint32_t)0x00001000) /*!< Port x Set bit 12 */ -#define GPIO_BSRR_BS13 ((uint32_t)0x00002000) /*!< Port x Set bit 13 */ -#define GPIO_BSRR_BS14 ((uint32_t)0x00004000) /*!< Port x Set bit 14 */ -#define GPIO_BSRR_BS15 ((uint32_t)0x00008000) /*!< Port x Set bit 15 */ - -#define GPIO_BSRR_BR0 ((uint32_t)0x00010000) /*!< Port x Reset bit 0 */ -#define GPIO_BSRR_BR1 ((uint32_t)0x00020000) /*!< Port x Reset bit 1 */ -#define GPIO_BSRR_BR2 ((uint32_t)0x00040000) /*!< Port x Reset bit 2 */ -#define GPIO_BSRR_BR3 ((uint32_t)0x00080000) /*!< Port x Reset bit 3 */ -#define GPIO_BSRR_BR4 ((uint32_t)0x00100000) /*!< Port x Reset bit 4 */ -#define GPIO_BSRR_BR5 ((uint32_t)0x00200000) /*!< Port x Reset bit 5 */ -#define GPIO_BSRR_BR6 ((uint32_t)0x00400000) /*!< Port x Reset bit 6 */ -#define GPIO_BSRR_BR7 ((uint32_t)0x00800000) /*!< Port x Reset bit 7 */ -#define GPIO_BSRR_BR8 ((uint32_t)0x01000000) /*!< Port x Reset bit 8 */ -#define GPIO_BSRR_BR9 ((uint32_t)0x02000000) /*!< Port x Reset bit 9 */ -#define GPIO_BSRR_BR10 ((uint32_t)0x04000000) /*!< Port x Reset bit 10 */ -#define GPIO_BSRR_BR11 ((uint32_t)0x08000000) /*!< Port x Reset bit 11 */ -#define GPIO_BSRR_BR12 ((uint32_t)0x10000000) /*!< Port x Reset bit 12 */ -#define GPIO_BSRR_BR13 ((uint32_t)0x20000000) /*!< Port x Reset bit 13 */ -#define GPIO_BSRR_BR14 ((uint32_t)0x40000000) /*!< Port x Reset bit 14 */ -#define GPIO_BSRR_BR15 ((uint32_t)0x80000000) /*!< Port x Reset bit 15 */ - -/******************* Bit definition for GPIO_BRR register *******************/ -#define GPIO_BRR_BR0 ((uint16_t)0x0001) /*!< Port x Reset bit 0 */ -#define GPIO_BRR_BR1 ((uint16_t)0x0002) /*!< Port x Reset bit 1 */ -#define GPIO_BRR_BR2 ((uint16_t)0x0004) /*!< Port x Reset bit 2 */ -#define GPIO_BRR_BR3 ((uint16_t)0x0008) /*!< Port x Reset bit 3 */ -#define GPIO_BRR_BR4 ((uint16_t)0x0010) /*!< Port x Reset bit 4 */ -#define GPIO_BRR_BR5 ((uint16_t)0x0020) /*!< Port x Reset bit 5 */ -#define GPIO_BRR_BR6 ((uint16_t)0x0040) /*!< Port x Reset bit 6 */ -#define GPIO_BRR_BR7 ((uint16_t)0x0080) /*!< Port x Reset bit 7 */ -#define GPIO_BRR_BR8 ((uint16_t)0x0100) /*!< Port x Reset bit 8 */ -#define GPIO_BRR_BR9 ((uint16_t)0x0200) /*!< Port x Reset bit 9 */ -#define GPIO_BRR_BR10 ((uint16_t)0x0400) /*!< Port x Reset bit 10 */ -#define GPIO_BRR_BR11 ((uint16_t)0x0800) /*!< Port x Reset bit 11 */ -#define GPIO_BRR_BR12 ((uint16_t)0x1000) /*!< Port x Reset bit 12 */ -#define GPIO_BRR_BR13 ((uint16_t)0x2000) /*!< Port x Reset bit 13 */ -#define GPIO_BRR_BR14 ((uint16_t)0x4000) /*!< Port x Reset bit 14 */ -#define GPIO_BRR_BR15 ((uint16_t)0x8000) /*!< Port x Reset bit 15 */ - -/****************** Bit definition for GPIO_LCKR register *******************/ -#define GPIO_LCKR_LCK0 ((uint32_t)0x00000001) /*!< Port x Lock bit 0 */ -#define GPIO_LCKR_LCK1 ((uint32_t)0x00000002) /*!< Port x Lock bit 1 */ -#define GPIO_LCKR_LCK2 ((uint32_t)0x00000004) /*!< Port x Lock bit 2 */ -#define GPIO_LCKR_LCK3 ((uint32_t)0x00000008) /*!< Port x Lock bit 3 */ -#define GPIO_LCKR_LCK4 ((uint32_t)0x00000010) /*!< Port x Lock bit 4 */ -#define GPIO_LCKR_LCK5 ((uint32_t)0x00000020) /*!< Port x Lock bit 5 */ -#define GPIO_LCKR_LCK6 ((uint32_t)0x00000040) /*!< Port x Lock bit 6 */ -#define GPIO_LCKR_LCK7 ((uint32_t)0x00000080) /*!< Port x Lock bit 7 */ -#define GPIO_LCKR_LCK8 ((uint32_t)0x00000100) /*!< Port x Lock bit 8 */ -#define GPIO_LCKR_LCK9 ((uint32_t)0x00000200) /*!< Port x Lock bit 9 */ -#define GPIO_LCKR_LCK10 ((uint32_t)0x00000400) /*!< Port x Lock bit 10 */ -#define GPIO_LCKR_LCK11 ((uint32_t)0x00000800) /*!< Port x Lock bit 11 */ -#define GPIO_LCKR_LCK12 ((uint32_t)0x00001000) /*!< Port x Lock bit 12 */ -#define GPIO_LCKR_LCK13 ((uint32_t)0x00002000) /*!< Port x Lock bit 13 */ -#define GPIO_LCKR_LCK14 ((uint32_t)0x00004000) /*!< Port x Lock bit 14 */ -#define GPIO_LCKR_LCK15 ((uint32_t)0x00008000) /*!< Port x Lock bit 15 */ -#define GPIO_LCKR_LCKK ((uint32_t)0x00010000) /*!< Lock key */ - -/*----------------------------------------------------------------------------*/ - -/****************** Bit definition for AFIO_EVCR register *******************/ -#define AFIO_EVCR_PIN ((uint8_t)0x0F) /*!< PIN[3:0] bits (Pin selection) */ -#define AFIO_EVCR_PIN_0 ((uint8_t)0x01) /*!< Bit 0 */ -#define AFIO_EVCR_PIN_1 ((uint8_t)0x02) /*!< Bit 1 */ -#define AFIO_EVCR_PIN_2 ((uint8_t)0x04) /*!< Bit 2 */ -#define AFIO_EVCR_PIN_3 ((uint8_t)0x08) /*!< Bit 3 */ - -/*!< PIN configuration */ -#define AFIO_EVCR_PIN_PX0 ((uint8_t)0x00) /*!< Pin 0 selected */ -#define AFIO_EVCR_PIN_PX1 ((uint8_t)0x01) /*!< Pin 1 selected */ -#define AFIO_EVCR_PIN_PX2 ((uint8_t)0x02) /*!< Pin 2 selected */ -#define AFIO_EVCR_PIN_PX3 ((uint8_t)0x03) /*!< Pin 3 selected */ -#define AFIO_EVCR_PIN_PX4 ((uint8_t)0x04) /*!< Pin 4 selected */ -#define AFIO_EVCR_PIN_PX5 ((uint8_t)0x05) /*!< Pin 5 selected */ -#define AFIO_EVCR_PIN_PX6 ((uint8_t)0x06) /*!< Pin 6 selected */ -#define AFIO_EVCR_PIN_PX7 ((uint8_t)0x07) /*!< Pin 7 selected */ -#define AFIO_EVCR_PIN_PX8 ((uint8_t)0x08) /*!< Pin 8 selected */ -#define AFIO_EVCR_PIN_PX9 ((uint8_t)0x09) /*!< Pin 9 selected */ -#define AFIO_EVCR_PIN_PX10 ((uint8_t)0x0A) /*!< Pin 10 selected */ -#define AFIO_EVCR_PIN_PX11 ((uint8_t)0x0B) /*!< Pin 11 selected */ -#define AFIO_EVCR_PIN_PX12 ((uint8_t)0x0C) /*!< Pin 12 selected */ -#define AFIO_EVCR_PIN_PX13 ((uint8_t)0x0D) /*!< Pin 13 selected */ -#define AFIO_EVCR_PIN_PX14 ((uint8_t)0x0E) /*!< Pin 14 selected */ -#define AFIO_EVCR_PIN_PX15 ((uint8_t)0x0F) /*!< Pin 15 selected */ - -#define AFIO_EVCR_PORT ((uint8_t)0x70) /*!< PORT[2:0] bits (Port selection) */ -#define AFIO_EVCR_PORT_0 ((uint8_t)0x10) /*!< Bit 0 */ -#define AFIO_EVCR_PORT_1 ((uint8_t)0x20) /*!< Bit 1 */ -#define AFIO_EVCR_PORT_2 ((uint8_t)0x40) /*!< Bit 2 */ - -/*!< PORT configuration */ -#define AFIO_EVCR_PORT_PA ((uint8_t)0x00) /*!< Port A selected */ -#define AFIO_EVCR_PORT_PB ((uint8_t)0x10) /*!< Port B selected */ -#define AFIO_EVCR_PORT_PC ((uint8_t)0x20) /*!< Port C selected */ -#define AFIO_EVCR_PORT_PD ((uint8_t)0x30) /*!< Port D selected */ -#define AFIO_EVCR_PORT_PE ((uint8_t)0x40) /*!< Port E selected */ - -#define AFIO_EVCR_EVOE ((uint8_t)0x80) /*!< Event Output Enable */ - -/****************** Bit definition for AFIO_MAPR register *******************/ -#define AFIO_MAPR_SPI1_REMAP ((uint32_t)0x00000001) /*!< SPI1 remapping */ -#define AFIO_MAPR_I2C1_REMAP ((uint32_t)0x00000002) /*!< I2C1 remapping */ -#define AFIO_MAPR_USART1_REMAP ((uint32_t)0x00000004) /*!< USART1 remapping */ -#define AFIO_MAPR_USART2_REMAP ((uint32_t)0x00000008) /*!< USART2 remapping */ - -#define AFIO_MAPR_USART3_REMAP ((uint32_t)0x00000030) /*!< USART3_REMAP[1:0] bits (USART3 remapping) */ -#define AFIO_MAPR_USART3_REMAP_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define AFIO_MAPR_USART3_REMAP_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -/* USART3_REMAP configuration */ -#define AFIO_MAPR_USART3_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (TX/PB10, RX/PB11, CK/PB12, CTS/PB13, RTS/PB14) */ -#define AFIO_MAPR_USART3_REMAP_PARTIALREMAP ((uint32_t)0x00000010) /*!< Partial remap (TX/PC10, RX/PC11, CK/PC12, CTS/PB13, RTS/PB14) */ -#define AFIO_MAPR_USART3_REMAP_FULLREMAP ((uint32_t)0x00000030) /*!< Full remap (TX/PD8, RX/PD9, CK/PD10, CTS/PD11, RTS/PD12) */ - -#define AFIO_MAPR_TIM1_REMAP ((uint32_t)0x000000C0) /*!< TIM1_REMAP[1:0] bits (TIM1 remapping) */ -#define AFIO_MAPR_TIM1_REMAP_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define AFIO_MAPR_TIM1_REMAP_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -/*!< TIM1_REMAP configuration */ -#define AFIO_MAPR_TIM1_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PB12, CH1N/PB13, CH2N/PB14, CH3N/PB15) */ -#define AFIO_MAPR_TIM1_REMAP_PARTIALREMAP ((uint32_t)0x00000040) /*!< Partial remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PA6, CH1N/PA7, CH2N/PB0, CH3N/PB1) */ -#define AFIO_MAPR_TIM1_REMAP_FULLREMAP ((uint32_t)0x000000C0) /*!< Full remap (ETR/PE7, CH1/PE9, CH2/PE11, CH3/PE13, CH4/PE14, BKIN/PE15, CH1N/PE8, CH2N/PE10, CH3N/PE12) */ - -#define AFIO_MAPR_TIM2_REMAP ((uint32_t)0x00000300) /*!< TIM2_REMAP[1:0] bits (TIM2 remapping) */ -#define AFIO_MAPR_TIM2_REMAP_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define AFIO_MAPR_TIM2_REMAP_1 ((uint32_t)0x00000200) /*!< Bit 1 */ - -/*!< TIM2_REMAP configuration */ -#define AFIO_MAPR_TIM2_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (CH1/ETR/PA0, CH2/PA1, CH3/PA2, CH4/PA3) */ -#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1 ((uint32_t)0x00000100) /*!< Partial remap (CH1/ETR/PA15, CH2/PB3, CH3/PA2, CH4/PA3) */ -#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2 ((uint32_t)0x00000200) /*!< Partial remap (CH1/ETR/PA0, CH2/PA1, CH3/PB10, CH4/PB11) */ -#define AFIO_MAPR_TIM2_REMAP_FULLREMAP ((uint32_t)0x00000300) /*!< Full remap (CH1/ETR/PA15, CH2/PB3, CH3/PB10, CH4/PB11) */ - -#define AFIO_MAPR_TIM3_REMAP ((uint32_t)0x00000C00) /*!< TIM3_REMAP[1:0] bits (TIM3 remapping) */ -#define AFIO_MAPR_TIM3_REMAP_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define AFIO_MAPR_TIM3_REMAP_1 ((uint32_t)0x00000800) /*!< Bit 1 */ - -/*!< TIM3_REMAP configuration */ -#define AFIO_MAPR_TIM3_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (CH1/PA6, CH2/PA7, CH3/PB0, CH4/PB1) */ -#define AFIO_MAPR_TIM3_REMAP_PARTIALREMAP ((uint32_t)0x00000800) /*!< Partial remap (CH1/PB4, CH2/PB5, CH3/PB0, CH4/PB1) */ -#define AFIO_MAPR_TIM3_REMAP_FULLREMAP ((uint32_t)0x00000C00) /*!< Full remap (CH1/PC6, CH2/PC7, CH3/PC8, CH4/PC9) */ - -#define AFIO_MAPR_TIM4_REMAP ((uint32_t)0x00001000) /*!< TIM4_REMAP bit (TIM4 remapping) */ - -#define AFIO_MAPR_CAN_REMAP ((uint32_t)0x00006000) /*!< CAN_REMAP[1:0] bits (CAN Alternate function remapping) */ -#define AFIO_MAPR_CAN_REMAP_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define AFIO_MAPR_CAN_REMAP_1 ((uint32_t)0x00004000) /*!< Bit 1 */ - -/*!< CAN_REMAP configuration */ -#define AFIO_MAPR_CAN_REMAP_REMAP1 ((uint32_t)0x00000000) /*!< CANRX mapped to PA11, CANTX mapped to PA12 */ -#define AFIO_MAPR_CAN_REMAP_REMAP2 ((uint32_t)0x00004000) /*!< CANRX mapped to PB8, CANTX mapped to PB9 */ -#define AFIO_MAPR_CAN_REMAP_REMAP3 ((uint32_t)0x00006000) /*!< CANRX mapped to PD0, CANTX mapped to PD1 */ - -#define AFIO_MAPR_PD01_REMAP ((uint32_t)0x00008000) /*!< Port D0/Port D1 mapping on OSC_IN/OSC_OUT */ -#define AFIO_MAPR_TIM5CH4_IREMAP ((uint32_t)0x00010000) /*!< TIM5 Channel4 Internal Remap */ -#define AFIO_MAPR_ADC1_ETRGINJ_REMAP ((uint32_t)0x00020000) /*!< ADC 1 External Trigger Injected Conversion remapping */ -#define AFIO_MAPR_ADC1_ETRGREG_REMAP ((uint32_t)0x00040000) /*!< ADC 1 External Trigger Regular Conversion remapping */ -#define AFIO_MAPR_ADC2_ETRGINJ_REMAP ((uint32_t)0x00080000) /*!< ADC 2 External Trigger Injected Conversion remapping */ -#define AFIO_MAPR_ADC2_ETRGREG_REMAP ((uint32_t)0x00100000) /*!< ADC 2 External Trigger Regular Conversion remapping */ - -/*!< SWJ_CFG configuration */ -#define AFIO_MAPR_SWJ_CFG ((uint32_t)0x07000000) /*!< SWJ_CFG[2:0] bits (Serial Wire JTAG configuration) */ -#define AFIO_MAPR_SWJ_CFG_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define AFIO_MAPR_SWJ_CFG_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define AFIO_MAPR_SWJ_CFG_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - -#define AFIO_MAPR_SWJ_CFG_RESET ((uint32_t)0x00000000) /*!< Full SWJ (JTAG-DP + SW-DP) : Reset State */ -#define AFIO_MAPR_SWJ_CFG_NOJNTRST ((uint32_t)0x01000000) /*!< Full SWJ (JTAG-DP + SW-DP) but without JNTRST */ -#define AFIO_MAPR_SWJ_CFG_JTAGDISABLE ((uint32_t)0x02000000) /*!< JTAG-DP Disabled and SW-DP Enabled */ -#define AFIO_MAPR_SWJ_CFG_DISABLE ((uint32_t)0x04000000) /*!< JTAG-DP Disabled and SW-DP Disabled */ - -#ifdef STM32F10X_CL -/*!< ETH_REMAP configuration */ - #define AFIO_MAPR_ETH_REMAP ((uint32_t)0x00200000) /*!< SPI3_REMAP bit (Ethernet MAC I/O remapping) */ - -/*!< CAN2_REMAP configuration */ - #define AFIO_MAPR_CAN2_REMAP ((uint32_t)0x00400000) /*!< CAN2_REMAP bit (CAN2 I/O remapping) */ - -/*!< MII_RMII_SEL configuration */ - #define AFIO_MAPR_MII_RMII_SEL ((uint32_t)0x00800000) /*!< MII_RMII_SEL bit (Ethernet MII or RMII selection) */ - -/*!< SPI3_REMAP configuration */ - #define AFIO_MAPR_SPI3_REMAP ((uint32_t)0x10000000) /*!< SPI3_REMAP bit (SPI3 remapping) */ - -/*!< TIM2ITR1_IREMAP configuration */ - #define AFIO_MAPR_TIM2ITR1_IREMAP ((uint32_t)0x20000000) /*!< TIM2ITR1_IREMAP bit (TIM2 internal trigger 1 remapping) */ - -/*!< PTP_PPS_REMAP configuration */ - #define AFIO_MAPR_PTP_PPS_REMAP ((uint32_t)0x40000000) /*!< PTP_PPS_REMAP bit (Ethernet PTP PPS remapping) */ -#endif - -/***************** Bit definition for AFIO_EXTICR1 register *****************/ -#define AFIO_EXTICR1_EXTI0 ((uint16_t)0x000F) /*!< EXTI 0 configuration */ -#define AFIO_EXTICR1_EXTI1 ((uint16_t)0x00F0) /*!< EXTI 1 configuration */ -#define AFIO_EXTICR1_EXTI2 ((uint16_t)0x0F00) /*!< EXTI 2 configuration */ -#define AFIO_EXTICR1_EXTI3 ((uint16_t)0xF000) /*!< EXTI 3 configuration */ - -/*!< EXTI0 configuration */ -#define AFIO_EXTICR1_EXTI0_PA ((uint16_t)0x0000) /*!< PA[0] pin */ -#define AFIO_EXTICR1_EXTI0_PB ((uint16_t)0x0001) /*!< PB[0] pin */ -#define AFIO_EXTICR1_EXTI0_PC ((uint16_t)0x0002) /*!< PC[0] pin */ -#define AFIO_EXTICR1_EXTI0_PD ((uint16_t)0x0003) /*!< PD[0] pin */ -#define AFIO_EXTICR1_EXTI0_PE ((uint16_t)0x0004) /*!< PE[0] pin */ -#define AFIO_EXTICR1_EXTI0_PF ((uint16_t)0x0005) /*!< PF[0] pin */ -#define AFIO_EXTICR1_EXTI0_PG ((uint16_t)0x0006) /*!< PG[0] pin */ - -/*!< EXTI1 configuration */ -#define AFIO_EXTICR1_EXTI1_PA ((uint16_t)0x0000) /*!< PA[1] pin */ -#define AFIO_EXTICR1_EXTI1_PB ((uint16_t)0x0010) /*!< PB[1] pin */ -#define AFIO_EXTICR1_EXTI1_PC ((uint16_t)0x0020) /*!< PC[1] pin */ -#define AFIO_EXTICR1_EXTI1_PD ((uint16_t)0x0030) /*!< PD[1] pin */ -#define AFIO_EXTICR1_EXTI1_PE ((uint16_t)0x0040) /*!< PE[1] pin */ -#define AFIO_EXTICR1_EXTI1_PF ((uint16_t)0x0050) /*!< PF[1] pin */ -#define AFIO_EXTICR1_EXTI1_PG ((uint16_t)0x0060) /*!< PG[1] pin */ - -/*!< EXTI2 configuration */ -#define AFIO_EXTICR1_EXTI2_PA ((uint16_t)0x0000) /*!< PA[2] pin */ -#define AFIO_EXTICR1_EXTI2_PB ((uint16_t)0x0100) /*!< PB[2] pin */ -#define AFIO_EXTICR1_EXTI2_PC ((uint16_t)0x0200) /*!< PC[2] pin */ -#define AFIO_EXTICR1_EXTI2_PD ((uint16_t)0x0300) /*!< PD[2] pin */ -#define AFIO_EXTICR1_EXTI2_PE ((uint16_t)0x0400) /*!< PE[2] pin */ -#define AFIO_EXTICR1_EXTI2_PF ((uint16_t)0x0500) /*!< PF[2] pin */ -#define AFIO_EXTICR1_EXTI2_PG ((uint16_t)0x0600) /*!< PG[2] pin */ - -/*!< EXTI3 configuration */ -#define AFIO_EXTICR1_EXTI3_PA ((uint16_t)0x0000) /*!< PA[3] pin */ -#define AFIO_EXTICR1_EXTI3_PB ((uint16_t)0x1000) /*!< PB[3] pin */ -#define AFIO_EXTICR1_EXTI3_PC ((uint16_t)0x2000) /*!< PC[3] pin */ -#define AFIO_EXTICR1_EXTI3_PD ((uint16_t)0x3000) /*!< PD[3] pin */ -#define AFIO_EXTICR1_EXTI3_PE ((uint16_t)0x4000) /*!< PE[3] pin */ -#define AFIO_EXTICR1_EXTI3_PF ((uint16_t)0x5000) /*!< PF[3] pin */ -#define AFIO_EXTICR1_EXTI3_PG ((uint16_t)0x6000) /*!< PG[3] pin */ - -/***************** Bit definition for AFIO_EXTICR2 register *****************/ -#define AFIO_EXTICR2_EXTI4 ((uint16_t)0x000F) /*!< EXTI 4 configuration */ -#define AFIO_EXTICR2_EXTI5 ((uint16_t)0x00F0) /*!< EXTI 5 configuration */ -#define AFIO_EXTICR2_EXTI6 ((uint16_t)0x0F00) /*!< EXTI 6 configuration */ -#define AFIO_EXTICR2_EXTI7 ((uint16_t)0xF000) /*!< EXTI 7 configuration */ - -/*!< EXTI4 configuration */ -#define AFIO_EXTICR2_EXTI4_PA ((uint16_t)0x0000) /*!< PA[4] pin */ -#define AFIO_EXTICR2_EXTI4_PB ((uint16_t)0x0001) /*!< PB[4] pin */ -#define AFIO_EXTICR2_EXTI4_PC ((uint16_t)0x0002) /*!< PC[4] pin */ -#define AFIO_EXTICR2_EXTI4_PD ((uint16_t)0x0003) /*!< PD[4] pin */ -#define AFIO_EXTICR2_EXTI4_PE ((uint16_t)0x0004) /*!< PE[4] pin */ -#define AFIO_EXTICR2_EXTI4_PF ((uint16_t)0x0005) /*!< PF[4] pin */ -#define AFIO_EXTICR2_EXTI4_PG ((uint16_t)0x0006) /*!< PG[4] pin */ - -/* EXTI5 configuration */ -#define AFIO_EXTICR2_EXTI5_PA ((uint16_t)0x0000) /*!< PA[5] pin */ -#define AFIO_EXTICR2_EXTI5_PB ((uint16_t)0x0010) /*!< PB[5] pin */ -#define AFIO_EXTICR2_EXTI5_PC ((uint16_t)0x0020) /*!< PC[5] pin */ -#define AFIO_EXTICR2_EXTI5_PD ((uint16_t)0x0030) /*!< PD[5] pin */ -#define AFIO_EXTICR2_EXTI5_PE ((uint16_t)0x0040) /*!< PE[5] pin */ -#define AFIO_EXTICR2_EXTI5_PF ((uint16_t)0x0050) /*!< PF[5] pin */ -#define AFIO_EXTICR2_EXTI5_PG ((uint16_t)0x0060) /*!< PG[5] pin */ - -/*!< EXTI6 configuration */ -#define AFIO_EXTICR2_EXTI6_PA ((uint16_t)0x0000) /*!< PA[6] pin */ -#define AFIO_EXTICR2_EXTI6_PB ((uint16_t)0x0100) /*!< PB[6] pin */ -#define AFIO_EXTICR2_EXTI6_PC ((uint16_t)0x0200) /*!< PC[6] pin */ -#define AFIO_EXTICR2_EXTI6_PD ((uint16_t)0x0300) /*!< PD[6] pin */ -#define AFIO_EXTICR2_EXTI6_PE ((uint16_t)0x0400) /*!< PE[6] pin */ -#define AFIO_EXTICR2_EXTI6_PF ((uint16_t)0x0500) /*!< PF[6] pin */ -#define AFIO_EXTICR2_EXTI6_PG ((uint16_t)0x0600) /*!< PG[6] pin */ - -/*!< EXTI7 configuration */ -#define AFIO_EXTICR2_EXTI7_PA ((uint16_t)0x0000) /*!< PA[7] pin */ -#define AFIO_EXTICR2_EXTI7_PB ((uint16_t)0x1000) /*!< PB[7] pin */ -#define AFIO_EXTICR2_EXTI7_PC ((uint16_t)0x2000) /*!< PC[7] pin */ -#define AFIO_EXTICR2_EXTI7_PD ((uint16_t)0x3000) /*!< PD[7] pin */ -#define AFIO_EXTICR2_EXTI7_PE ((uint16_t)0x4000) /*!< PE[7] pin */ -#define AFIO_EXTICR2_EXTI7_PF ((uint16_t)0x5000) /*!< PF[7] pin */ -#define AFIO_EXTICR2_EXTI7_PG ((uint16_t)0x6000) /*!< PG[7] pin */ - -/***************** Bit definition for AFIO_EXTICR3 register *****************/ -#define AFIO_EXTICR3_EXTI8 ((uint16_t)0x000F) /*!< EXTI 8 configuration */ -#define AFIO_EXTICR3_EXTI9 ((uint16_t)0x00F0) /*!< EXTI 9 configuration */ -#define AFIO_EXTICR3_EXTI10 ((uint16_t)0x0F00) /*!< EXTI 10 configuration */ -#define AFIO_EXTICR3_EXTI11 ((uint16_t)0xF000) /*!< EXTI 11 configuration */ - -/*!< EXTI8 configuration */ -#define AFIO_EXTICR3_EXTI8_PA ((uint16_t)0x0000) /*!< PA[8] pin */ -#define AFIO_EXTICR3_EXTI8_PB ((uint16_t)0x0001) /*!< PB[8] pin */ -#define AFIO_EXTICR3_EXTI8_PC ((uint16_t)0x0002) /*!< PC[8] pin */ -#define AFIO_EXTICR3_EXTI8_PD ((uint16_t)0x0003) /*!< PD[8] pin */ -#define AFIO_EXTICR3_EXTI8_PE ((uint16_t)0x0004) /*!< PE[8] pin */ -#define AFIO_EXTICR3_EXTI8_PF ((uint16_t)0x0005) /*!< PF[8] pin */ -#define AFIO_EXTICR3_EXTI8_PG ((uint16_t)0x0006) /*!< PG[8] pin */ - -/*!< EXTI9 configuration */ -#define AFIO_EXTICR3_EXTI9_PA ((uint16_t)0x0000) /*!< PA[9] pin */ -#define AFIO_EXTICR3_EXTI9_PB ((uint16_t)0x0010) /*!< PB[9] pin */ -#define AFIO_EXTICR3_EXTI9_PC ((uint16_t)0x0020) /*!< PC[9] pin */ -#define AFIO_EXTICR3_EXTI9_PD ((uint16_t)0x0030) /*!< PD[9] pin */ -#define AFIO_EXTICR3_EXTI9_PE ((uint16_t)0x0040) /*!< PE[9] pin */ -#define AFIO_EXTICR3_EXTI9_PF ((uint16_t)0x0050) /*!< PF[9] pin */ -#define AFIO_EXTICR3_EXTI9_PG ((uint16_t)0x0060) /*!< PG[9] pin */ - -/*!< EXTI10 configuration */ -#define AFIO_EXTICR3_EXTI10_PA ((uint16_t)0x0000) /*!< PA[10] pin */ -#define AFIO_EXTICR3_EXTI10_PB ((uint16_t)0x0100) /*!< PB[10] pin */ -#define AFIO_EXTICR3_EXTI10_PC ((uint16_t)0x0200) /*!< PC[10] pin */ -#define AFIO_EXTICR3_EXTI10_PD ((uint16_t)0x0300) /*!< PD[10] pin */ -#define AFIO_EXTICR3_EXTI10_PE ((uint16_t)0x0400) /*!< PE[10] pin */ -#define AFIO_EXTICR3_EXTI10_PF ((uint16_t)0x0500) /*!< PF[10] pin */ -#define AFIO_EXTICR3_EXTI10_PG ((uint16_t)0x0600) /*!< PG[10] pin */ - -/*!< EXTI11 configuration */ -#define AFIO_EXTICR3_EXTI11_PA ((uint16_t)0x0000) /*!< PA[11] pin */ -#define AFIO_EXTICR3_EXTI11_PB ((uint16_t)0x1000) /*!< PB[11] pin */ -#define AFIO_EXTICR3_EXTI11_PC ((uint16_t)0x2000) /*!< PC[11] pin */ -#define AFIO_EXTICR3_EXTI11_PD ((uint16_t)0x3000) /*!< PD[11] pin */ -#define AFIO_EXTICR3_EXTI11_PE ((uint16_t)0x4000) /*!< PE[11] pin */ -#define AFIO_EXTICR3_EXTI11_PF ((uint16_t)0x5000) /*!< PF[11] pin */ -#define AFIO_EXTICR3_EXTI11_PG ((uint16_t)0x6000) /*!< PG[11] pin */ - -/***************** Bit definition for AFIO_EXTICR4 register *****************/ -#define AFIO_EXTICR4_EXTI12 ((uint16_t)0x000F) /*!< EXTI 12 configuration */ -#define AFIO_EXTICR4_EXTI13 ((uint16_t)0x00F0) /*!< EXTI 13 configuration */ -#define AFIO_EXTICR4_EXTI14 ((uint16_t)0x0F00) /*!< EXTI 14 configuration */ -#define AFIO_EXTICR4_EXTI15 ((uint16_t)0xF000) /*!< EXTI 15 configuration */ - -/* EXTI12 configuration */ -#define AFIO_EXTICR4_EXTI12_PA ((uint16_t)0x0000) /*!< PA[12] pin */ -#define AFIO_EXTICR4_EXTI12_PB ((uint16_t)0x0001) /*!< PB[12] pin */ -#define AFIO_EXTICR4_EXTI12_PC ((uint16_t)0x0002) /*!< PC[12] pin */ -#define AFIO_EXTICR4_EXTI12_PD ((uint16_t)0x0003) /*!< PD[12] pin */ -#define AFIO_EXTICR4_EXTI12_PE ((uint16_t)0x0004) /*!< PE[12] pin */ -#define AFIO_EXTICR4_EXTI12_PF ((uint16_t)0x0005) /*!< PF[12] pin */ -#define AFIO_EXTICR4_EXTI12_PG ((uint16_t)0x0006) /*!< PG[12] pin */ - -/* EXTI13 configuration */ -#define AFIO_EXTICR4_EXTI13_PA ((uint16_t)0x0000) /*!< PA[13] pin */ -#define AFIO_EXTICR4_EXTI13_PB ((uint16_t)0x0010) /*!< PB[13] pin */ -#define AFIO_EXTICR4_EXTI13_PC ((uint16_t)0x0020) /*!< PC[13] pin */ -#define AFIO_EXTICR4_EXTI13_PD ((uint16_t)0x0030) /*!< PD[13] pin */ -#define AFIO_EXTICR4_EXTI13_PE ((uint16_t)0x0040) /*!< PE[13] pin */ -#define AFIO_EXTICR4_EXTI13_PF ((uint16_t)0x0050) /*!< PF[13] pin */ -#define AFIO_EXTICR4_EXTI13_PG ((uint16_t)0x0060) /*!< PG[13] pin */ - -/*!< EXTI14 configuration */ -#define AFIO_EXTICR4_EXTI14_PA ((uint16_t)0x0000) /*!< PA[14] pin */ -#define AFIO_EXTICR4_EXTI14_PB ((uint16_t)0x0100) /*!< PB[14] pin */ -#define AFIO_EXTICR4_EXTI14_PC ((uint16_t)0x0200) /*!< PC[14] pin */ -#define AFIO_EXTICR4_EXTI14_PD ((uint16_t)0x0300) /*!< PD[14] pin */ -#define AFIO_EXTICR4_EXTI14_PE ((uint16_t)0x0400) /*!< PE[14] pin */ -#define AFIO_EXTICR4_EXTI14_PF ((uint16_t)0x0500) /*!< PF[14] pin */ -#define AFIO_EXTICR4_EXTI14_PG ((uint16_t)0x0600) /*!< PG[14] pin */ - -/*!< EXTI15 configuration */ -#define AFIO_EXTICR4_EXTI15_PA ((uint16_t)0x0000) /*!< PA[15] pin */ -#define AFIO_EXTICR4_EXTI15_PB ((uint16_t)0x1000) /*!< PB[15] pin */ -#define AFIO_EXTICR4_EXTI15_PC ((uint16_t)0x2000) /*!< PC[15] pin */ -#define AFIO_EXTICR4_EXTI15_PD ((uint16_t)0x3000) /*!< PD[15] pin */ -#define AFIO_EXTICR4_EXTI15_PE ((uint16_t)0x4000) /*!< PE[15] pin */ -#define AFIO_EXTICR4_EXTI15_PF ((uint16_t)0x5000) /*!< PF[15] pin */ -#define AFIO_EXTICR4_EXTI15_PG ((uint16_t)0x6000) /*!< PG[15] pin */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -/****************** Bit definition for AFIO_MAPR2 register ******************/ -#define AFIO_MAPR2_TIM15_REMAP ((uint32_t)0x00000001) /*!< TIM15 remapping */ -#define AFIO_MAPR2_TIM16_REMAP ((uint32_t)0x00000002) /*!< TIM16 remapping */ -#define AFIO_MAPR2_TIM17_REMAP ((uint32_t)0x00000004) /*!< TIM17 remapping */ -#define AFIO_MAPR2_CEC_REMAP ((uint32_t)0x00000008) /*!< CEC remapping */ -#define AFIO_MAPR2_TIM1_DMA_REMAP ((uint32_t)0x00000010) /*!< TIM1_DMA remapping */ -#endif - -#ifdef STM32F10X_HD_VL -#define AFIO_MAPR2_TIM13_REMAP ((uint32_t)0x00000100) /*!< TIM13 remapping */ -#define AFIO_MAPR2_TIM14_REMAP ((uint32_t)0x00000200) /*!< TIM14 remapping */ -#define AFIO_MAPR2_FSMC_NADV_REMAP ((uint32_t)0x00000400) /*!< FSMC NADV remapping */ -#define AFIO_MAPR2_TIM67_DAC_DMA_REMAP ((uint32_t)0x00000800) /*!< TIM6/TIM7 and DAC DMA remapping */ -#define AFIO_MAPR2_TIM12_REMAP ((uint32_t)0x00001000) /*!< TIM12 remapping */ -#define AFIO_MAPR2_MISC_REMAP ((uint32_t)0x00002000) /*!< Miscellaneous remapping */ -#endif - -#ifdef STM32F10X_XL -/****************** Bit definition for AFIO_MAPR2 register ******************/ -#define AFIO_MAPR2_TIM9_REMAP ((uint32_t)0x00000020) /*!< TIM9 remapping */ -#define AFIO_MAPR2_TIM10_REMAP ((uint32_t)0x00000040) /*!< TIM10 remapping */ -#define AFIO_MAPR2_TIM11_REMAP ((uint32_t)0x00000080) /*!< TIM11 remapping */ -#define AFIO_MAPR2_TIM13_REMAP ((uint32_t)0x00000100) /*!< TIM13 remapping */ -#define AFIO_MAPR2_TIM14_REMAP ((uint32_t)0x00000200) /*!< TIM14 remapping */ -#define AFIO_MAPR2_FSMC_NADV_REMAP ((uint32_t)0x00000400) /*!< FSMC NADV remapping */ -#endif - -/******************************************************************************/ -/* */ -/* SystemTick */ -/* */ -/******************************************************************************/ - -/***************** Bit definition for SysTick_CTRL register *****************/ -#define SysTick_CTRL_ENABLE ((uint32_t)0x00000001) /*!< Counter enable */ -#define SysTick_CTRL_TICKINT ((uint32_t)0x00000002) /*!< Counting down to 0 pends the SysTick handler */ -#define SysTick_CTRL_CLKSOURCE ((uint32_t)0x00000004) /*!< Clock source */ -#define SysTick_CTRL_COUNTFLAG ((uint32_t)0x00010000) /*!< Count Flag */ - -/***************** Bit definition for SysTick_LOAD register *****************/ -#define SysTick_LOAD_RELOAD ((uint32_t)0x00FFFFFF) /*!< Value to load into the SysTick Current Value Register when the counter reaches 0 */ - -/***************** Bit definition for SysTick_VAL register ******************/ -#define SysTick_VAL_CURRENT ((uint32_t)0x00FFFFFF) /*!< Current value at the time the register is accessed */ - -/***************** Bit definition for SysTick_CALIB register ****************/ -#define SysTick_CALIB_TENMS ((uint32_t)0x00FFFFFF) /*!< Reload value to use for 10ms timing */ -#define SysTick_CALIB_SKEW ((uint32_t)0x40000000) /*!< Calibration value is not exactly 10 ms */ -#define SysTick_CALIB_NOREF ((uint32_t)0x80000000) /*!< The reference clock is not provided */ - -/******************************************************************************/ -/* */ -/* Nested Vectored Interrupt Controller */ -/* */ -/******************************************************************************/ - -/****************** Bit definition for NVIC_ISER register *******************/ -#define NVIC_ISER_SETENA ((uint32_t)0xFFFFFFFF) /*!< Interrupt set enable bits */ -#define NVIC_ISER_SETENA_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_ISER_SETENA_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_ISER_SETENA_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_ISER_SETENA_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_ISER_SETENA_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_ISER_SETENA_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_ISER_SETENA_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_ISER_SETENA_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_ISER_SETENA_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_ISER_SETENA_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_ISER_SETENA_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_ISER_SETENA_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_ISER_SETENA_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_ISER_SETENA_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_ISER_SETENA_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_ISER_SETENA_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_ISER_SETENA_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_ISER_SETENA_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_ISER_SETENA_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_ISER_SETENA_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_ISER_SETENA_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_ISER_SETENA_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_ISER_SETENA_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_ISER_SETENA_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_ISER_SETENA_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_ISER_SETENA_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_ISER_SETENA_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_ISER_SETENA_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_ISER_SETENA_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_ISER_SETENA_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_ISER_SETENA_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_ISER_SETENA_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_ICER register *******************/ -#define NVIC_ICER_CLRENA ((uint32_t)0xFFFFFFFF) /*!< Interrupt clear-enable bits */ -#define NVIC_ICER_CLRENA_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_ICER_CLRENA_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_ICER_CLRENA_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_ICER_CLRENA_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_ICER_CLRENA_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_ICER_CLRENA_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_ICER_CLRENA_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_ICER_CLRENA_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_ICER_CLRENA_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_ICER_CLRENA_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_ICER_CLRENA_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_ICER_CLRENA_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_ICER_CLRENA_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_ICER_CLRENA_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_ICER_CLRENA_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_ICER_CLRENA_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_ICER_CLRENA_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_ICER_CLRENA_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_ICER_CLRENA_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_ICER_CLRENA_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_ICER_CLRENA_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_ICER_CLRENA_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_ICER_CLRENA_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_ICER_CLRENA_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_ICER_CLRENA_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_ICER_CLRENA_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_ICER_CLRENA_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_ICER_CLRENA_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_ICER_CLRENA_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_ICER_CLRENA_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_ICER_CLRENA_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_ICER_CLRENA_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_ISPR register *******************/ -#define NVIC_ISPR_SETPEND ((uint32_t)0xFFFFFFFF) /*!< Interrupt set-pending bits */ -#define NVIC_ISPR_SETPEND_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_ISPR_SETPEND_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_ISPR_SETPEND_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_ISPR_SETPEND_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_ISPR_SETPEND_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_ISPR_SETPEND_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_ISPR_SETPEND_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_ISPR_SETPEND_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_ISPR_SETPEND_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_ISPR_SETPEND_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_ISPR_SETPEND_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_ISPR_SETPEND_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_ISPR_SETPEND_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_ISPR_SETPEND_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_ISPR_SETPEND_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_ISPR_SETPEND_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_ISPR_SETPEND_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_ISPR_SETPEND_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_ISPR_SETPEND_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_ISPR_SETPEND_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_ISPR_SETPEND_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_ISPR_SETPEND_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_ISPR_SETPEND_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_ISPR_SETPEND_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_ISPR_SETPEND_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_ISPR_SETPEND_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_ISPR_SETPEND_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_ISPR_SETPEND_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_ISPR_SETPEND_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_ISPR_SETPEND_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_ISPR_SETPEND_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_ISPR_SETPEND_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_ICPR register *******************/ -#define NVIC_ICPR_CLRPEND ((uint32_t)0xFFFFFFFF) /*!< Interrupt clear-pending bits */ -#define NVIC_ICPR_CLRPEND_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_ICPR_CLRPEND_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_ICPR_CLRPEND_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_ICPR_CLRPEND_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_ICPR_CLRPEND_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_ICPR_CLRPEND_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_ICPR_CLRPEND_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_ICPR_CLRPEND_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_ICPR_CLRPEND_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_ICPR_CLRPEND_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_ICPR_CLRPEND_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_ICPR_CLRPEND_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_ICPR_CLRPEND_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_ICPR_CLRPEND_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_ICPR_CLRPEND_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_ICPR_CLRPEND_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_ICPR_CLRPEND_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_ICPR_CLRPEND_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_ICPR_CLRPEND_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_ICPR_CLRPEND_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_ICPR_CLRPEND_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_ICPR_CLRPEND_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_ICPR_CLRPEND_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_ICPR_CLRPEND_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_ICPR_CLRPEND_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_ICPR_CLRPEND_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_ICPR_CLRPEND_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_ICPR_CLRPEND_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_ICPR_CLRPEND_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_ICPR_CLRPEND_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_ICPR_CLRPEND_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_ICPR_CLRPEND_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_IABR register *******************/ -#define NVIC_IABR_ACTIVE ((uint32_t)0xFFFFFFFF) /*!< Interrupt active flags */ -#define NVIC_IABR_ACTIVE_0 ((uint32_t)0x00000001) /*!< bit 0 */ -#define NVIC_IABR_ACTIVE_1 ((uint32_t)0x00000002) /*!< bit 1 */ -#define NVIC_IABR_ACTIVE_2 ((uint32_t)0x00000004) /*!< bit 2 */ -#define NVIC_IABR_ACTIVE_3 ((uint32_t)0x00000008) /*!< bit 3 */ -#define NVIC_IABR_ACTIVE_4 ((uint32_t)0x00000010) /*!< bit 4 */ -#define NVIC_IABR_ACTIVE_5 ((uint32_t)0x00000020) /*!< bit 5 */ -#define NVIC_IABR_ACTIVE_6 ((uint32_t)0x00000040) /*!< bit 6 */ -#define NVIC_IABR_ACTIVE_7 ((uint32_t)0x00000080) /*!< bit 7 */ -#define NVIC_IABR_ACTIVE_8 ((uint32_t)0x00000100) /*!< bit 8 */ -#define NVIC_IABR_ACTIVE_9 ((uint32_t)0x00000200) /*!< bit 9 */ -#define NVIC_IABR_ACTIVE_10 ((uint32_t)0x00000400) /*!< bit 10 */ -#define NVIC_IABR_ACTIVE_11 ((uint32_t)0x00000800) /*!< bit 11 */ -#define NVIC_IABR_ACTIVE_12 ((uint32_t)0x00001000) /*!< bit 12 */ -#define NVIC_IABR_ACTIVE_13 ((uint32_t)0x00002000) /*!< bit 13 */ -#define NVIC_IABR_ACTIVE_14 ((uint32_t)0x00004000) /*!< bit 14 */ -#define NVIC_IABR_ACTIVE_15 ((uint32_t)0x00008000) /*!< bit 15 */ -#define NVIC_IABR_ACTIVE_16 ((uint32_t)0x00010000) /*!< bit 16 */ -#define NVIC_IABR_ACTIVE_17 ((uint32_t)0x00020000) /*!< bit 17 */ -#define NVIC_IABR_ACTIVE_18 ((uint32_t)0x00040000) /*!< bit 18 */ -#define NVIC_IABR_ACTIVE_19 ((uint32_t)0x00080000) /*!< bit 19 */ -#define NVIC_IABR_ACTIVE_20 ((uint32_t)0x00100000) /*!< bit 20 */ -#define NVIC_IABR_ACTIVE_21 ((uint32_t)0x00200000) /*!< bit 21 */ -#define NVIC_IABR_ACTIVE_22 ((uint32_t)0x00400000) /*!< bit 22 */ -#define NVIC_IABR_ACTIVE_23 ((uint32_t)0x00800000) /*!< bit 23 */ -#define NVIC_IABR_ACTIVE_24 ((uint32_t)0x01000000) /*!< bit 24 */ -#define NVIC_IABR_ACTIVE_25 ((uint32_t)0x02000000) /*!< bit 25 */ -#define NVIC_IABR_ACTIVE_26 ((uint32_t)0x04000000) /*!< bit 26 */ -#define NVIC_IABR_ACTIVE_27 ((uint32_t)0x08000000) /*!< bit 27 */ -#define NVIC_IABR_ACTIVE_28 ((uint32_t)0x10000000) /*!< bit 28 */ -#define NVIC_IABR_ACTIVE_29 ((uint32_t)0x20000000) /*!< bit 29 */ -#define NVIC_IABR_ACTIVE_30 ((uint32_t)0x40000000) /*!< bit 30 */ -#define NVIC_IABR_ACTIVE_31 ((uint32_t)0x80000000) /*!< bit 31 */ - -/****************** Bit definition for NVIC_PRI0 register *******************/ -#define NVIC_IPR0_PRI_0 ((uint32_t)0x000000FF) /*!< Priority of interrupt 0 */ -#define NVIC_IPR0_PRI_1 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 1 */ -#define NVIC_IPR0_PRI_2 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 2 */ -#define NVIC_IPR0_PRI_3 ((uint32_t)0xFF000000) /*!< Priority of interrupt 3 */ - -/****************** Bit definition for NVIC_PRI1 register *******************/ -#define NVIC_IPR1_PRI_4 ((uint32_t)0x000000FF) /*!< Priority of interrupt 4 */ -#define NVIC_IPR1_PRI_5 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 5 */ -#define NVIC_IPR1_PRI_6 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 6 */ -#define NVIC_IPR1_PRI_7 ((uint32_t)0xFF000000) /*!< Priority of interrupt 7 */ - -/****************** Bit definition for NVIC_PRI2 register *******************/ -#define NVIC_IPR2_PRI_8 ((uint32_t)0x000000FF) /*!< Priority of interrupt 8 */ -#define NVIC_IPR2_PRI_9 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 9 */ -#define NVIC_IPR2_PRI_10 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 10 */ -#define NVIC_IPR2_PRI_11 ((uint32_t)0xFF000000) /*!< Priority of interrupt 11 */ - -/****************** Bit definition for NVIC_PRI3 register *******************/ -#define NVIC_IPR3_PRI_12 ((uint32_t)0x000000FF) /*!< Priority of interrupt 12 */ -#define NVIC_IPR3_PRI_13 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 13 */ -#define NVIC_IPR3_PRI_14 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 14 */ -#define NVIC_IPR3_PRI_15 ((uint32_t)0xFF000000) /*!< Priority of interrupt 15 */ - -/****************** Bit definition for NVIC_PRI4 register *******************/ -#define NVIC_IPR4_PRI_16 ((uint32_t)0x000000FF) /*!< Priority of interrupt 16 */ -#define NVIC_IPR4_PRI_17 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 17 */ -#define NVIC_IPR4_PRI_18 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 18 */ -#define NVIC_IPR4_PRI_19 ((uint32_t)0xFF000000) /*!< Priority of interrupt 19 */ - -/****************** Bit definition for NVIC_PRI5 register *******************/ -#define NVIC_IPR5_PRI_20 ((uint32_t)0x000000FF) /*!< Priority of interrupt 20 */ -#define NVIC_IPR5_PRI_21 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 21 */ -#define NVIC_IPR5_PRI_22 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 22 */ -#define NVIC_IPR5_PRI_23 ((uint32_t)0xFF000000) /*!< Priority of interrupt 23 */ - -/****************** Bit definition for NVIC_PRI6 register *******************/ -#define NVIC_IPR6_PRI_24 ((uint32_t)0x000000FF) /*!< Priority of interrupt 24 */ -#define NVIC_IPR6_PRI_25 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 25 */ -#define NVIC_IPR6_PRI_26 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 26 */ -#define NVIC_IPR6_PRI_27 ((uint32_t)0xFF000000) /*!< Priority of interrupt 27 */ - -/****************** Bit definition for NVIC_PRI7 register *******************/ -#define NVIC_IPR7_PRI_28 ((uint32_t)0x000000FF) /*!< Priority of interrupt 28 */ -#define NVIC_IPR7_PRI_29 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 29 */ -#define NVIC_IPR7_PRI_30 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 30 */ -#define NVIC_IPR7_PRI_31 ((uint32_t)0xFF000000) /*!< Priority of interrupt 31 */ - -/****************** Bit definition for SCB_CPUID register *******************/ -#define SCB_CPUID_REVISION ((uint32_t)0x0000000F) /*!< Implementation defined revision number */ -#define SCB_CPUID_PARTNO ((uint32_t)0x0000FFF0) /*!< Number of processor within family */ -#define SCB_CPUID_Constant ((uint32_t)0x000F0000) /*!< Reads as 0x0F */ -#define SCB_CPUID_VARIANT ((uint32_t)0x00F00000) /*!< Implementation defined variant number */ -#define SCB_CPUID_IMPLEMENTER ((uint32_t)0xFF000000) /*!< Implementer code. ARM is 0x41 */ - -/******************* Bit definition for SCB_ICSR register *******************/ -#define SCB_ICSR_VECTACTIVE ((uint32_t)0x000001FF) /*!< Active ISR number field */ -#define SCB_ICSR_RETTOBASE ((uint32_t)0x00000800) /*!< All active exceptions minus the IPSR_current_exception yields the empty set */ -#define SCB_ICSR_VECTPENDING ((uint32_t)0x003FF000) /*!< Pending ISR number field */ -#define SCB_ICSR_ISRPENDING ((uint32_t)0x00400000) /*!< Interrupt pending flag */ -#define SCB_ICSR_ISRPREEMPT ((uint32_t)0x00800000) /*!< It indicates that a pending interrupt becomes active in the next running cycle */ -#define SCB_ICSR_PENDSTCLR ((uint32_t)0x02000000) /*!< Clear pending SysTick bit */ -#define SCB_ICSR_PENDSTSET ((uint32_t)0x04000000) /*!< Set pending SysTick bit */ -#define SCB_ICSR_PENDSVCLR ((uint32_t)0x08000000) /*!< Clear pending pendSV bit */ -#define SCB_ICSR_PENDSVSET ((uint32_t)0x10000000) /*!< Set pending pendSV bit */ -#define SCB_ICSR_NMIPENDSET ((uint32_t)0x80000000) /*!< Set pending NMI bit */ - -/******************* Bit definition for SCB_VTOR register *******************/ -#define SCB_VTOR_TBLOFF ((uint32_t)0x1FFFFF80) /*!< Vector table base offset field */ -#define SCB_VTOR_TBLBASE ((uint32_t)0x20000000) /*!< Table base in code(0) or RAM(1) */ - -/*!<***************** Bit definition for SCB_AIRCR register *******************/ -#define SCB_AIRCR_VECTRESET ((uint32_t)0x00000001) /*!< System Reset bit */ -#define SCB_AIRCR_VECTCLRACTIVE ((uint32_t)0x00000002) /*!< Clear active vector bit */ -#define SCB_AIRCR_SYSRESETREQ ((uint32_t)0x00000004) /*!< Requests chip control logic to generate a reset */ - -#define SCB_AIRCR_PRIGROUP ((uint32_t)0x00000700) /*!< PRIGROUP[2:0] bits (Priority group) */ -#define SCB_AIRCR_PRIGROUP_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define SCB_AIRCR_PRIGROUP_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define SCB_AIRCR_PRIGROUP_2 ((uint32_t)0x00000400) /*!< Bit 2 */ - -/* prority group configuration */ -#define SCB_AIRCR_PRIGROUP0 ((uint32_t)0x00000000) /*!< Priority group=0 (7 bits of pre-emption priority, 1 bit of subpriority) */ -#define SCB_AIRCR_PRIGROUP1 ((uint32_t)0x00000100) /*!< Priority group=1 (6 bits of pre-emption priority, 2 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP2 ((uint32_t)0x00000200) /*!< Priority group=2 (5 bits of pre-emption priority, 3 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP3 ((uint32_t)0x00000300) /*!< Priority group=3 (4 bits of pre-emption priority, 4 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP4 ((uint32_t)0x00000400) /*!< Priority group=4 (3 bits of pre-emption priority, 5 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP5 ((uint32_t)0x00000500) /*!< Priority group=5 (2 bits of pre-emption priority, 6 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP6 ((uint32_t)0x00000600) /*!< Priority group=6 (1 bit of pre-emption priority, 7 bits of subpriority) */ -#define SCB_AIRCR_PRIGROUP7 ((uint32_t)0x00000700) /*!< Priority group=7 (no pre-emption priority, 8 bits of subpriority) */ - -#define SCB_AIRCR_ENDIANESS ((uint32_t)0x00008000) /*!< Data endianness bit */ -#define SCB_AIRCR_VECTKEY ((uint32_t)0xFFFF0000) /*!< Register key (VECTKEY) - Reads as 0xFA05 (VECTKEYSTAT) */ - -/******************* Bit definition for SCB_SCR register ********************/ -#define SCB_SCR_SLEEPONEXIT ((uint8_t)0x02) /*!< Sleep on exit bit */ -#define SCB_SCR_SLEEPDEEP ((uint8_t)0x04) /*!< Sleep deep bit */ -#define SCB_SCR_SEVONPEND ((uint8_t)0x10) /*!< Wake up from WFE */ - -/******************** Bit definition for SCB_CCR register *******************/ -#define SCB_CCR_NONBASETHRDENA ((uint16_t)0x0001) /*!< Thread mode can be entered from any level in Handler mode by controlled return value */ -#define SCB_CCR_USERSETMPEND ((uint16_t)0x0002) /*!< Enables user code to write the Software Trigger Interrupt register to trigger (pend) a Main exception */ -#define SCB_CCR_UNALIGN_TRP ((uint16_t)0x0008) /*!< Trap for unaligned access */ -#define SCB_CCR_DIV_0_TRP ((uint16_t)0x0010) /*!< Trap on Divide by 0 */ -#define SCB_CCR_BFHFNMIGN ((uint16_t)0x0100) /*!< Handlers running at priority -1 and -2 */ -#define SCB_CCR_STKALIGN ((uint16_t)0x0200) /*!< On exception entry, the SP used prior to the exception is adjusted to be 8-byte aligned */ - -/******************* Bit definition for SCB_SHPR register ********************/ -#define SCB_SHPR_PRI_N ((uint32_t)0x000000FF) /*!< Priority of system handler 4,8, and 12. Mem Manage, reserved and Debug Monitor */ -#define SCB_SHPR_PRI_N1 ((uint32_t)0x0000FF00) /*!< Priority of system handler 5,9, and 13. Bus Fault, reserved and reserved */ -#define SCB_SHPR_PRI_N2 ((uint32_t)0x00FF0000) /*!< Priority of system handler 6,10, and 14. Usage Fault, reserved and PendSV */ -#define SCB_SHPR_PRI_N3 ((uint32_t)0xFF000000) /*!< Priority of system handler 7,11, and 15. Reserved, SVCall and SysTick */ - -/****************** Bit definition for SCB_SHCSR register *******************/ -#define SCB_SHCSR_MEMFAULTACT ((uint32_t)0x00000001) /*!< MemManage is active */ -#define SCB_SHCSR_BUSFAULTACT ((uint32_t)0x00000002) /*!< BusFault is active */ -#define SCB_SHCSR_USGFAULTACT ((uint32_t)0x00000008) /*!< UsageFault is active */ -#define SCB_SHCSR_SVCALLACT ((uint32_t)0x00000080) /*!< SVCall is active */ -#define SCB_SHCSR_MONITORACT ((uint32_t)0x00000100) /*!< Monitor is active */ -#define SCB_SHCSR_PENDSVACT ((uint32_t)0x00000400) /*!< PendSV is active */ -#define SCB_SHCSR_SYSTICKACT ((uint32_t)0x00000800) /*!< SysTick is active */ -#define SCB_SHCSR_USGFAULTPENDED ((uint32_t)0x00001000) /*!< Usage Fault is pended */ -#define SCB_SHCSR_MEMFAULTPENDED ((uint32_t)0x00002000) /*!< MemManage is pended */ -#define SCB_SHCSR_BUSFAULTPENDED ((uint32_t)0x00004000) /*!< Bus Fault is pended */ -#define SCB_SHCSR_SVCALLPENDED ((uint32_t)0x00008000) /*!< SVCall is pended */ -#define SCB_SHCSR_MEMFAULTENA ((uint32_t)0x00010000) /*!< MemManage enable */ -#define SCB_SHCSR_BUSFAULTENA ((uint32_t)0x00020000) /*!< Bus Fault enable */ -#define SCB_SHCSR_USGFAULTENA ((uint32_t)0x00040000) /*!< UsageFault enable */ - -/******************* Bit definition for SCB_CFSR register *******************/ -/*!< MFSR */ -#define SCB_CFSR_IACCVIOL ((uint32_t)0x00000001) /*!< Instruction access violation */ -#define SCB_CFSR_DACCVIOL ((uint32_t)0x00000002) /*!< Data access violation */ -#define SCB_CFSR_MUNSTKERR ((uint32_t)0x00000008) /*!< Unstacking error */ -#define SCB_CFSR_MSTKERR ((uint32_t)0x00000010) /*!< Stacking error */ -#define SCB_CFSR_MMARVALID ((uint32_t)0x00000080) /*!< Memory Manage Address Register address valid flag */ -/*!< BFSR */ -#define SCB_CFSR_IBUSERR ((uint32_t)0x00000100) /*!< Instruction bus error flag */ -#define SCB_CFSR_PRECISERR ((uint32_t)0x00000200) /*!< Precise data bus error */ -#define SCB_CFSR_IMPRECISERR ((uint32_t)0x00000400) /*!< Imprecise data bus error */ -#define SCB_CFSR_UNSTKERR ((uint32_t)0x00000800) /*!< Unstacking error */ -#define SCB_CFSR_STKERR ((uint32_t)0x00001000) /*!< Stacking error */ -#define SCB_CFSR_BFARVALID ((uint32_t)0x00008000) /*!< Bus Fault Address Register address valid flag */ -/*!< UFSR */ -#define SCB_CFSR_UNDEFINSTR ((uint32_t)0x00010000) /*!< The processor attempt to execute an undefined instruction */ -#define SCB_CFSR_INVSTATE ((uint32_t)0x00020000) /*!< Invalid combination of EPSR and instruction */ -#define SCB_CFSR_INVPC ((uint32_t)0x00040000) /*!< Attempt to load EXC_RETURN into pc illegally */ -#define SCB_CFSR_NOCP ((uint32_t)0x00080000) /*!< Attempt to use a coprocessor instruction */ -#define SCB_CFSR_UNALIGNED ((uint32_t)0x01000000) /*!< Fault occurs when there is an attempt to make an unaligned memory access */ -#define SCB_CFSR_DIVBYZERO ((uint32_t)0x02000000) /*!< Fault occurs when SDIV or DIV instruction is used with a divisor of 0 */ - -/******************* Bit definition for SCB_HFSR register *******************/ -#define SCB_HFSR_VECTTBL ((uint32_t)0x00000002) /*!< Fault occurs because of vector table read on exception processing */ -#define SCB_HFSR_FORCED ((uint32_t)0x40000000) /*!< Hard Fault activated when a configurable Fault was received and cannot activate */ -#define SCB_HFSR_DEBUGEVT ((uint32_t)0x80000000) /*!< Fault related to debug */ - -/******************* Bit definition for SCB_DFSR register *******************/ -#define SCB_DFSR_HALTED ((uint8_t)0x01) /*!< Halt request flag */ -#define SCB_DFSR_BKPT ((uint8_t)0x02) /*!< BKPT flag */ -#define SCB_DFSR_DWTTRAP ((uint8_t)0x04) /*!< Data Watchpoint and Trace (DWT) flag */ -#define SCB_DFSR_VCATCH ((uint8_t)0x08) /*!< Vector catch flag */ -#define SCB_DFSR_EXTERNAL ((uint8_t)0x10) /*!< External debug request flag */ - -/******************* Bit definition for SCB_MMFAR register ******************/ -#define SCB_MMFAR_ADDRESS ((uint32_t)0xFFFFFFFF) /*!< Mem Manage fault address field */ - -/******************* Bit definition for SCB_BFAR register *******************/ -#define SCB_BFAR_ADDRESS ((uint32_t)0xFFFFFFFF) /*!< Bus fault address field */ - -/******************* Bit definition for SCB_afsr register *******************/ -#define SCB_AFSR_IMPDEF ((uint32_t)0xFFFFFFFF) /*!< Implementation defined */ - -/******************************************************************************/ -/* */ -/* External Interrupt/Event Controller */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for EXTI_IMR register *******************/ -#define EXTI_IMR_MR0 ((uint32_t)0x00000001) /*!< Interrupt Mask on line 0 */ -#define EXTI_IMR_MR1 ((uint32_t)0x00000002) /*!< Interrupt Mask on line 1 */ -#define EXTI_IMR_MR2 ((uint32_t)0x00000004) /*!< Interrupt Mask on line 2 */ -#define EXTI_IMR_MR3 ((uint32_t)0x00000008) /*!< Interrupt Mask on line 3 */ -#define EXTI_IMR_MR4 ((uint32_t)0x00000010) /*!< Interrupt Mask on line 4 */ -#define EXTI_IMR_MR5 ((uint32_t)0x00000020) /*!< Interrupt Mask on line 5 */ -#define EXTI_IMR_MR6 ((uint32_t)0x00000040) /*!< Interrupt Mask on line 6 */ -#define EXTI_IMR_MR7 ((uint32_t)0x00000080) /*!< Interrupt Mask on line 7 */ -#define EXTI_IMR_MR8 ((uint32_t)0x00000100) /*!< Interrupt Mask on line 8 */ -#define EXTI_IMR_MR9 ((uint32_t)0x00000200) /*!< Interrupt Mask on line 9 */ -#define EXTI_IMR_MR10 ((uint32_t)0x00000400) /*!< Interrupt Mask on line 10 */ -#define EXTI_IMR_MR11 ((uint32_t)0x00000800) /*!< Interrupt Mask on line 11 */ -#define EXTI_IMR_MR12 ((uint32_t)0x00001000) /*!< Interrupt Mask on line 12 */ -#define EXTI_IMR_MR13 ((uint32_t)0x00002000) /*!< Interrupt Mask on line 13 */ -#define EXTI_IMR_MR14 ((uint32_t)0x00004000) /*!< Interrupt Mask on line 14 */ -#define EXTI_IMR_MR15 ((uint32_t)0x00008000) /*!< Interrupt Mask on line 15 */ -#define EXTI_IMR_MR16 ((uint32_t)0x00010000) /*!< Interrupt Mask on line 16 */ -#define EXTI_IMR_MR17 ((uint32_t)0x00020000) /*!< Interrupt Mask on line 17 */ -#define EXTI_IMR_MR18 ((uint32_t)0x00040000) /*!< Interrupt Mask on line 18 */ -#define EXTI_IMR_MR19 ((uint32_t)0x00080000) /*!< Interrupt Mask on line 19 */ - -/******************* Bit definition for EXTI_EMR register *******************/ -#define EXTI_EMR_MR0 ((uint32_t)0x00000001) /*!< Event Mask on line 0 */ -#define EXTI_EMR_MR1 ((uint32_t)0x00000002) /*!< Event Mask on line 1 */ -#define EXTI_EMR_MR2 ((uint32_t)0x00000004) /*!< Event Mask on line 2 */ -#define EXTI_EMR_MR3 ((uint32_t)0x00000008) /*!< Event Mask on line 3 */ -#define EXTI_EMR_MR4 ((uint32_t)0x00000010) /*!< Event Mask on line 4 */ -#define EXTI_EMR_MR5 ((uint32_t)0x00000020) /*!< Event Mask on line 5 */ -#define EXTI_EMR_MR6 ((uint32_t)0x00000040) /*!< Event Mask on line 6 */ -#define EXTI_EMR_MR7 ((uint32_t)0x00000080) /*!< Event Mask on line 7 */ -#define EXTI_EMR_MR8 ((uint32_t)0x00000100) /*!< Event Mask on line 8 */ -#define EXTI_EMR_MR9 ((uint32_t)0x00000200) /*!< Event Mask on line 9 */ -#define EXTI_EMR_MR10 ((uint32_t)0x00000400) /*!< Event Mask on line 10 */ -#define EXTI_EMR_MR11 ((uint32_t)0x00000800) /*!< Event Mask on line 11 */ -#define EXTI_EMR_MR12 ((uint32_t)0x00001000) /*!< Event Mask on line 12 */ -#define EXTI_EMR_MR13 ((uint32_t)0x00002000) /*!< Event Mask on line 13 */ -#define EXTI_EMR_MR14 ((uint32_t)0x00004000) /*!< Event Mask on line 14 */ -#define EXTI_EMR_MR15 ((uint32_t)0x00008000) /*!< Event Mask on line 15 */ -#define EXTI_EMR_MR16 ((uint32_t)0x00010000) /*!< Event Mask on line 16 */ -#define EXTI_EMR_MR17 ((uint32_t)0x00020000) /*!< Event Mask on line 17 */ -#define EXTI_EMR_MR18 ((uint32_t)0x00040000) /*!< Event Mask on line 18 */ -#define EXTI_EMR_MR19 ((uint32_t)0x00080000) /*!< Event Mask on line 19 */ - -/****************** Bit definition for EXTI_RTSR register *******************/ -#define EXTI_RTSR_TR0 ((uint32_t)0x00000001) /*!< Rising trigger event configuration bit of line 0 */ -#define EXTI_RTSR_TR1 ((uint32_t)0x00000002) /*!< Rising trigger event configuration bit of line 1 */ -#define EXTI_RTSR_TR2 ((uint32_t)0x00000004) /*!< Rising trigger event configuration bit of line 2 */ -#define EXTI_RTSR_TR3 ((uint32_t)0x00000008) /*!< Rising trigger event configuration bit of line 3 */ -#define EXTI_RTSR_TR4 ((uint32_t)0x00000010) /*!< Rising trigger event configuration bit of line 4 */ -#define EXTI_RTSR_TR5 ((uint32_t)0x00000020) /*!< Rising trigger event configuration bit of line 5 */ -#define EXTI_RTSR_TR6 ((uint32_t)0x00000040) /*!< Rising trigger event configuration bit of line 6 */ -#define EXTI_RTSR_TR7 ((uint32_t)0x00000080) /*!< Rising trigger event configuration bit of line 7 */ -#define EXTI_RTSR_TR8 ((uint32_t)0x00000100) /*!< Rising trigger event configuration bit of line 8 */ -#define EXTI_RTSR_TR9 ((uint32_t)0x00000200) /*!< Rising trigger event configuration bit of line 9 */ -#define EXTI_RTSR_TR10 ((uint32_t)0x00000400) /*!< Rising trigger event configuration bit of line 10 */ -#define EXTI_RTSR_TR11 ((uint32_t)0x00000800) /*!< Rising trigger event configuration bit of line 11 */ -#define EXTI_RTSR_TR12 ((uint32_t)0x00001000) /*!< Rising trigger event configuration bit of line 12 */ -#define EXTI_RTSR_TR13 ((uint32_t)0x00002000) /*!< Rising trigger event configuration bit of line 13 */ -#define EXTI_RTSR_TR14 ((uint32_t)0x00004000) /*!< Rising trigger event configuration bit of line 14 */ -#define EXTI_RTSR_TR15 ((uint32_t)0x00008000) /*!< Rising trigger event configuration bit of line 15 */ -#define EXTI_RTSR_TR16 ((uint32_t)0x00010000) /*!< Rising trigger event configuration bit of line 16 */ -#define EXTI_RTSR_TR17 ((uint32_t)0x00020000) /*!< Rising trigger event configuration bit of line 17 */ -#define EXTI_RTSR_TR18 ((uint32_t)0x00040000) /*!< Rising trigger event configuration bit of line 18 */ -#define EXTI_RTSR_TR19 ((uint32_t)0x00080000) /*!< Rising trigger event configuration bit of line 19 */ - -/****************** Bit definition for EXTI_FTSR register *******************/ -#define EXTI_FTSR_TR0 ((uint32_t)0x00000001) /*!< Falling trigger event configuration bit of line 0 */ -#define EXTI_FTSR_TR1 ((uint32_t)0x00000002) /*!< Falling trigger event configuration bit of line 1 */ -#define EXTI_FTSR_TR2 ((uint32_t)0x00000004) /*!< Falling trigger event configuration bit of line 2 */ -#define EXTI_FTSR_TR3 ((uint32_t)0x00000008) /*!< Falling trigger event configuration bit of line 3 */ -#define EXTI_FTSR_TR4 ((uint32_t)0x00000010) /*!< Falling trigger event configuration bit of line 4 */ -#define EXTI_FTSR_TR5 ((uint32_t)0x00000020) /*!< Falling trigger event configuration bit of line 5 */ -#define EXTI_FTSR_TR6 ((uint32_t)0x00000040) /*!< Falling trigger event configuration bit of line 6 */ -#define EXTI_FTSR_TR7 ((uint32_t)0x00000080) /*!< Falling trigger event configuration bit of line 7 */ -#define EXTI_FTSR_TR8 ((uint32_t)0x00000100) /*!< Falling trigger event configuration bit of line 8 */ -#define EXTI_FTSR_TR9 ((uint32_t)0x00000200) /*!< Falling trigger event configuration bit of line 9 */ -#define EXTI_FTSR_TR10 ((uint32_t)0x00000400) /*!< Falling trigger event configuration bit of line 10 */ -#define EXTI_FTSR_TR11 ((uint32_t)0x00000800) /*!< Falling trigger event configuration bit of line 11 */ -#define EXTI_FTSR_TR12 ((uint32_t)0x00001000) /*!< Falling trigger event configuration bit of line 12 */ -#define EXTI_FTSR_TR13 ((uint32_t)0x00002000) /*!< Falling trigger event configuration bit of line 13 */ -#define EXTI_FTSR_TR14 ((uint32_t)0x00004000) /*!< Falling trigger event configuration bit of line 14 */ -#define EXTI_FTSR_TR15 ((uint32_t)0x00008000) /*!< Falling trigger event configuration bit of line 15 */ -#define EXTI_FTSR_TR16 ((uint32_t)0x00010000) /*!< Falling trigger event configuration bit of line 16 */ -#define EXTI_FTSR_TR17 ((uint32_t)0x00020000) /*!< Falling trigger event configuration bit of line 17 */ -#define EXTI_FTSR_TR18 ((uint32_t)0x00040000) /*!< Falling trigger event configuration bit of line 18 */ -#define EXTI_FTSR_TR19 ((uint32_t)0x00080000) /*!< Falling trigger event configuration bit of line 19 */ - -/****************** Bit definition for EXTI_SWIER register ******************/ -#define EXTI_SWIER_SWIER0 ((uint32_t)0x00000001) /*!< Software Interrupt on line 0 */ -#define EXTI_SWIER_SWIER1 ((uint32_t)0x00000002) /*!< Software Interrupt on line 1 */ -#define EXTI_SWIER_SWIER2 ((uint32_t)0x00000004) /*!< Software Interrupt on line 2 */ -#define EXTI_SWIER_SWIER3 ((uint32_t)0x00000008) /*!< Software Interrupt on line 3 */ -#define EXTI_SWIER_SWIER4 ((uint32_t)0x00000010) /*!< Software Interrupt on line 4 */ -#define EXTI_SWIER_SWIER5 ((uint32_t)0x00000020) /*!< Software Interrupt on line 5 */ -#define EXTI_SWIER_SWIER6 ((uint32_t)0x00000040) /*!< Software Interrupt on line 6 */ -#define EXTI_SWIER_SWIER7 ((uint32_t)0x00000080) /*!< Software Interrupt on line 7 */ -#define EXTI_SWIER_SWIER8 ((uint32_t)0x00000100) /*!< Software Interrupt on line 8 */ -#define EXTI_SWIER_SWIER9 ((uint32_t)0x00000200) /*!< Software Interrupt on line 9 */ -#define EXTI_SWIER_SWIER10 ((uint32_t)0x00000400) /*!< Software Interrupt on line 10 */ -#define EXTI_SWIER_SWIER11 ((uint32_t)0x00000800) /*!< Software Interrupt on line 11 */ -#define EXTI_SWIER_SWIER12 ((uint32_t)0x00001000) /*!< Software Interrupt on line 12 */ -#define EXTI_SWIER_SWIER13 ((uint32_t)0x00002000) /*!< Software Interrupt on line 13 */ -#define EXTI_SWIER_SWIER14 ((uint32_t)0x00004000) /*!< Software Interrupt on line 14 */ -#define EXTI_SWIER_SWIER15 ((uint32_t)0x00008000) /*!< Software Interrupt on line 15 */ -#define EXTI_SWIER_SWIER16 ((uint32_t)0x00010000) /*!< Software Interrupt on line 16 */ -#define EXTI_SWIER_SWIER17 ((uint32_t)0x00020000) /*!< Software Interrupt on line 17 */ -#define EXTI_SWIER_SWIER18 ((uint32_t)0x00040000) /*!< Software Interrupt on line 18 */ -#define EXTI_SWIER_SWIER19 ((uint32_t)0x00080000) /*!< Software Interrupt on line 19 */ - -/******************* Bit definition for EXTI_PR register ********************/ -#define EXTI_PR_PR0 ((uint32_t)0x00000001) /*!< Pending bit for line 0 */ -#define EXTI_PR_PR1 ((uint32_t)0x00000002) /*!< Pending bit for line 1 */ -#define EXTI_PR_PR2 ((uint32_t)0x00000004) /*!< Pending bit for line 2 */ -#define EXTI_PR_PR3 ((uint32_t)0x00000008) /*!< Pending bit for line 3 */ -#define EXTI_PR_PR4 ((uint32_t)0x00000010) /*!< Pending bit for line 4 */ -#define EXTI_PR_PR5 ((uint32_t)0x00000020) /*!< Pending bit for line 5 */ -#define EXTI_PR_PR6 ((uint32_t)0x00000040) /*!< Pending bit for line 6 */ -#define EXTI_PR_PR7 ((uint32_t)0x00000080) /*!< Pending bit for line 7 */ -#define EXTI_PR_PR8 ((uint32_t)0x00000100) /*!< Pending bit for line 8 */ -#define EXTI_PR_PR9 ((uint32_t)0x00000200) /*!< Pending bit for line 9 */ -#define EXTI_PR_PR10 ((uint32_t)0x00000400) /*!< Pending bit for line 10 */ -#define EXTI_PR_PR11 ((uint32_t)0x00000800) /*!< Pending bit for line 11 */ -#define EXTI_PR_PR12 ((uint32_t)0x00001000) /*!< Pending bit for line 12 */ -#define EXTI_PR_PR13 ((uint32_t)0x00002000) /*!< Pending bit for line 13 */ -#define EXTI_PR_PR14 ((uint32_t)0x00004000) /*!< Pending bit for line 14 */ -#define EXTI_PR_PR15 ((uint32_t)0x00008000) /*!< Pending bit for line 15 */ -#define EXTI_PR_PR16 ((uint32_t)0x00010000) /*!< Pending bit for line 16 */ -#define EXTI_PR_PR17 ((uint32_t)0x00020000) /*!< Pending bit for line 17 */ -#define EXTI_PR_PR18 ((uint32_t)0x00040000) /*!< Pending bit for line 18 */ -#define EXTI_PR_PR19 ((uint32_t)0x00080000) /*!< Pending bit for line 19 */ - -/******************************************************************************/ -/* */ -/* DMA Controller */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for DMA_ISR register ********************/ -#define DMA_ISR_GIF1 ((uint32_t)0x00000001) /*!< Channel 1 Global interrupt flag */ -#define DMA_ISR_TCIF1 ((uint32_t)0x00000002) /*!< Channel 1 Transfer Complete flag */ -#define DMA_ISR_HTIF1 ((uint32_t)0x00000004) /*!< Channel 1 Half Transfer flag */ -#define DMA_ISR_TEIF1 ((uint32_t)0x00000008) /*!< Channel 1 Transfer Error flag */ -#define DMA_ISR_GIF2 ((uint32_t)0x00000010) /*!< Channel 2 Global interrupt flag */ -#define DMA_ISR_TCIF2 ((uint32_t)0x00000020) /*!< Channel 2 Transfer Complete flag */ -#define DMA_ISR_HTIF2 ((uint32_t)0x00000040) /*!< Channel 2 Half Transfer flag */ -#define DMA_ISR_TEIF2 ((uint32_t)0x00000080) /*!< Channel 2 Transfer Error flag */ -#define DMA_ISR_GIF3 ((uint32_t)0x00000100) /*!< Channel 3 Global interrupt flag */ -#define DMA_ISR_TCIF3 ((uint32_t)0x00000200) /*!< Channel 3 Transfer Complete flag */ -#define DMA_ISR_HTIF3 ((uint32_t)0x00000400) /*!< Channel 3 Half Transfer flag */ -#define DMA_ISR_TEIF3 ((uint32_t)0x00000800) /*!< Channel 3 Transfer Error flag */ -#define DMA_ISR_GIF4 ((uint32_t)0x00001000) /*!< Channel 4 Global interrupt flag */ -#define DMA_ISR_TCIF4 ((uint32_t)0x00002000) /*!< Channel 4 Transfer Complete flag */ -#define DMA_ISR_HTIF4 ((uint32_t)0x00004000) /*!< Channel 4 Half Transfer flag */ -#define DMA_ISR_TEIF4 ((uint32_t)0x00008000) /*!< Channel 4 Transfer Error flag */ -#define DMA_ISR_GIF5 ((uint32_t)0x00010000) /*!< Channel 5 Global interrupt flag */ -#define DMA_ISR_TCIF5 ((uint32_t)0x00020000) /*!< Channel 5 Transfer Complete flag */ -#define DMA_ISR_HTIF5 ((uint32_t)0x00040000) /*!< Channel 5 Half Transfer flag */ -#define DMA_ISR_TEIF5 ((uint32_t)0x00080000) /*!< Channel 5 Transfer Error flag */ -#define DMA_ISR_GIF6 ((uint32_t)0x00100000) /*!< Channel 6 Global interrupt flag */ -#define DMA_ISR_TCIF6 ((uint32_t)0x00200000) /*!< Channel 6 Transfer Complete flag */ -#define DMA_ISR_HTIF6 ((uint32_t)0x00400000) /*!< Channel 6 Half Transfer flag */ -#define DMA_ISR_TEIF6 ((uint32_t)0x00800000) /*!< Channel 6 Transfer Error flag */ -#define DMA_ISR_GIF7 ((uint32_t)0x01000000) /*!< Channel 7 Global interrupt flag */ -#define DMA_ISR_TCIF7 ((uint32_t)0x02000000) /*!< Channel 7 Transfer Complete flag */ -#define DMA_ISR_HTIF7 ((uint32_t)0x04000000) /*!< Channel 7 Half Transfer flag */ -#define DMA_ISR_TEIF7 ((uint32_t)0x08000000) /*!< Channel 7 Transfer Error flag */ - -/******************* Bit definition for DMA_IFCR register *******************/ -#define DMA_IFCR_CGIF1 ((uint32_t)0x00000001) /*!< Channel 1 Global interrupt clear */ -#define DMA_IFCR_CTCIF1 ((uint32_t)0x00000002) /*!< Channel 1 Transfer Complete clear */ -#define DMA_IFCR_CHTIF1 ((uint32_t)0x00000004) /*!< Channel 1 Half Transfer clear */ -#define DMA_IFCR_CTEIF1 ((uint32_t)0x00000008) /*!< Channel 1 Transfer Error clear */ -#define DMA_IFCR_CGIF2 ((uint32_t)0x00000010) /*!< Channel 2 Global interrupt clear */ -#define DMA_IFCR_CTCIF2 ((uint32_t)0x00000020) /*!< Channel 2 Transfer Complete clear */ -#define DMA_IFCR_CHTIF2 ((uint32_t)0x00000040) /*!< Channel 2 Half Transfer clear */ -#define DMA_IFCR_CTEIF2 ((uint32_t)0x00000080) /*!< Channel 2 Transfer Error clear */ -#define DMA_IFCR_CGIF3 ((uint32_t)0x00000100) /*!< Channel 3 Global interrupt clear */ -#define DMA_IFCR_CTCIF3 ((uint32_t)0x00000200) /*!< Channel 3 Transfer Complete clear */ -#define DMA_IFCR_CHTIF3 ((uint32_t)0x00000400) /*!< Channel 3 Half Transfer clear */ -#define DMA_IFCR_CTEIF3 ((uint32_t)0x00000800) /*!< Channel 3 Transfer Error clear */ -#define DMA_IFCR_CGIF4 ((uint32_t)0x00001000) /*!< Channel 4 Global interrupt clear */ -#define DMA_IFCR_CTCIF4 ((uint32_t)0x00002000) /*!< Channel 4 Transfer Complete clear */ -#define DMA_IFCR_CHTIF4 ((uint32_t)0x00004000) /*!< Channel 4 Half Transfer clear */ -#define DMA_IFCR_CTEIF4 ((uint32_t)0x00008000) /*!< Channel 4 Transfer Error clear */ -#define DMA_IFCR_CGIF5 ((uint32_t)0x00010000) /*!< Channel 5 Global interrupt clear */ -#define DMA_IFCR_CTCIF5 ((uint32_t)0x00020000) /*!< Channel 5 Transfer Complete clear */ -#define DMA_IFCR_CHTIF5 ((uint32_t)0x00040000) /*!< Channel 5 Half Transfer clear */ -#define DMA_IFCR_CTEIF5 ((uint32_t)0x00080000) /*!< Channel 5 Transfer Error clear */ -#define DMA_IFCR_CGIF6 ((uint32_t)0x00100000) /*!< Channel 6 Global interrupt clear */ -#define DMA_IFCR_CTCIF6 ((uint32_t)0x00200000) /*!< Channel 6 Transfer Complete clear */ -#define DMA_IFCR_CHTIF6 ((uint32_t)0x00400000) /*!< Channel 6 Half Transfer clear */ -#define DMA_IFCR_CTEIF6 ((uint32_t)0x00800000) /*!< Channel 6 Transfer Error clear */ -#define DMA_IFCR_CGIF7 ((uint32_t)0x01000000) /*!< Channel 7 Global interrupt clear */ -#define DMA_IFCR_CTCIF7 ((uint32_t)0x02000000) /*!< Channel 7 Transfer Complete clear */ -#define DMA_IFCR_CHTIF7 ((uint32_t)0x04000000) /*!< Channel 7 Half Transfer clear */ -#define DMA_IFCR_CTEIF7 ((uint32_t)0x08000000) /*!< Channel 7 Transfer Error clear */ - -/******************* Bit definition for DMA_CCR1 register *******************/ -#define DMA_CCR1_EN ((uint16_t)0x0001) /*!< Channel enable*/ -#define DMA_CCR1_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR1_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR1_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR1_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR1_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR1_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR1_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR1_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR1_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR1_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR1_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR1_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR1_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR1_PL ((uint16_t)0x3000) /*!< PL[1:0] bits(Channel Priority level) */ -#define DMA_CCR1_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR1_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR1_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/******************* Bit definition for DMA_CCR2 register *******************/ -#define DMA_CCR2_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR2_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR2_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR2_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR2_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR2_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR2_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR2_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR2_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR2_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR2_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR2_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR2_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR2_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR2_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR2_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR2_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR2_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/******************* Bit definition for DMA_CCR3 register *******************/ -#define DMA_CCR3_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR3_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR3_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR3_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR3_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR3_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR3_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR3_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR3_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR3_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR3_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR3_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR3_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR3_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR3_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR3_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR3_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR3_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/*!<****************** Bit definition for DMA_CCR4 register *******************/ -#define DMA_CCR4_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR4_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR4_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR4_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR4_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR4_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR4_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR4_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR4_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR4_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR4_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR4_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR4_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR4_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR4_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR4_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR4_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR4_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/****************** Bit definition for DMA_CCR5 register *******************/ -#define DMA_CCR5_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR5_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR5_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR5_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR5_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR5_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR5_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR5_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR5_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR5_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR5_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR5_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR5_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR5_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR5_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR5_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR5_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR5_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode enable */ - -/******************* Bit definition for DMA_CCR6 register *******************/ -#define DMA_CCR6_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR6_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR6_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR6_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR6_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR6_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR6_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR6_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR6_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR6_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR6_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR6_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR6_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR6_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR6_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR6_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR6_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR6_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ - -/******************* Bit definition for DMA_CCR7 register *******************/ -#define DMA_CCR7_EN ((uint16_t)0x0001) /*!< Channel enable */ -#define DMA_CCR7_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ -#define DMA_CCR7_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ -#define DMA_CCR7_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ -#define DMA_CCR7_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ -#define DMA_CCR7_CIRC ((uint16_t)0x0020) /*!< Circular mode */ -#define DMA_CCR7_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ -#define DMA_CCR7_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ - -#define DMA_CCR7_PSIZE , ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ -#define DMA_CCR7_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define DMA_CCR7_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define DMA_CCR7_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ -#define DMA_CCR7_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define DMA_CCR7_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define DMA_CCR7_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ -#define DMA_CCR7_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define DMA_CCR7_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define DMA_CCR7_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode enable */ - -/****************** Bit definition for DMA_CNDTR1 register ******************/ -#define DMA_CNDTR1_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR2 register ******************/ -#define DMA_CNDTR2_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR3 register ******************/ -#define DMA_CNDTR3_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR4 register ******************/ -#define DMA_CNDTR4_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR5 register ******************/ -#define DMA_CNDTR5_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR6 register ******************/ -#define DMA_CNDTR6_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CNDTR7 register ******************/ -#define DMA_CNDTR7_NDT ((uint16_t)0xFFFF) /*!< Number of data to Transfer */ - -/****************** Bit definition for DMA_CPAR1 register *******************/ -#define DMA_CPAR1_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CPAR2 register *******************/ -#define DMA_CPAR2_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CPAR3 register *******************/ -#define DMA_CPAR3_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - - -/****************** Bit definition for DMA_CPAR4 register *******************/ -#define DMA_CPAR4_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CPAR5 register *******************/ -#define DMA_CPAR5_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CPAR6 register *******************/ -#define DMA_CPAR6_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - - -/****************** Bit definition for DMA_CPAR7 register *******************/ -#define DMA_CPAR7_PA ((uint32_t)0xFFFFFFFF) /*!< Peripheral Address */ - -/****************** Bit definition for DMA_CMAR1 register *******************/ -#define DMA_CMAR1_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR2 register *******************/ -#define DMA_CMAR2_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR3 register *******************/ -#define DMA_CMAR3_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - - -/****************** Bit definition for DMA_CMAR4 register *******************/ -#define DMA_CMAR4_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR5 register *******************/ -#define DMA_CMAR5_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR6 register *******************/ -#define DMA_CMAR6_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/****************** Bit definition for DMA_CMAR7 register *******************/ -#define DMA_CMAR7_MA ((uint32_t)0xFFFFFFFF) /*!< Memory Address */ - -/******************************************************************************/ -/* */ -/* Analog to Digital Converter */ -/* */ -/******************************************************************************/ - -/******************** Bit definition for ADC_SR register ********************/ -#define ADC_SR_AWD ((uint8_t)0x01) /*!< Analog watchdog flag */ -#define ADC_SR_EOC ((uint8_t)0x02) /*!< End of conversion */ -#define ADC_SR_JEOC ((uint8_t)0x04) /*!< Injected channel end of conversion */ -#define ADC_SR_JSTRT ((uint8_t)0x08) /*!< Injected channel Start flag */ -#define ADC_SR_STRT ((uint8_t)0x10) /*!< Regular channel Start flag */ - -/******************* Bit definition for ADC_CR1 register ********************/ -#define ADC_CR1_AWDCH ((uint32_t)0x0000001F) /*!< AWDCH[4:0] bits (Analog watchdog channel select bits) */ -#define ADC_CR1_AWDCH_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_CR1_AWDCH_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_CR1_AWDCH_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_CR1_AWDCH_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_CR1_AWDCH_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_CR1_EOCIE ((uint32_t)0x00000020) /*!< Interrupt enable for EOC */ -#define ADC_CR1_AWDIE ((uint32_t)0x00000040) /*!< Analog Watchdog interrupt enable */ -#define ADC_CR1_JEOCIE ((uint32_t)0x00000080) /*!< Interrupt enable for injected channels */ -#define ADC_CR1_SCAN ((uint32_t)0x00000100) /*!< Scan mode */ -#define ADC_CR1_AWDSGL ((uint32_t)0x00000200) /*!< Enable the watchdog on a single channel in scan mode */ -#define ADC_CR1_JAUTO ((uint32_t)0x00000400) /*!< Automatic injected group conversion */ -#define ADC_CR1_DISCEN ((uint32_t)0x00000800) /*!< Discontinuous mode on regular channels */ -#define ADC_CR1_JDISCEN ((uint32_t)0x00001000) /*!< Discontinuous mode on injected channels */ - -#define ADC_CR1_DISCNUM ((uint32_t)0x0000E000) /*!< DISCNUM[2:0] bits (Discontinuous mode channel count) */ -#define ADC_CR1_DISCNUM_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define ADC_CR1_DISCNUM_1 ((uint32_t)0x00004000) /*!< Bit 1 */ -#define ADC_CR1_DISCNUM_2 ((uint32_t)0x00008000) /*!< Bit 2 */ - -#define ADC_CR1_DUALMOD ((uint32_t)0x000F0000) /*!< DUALMOD[3:0] bits (Dual mode selection) */ -#define ADC_CR1_DUALMOD_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define ADC_CR1_DUALMOD_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define ADC_CR1_DUALMOD_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define ADC_CR1_DUALMOD_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define ADC_CR1_JAWDEN ((uint32_t)0x00400000) /*!< Analog watchdog enable on injected channels */ -#define ADC_CR1_AWDEN ((uint32_t)0x00800000) /*!< Analog watchdog enable on regular channels */ - - -/******************* Bit definition for ADC_CR2 register ********************/ -#define ADC_CR2_ADON ((uint32_t)0x00000001) /*!< A/D Converter ON / OFF */ -#define ADC_CR2_CONT ((uint32_t)0x00000002) /*!< Continuous Conversion */ -#define ADC_CR2_CAL ((uint32_t)0x00000004) /*!< A/D Calibration */ -#define ADC_CR2_RSTCAL ((uint32_t)0x00000008) /*!< Reset Calibration */ -#define ADC_CR2_DMA ((uint32_t)0x00000100) /*!< Direct Memory access mode */ -#define ADC_CR2_ALIGN ((uint32_t)0x00000800) /*!< Data Alignment */ - -#define ADC_CR2_JEXTSEL ((uint32_t)0x00007000) /*!< JEXTSEL[2:0] bits (External event select for injected group) */ -#define ADC_CR2_JEXTSEL_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define ADC_CR2_JEXTSEL_1 ((uint32_t)0x00002000) /*!< Bit 1 */ -#define ADC_CR2_JEXTSEL_2 ((uint32_t)0x00004000) /*!< Bit 2 */ - -#define ADC_CR2_JEXTTRIG ((uint32_t)0x00008000) /*!< External Trigger Conversion mode for injected channels */ - -#define ADC_CR2_EXTSEL ((uint32_t)0x000E0000) /*!< EXTSEL[2:0] bits (External Event Select for regular group) */ -#define ADC_CR2_EXTSEL_0 ((uint32_t)0x00020000) /*!< Bit 0 */ -#define ADC_CR2_EXTSEL_1 ((uint32_t)0x00040000) /*!< Bit 1 */ -#define ADC_CR2_EXTSEL_2 ((uint32_t)0x00080000) /*!< Bit 2 */ - -#define ADC_CR2_EXTTRIG ((uint32_t)0x00100000) /*!< External Trigger Conversion mode for regular channels */ -#define ADC_CR2_JSWSTART ((uint32_t)0x00200000) /*!< Start Conversion of injected channels */ -#define ADC_CR2_SWSTART ((uint32_t)0x00400000) /*!< Start Conversion of regular channels */ -#define ADC_CR2_TSVREFE ((uint32_t)0x00800000) /*!< Temperature Sensor and VREFINT Enable */ - -/****************** Bit definition for ADC_SMPR1 register *******************/ -#define ADC_SMPR1_SMP10 ((uint32_t)0x00000007) /*!< SMP10[2:0] bits (Channel 10 Sample time selection) */ -#define ADC_SMPR1_SMP10_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SMPR1_SMP10_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SMPR1_SMP10_2 ((uint32_t)0x00000004) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP11 ((uint32_t)0x00000038) /*!< SMP11[2:0] bits (Channel 11 Sample time selection) */ -#define ADC_SMPR1_SMP11_0 ((uint32_t)0x00000008) /*!< Bit 0 */ -#define ADC_SMPR1_SMP11_1 ((uint32_t)0x00000010) /*!< Bit 1 */ -#define ADC_SMPR1_SMP11_2 ((uint32_t)0x00000020) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP12 ((uint32_t)0x000001C0) /*!< SMP12[2:0] bits (Channel 12 Sample time selection) */ -#define ADC_SMPR1_SMP12_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define ADC_SMPR1_SMP12_1 ((uint32_t)0x00000080) /*!< Bit 1 */ -#define ADC_SMPR1_SMP12_2 ((uint32_t)0x00000100) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP13 ((uint32_t)0x00000E00) /*!< SMP13[2:0] bits (Channel 13 Sample time selection) */ -#define ADC_SMPR1_SMP13_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define ADC_SMPR1_SMP13_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define ADC_SMPR1_SMP13_2 ((uint32_t)0x00000800) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP14 ((uint32_t)0x00007000) /*!< SMP14[2:0] bits (Channel 14 Sample time selection) */ -#define ADC_SMPR1_SMP14_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define ADC_SMPR1_SMP14_1 ((uint32_t)0x00002000) /*!< Bit 1 */ -#define ADC_SMPR1_SMP14_2 ((uint32_t)0x00004000) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP15 ((uint32_t)0x00038000) /*!< SMP15[2:0] bits (Channel 15 Sample time selection) */ -#define ADC_SMPR1_SMP15_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SMPR1_SMP15_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SMPR1_SMP15_2 ((uint32_t)0x00020000) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP16 ((uint32_t)0x001C0000) /*!< SMP16[2:0] bits (Channel 16 Sample time selection) */ -#define ADC_SMPR1_SMP16_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define ADC_SMPR1_SMP16_1 ((uint32_t)0x00080000) /*!< Bit 1 */ -#define ADC_SMPR1_SMP16_2 ((uint32_t)0x00100000) /*!< Bit 2 */ - -#define ADC_SMPR1_SMP17 ((uint32_t)0x00E00000) /*!< SMP17[2:0] bits (Channel 17 Sample time selection) */ -#define ADC_SMPR1_SMP17_0 ((uint32_t)0x00200000) /*!< Bit 0 */ -#define ADC_SMPR1_SMP17_1 ((uint32_t)0x00400000) /*!< Bit 1 */ -#define ADC_SMPR1_SMP17_2 ((uint32_t)0x00800000) /*!< Bit 2 */ - -/****************** Bit definition for ADC_SMPR2 register *******************/ -#define ADC_SMPR2_SMP0 ((uint32_t)0x00000007) /*!< SMP0[2:0] bits (Channel 0 Sample time selection) */ -#define ADC_SMPR2_SMP0_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SMPR2_SMP0_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SMPR2_SMP0_2 ((uint32_t)0x00000004) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP1 ((uint32_t)0x00000038) /*!< SMP1[2:0] bits (Channel 1 Sample time selection) */ -#define ADC_SMPR2_SMP1_0 ((uint32_t)0x00000008) /*!< Bit 0 */ -#define ADC_SMPR2_SMP1_1 ((uint32_t)0x00000010) /*!< Bit 1 */ -#define ADC_SMPR2_SMP1_2 ((uint32_t)0x00000020) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP2 ((uint32_t)0x000001C0) /*!< SMP2[2:0] bits (Channel 2 Sample time selection) */ -#define ADC_SMPR2_SMP2_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define ADC_SMPR2_SMP2_1 ((uint32_t)0x00000080) /*!< Bit 1 */ -#define ADC_SMPR2_SMP2_2 ((uint32_t)0x00000100) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP3 ((uint32_t)0x00000E00) /*!< SMP3[2:0] bits (Channel 3 Sample time selection) */ -#define ADC_SMPR2_SMP3_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define ADC_SMPR2_SMP3_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define ADC_SMPR2_SMP3_2 ((uint32_t)0x00000800) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP4 ((uint32_t)0x00007000) /*!< SMP4[2:0] bits (Channel 4 Sample time selection) */ -#define ADC_SMPR2_SMP4_0 ((uint32_t)0x00001000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP4_1 ((uint32_t)0x00002000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP4_2 ((uint32_t)0x00004000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP5 ((uint32_t)0x00038000) /*!< SMP5[2:0] bits (Channel 5 Sample time selection) */ -#define ADC_SMPR2_SMP5_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP5_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP5_2 ((uint32_t)0x00020000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP6 ((uint32_t)0x001C0000) /*!< SMP6[2:0] bits (Channel 6 Sample time selection) */ -#define ADC_SMPR2_SMP6_0 ((uint32_t)0x00040000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP6_1 ((uint32_t)0x00080000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP6_2 ((uint32_t)0x00100000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP7 ((uint32_t)0x00E00000) /*!< SMP7[2:0] bits (Channel 7 Sample time selection) */ -#define ADC_SMPR2_SMP7_0 ((uint32_t)0x00200000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP7_1 ((uint32_t)0x00400000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP7_2 ((uint32_t)0x00800000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP8 ((uint32_t)0x07000000) /*!< SMP8[2:0] bits (Channel 8 Sample time selection) */ -#define ADC_SMPR2_SMP8_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP8_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP8_2 ((uint32_t)0x04000000) /*!< Bit 2 */ - -#define ADC_SMPR2_SMP9 ((uint32_t)0x38000000) /*!< SMP9[2:0] bits (Channel 9 Sample time selection) */ -#define ADC_SMPR2_SMP9_0 ((uint32_t)0x08000000) /*!< Bit 0 */ -#define ADC_SMPR2_SMP9_1 ((uint32_t)0x10000000) /*!< Bit 1 */ -#define ADC_SMPR2_SMP9_2 ((uint32_t)0x20000000) /*!< Bit 2 */ - -/****************** Bit definition for ADC_JOFR1 register *******************/ -#define ADC_JOFR1_JOFFSET1 ((uint16_t)0x0FFF) /*!< Data offset for injected channel 1 */ - -/****************** Bit definition for ADC_JOFR2 register *******************/ -#define ADC_JOFR2_JOFFSET2 ((uint16_t)0x0FFF) /*!< Data offset for injected channel 2 */ - -/****************** Bit definition for ADC_JOFR3 register *******************/ -#define ADC_JOFR3_JOFFSET3 ((uint16_t)0x0FFF) /*!< Data offset for injected channel 3 */ - -/****************** Bit definition for ADC_JOFR4 register *******************/ -#define ADC_JOFR4_JOFFSET4 ((uint16_t)0x0FFF) /*!< Data offset for injected channel 4 */ - -/******************* Bit definition for ADC_HTR register ********************/ -#define ADC_HTR_HT ((uint16_t)0x0FFF) /*!< Analog watchdog high threshold */ - -/******************* Bit definition for ADC_LTR register ********************/ -#define ADC_LTR_LT ((uint16_t)0x0FFF) /*!< Analog watchdog low threshold */ - -/******************* Bit definition for ADC_SQR1 register *******************/ -#define ADC_SQR1_SQ13 ((uint32_t)0x0000001F) /*!< SQ13[4:0] bits (13th conversion in regular sequence) */ -#define ADC_SQR1_SQ13_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SQR1_SQ13_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SQR1_SQ13_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_SQR1_SQ13_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_SQR1_SQ13_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_SQR1_SQ14 ((uint32_t)0x000003E0) /*!< SQ14[4:0] bits (14th conversion in regular sequence) */ -#define ADC_SQR1_SQ14_0 ((uint32_t)0x00000020) /*!< Bit 0 */ -#define ADC_SQR1_SQ14_1 ((uint32_t)0x00000040) /*!< Bit 1 */ -#define ADC_SQR1_SQ14_2 ((uint32_t)0x00000080) /*!< Bit 2 */ -#define ADC_SQR1_SQ14_3 ((uint32_t)0x00000100) /*!< Bit 3 */ -#define ADC_SQR1_SQ14_4 ((uint32_t)0x00000200) /*!< Bit 4 */ - -#define ADC_SQR1_SQ15 ((uint32_t)0x00007C00) /*!< SQ15[4:0] bits (15th conversion in regular sequence) */ -#define ADC_SQR1_SQ15_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define ADC_SQR1_SQ15_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define ADC_SQR1_SQ15_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define ADC_SQR1_SQ15_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define ADC_SQR1_SQ15_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define ADC_SQR1_SQ16 ((uint32_t)0x000F8000) /*!< SQ16[4:0] bits (16th conversion in regular sequence) */ -#define ADC_SQR1_SQ16_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SQR1_SQ16_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SQR1_SQ16_2 ((uint32_t)0x00020000) /*!< Bit 2 */ -#define ADC_SQR1_SQ16_3 ((uint32_t)0x00040000) /*!< Bit 3 */ -#define ADC_SQR1_SQ16_4 ((uint32_t)0x00080000) /*!< Bit 4 */ - -#define ADC_SQR1_L ((uint32_t)0x00F00000) /*!< L[3:0] bits (Regular channel sequence length) */ -#define ADC_SQR1_L_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define ADC_SQR1_L_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define ADC_SQR1_L_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define ADC_SQR1_L_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -/******************* Bit definition for ADC_SQR2 register *******************/ -#define ADC_SQR2_SQ7 ((uint32_t)0x0000001F) /*!< SQ7[4:0] bits (7th conversion in regular sequence) */ -#define ADC_SQR2_SQ7_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SQR2_SQ7_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SQR2_SQ7_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_SQR2_SQ7_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_SQR2_SQ7_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_SQR2_SQ8 ((uint32_t)0x000003E0) /*!< SQ8[4:0] bits (8th conversion in regular sequence) */ -#define ADC_SQR2_SQ8_0 ((uint32_t)0x00000020) /*!< Bit 0 */ -#define ADC_SQR2_SQ8_1 ((uint32_t)0x00000040) /*!< Bit 1 */ -#define ADC_SQR2_SQ8_2 ((uint32_t)0x00000080) /*!< Bit 2 */ -#define ADC_SQR2_SQ8_3 ((uint32_t)0x00000100) /*!< Bit 3 */ -#define ADC_SQR2_SQ8_4 ((uint32_t)0x00000200) /*!< Bit 4 */ - -#define ADC_SQR2_SQ9 ((uint32_t)0x00007C00) /*!< SQ9[4:0] bits (9th conversion in regular sequence) */ -#define ADC_SQR2_SQ9_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define ADC_SQR2_SQ9_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define ADC_SQR2_SQ9_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define ADC_SQR2_SQ9_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define ADC_SQR2_SQ9_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define ADC_SQR2_SQ10 ((uint32_t)0x000F8000) /*!< SQ10[4:0] bits (10th conversion in regular sequence) */ -#define ADC_SQR2_SQ10_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SQR2_SQ10_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SQR2_SQ10_2 ((uint32_t)0x00020000) /*!< Bit 2 */ -#define ADC_SQR2_SQ10_3 ((uint32_t)0x00040000) /*!< Bit 3 */ -#define ADC_SQR2_SQ10_4 ((uint32_t)0x00080000) /*!< Bit 4 */ - -#define ADC_SQR2_SQ11 ((uint32_t)0x01F00000) /*!< SQ11[4:0] bits (11th conversion in regular sequence) */ -#define ADC_SQR2_SQ11_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define ADC_SQR2_SQ11_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define ADC_SQR2_SQ11_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define ADC_SQR2_SQ11_3 ((uint32_t)0x00800000) /*!< Bit 3 */ -#define ADC_SQR2_SQ11_4 ((uint32_t)0x01000000) /*!< Bit 4 */ - -#define ADC_SQR2_SQ12 ((uint32_t)0x3E000000) /*!< SQ12[4:0] bits (12th conversion in regular sequence) */ -#define ADC_SQR2_SQ12_0 ((uint32_t)0x02000000) /*!< Bit 0 */ -#define ADC_SQR2_SQ12_1 ((uint32_t)0x04000000) /*!< Bit 1 */ -#define ADC_SQR2_SQ12_2 ((uint32_t)0x08000000) /*!< Bit 2 */ -#define ADC_SQR2_SQ12_3 ((uint32_t)0x10000000) /*!< Bit 3 */ -#define ADC_SQR2_SQ12_4 ((uint32_t)0x20000000) /*!< Bit 4 */ - -/******************* Bit definition for ADC_SQR3 register *******************/ -#define ADC_SQR3_SQ1 ((uint32_t)0x0000001F) /*!< SQ1[4:0] bits (1st conversion in regular sequence) */ -#define ADC_SQR3_SQ1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_SQR3_SQ1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_SQR3_SQ1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_SQR3_SQ1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_SQR3_SQ1_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_SQR3_SQ2 ((uint32_t)0x000003E0) /*!< SQ2[4:0] bits (2nd conversion in regular sequence) */ -#define ADC_SQR3_SQ2_0 ((uint32_t)0x00000020) /*!< Bit 0 */ -#define ADC_SQR3_SQ2_1 ((uint32_t)0x00000040) /*!< Bit 1 */ -#define ADC_SQR3_SQ2_2 ((uint32_t)0x00000080) /*!< Bit 2 */ -#define ADC_SQR3_SQ2_3 ((uint32_t)0x00000100) /*!< Bit 3 */ -#define ADC_SQR3_SQ2_4 ((uint32_t)0x00000200) /*!< Bit 4 */ - -#define ADC_SQR3_SQ3 ((uint32_t)0x00007C00) /*!< SQ3[4:0] bits (3rd conversion in regular sequence) */ -#define ADC_SQR3_SQ3_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define ADC_SQR3_SQ3_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define ADC_SQR3_SQ3_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define ADC_SQR3_SQ3_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define ADC_SQR3_SQ3_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define ADC_SQR3_SQ4 ((uint32_t)0x000F8000) /*!< SQ4[4:0] bits (4th conversion in regular sequence) */ -#define ADC_SQR3_SQ4_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_SQR3_SQ4_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_SQR3_SQ4_2 ((uint32_t)0x00020000) /*!< Bit 2 */ -#define ADC_SQR3_SQ4_3 ((uint32_t)0x00040000) /*!< Bit 3 */ -#define ADC_SQR3_SQ4_4 ((uint32_t)0x00080000) /*!< Bit 4 */ - -#define ADC_SQR3_SQ5 ((uint32_t)0x01F00000) /*!< SQ5[4:0] bits (5th conversion in regular sequence) */ -#define ADC_SQR3_SQ5_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define ADC_SQR3_SQ5_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define ADC_SQR3_SQ5_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define ADC_SQR3_SQ5_3 ((uint32_t)0x00800000) /*!< Bit 3 */ -#define ADC_SQR3_SQ5_4 ((uint32_t)0x01000000) /*!< Bit 4 */ - -#define ADC_SQR3_SQ6 ((uint32_t)0x3E000000) /*!< SQ6[4:0] bits (6th conversion in regular sequence) */ -#define ADC_SQR3_SQ6_0 ((uint32_t)0x02000000) /*!< Bit 0 */ -#define ADC_SQR3_SQ6_1 ((uint32_t)0x04000000) /*!< Bit 1 */ -#define ADC_SQR3_SQ6_2 ((uint32_t)0x08000000) /*!< Bit 2 */ -#define ADC_SQR3_SQ6_3 ((uint32_t)0x10000000) /*!< Bit 3 */ -#define ADC_SQR3_SQ6_4 ((uint32_t)0x20000000) /*!< Bit 4 */ - -/******************* Bit definition for ADC_JSQR register *******************/ -#define ADC_JSQR_JSQ1 ((uint32_t)0x0000001F) /*!< JSQ1[4:0] bits (1st conversion in injected sequence) */ -#define ADC_JSQR_JSQ1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define ADC_JSQR_JSQ1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define ADC_JSQR_JSQ1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define ADC_JSQR_JSQ1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define ADC_JSQR_JSQ1_4 ((uint32_t)0x00000010) /*!< Bit 4 */ - -#define ADC_JSQR_JSQ2 ((uint32_t)0x000003E0) /*!< JSQ2[4:0] bits (2nd conversion in injected sequence) */ -#define ADC_JSQR_JSQ2_0 ((uint32_t)0x00000020) /*!< Bit 0 */ -#define ADC_JSQR_JSQ2_1 ((uint32_t)0x00000040) /*!< Bit 1 */ -#define ADC_JSQR_JSQ2_2 ((uint32_t)0x00000080) /*!< Bit 2 */ -#define ADC_JSQR_JSQ2_3 ((uint32_t)0x00000100) /*!< Bit 3 */ -#define ADC_JSQR_JSQ2_4 ((uint32_t)0x00000200) /*!< Bit 4 */ - -#define ADC_JSQR_JSQ3 ((uint32_t)0x00007C00) /*!< JSQ3[4:0] bits (3rd conversion in injected sequence) */ -#define ADC_JSQR_JSQ3_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define ADC_JSQR_JSQ3_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define ADC_JSQR_JSQ3_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define ADC_JSQR_JSQ3_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define ADC_JSQR_JSQ3_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define ADC_JSQR_JSQ4 ((uint32_t)0x000F8000) /*!< JSQ4[4:0] bits (4th conversion in injected sequence) */ -#define ADC_JSQR_JSQ4_0 ((uint32_t)0x00008000) /*!< Bit 0 */ -#define ADC_JSQR_JSQ4_1 ((uint32_t)0x00010000) /*!< Bit 1 */ -#define ADC_JSQR_JSQ4_2 ((uint32_t)0x00020000) /*!< Bit 2 */ -#define ADC_JSQR_JSQ4_3 ((uint32_t)0x00040000) /*!< Bit 3 */ -#define ADC_JSQR_JSQ4_4 ((uint32_t)0x00080000) /*!< Bit 4 */ - -#define ADC_JSQR_JL ((uint32_t)0x00300000) /*!< JL[1:0] bits (Injected Sequence length) */ -#define ADC_JSQR_JL_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define ADC_JSQR_JL_1 ((uint32_t)0x00200000) /*!< Bit 1 */ - -/******************* Bit definition for ADC_JDR1 register *******************/ -#define ADC_JDR1_JDATA ((uint16_t)0xFFFF) /*!< Injected data */ - -/******************* Bit definition for ADC_JDR2 register *******************/ -#define ADC_JDR2_JDATA ((uint16_t)0xFFFF) /*!< Injected data */ - -/******************* Bit definition for ADC_JDR3 register *******************/ -#define ADC_JDR3_JDATA ((uint16_t)0xFFFF) /*!< Injected data */ - -/******************* Bit definition for ADC_JDR4 register *******************/ -#define ADC_JDR4_JDATA ((uint16_t)0xFFFF) /*!< Injected data */ - -/******************** Bit definition for ADC_DR register ********************/ -#define ADC_DR_DATA ((uint32_t)0x0000FFFF) /*!< Regular data */ -#define ADC_DR_ADC2DATA ((uint32_t)0xFFFF0000) /*!< ADC2 data */ - -/******************************************************************************/ -/* */ -/* Digital to Analog Converter */ -/* */ -/******************************************************************************/ - -/******************** Bit definition for DAC_CR register ********************/ -#define DAC_CR_EN1 ((uint32_t)0x00000001) /*!< DAC channel1 enable */ -#define DAC_CR_BOFF1 ((uint32_t)0x00000002) /*!< DAC channel1 output buffer disable */ -#define DAC_CR_TEN1 ((uint32_t)0x00000004) /*!< DAC channel1 Trigger enable */ - -#define DAC_CR_TSEL1 ((uint32_t)0x00000038) /*!< TSEL1[2:0] (DAC channel1 Trigger selection) */ -#define DAC_CR_TSEL1_0 ((uint32_t)0x00000008) /*!< Bit 0 */ -#define DAC_CR_TSEL1_1 ((uint32_t)0x00000010) /*!< Bit 1 */ -#define DAC_CR_TSEL1_2 ((uint32_t)0x00000020) /*!< Bit 2 */ - -#define DAC_CR_WAVE1 ((uint32_t)0x000000C0) /*!< WAVE1[1:0] (DAC channel1 noise/triangle wave generation enable) */ -#define DAC_CR_WAVE1_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define DAC_CR_WAVE1_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -#define DAC_CR_MAMP1 ((uint32_t)0x00000F00) /*!< MAMP1[3:0] (DAC channel1 Mask/Amplitude selector) */ -#define DAC_CR_MAMP1_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define DAC_CR_MAMP1_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define DAC_CR_MAMP1_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define DAC_CR_MAMP1_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define DAC_CR_DMAEN1 ((uint32_t)0x00001000) /*!< DAC channel1 DMA enable */ -#define DAC_CR_EN2 ((uint32_t)0x00010000) /*!< DAC channel2 enable */ -#define DAC_CR_BOFF2 ((uint32_t)0x00020000) /*!< DAC channel2 output buffer disable */ -#define DAC_CR_TEN2 ((uint32_t)0x00040000) /*!< DAC channel2 Trigger enable */ - -#define DAC_CR_TSEL2 ((uint32_t)0x00380000) /*!< TSEL2[2:0] (DAC channel2 Trigger selection) */ -#define DAC_CR_TSEL2_0 ((uint32_t)0x00080000) /*!< Bit 0 */ -#define DAC_CR_TSEL2_1 ((uint32_t)0x00100000) /*!< Bit 1 */ -#define DAC_CR_TSEL2_2 ((uint32_t)0x00200000) /*!< Bit 2 */ - -#define DAC_CR_WAVE2 ((uint32_t)0x00C00000) /*!< WAVE2[1:0] (DAC channel2 noise/triangle wave generation enable) */ -#define DAC_CR_WAVE2_0 ((uint32_t)0x00400000) /*!< Bit 0 */ -#define DAC_CR_WAVE2_1 ((uint32_t)0x00800000) /*!< Bit 1 */ - -#define DAC_CR_MAMP2 ((uint32_t)0x0F000000) /*!< MAMP2[3:0] (DAC channel2 Mask/Amplitude selector) */ -#define DAC_CR_MAMP2_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define DAC_CR_MAMP2_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define DAC_CR_MAMP2_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define DAC_CR_MAMP2_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define DAC_CR_DMAEN2 ((uint32_t)0x10000000) /*!< DAC channel2 DMA enabled */ - -/***************** Bit definition for DAC_SWTRIGR register ******************/ -#define DAC_SWTRIGR_SWTRIG1 ((uint8_t)0x01) /*!< DAC channel1 software trigger */ -#define DAC_SWTRIGR_SWTRIG2 ((uint8_t)0x02) /*!< DAC channel2 software trigger */ - -/***************** Bit definition for DAC_DHR12R1 register ******************/ -#define DAC_DHR12R1_DACC1DHR ((uint16_t)0x0FFF) /*!< DAC channel1 12-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12L1 register ******************/ -#define DAC_DHR12L1_DACC1DHR ((uint16_t)0xFFF0) /*!< DAC channel1 12-bit Left aligned data */ - -/****************** Bit definition for DAC_DHR8R1 register ******************/ -#define DAC_DHR8R1_DACC1DHR ((uint8_t)0xFF) /*!< DAC channel1 8-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12R2 register ******************/ -#define DAC_DHR12R2_DACC2DHR ((uint16_t)0x0FFF) /*!< DAC channel2 12-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12L2 register ******************/ -#define DAC_DHR12L2_DACC2DHR ((uint16_t)0xFFF0) /*!< DAC channel2 12-bit Left aligned data */ - -/****************** Bit definition for DAC_DHR8R2 register ******************/ -#define DAC_DHR8R2_DACC2DHR ((uint8_t)0xFF) /*!< DAC channel2 8-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12RD register ******************/ -#define DAC_DHR12RD_DACC1DHR ((uint32_t)0x00000FFF) /*!< DAC channel1 12-bit Right aligned data */ -#define DAC_DHR12RD_DACC2DHR ((uint32_t)0x0FFF0000) /*!< DAC channel2 12-bit Right aligned data */ - -/***************** Bit definition for DAC_DHR12LD register ******************/ -#define DAC_DHR12LD_DACC1DHR ((uint32_t)0x0000FFF0) /*!< DAC channel1 12-bit Left aligned data */ -#define DAC_DHR12LD_DACC2DHR ((uint32_t)0xFFF00000) /*!< DAC channel2 12-bit Left aligned data */ - -/****************** Bit definition for DAC_DHR8RD register ******************/ -#define DAC_DHR8RD_DACC1DHR ((uint16_t)0x00FF) /*!< DAC channel1 8-bit Right aligned data */ -#define DAC_DHR8RD_DACC2DHR ((uint16_t)0xFF00) /*!< DAC channel2 8-bit Right aligned data */ - -/******************* Bit definition for DAC_DOR1 register *******************/ -#define DAC_DOR1_DACC1DOR ((uint16_t)0x0FFF) /*!< DAC channel1 data output */ - -/******************* Bit definition for DAC_DOR2 register *******************/ -#define DAC_DOR2_DACC2DOR ((uint16_t)0x0FFF) /*!< DAC channel2 data output */ - -/******************** Bit definition for DAC_SR register ********************/ -#define DAC_SR_DMAUDR1 ((uint32_t)0x00002000) /*!< DAC channel1 DMA underrun flag */ -#define DAC_SR_DMAUDR2 ((uint32_t)0x20000000) /*!< DAC channel2 DMA underrun flag */ - -/******************************************************************************/ -/* */ -/* CEC */ -/* */ -/******************************************************************************/ -/******************** Bit definition for CEC_CFGR register ******************/ -#define CEC_CFGR_PE ((uint16_t)0x0001) /*!< Peripheral Enable */ -#define CEC_CFGR_IE ((uint16_t)0x0002) /*!< Interrupt Enable */ -#define CEC_CFGR_BTEM ((uint16_t)0x0004) /*!< Bit Timing Error Mode */ -#define CEC_CFGR_BPEM ((uint16_t)0x0008) /*!< Bit Period Error Mode */ - -/******************** Bit definition for CEC_OAR register ******************/ -#define CEC_OAR_OA ((uint16_t)0x000F) /*!< OA[3:0]: Own Address */ -#define CEC_OAR_OA_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define CEC_OAR_OA_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define CEC_OAR_OA_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define CEC_OAR_OA_3 ((uint16_t)0x0008) /*!< Bit 3 */ - -/******************** Bit definition for CEC_PRES register ******************/ -#define CEC_PRES_PRES ((uint16_t)0x3FFF) /*!< Prescaler Counter Value */ - -/******************** Bit definition for CEC_ESR register ******************/ -#define CEC_ESR_BTE ((uint16_t)0x0001) /*!< Bit Timing Error */ -#define CEC_ESR_BPE ((uint16_t)0x0002) /*!< Bit Period Error */ -#define CEC_ESR_RBTFE ((uint16_t)0x0004) /*!< Rx Block Transfer Finished Error */ -#define CEC_ESR_SBE ((uint16_t)0x0008) /*!< Start Bit Error */ -#define CEC_ESR_ACKE ((uint16_t)0x0010) /*!< Block Acknowledge Error */ -#define CEC_ESR_LINE ((uint16_t)0x0020) /*!< Line Error */ -#define CEC_ESR_TBTFE ((uint16_t)0x0040) /*!< Tx Block Transfer Finished Error */ - -/******************** Bit definition for CEC_CSR register ******************/ -#define CEC_CSR_TSOM ((uint16_t)0x0001) /*!< Tx Start Of Message */ -#define CEC_CSR_TEOM ((uint16_t)0x0002) /*!< Tx End Of Message */ -#define CEC_CSR_TERR ((uint16_t)0x0004) /*!< Tx Error */ -#define CEC_CSR_TBTRF ((uint16_t)0x0008) /*!< Tx Byte Transfer Request or Block Transfer Finished */ -#define CEC_CSR_RSOM ((uint16_t)0x0010) /*!< Rx Start Of Message */ -#define CEC_CSR_REOM ((uint16_t)0x0020) /*!< Rx End Of Message */ -#define CEC_CSR_RERR ((uint16_t)0x0040) /*!< Rx Error */ -#define CEC_CSR_RBTF ((uint16_t)0x0080) /*!< Rx Block Transfer Finished */ - -/******************** Bit definition for CEC_TXD register ******************/ -#define CEC_TXD_TXD ((uint16_t)0x00FF) /*!< Tx Data register */ - -/******************** Bit definition for CEC_RXD register ******************/ -#define CEC_RXD_RXD ((uint16_t)0x00FF) /*!< Rx Data register */ - -/******************************************************************************/ -/* */ -/* TIM */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for TIM_CR1 register ********************/ -#define TIM_CR1_CEN ((uint16_t)0x0001) /*!< Counter enable */ -#define TIM_CR1_UDIS ((uint16_t)0x0002) /*!< Update disable */ -#define TIM_CR1_URS ((uint16_t)0x0004) /*!< Update request source */ -#define TIM_CR1_OPM ((uint16_t)0x0008) /*!< One pulse mode */ -#define TIM_CR1_DIR ((uint16_t)0x0010) /*!< Direction */ - -#define TIM_CR1_CMS ((uint16_t)0x0060) /*!< CMS[1:0] bits (Center-aligned mode selection) */ -#define TIM_CR1_CMS_0 ((uint16_t)0x0020) /*!< Bit 0 */ -#define TIM_CR1_CMS_1 ((uint16_t)0x0040) /*!< Bit 1 */ - -#define TIM_CR1_ARPE ((uint16_t)0x0080) /*!< Auto-reload preload enable */ - -#define TIM_CR1_CKD ((uint16_t)0x0300) /*!< CKD[1:0] bits (clock division) */ -#define TIM_CR1_CKD_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_CR1_CKD_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -/******************* Bit definition for TIM_CR2 register ********************/ -#define TIM_CR2_CCPC ((uint16_t)0x0001) /*!< Capture/Compare Preloaded Control */ -#define TIM_CR2_CCUS ((uint16_t)0x0004) /*!< Capture/Compare Control Update Selection */ -#define TIM_CR2_CCDS ((uint16_t)0x0008) /*!< Capture/Compare DMA Selection */ - -#define TIM_CR2_MMS ((uint16_t)0x0070) /*!< MMS[2:0] bits (Master Mode Selection) */ -#define TIM_CR2_MMS_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CR2_MMS_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CR2_MMS_2 ((uint16_t)0x0040) /*!< Bit 2 */ - -#define TIM_CR2_TI1S ((uint16_t)0x0080) /*!< TI1 Selection */ -#define TIM_CR2_OIS1 ((uint16_t)0x0100) /*!< Output Idle state 1 (OC1 output) */ -#define TIM_CR2_OIS1N ((uint16_t)0x0200) /*!< Output Idle state 1 (OC1N output) */ -#define TIM_CR2_OIS2 ((uint16_t)0x0400) /*!< Output Idle state 2 (OC2 output) */ -#define TIM_CR2_OIS2N ((uint16_t)0x0800) /*!< Output Idle state 2 (OC2N output) */ -#define TIM_CR2_OIS3 ((uint16_t)0x1000) /*!< Output Idle state 3 (OC3 output) */ -#define TIM_CR2_OIS3N ((uint16_t)0x2000) /*!< Output Idle state 3 (OC3N output) */ -#define TIM_CR2_OIS4 ((uint16_t)0x4000) /*!< Output Idle state 4 (OC4 output) */ - -/******************* Bit definition for TIM_SMCR register *******************/ -#define TIM_SMCR_SMS ((uint16_t)0x0007) /*!< SMS[2:0] bits (Slave mode selection) */ -#define TIM_SMCR_SMS_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_SMCR_SMS_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define TIM_SMCR_SMS_2 ((uint16_t)0x0004) /*!< Bit 2 */ - -#define TIM_SMCR_TS ((uint16_t)0x0070) /*!< TS[2:0] bits (Trigger selection) */ -#define TIM_SMCR_TS_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_SMCR_TS_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_SMCR_TS_2 ((uint16_t)0x0040) /*!< Bit 2 */ - -#define TIM_SMCR_MSM ((uint16_t)0x0080) /*!< Master/slave mode */ - -#define TIM_SMCR_ETF ((uint16_t)0x0F00) /*!< ETF[3:0] bits (External trigger filter) */ -#define TIM_SMCR_ETF_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_SMCR_ETF_1 ((uint16_t)0x0200) /*!< Bit 1 */ -#define TIM_SMCR_ETF_2 ((uint16_t)0x0400) /*!< Bit 2 */ -#define TIM_SMCR_ETF_3 ((uint16_t)0x0800) /*!< Bit 3 */ - -#define TIM_SMCR_ETPS ((uint16_t)0x3000) /*!< ETPS[1:0] bits (External trigger prescaler) */ -#define TIM_SMCR_ETPS_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_SMCR_ETPS_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define TIM_SMCR_ECE ((uint16_t)0x4000) /*!< External clock enable */ -#define TIM_SMCR_ETP ((uint16_t)0x8000) /*!< External trigger polarity */ - -/******************* Bit definition for TIM_DIER register *******************/ -#define TIM_DIER_UIE ((uint16_t)0x0001) /*!< Update interrupt enable */ -#define TIM_DIER_CC1IE ((uint16_t)0x0002) /*!< Capture/Compare 1 interrupt enable */ -#define TIM_DIER_CC2IE ((uint16_t)0x0004) /*!< Capture/Compare 2 interrupt enable */ -#define TIM_DIER_CC3IE ((uint16_t)0x0008) /*!< Capture/Compare 3 interrupt enable */ -#define TIM_DIER_CC4IE ((uint16_t)0x0010) /*!< Capture/Compare 4 interrupt enable */ -#define TIM_DIER_COMIE ((uint16_t)0x0020) /*!< COM interrupt enable */ -#define TIM_DIER_TIE ((uint16_t)0x0040) /*!< Trigger interrupt enable */ -#define TIM_DIER_BIE ((uint16_t)0x0080) /*!< Break interrupt enable */ -#define TIM_DIER_UDE ((uint16_t)0x0100) /*!< Update DMA request enable */ -#define TIM_DIER_CC1DE ((uint16_t)0x0200) /*!< Capture/Compare 1 DMA request enable */ -#define TIM_DIER_CC2DE ((uint16_t)0x0400) /*!< Capture/Compare 2 DMA request enable */ -#define TIM_DIER_CC3DE ((uint16_t)0x0800) /*!< Capture/Compare 3 DMA request enable */ -#define TIM_DIER_CC4DE ((uint16_t)0x1000) /*!< Capture/Compare 4 DMA request enable */ -#define TIM_DIER_COMDE ((uint16_t)0x2000) /*!< COM DMA request enable */ -#define TIM_DIER_TDE ((uint16_t)0x4000) /*!< Trigger DMA request enable */ - -/******************** Bit definition for TIM_SR register ********************/ -#define TIM_SR_UIF ((uint16_t)0x0001) /*!< Update interrupt Flag */ -#define TIM_SR_CC1IF ((uint16_t)0x0002) /*!< Capture/Compare 1 interrupt Flag */ -#define TIM_SR_CC2IF ((uint16_t)0x0004) /*!< Capture/Compare 2 interrupt Flag */ -#define TIM_SR_CC3IF ((uint16_t)0x0008) /*!< Capture/Compare 3 interrupt Flag */ -#define TIM_SR_CC4IF ((uint16_t)0x0010) /*!< Capture/Compare 4 interrupt Flag */ -#define TIM_SR_COMIF ((uint16_t)0x0020) /*!< COM interrupt Flag */ -#define TIM_SR_TIF ((uint16_t)0x0040) /*!< Trigger interrupt Flag */ -#define TIM_SR_BIF ((uint16_t)0x0080) /*!< Break interrupt Flag */ -#define TIM_SR_CC1OF ((uint16_t)0x0200) /*!< Capture/Compare 1 Overcapture Flag */ -#define TIM_SR_CC2OF ((uint16_t)0x0400) /*!< Capture/Compare 2 Overcapture Flag */ -#define TIM_SR_CC3OF ((uint16_t)0x0800) /*!< Capture/Compare 3 Overcapture Flag */ -#define TIM_SR_CC4OF ((uint16_t)0x1000) /*!< Capture/Compare 4 Overcapture Flag */ - -/******************* Bit definition for TIM_EGR register ********************/ -#define TIM_EGR_UG ((uint8_t)0x01) /*!< Update Generation */ -#define TIM_EGR_CC1G ((uint8_t)0x02) /*!< Capture/Compare 1 Generation */ -#define TIM_EGR_CC2G ((uint8_t)0x04) /*!< Capture/Compare 2 Generation */ -#define TIM_EGR_CC3G ((uint8_t)0x08) /*!< Capture/Compare 3 Generation */ -#define TIM_EGR_CC4G ((uint8_t)0x10) /*!< Capture/Compare 4 Generation */ -#define TIM_EGR_COMG ((uint8_t)0x20) /*!< Capture/Compare Control Update Generation */ -#define TIM_EGR_TG ((uint8_t)0x40) /*!< Trigger Generation */ -#define TIM_EGR_BG ((uint8_t)0x80) /*!< Break Generation */ - -/****************** Bit definition for TIM_CCMR1 register *******************/ -#define TIM_CCMR1_CC1S ((uint16_t)0x0003) /*!< CC1S[1:0] bits (Capture/Compare 1 Selection) */ -#define TIM_CCMR1_CC1S_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_CCMR1_CC1S_1 ((uint16_t)0x0002) /*!< Bit 1 */ - -#define TIM_CCMR1_OC1FE ((uint16_t)0x0004) /*!< Output Compare 1 Fast enable */ -#define TIM_CCMR1_OC1PE ((uint16_t)0x0008) /*!< Output Compare 1 Preload enable */ - -#define TIM_CCMR1_OC1M ((uint16_t)0x0070) /*!< OC1M[2:0] bits (Output Compare 1 Mode) */ -#define TIM_CCMR1_OC1M_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CCMR1_OC1M_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CCMR1_OC1M_2 ((uint16_t)0x0040) /*!< Bit 2 */ - -#define TIM_CCMR1_OC1CE ((uint16_t)0x0080) /*!< Output Compare 1Clear Enable */ - -#define TIM_CCMR1_CC2S ((uint16_t)0x0300) /*!< CC2S[1:0] bits (Capture/Compare 2 Selection) */ -#define TIM_CCMR1_CC2S_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_CCMR1_CC2S_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define TIM_CCMR1_OC2FE ((uint16_t)0x0400) /*!< Output Compare 2 Fast enable */ -#define TIM_CCMR1_OC2PE ((uint16_t)0x0800) /*!< Output Compare 2 Preload enable */ - -#define TIM_CCMR1_OC2M ((uint16_t)0x7000) /*!< OC2M[2:0] bits (Output Compare 2 Mode) */ -#define TIM_CCMR1_OC2M_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_CCMR1_OC2M_1 ((uint16_t)0x2000) /*!< Bit 1 */ -#define TIM_CCMR1_OC2M_2 ((uint16_t)0x4000) /*!< Bit 2 */ - -#define TIM_CCMR1_OC2CE ((uint16_t)0x8000) /*!< Output Compare 2 Clear Enable */ - -/*----------------------------------------------------------------------------*/ - -#define TIM_CCMR1_IC1PSC ((uint16_t)0x000C) /*!< IC1PSC[1:0] bits (Input Capture 1 Prescaler) */ -#define TIM_CCMR1_IC1PSC_0 ((uint16_t)0x0004) /*!< Bit 0 */ -#define TIM_CCMR1_IC1PSC_1 ((uint16_t)0x0008) /*!< Bit 1 */ - -#define TIM_CCMR1_IC1F ((uint16_t)0x00F0) /*!< IC1F[3:0] bits (Input Capture 1 Filter) */ -#define TIM_CCMR1_IC1F_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CCMR1_IC1F_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CCMR1_IC1F_2 ((uint16_t)0x0040) /*!< Bit 2 */ -#define TIM_CCMR1_IC1F_3 ((uint16_t)0x0080) /*!< Bit 3 */ - -#define TIM_CCMR1_IC2PSC ((uint16_t)0x0C00) /*!< IC2PSC[1:0] bits (Input Capture 2 Prescaler) */ -#define TIM_CCMR1_IC2PSC_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define TIM_CCMR1_IC2PSC_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define TIM_CCMR1_IC2F ((uint16_t)0xF000) /*!< IC2F[3:0] bits (Input Capture 2 Filter) */ -#define TIM_CCMR1_IC2F_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_CCMR1_IC2F_1 ((uint16_t)0x2000) /*!< Bit 1 */ -#define TIM_CCMR1_IC2F_2 ((uint16_t)0x4000) /*!< Bit 2 */ -#define TIM_CCMR1_IC2F_3 ((uint16_t)0x8000) /*!< Bit 3 */ - -/****************** Bit definition for TIM_CCMR2 register *******************/ -#define TIM_CCMR2_CC3S ((uint16_t)0x0003) /*!< CC3S[1:0] bits (Capture/Compare 3 Selection) */ -#define TIM_CCMR2_CC3S_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_CCMR2_CC3S_1 ((uint16_t)0x0002) /*!< Bit 1 */ - -#define TIM_CCMR2_OC3FE ((uint16_t)0x0004) /*!< Output Compare 3 Fast enable */ -#define TIM_CCMR2_OC3PE ((uint16_t)0x0008) /*!< Output Compare 3 Preload enable */ - -#define TIM_CCMR2_OC3M ((uint16_t)0x0070) /*!< OC3M[2:0] bits (Output Compare 3 Mode) */ -#define TIM_CCMR2_OC3M_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CCMR2_OC3M_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CCMR2_OC3M_2 ((uint16_t)0x0040) /*!< Bit 2 */ - -#define TIM_CCMR2_OC3CE ((uint16_t)0x0080) /*!< Output Compare 3 Clear Enable */ - -#define TIM_CCMR2_CC4S ((uint16_t)0x0300) /*!< CC4S[1:0] bits (Capture/Compare 4 Selection) */ -#define TIM_CCMR2_CC4S_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_CCMR2_CC4S_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define TIM_CCMR2_OC4FE ((uint16_t)0x0400) /*!< Output Compare 4 Fast enable */ -#define TIM_CCMR2_OC4PE ((uint16_t)0x0800) /*!< Output Compare 4 Preload enable */ - -#define TIM_CCMR2_OC4M ((uint16_t)0x7000) /*!< OC4M[2:0] bits (Output Compare 4 Mode) */ -#define TIM_CCMR2_OC4M_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_CCMR2_OC4M_1 ((uint16_t)0x2000) /*!< Bit 1 */ -#define TIM_CCMR2_OC4M_2 ((uint16_t)0x4000) /*!< Bit 2 */ - -#define TIM_CCMR2_OC4CE ((uint16_t)0x8000) /*!< Output Compare 4 Clear Enable */ - -/*----------------------------------------------------------------------------*/ - -#define TIM_CCMR2_IC3PSC ((uint16_t)0x000C) /*!< IC3PSC[1:0] bits (Input Capture 3 Prescaler) */ -#define TIM_CCMR2_IC3PSC_0 ((uint16_t)0x0004) /*!< Bit 0 */ -#define TIM_CCMR2_IC3PSC_1 ((uint16_t)0x0008) /*!< Bit 1 */ - -#define TIM_CCMR2_IC3F ((uint16_t)0x00F0) /*!< IC3F[3:0] bits (Input Capture 3 Filter) */ -#define TIM_CCMR2_IC3F_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define TIM_CCMR2_IC3F_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define TIM_CCMR2_IC3F_2 ((uint16_t)0x0040) /*!< Bit 2 */ -#define TIM_CCMR2_IC3F_3 ((uint16_t)0x0080) /*!< Bit 3 */ - -#define TIM_CCMR2_IC4PSC ((uint16_t)0x0C00) /*!< IC4PSC[1:0] bits (Input Capture 4 Prescaler) */ -#define TIM_CCMR2_IC4PSC_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define TIM_CCMR2_IC4PSC_1 ((uint16_t)0x0800) /*!< Bit 1 */ - -#define TIM_CCMR2_IC4F ((uint16_t)0xF000) /*!< IC4F[3:0] bits (Input Capture 4 Filter) */ -#define TIM_CCMR2_IC4F_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define TIM_CCMR2_IC4F_1 ((uint16_t)0x2000) /*!< Bit 1 */ -#define TIM_CCMR2_IC4F_2 ((uint16_t)0x4000) /*!< Bit 2 */ -#define TIM_CCMR2_IC4F_3 ((uint16_t)0x8000) /*!< Bit 3 */ - -/******************* Bit definition for TIM_CCER register *******************/ -#define TIM_CCER_CC1E ((uint16_t)0x0001) /*!< Capture/Compare 1 output enable */ -#define TIM_CCER_CC1P ((uint16_t)0x0002) /*!< Capture/Compare 1 output Polarity */ -#define TIM_CCER_CC1NE ((uint16_t)0x0004) /*!< Capture/Compare 1 Complementary output enable */ -#define TIM_CCER_CC1NP ((uint16_t)0x0008) /*!< Capture/Compare 1 Complementary output Polarity */ -#define TIM_CCER_CC2E ((uint16_t)0x0010) /*!< Capture/Compare 2 output enable */ -#define TIM_CCER_CC2P ((uint16_t)0x0020) /*!< Capture/Compare 2 output Polarity */ -#define TIM_CCER_CC2NE ((uint16_t)0x0040) /*!< Capture/Compare 2 Complementary output enable */ -#define TIM_CCER_CC2NP ((uint16_t)0x0080) /*!< Capture/Compare 2 Complementary output Polarity */ -#define TIM_CCER_CC3E ((uint16_t)0x0100) /*!< Capture/Compare 3 output enable */ -#define TIM_CCER_CC3P ((uint16_t)0x0200) /*!< Capture/Compare 3 output Polarity */ -#define TIM_CCER_CC3NE ((uint16_t)0x0400) /*!< Capture/Compare 3 Complementary output enable */ -#define TIM_CCER_CC3NP ((uint16_t)0x0800) /*!< Capture/Compare 3 Complementary output Polarity */ -#define TIM_CCER_CC4E ((uint16_t)0x1000) /*!< Capture/Compare 4 output enable */ -#define TIM_CCER_CC4P ((uint16_t)0x2000) /*!< Capture/Compare 4 output Polarity */ -#define TIM_CCER_CC4NP ((uint16_t)0x8000) /*!< Capture/Compare 4 Complementary output Polarity */ - -/******************* Bit definition for TIM_CNT register ********************/ -#define TIM_CNT_CNT ((uint16_t)0xFFFF) /*!< Counter Value */ - -/******************* Bit definition for TIM_PSC register ********************/ -#define TIM_PSC_PSC ((uint16_t)0xFFFF) /*!< Prescaler Value */ - -/******************* Bit definition for TIM_ARR register ********************/ -#define TIM_ARR_ARR ((uint16_t)0xFFFF) /*!< actual auto-reload Value */ - -/******************* Bit definition for TIM_RCR register ********************/ -#define TIM_RCR_REP ((uint8_t)0xFF) /*!< Repetition Counter Value */ - -/******************* Bit definition for TIM_CCR1 register *******************/ -#define TIM_CCR1_CCR1 ((uint16_t)0xFFFF) /*!< Capture/Compare 1 Value */ - -/******************* Bit definition for TIM_CCR2 register *******************/ -#define TIM_CCR2_CCR2 ((uint16_t)0xFFFF) /*!< Capture/Compare 2 Value */ - -/******************* Bit definition for TIM_CCR3 register *******************/ -#define TIM_CCR3_CCR3 ((uint16_t)0xFFFF) /*!< Capture/Compare 3 Value */ - -/******************* Bit definition for TIM_CCR4 register *******************/ -#define TIM_CCR4_CCR4 ((uint16_t)0xFFFF) /*!< Capture/Compare 4 Value */ - -/******************* Bit definition for TIM_BDTR register *******************/ -#define TIM_BDTR_DTG ((uint16_t)0x00FF) /*!< DTG[0:7] bits (Dead-Time Generator set-up) */ -#define TIM_BDTR_DTG_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_BDTR_DTG_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define TIM_BDTR_DTG_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define TIM_BDTR_DTG_3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define TIM_BDTR_DTG_4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define TIM_BDTR_DTG_5 ((uint16_t)0x0020) /*!< Bit 5 */ -#define TIM_BDTR_DTG_6 ((uint16_t)0x0040) /*!< Bit 6 */ -#define TIM_BDTR_DTG_7 ((uint16_t)0x0080) /*!< Bit 7 */ - -#define TIM_BDTR_LOCK ((uint16_t)0x0300) /*!< LOCK[1:0] bits (Lock Configuration) */ -#define TIM_BDTR_LOCK_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_BDTR_LOCK_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define TIM_BDTR_OSSI ((uint16_t)0x0400) /*!< Off-State Selection for Idle mode */ -#define TIM_BDTR_OSSR ((uint16_t)0x0800) /*!< Off-State Selection for Run mode */ -#define TIM_BDTR_BKE ((uint16_t)0x1000) /*!< Break enable */ -#define TIM_BDTR_BKP ((uint16_t)0x2000) /*!< Break Polarity */ -#define TIM_BDTR_AOE ((uint16_t)0x4000) /*!< Automatic Output enable */ -#define TIM_BDTR_MOE ((uint16_t)0x8000) /*!< Main Output enable */ - -/******************* Bit definition for TIM_DCR register ********************/ -#define TIM_DCR_DBA ((uint16_t)0x001F) /*!< DBA[4:0] bits (DMA Base Address) */ -#define TIM_DCR_DBA_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define TIM_DCR_DBA_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define TIM_DCR_DBA_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define TIM_DCR_DBA_3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define TIM_DCR_DBA_4 ((uint16_t)0x0010) /*!< Bit 4 */ - -#define TIM_DCR_DBL ((uint16_t)0x1F00) /*!< DBL[4:0] bits (DMA Burst Length) */ -#define TIM_DCR_DBL_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define TIM_DCR_DBL_1 ((uint16_t)0x0200) /*!< Bit 1 */ -#define TIM_DCR_DBL_2 ((uint16_t)0x0400) /*!< Bit 2 */ -#define TIM_DCR_DBL_3 ((uint16_t)0x0800) /*!< Bit 3 */ -#define TIM_DCR_DBL_4 ((uint16_t)0x1000) /*!< Bit 4 */ - -/******************* Bit definition for TIM_DMAR register *******************/ -#define TIM_DMAR_DMAB ((uint16_t)0xFFFF) /*!< DMA register for burst accesses */ - -/******************************************************************************/ -/* */ -/* Real-Time Clock */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for RTC_CRH register ********************/ -#define RTC_CRH_SECIE ((uint8_t)0x01) /*!< Second Interrupt Enable */ -#define RTC_CRH_ALRIE ((uint8_t)0x02) /*!< Alarm Interrupt Enable */ -#define RTC_CRH_OWIE ((uint8_t)0x04) /*!< OverfloW Interrupt Enable */ - -/******************* Bit definition for RTC_CRL register ********************/ -#define RTC_CRL_SECF ((uint8_t)0x01) /*!< Second Flag */ -#define RTC_CRL_ALRF ((uint8_t)0x02) /*!< Alarm Flag */ -#define RTC_CRL_OWF ((uint8_t)0x04) /*!< OverfloW Flag */ -#define RTC_CRL_RSF ((uint8_t)0x08) /*!< Registers Synchronized Flag */ -#define RTC_CRL_CNF ((uint8_t)0x10) /*!< Configuration Flag */ -#define RTC_CRL_RTOFF ((uint8_t)0x20) /*!< RTC operation OFF */ - -/******************* Bit definition for RTC_PRLH register *******************/ -#define RTC_PRLH_PRL ((uint16_t)0x000F) /*!< RTC Prescaler Reload Value High */ - -/******************* Bit definition for RTC_PRLL register *******************/ -#define RTC_PRLL_PRL ((uint16_t)0xFFFF) /*!< RTC Prescaler Reload Value Low */ - -/******************* Bit definition for RTC_DIVH register *******************/ -#define RTC_DIVH_RTC_DIV ((uint16_t)0x000F) /*!< RTC Clock Divider High */ - -/******************* Bit definition for RTC_DIVL register *******************/ -#define RTC_DIVL_RTC_DIV ((uint16_t)0xFFFF) /*!< RTC Clock Divider Low */ - -/******************* Bit definition for RTC_CNTH register *******************/ -#define RTC_CNTH_RTC_CNT ((uint16_t)0xFFFF) /*!< RTC Counter High */ - -/******************* Bit definition for RTC_CNTL register *******************/ -#define RTC_CNTL_RTC_CNT ((uint16_t)0xFFFF) /*!< RTC Counter Low */ - -/******************* Bit definition for RTC_ALRH register *******************/ -#define RTC_ALRH_RTC_ALR ((uint16_t)0xFFFF) /*!< RTC Alarm High */ - -/******************* Bit definition for RTC_ALRL register *******************/ -#define RTC_ALRL_RTC_ALR ((uint16_t)0xFFFF) /*!< RTC Alarm Low */ - -/******************************************************************************/ -/* */ -/* Independent WATCHDOG */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for IWDG_KR register ********************/ -#define IWDG_KR_KEY ((uint16_t)0xFFFF) /*!< Key value (write only, read 0000h) */ - -/******************* Bit definition for IWDG_PR register ********************/ -#define IWDG_PR_PR ((uint8_t)0x07) /*!< PR[2:0] (Prescaler divider) */ -#define IWDG_PR_PR_0 ((uint8_t)0x01) /*!< Bit 0 */ -#define IWDG_PR_PR_1 ((uint8_t)0x02) /*!< Bit 1 */ -#define IWDG_PR_PR_2 ((uint8_t)0x04) /*!< Bit 2 */ - -/******************* Bit definition for IWDG_RLR register *******************/ -#define IWDG_RLR_RL ((uint16_t)0x0FFF) /*!< Watchdog counter reload value */ - -/******************* Bit definition for IWDG_SR register ********************/ -#define IWDG_SR_PVU ((uint8_t)0x01) /*!< Watchdog prescaler value update */ -#define IWDG_SR_RVU ((uint8_t)0x02) /*!< Watchdog counter reload value update */ - -/******************************************************************************/ -/* */ -/* Window WATCHDOG */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for WWDG_CR register ********************/ -#define WWDG_CR_T ((uint8_t)0x7F) /*!< T[6:0] bits (7-Bit counter (MSB to LSB)) */ -#define WWDG_CR_T0 ((uint8_t)0x01) /*!< Bit 0 */ -#define WWDG_CR_T1 ((uint8_t)0x02) /*!< Bit 1 */ -#define WWDG_CR_T2 ((uint8_t)0x04) /*!< Bit 2 */ -#define WWDG_CR_T3 ((uint8_t)0x08) /*!< Bit 3 */ -#define WWDG_CR_T4 ((uint8_t)0x10) /*!< Bit 4 */ -#define WWDG_CR_T5 ((uint8_t)0x20) /*!< Bit 5 */ -#define WWDG_CR_T6 ((uint8_t)0x40) /*!< Bit 6 */ - -#define WWDG_CR_WDGA ((uint8_t)0x80) /*!< Activation bit */ - -/******************* Bit definition for WWDG_CFR register *******************/ -#define WWDG_CFR_W ((uint16_t)0x007F) /*!< W[6:0] bits (7-bit window value) */ -#define WWDG_CFR_W0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define WWDG_CFR_W1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define WWDG_CFR_W2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define WWDG_CFR_W3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define WWDG_CFR_W4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define WWDG_CFR_W5 ((uint16_t)0x0020) /*!< Bit 5 */ -#define WWDG_CFR_W6 ((uint16_t)0x0040) /*!< Bit 6 */ - -#define WWDG_CFR_WDGTB ((uint16_t)0x0180) /*!< WDGTB[1:0] bits (Timer Base) */ -#define WWDG_CFR_WDGTB0 ((uint16_t)0x0080) /*!< Bit 0 */ -#define WWDG_CFR_WDGTB1 ((uint16_t)0x0100) /*!< Bit 1 */ - -#define WWDG_CFR_EWI ((uint16_t)0x0200) /*!< Early Wakeup Interrupt */ - -/******************* Bit definition for WWDG_SR register ********************/ -#define WWDG_SR_EWIF ((uint8_t)0x01) /*!< Early Wakeup Interrupt Flag */ - -/******************************************************************************/ -/* */ -/* Flexible Static Memory Controller */ -/* */ -/******************************************************************************/ - -/****************** Bit definition for FSMC_BCR1 register *******************/ -#define FSMC_BCR1_MBKEN ((uint32_t)0x00000001) /*!< Memory bank enable bit */ -#define FSMC_BCR1_MUXEN ((uint32_t)0x00000002) /*!< Address/data multiplexing enable bit */ - -#define FSMC_BCR1_MTYP ((uint32_t)0x0000000C) /*!< MTYP[1:0] bits (Memory type) */ -#define FSMC_BCR1_MTYP_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define FSMC_BCR1_MTYP_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define FSMC_BCR1_MWID ((uint32_t)0x00000030) /*!< MWID[1:0] bits (Memory data bus width) */ -#define FSMC_BCR1_MWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BCR1_MWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_BCR1_FACCEN ((uint32_t)0x00000040) /*!< Flash access enable */ -#define FSMC_BCR1_BURSTEN ((uint32_t)0x00000100) /*!< Burst enable bit */ -#define FSMC_BCR1_WAITPOL ((uint32_t)0x00000200) /*!< Wait signal polarity bit */ -#define FSMC_BCR1_WRAPMOD ((uint32_t)0x00000400) /*!< Wrapped burst mode support */ -#define FSMC_BCR1_WAITCFG ((uint32_t)0x00000800) /*!< Wait timing configuration */ -#define FSMC_BCR1_WREN ((uint32_t)0x00001000) /*!< Write enable bit */ -#define FSMC_BCR1_WAITEN ((uint32_t)0x00002000) /*!< Wait enable bit */ -#define FSMC_BCR1_EXTMOD ((uint32_t)0x00004000) /*!< Extended mode enable */ -#define FSMC_BCR1_ASYNCWAIT ((uint32_t)0x00008000) /*!< Asynchronous wait */ -#define FSMC_BCR1_CBURSTRW ((uint32_t)0x00080000) /*!< Write burst enable */ - -/****************** Bit definition for FSMC_BCR2 register *******************/ -#define FSMC_BCR2_MBKEN ((uint32_t)0x00000001) /*!< Memory bank enable bit */ -#define FSMC_BCR2_MUXEN ((uint32_t)0x00000002) /*!< Address/data multiplexing enable bit */ - -#define FSMC_BCR2_MTYP ((uint32_t)0x0000000C) /*!< MTYP[1:0] bits (Memory type) */ -#define FSMC_BCR2_MTYP_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define FSMC_BCR2_MTYP_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define FSMC_BCR2_MWID ((uint32_t)0x00000030) /*!< MWID[1:0] bits (Memory data bus width) */ -#define FSMC_BCR2_MWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BCR2_MWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_BCR2_FACCEN ((uint32_t)0x00000040) /*!< Flash access enable */ -#define FSMC_BCR2_BURSTEN ((uint32_t)0x00000100) /*!< Burst enable bit */ -#define FSMC_BCR2_WAITPOL ((uint32_t)0x00000200) /*!< Wait signal polarity bit */ -#define FSMC_BCR2_WRAPMOD ((uint32_t)0x00000400) /*!< Wrapped burst mode support */ -#define FSMC_BCR2_WAITCFG ((uint32_t)0x00000800) /*!< Wait timing configuration */ -#define FSMC_BCR2_WREN ((uint32_t)0x00001000) /*!< Write enable bit */ -#define FSMC_BCR2_WAITEN ((uint32_t)0x00002000) /*!< Wait enable bit */ -#define FSMC_BCR2_EXTMOD ((uint32_t)0x00004000) /*!< Extended mode enable */ -#define FSMC_BCR2_ASYNCWAIT ((uint32_t)0x00008000) /*!< Asynchronous wait */ -#define FSMC_BCR2_CBURSTRW ((uint32_t)0x00080000) /*!< Write burst enable */ - -/****************** Bit definition for FSMC_BCR3 register *******************/ -#define FSMC_BCR3_MBKEN ((uint32_t)0x00000001) /*!< Memory bank enable bit */ -#define FSMC_BCR3_MUXEN ((uint32_t)0x00000002) /*!< Address/data multiplexing enable bit */ - -#define FSMC_BCR3_MTYP ((uint32_t)0x0000000C) /*!< MTYP[1:0] bits (Memory type) */ -#define FSMC_BCR3_MTYP_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define FSMC_BCR3_MTYP_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define FSMC_BCR3_MWID ((uint32_t)0x00000030) /*!< MWID[1:0] bits (Memory data bus width) */ -#define FSMC_BCR3_MWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BCR3_MWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_BCR3_FACCEN ((uint32_t)0x00000040) /*!< Flash access enable */ -#define FSMC_BCR3_BURSTEN ((uint32_t)0x00000100) /*!< Burst enable bit */ -#define FSMC_BCR3_WAITPOL ((uint32_t)0x00000200) /*!< Wait signal polarity bit. */ -#define FSMC_BCR3_WRAPMOD ((uint32_t)0x00000400) /*!< Wrapped burst mode support */ -#define FSMC_BCR3_WAITCFG ((uint32_t)0x00000800) /*!< Wait timing configuration */ -#define FSMC_BCR3_WREN ((uint32_t)0x00001000) /*!< Write enable bit */ -#define FSMC_BCR3_WAITEN ((uint32_t)0x00002000) /*!< Wait enable bit */ -#define FSMC_BCR3_EXTMOD ((uint32_t)0x00004000) /*!< Extended mode enable */ -#define FSMC_BCR3_ASYNCWAIT ((uint32_t)0x00008000) /*!< Asynchronous wait */ -#define FSMC_BCR3_CBURSTRW ((uint32_t)0x00080000) /*!< Write burst enable */ - -/****************** Bit definition for FSMC_BCR4 register *******************/ -#define FSMC_BCR4_MBKEN ((uint32_t)0x00000001) /*!< Memory bank enable bit */ -#define FSMC_BCR4_MUXEN ((uint32_t)0x00000002) /*!< Address/data multiplexing enable bit */ - -#define FSMC_BCR4_MTYP ((uint32_t)0x0000000C) /*!< MTYP[1:0] bits (Memory type) */ -#define FSMC_BCR4_MTYP_0 ((uint32_t)0x00000004) /*!< Bit 0 */ -#define FSMC_BCR4_MTYP_1 ((uint32_t)0x00000008) /*!< Bit 1 */ - -#define FSMC_BCR4_MWID ((uint32_t)0x00000030) /*!< MWID[1:0] bits (Memory data bus width) */ -#define FSMC_BCR4_MWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BCR4_MWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_BCR4_FACCEN ((uint32_t)0x00000040) /*!< Flash access enable */ -#define FSMC_BCR4_BURSTEN ((uint32_t)0x00000100) /*!< Burst enable bit */ -#define FSMC_BCR4_WAITPOL ((uint32_t)0x00000200) /*!< Wait signal polarity bit */ -#define FSMC_BCR4_WRAPMOD ((uint32_t)0x00000400) /*!< Wrapped burst mode support */ -#define FSMC_BCR4_WAITCFG ((uint32_t)0x00000800) /*!< Wait timing configuration */ -#define FSMC_BCR4_WREN ((uint32_t)0x00001000) /*!< Write enable bit */ -#define FSMC_BCR4_WAITEN ((uint32_t)0x00002000) /*!< Wait enable bit */ -#define FSMC_BCR4_EXTMOD ((uint32_t)0x00004000) /*!< Extended mode enable */ -#define FSMC_BCR4_ASYNCWAIT ((uint32_t)0x00008000) /*!< Asynchronous wait */ -#define FSMC_BCR4_CBURSTRW ((uint32_t)0x00080000) /*!< Write burst enable */ - -/****************** Bit definition for FSMC_BTR1 register ******************/ -#define FSMC_BTR1_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BTR1_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BTR1_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BTR1_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BTR1_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BTR1_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BTR1_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BTR1_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BTR1_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BTR1_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BTR1_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BTR1_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BTR1_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BTR1_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BTR1_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BTR1_BUSTURN ((uint32_t)0x000F0000) /*!< BUSTURN[3:0] bits (Bus turnaround phase duration) */ -#define FSMC_BTR1_BUSTURN_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_BTR1_BUSTURN_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_BTR1_BUSTURN_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_BTR1_BUSTURN_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define FSMC_BTR1_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BTR1_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BTR1_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BTR1_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BTR1_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BTR1_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BTR1_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BTR1_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BTR1_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BTR1_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BTR1_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BTR1_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BTR1_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BTR2 register *******************/ -#define FSMC_BTR2_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BTR2_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BTR2_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BTR2_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BTR2_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BTR2_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BTR2_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BTR2_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BTR2_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BTR2_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BTR2_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BTR2_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BTR2_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BTR2_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BTR2_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BTR2_BUSTURN ((uint32_t)0x000F0000) /*!< BUSTURN[3:0] bits (Bus turnaround phase duration) */ -#define FSMC_BTR2_BUSTURN_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_BTR2_BUSTURN_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_BTR2_BUSTURN_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_BTR2_BUSTURN_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define FSMC_BTR2_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BTR2_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BTR2_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BTR2_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BTR2_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BTR2_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BTR2_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BTR2_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BTR2_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BTR2_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BTR2_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BTR2_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BTR2_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/******************* Bit definition for FSMC_BTR3 register *******************/ -#define FSMC_BTR3_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BTR3_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BTR3_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BTR3_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BTR3_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BTR3_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BTR3_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BTR3_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BTR3_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BTR3_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BTR3_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BTR3_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BTR3_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BTR3_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BTR3_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BTR3_BUSTURN ((uint32_t)0x000F0000) /*!< BUSTURN[3:0] bits (Bus turnaround phase duration) */ -#define FSMC_BTR3_BUSTURN_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_BTR3_BUSTURN_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_BTR3_BUSTURN_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_BTR3_BUSTURN_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define FSMC_BTR3_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BTR3_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BTR3_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BTR3_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BTR3_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BTR3_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BTR3_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BTR3_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BTR3_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BTR3_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BTR3_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BTR3_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BTR3_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BTR4 register *******************/ -#define FSMC_BTR4_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BTR4_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BTR4_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BTR4_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BTR4_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BTR4_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BTR4_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BTR4_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BTR4_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BTR4_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BTR4_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BTR4_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BTR4_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BTR4_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BTR4_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BTR4_BUSTURN ((uint32_t)0x000F0000) /*!< BUSTURN[3:0] bits (Bus turnaround phase duration) */ -#define FSMC_BTR4_BUSTURN_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_BTR4_BUSTURN_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_BTR4_BUSTURN_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_BTR4_BUSTURN_3 ((uint32_t)0x00080000) /*!< Bit 3 */ - -#define FSMC_BTR4_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BTR4_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BTR4_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BTR4_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BTR4_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BTR4_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BTR4_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BTR4_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BTR4_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BTR4_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BTR4_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BTR4_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BTR4_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BWTR1 register ******************/ -#define FSMC_BWTR1_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BWTR1_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BWTR1_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BWTR1_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BWTR1_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BWTR1_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BWTR1_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BWTR1_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BWTR1_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BWTR1_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BWTR1_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BWTR1_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BWTR1_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BWTR1_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BWTR1_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BWTR1_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BWTR1_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BWTR1_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BWTR1_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BWTR1_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BWTR1_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BWTR1_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BWTR1_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BWTR1_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BWTR1_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BWTR1_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BWTR1_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BWTR1_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BWTR2 register ******************/ -#define FSMC_BWTR2_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BWTR2_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BWTR2_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BWTR2_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BWTR2_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BWTR2_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BWTR2_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BWTR2_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BWTR2_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BWTR2_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BWTR2_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BWTR2_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BWTR2_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BWTR2_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BWTR2_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BWTR2_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BWTR2_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BWTR2_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1*/ -#define FSMC_BWTR2_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BWTR2_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BWTR2_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BWTR2_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BWTR2_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BWTR2_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BWTR2_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BWTR2_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BWTR2_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BWTR2_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BWTR3 register ******************/ -#define FSMC_BWTR3_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BWTR3_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BWTR3_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BWTR3_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BWTR3_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BWTR3_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BWTR3_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BWTR3_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BWTR3_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BWTR3_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BWTR3_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BWTR3_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BWTR3_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BWTR3_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BWTR3_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BWTR3_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BWTR3_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BWTR3_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BWTR3_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BWTR3_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BWTR3_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BWTR3_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BWTR3_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BWTR3_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BWTR3_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BWTR3_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BWTR3_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BWTR3_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_BWTR4 register ******************/ -#define FSMC_BWTR4_ADDSET ((uint32_t)0x0000000F) /*!< ADDSET[3:0] bits (Address setup phase duration) */ -#define FSMC_BWTR4_ADDSET_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_BWTR4_ADDSET_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_BWTR4_ADDSET_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_BWTR4_ADDSET_3 ((uint32_t)0x00000008) /*!< Bit 3 */ - -#define FSMC_BWTR4_ADDHLD ((uint32_t)0x000000F0) /*!< ADDHLD[3:0] bits (Address-hold phase duration) */ -#define FSMC_BWTR4_ADDHLD_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_BWTR4_ADDHLD_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define FSMC_BWTR4_ADDHLD_2 ((uint32_t)0x00000040) /*!< Bit 2 */ -#define FSMC_BWTR4_ADDHLD_3 ((uint32_t)0x00000080) /*!< Bit 3 */ - -#define FSMC_BWTR4_DATAST ((uint32_t)0x0000FF00) /*!< DATAST [3:0] bits (Data-phase duration) */ -#define FSMC_BWTR4_DATAST_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_BWTR4_DATAST_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_BWTR4_DATAST_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_BWTR4_DATAST_3 ((uint32_t)0x00000800) /*!< Bit 3 */ - -#define FSMC_BWTR4_CLKDIV ((uint32_t)0x00F00000) /*!< CLKDIV[3:0] bits (Clock divide ratio) */ -#define FSMC_BWTR4_CLKDIV_0 ((uint32_t)0x00100000) /*!< Bit 0 */ -#define FSMC_BWTR4_CLKDIV_1 ((uint32_t)0x00200000) /*!< Bit 1 */ -#define FSMC_BWTR4_CLKDIV_2 ((uint32_t)0x00400000) /*!< Bit 2 */ -#define FSMC_BWTR4_CLKDIV_3 ((uint32_t)0x00800000) /*!< Bit 3 */ - -#define FSMC_BWTR4_DATLAT ((uint32_t)0x0F000000) /*!< DATLA[3:0] bits (Data latency) */ -#define FSMC_BWTR4_DATLAT_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_BWTR4_DATLAT_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_BWTR4_DATLAT_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_BWTR4_DATLAT_3 ((uint32_t)0x08000000) /*!< Bit 3 */ - -#define FSMC_BWTR4_ACCMOD ((uint32_t)0x30000000) /*!< ACCMOD[1:0] bits (Access mode) */ -#define FSMC_BWTR4_ACCMOD_0 ((uint32_t)0x10000000) /*!< Bit 0 */ -#define FSMC_BWTR4_ACCMOD_1 ((uint32_t)0x20000000) /*!< Bit 1 */ - -/****************** Bit definition for FSMC_PCR2 register *******************/ -#define FSMC_PCR2_PWAITEN ((uint32_t)0x00000002) /*!< Wait feature enable bit */ -#define FSMC_PCR2_PBKEN ((uint32_t)0x00000004) /*!< PC Card/NAND Flash memory bank enable bit */ -#define FSMC_PCR2_PTYP ((uint32_t)0x00000008) /*!< Memory type */ - -#define FSMC_PCR2_PWID ((uint32_t)0x00000030) /*!< PWID[1:0] bits (NAND Flash databus width) */ -#define FSMC_PCR2_PWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_PCR2_PWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_PCR2_ECCEN ((uint32_t)0x00000040) /*!< ECC computation logic enable bit */ - -#define FSMC_PCR2_TCLR ((uint32_t)0x00001E00) /*!< TCLR[3:0] bits (CLE to RE delay) */ -#define FSMC_PCR2_TCLR_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define FSMC_PCR2_TCLR_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define FSMC_PCR2_TCLR_2 ((uint32_t)0x00000800) /*!< Bit 2 */ -#define FSMC_PCR2_TCLR_3 ((uint32_t)0x00001000) /*!< Bit 3 */ - -#define FSMC_PCR2_TAR ((uint32_t)0x0001E000) /*!< TAR[3:0] bits (ALE to RE delay) */ -#define FSMC_PCR2_TAR_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define FSMC_PCR2_TAR_1 ((uint32_t)0x00004000) /*!< Bit 1 */ -#define FSMC_PCR2_TAR_2 ((uint32_t)0x00008000) /*!< Bit 2 */ -#define FSMC_PCR2_TAR_3 ((uint32_t)0x00010000) /*!< Bit 3 */ - -#define FSMC_PCR2_ECCPS ((uint32_t)0x000E0000) /*!< ECCPS[1:0] bits (ECC page size) */ -#define FSMC_PCR2_ECCPS_0 ((uint32_t)0x00020000) /*!< Bit 0 */ -#define FSMC_PCR2_ECCPS_1 ((uint32_t)0x00040000) /*!< Bit 1 */ -#define FSMC_PCR2_ECCPS_2 ((uint32_t)0x00080000) /*!< Bit 2 */ - -/****************** Bit definition for FSMC_PCR3 register *******************/ -#define FSMC_PCR3_PWAITEN ((uint32_t)0x00000002) /*!< Wait feature enable bit */ -#define FSMC_PCR3_PBKEN ((uint32_t)0x00000004) /*!< PC Card/NAND Flash memory bank enable bit */ -#define FSMC_PCR3_PTYP ((uint32_t)0x00000008) /*!< Memory type */ - -#define FSMC_PCR3_PWID ((uint32_t)0x00000030) /*!< PWID[1:0] bits (NAND Flash databus width) */ -#define FSMC_PCR3_PWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_PCR3_PWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_PCR3_ECCEN ((uint32_t)0x00000040) /*!< ECC computation logic enable bit */ - -#define FSMC_PCR3_TCLR ((uint32_t)0x00001E00) /*!< TCLR[3:0] bits (CLE to RE delay) */ -#define FSMC_PCR3_TCLR_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define FSMC_PCR3_TCLR_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define FSMC_PCR3_TCLR_2 ((uint32_t)0x00000800) /*!< Bit 2 */ -#define FSMC_PCR3_TCLR_3 ((uint32_t)0x00001000) /*!< Bit 3 */ - -#define FSMC_PCR3_TAR ((uint32_t)0x0001E000) /*!< TAR[3:0] bits (ALE to RE delay) */ -#define FSMC_PCR3_TAR_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define FSMC_PCR3_TAR_1 ((uint32_t)0x00004000) /*!< Bit 1 */ -#define FSMC_PCR3_TAR_2 ((uint32_t)0x00008000) /*!< Bit 2 */ -#define FSMC_PCR3_TAR_3 ((uint32_t)0x00010000) /*!< Bit 3 */ - -#define FSMC_PCR3_ECCPS ((uint32_t)0x000E0000) /*!< ECCPS[2:0] bits (ECC page size) */ -#define FSMC_PCR3_ECCPS_0 ((uint32_t)0x00020000) /*!< Bit 0 */ -#define FSMC_PCR3_ECCPS_1 ((uint32_t)0x00040000) /*!< Bit 1 */ -#define FSMC_PCR3_ECCPS_2 ((uint32_t)0x00080000) /*!< Bit 2 */ - -/****************** Bit definition for FSMC_PCR4 register *******************/ -#define FSMC_PCR4_PWAITEN ((uint32_t)0x00000002) /*!< Wait feature enable bit */ -#define FSMC_PCR4_PBKEN ((uint32_t)0x00000004) /*!< PC Card/NAND Flash memory bank enable bit */ -#define FSMC_PCR4_PTYP ((uint32_t)0x00000008) /*!< Memory type */ - -#define FSMC_PCR4_PWID ((uint32_t)0x00000030) /*!< PWID[1:0] bits (NAND Flash databus width) */ -#define FSMC_PCR4_PWID_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define FSMC_PCR4_PWID_1 ((uint32_t)0x00000020) /*!< Bit 1 */ - -#define FSMC_PCR4_ECCEN ((uint32_t)0x00000040) /*!< ECC computation logic enable bit */ - -#define FSMC_PCR4_TCLR ((uint32_t)0x00001E00) /*!< TCLR[3:0] bits (CLE to RE delay) */ -#define FSMC_PCR4_TCLR_0 ((uint32_t)0x00000200) /*!< Bit 0 */ -#define FSMC_PCR4_TCLR_1 ((uint32_t)0x00000400) /*!< Bit 1 */ -#define FSMC_PCR4_TCLR_2 ((uint32_t)0x00000800) /*!< Bit 2 */ -#define FSMC_PCR4_TCLR_3 ((uint32_t)0x00001000) /*!< Bit 3 */ - -#define FSMC_PCR4_TAR ((uint32_t)0x0001E000) /*!< TAR[3:0] bits (ALE to RE delay) */ -#define FSMC_PCR4_TAR_0 ((uint32_t)0x00002000) /*!< Bit 0 */ -#define FSMC_PCR4_TAR_1 ((uint32_t)0x00004000) /*!< Bit 1 */ -#define FSMC_PCR4_TAR_2 ((uint32_t)0x00008000) /*!< Bit 2 */ -#define FSMC_PCR4_TAR_3 ((uint32_t)0x00010000) /*!< Bit 3 */ - -#define FSMC_PCR4_ECCPS ((uint32_t)0x000E0000) /*!< ECCPS[2:0] bits (ECC page size) */ -#define FSMC_PCR4_ECCPS_0 ((uint32_t)0x00020000) /*!< Bit 0 */ -#define FSMC_PCR4_ECCPS_1 ((uint32_t)0x00040000) /*!< Bit 1 */ -#define FSMC_PCR4_ECCPS_2 ((uint32_t)0x00080000) /*!< Bit 2 */ - -/******************* Bit definition for FSMC_SR2 register *******************/ -#define FSMC_SR2_IRS ((uint8_t)0x01) /*!< Interrupt Rising Edge status */ -#define FSMC_SR2_ILS ((uint8_t)0x02) /*!< Interrupt Level status */ -#define FSMC_SR2_IFS ((uint8_t)0x04) /*!< Interrupt Falling Edge status */ -#define FSMC_SR2_IREN ((uint8_t)0x08) /*!< Interrupt Rising Edge detection Enable bit */ -#define FSMC_SR2_ILEN ((uint8_t)0x10) /*!< Interrupt Level detection Enable bit */ -#define FSMC_SR2_IFEN ((uint8_t)0x20) /*!< Interrupt Falling Edge detection Enable bit */ -#define FSMC_SR2_FEMPT ((uint8_t)0x40) /*!< FIFO empty */ - -/******************* Bit definition for FSMC_SR3 register *******************/ -#define FSMC_SR3_IRS ((uint8_t)0x01) /*!< Interrupt Rising Edge status */ -#define FSMC_SR3_ILS ((uint8_t)0x02) /*!< Interrupt Level status */ -#define FSMC_SR3_IFS ((uint8_t)0x04) /*!< Interrupt Falling Edge status */ -#define FSMC_SR3_IREN ((uint8_t)0x08) /*!< Interrupt Rising Edge detection Enable bit */ -#define FSMC_SR3_ILEN ((uint8_t)0x10) /*!< Interrupt Level detection Enable bit */ -#define FSMC_SR3_IFEN ((uint8_t)0x20) /*!< Interrupt Falling Edge detection Enable bit */ -#define FSMC_SR3_FEMPT ((uint8_t)0x40) /*!< FIFO empty */ - -/******************* Bit definition for FSMC_SR4 register *******************/ -#define FSMC_SR4_IRS ((uint8_t)0x01) /*!< Interrupt Rising Edge status */ -#define FSMC_SR4_ILS ((uint8_t)0x02) /*!< Interrupt Level status */ -#define FSMC_SR4_IFS ((uint8_t)0x04) /*!< Interrupt Falling Edge status */ -#define FSMC_SR4_IREN ((uint8_t)0x08) /*!< Interrupt Rising Edge detection Enable bit */ -#define FSMC_SR4_ILEN ((uint8_t)0x10) /*!< Interrupt Level detection Enable bit */ -#define FSMC_SR4_IFEN ((uint8_t)0x20) /*!< Interrupt Falling Edge detection Enable bit */ -#define FSMC_SR4_FEMPT ((uint8_t)0x40) /*!< FIFO empty */ - -/****************** Bit definition for FSMC_PMEM2 register ******************/ -#define FSMC_PMEM2_MEMSET2 ((uint32_t)0x000000FF) /*!< MEMSET2[7:0] bits (Common memory 2 setup time) */ -#define FSMC_PMEM2_MEMSET2_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PMEM2_MEMSET2_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PMEM2_MEMSET2_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PMEM2_MEMSET2_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PMEM2_MEMSET2_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PMEM2_MEMSET2_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PMEM2_MEMSET2_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PMEM2_MEMSET2_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PMEM2_MEMWAIT2 ((uint32_t)0x0000FF00) /*!< MEMWAIT2[7:0] bits (Common memory 2 wait time) */ -#define FSMC_PMEM2_MEMWAIT2_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PMEM2_MEMWAIT2_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PMEM2_MEMWAIT2_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PMEM2_MEMWAIT2_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PMEM2_MEMWAIT2_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PMEM2_MEMWAIT2_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PMEM2_MEMWAIT2_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PMEM2_MEMWAIT2_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PMEM2_MEMHOLD2 ((uint32_t)0x00FF0000) /*!< MEMHOLD2[7:0] bits (Common memory 2 hold time) */ -#define FSMC_PMEM2_MEMHOLD2_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PMEM2_MEMHOLD2_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PMEM2_MEMHOLD2_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PMEM2_MEMHOLD2_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PMEM2_MEMHOLD2_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PMEM2_MEMHOLD2_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PMEM2_MEMHOLD2_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PMEM2_MEMHOLD2_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PMEM2_MEMHIZ2 ((uint32_t)0xFF000000) /*!< MEMHIZ2[7:0] bits (Common memory 2 databus HiZ time) */ -#define FSMC_PMEM2_MEMHIZ2_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PMEM2_MEMHIZ2_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PMEM2_MEMHIZ2_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PMEM2_MEMHIZ2_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PMEM2_MEMHIZ2_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PMEM2_MEMHIZ2_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PMEM2_MEMHIZ2_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PMEM2_MEMHIZ2_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PMEM3 register ******************/ -#define FSMC_PMEM3_MEMSET3 ((uint32_t)0x000000FF) /*!< MEMSET3[7:0] bits (Common memory 3 setup time) */ -#define FSMC_PMEM3_MEMSET3_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PMEM3_MEMSET3_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PMEM3_MEMSET3_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PMEM3_MEMSET3_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PMEM3_MEMSET3_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PMEM3_MEMSET3_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PMEM3_MEMSET3_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PMEM3_MEMSET3_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PMEM3_MEMWAIT3 ((uint32_t)0x0000FF00) /*!< MEMWAIT3[7:0] bits (Common memory 3 wait time) */ -#define FSMC_PMEM3_MEMWAIT3_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PMEM3_MEMWAIT3_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PMEM3_MEMWAIT3_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PMEM3_MEMWAIT3_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PMEM3_MEMWAIT3_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PMEM3_MEMWAIT3_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PMEM3_MEMWAIT3_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PMEM3_MEMWAIT3_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PMEM3_MEMHOLD3 ((uint32_t)0x00FF0000) /*!< MEMHOLD3[7:0] bits (Common memory 3 hold time) */ -#define FSMC_PMEM3_MEMHOLD3_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PMEM3_MEMHOLD3_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PMEM3_MEMHOLD3_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PMEM3_MEMHOLD3_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PMEM3_MEMHOLD3_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PMEM3_MEMHOLD3_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PMEM3_MEMHOLD3_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PMEM3_MEMHOLD3_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PMEM3_MEMHIZ3 ((uint32_t)0xFF000000) /*!< MEMHIZ3[7:0] bits (Common memory 3 databus HiZ time) */ -#define FSMC_PMEM3_MEMHIZ3_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PMEM3_MEMHIZ3_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PMEM3_MEMHIZ3_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PMEM3_MEMHIZ3_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PMEM3_MEMHIZ3_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PMEM3_MEMHIZ3_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PMEM3_MEMHIZ3_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PMEM3_MEMHIZ3_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PMEM4 register ******************/ -#define FSMC_PMEM4_MEMSET4 ((uint32_t)0x000000FF) /*!< MEMSET4[7:0] bits (Common memory 4 setup time) */ -#define FSMC_PMEM4_MEMSET4_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PMEM4_MEMSET4_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PMEM4_MEMSET4_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PMEM4_MEMSET4_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PMEM4_MEMSET4_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PMEM4_MEMSET4_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PMEM4_MEMSET4_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PMEM4_MEMSET4_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PMEM4_MEMWAIT4 ((uint32_t)0x0000FF00) /*!< MEMWAIT4[7:0] bits (Common memory 4 wait time) */ -#define FSMC_PMEM4_MEMWAIT4_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PMEM4_MEMWAIT4_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PMEM4_MEMWAIT4_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PMEM4_MEMWAIT4_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PMEM4_MEMWAIT4_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PMEM4_MEMWAIT4_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PMEM4_MEMWAIT4_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PMEM4_MEMWAIT4_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PMEM4_MEMHOLD4 ((uint32_t)0x00FF0000) /*!< MEMHOLD4[7:0] bits (Common memory 4 hold time) */ -#define FSMC_PMEM4_MEMHOLD4_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PMEM4_MEMHOLD4_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PMEM4_MEMHOLD4_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PMEM4_MEMHOLD4_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PMEM4_MEMHOLD4_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PMEM4_MEMHOLD4_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PMEM4_MEMHOLD4_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PMEM4_MEMHOLD4_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PMEM4_MEMHIZ4 ((uint32_t)0xFF000000) /*!< MEMHIZ4[7:0] bits (Common memory 4 databus HiZ time) */ -#define FSMC_PMEM4_MEMHIZ4_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PMEM4_MEMHIZ4_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PMEM4_MEMHIZ4_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PMEM4_MEMHIZ4_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PMEM4_MEMHIZ4_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PMEM4_MEMHIZ4_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PMEM4_MEMHIZ4_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PMEM4_MEMHIZ4_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PATT2 register ******************/ -#define FSMC_PATT2_ATTSET2 ((uint32_t)0x000000FF) /*!< ATTSET2[7:0] bits (Attribute memory 2 setup time) */ -#define FSMC_PATT2_ATTSET2_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PATT2_ATTSET2_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PATT2_ATTSET2_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PATT2_ATTSET2_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PATT2_ATTSET2_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PATT2_ATTSET2_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PATT2_ATTSET2_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PATT2_ATTSET2_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PATT2_ATTWAIT2 ((uint32_t)0x0000FF00) /*!< ATTWAIT2[7:0] bits (Attribute memory 2 wait time) */ -#define FSMC_PATT2_ATTWAIT2_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PATT2_ATTWAIT2_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PATT2_ATTWAIT2_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PATT2_ATTWAIT2_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PATT2_ATTWAIT2_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PATT2_ATTWAIT2_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PATT2_ATTWAIT2_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PATT2_ATTWAIT2_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PATT2_ATTHOLD2 ((uint32_t)0x00FF0000) /*!< ATTHOLD2[7:0] bits (Attribute memory 2 hold time) */ -#define FSMC_PATT2_ATTHOLD2_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PATT2_ATTHOLD2_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PATT2_ATTHOLD2_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PATT2_ATTHOLD2_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PATT2_ATTHOLD2_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PATT2_ATTHOLD2_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PATT2_ATTHOLD2_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PATT2_ATTHOLD2_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PATT2_ATTHIZ2 ((uint32_t)0xFF000000) /*!< ATTHIZ2[7:0] bits (Attribute memory 2 databus HiZ time) */ -#define FSMC_PATT2_ATTHIZ2_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PATT2_ATTHIZ2_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PATT2_ATTHIZ2_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PATT2_ATTHIZ2_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PATT2_ATTHIZ2_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PATT2_ATTHIZ2_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PATT2_ATTHIZ2_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PATT2_ATTHIZ2_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PATT3 register ******************/ -#define FSMC_PATT3_ATTSET3 ((uint32_t)0x000000FF) /*!< ATTSET3[7:0] bits (Attribute memory 3 setup time) */ -#define FSMC_PATT3_ATTSET3_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PATT3_ATTSET3_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PATT3_ATTSET3_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PATT3_ATTSET3_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PATT3_ATTSET3_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PATT3_ATTSET3_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PATT3_ATTSET3_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PATT3_ATTSET3_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PATT3_ATTWAIT3 ((uint32_t)0x0000FF00) /*!< ATTWAIT3[7:0] bits (Attribute memory 3 wait time) */ -#define FSMC_PATT3_ATTWAIT3_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PATT3_ATTWAIT3_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PATT3_ATTWAIT3_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PATT3_ATTWAIT3_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PATT3_ATTWAIT3_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PATT3_ATTWAIT3_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PATT3_ATTWAIT3_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PATT3_ATTWAIT3_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PATT3_ATTHOLD3 ((uint32_t)0x00FF0000) /*!< ATTHOLD3[7:0] bits (Attribute memory 3 hold time) */ -#define FSMC_PATT3_ATTHOLD3_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PATT3_ATTHOLD3_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PATT3_ATTHOLD3_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PATT3_ATTHOLD3_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PATT3_ATTHOLD3_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PATT3_ATTHOLD3_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PATT3_ATTHOLD3_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PATT3_ATTHOLD3_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PATT3_ATTHIZ3 ((uint32_t)0xFF000000) /*!< ATTHIZ3[7:0] bits (Attribute memory 3 databus HiZ time) */ -#define FSMC_PATT3_ATTHIZ3_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PATT3_ATTHIZ3_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PATT3_ATTHIZ3_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PATT3_ATTHIZ3_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PATT3_ATTHIZ3_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PATT3_ATTHIZ3_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PATT3_ATTHIZ3_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PATT3_ATTHIZ3_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PATT4 register ******************/ -#define FSMC_PATT4_ATTSET4 ((uint32_t)0x000000FF) /*!< ATTSET4[7:0] bits (Attribute memory 4 setup time) */ -#define FSMC_PATT4_ATTSET4_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PATT4_ATTSET4_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PATT4_ATTSET4_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PATT4_ATTSET4_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PATT4_ATTSET4_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PATT4_ATTSET4_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PATT4_ATTSET4_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PATT4_ATTSET4_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PATT4_ATTWAIT4 ((uint32_t)0x0000FF00) /*!< ATTWAIT4[7:0] bits (Attribute memory 4 wait time) */ -#define FSMC_PATT4_ATTWAIT4_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PATT4_ATTWAIT4_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PATT4_ATTWAIT4_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PATT4_ATTWAIT4_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PATT4_ATTWAIT4_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PATT4_ATTWAIT4_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PATT4_ATTWAIT4_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PATT4_ATTWAIT4_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PATT4_ATTHOLD4 ((uint32_t)0x00FF0000) /*!< ATTHOLD4[7:0] bits (Attribute memory 4 hold time) */ -#define FSMC_PATT4_ATTHOLD4_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PATT4_ATTHOLD4_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PATT4_ATTHOLD4_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PATT4_ATTHOLD4_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PATT4_ATTHOLD4_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PATT4_ATTHOLD4_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PATT4_ATTHOLD4_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PATT4_ATTHOLD4_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PATT4_ATTHIZ4 ((uint32_t)0xFF000000) /*!< ATTHIZ4[7:0] bits (Attribute memory 4 databus HiZ time) */ -#define FSMC_PATT4_ATTHIZ4_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PATT4_ATTHIZ4_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PATT4_ATTHIZ4_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PATT4_ATTHIZ4_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PATT4_ATTHIZ4_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PATT4_ATTHIZ4_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PATT4_ATTHIZ4_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PATT4_ATTHIZ4_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_PIO4 register *******************/ -#define FSMC_PIO4_IOSET4 ((uint32_t)0x000000FF) /*!< IOSET4[7:0] bits (I/O 4 setup time) */ -#define FSMC_PIO4_IOSET4_0 ((uint32_t)0x00000001) /*!< Bit 0 */ -#define FSMC_PIO4_IOSET4_1 ((uint32_t)0x00000002) /*!< Bit 1 */ -#define FSMC_PIO4_IOSET4_2 ((uint32_t)0x00000004) /*!< Bit 2 */ -#define FSMC_PIO4_IOSET4_3 ((uint32_t)0x00000008) /*!< Bit 3 */ -#define FSMC_PIO4_IOSET4_4 ((uint32_t)0x00000010) /*!< Bit 4 */ -#define FSMC_PIO4_IOSET4_5 ((uint32_t)0x00000020) /*!< Bit 5 */ -#define FSMC_PIO4_IOSET4_6 ((uint32_t)0x00000040) /*!< Bit 6 */ -#define FSMC_PIO4_IOSET4_7 ((uint32_t)0x00000080) /*!< Bit 7 */ - -#define FSMC_PIO4_IOWAIT4 ((uint32_t)0x0000FF00) /*!< IOWAIT4[7:0] bits (I/O 4 wait time) */ -#define FSMC_PIO4_IOWAIT4_0 ((uint32_t)0x00000100) /*!< Bit 0 */ -#define FSMC_PIO4_IOWAIT4_1 ((uint32_t)0x00000200) /*!< Bit 1 */ -#define FSMC_PIO4_IOWAIT4_2 ((uint32_t)0x00000400) /*!< Bit 2 */ -#define FSMC_PIO4_IOWAIT4_3 ((uint32_t)0x00000800) /*!< Bit 3 */ -#define FSMC_PIO4_IOWAIT4_4 ((uint32_t)0x00001000) /*!< Bit 4 */ -#define FSMC_PIO4_IOWAIT4_5 ((uint32_t)0x00002000) /*!< Bit 5 */ -#define FSMC_PIO4_IOWAIT4_6 ((uint32_t)0x00004000) /*!< Bit 6 */ -#define FSMC_PIO4_IOWAIT4_7 ((uint32_t)0x00008000) /*!< Bit 7 */ - -#define FSMC_PIO4_IOHOLD4 ((uint32_t)0x00FF0000) /*!< IOHOLD4[7:0] bits (I/O 4 hold time) */ -#define FSMC_PIO4_IOHOLD4_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define FSMC_PIO4_IOHOLD4_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define FSMC_PIO4_IOHOLD4_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define FSMC_PIO4_IOHOLD4_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define FSMC_PIO4_IOHOLD4_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define FSMC_PIO4_IOHOLD4_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define FSMC_PIO4_IOHOLD4_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define FSMC_PIO4_IOHOLD4_7 ((uint32_t)0x00800000) /*!< Bit 7 */ - -#define FSMC_PIO4_IOHIZ4 ((uint32_t)0xFF000000) /*!< IOHIZ4[7:0] bits (I/O 4 databus HiZ time) */ -#define FSMC_PIO4_IOHIZ4_0 ((uint32_t)0x01000000) /*!< Bit 0 */ -#define FSMC_PIO4_IOHIZ4_1 ((uint32_t)0x02000000) /*!< Bit 1 */ -#define FSMC_PIO4_IOHIZ4_2 ((uint32_t)0x04000000) /*!< Bit 2 */ -#define FSMC_PIO4_IOHIZ4_3 ((uint32_t)0x08000000) /*!< Bit 3 */ -#define FSMC_PIO4_IOHIZ4_4 ((uint32_t)0x10000000) /*!< Bit 4 */ -#define FSMC_PIO4_IOHIZ4_5 ((uint32_t)0x20000000) /*!< Bit 5 */ -#define FSMC_PIO4_IOHIZ4_6 ((uint32_t)0x40000000) /*!< Bit 6 */ -#define FSMC_PIO4_IOHIZ4_7 ((uint32_t)0x80000000) /*!< Bit 7 */ - -/****************** Bit definition for FSMC_ECCR2 register ******************/ -#define FSMC_ECCR2_ECC2 ((uint32_t)0xFFFFFFFF) /*!< ECC result */ - -/****************** Bit definition for FSMC_ECCR3 register ******************/ -#define FSMC_ECCR3_ECC3 ((uint32_t)0xFFFFFFFF) /*!< ECC result */ - -/******************************************************************************/ -/* */ -/* SD host Interface */ -/* */ -/******************************************************************************/ - -/****************** Bit definition for SDIO_POWER register ******************/ -#define SDIO_POWER_PWRCTRL ((uint8_t)0x03) /*!< PWRCTRL[1:0] bits (Power supply control bits) */ -#define SDIO_POWER_PWRCTRL_0 ((uint8_t)0x01) /*!< Bit 0 */ -#define SDIO_POWER_PWRCTRL_1 ((uint8_t)0x02) /*!< Bit 1 */ - -/****************** Bit definition for SDIO_CLKCR register ******************/ -#define SDIO_CLKCR_CLKDIV ((uint16_t)0x00FF) /*!< Clock divide factor */ -#define SDIO_CLKCR_CLKEN ((uint16_t)0x0100) /*!< Clock enable bit */ -#define SDIO_CLKCR_PWRSAV ((uint16_t)0x0200) /*!< Power saving configuration bit */ -#define SDIO_CLKCR_BYPASS ((uint16_t)0x0400) /*!< Clock divider bypass enable bit */ - -#define SDIO_CLKCR_WIDBUS ((uint16_t)0x1800) /*!< WIDBUS[1:0] bits (Wide bus mode enable bit) */ -#define SDIO_CLKCR_WIDBUS_0 ((uint16_t)0x0800) /*!< Bit 0 */ -#define SDIO_CLKCR_WIDBUS_1 ((uint16_t)0x1000) /*!< Bit 1 */ - -#define SDIO_CLKCR_NEGEDGE ((uint16_t)0x2000) /*!< SDIO_CK dephasing selection bit */ -#define SDIO_CLKCR_HWFC_EN ((uint16_t)0x4000) /*!< HW Flow Control enable */ - -/******************* Bit definition for SDIO_ARG register *******************/ -#define SDIO_ARG_CMDARG ((uint32_t)0xFFFFFFFF) /*!< Command argument */ - -/******************* Bit definition for SDIO_CMD register *******************/ -#define SDIO_CMD_CMDINDEX ((uint16_t)0x003F) /*!< Command Index */ - -#define SDIO_CMD_WAITRESP ((uint16_t)0x00C0) /*!< WAITRESP[1:0] bits (Wait for response bits) */ -#define SDIO_CMD_WAITRESP_0 ((uint16_t)0x0040) /*!< Bit 0 */ -#define SDIO_CMD_WAITRESP_1 ((uint16_t)0x0080) /*!< Bit 1 */ - -#define SDIO_CMD_WAITINT ((uint16_t)0x0100) /*!< CPSM Waits for Interrupt Request */ -#define SDIO_CMD_WAITPEND ((uint16_t)0x0200) /*!< CPSM Waits for ends of data transfer (CmdPend internal signal) */ -#define SDIO_CMD_CPSMEN ((uint16_t)0x0400) /*!< Command path state machine (CPSM) Enable bit */ -#define SDIO_CMD_SDIOSUSPEND ((uint16_t)0x0800) /*!< SD I/O suspend command */ -#define SDIO_CMD_ENCMDCOMPL ((uint16_t)0x1000) /*!< Enable CMD completion */ -#define SDIO_CMD_NIEN ((uint16_t)0x2000) /*!< Not Interrupt Enable */ -#define SDIO_CMD_CEATACMD ((uint16_t)0x4000) /*!< CE-ATA command */ - -/***************** Bit definition for SDIO_RESPCMD register *****************/ -#define SDIO_RESPCMD_RESPCMD ((uint8_t)0x3F) /*!< Response command index */ - -/****************** Bit definition for SDIO_RESP0 register ******************/ -#define SDIO_RESP0_CARDSTATUS0 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_RESP1 register ******************/ -#define SDIO_RESP1_CARDSTATUS1 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_RESP2 register ******************/ -#define SDIO_RESP2_CARDSTATUS2 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_RESP3 register ******************/ -#define SDIO_RESP3_CARDSTATUS3 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_RESP4 register ******************/ -#define SDIO_RESP4_CARDSTATUS4 ((uint32_t)0xFFFFFFFF) /*!< Card Status */ - -/****************** Bit definition for SDIO_DTIMER register *****************/ -#define SDIO_DTIMER_DATATIME ((uint32_t)0xFFFFFFFF) /*!< Data timeout period. */ - -/****************** Bit definition for SDIO_DLEN register *******************/ -#define SDIO_DLEN_DATALENGTH ((uint32_t)0x01FFFFFF) /*!< Data length value */ - -/****************** Bit definition for SDIO_DCTRL register ******************/ -#define SDIO_DCTRL_DTEN ((uint16_t)0x0001) /*!< Data transfer enabled bit */ -#define SDIO_DCTRL_DTDIR ((uint16_t)0x0002) /*!< Data transfer direction selection */ -#define SDIO_DCTRL_DTMODE ((uint16_t)0x0004) /*!< Data transfer mode selection */ -#define SDIO_DCTRL_DMAEN ((uint16_t)0x0008) /*!< DMA enabled bit */ - -#define SDIO_DCTRL_DBLOCKSIZE ((uint16_t)0x00F0) /*!< DBLOCKSIZE[3:0] bits (Data block size) */ -#define SDIO_DCTRL_DBLOCKSIZE_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define SDIO_DCTRL_DBLOCKSIZE_1 ((uint16_t)0x0020) /*!< Bit 1 */ -#define SDIO_DCTRL_DBLOCKSIZE_2 ((uint16_t)0x0040) /*!< Bit 2 */ -#define SDIO_DCTRL_DBLOCKSIZE_3 ((uint16_t)0x0080) /*!< Bit 3 */ - -#define SDIO_DCTRL_RWSTART ((uint16_t)0x0100) /*!< Read wait start */ -#define SDIO_DCTRL_RWSTOP ((uint16_t)0x0200) /*!< Read wait stop */ -#define SDIO_DCTRL_RWMOD ((uint16_t)0x0400) /*!< Read wait mode */ -#define SDIO_DCTRL_SDIOEN ((uint16_t)0x0800) /*!< SD I/O enable functions */ - -/****************** Bit definition for SDIO_DCOUNT register *****************/ -#define SDIO_DCOUNT_DATACOUNT ((uint32_t)0x01FFFFFF) /*!< Data count value */ - -/****************** Bit definition for SDIO_STA register ********************/ -#define SDIO_STA_CCRCFAIL ((uint32_t)0x00000001) /*!< Command response received (CRC check failed) */ -#define SDIO_STA_DCRCFAIL ((uint32_t)0x00000002) /*!< Data block sent/received (CRC check failed) */ -#define SDIO_STA_CTIMEOUT ((uint32_t)0x00000004) /*!< Command response timeout */ -#define SDIO_STA_DTIMEOUT ((uint32_t)0x00000008) /*!< Data timeout */ -#define SDIO_STA_TXUNDERR ((uint32_t)0x00000010) /*!< Transmit FIFO underrun error */ -#define SDIO_STA_RXOVERR ((uint32_t)0x00000020) /*!< Received FIFO overrun error */ -#define SDIO_STA_CMDREND ((uint32_t)0x00000040) /*!< Command response received (CRC check passed) */ -#define SDIO_STA_CMDSENT ((uint32_t)0x00000080) /*!< Command sent (no response required) */ -#define SDIO_STA_DATAEND ((uint32_t)0x00000100) /*!< Data end (data counter, SDIDCOUNT, is zero) */ -#define SDIO_STA_STBITERR ((uint32_t)0x00000200) /*!< Start bit not detected on all data signals in wide bus mode */ -#define SDIO_STA_DBCKEND ((uint32_t)0x00000400) /*!< Data block sent/received (CRC check passed) */ -#define SDIO_STA_CMDACT ((uint32_t)0x00000800) /*!< Command transfer in progress */ -#define SDIO_STA_TXACT ((uint32_t)0x00001000) /*!< Data transmit in progress */ -#define SDIO_STA_RXACT ((uint32_t)0x00002000) /*!< Data receive in progress */ -#define SDIO_STA_TXFIFOHE ((uint32_t)0x00004000) /*!< Transmit FIFO Half Empty: at least 8 words can be written into the FIFO */ -#define SDIO_STA_RXFIFOHF ((uint32_t)0x00008000) /*!< Receive FIFO Half Full: there are at least 8 words in the FIFO */ -#define SDIO_STA_TXFIFOF ((uint32_t)0x00010000) /*!< Transmit FIFO full */ -#define SDIO_STA_RXFIFOF ((uint32_t)0x00020000) /*!< Receive FIFO full */ -#define SDIO_STA_TXFIFOE ((uint32_t)0x00040000) /*!< Transmit FIFO empty */ -#define SDIO_STA_RXFIFOE ((uint32_t)0x00080000) /*!< Receive FIFO empty */ -#define SDIO_STA_TXDAVL ((uint32_t)0x00100000) /*!< Data available in transmit FIFO */ -#define SDIO_STA_RXDAVL ((uint32_t)0x00200000) /*!< Data available in receive FIFO */ -#define SDIO_STA_SDIOIT ((uint32_t)0x00400000) /*!< SDIO interrupt received */ -#define SDIO_STA_CEATAEND ((uint32_t)0x00800000) /*!< CE-ATA command completion signal received for CMD61 */ - -/******************* Bit definition for SDIO_ICR register *******************/ -#define SDIO_ICR_CCRCFAILC ((uint32_t)0x00000001) /*!< CCRCFAIL flag clear bit */ -#define SDIO_ICR_DCRCFAILC ((uint32_t)0x00000002) /*!< DCRCFAIL flag clear bit */ -#define SDIO_ICR_CTIMEOUTC ((uint32_t)0x00000004) /*!< CTIMEOUT flag clear bit */ -#define SDIO_ICR_DTIMEOUTC ((uint32_t)0x00000008) /*!< DTIMEOUT flag clear bit */ -#define SDIO_ICR_TXUNDERRC ((uint32_t)0x00000010) /*!< TXUNDERR flag clear bit */ -#define SDIO_ICR_RXOVERRC ((uint32_t)0x00000020) /*!< RXOVERR flag clear bit */ -#define SDIO_ICR_CMDRENDC ((uint32_t)0x00000040) /*!< CMDREND flag clear bit */ -#define SDIO_ICR_CMDSENTC ((uint32_t)0x00000080) /*!< CMDSENT flag clear bit */ -#define SDIO_ICR_DATAENDC ((uint32_t)0x00000100) /*!< DATAEND flag clear bit */ -#define SDIO_ICR_STBITERRC ((uint32_t)0x00000200) /*!< STBITERR flag clear bit */ -#define SDIO_ICR_DBCKENDC ((uint32_t)0x00000400) /*!< DBCKEND flag clear bit */ -#define SDIO_ICR_SDIOITC ((uint32_t)0x00400000) /*!< SDIOIT flag clear bit */ -#define SDIO_ICR_CEATAENDC ((uint32_t)0x00800000) /*!< CEATAEND flag clear bit */ - -/****************** Bit definition for SDIO_MASK register *******************/ -#define SDIO_MASK_CCRCFAILIE ((uint32_t)0x00000001) /*!< Command CRC Fail Interrupt Enable */ -#define SDIO_MASK_DCRCFAILIE ((uint32_t)0x00000002) /*!< Data CRC Fail Interrupt Enable */ -#define SDIO_MASK_CTIMEOUTIE ((uint32_t)0x00000004) /*!< Command TimeOut Interrupt Enable */ -#define SDIO_MASK_DTIMEOUTIE ((uint32_t)0x00000008) /*!< Data TimeOut Interrupt Enable */ -#define SDIO_MASK_TXUNDERRIE ((uint32_t)0x00000010) /*!< Tx FIFO UnderRun Error Interrupt Enable */ -#define SDIO_MASK_RXOVERRIE ((uint32_t)0x00000020) /*!< Rx FIFO OverRun Error Interrupt Enable */ -#define SDIO_MASK_CMDRENDIE ((uint32_t)0x00000040) /*!< Command Response Received Interrupt Enable */ -#define SDIO_MASK_CMDSENTIE ((uint32_t)0x00000080) /*!< Command Sent Interrupt Enable */ -#define SDIO_MASK_DATAENDIE ((uint32_t)0x00000100) /*!< Data End Interrupt Enable */ -#define SDIO_MASK_STBITERRIE ((uint32_t)0x00000200) /*!< Start Bit Error Interrupt Enable */ -#define SDIO_MASK_DBCKENDIE ((uint32_t)0x00000400) /*!< Data Block End Interrupt Enable */ -#define SDIO_MASK_CMDACTIE ((uint32_t)0x00000800) /*!< Command Acting Interrupt Enable */ -#define SDIO_MASK_TXACTIE ((uint32_t)0x00001000) /*!< Data Transmit Acting Interrupt Enable */ -#define SDIO_MASK_RXACTIE ((uint32_t)0x00002000) /*!< Data receive acting interrupt enabled */ -#define SDIO_MASK_TXFIFOHEIE ((uint32_t)0x00004000) /*!< Tx FIFO Half Empty interrupt Enable */ -#define SDIO_MASK_RXFIFOHFIE ((uint32_t)0x00008000) /*!< Rx FIFO Half Full interrupt Enable */ -#define SDIO_MASK_TXFIFOFIE ((uint32_t)0x00010000) /*!< Tx FIFO Full interrupt Enable */ -#define SDIO_MASK_RXFIFOFIE ((uint32_t)0x00020000) /*!< Rx FIFO Full interrupt Enable */ -#define SDIO_MASK_TXFIFOEIE ((uint32_t)0x00040000) /*!< Tx FIFO Empty interrupt Enable */ -#define SDIO_MASK_RXFIFOEIE ((uint32_t)0x00080000) /*!< Rx FIFO Empty interrupt Enable */ -#define SDIO_MASK_TXDAVLIE ((uint32_t)0x00100000) /*!< Data available in Tx FIFO interrupt Enable */ -#define SDIO_MASK_RXDAVLIE ((uint32_t)0x00200000) /*!< Data available in Rx FIFO interrupt Enable */ -#define SDIO_MASK_SDIOITIE ((uint32_t)0x00400000) /*!< SDIO Mode Interrupt Received interrupt Enable */ -#define SDIO_MASK_CEATAENDIE ((uint32_t)0x00800000) /*!< CE-ATA command completion signal received Interrupt Enable */ - -/***************** Bit definition for SDIO_FIFOCNT register *****************/ -#define SDIO_FIFOCNT_FIFOCOUNT ((uint32_t)0x00FFFFFF) /*!< Remaining number of words to be written to or read from the FIFO */ - -/****************** Bit definition for SDIO_FIFO register *******************/ -#define SDIO_FIFO_FIFODATA ((uint32_t)0xFFFFFFFF) /*!< Receive and transmit FIFO data */ - -/******************************************************************************/ -/* */ -/* USB Device FS */ -/* */ -/******************************************************************************/ - -/*!< Endpoint-specific registers */ -/******************* Bit definition for USB_EP0R register *******************/ -#define USB_EP0R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP0R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP0R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP0R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP0R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP0R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP0R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP0R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP0R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP0R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP0R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP0R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP0R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP0R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP0R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP0R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP1R register *******************/ -#define USB_EP1R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP1R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP1R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP1R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP1R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP1R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP1R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP1R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP1R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP1R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP1R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP1R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP1R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP1R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP1R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP1R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP2R register *******************/ -#define USB_EP2R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP2R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP2R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP2R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP2R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP2R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP2R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP2R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP2R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP2R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP2R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP2R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP2R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP2R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP2R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP2R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP3R register *******************/ -#define USB_EP3R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP3R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP3R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP3R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP3R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP3R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP3R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP3R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP3R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP3R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP3R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP3R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP3R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP3R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP3R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP3R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP4R register *******************/ -#define USB_EP4R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP4R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP4R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP4R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP4R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP4R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP4R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP4R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP4R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP4R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP4R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP4R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP4R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP4R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP4R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP4R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP5R register *******************/ -#define USB_EP5R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP5R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP5R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP5R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP5R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP5R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP5R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP5R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP5R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP5R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP5R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP5R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP5R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP5R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP5R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP5R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP6R register *******************/ -#define USB_EP6R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP6R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP6R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP6R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP6R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP6R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP6R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP6R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP6R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP6R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP6R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP6R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP6R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP6R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP6R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP6R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/******************* Bit definition for USB_EP7R register *******************/ -#define USB_EP7R_EA ((uint16_t)0x000F) /*!< Endpoint Address */ - -#define USB_EP7R_STAT_TX ((uint16_t)0x0030) /*!< STAT_TX[1:0] bits (Status bits, for transmission transfers) */ -#define USB_EP7R_STAT_TX_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define USB_EP7R_STAT_TX_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define USB_EP7R_DTOG_TX ((uint16_t)0x0040) /*!< Data Toggle, for transmission transfers */ -#define USB_EP7R_CTR_TX ((uint16_t)0x0080) /*!< Correct Transfer for transmission */ -#define USB_EP7R_EP_KIND ((uint16_t)0x0100) /*!< Endpoint Kind */ - -#define USB_EP7R_EP_TYPE ((uint16_t)0x0600) /*!< EP_TYPE[1:0] bits (Endpoint type) */ -#define USB_EP7R_EP_TYPE_0 ((uint16_t)0x0200) /*!< Bit 0 */ -#define USB_EP7R_EP_TYPE_1 ((uint16_t)0x0400) /*!< Bit 1 */ - -#define USB_EP7R_SETUP ((uint16_t)0x0800) /*!< Setup transaction completed */ - -#define USB_EP7R_STAT_RX ((uint16_t)0x3000) /*!< STAT_RX[1:0] bits (Status bits, for reception transfers) */ -#define USB_EP7R_STAT_RX_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USB_EP7R_STAT_RX_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USB_EP7R_DTOG_RX ((uint16_t)0x4000) /*!< Data Toggle, for reception transfers */ -#define USB_EP7R_CTR_RX ((uint16_t)0x8000) /*!< Correct Transfer for reception */ - -/*!< Common registers */ -/******************* Bit definition for USB_CNTR register *******************/ -#define USB_CNTR_FRES ((uint16_t)0x0001) /*!< Force USB Reset */ -#define USB_CNTR_PDWN ((uint16_t)0x0002) /*!< Power down */ -#define USB_CNTR_LP_MODE ((uint16_t)0x0004) /*!< Low-power mode */ -#define USB_CNTR_FSUSP ((uint16_t)0x0008) /*!< Force suspend */ -#define USB_CNTR_RESUME ((uint16_t)0x0010) /*!< Resume request */ -#define USB_CNTR_ESOFM ((uint16_t)0x0100) /*!< Expected Start Of Frame Interrupt Mask */ -#define USB_CNTR_SOFM ((uint16_t)0x0200) /*!< Start Of Frame Interrupt Mask */ -#define USB_CNTR_RESETM ((uint16_t)0x0400) /*!< RESET Interrupt Mask */ -#define USB_CNTR_SUSPM ((uint16_t)0x0800) /*!< Suspend mode Interrupt Mask */ -#define USB_CNTR_WKUPM ((uint16_t)0x1000) /*!< Wakeup Interrupt Mask */ -#define USB_CNTR_ERRM ((uint16_t)0x2000) /*!< Error Interrupt Mask */ -#define USB_CNTR_PMAOVRM ((uint16_t)0x4000) /*!< Packet Memory Area Over / Underrun Interrupt Mask */ -#define USB_CNTR_CTRM ((uint16_t)0x8000) /*!< Correct Transfer Interrupt Mask */ - -/******************* Bit definition for USB_ISTR register *******************/ -#define USB_ISTR_EP_ID ((uint16_t)0x000F) /*!< Endpoint Identifier */ -#define USB_ISTR_DIR ((uint16_t)0x0010) /*!< Direction of transaction */ -#define USB_ISTR_ESOF ((uint16_t)0x0100) /*!< Expected Start Of Frame */ -#define USB_ISTR_SOF ((uint16_t)0x0200) /*!< Start Of Frame */ -#define USB_ISTR_RESET ((uint16_t)0x0400) /*!< USB RESET request */ -#define USB_ISTR_SUSP ((uint16_t)0x0800) /*!< Suspend mode request */ -#define USB_ISTR_WKUP ((uint16_t)0x1000) /*!< Wake up */ -#define USB_ISTR_ERR ((uint16_t)0x2000) /*!< Error */ -#define USB_ISTR_PMAOVR ((uint16_t)0x4000) /*!< Packet Memory Area Over / Underrun */ -#define USB_ISTR_CTR ((uint16_t)0x8000) /*!< Correct Transfer */ - -/******************* Bit definition for USB_FNR register ********************/ -#define USB_FNR_FN ((uint16_t)0x07FF) /*!< Frame Number */ -#define USB_FNR_LSOF ((uint16_t)0x1800) /*!< Lost SOF */ -#define USB_FNR_LCK ((uint16_t)0x2000) /*!< Locked */ -#define USB_FNR_RXDM ((uint16_t)0x4000) /*!< Receive Data - Line Status */ -#define USB_FNR_RXDP ((uint16_t)0x8000) /*!< Receive Data + Line Status */ - -/****************** Bit definition for USB_DADDR register *******************/ -#define USB_DADDR_ADD ((uint8_t)0x7F) /*!< ADD[6:0] bits (Device Address) */ -#define USB_DADDR_ADD0 ((uint8_t)0x01) /*!< Bit 0 */ -#define USB_DADDR_ADD1 ((uint8_t)0x02) /*!< Bit 1 */ -#define USB_DADDR_ADD2 ((uint8_t)0x04) /*!< Bit 2 */ -#define USB_DADDR_ADD3 ((uint8_t)0x08) /*!< Bit 3 */ -#define USB_DADDR_ADD4 ((uint8_t)0x10) /*!< Bit 4 */ -#define USB_DADDR_ADD5 ((uint8_t)0x20) /*!< Bit 5 */ -#define USB_DADDR_ADD6 ((uint8_t)0x40) /*!< Bit 6 */ - -#define USB_DADDR_EF ((uint8_t)0x80) /*!< Enable Function */ - -/****************** Bit definition for USB_BTABLE register ******************/ -#define USB_BTABLE_BTABLE ((uint16_t)0xFFF8) /*!< Buffer Table */ - -/*!< Buffer descriptor table */ -/***************** Bit definition for USB_ADDR0_TX register *****************/ -#define USB_ADDR0_TX_ADDR0_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 0 */ - -/***************** Bit definition for USB_ADDR1_TX register *****************/ -#define USB_ADDR1_TX_ADDR1_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 1 */ - -/***************** Bit definition for USB_ADDR2_TX register *****************/ -#define USB_ADDR2_TX_ADDR2_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 2 */ - -/***************** Bit definition for USB_ADDR3_TX register *****************/ -#define USB_ADDR3_TX_ADDR3_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 3 */ - -/***************** Bit definition for USB_ADDR4_TX register *****************/ -#define USB_ADDR4_TX_ADDR4_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 4 */ - -/***************** Bit definition for USB_ADDR5_TX register *****************/ -#define USB_ADDR5_TX_ADDR5_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 5 */ - -/***************** Bit definition for USB_ADDR6_TX register *****************/ -#define USB_ADDR6_TX_ADDR6_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 6 */ - -/***************** Bit definition for USB_ADDR7_TX register *****************/ -#define USB_ADDR7_TX_ADDR7_TX ((uint16_t)0xFFFE) /*!< Transmission Buffer Address 7 */ - -/*----------------------------------------------------------------------------*/ - -/***************** Bit definition for USB_COUNT0_TX register ****************/ -#define USB_COUNT0_TX_COUNT0_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 0 */ - -/***************** Bit definition for USB_COUNT1_TX register ****************/ -#define USB_COUNT1_TX_COUNT1_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 1 */ - -/***************** Bit definition for USB_COUNT2_TX register ****************/ -#define USB_COUNT2_TX_COUNT2_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 2 */ - -/***************** Bit definition for USB_COUNT3_TX register ****************/ -#define USB_COUNT3_TX_COUNT3_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 3 */ - -/***************** Bit definition for USB_COUNT4_TX register ****************/ -#define USB_COUNT4_TX_COUNT4_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 4 */ - -/***************** Bit definition for USB_COUNT5_TX register ****************/ -#define USB_COUNT5_TX_COUNT5_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 5 */ - -/***************** Bit definition for USB_COUNT6_TX register ****************/ -#define USB_COUNT6_TX_COUNT6_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 6 */ - -/***************** Bit definition for USB_COUNT7_TX register ****************/ -#define USB_COUNT7_TX_COUNT7_TX ((uint16_t)0x03FF) /*!< Transmission Byte Count 7 */ - -/*----------------------------------------------------------------------------*/ - -/**************** Bit definition for USB_COUNT0_TX_0 register ***************/ -#define USB_COUNT0_TX_0_COUNT0_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 0 (low) */ - -/**************** Bit definition for USB_COUNT0_TX_1 register ***************/ -#define USB_COUNT0_TX_1_COUNT0_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 0 (high) */ - -/**************** Bit definition for USB_COUNT1_TX_0 register ***************/ -#define USB_COUNT1_TX_0_COUNT1_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 1 (low) */ - -/**************** Bit definition for USB_COUNT1_TX_1 register ***************/ -#define USB_COUNT1_TX_1_COUNT1_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 1 (high) */ - -/**************** Bit definition for USB_COUNT2_TX_0 register ***************/ -#define USB_COUNT2_TX_0_COUNT2_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 2 (low) */ - -/**************** Bit definition for USB_COUNT2_TX_1 register ***************/ -#define USB_COUNT2_TX_1_COUNT2_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 2 (high) */ - -/**************** Bit definition for USB_COUNT3_TX_0 register ***************/ -#define USB_COUNT3_TX_0_COUNT3_TX_0 ((uint16_t)0x000003FF) /*!< Transmission Byte Count 3 (low) */ - -/**************** Bit definition for USB_COUNT3_TX_1 register ***************/ -#define USB_COUNT3_TX_1_COUNT3_TX_1 ((uint16_t)0x03FF0000) /*!< Transmission Byte Count 3 (high) */ - -/**************** Bit definition for USB_COUNT4_TX_0 register ***************/ -#define USB_COUNT4_TX_0_COUNT4_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 4 (low) */ - -/**************** Bit definition for USB_COUNT4_TX_1 register ***************/ -#define USB_COUNT4_TX_1_COUNT4_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 4 (high) */ - -/**************** Bit definition for USB_COUNT5_TX_0 register ***************/ -#define USB_COUNT5_TX_0_COUNT5_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 5 (low) */ - -/**************** Bit definition for USB_COUNT5_TX_1 register ***************/ -#define USB_COUNT5_TX_1_COUNT5_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 5 (high) */ - -/**************** Bit definition for USB_COUNT6_TX_0 register ***************/ -#define USB_COUNT6_TX_0_COUNT6_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 6 (low) */ - -/**************** Bit definition for USB_COUNT6_TX_1 register ***************/ -#define USB_COUNT6_TX_1_COUNT6_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 6 (high) */ - -/**************** Bit definition for USB_COUNT7_TX_0 register ***************/ -#define USB_COUNT7_TX_0_COUNT7_TX_0 ((uint32_t)0x000003FF) /*!< Transmission Byte Count 7 (low) */ - -/**************** Bit definition for USB_COUNT7_TX_1 register ***************/ -#define USB_COUNT7_TX_1_COUNT7_TX_1 ((uint32_t)0x03FF0000) /*!< Transmission Byte Count 7 (high) */ - -/*----------------------------------------------------------------------------*/ - -/***************** Bit definition for USB_ADDR0_RX register *****************/ -#define USB_ADDR0_RX_ADDR0_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 0 */ - -/***************** Bit definition for USB_ADDR1_RX register *****************/ -#define USB_ADDR1_RX_ADDR1_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 1 */ - -/***************** Bit definition for USB_ADDR2_RX register *****************/ -#define USB_ADDR2_RX_ADDR2_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 2 */ - -/***************** Bit definition for USB_ADDR3_RX register *****************/ -#define USB_ADDR3_RX_ADDR3_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 3 */ - -/***************** Bit definition for USB_ADDR4_RX register *****************/ -#define USB_ADDR4_RX_ADDR4_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 4 */ - -/***************** Bit definition for USB_ADDR5_RX register *****************/ -#define USB_ADDR5_RX_ADDR5_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 5 */ - -/***************** Bit definition for USB_ADDR6_RX register *****************/ -#define USB_ADDR6_RX_ADDR6_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 6 */ - -/***************** Bit definition for USB_ADDR7_RX register *****************/ -#define USB_ADDR7_RX_ADDR7_RX ((uint16_t)0xFFFE) /*!< Reception Buffer Address 7 */ - -/*----------------------------------------------------------------------------*/ - -/***************** Bit definition for USB_COUNT0_RX register ****************/ -#define USB_COUNT0_RX_COUNT0_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT0_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT0_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT0_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT0_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT0_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT0_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT0_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT1_RX register ****************/ -#define USB_COUNT1_RX_COUNT1_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT1_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT1_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT1_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT1_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT1_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT1_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT1_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT2_RX register ****************/ -#define USB_COUNT2_RX_COUNT2_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT2_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT2_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT2_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT2_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT2_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT2_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT2_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT3_RX register ****************/ -#define USB_COUNT3_RX_COUNT3_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT3_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT3_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT3_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT3_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT3_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT3_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT3_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT4_RX register ****************/ -#define USB_COUNT4_RX_COUNT4_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT4_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT4_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT4_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT4_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT4_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT4_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT4_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT5_RX register ****************/ -#define USB_COUNT5_RX_COUNT5_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT5_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT5_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT5_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT5_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT5_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT5_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT5_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT6_RX register ****************/ -#define USB_COUNT6_RX_COUNT6_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT6_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT6_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT6_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT6_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT6_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT6_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT6_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/***************** Bit definition for USB_COUNT7_RX register ****************/ -#define USB_COUNT7_RX_COUNT7_RX ((uint16_t)0x03FF) /*!< Reception Byte Count */ - -#define USB_COUNT7_RX_NUM_BLOCK ((uint16_t)0x7C00) /*!< NUM_BLOCK[4:0] bits (Number of blocks) */ -#define USB_COUNT7_RX_NUM_BLOCK_0 ((uint16_t)0x0400) /*!< Bit 0 */ -#define USB_COUNT7_RX_NUM_BLOCK_1 ((uint16_t)0x0800) /*!< Bit 1 */ -#define USB_COUNT7_RX_NUM_BLOCK_2 ((uint16_t)0x1000) /*!< Bit 2 */ -#define USB_COUNT7_RX_NUM_BLOCK_3 ((uint16_t)0x2000) /*!< Bit 3 */ -#define USB_COUNT7_RX_NUM_BLOCK_4 ((uint16_t)0x4000) /*!< Bit 4 */ - -#define USB_COUNT7_RX_BLSIZE ((uint16_t)0x8000) /*!< BLock SIZE */ - -/*----------------------------------------------------------------------------*/ - -/**************** Bit definition for USB_COUNT0_RX_0 register ***************/ -#define USB_COUNT0_RX_0_COUNT0_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT0_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT0_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT0_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT0_RX_1 register ***************/ -#define USB_COUNT0_RX_1_COUNT0_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT0_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 1 */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT0_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT0_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT1_RX_0 register ***************/ -#define USB_COUNT1_RX_0_COUNT1_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT1_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT1_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT1_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT1_RX_1 register ***************/ -#define USB_COUNT1_RX_1_COUNT1_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT1_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT1_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT1_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT2_RX_0 register ***************/ -#define USB_COUNT2_RX_0_COUNT2_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT2_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT2_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT2_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT2_RX_1 register ***************/ -#define USB_COUNT2_RX_1_COUNT2_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT2_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT2_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT2_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT3_RX_0 register ***************/ -#define USB_COUNT3_RX_0_COUNT3_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT3_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT3_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT3_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT3_RX_1 register ***************/ -#define USB_COUNT3_RX_1_COUNT3_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT3_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT3_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT3_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT4_RX_0 register ***************/ -#define USB_COUNT4_RX_0_COUNT4_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT4_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT4_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT4_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT4_RX_1 register ***************/ -#define USB_COUNT4_RX_1_COUNT4_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT4_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT4_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT4_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/**************** Bit definition for USB_COUNT5_RX_0 register ***************/ -#define USB_COUNT5_RX_0_COUNT5_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT5_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT5_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT5_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT5_RX_1 register ***************/ -#define USB_COUNT5_RX_1_COUNT5_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT5_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT5_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT5_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/*************** Bit definition for USB_COUNT6_RX_0 register ***************/ -#define USB_COUNT6_RX_0_COUNT6_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT6_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT6_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT6_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/**************** Bit definition for USB_COUNT6_RX_1 register ***************/ -#define USB_COUNT6_RX_1_COUNT6_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT6_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT6_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT6_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/*************** Bit definition for USB_COUNT7_RX_0 register ****************/ -#define USB_COUNT7_RX_0_COUNT7_RX_0 ((uint32_t)0x000003FF) /*!< Reception Byte Count (low) */ - -#define USB_COUNT7_RX_0_NUM_BLOCK_0 ((uint32_t)0x00007C00) /*!< NUM_BLOCK_0[4:0] bits (Number of blocks) (low) */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_0 ((uint32_t)0x00000400) /*!< Bit 0 */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_1 ((uint32_t)0x00000800) /*!< Bit 1 */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_2 ((uint32_t)0x00001000) /*!< Bit 2 */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_3 ((uint32_t)0x00002000) /*!< Bit 3 */ -#define USB_COUNT7_RX_0_NUM_BLOCK_0_4 ((uint32_t)0x00004000) /*!< Bit 4 */ - -#define USB_COUNT7_RX_0_BLSIZE_0 ((uint32_t)0x00008000) /*!< BLock SIZE (low) */ - -/*************** Bit definition for USB_COUNT7_RX_1 register ****************/ -#define USB_COUNT7_RX_1_COUNT7_RX_1 ((uint32_t)0x03FF0000) /*!< Reception Byte Count (high) */ - -#define USB_COUNT7_RX_1_NUM_BLOCK_1 ((uint32_t)0x7C000000) /*!< NUM_BLOCK_1[4:0] bits (Number of blocks) (high) */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_0 ((uint32_t)0x04000000) /*!< Bit 0 */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_1 ((uint32_t)0x08000000) /*!< Bit 1 */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_2 ((uint32_t)0x10000000) /*!< Bit 2 */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_3 ((uint32_t)0x20000000) /*!< Bit 3 */ -#define USB_COUNT7_RX_1_NUM_BLOCK_1_4 ((uint32_t)0x40000000) /*!< Bit 4 */ - -#define USB_COUNT7_RX_1_BLSIZE_1 ((uint32_t)0x80000000) /*!< BLock SIZE (high) */ - -/******************************************************************************/ -/* */ -/* Controller Area Network */ -/* */ -/******************************************************************************/ - -/*!< CAN control and status registers */ -/******************* Bit definition for CAN_MCR register ********************/ -#define CAN_MCR_INRQ ((uint16_t)0x0001) /*!< Initialization Request */ -#define CAN_MCR_SLEEP ((uint16_t)0x0002) /*!< Sleep Mode Request */ -#define CAN_MCR_TXFP ((uint16_t)0x0004) /*!< Transmit FIFO Priority */ -#define CAN_MCR_RFLM ((uint16_t)0x0008) /*!< Receive FIFO Locked Mode */ -#define CAN_MCR_NART ((uint16_t)0x0010) /*!< No Automatic Retransmission */ -#define CAN_MCR_AWUM ((uint16_t)0x0020) /*!< Automatic Wakeup Mode */ -#define CAN_MCR_ABOM ((uint16_t)0x0040) /*!< Automatic Bus-Off Management */ -#define CAN_MCR_TTCM ((uint16_t)0x0080) /*!< Time Triggered Communication Mode */ -#define CAN_MCR_RESET ((uint16_t)0x8000) /*!< CAN software master reset */ - -/******************* Bit definition for CAN_MSR register ********************/ -#define CAN_MSR_INAK ((uint16_t)0x0001) /*!< Initialization Acknowledge */ -#define CAN_MSR_SLAK ((uint16_t)0x0002) /*!< Sleep Acknowledge */ -#define CAN_MSR_ERRI ((uint16_t)0x0004) /*!< Error Interrupt */ -#define CAN_MSR_WKUI ((uint16_t)0x0008) /*!< Wakeup Interrupt */ -#define CAN_MSR_SLAKI ((uint16_t)0x0010) /*!< Sleep Acknowledge Interrupt */ -#define CAN_MSR_TXM ((uint16_t)0x0100) /*!< Transmit Mode */ -#define CAN_MSR_RXM ((uint16_t)0x0200) /*!< Receive Mode */ -#define CAN_MSR_SAMP ((uint16_t)0x0400) /*!< Last Sample Point */ -#define CAN_MSR_RX ((uint16_t)0x0800) /*!< CAN Rx Signal */ - -/******************* Bit definition for CAN_TSR register ********************/ -#define CAN_TSR_RQCP0 ((uint32_t)0x00000001) /*!< Request Completed Mailbox0 */ -#define CAN_TSR_TXOK0 ((uint32_t)0x00000002) /*!< Transmission OK of Mailbox0 */ -#define CAN_TSR_ALST0 ((uint32_t)0x00000004) /*!< Arbitration Lost for Mailbox0 */ -#define CAN_TSR_TERR0 ((uint32_t)0x00000008) /*!< Transmission Error of Mailbox0 */ -#define CAN_TSR_ABRQ0 ((uint32_t)0x00000080) /*!< Abort Request for Mailbox0 */ -#define CAN_TSR_RQCP1 ((uint32_t)0x00000100) /*!< Request Completed Mailbox1 */ -#define CAN_TSR_TXOK1 ((uint32_t)0x00000200) /*!< Transmission OK of Mailbox1 */ -#define CAN_TSR_ALST1 ((uint32_t)0x00000400) /*!< Arbitration Lost for Mailbox1 */ -#define CAN_TSR_TERR1 ((uint32_t)0x00000800) /*!< Transmission Error of Mailbox1 */ -#define CAN_TSR_ABRQ1 ((uint32_t)0x00008000) /*!< Abort Request for Mailbox 1 */ -#define CAN_TSR_RQCP2 ((uint32_t)0x00010000) /*!< Request Completed Mailbox2 */ -#define CAN_TSR_TXOK2 ((uint32_t)0x00020000) /*!< Transmission OK of Mailbox 2 */ -#define CAN_TSR_ALST2 ((uint32_t)0x00040000) /*!< Arbitration Lost for mailbox 2 */ -#define CAN_TSR_TERR2 ((uint32_t)0x00080000) /*!< Transmission Error of Mailbox 2 */ -#define CAN_TSR_ABRQ2 ((uint32_t)0x00800000) /*!< Abort Request for Mailbox 2 */ -#define CAN_TSR_CODE ((uint32_t)0x03000000) /*!< Mailbox Code */ - -#define CAN_TSR_TME ((uint32_t)0x1C000000) /*!< TME[2:0] bits */ -#define CAN_TSR_TME0 ((uint32_t)0x04000000) /*!< Transmit Mailbox 0 Empty */ -#define CAN_TSR_TME1 ((uint32_t)0x08000000) /*!< Transmit Mailbox 1 Empty */ -#define CAN_TSR_TME2 ((uint32_t)0x10000000) /*!< Transmit Mailbox 2 Empty */ - -#define CAN_TSR_LOW ((uint32_t)0xE0000000) /*!< LOW[2:0] bits */ -#define CAN_TSR_LOW0 ((uint32_t)0x20000000) /*!< Lowest Priority Flag for Mailbox 0 */ -#define CAN_TSR_LOW1 ((uint32_t)0x40000000) /*!< Lowest Priority Flag for Mailbox 1 */ -#define CAN_TSR_LOW2 ((uint32_t)0x80000000) /*!< Lowest Priority Flag for Mailbox 2 */ - -/******************* Bit definition for CAN_RF0R register *******************/ -#define CAN_RF0R_FMP0 ((uint8_t)0x03) /*!< FIFO 0 Message Pending */ -#define CAN_RF0R_FULL0 ((uint8_t)0x08) /*!< FIFO 0 Full */ -#define CAN_RF0R_FOVR0 ((uint8_t)0x10) /*!< FIFO 0 Overrun */ -#define CAN_RF0R_RFOM0 ((uint8_t)0x20) /*!< Release FIFO 0 Output Mailbox */ - -/******************* Bit definition for CAN_RF1R register *******************/ -#define CAN_RF1R_FMP1 ((uint8_t)0x03) /*!< FIFO 1 Message Pending */ -#define CAN_RF1R_FULL1 ((uint8_t)0x08) /*!< FIFO 1 Full */ -#define CAN_RF1R_FOVR1 ((uint8_t)0x10) /*!< FIFO 1 Overrun */ -#define CAN_RF1R_RFOM1 ((uint8_t)0x20) /*!< Release FIFO 1 Output Mailbox */ - -/******************** Bit definition for CAN_IER register *******************/ -#define CAN_IER_TMEIE ((uint32_t)0x00000001) /*!< Transmit Mailbox Empty Interrupt Enable */ -#define CAN_IER_FMPIE0 ((uint32_t)0x00000002) /*!< FIFO Message Pending Interrupt Enable */ -#define CAN_IER_FFIE0 ((uint32_t)0x00000004) /*!< FIFO Full Interrupt Enable */ -#define CAN_IER_FOVIE0 ((uint32_t)0x00000008) /*!< FIFO Overrun Interrupt Enable */ -#define CAN_IER_FMPIE1 ((uint32_t)0x00000010) /*!< FIFO Message Pending Interrupt Enable */ -#define CAN_IER_FFIE1 ((uint32_t)0x00000020) /*!< FIFO Full Interrupt Enable */ -#define CAN_IER_FOVIE1 ((uint32_t)0x00000040) /*!< FIFO Overrun Interrupt Enable */ -#define CAN_IER_EWGIE ((uint32_t)0x00000100) /*!< Error Warning Interrupt Enable */ -#define CAN_IER_EPVIE ((uint32_t)0x00000200) /*!< Error Passive Interrupt Enable */ -#define CAN_IER_BOFIE ((uint32_t)0x00000400) /*!< Bus-Off Interrupt Enable */ -#define CAN_IER_LECIE ((uint32_t)0x00000800) /*!< Last Error Code Interrupt Enable */ -#define CAN_IER_ERRIE ((uint32_t)0x00008000) /*!< Error Interrupt Enable */ -#define CAN_IER_WKUIE ((uint32_t)0x00010000) /*!< Wakeup Interrupt Enable */ -#define CAN_IER_SLKIE ((uint32_t)0x00020000) /*!< Sleep Interrupt Enable */ - -/******************** Bit definition for CAN_ESR register *******************/ -#define CAN_ESR_EWGF ((uint32_t)0x00000001) /*!< Error Warning Flag */ -#define CAN_ESR_EPVF ((uint32_t)0x00000002) /*!< Error Passive Flag */ -#define CAN_ESR_BOFF ((uint32_t)0x00000004) /*!< Bus-Off Flag */ - -#define CAN_ESR_LEC ((uint32_t)0x00000070) /*!< LEC[2:0] bits (Last Error Code) */ -#define CAN_ESR_LEC_0 ((uint32_t)0x00000010) /*!< Bit 0 */ -#define CAN_ESR_LEC_1 ((uint32_t)0x00000020) /*!< Bit 1 */ -#define CAN_ESR_LEC_2 ((uint32_t)0x00000040) /*!< Bit 2 */ - -#define CAN_ESR_TEC ((uint32_t)0x00FF0000) /*!< Least significant byte of the 9-bit Transmit Error Counter */ -#define CAN_ESR_REC ((uint32_t)0xFF000000) /*!< Receive Error Counter */ - -/******************* Bit definition for CAN_BTR register ********************/ -#define CAN_BTR_BRP ((uint32_t)0x000003FF) /*!< Baud Rate Prescaler */ -#define CAN_BTR_TS1 ((uint32_t)0x000F0000) /*!< Time Segment 1 */ -#define CAN_BTR_TS2 ((uint32_t)0x00700000) /*!< Time Segment 2 */ -#define CAN_BTR_SJW ((uint32_t)0x03000000) /*!< Resynchronization Jump Width */ -#define CAN_BTR_LBKM ((uint32_t)0x40000000) /*!< Loop Back Mode (Debug) */ -#define CAN_BTR_SILM ((uint32_t)0x80000000) /*!< Silent Mode */ - -/*!< Mailbox registers */ -/****************** Bit definition for CAN_TI0R register ********************/ -#define CAN_TI0R_TXRQ ((uint32_t)0x00000001) /*!< Transmit Mailbox Request */ -#define CAN_TI0R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_TI0R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_TI0R_EXID ((uint32_t)0x001FFFF8) /*!< Extended Identifier */ -#define CAN_TI0R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/****************** Bit definition for CAN_TDT0R register *******************/ -#define CAN_TDT0R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_TDT0R_TGT ((uint32_t)0x00000100) /*!< Transmit Global Time */ -#define CAN_TDT0R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/****************** Bit definition for CAN_TDL0R register *******************/ -#define CAN_TDL0R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_TDL0R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_TDL0R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_TDL0R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/****************** Bit definition for CAN_TDH0R register *******************/ -#define CAN_TDH0R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_TDH0R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_TDH0R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_TDH0R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/******************* Bit definition for CAN_TI1R register *******************/ -#define CAN_TI1R_TXRQ ((uint32_t)0x00000001) /*!< Transmit Mailbox Request */ -#define CAN_TI1R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_TI1R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_TI1R_EXID ((uint32_t)0x001FFFF8) /*!< Extended Identifier */ -#define CAN_TI1R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/******************* Bit definition for CAN_TDT1R register ******************/ -#define CAN_TDT1R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_TDT1R_TGT ((uint32_t)0x00000100) /*!< Transmit Global Time */ -#define CAN_TDT1R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/******************* Bit definition for CAN_TDL1R register ******************/ -#define CAN_TDL1R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_TDL1R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_TDL1R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_TDL1R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/******************* Bit definition for CAN_TDH1R register ******************/ -#define CAN_TDH1R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_TDH1R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_TDH1R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_TDH1R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/******************* Bit definition for CAN_TI2R register *******************/ -#define CAN_TI2R_TXRQ ((uint32_t)0x00000001) /*!< Transmit Mailbox Request */ -#define CAN_TI2R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_TI2R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_TI2R_EXID ((uint32_t)0x001FFFF8) /*!< Extended identifier */ -#define CAN_TI2R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/******************* Bit definition for CAN_TDT2R register ******************/ -#define CAN_TDT2R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_TDT2R_TGT ((uint32_t)0x00000100) /*!< Transmit Global Time */ -#define CAN_TDT2R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/******************* Bit definition for CAN_TDL2R register ******************/ -#define CAN_TDL2R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_TDL2R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_TDL2R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_TDL2R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/******************* Bit definition for CAN_TDH2R register ******************/ -#define CAN_TDH2R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_TDH2R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_TDH2R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_TDH2R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/******************* Bit definition for CAN_RI0R register *******************/ -#define CAN_RI0R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_RI0R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_RI0R_EXID ((uint32_t)0x001FFFF8) /*!< Extended Identifier */ -#define CAN_RI0R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/******************* Bit definition for CAN_RDT0R register ******************/ -#define CAN_RDT0R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_RDT0R_FMI ((uint32_t)0x0000FF00) /*!< Filter Match Index */ -#define CAN_RDT0R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/******************* Bit definition for CAN_RDL0R register ******************/ -#define CAN_RDL0R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_RDL0R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_RDL0R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_RDL0R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/******************* Bit definition for CAN_RDH0R register ******************/ -#define CAN_RDH0R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_RDH0R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_RDH0R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_RDH0R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/******************* Bit definition for CAN_RI1R register *******************/ -#define CAN_RI1R_RTR ((uint32_t)0x00000002) /*!< Remote Transmission Request */ -#define CAN_RI1R_IDE ((uint32_t)0x00000004) /*!< Identifier Extension */ -#define CAN_RI1R_EXID ((uint32_t)0x001FFFF8) /*!< Extended identifier */ -#define CAN_RI1R_STID ((uint32_t)0xFFE00000) /*!< Standard Identifier or Extended Identifier */ - -/******************* Bit definition for CAN_RDT1R register ******************/ -#define CAN_RDT1R_DLC ((uint32_t)0x0000000F) /*!< Data Length Code */ -#define CAN_RDT1R_FMI ((uint32_t)0x0000FF00) /*!< Filter Match Index */ -#define CAN_RDT1R_TIME ((uint32_t)0xFFFF0000) /*!< Message Time Stamp */ - -/******************* Bit definition for CAN_RDL1R register ******************/ -#define CAN_RDL1R_DATA0 ((uint32_t)0x000000FF) /*!< Data byte 0 */ -#define CAN_RDL1R_DATA1 ((uint32_t)0x0000FF00) /*!< Data byte 1 */ -#define CAN_RDL1R_DATA2 ((uint32_t)0x00FF0000) /*!< Data byte 2 */ -#define CAN_RDL1R_DATA3 ((uint32_t)0xFF000000) /*!< Data byte 3 */ - -/******************* Bit definition for CAN_RDH1R register ******************/ -#define CAN_RDH1R_DATA4 ((uint32_t)0x000000FF) /*!< Data byte 4 */ -#define CAN_RDH1R_DATA5 ((uint32_t)0x0000FF00) /*!< Data byte 5 */ -#define CAN_RDH1R_DATA6 ((uint32_t)0x00FF0000) /*!< Data byte 6 */ -#define CAN_RDH1R_DATA7 ((uint32_t)0xFF000000) /*!< Data byte 7 */ - -/*!< CAN filter registers */ -/******************* Bit definition for CAN_FMR register ********************/ -#define CAN_FMR_FINIT ((uint8_t)0x01) /*!< Filter Init Mode */ - -/******************* Bit definition for CAN_FM1R register *******************/ -#define CAN_FM1R_FBM ((uint16_t)0x3FFF) /*!< Filter Mode */ -#define CAN_FM1R_FBM0 ((uint16_t)0x0001) /*!< Filter Init Mode bit 0 */ -#define CAN_FM1R_FBM1 ((uint16_t)0x0002) /*!< Filter Init Mode bit 1 */ -#define CAN_FM1R_FBM2 ((uint16_t)0x0004) /*!< Filter Init Mode bit 2 */ -#define CAN_FM1R_FBM3 ((uint16_t)0x0008) /*!< Filter Init Mode bit 3 */ -#define CAN_FM1R_FBM4 ((uint16_t)0x0010) /*!< Filter Init Mode bit 4 */ -#define CAN_FM1R_FBM5 ((uint16_t)0x0020) /*!< Filter Init Mode bit 5 */ -#define CAN_FM1R_FBM6 ((uint16_t)0x0040) /*!< Filter Init Mode bit 6 */ -#define CAN_FM1R_FBM7 ((uint16_t)0x0080) /*!< Filter Init Mode bit 7 */ -#define CAN_FM1R_FBM8 ((uint16_t)0x0100) /*!< Filter Init Mode bit 8 */ -#define CAN_FM1R_FBM9 ((uint16_t)0x0200) /*!< Filter Init Mode bit 9 */ -#define CAN_FM1R_FBM10 ((uint16_t)0x0400) /*!< Filter Init Mode bit 10 */ -#define CAN_FM1R_FBM11 ((uint16_t)0x0800) /*!< Filter Init Mode bit 11 */ -#define CAN_FM1R_FBM12 ((uint16_t)0x1000) /*!< Filter Init Mode bit 12 */ -#define CAN_FM1R_FBM13 ((uint16_t)0x2000) /*!< Filter Init Mode bit 13 */ - -/******************* Bit definition for CAN_FS1R register *******************/ -#define CAN_FS1R_FSC ((uint16_t)0x3FFF) /*!< Filter Scale Configuration */ -#define CAN_FS1R_FSC0 ((uint16_t)0x0001) /*!< Filter Scale Configuration bit 0 */ -#define CAN_FS1R_FSC1 ((uint16_t)0x0002) /*!< Filter Scale Configuration bit 1 */ -#define CAN_FS1R_FSC2 ((uint16_t)0x0004) /*!< Filter Scale Configuration bit 2 */ -#define CAN_FS1R_FSC3 ((uint16_t)0x0008) /*!< Filter Scale Configuration bit 3 */ -#define CAN_FS1R_FSC4 ((uint16_t)0x0010) /*!< Filter Scale Configuration bit 4 */ -#define CAN_FS1R_FSC5 ((uint16_t)0x0020) /*!< Filter Scale Configuration bit 5 */ -#define CAN_FS1R_FSC6 ((uint16_t)0x0040) /*!< Filter Scale Configuration bit 6 */ -#define CAN_FS1R_FSC7 ((uint16_t)0x0080) /*!< Filter Scale Configuration bit 7 */ -#define CAN_FS1R_FSC8 ((uint16_t)0x0100) /*!< Filter Scale Configuration bit 8 */ -#define CAN_FS1R_FSC9 ((uint16_t)0x0200) /*!< Filter Scale Configuration bit 9 */ -#define CAN_FS1R_FSC10 ((uint16_t)0x0400) /*!< Filter Scale Configuration bit 10 */ -#define CAN_FS1R_FSC11 ((uint16_t)0x0800) /*!< Filter Scale Configuration bit 11 */ -#define CAN_FS1R_FSC12 ((uint16_t)0x1000) /*!< Filter Scale Configuration bit 12 */ -#define CAN_FS1R_FSC13 ((uint16_t)0x2000) /*!< Filter Scale Configuration bit 13 */ - -/****************** Bit definition for CAN_FFA1R register *******************/ -#define CAN_FFA1R_FFA ((uint16_t)0x3FFF) /*!< Filter FIFO Assignment */ -#define CAN_FFA1R_FFA0 ((uint16_t)0x0001) /*!< Filter FIFO Assignment for Filter 0 */ -#define CAN_FFA1R_FFA1 ((uint16_t)0x0002) /*!< Filter FIFO Assignment for Filter 1 */ -#define CAN_FFA1R_FFA2 ((uint16_t)0x0004) /*!< Filter FIFO Assignment for Filter 2 */ -#define CAN_FFA1R_FFA3 ((uint16_t)0x0008) /*!< Filter FIFO Assignment for Filter 3 */ -#define CAN_FFA1R_FFA4 ((uint16_t)0x0010) /*!< Filter FIFO Assignment for Filter 4 */ -#define CAN_FFA1R_FFA5 ((uint16_t)0x0020) /*!< Filter FIFO Assignment for Filter 5 */ -#define CAN_FFA1R_FFA6 ((uint16_t)0x0040) /*!< Filter FIFO Assignment for Filter 6 */ -#define CAN_FFA1R_FFA7 ((uint16_t)0x0080) /*!< Filter FIFO Assignment for Filter 7 */ -#define CAN_FFA1R_FFA8 ((uint16_t)0x0100) /*!< Filter FIFO Assignment for Filter 8 */ -#define CAN_FFA1R_FFA9 ((uint16_t)0x0200) /*!< Filter FIFO Assignment for Filter 9 */ -#define CAN_FFA1R_FFA10 ((uint16_t)0x0400) /*!< Filter FIFO Assignment for Filter 10 */ -#define CAN_FFA1R_FFA11 ((uint16_t)0x0800) /*!< Filter FIFO Assignment for Filter 11 */ -#define CAN_FFA1R_FFA12 ((uint16_t)0x1000) /*!< Filter FIFO Assignment for Filter 12 */ -#define CAN_FFA1R_FFA13 ((uint16_t)0x2000) /*!< Filter FIFO Assignment for Filter 13 */ - -/******************* Bit definition for CAN_FA1R register *******************/ -#define CAN_FA1R_FACT ((uint16_t)0x3FFF) /*!< Filter Active */ -#define CAN_FA1R_FACT0 ((uint16_t)0x0001) /*!< Filter 0 Active */ -#define CAN_FA1R_FACT1 ((uint16_t)0x0002) /*!< Filter 1 Active */ -#define CAN_FA1R_FACT2 ((uint16_t)0x0004) /*!< Filter 2 Active */ -#define CAN_FA1R_FACT3 ((uint16_t)0x0008) /*!< Filter 3 Active */ -#define CAN_FA1R_FACT4 ((uint16_t)0x0010) /*!< Filter 4 Active */ -#define CAN_FA1R_FACT5 ((uint16_t)0x0020) /*!< Filter 5 Active */ -#define CAN_FA1R_FACT6 ((uint16_t)0x0040) /*!< Filter 6 Active */ -#define CAN_FA1R_FACT7 ((uint16_t)0x0080) /*!< Filter 7 Active */ -#define CAN_FA1R_FACT8 ((uint16_t)0x0100) /*!< Filter 8 Active */ -#define CAN_FA1R_FACT9 ((uint16_t)0x0200) /*!< Filter 9 Active */ -#define CAN_FA1R_FACT10 ((uint16_t)0x0400) /*!< Filter 10 Active */ -#define CAN_FA1R_FACT11 ((uint16_t)0x0800) /*!< Filter 11 Active */ -#define CAN_FA1R_FACT12 ((uint16_t)0x1000) /*!< Filter 12 Active */ -#define CAN_FA1R_FACT13 ((uint16_t)0x2000) /*!< Filter 13 Active */ - -/******************* Bit definition for CAN_F0R1 register *******************/ -#define CAN_F0R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F0R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F0R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F0R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F0R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F0R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F0R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F0R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F0R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F0R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F0R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F0R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F0R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F0R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F0R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F0R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F0R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F0R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F0R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F0R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F0R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F0R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F0R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F0R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F0R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F0R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F0R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F0R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F0R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F0R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F0R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F0R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F1R1 register *******************/ -#define CAN_F1R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F1R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F1R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F1R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F1R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F1R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F1R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F1R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F1R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F1R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F1R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F1R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F1R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F1R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F1R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F1R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F1R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F1R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F1R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F1R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F1R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F1R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F1R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F1R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F1R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F1R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F1R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F1R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F1R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F1R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F1R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F1R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F2R1 register *******************/ -#define CAN_F2R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F2R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F2R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F2R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F2R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F2R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F2R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F2R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F2R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F2R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F2R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F2R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F2R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F2R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F2R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F2R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F2R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F2R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F2R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F2R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F2R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F2R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F2R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F2R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F2R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F2R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F2R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F2R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F2R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F2R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F2R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F2R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F3R1 register *******************/ -#define CAN_F3R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F3R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F3R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F3R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F3R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F3R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F3R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F3R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F3R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F3R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F3R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F3R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F3R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F3R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F3R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F3R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F3R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F3R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F3R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F3R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F3R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F3R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F3R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F3R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F3R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F3R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F3R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F3R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F3R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F3R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F3R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F3R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F4R1 register *******************/ -#define CAN_F4R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F4R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F4R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F4R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F4R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F4R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F4R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F4R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F4R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F4R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F4R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F4R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F4R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F4R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F4R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F4R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F4R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F4R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F4R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F4R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F4R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F4R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F4R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F4R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F4R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F4R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F4R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F4R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F4R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F4R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F4R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F4R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F5R1 register *******************/ -#define CAN_F5R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F5R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F5R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F5R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F5R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F5R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F5R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F5R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F5R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F5R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F5R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F5R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F5R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F5R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F5R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F5R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F5R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F5R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F5R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F5R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F5R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F5R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F5R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F5R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F5R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F5R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F5R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F5R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F5R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F5R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F5R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F5R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F6R1 register *******************/ -#define CAN_F6R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F6R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F6R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F6R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F6R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F6R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F6R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F6R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F6R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F6R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F6R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F6R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F6R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F6R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F6R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F6R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F6R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F6R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F6R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F6R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F6R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F6R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F6R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F6R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F6R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F6R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F6R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F6R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F6R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F6R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F6R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F6R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F7R1 register *******************/ -#define CAN_F7R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F7R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F7R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F7R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F7R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F7R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F7R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F7R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F7R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F7R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F7R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F7R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F7R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F7R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F7R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F7R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F7R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F7R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F7R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F7R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F7R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F7R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F7R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F7R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F7R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F7R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F7R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F7R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F7R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F7R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F7R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F7R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F8R1 register *******************/ -#define CAN_F8R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F8R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F8R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F8R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F8R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F8R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F8R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F8R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F8R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F8R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F8R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F8R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F8R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F8R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F8R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F8R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F8R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F8R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F8R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F8R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F8R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F8R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F8R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F8R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F8R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F8R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F8R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F8R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F8R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F8R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F8R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F8R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F9R1 register *******************/ -#define CAN_F9R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F9R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F9R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F9R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F9R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F9R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F9R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F9R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F9R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F9R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F9R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F9R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F9R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F9R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F9R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F9R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F9R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F9R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F9R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F9R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F9R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F9R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F9R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F9R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F9R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F9R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F9R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F9R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F9R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F9R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F9R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F9R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F10R1 register ******************/ -#define CAN_F10R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F10R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F10R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F10R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F10R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F10R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F10R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F10R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F10R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F10R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F10R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F10R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F10R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F10R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F10R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F10R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F10R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F10R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F10R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F10R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F10R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F10R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F10R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F10R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F10R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F10R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F10R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F10R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F10R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F10R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F10R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F10R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F11R1 register ******************/ -#define CAN_F11R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F11R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F11R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F11R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F11R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F11R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F11R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F11R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F11R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F11R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F11R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F11R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F11R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F11R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F11R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F11R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F11R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F11R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F11R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F11R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F11R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F11R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F11R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F11R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F11R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F11R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F11R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F11R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F11R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F11R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F11R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F11R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F12R1 register ******************/ -#define CAN_F12R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F12R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F12R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F12R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F12R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F12R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F12R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F12R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F12R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F12R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F12R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F12R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F12R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F12R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F12R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F12R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F12R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F12R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F12R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F12R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F12R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F12R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F12R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F12R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F12R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F12R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F12R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F12R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F12R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F12R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F12R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F12R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F13R1 register ******************/ -#define CAN_F13R1_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F13R1_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F13R1_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F13R1_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F13R1_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F13R1_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F13R1_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F13R1_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F13R1_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F13R1_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F13R1_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F13R1_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F13R1_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F13R1_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F13R1_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F13R1_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F13R1_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F13R1_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F13R1_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F13R1_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F13R1_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F13R1_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F13R1_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F13R1_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F13R1_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F13R1_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F13R1_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F13R1_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F13R1_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F13R1_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F13R1_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F13R1_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F0R2 register *******************/ -#define CAN_F0R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F0R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F0R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F0R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F0R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F0R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F0R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F0R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F0R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F0R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F0R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F0R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F0R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F0R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F0R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F0R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F0R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F0R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F0R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F0R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F0R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F0R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F0R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F0R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F0R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F0R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F0R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F0R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F0R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F0R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F0R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F0R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F1R2 register *******************/ -#define CAN_F1R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F1R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F1R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F1R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F1R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F1R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F1R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F1R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F1R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F1R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F1R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F1R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F1R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F1R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F1R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F1R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F1R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F1R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F1R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F1R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F1R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F1R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F1R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F1R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F1R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F1R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F1R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F1R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F1R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F1R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F1R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F1R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F2R2 register *******************/ -#define CAN_F2R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F2R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F2R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F2R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F2R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F2R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F2R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F2R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F2R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F2R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F2R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F2R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F2R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F2R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F2R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F2R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F2R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F2R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F2R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F2R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F2R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F2R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F2R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F2R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F2R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F2R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F2R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F2R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F2R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F2R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F2R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F2R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F3R2 register *******************/ -#define CAN_F3R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F3R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F3R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F3R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F3R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F3R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F3R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F3R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F3R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F3R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F3R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F3R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F3R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F3R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F3R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F3R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F3R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F3R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F3R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F3R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F3R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F3R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F3R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F3R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F3R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F3R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F3R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F3R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F3R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F3R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F3R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F3R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F4R2 register *******************/ -#define CAN_F4R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F4R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F4R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F4R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F4R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F4R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F4R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F4R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F4R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F4R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F4R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F4R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F4R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F4R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F4R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F4R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F4R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F4R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F4R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F4R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F4R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F4R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F4R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F4R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F4R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F4R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F4R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F4R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F4R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F4R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F4R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F4R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F5R2 register *******************/ -#define CAN_F5R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F5R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F5R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F5R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F5R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F5R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F5R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F5R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F5R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F5R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F5R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F5R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F5R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F5R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F5R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F5R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F5R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F5R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F5R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F5R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F5R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F5R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F5R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F5R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F5R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F5R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F5R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F5R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F5R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F5R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F5R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F5R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F6R2 register *******************/ -#define CAN_F6R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F6R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F6R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F6R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F6R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F6R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F6R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F6R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F6R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F6R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F6R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F6R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F6R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F6R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F6R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F6R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F6R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F6R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F6R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F6R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F6R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F6R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F6R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F6R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F6R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F6R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F6R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F6R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F6R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F6R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F6R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F6R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F7R2 register *******************/ -#define CAN_F7R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F7R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F7R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F7R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F7R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F7R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F7R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F7R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F7R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F7R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F7R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F7R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F7R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F7R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F7R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F7R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F7R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F7R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F7R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F7R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F7R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F7R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F7R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F7R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F7R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F7R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F7R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F7R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F7R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F7R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F7R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F7R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F8R2 register *******************/ -#define CAN_F8R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F8R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F8R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F8R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F8R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F8R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F8R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F8R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F8R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F8R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F8R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F8R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F8R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F8R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F8R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F8R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F8R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F8R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F8R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F8R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F8R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F8R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F8R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F8R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F8R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F8R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F8R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F8R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F8R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F8R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F8R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F8R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F9R2 register *******************/ -#define CAN_F9R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F9R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F9R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F9R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F9R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F9R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F9R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F9R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F9R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F9R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F9R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F9R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F9R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F9R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F9R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F9R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F9R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F9R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F9R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F9R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F9R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F9R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F9R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F9R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F9R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F9R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F9R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F9R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F9R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F9R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F9R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F9R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F10R2 register ******************/ -#define CAN_F10R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F10R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F10R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F10R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F10R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F10R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F10R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F10R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F10R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F10R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F10R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F10R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F10R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F10R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F10R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F10R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F10R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F10R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F10R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F10R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F10R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F10R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F10R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F10R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F10R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F10R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F10R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F10R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F10R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F10R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F10R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F10R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F11R2 register ******************/ -#define CAN_F11R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F11R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F11R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F11R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F11R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F11R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F11R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F11R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F11R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F11R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F11R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F11R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F11R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F11R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F11R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F11R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F11R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F11R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F11R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F11R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F11R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F11R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F11R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F11R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F11R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F11R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F11R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F11R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F11R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F11R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F11R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F11R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F12R2 register ******************/ -#define CAN_F12R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F12R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F12R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F12R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F12R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F12R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F12R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F12R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F12R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F12R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F12R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F12R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F12R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F12R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F12R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F12R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F12R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F12R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F12R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F12R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F12R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F12R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F12R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F12R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F12R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F12R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F12R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F12R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F12R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F12R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F12R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F12R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************* Bit definition for CAN_F13R2 register ******************/ -#define CAN_F13R2_FB0 ((uint32_t)0x00000001) /*!< Filter bit 0 */ -#define CAN_F13R2_FB1 ((uint32_t)0x00000002) /*!< Filter bit 1 */ -#define CAN_F13R2_FB2 ((uint32_t)0x00000004) /*!< Filter bit 2 */ -#define CAN_F13R2_FB3 ((uint32_t)0x00000008) /*!< Filter bit 3 */ -#define CAN_F13R2_FB4 ((uint32_t)0x00000010) /*!< Filter bit 4 */ -#define CAN_F13R2_FB5 ((uint32_t)0x00000020) /*!< Filter bit 5 */ -#define CAN_F13R2_FB6 ((uint32_t)0x00000040) /*!< Filter bit 6 */ -#define CAN_F13R2_FB7 ((uint32_t)0x00000080) /*!< Filter bit 7 */ -#define CAN_F13R2_FB8 ((uint32_t)0x00000100) /*!< Filter bit 8 */ -#define CAN_F13R2_FB9 ((uint32_t)0x00000200) /*!< Filter bit 9 */ -#define CAN_F13R2_FB10 ((uint32_t)0x00000400) /*!< Filter bit 10 */ -#define CAN_F13R2_FB11 ((uint32_t)0x00000800) /*!< Filter bit 11 */ -#define CAN_F13R2_FB12 ((uint32_t)0x00001000) /*!< Filter bit 12 */ -#define CAN_F13R2_FB13 ((uint32_t)0x00002000) /*!< Filter bit 13 */ -#define CAN_F13R2_FB14 ((uint32_t)0x00004000) /*!< Filter bit 14 */ -#define CAN_F13R2_FB15 ((uint32_t)0x00008000) /*!< Filter bit 15 */ -#define CAN_F13R2_FB16 ((uint32_t)0x00010000) /*!< Filter bit 16 */ -#define CAN_F13R2_FB17 ((uint32_t)0x00020000) /*!< Filter bit 17 */ -#define CAN_F13R2_FB18 ((uint32_t)0x00040000) /*!< Filter bit 18 */ -#define CAN_F13R2_FB19 ((uint32_t)0x00080000) /*!< Filter bit 19 */ -#define CAN_F13R2_FB20 ((uint32_t)0x00100000) /*!< Filter bit 20 */ -#define CAN_F13R2_FB21 ((uint32_t)0x00200000) /*!< Filter bit 21 */ -#define CAN_F13R2_FB22 ((uint32_t)0x00400000) /*!< Filter bit 22 */ -#define CAN_F13R2_FB23 ((uint32_t)0x00800000) /*!< Filter bit 23 */ -#define CAN_F13R2_FB24 ((uint32_t)0x01000000) /*!< Filter bit 24 */ -#define CAN_F13R2_FB25 ((uint32_t)0x02000000) /*!< Filter bit 25 */ -#define CAN_F13R2_FB26 ((uint32_t)0x04000000) /*!< Filter bit 26 */ -#define CAN_F13R2_FB27 ((uint32_t)0x08000000) /*!< Filter bit 27 */ -#define CAN_F13R2_FB28 ((uint32_t)0x10000000) /*!< Filter bit 28 */ -#define CAN_F13R2_FB29 ((uint32_t)0x20000000) /*!< Filter bit 29 */ -#define CAN_F13R2_FB30 ((uint32_t)0x40000000) /*!< Filter bit 30 */ -#define CAN_F13R2_FB31 ((uint32_t)0x80000000) /*!< Filter bit 31 */ - -/******************************************************************************/ -/* */ -/* Serial Peripheral Interface */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for SPI_CR1 register ********************/ -#define SPI_CR1_CPHA ((uint16_t)0x0001) /*!< Clock Phase */ -#define SPI_CR1_CPOL ((uint16_t)0x0002) /*!< Clock Polarity */ -#define SPI_CR1_MSTR ((uint16_t)0x0004) /*!< Master Selection */ - -#define SPI_CR1_BR ((uint16_t)0x0038) /*!< BR[2:0] bits (Baud Rate Control) */ -#define SPI_CR1_BR_0 ((uint16_t)0x0008) /*!< Bit 0 */ -#define SPI_CR1_BR_1 ((uint16_t)0x0010) /*!< Bit 1 */ -#define SPI_CR1_BR_2 ((uint16_t)0x0020) /*!< Bit 2 */ - -#define SPI_CR1_SPE ((uint16_t)0x0040) /*!< SPI Enable */ -#define SPI_CR1_LSBFIRST ((uint16_t)0x0080) /*!< Frame Format */ -#define SPI_CR1_SSI ((uint16_t)0x0100) /*!< Internal slave select */ -#define SPI_CR1_SSM ((uint16_t)0x0200) /*!< Software slave management */ -#define SPI_CR1_RXONLY ((uint16_t)0x0400) /*!< Receive only */ -#define SPI_CR1_DFF ((uint16_t)0x0800) /*!< Data Frame Format */ -#define SPI_CR1_CRCNEXT ((uint16_t)0x1000) /*!< Transmit CRC next */ -#define SPI_CR1_CRCEN ((uint16_t)0x2000) /*!< Hardware CRC calculation enable */ -#define SPI_CR1_BIDIOE ((uint16_t)0x4000) /*!< Output enable in bidirectional mode */ -#define SPI_CR1_BIDIMODE ((uint16_t)0x8000) /*!< Bidirectional data mode enable */ - -/******************* Bit definition for SPI_CR2 register ********************/ -#define SPI_CR2_RXDMAEN ((uint8_t)0x01) /*!< Rx Buffer DMA Enable */ -#define SPI_CR2_TXDMAEN ((uint8_t)0x02) /*!< Tx Buffer DMA Enable */ -#define SPI_CR2_SSOE ((uint8_t)0x04) /*!< SS Output Enable */ -#define SPI_CR2_ERRIE ((uint8_t)0x20) /*!< Error Interrupt Enable */ -#define SPI_CR2_RXNEIE ((uint8_t)0x40) /*!< RX buffer Not Empty Interrupt Enable */ -#define SPI_CR2_TXEIE ((uint8_t)0x80) /*!< Tx buffer Empty Interrupt Enable */ - -/******************** Bit definition for SPI_SR register ********************/ -#define SPI_SR_RXNE ((uint8_t)0x01) /*!< Receive buffer Not Empty */ -#define SPI_SR_TXE ((uint8_t)0x02) /*!< Transmit buffer Empty */ -#define SPI_SR_CHSIDE ((uint8_t)0x04) /*!< Channel side */ -#define SPI_SR_UDR ((uint8_t)0x08) /*!< Underrun flag */ -#define SPI_SR_CRCERR ((uint8_t)0x10) /*!< CRC Error flag */ -#define SPI_SR_MODF ((uint8_t)0x20) /*!< Mode fault */ -#define SPI_SR_OVR ((uint8_t)0x40) /*!< Overrun flag */ -#define SPI_SR_BSY ((uint8_t)0x80) /*!< Busy flag */ - -/******************** Bit definition for SPI_DR register ********************/ -#define SPI_DR_DR ((uint16_t)0xFFFF) /*!< Data Register */ - -/******************* Bit definition for SPI_CRCPR register ******************/ -#define SPI_CRCPR_CRCPOLY ((uint16_t)0xFFFF) /*!< CRC polynomial register */ - -/****************** Bit definition for SPI_RXCRCR register ******************/ -#define SPI_RXCRCR_RXCRC ((uint16_t)0xFFFF) /*!< Rx CRC Register */ - -/****************** Bit definition for SPI_TXCRCR register ******************/ -#define SPI_TXCRCR_TXCRC ((uint16_t)0xFFFF) /*!< Tx CRC Register */ - -/****************** Bit definition for SPI_I2SCFGR register *****************/ -#define SPI_I2SCFGR_CHLEN ((uint16_t)0x0001) /*!< Channel length (number of bits per audio channel) */ - -#define SPI_I2SCFGR_DATLEN ((uint16_t)0x0006) /*!< DATLEN[1:0] bits (Data length to be transferred) */ -#define SPI_I2SCFGR_DATLEN_0 ((uint16_t)0x0002) /*!< Bit 0 */ -#define SPI_I2SCFGR_DATLEN_1 ((uint16_t)0x0004) /*!< Bit 1 */ - -#define SPI_I2SCFGR_CKPOL ((uint16_t)0x0008) /*!< steady state clock polarity */ - -#define SPI_I2SCFGR_I2SSTD ((uint16_t)0x0030) /*!< I2SSTD[1:0] bits (I2S standard selection) */ -#define SPI_I2SCFGR_I2SSTD_0 ((uint16_t)0x0010) /*!< Bit 0 */ -#define SPI_I2SCFGR_I2SSTD_1 ((uint16_t)0x0020) /*!< Bit 1 */ - -#define SPI_I2SCFGR_PCMSYNC ((uint16_t)0x0080) /*!< PCM frame synchronization */ - -#define SPI_I2SCFGR_I2SCFG ((uint16_t)0x0300) /*!< I2SCFG[1:0] bits (I2S configuration mode) */ -#define SPI_I2SCFGR_I2SCFG_0 ((uint16_t)0x0100) /*!< Bit 0 */ -#define SPI_I2SCFGR_I2SCFG_1 ((uint16_t)0x0200) /*!< Bit 1 */ - -#define SPI_I2SCFGR_I2SE ((uint16_t)0x0400) /*!< I2S Enable */ -#define SPI_I2SCFGR_I2SMOD ((uint16_t)0x0800) /*!< I2S mode selection */ - -/****************** Bit definition for SPI_I2SPR register *******************/ -#define SPI_I2SPR_I2SDIV ((uint16_t)0x00FF) /*!< I2S Linear prescaler */ -#define SPI_I2SPR_ODD ((uint16_t)0x0100) /*!< Odd factor for the prescaler */ -#define SPI_I2SPR_MCKOE ((uint16_t)0x0200) /*!< Master Clock Output Enable */ - -/******************************************************************************/ -/* */ -/* Inter-integrated Circuit Interface */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for I2C_CR1 register ********************/ -#define I2C_CR1_PE ((uint16_t)0x0001) /*!< Peripheral Enable */ -#define I2C_CR1_SMBUS ((uint16_t)0x0002) /*!< SMBus Mode */ -#define I2C_CR1_SMBTYPE ((uint16_t)0x0008) /*!< SMBus Type */ -#define I2C_CR1_ENARP ((uint16_t)0x0010) /*!< ARP Enable */ -#define I2C_CR1_ENPEC ((uint16_t)0x0020) /*!< PEC Enable */ -#define I2C_CR1_ENGC ((uint16_t)0x0040) /*!< General Call Enable */ -#define I2C_CR1_NOSTRETCH ((uint16_t)0x0080) /*!< Clock Stretching Disable (Slave mode) */ -#define I2C_CR1_START ((uint16_t)0x0100) /*!< Start Generation */ -#define I2C_CR1_STOP ((uint16_t)0x0200) /*!< Stop Generation */ -#define I2C_CR1_ACK ((uint16_t)0x0400) /*!< Acknowledge Enable */ -#define I2C_CR1_POS ((uint16_t)0x0800) /*!< Acknowledge/PEC Position (for data reception) */ -#define I2C_CR1_PEC ((uint16_t)0x1000) /*!< Packet Error Checking */ -#define I2C_CR1_ALERT ((uint16_t)0x2000) /*!< SMBus Alert */ -#define I2C_CR1_SWRST ((uint16_t)0x8000) /*!< Software Reset */ - -/******************* Bit definition for I2C_CR2 register ********************/ -#define I2C_CR2_FREQ ((uint16_t)0x003F) /*!< FREQ[5:0] bits (Peripheral Clock Frequency) */ -#define I2C_CR2_FREQ_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define I2C_CR2_FREQ_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define I2C_CR2_FREQ_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define I2C_CR2_FREQ_3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define I2C_CR2_FREQ_4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define I2C_CR2_FREQ_5 ((uint16_t)0x0020) /*!< Bit 5 */ - -#define I2C_CR2_ITERREN ((uint16_t)0x0100) /*!< Error Interrupt Enable */ -#define I2C_CR2_ITEVTEN ((uint16_t)0x0200) /*!< Event Interrupt Enable */ -#define I2C_CR2_ITBUFEN ((uint16_t)0x0400) /*!< Buffer Interrupt Enable */ -#define I2C_CR2_DMAEN ((uint16_t)0x0800) /*!< DMA Requests Enable */ -#define I2C_CR2_LAST ((uint16_t)0x1000) /*!< DMA Last Transfer */ - -/******************* Bit definition for I2C_OAR1 register *******************/ -#define I2C_OAR1_ADD1_7 ((uint16_t)0x00FE) /*!< Interface Address */ -#define I2C_OAR1_ADD8_9 ((uint16_t)0x0300) /*!< Interface Address */ - -#define I2C_OAR1_ADD0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define I2C_OAR1_ADD1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define I2C_OAR1_ADD2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define I2C_OAR1_ADD3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define I2C_OAR1_ADD4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define I2C_OAR1_ADD5 ((uint16_t)0x0020) /*!< Bit 5 */ -#define I2C_OAR1_ADD6 ((uint16_t)0x0040) /*!< Bit 6 */ -#define I2C_OAR1_ADD7 ((uint16_t)0x0080) /*!< Bit 7 */ -#define I2C_OAR1_ADD8 ((uint16_t)0x0100) /*!< Bit 8 */ -#define I2C_OAR1_ADD9 ((uint16_t)0x0200) /*!< Bit 9 */ - -#define I2C_OAR1_ADDMODE ((uint16_t)0x8000) /*!< Addressing Mode (Slave mode) */ - -/******************* Bit definition for I2C_OAR2 register *******************/ -#define I2C_OAR2_ENDUAL ((uint8_t)0x01) /*!< Dual addressing mode enable */ -#define I2C_OAR2_ADD2 ((uint8_t)0xFE) /*!< Interface address */ - -/******************** Bit definition for I2C_DR register ********************/ -#define I2C_DR_DR ((uint8_t)0xFF) /*!< 8-bit Data Register */ - -/******************* Bit definition for I2C_SR1 register ********************/ -#define I2C_SR1_SB ((uint16_t)0x0001) /*!< Start Bit (Master mode) */ -#define I2C_SR1_ADDR ((uint16_t)0x0002) /*!< Address sent (master mode)/matched (slave mode) */ -#define I2C_SR1_BTF ((uint16_t)0x0004) /*!< Byte Transfer Finished */ -#define I2C_SR1_ADD10 ((uint16_t)0x0008) /*!< 10-bit header sent (Master mode) */ -#define I2C_SR1_STOPF ((uint16_t)0x0010) /*!< Stop detection (Slave mode) */ -#define I2C_SR1_RXNE ((uint16_t)0x0040) /*!< Data Register not Empty (receivers) */ -#define I2C_SR1_TXE ((uint16_t)0x0080) /*!< Data Register Empty (transmitters) */ -#define I2C_SR1_BERR ((uint16_t)0x0100) /*!< Bus Error */ -#define I2C_SR1_ARLO ((uint16_t)0x0200) /*!< Arbitration Lost (master mode) */ -#define I2C_SR1_AF ((uint16_t)0x0400) /*!< Acknowledge Failure */ -#define I2C_SR1_OVR ((uint16_t)0x0800) /*!< Overrun/Underrun */ -#define I2C_SR1_PECERR ((uint16_t)0x1000) /*!< PEC Error in reception */ -#define I2C_SR1_TIMEOUT ((uint16_t)0x4000) /*!< Timeout or Tlow Error */ -#define I2C_SR1_SMBALERT ((uint16_t)0x8000) /*!< SMBus Alert */ - -/******************* Bit definition for I2C_SR2 register ********************/ -#define I2C_SR2_MSL ((uint16_t)0x0001) /*!< Master/Slave */ -#define I2C_SR2_BUSY ((uint16_t)0x0002) /*!< Bus Busy */ -#define I2C_SR2_TRA ((uint16_t)0x0004) /*!< Transmitter/Receiver */ -#define I2C_SR2_GENCALL ((uint16_t)0x0010) /*!< General Call Address (Slave mode) */ -#define I2C_SR2_SMBDEFAULT ((uint16_t)0x0020) /*!< SMBus Device Default Address (Slave mode) */ -#define I2C_SR2_SMBHOST ((uint16_t)0x0040) /*!< SMBus Host Header (Slave mode) */ -#define I2C_SR2_DUALF ((uint16_t)0x0080) /*!< Dual Flag (Slave mode) */ -#define I2C_SR2_PEC ((uint16_t)0xFF00) /*!< Packet Error Checking Register */ - -/******************* Bit definition for I2C_CCR register ********************/ -#define I2C_CCR_CCR ((uint16_t)0x0FFF) /*!< Clock Control Register in Fast/Standard mode (Master mode) */ -#define I2C_CCR_DUTY ((uint16_t)0x4000) /*!< Fast Mode Duty Cycle */ -#define I2C_CCR_FS ((uint16_t)0x8000) /*!< I2C Master Mode Selection */ - -/****************** Bit definition for I2C_TRISE register *******************/ -#define I2C_TRISE_TRISE ((uint8_t)0x3F) /*!< Maximum Rise Time in Fast/Standard mode (Master mode) */ - -/******************************************************************************/ -/* */ -/* Universal Synchronous Asynchronous Receiver Transmitter */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for USART_SR register *******************/ -#define USART_SR_PE ((uint16_t)0x0001) /*!< Parity Error */ -#define USART_SR_FE ((uint16_t)0x0002) /*!< Framing Error */ -#define USART_SR_NE ((uint16_t)0x0004) /*!< Noise Error Flag */ -#define USART_SR_ORE ((uint16_t)0x0008) /*!< OverRun Error */ -#define USART_SR_IDLE ((uint16_t)0x0010) /*!< IDLE line detected */ -#define USART_SR_RXNE ((uint16_t)0x0020) /*!< Read Data Register Not Empty */ -#define USART_SR_TC ((uint16_t)0x0040) /*!< Transmission Complete */ -#define USART_SR_TXE ((uint16_t)0x0080) /*!< Transmit Data Register Empty */ -#define USART_SR_LBD ((uint16_t)0x0100) /*!< LIN Break Detection Flag */ -#define USART_SR_CTS ((uint16_t)0x0200) /*!< CTS Flag */ - -/******************* Bit definition for USART_DR register *******************/ -#define USART_DR_DR ((uint16_t)0x01FF) /*!< Data value */ - -/****************** Bit definition for USART_BRR register *******************/ -#define USART_BRR_DIV_Fraction ((uint16_t)0x000F) /*!< Fraction of USARTDIV */ -#define USART_BRR_DIV_Mantissa ((uint16_t)0xFFF0) /*!< Mantissa of USARTDIV */ - -/****************** Bit definition for USART_CR1 register *******************/ -#define USART_CR1_SBK ((uint16_t)0x0001) /*!< Send Break */ -#define USART_CR1_RWU ((uint16_t)0x0002) /*!< Receiver wakeup */ -#define USART_CR1_RE ((uint16_t)0x0004) /*!< Receiver Enable */ -#define USART_CR1_TE ((uint16_t)0x0008) /*!< Transmitter Enable */ -#define USART_CR1_IDLEIE ((uint16_t)0x0010) /*!< IDLE Interrupt Enable */ -#define USART_CR1_RXNEIE ((uint16_t)0x0020) /*!< RXNE Interrupt Enable */ -#define USART_CR1_TCIE ((uint16_t)0x0040) /*!< Transmission Complete Interrupt Enable */ -#define USART_CR1_TXEIE ((uint16_t)0x0080) /*!< PE Interrupt Enable */ -#define USART_CR1_PEIE ((uint16_t)0x0100) /*!< PE Interrupt Enable */ -#define USART_CR1_PS ((uint16_t)0x0200) /*!< Parity Selection */ -#define USART_CR1_PCE ((uint16_t)0x0400) /*!< Parity Control Enable */ -#define USART_CR1_WAKE ((uint16_t)0x0800) /*!< Wakeup method */ -#define USART_CR1_M ((uint16_t)0x1000) /*!< Word length */ -#define USART_CR1_UE ((uint16_t)0x2000) /*!< USART Enable */ -#define USART_CR1_OVER8 ((uint16_t)0x8000) /*!< USART Oversmapling 8-bits */ - -/****************** Bit definition for USART_CR2 register *******************/ -#define USART_CR2_ADD ((uint16_t)0x000F) /*!< Address of the USART node */ -#define USART_CR2_LBDL ((uint16_t)0x0020) /*!< LIN Break Detection Length */ -#define USART_CR2_LBDIE ((uint16_t)0x0040) /*!< LIN Break Detection Interrupt Enable */ -#define USART_CR2_LBCL ((uint16_t)0x0100) /*!< Last Bit Clock pulse */ -#define USART_CR2_CPHA ((uint16_t)0x0200) /*!< Clock Phase */ -#define USART_CR2_CPOL ((uint16_t)0x0400) /*!< Clock Polarity */ -#define USART_CR2_CLKEN ((uint16_t)0x0800) /*!< Clock Enable */ - -#define USART_CR2_STOP ((uint16_t)0x3000) /*!< STOP[1:0] bits (STOP bits) */ -#define USART_CR2_STOP_0 ((uint16_t)0x1000) /*!< Bit 0 */ -#define USART_CR2_STOP_1 ((uint16_t)0x2000) /*!< Bit 1 */ - -#define USART_CR2_LINEN ((uint16_t)0x4000) /*!< LIN mode enable */ - -/****************** Bit definition for USART_CR3 register *******************/ -#define USART_CR3_EIE ((uint16_t)0x0001) /*!< Error Interrupt Enable */ -#define USART_CR3_IREN ((uint16_t)0x0002) /*!< IrDA mode Enable */ -#define USART_CR3_IRLP ((uint16_t)0x0004) /*!< IrDA Low-Power */ -#define USART_CR3_HDSEL ((uint16_t)0x0008) /*!< Half-Duplex Selection */ -#define USART_CR3_NACK ((uint16_t)0x0010) /*!< Smartcard NACK enable */ -#define USART_CR3_SCEN ((uint16_t)0x0020) /*!< Smartcard mode enable */ -#define USART_CR3_DMAR ((uint16_t)0x0040) /*!< DMA Enable Receiver */ -#define USART_CR3_DMAT ((uint16_t)0x0080) /*!< DMA Enable Transmitter */ -#define USART_CR3_RTSE ((uint16_t)0x0100) /*!< RTS Enable */ -#define USART_CR3_CTSE ((uint16_t)0x0200) /*!< CTS Enable */ -#define USART_CR3_CTSIE ((uint16_t)0x0400) /*!< CTS Interrupt Enable */ -#define USART_CR3_ONEBIT ((uint16_t)0x0800) /*!< One Bit method */ - -/****************** Bit definition for USART_GTPR register ******************/ -#define USART_GTPR_PSC ((uint16_t)0x00FF) /*!< PSC[7:0] bits (Prescaler value) */ -#define USART_GTPR_PSC_0 ((uint16_t)0x0001) /*!< Bit 0 */ -#define USART_GTPR_PSC_1 ((uint16_t)0x0002) /*!< Bit 1 */ -#define USART_GTPR_PSC_2 ((uint16_t)0x0004) /*!< Bit 2 */ -#define USART_GTPR_PSC_3 ((uint16_t)0x0008) /*!< Bit 3 */ -#define USART_GTPR_PSC_4 ((uint16_t)0x0010) /*!< Bit 4 */ -#define USART_GTPR_PSC_5 ((uint16_t)0x0020) /*!< Bit 5 */ -#define USART_GTPR_PSC_6 ((uint16_t)0x0040) /*!< Bit 6 */ -#define USART_GTPR_PSC_7 ((uint16_t)0x0080) /*!< Bit 7 */ - -#define USART_GTPR_GT ((uint16_t)0xFF00) /*!< Guard time value */ - -/******************************************************************************/ -/* */ -/* Debug MCU */ -/* */ -/******************************************************************************/ - -/**************** Bit definition for DBGMCU_IDCODE register *****************/ -#define DBGMCU_IDCODE_DEV_ID ((uint32_t)0x00000FFF) /*!< Device Identifier */ - -#define DBGMCU_IDCODE_REV_ID ((uint32_t)0xFFFF0000) /*!< REV_ID[15:0] bits (Revision Identifier) */ -#define DBGMCU_IDCODE_REV_ID_0 ((uint32_t)0x00010000) /*!< Bit 0 */ -#define DBGMCU_IDCODE_REV_ID_1 ((uint32_t)0x00020000) /*!< Bit 1 */ -#define DBGMCU_IDCODE_REV_ID_2 ((uint32_t)0x00040000) /*!< Bit 2 */ -#define DBGMCU_IDCODE_REV_ID_3 ((uint32_t)0x00080000) /*!< Bit 3 */ -#define DBGMCU_IDCODE_REV_ID_4 ((uint32_t)0x00100000) /*!< Bit 4 */ -#define DBGMCU_IDCODE_REV_ID_5 ((uint32_t)0x00200000) /*!< Bit 5 */ -#define DBGMCU_IDCODE_REV_ID_6 ((uint32_t)0x00400000) /*!< Bit 6 */ -#define DBGMCU_IDCODE_REV_ID_7 ((uint32_t)0x00800000) /*!< Bit 7 */ -#define DBGMCU_IDCODE_REV_ID_8 ((uint32_t)0x01000000) /*!< Bit 8 */ -#define DBGMCU_IDCODE_REV_ID_9 ((uint32_t)0x02000000) /*!< Bit 9 */ -#define DBGMCU_IDCODE_REV_ID_10 ((uint32_t)0x04000000) /*!< Bit 10 */ -#define DBGMCU_IDCODE_REV_ID_11 ((uint32_t)0x08000000) /*!< Bit 11 */ -#define DBGMCU_IDCODE_REV_ID_12 ((uint32_t)0x10000000) /*!< Bit 12 */ -#define DBGMCU_IDCODE_REV_ID_13 ((uint32_t)0x20000000) /*!< Bit 13 */ -#define DBGMCU_IDCODE_REV_ID_14 ((uint32_t)0x40000000) /*!< Bit 14 */ -#define DBGMCU_IDCODE_REV_ID_15 ((uint32_t)0x80000000) /*!< Bit 15 */ - -/****************** Bit definition for DBGMCU_CR register *******************/ -#define DBGMCU_CR_DBG_SLEEP ((uint32_t)0x00000001) /*!< Debug Sleep Mode */ -#define DBGMCU_CR_DBG_STOP ((uint32_t)0x00000002) /*!< Debug Stop Mode */ -#define DBGMCU_CR_DBG_STANDBY ((uint32_t)0x00000004) /*!< Debug Standby mode */ -#define DBGMCU_CR_TRACE_IOEN ((uint32_t)0x00000020) /*!< Trace Pin Assignment Control */ - -#define DBGMCU_CR_TRACE_MODE ((uint32_t)0x000000C0) /*!< TRACE_MODE[1:0] bits (Trace Pin Assignment Control) */ -#define DBGMCU_CR_TRACE_MODE_0 ((uint32_t)0x00000040) /*!< Bit 0 */ -#define DBGMCU_CR_TRACE_MODE_1 ((uint32_t)0x00000080) /*!< Bit 1 */ - -#define DBGMCU_CR_DBG_IWDG_STOP ((uint32_t)0x00000100) /*!< Debug Independent Watchdog stopped when Core is halted */ -#define DBGMCU_CR_DBG_WWDG_STOP ((uint32_t)0x00000200) /*!< Debug Window Watchdog stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM1_STOP ((uint32_t)0x00000400) /*!< TIM1 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM2_STOP ((uint32_t)0x00000800) /*!< TIM2 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM3_STOP ((uint32_t)0x00001000) /*!< TIM3 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM4_STOP ((uint32_t)0x00002000) /*!< TIM4 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_CAN1_STOP ((uint32_t)0x00004000) /*!< Debug CAN1 stopped when Core is halted */ -#define DBGMCU_CR_DBG_I2C1_SMBUS_TIMEOUT ((uint32_t)0x00008000) /*!< SMBUS timeout mode stopped when Core is halted */ -#define DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT ((uint32_t)0x00010000) /*!< SMBUS timeout mode stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM8_STOP ((uint32_t)0x00020000) /*!< TIM8 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM5_STOP ((uint32_t)0x00040000) /*!< TIM5 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM6_STOP ((uint32_t)0x00080000) /*!< TIM6 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_TIM7_STOP ((uint32_t)0x00100000) /*!< TIM7 counter stopped when core is halted */ -#define DBGMCU_CR_DBG_CAN2_STOP ((uint32_t)0x00200000) /*!< Debug CAN2 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM15_STOP ((uint32_t)0x00400000) /*!< Debug TIM15 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM16_STOP ((uint32_t)0x00800000) /*!< Debug TIM16 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM17_STOP ((uint32_t)0x01000000) /*!< Debug TIM17 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM12_STOP ((uint32_t)0x02000000) /*!< Debug TIM12 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM13_STOP ((uint32_t)0x04000000) /*!< Debug TIM13 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM14_STOP ((uint32_t)0x08000000) /*!< Debug TIM14 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM9_STOP ((uint32_t)0x10000000) /*!< Debug TIM9 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM10_STOP ((uint32_t)0x20000000) /*!< Debug TIM10 stopped when Core is halted */ -#define DBGMCU_CR_DBG_TIM11_STOP ((uint32_t)0x40000000) /*!< Debug TIM11 stopped when Core is halted */ - -/******************************************************************************/ -/* */ -/* FLASH and Option Bytes Registers */ -/* */ -/******************************************************************************/ - -/******************* Bit definition for FLASH_ACR register ******************/ -#define FLASH_ACR_LATENCY ((uint8_t)0x03) /*!< LATENCY[2:0] bits (Latency) */ -#define FLASH_ACR_LATENCY_0 ((uint8_t)0x00) /*!< Bit 0 */ -#define FLASH_ACR_LATENCY_1 ((uint8_t)0x01) /*!< Bit 0 */ -#define FLASH_ACR_LATENCY_2 ((uint8_t)0x02) /*!< Bit 1 */ - -#define FLASH_ACR_HLFCYA ((uint8_t)0x08) /*!< Flash Half Cycle Access Enable */ -#define FLASH_ACR_PRFTBE ((uint8_t)0x10) /*!< Prefetch Buffer Enable */ -#define FLASH_ACR_PRFTBS ((uint8_t)0x20) /*!< Prefetch Buffer Status */ - -/****************** Bit definition for FLASH_KEYR register ******************/ -#define FLASH_KEYR_FKEYR ((uint32_t)0xFFFFFFFF) /*!< FPEC Key */ - -/***************** Bit definition for FLASH_OPTKEYR register ****************/ -#define FLASH_OPTKEYR_OPTKEYR ((uint32_t)0xFFFFFFFF) /*!< Option Byte Key */ - -/****************** Bit definition for FLASH_SR register *******************/ -#define FLASH_SR_BSY ((uint8_t)0x01) /*!< Busy */ -#define FLASH_SR_PGERR ((uint8_t)0x04) /*!< Programming Error */ -#define FLASH_SR_WRPRTERR ((uint8_t)0x10) /*!< Write Protection Error */ -#define FLASH_SR_EOP ((uint8_t)0x20) /*!< End of operation */ - -/******************* Bit definition for FLASH_CR register *******************/ -#define FLASH_CR_PG ((uint16_t)0x0001) /*!< Programming */ -#define FLASH_CR_PER ((uint16_t)0x0002) /*!< Page Erase */ -#define FLASH_CR_MER ((uint16_t)0x0004) /*!< Mass Erase */ -#define FLASH_CR_OPTPG ((uint16_t)0x0010) /*!< Option Byte Programming */ -#define FLASH_CR_OPTER ((uint16_t)0x0020) /*!< Option Byte Erase */ -#define FLASH_CR_STRT ((uint16_t)0x0040) /*!< Start */ -#define FLASH_CR_LOCK ((uint16_t)0x0080) /*!< Lock */ -#define FLASH_CR_OPTWRE ((uint16_t)0x0200) /*!< Option Bytes Write Enable */ -#define FLASH_CR_ERRIE ((uint16_t)0x0400) /*!< Error Interrupt Enable */ -#define FLASH_CR_EOPIE ((uint16_t)0x1000) /*!< End of operation interrupt enable */ - -/******************* Bit definition for FLASH_AR register *******************/ -#define FLASH_AR_FAR ((uint32_t)0xFFFFFFFF) /*!< Flash Address */ - -/****************** Bit definition for FLASH_OBR register *******************/ -#define FLASH_OBR_OPTERR ((uint16_t)0x0001) /*!< Option Byte Error */ -#define FLASH_OBR_RDPRT ((uint16_t)0x0002) /*!< Read protection */ - -#define FLASH_OBR_USER ((uint16_t)0x03FC) /*!< User Option Bytes */ -#define FLASH_OBR_WDG_SW ((uint16_t)0x0004) /*!< WDG_SW */ -#define FLASH_OBR_nRST_STOP ((uint16_t)0x0008) /*!< nRST_STOP */ -#define FLASH_OBR_nRST_STDBY ((uint16_t)0x0010) /*!< nRST_STDBY */ -#define FLASH_OBR_BFB2 ((uint16_t)0x0020) /*!< BFB2 */ - -/****************** Bit definition for FLASH_WRPR register ******************/ -#define FLASH_WRPR_WRP ((uint32_t)0xFFFFFFFF) /*!< Write Protect */ - -/*----------------------------------------------------------------------------*/ - -/****************** Bit definition for FLASH_RDP register *******************/ -#define FLASH_RDP_RDP ((uint32_t)0x000000FF) /*!< Read protection option byte */ -#define FLASH_RDP_nRDP ((uint32_t)0x0000FF00) /*!< Read protection complemented option byte */ - -/****************** Bit definition for FLASH_USER register ******************/ -#define FLASH_USER_USER ((uint32_t)0x00FF0000) /*!< User option byte */ -#define FLASH_USER_nUSER ((uint32_t)0xFF000000) /*!< User complemented option byte */ - -/****************** Bit definition for FLASH_Data0 register *****************/ -#define FLASH_Data0_Data0 ((uint32_t)0x000000FF) /*!< User data storage option byte */ -#define FLASH_Data0_nData0 ((uint32_t)0x0000FF00) /*!< User data storage complemented option byte */ - -/****************** Bit definition for FLASH_Data1 register *****************/ -#define FLASH_Data1_Data1 ((uint32_t)0x00FF0000) /*!< User data storage option byte */ -#define FLASH_Data1_nData1 ((uint32_t)0xFF000000) /*!< User data storage complemented option byte */ - -/****************** Bit definition for FLASH_WRP0 register ******************/ -#define FLASH_WRP0_WRP0 ((uint32_t)0x000000FF) /*!< Flash memory write protection option bytes */ -#define FLASH_WRP0_nWRP0 ((uint32_t)0x0000FF00) /*!< Flash memory write protection complemented option bytes */ - -/****************** Bit definition for FLASH_WRP1 register ******************/ -#define FLASH_WRP1_WRP1 ((uint32_t)0x00FF0000) /*!< Flash memory write protection option bytes */ -#define FLASH_WRP1_nWRP1 ((uint32_t)0xFF000000) /*!< Flash memory write protection complemented option bytes */ - -/****************** Bit definition for FLASH_WRP2 register ******************/ -#define FLASH_WRP2_WRP2 ((uint32_t)0x000000FF) /*!< Flash memory write protection option bytes */ -#define FLASH_WRP2_nWRP2 ((uint32_t)0x0000FF00) /*!< Flash memory write protection complemented option bytes */ - -/****************** Bit definition for FLASH_WRP3 register ******************/ -#define FLASH_WRP3_WRP3 ((uint32_t)0x00FF0000) /*!< Flash memory write protection option bytes */ -#define FLASH_WRP3_nWRP3 ((uint32_t)0xFF000000) /*!< Flash memory write protection complemented option bytes */ - -#ifdef STM32F10X_CL -/******************************************************************************/ -/* Ethernet MAC Registers bits definitions */ -/******************************************************************************/ -/* Bit definition for Ethernet MAC Control Register register */ -#define ETH_MACCR_WD ((uint32_t)0x00800000) /* Watchdog disable */ -#define ETH_MACCR_JD ((uint32_t)0x00400000) /* Jabber disable */ -#define ETH_MACCR_IFG ((uint32_t)0x000E0000) /* Inter-frame gap */ - #define ETH_MACCR_IFG_96Bit ((uint32_t)0x00000000) /* Minimum IFG between frames during transmission is 96Bit */ - #define ETH_MACCR_IFG_88Bit ((uint32_t)0x00020000) /* Minimum IFG between frames during transmission is 88Bit */ - #define ETH_MACCR_IFG_80Bit ((uint32_t)0x00040000) /* Minimum IFG between frames during transmission is 80Bit */ - #define ETH_MACCR_IFG_72Bit ((uint32_t)0x00060000) /* Minimum IFG between frames during transmission is 72Bit */ - #define ETH_MACCR_IFG_64Bit ((uint32_t)0x00080000) /* Minimum IFG between frames during transmission is 64Bit */ - #define ETH_MACCR_IFG_56Bit ((uint32_t)0x000A0000) /* Minimum IFG between frames during transmission is 56Bit */ - #define ETH_MACCR_IFG_48Bit ((uint32_t)0x000C0000) /* Minimum IFG between frames during transmission is 48Bit */ - #define ETH_MACCR_IFG_40Bit ((uint32_t)0x000E0000) /* Minimum IFG between frames during transmission is 40Bit */ -#define ETH_MACCR_CSD ((uint32_t)0x00010000) /* Carrier sense disable (during transmission) */ -#define ETH_MACCR_FES ((uint32_t)0x00004000) /* Fast ethernet speed */ -#define ETH_MACCR_ROD ((uint32_t)0x00002000) /* Receive own disable */ -#define ETH_MACCR_LM ((uint32_t)0x00001000) /* loopback mode */ -#define ETH_MACCR_DM ((uint32_t)0x00000800) /* Duplex mode */ -#define ETH_MACCR_IPCO ((uint32_t)0x00000400) /* IP Checksum offload */ -#define ETH_MACCR_RD ((uint32_t)0x00000200) /* Retry disable */ -#define ETH_MACCR_APCS ((uint32_t)0x00000080) /* Automatic Pad/CRC stripping */ -#define ETH_MACCR_BL ((uint32_t)0x00000060) /* Back-off limit: random integer number (r) of slot time delays before rescheduling - a transmission attempt during retries after a collision: 0 =< r <2^k */ - #define ETH_MACCR_BL_10 ((uint32_t)0x00000000) /* k = min (n, 10) */ - #define ETH_MACCR_BL_8 ((uint32_t)0x00000020) /* k = min (n, 8) */ - #define ETH_MACCR_BL_4 ((uint32_t)0x00000040) /* k = min (n, 4) */ - #define ETH_MACCR_BL_1 ((uint32_t)0x00000060) /* k = min (n, 1) */ -#define ETH_MACCR_DC ((uint32_t)0x00000010) /* Defferal check */ -#define ETH_MACCR_TE ((uint32_t)0x00000008) /* Transmitter enable */ -#define ETH_MACCR_RE ((uint32_t)0x00000004) /* Receiver enable */ - -/* Bit definition for Ethernet MAC Frame Filter Register */ -#define ETH_MACFFR_RA ((uint32_t)0x80000000) /* Receive all */ -#define ETH_MACFFR_HPF ((uint32_t)0x00000400) /* Hash or perfect filter */ -#define ETH_MACFFR_SAF ((uint32_t)0x00000200) /* Source address filter enable */ -#define ETH_MACFFR_SAIF ((uint32_t)0x00000100) /* SA inverse filtering */ -#define ETH_MACFFR_PCF ((uint32_t)0x000000C0) /* Pass control frames: 3 cases */ - #define ETH_MACFFR_PCF_BlockAll ((uint32_t)0x00000040) /* MAC filters all control frames from reaching the application */ - #define ETH_MACFFR_PCF_ForwardAll ((uint32_t)0x00000080) /* MAC forwards all control frames to application even if they fail the Address Filter */ - #define ETH_MACFFR_PCF_ForwardPassedAddrFilter ((uint32_t)0x000000C0) /* MAC forwards control frames that pass the Address Filter. */ -#define ETH_MACFFR_BFD ((uint32_t)0x00000020) /* Broadcast frame disable */ -#define ETH_MACFFR_PAM ((uint32_t)0x00000010) /* Pass all mutlicast */ -#define ETH_MACFFR_DAIF ((uint32_t)0x00000008) /* DA Inverse filtering */ -#define ETH_MACFFR_HM ((uint32_t)0x00000004) /* Hash multicast */ -#define ETH_MACFFR_HU ((uint32_t)0x00000002) /* Hash unicast */ -#define ETH_MACFFR_PM ((uint32_t)0x00000001) /* Promiscuous mode */ - -/* Bit definition for Ethernet MAC Hash Table High Register */ -#define ETH_MACHTHR_HTH ((uint32_t)0xFFFFFFFF) /* Hash table high */ - -/* Bit definition for Ethernet MAC Hash Table Low Register */ -#define ETH_MACHTLR_HTL ((uint32_t)0xFFFFFFFF) /* Hash table low */ - -/* Bit definition for Ethernet MAC MII Address Register */ -#define ETH_MACMIIAR_PA ((uint32_t)0x0000F800) /* Physical layer address */ -#define ETH_MACMIIAR_MR ((uint32_t)0x000007C0) /* MII register in the selected PHY */ -#define ETH_MACMIIAR_CR ((uint32_t)0x0000001C) /* CR clock range: 6 cases */ - #define ETH_MACMIIAR_CR_Div42 ((uint32_t)0x00000000) /* HCLK:60-72 MHz; MDC clock= HCLK/42 */ - #define ETH_MACMIIAR_CR_Div16 ((uint32_t)0x00000008) /* HCLK:20-35 MHz; MDC clock= HCLK/16 */ - #define ETH_MACMIIAR_CR_Div26 ((uint32_t)0x0000000C) /* HCLK:35-60 MHz; MDC clock= HCLK/26 */ -#define ETH_MACMIIAR_MW ((uint32_t)0x00000002) /* MII write */ -#define ETH_MACMIIAR_MB ((uint32_t)0x00000001) /* MII busy */ - -/* Bit definition for Ethernet MAC MII Data Register */ -#define ETH_MACMIIDR_MD ((uint32_t)0x0000FFFF) /* MII data: read/write data from/to PHY */ - -/* Bit definition for Ethernet MAC Flow Control Register */ -#define ETH_MACFCR_PT ((uint32_t)0xFFFF0000) /* Pause time */ -#define ETH_MACFCR_ZQPD ((uint32_t)0x00000080) /* Zero-quanta pause disable */ -#define ETH_MACFCR_PLT ((uint32_t)0x00000030) /* Pause low threshold: 4 cases */ - #define ETH_MACFCR_PLT_Minus4 ((uint32_t)0x00000000) /* Pause time minus 4 slot times */ - #define ETH_MACFCR_PLT_Minus28 ((uint32_t)0x00000010) /* Pause time minus 28 slot times */ - #define ETH_MACFCR_PLT_Minus144 ((uint32_t)0x00000020) /* Pause time minus 144 slot times */ - #define ETH_MACFCR_PLT_Minus256 ((uint32_t)0x00000030) /* Pause time minus 256 slot times */ -#define ETH_MACFCR_UPFD ((uint32_t)0x00000008) /* Unicast pause frame detect */ -#define ETH_MACFCR_RFCE ((uint32_t)0x00000004) /* Receive flow control enable */ -#define ETH_MACFCR_TFCE ((uint32_t)0x00000002) /* Transmit flow control enable */ -#define ETH_MACFCR_FCBBPA ((uint32_t)0x00000001) /* Flow control busy/backpressure activate */ - -/* Bit definition for Ethernet MAC VLAN Tag Register */ -#define ETH_MACVLANTR_VLANTC ((uint32_t)0x00010000) /* 12-bit VLAN tag comparison */ -#define ETH_MACVLANTR_VLANTI ((uint32_t)0x0000FFFF) /* VLAN tag identifier (for receive frames) */ - -/* Bit definition for Ethernet MAC Remote Wake-UpFrame Filter Register */ -#define ETH_MACRWUFFR_D ((uint32_t)0xFFFFFFFF) /* Wake-up frame filter register data */ -/* Eight sequential Writes to this address (offset 0x28) will write all Wake-UpFrame Filter Registers. - Eight sequential Reads from this address (offset 0x28) will read all Wake-UpFrame Filter Registers. */ -/* Wake-UpFrame Filter Reg0 : Filter 0 Byte Mask - Wake-UpFrame Filter Reg1 : Filter 1 Byte Mask - Wake-UpFrame Filter Reg2 : Filter 2 Byte Mask - Wake-UpFrame Filter Reg3 : Filter 3 Byte Mask - Wake-UpFrame Filter Reg4 : RSVD - Filter3 Command - RSVD - Filter2 Command - - RSVD - Filter1 Command - RSVD - Filter0 Command - Wake-UpFrame Filter Re5 : Filter3 Offset - Filter2 Offset - Filter1 Offset - Filter0 Offset - Wake-UpFrame Filter Re6 : Filter1 CRC16 - Filter0 CRC16 - Wake-UpFrame Filter Re7 : Filter3 CRC16 - Filter2 CRC16 */ - -/* Bit definition for Ethernet MAC PMT Control and Status Register */ -#define ETH_MACPMTCSR_WFFRPR ((uint32_t)0x80000000) /* Wake-Up Frame Filter Register Pointer Reset */ -#define ETH_MACPMTCSR_GU ((uint32_t)0x00000200) /* Global Unicast */ -#define ETH_MACPMTCSR_WFR ((uint32_t)0x00000040) /* Wake-Up Frame Received */ -#define ETH_MACPMTCSR_MPR ((uint32_t)0x00000020) /* Magic Packet Received */ -#define ETH_MACPMTCSR_WFE ((uint32_t)0x00000004) /* Wake-Up Frame Enable */ -#define ETH_MACPMTCSR_MPE ((uint32_t)0x00000002) /* Magic Packet Enable */ -#define ETH_MACPMTCSR_PD ((uint32_t)0x00000001) /* Power Down */ - -/* Bit definition for Ethernet MAC Status Register */ -#define ETH_MACSR_TSTS ((uint32_t)0x00000200) /* Time stamp trigger status */ -#define ETH_MACSR_MMCTS ((uint32_t)0x00000040) /* MMC transmit status */ -#define ETH_MACSR_MMMCRS ((uint32_t)0x00000020) /* MMC receive status */ -#define ETH_MACSR_MMCS ((uint32_t)0x00000010) /* MMC status */ -#define ETH_MACSR_PMTS ((uint32_t)0x00000008) /* PMT status */ - -/* Bit definition for Ethernet MAC Interrupt Mask Register */ -#define ETH_MACIMR_TSTIM ((uint32_t)0x00000200) /* Time stamp trigger interrupt mask */ -#define ETH_MACIMR_PMTIM ((uint32_t)0x00000008) /* PMT interrupt mask */ - -/* Bit definition for Ethernet MAC Address0 High Register */ -#define ETH_MACA0HR_MACA0H ((uint32_t)0x0000FFFF) /* MAC address0 high */ - -/* Bit definition for Ethernet MAC Address0 Low Register */ -#define ETH_MACA0LR_MACA0L ((uint32_t)0xFFFFFFFF) /* MAC address0 low */ - -/* Bit definition for Ethernet MAC Address1 High Register */ -#define ETH_MACA1HR_AE ((uint32_t)0x80000000) /* Address enable */ -#define ETH_MACA1HR_SA ((uint32_t)0x40000000) /* Source address */ -#define ETH_MACA1HR_MBC ((uint32_t)0x3F000000) /* Mask byte control: bits to mask for comparison of the MAC Address bytes */ - #define ETH_MACA1HR_MBC_HBits15_8 ((uint32_t)0x20000000) /* Mask MAC Address high reg bits [15:8] */ - #define ETH_MACA1HR_MBC_HBits7_0 ((uint32_t)0x10000000) /* Mask MAC Address high reg bits [7:0] */ - #define ETH_MACA1HR_MBC_LBits31_24 ((uint32_t)0x08000000) /* Mask MAC Address low reg bits [31:24] */ - #define ETH_MACA1HR_MBC_LBits23_16 ((uint32_t)0x04000000) /* Mask MAC Address low reg bits [23:16] */ - #define ETH_MACA1HR_MBC_LBits15_8 ((uint32_t)0x02000000) /* Mask MAC Address low reg bits [15:8] */ - #define ETH_MACA1HR_MBC_LBits7_0 ((uint32_t)0x01000000) /* Mask MAC Address low reg bits [7:0] */ -#define ETH_MACA1HR_MACA1H ((uint32_t)0x0000FFFF) /* MAC address1 high */ - -/* Bit definition for Ethernet MAC Address1 Low Register */ -#define ETH_MACA1LR_MACA1L ((uint32_t)0xFFFFFFFF) /* MAC address1 low */ - -/* Bit definition for Ethernet MAC Address2 High Register */ -#define ETH_MACA2HR_AE ((uint32_t)0x80000000) /* Address enable */ -#define ETH_MACA2HR_SA ((uint32_t)0x40000000) /* Source address */ -#define ETH_MACA2HR_MBC ((uint32_t)0x3F000000) /* Mask byte control */ - #define ETH_MACA2HR_MBC_HBits15_8 ((uint32_t)0x20000000) /* Mask MAC Address high reg bits [15:8] */ - #define ETH_MACA2HR_MBC_HBits7_0 ((uint32_t)0x10000000) /* Mask MAC Address high reg bits [7:0] */ - #define ETH_MACA2HR_MBC_LBits31_24 ((uint32_t)0x08000000) /* Mask MAC Address low reg bits [31:24] */ - #define ETH_MACA2HR_MBC_LBits23_16 ((uint32_t)0x04000000) /* Mask MAC Address low reg bits [23:16] */ - #define ETH_MACA2HR_MBC_LBits15_8 ((uint32_t)0x02000000) /* Mask MAC Address low reg bits [15:8] */ - #define ETH_MACA2HR_MBC_LBits7_0 ((uint32_t)0x01000000) /* Mask MAC Address low reg bits [70] */ -#define ETH_MACA2HR_MACA2H ((uint32_t)0x0000FFFF) /* MAC address1 high */ - -/* Bit definition for Ethernet MAC Address2 Low Register */ -#define ETH_MACA2LR_MACA2L ((uint32_t)0xFFFFFFFF) /* MAC address2 low */ - -/* Bit definition for Ethernet MAC Address3 High Register */ -#define ETH_MACA3HR_AE ((uint32_t)0x80000000) /* Address enable */ -#define ETH_MACA3HR_SA ((uint32_t)0x40000000) /* Source address */ -#define ETH_MACA3HR_MBC ((uint32_t)0x3F000000) /* Mask byte control */ - #define ETH_MACA3HR_MBC_HBits15_8 ((uint32_t)0x20000000) /* Mask MAC Address high reg bits [15:8] */ - #define ETH_MACA3HR_MBC_HBits7_0 ((uint32_t)0x10000000) /* Mask MAC Address high reg bits [7:0] */ - #define ETH_MACA3HR_MBC_LBits31_24 ((uint32_t)0x08000000) /* Mask MAC Address low reg bits [31:24] */ - #define ETH_MACA3HR_MBC_LBits23_16 ((uint32_t)0x04000000) /* Mask MAC Address low reg bits [23:16] */ - #define ETH_MACA3HR_MBC_LBits15_8 ((uint32_t)0x02000000) /* Mask MAC Address low reg bits [15:8] */ - #define ETH_MACA3HR_MBC_LBits7_0 ((uint32_t)0x01000000) /* Mask MAC Address low reg bits [70] */ -#define ETH_MACA3HR_MACA3H ((uint32_t)0x0000FFFF) /* MAC address3 high */ - -/* Bit definition for Ethernet MAC Address3 Low Register */ -#define ETH_MACA3LR_MACA3L ((uint32_t)0xFFFFFFFF) /* MAC address3 low */ - -/******************************************************************************/ -/* Ethernet MMC Registers bits definition */ -/******************************************************************************/ - -/* Bit definition for Ethernet MMC Contol Register */ -#define ETH_MMCCR_MCF ((uint32_t)0x00000008) /* MMC Counter Freeze */ -#define ETH_MMCCR_ROR ((uint32_t)0x00000004) /* Reset on Read */ -#define ETH_MMCCR_CSR ((uint32_t)0x00000002) /* Counter Stop Rollover */ -#define ETH_MMCCR_CR ((uint32_t)0x00000001) /* Counters Reset */ - -/* Bit definition for Ethernet MMC Receive Interrupt Register */ -#define ETH_MMCRIR_RGUFS ((uint32_t)0x00020000) /* Set when Rx good unicast frames counter reaches half the maximum value */ -#define ETH_MMCRIR_RFAES ((uint32_t)0x00000040) /* Set when Rx alignment error counter reaches half the maximum value */ -#define ETH_MMCRIR_RFCES ((uint32_t)0x00000020) /* Set when Rx crc error counter reaches half the maximum value */ - -/* Bit definition for Ethernet MMC Transmit Interrupt Register */ -#define ETH_MMCTIR_TGFS ((uint32_t)0x00200000) /* Set when Tx good frame count counter reaches half the maximum value */ -#define ETH_MMCTIR_TGFMSCS ((uint32_t)0x00008000) /* Set when Tx good multi col counter reaches half the maximum value */ -#define ETH_MMCTIR_TGFSCS ((uint32_t)0x00004000) /* Set when Tx good single col counter reaches half the maximum value */ - -/* Bit definition for Ethernet MMC Receive Interrupt Mask Register */ -#define ETH_MMCRIMR_RGUFM ((uint32_t)0x00020000) /* Mask the interrupt when Rx good unicast frames counter reaches half the maximum value */ -#define ETH_MMCRIMR_RFAEM ((uint32_t)0x00000040) /* Mask the interrupt when when Rx alignment error counter reaches half the maximum value */ -#define ETH_MMCRIMR_RFCEM ((uint32_t)0x00000020) /* Mask the interrupt when Rx crc error counter reaches half the maximum value */ - -/* Bit definition for Ethernet MMC Transmit Interrupt Mask Register */ -#define ETH_MMCTIMR_TGFM ((uint32_t)0x00200000) /* Mask the interrupt when Tx good frame count counter reaches half the maximum value */ -#define ETH_MMCTIMR_TGFMSCM ((uint32_t)0x00008000) /* Mask the interrupt when Tx good multi col counter reaches half the maximum value */ -#define ETH_MMCTIMR_TGFSCM ((uint32_t)0x00004000) /* Mask the interrupt when Tx good single col counter reaches half the maximum value */ - -/* Bit definition for Ethernet MMC Transmitted Good Frames after Single Collision Counter Register */ -#define ETH_MMCTGFSCCR_TGFSCC ((uint32_t)0xFFFFFFFF) /* Number of successfully transmitted frames after a single collision in Half-duplex mode. */ - -/* Bit definition for Ethernet MMC Transmitted Good Frames after More than a Single Collision Counter Register */ -#define ETH_MMCTGFMSCCR_TGFMSCC ((uint32_t)0xFFFFFFFF) /* Number of successfully transmitted frames after more than a single collision in Half-duplex mode. */ - -/* Bit definition for Ethernet MMC Transmitted Good Frames Counter Register */ -#define ETH_MMCTGFCR_TGFC ((uint32_t)0xFFFFFFFF) /* Number of good frames transmitted. */ - -/* Bit definition for Ethernet MMC Received Frames with CRC Error Counter Register */ -#define ETH_MMCRFCECR_RFCEC ((uint32_t)0xFFFFFFFF) /* Number of frames received with CRC error. */ - -/* Bit definition for Ethernet MMC Received Frames with Alignement Error Counter Register */ -#define ETH_MMCRFAECR_RFAEC ((uint32_t)0xFFFFFFFF) /* Number of frames received with alignment (dribble) error */ - -/* Bit definition for Ethernet MMC Received Good Unicast Frames Counter Register */ -#define ETH_MMCRGUFCR_RGUFC ((uint32_t)0xFFFFFFFF) /* Number of good unicast frames received. */ - -/******************************************************************************/ -/* Ethernet PTP Registers bits definition */ -/******************************************************************************/ - -/* Bit definition for Ethernet PTP Time Stamp Contol Register */ -#define ETH_PTPTSCR_TSARU ((uint32_t)0x00000020) /* Addend register update */ -#define ETH_PTPTSCR_TSITE ((uint32_t)0x00000010) /* Time stamp interrupt trigger enable */ -#define ETH_PTPTSCR_TSSTU ((uint32_t)0x00000008) /* Time stamp update */ -#define ETH_PTPTSCR_TSSTI ((uint32_t)0x00000004) /* Time stamp initialize */ -#define ETH_PTPTSCR_TSFCU ((uint32_t)0x00000002) /* Time stamp fine or coarse update */ -#define ETH_PTPTSCR_TSE ((uint32_t)0x00000001) /* Time stamp enable */ - -/* Bit definition for Ethernet PTP Sub-Second Increment Register */ -#define ETH_PTPSSIR_STSSI ((uint32_t)0x000000FF) /* System time Sub-second increment value */ - -/* Bit definition for Ethernet PTP Time Stamp High Register */ -#define ETH_PTPTSHR_STS ((uint32_t)0xFFFFFFFF) /* System Time second */ - -/* Bit definition for Ethernet PTP Time Stamp Low Register */ -#define ETH_PTPTSLR_STPNS ((uint32_t)0x80000000) /* System Time Positive or negative time */ -#define ETH_PTPTSLR_STSS ((uint32_t)0x7FFFFFFF) /* System Time sub-seconds */ - -/* Bit definition for Ethernet PTP Time Stamp High Update Register */ -#define ETH_PTPTSHUR_TSUS ((uint32_t)0xFFFFFFFF) /* Time stamp update seconds */ - -/* Bit definition for Ethernet PTP Time Stamp Low Update Register */ -#define ETH_PTPTSLUR_TSUPNS ((uint32_t)0x80000000) /* Time stamp update Positive or negative time */ -#define ETH_PTPTSLUR_TSUSS ((uint32_t)0x7FFFFFFF) /* Time stamp update sub-seconds */ - -/* Bit definition for Ethernet PTP Time Stamp Addend Register */ -#define ETH_PTPTSAR_TSA ((uint32_t)0xFFFFFFFF) /* Time stamp addend */ - -/* Bit definition for Ethernet PTP Target Time High Register */ -#define ETH_PTPTTHR_TTSH ((uint32_t)0xFFFFFFFF) /* Target time stamp high */ - -/* Bit definition for Ethernet PTP Target Time Low Register */ -#define ETH_PTPTTLR_TTSL ((uint32_t)0xFFFFFFFF) /* Target time stamp low */ - -/******************************************************************************/ -/* Ethernet DMA Registers bits definition */ -/******************************************************************************/ - -/* Bit definition for Ethernet DMA Bus Mode Register */ -#define ETH_DMABMR_AAB ((uint32_t)0x02000000) /* Address-Aligned beats */ -#define ETH_DMABMR_FPM ((uint32_t)0x01000000) /* 4xPBL mode */ -#define ETH_DMABMR_USP ((uint32_t)0x00800000) /* Use separate PBL */ -#define ETH_DMABMR_RDP ((uint32_t)0x007E0000) /* RxDMA PBL */ - #define ETH_DMABMR_RDP_1Beat ((uint32_t)0x00020000) /* maximum number of beats to be transferred in one RxDMA transaction is 1 */ - #define ETH_DMABMR_RDP_2Beat ((uint32_t)0x00040000) /* maximum number of beats to be transferred in one RxDMA transaction is 2 */ - #define ETH_DMABMR_RDP_4Beat ((uint32_t)0x00080000) /* maximum number of beats to be transferred in one RxDMA transaction is 4 */ - #define ETH_DMABMR_RDP_8Beat ((uint32_t)0x00100000) /* maximum number of beats to be transferred in one RxDMA transaction is 8 */ - #define ETH_DMABMR_RDP_16Beat ((uint32_t)0x00200000) /* maximum number of beats to be transferred in one RxDMA transaction is 16 */ - #define ETH_DMABMR_RDP_32Beat ((uint32_t)0x00400000) /* maximum number of beats to be transferred in one RxDMA transaction is 32 */ - #define ETH_DMABMR_RDP_4xPBL_4Beat ((uint32_t)0x01020000) /* maximum number of beats to be transferred in one RxDMA transaction is 4 */ - #define ETH_DMABMR_RDP_4xPBL_8Beat ((uint32_t)0x01040000) /* maximum number of beats to be transferred in one RxDMA transaction is 8 */ - #define ETH_DMABMR_RDP_4xPBL_16Beat ((uint32_t)0x01080000) /* maximum number of beats to be transferred in one RxDMA transaction is 16 */ - #define ETH_DMABMR_RDP_4xPBL_32Beat ((uint32_t)0x01100000) /* maximum number of beats to be transferred in one RxDMA transaction is 32 */ - #define ETH_DMABMR_RDP_4xPBL_64Beat ((uint32_t)0x01200000) /* maximum number of beats to be transferred in one RxDMA transaction is 64 */ - #define ETH_DMABMR_RDP_4xPBL_128Beat ((uint32_t)0x01400000) /* maximum number of beats to be transferred in one RxDMA transaction is 128 */ -#define ETH_DMABMR_FB ((uint32_t)0x00010000) /* Fixed Burst */ -#define ETH_DMABMR_RTPR ((uint32_t)0x0000C000) /* Rx Tx priority ratio */ - #define ETH_DMABMR_RTPR_1_1 ((uint32_t)0x00000000) /* Rx Tx priority ratio */ - #define ETH_DMABMR_RTPR_2_1 ((uint32_t)0x00004000) /* Rx Tx priority ratio */ - #define ETH_DMABMR_RTPR_3_1 ((uint32_t)0x00008000) /* Rx Tx priority ratio */ - #define ETH_DMABMR_RTPR_4_1 ((uint32_t)0x0000C000) /* Rx Tx priority ratio */ -#define ETH_DMABMR_PBL ((uint32_t)0x00003F00) /* Programmable burst length */ - #define ETH_DMABMR_PBL_1Beat ((uint32_t)0x00000100) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 1 */ - #define ETH_DMABMR_PBL_2Beat ((uint32_t)0x00000200) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 2 */ - #define ETH_DMABMR_PBL_4Beat ((uint32_t)0x00000400) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */ - #define ETH_DMABMR_PBL_8Beat ((uint32_t)0x00000800) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */ - #define ETH_DMABMR_PBL_16Beat ((uint32_t)0x00001000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */ - #define ETH_DMABMR_PBL_32Beat ((uint32_t)0x00002000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */ - #define ETH_DMABMR_PBL_4xPBL_4Beat ((uint32_t)0x01000100) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */ - #define ETH_DMABMR_PBL_4xPBL_8Beat ((uint32_t)0x01000200) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */ - #define ETH_DMABMR_PBL_4xPBL_16Beat ((uint32_t)0x01000400) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */ - #define ETH_DMABMR_PBL_4xPBL_32Beat ((uint32_t)0x01000800) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */ - #define ETH_DMABMR_PBL_4xPBL_64Beat ((uint32_t)0x01001000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 64 */ - #define ETH_DMABMR_PBL_4xPBL_128Beat ((uint32_t)0x01002000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 128 */ -#define ETH_DMABMR_DSL ((uint32_t)0x0000007C) /* Descriptor Skip Length */ -#define ETH_DMABMR_DA ((uint32_t)0x00000002) /* DMA arbitration scheme */ -#define ETH_DMABMR_SR ((uint32_t)0x00000001) /* Software reset */ - -/* Bit definition for Ethernet DMA Transmit Poll Demand Register */ -#define ETH_DMATPDR_TPD ((uint32_t)0xFFFFFFFF) /* Transmit poll demand */ - -/* Bit definition for Ethernet DMA Receive Poll Demand Register */ -#define ETH_DMARPDR_RPD ((uint32_t)0xFFFFFFFF) /* Receive poll demand */ - -/* Bit definition for Ethernet DMA Receive Descriptor List Address Register */ -#define ETH_DMARDLAR_SRL ((uint32_t)0xFFFFFFFF) /* Start of receive list */ - -/* Bit definition for Ethernet DMA Transmit Descriptor List Address Register */ -#define ETH_DMATDLAR_STL ((uint32_t)0xFFFFFFFF) /* Start of transmit list */ - -/* Bit definition for Ethernet DMA Status Register */ -#define ETH_DMASR_TSTS ((uint32_t)0x20000000) /* Time-stamp trigger status */ -#define ETH_DMASR_PMTS ((uint32_t)0x10000000) /* PMT status */ -#define ETH_DMASR_MMCS ((uint32_t)0x08000000) /* MMC status */ -#define ETH_DMASR_EBS ((uint32_t)0x03800000) /* Error bits status */ - /* combination with EBS[2:0] for GetFlagStatus function */ - #define ETH_DMASR_EBS_DescAccess ((uint32_t)0x02000000) /* Error bits 0-data buffer, 1-desc. access */ - #define ETH_DMASR_EBS_ReadTransf ((uint32_t)0x01000000) /* Error bits 0-write trnsf, 1-read transfr */ - #define ETH_DMASR_EBS_DataTransfTx ((uint32_t)0x00800000) /* Error bits 0-Rx DMA, 1-Tx DMA */ -#define ETH_DMASR_TPS ((uint32_t)0x00700000) /* Transmit process state */ - #define ETH_DMASR_TPS_Stopped ((uint32_t)0x00000000) /* Stopped - Reset or Stop Tx Command issued */ - #define ETH_DMASR_TPS_Fetching ((uint32_t)0x00100000) /* Running - fetching the Tx descriptor */ - #define ETH_DMASR_TPS_Waiting ((uint32_t)0x00200000) /* Running - waiting for status */ - #define ETH_DMASR_TPS_Reading ((uint32_t)0x00300000) /* Running - reading the data from host memory */ - #define ETH_DMASR_TPS_Suspended ((uint32_t)0x00600000) /* Suspended - Tx Descriptor unavailabe */ - #define ETH_DMASR_TPS_Closing ((uint32_t)0x00700000) /* Running - closing Rx descriptor */ -#define ETH_DMASR_RPS ((uint32_t)0x000E0000) /* Receive process state */ - #define ETH_DMASR_RPS_Stopped ((uint32_t)0x00000000) /* Stopped - Reset or Stop Rx Command issued */ - #define ETH_DMASR_RPS_Fetching ((uint32_t)0x00020000) /* Running - fetching the Rx descriptor */ - #define ETH_DMASR_RPS_Waiting ((uint32_t)0x00060000) /* Running - waiting for packet */ - #define ETH_DMASR_RPS_Suspended ((uint32_t)0x00080000) /* Suspended - Rx Descriptor unavailable */ - #define ETH_DMASR_RPS_Closing ((uint32_t)0x000A0000) /* Running - closing descriptor */ - #define ETH_DMASR_RPS_Queuing ((uint32_t)0x000E0000) /* Running - queuing the recieve frame into host memory */ -#define ETH_DMASR_NIS ((uint32_t)0x00010000) /* Normal interrupt summary */ -#define ETH_DMASR_AIS ((uint32_t)0x00008000) /* Abnormal interrupt summary */ -#define ETH_DMASR_ERS ((uint32_t)0x00004000) /* Early receive status */ -#define ETH_DMASR_FBES ((uint32_t)0x00002000) /* Fatal bus error status */ -#define ETH_DMASR_ETS ((uint32_t)0x00000400) /* Early transmit status */ -#define ETH_DMASR_RWTS ((uint32_t)0x00000200) /* Receive watchdog timeout status */ -#define ETH_DMASR_RPSS ((uint32_t)0x00000100) /* Receive process stopped status */ -#define ETH_DMASR_RBUS ((uint32_t)0x00000080) /* Receive buffer unavailable status */ -#define ETH_DMASR_RS ((uint32_t)0x00000040) /* Receive status */ -#define ETH_DMASR_TUS ((uint32_t)0x00000020) /* Transmit underflow status */ -#define ETH_DMASR_ROS ((uint32_t)0x00000010) /* Receive overflow status */ -#define ETH_DMASR_TJTS ((uint32_t)0x00000008) /* Transmit jabber timeout status */ -#define ETH_DMASR_TBUS ((uint32_t)0x00000004) /* Transmit buffer unavailable status */ -#define ETH_DMASR_TPSS ((uint32_t)0x00000002) /* Transmit process stopped status */ -#define ETH_DMASR_TS ((uint32_t)0x00000001) /* Transmit status */ - -/* Bit definition for Ethernet DMA Operation Mode Register */ -#define ETH_DMAOMR_DTCEFD ((uint32_t)0x04000000) /* Disable Dropping of TCP/IP checksum error frames */ -#define ETH_DMAOMR_RSF ((uint32_t)0x02000000) /* Receive store and forward */ -#define ETH_DMAOMR_DFRF ((uint32_t)0x01000000) /* Disable flushing of received frames */ -#define ETH_DMAOMR_TSF ((uint32_t)0x00200000) /* Transmit store and forward */ -#define ETH_DMAOMR_FTF ((uint32_t)0x00100000) /* Flush transmit FIFO */ -#define ETH_DMAOMR_TTC ((uint32_t)0x0001C000) /* Transmit threshold control */ - #define ETH_DMAOMR_TTC_64Bytes ((uint32_t)0x00000000) /* threshold level of the MTL Transmit FIFO is 64 Bytes */ - #define ETH_DMAOMR_TTC_128Bytes ((uint32_t)0x00004000) /* threshold level of the MTL Transmit FIFO is 128 Bytes */ - #define ETH_DMAOMR_TTC_192Bytes ((uint32_t)0x00008000) /* threshold level of the MTL Transmit FIFO is 192 Bytes */ - #define ETH_DMAOMR_TTC_256Bytes ((uint32_t)0x0000C000) /* threshold level of the MTL Transmit FIFO is 256 Bytes */ - #define ETH_DMAOMR_TTC_40Bytes ((uint32_t)0x00010000) /* threshold level of the MTL Transmit FIFO is 40 Bytes */ - #define ETH_DMAOMR_TTC_32Bytes ((uint32_t)0x00014000) /* threshold level of the MTL Transmit FIFO is 32 Bytes */ - #define ETH_DMAOMR_TTC_24Bytes ((uint32_t)0x00018000) /* threshold level of the MTL Transmit FIFO is 24 Bytes */ - #define ETH_DMAOMR_TTC_16Bytes ((uint32_t)0x0001C000) /* threshold level of the MTL Transmit FIFO is 16 Bytes */ -#define ETH_DMAOMR_ST ((uint32_t)0x00002000) /* Start/stop transmission command */ -#define ETH_DMAOMR_FEF ((uint32_t)0x00000080) /* Forward error frames */ -#define ETH_DMAOMR_FUGF ((uint32_t)0x00000040) /* Forward undersized good frames */ -#define ETH_DMAOMR_RTC ((uint32_t)0x00000018) /* receive threshold control */ - #define ETH_DMAOMR_RTC_64Bytes ((uint32_t)0x00000000) /* threshold level of the MTL Receive FIFO is 64 Bytes */ - #define ETH_DMAOMR_RTC_32Bytes ((uint32_t)0x00000008) /* threshold level of the MTL Receive FIFO is 32 Bytes */ - #define ETH_DMAOMR_RTC_96Bytes ((uint32_t)0x00000010) /* threshold level of the MTL Receive FIFO is 96 Bytes */ - #define ETH_DMAOMR_RTC_128Bytes ((uint32_t)0x00000018) /* threshold level of the MTL Receive FIFO is 128 Bytes */ -#define ETH_DMAOMR_OSF ((uint32_t)0x00000004) /* operate on second frame */ -#define ETH_DMAOMR_SR ((uint32_t)0x00000002) /* Start/stop receive */ - -/* Bit definition for Ethernet DMA Interrupt Enable Register */ -#define ETH_DMAIER_NISE ((uint32_t)0x00010000) /* Normal interrupt summary enable */ -#define ETH_DMAIER_AISE ((uint32_t)0x00008000) /* Abnormal interrupt summary enable */ -#define ETH_DMAIER_ERIE ((uint32_t)0x00004000) /* Early receive interrupt enable */ -#define ETH_DMAIER_FBEIE ((uint32_t)0x00002000) /* Fatal bus error interrupt enable */ -#define ETH_DMAIER_ETIE ((uint32_t)0x00000400) /* Early transmit interrupt enable */ -#define ETH_DMAIER_RWTIE ((uint32_t)0x00000200) /* Receive watchdog timeout interrupt enable */ -#define ETH_DMAIER_RPSIE ((uint32_t)0x00000100) /* Receive process stopped interrupt enable */ -#define ETH_DMAIER_RBUIE ((uint32_t)0x00000080) /* Receive buffer unavailable interrupt enable */ -#define ETH_DMAIER_RIE ((uint32_t)0x00000040) /* Receive interrupt enable */ -#define ETH_DMAIER_TUIE ((uint32_t)0x00000020) /* Transmit Underflow interrupt enable */ -#define ETH_DMAIER_ROIE ((uint32_t)0x00000010) /* Receive Overflow interrupt enable */ -#define ETH_DMAIER_TJTIE ((uint32_t)0x00000008) /* Transmit jabber timeout interrupt enable */ -#define ETH_DMAIER_TBUIE ((uint32_t)0x00000004) /* Transmit buffer unavailable interrupt enable */ -#define ETH_DMAIER_TPSIE ((uint32_t)0x00000002) /* Transmit process stopped interrupt enable */ -#define ETH_DMAIER_TIE ((uint32_t)0x00000001) /* Transmit interrupt enable */ - -/* Bit definition for Ethernet DMA Missed Frame and Buffer Overflow Counter Register */ -#define ETH_DMAMFBOCR_OFOC ((uint32_t)0x10000000) /* Overflow bit for FIFO overflow counter */ -#define ETH_DMAMFBOCR_MFA ((uint32_t)0x0FFE0000) /* Number of frames missed by the application */ -#define ETH_DMAMFBOCR_OMFC ((uint32_t)0x00010000) /* Overflow bit for missed frame counter */ -#define ETH_DMAMFBOCR_MFC ((uint32_t)0x0000FFFF) /* Number of frames missed by the controller */ - -/* Bit definition for Ethernet DMA Current Host Transmit Descriptor Register */ -#define ETH_DMACHTDR_HTDAP ((uint32_t)0xFFFFFFFF) /* Host transmit descriptor address pointer */ - -/* Bit definition for Ethernet DMA Current Host Receive Descriptor Register */ -#define ETH_DMACHRDR_HRDAP ((uint32_t)0xFFFFFFFF) /* Host receive descriptor address pointer */ - -/* Bit definition for Ethernet DMA Current Host Transmit Buffer Address Register */ -#define ETH_DMACHTBAR_HTBAP ((uint32_t)0xFFFFFFFF) /* Host transmit buffer address pointer */ - -/* Bit definition for Ethernet DMA Current Host Receive Buffer Address Register */ -#define ETH_DMACHRBAR_HRBAP ((uint32_t)0xFFFFFFFF) /* Host receive buffer address pointer */ -#endif /* STM32F10X_CL */ - -/** - * @} - */ - - /** - * @} - */ - -#ifdef USE_STDPERIPH_DRIVER - #include "stm32f10x_conf.h" -#endif - -/** @addtogroup Exported_macro - * @{ - */ - -#define SET_BIT(REG, BIT) ((REG) |= (BIT)) - -#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT)) - -#define READ_BIT(REG, BIT) ((REG) & (BIT)) - -#define CLEAR_REG(REG) ((REG) = (0x0)) - -#define WRITE_REG(REG, VAL) ((REG) = (VAL)) - -#define READ_REG(REG) ((REG)) - -#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK))) - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_H */ - -/** - * @} - */ - - /** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c deleted file mode 100644 index 6fb4579e..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c +++ /dev/null @@ -1,1094 +0,0 @@ -/** - ****************************************************************************** - * @file system_stm32f10x.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. - * - * 1. This file provides two functions and one global variable to be called from - * user application: - * - SystemInit(): Setups the system clock (System clock source, PLL Multiplier - * factors, AHB/APBx prescalers and Flash settings). - * This function is called at startup just after reset and - * before branch to main program. This call is made inside - * the "startup_stm32f10x_xx.s" file. - * - * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used - * by the user application to setup the SysTick - * timer or configure other parameters. - * - * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must - * be called whenever the core clock is changed - * during program execution. - * - * 2. After each device reset the HSI (8 MHz) is used as system clock source. - * Then SystemInit() function is called, in "startup_stm32f10x_xx.s" file, to - * configure the system clock before to branch to main program. - * - * 3. If the system clock source selected by user fails to startup, the SystemInit() - * function will do nothing and HSI still used as system clock source. User can - * add some code to deal with this issue inside the SetSysClock() function. - * - * 4. The default value of HSE crystal is set to 8 MHz (or 25 MHz, depedning on - * the product used), refer to "HSE_VALUE" define in "stm32f10x.h" file. - * When HSE is used as system clock source, directly or through PLL, and you - * are using different crystal you have to adapt the HSE value to your own - * configuration. - * - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/** @addtogroup CMSIS - * @{ - */ - -/** @addtogroup stm32f10x_system - * @{ - */ - -/** @addtogroup STM32F10x_System_Private_Includes - * @{ - */ - -#include "stm32f10x.h" - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_Defines - * @{ - */ - -/*!< Uncomment the line corresponding to the desired System clock (SYSCLK) - frequency (after reset the HSI is used as SYSCLK source) - - IMPORTANT NOTE: - ============== - 1. After each device reset the HSI is used as System clock source. - - 2. Please make sure that the selected System clock doesn't exceed your device's - maximum frequency. - - 3. If none of the define below is enabled, the HSI is used as System clock - source. - - 4. The System clock configuration functions provided within this file assume that: - - For Low, Medium and High density Value line devices an external 8MHz - crystal is used to drive the System clock. - - For Low, Medium and High density devices an external 8MHz crystal is - used to drive the System clock. - - For Connectivity line devices an external 25MHz crystal is used to drive - the System clock. - If you are using different crystal you have to adapt those functions accordingly. - */ - -#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) -/* #define SYSCLK_FREQ_HSE HSE_VALUE */ - #define SYSCLK_FREQ_24MHz 24000000 -#else -/* #define SYSCLK_FREQ_HSE HSE_VALUE */ -/* #define SYSCLK_FREQ_24MHz 24000000 */ -/* #define SYSCLK_FREQ_36MHz 36000000 */ -/* #define SYSCLK_FREQ_48MHz 48000000 */ -/* #define SYSCLK_FREQ_56MHz 56000000 */ -#define SYSCLK_FREQ_72MHz 72000000 -#endif - -/*!< Uncomment the following line if you need to use external SRAM mounted - on STM3210E-EVAL board (STM32 High density and XL-density devices) or on - STM32100E-EVAL board (STM32 High-density value line devices) as data memory */ -#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL) -/* #define DATA_IN_ExtSRAM */ -#endif - -/*!< Uncomment the following line if you need to relocate your vector Table in - Internal SRAM. */ -/* #define VECT_TAB_SRAM */ -#define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field. - This value must be a multiple of 0x200. */ - - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_Variables - * @{ - */ - -/******************************************************************************* -* Clock Definitions -*******************************************************************************/ -#ifdef SYSCLK_FREQ_HSE - uint32_t SystemCoreClock = SYSCLK_FREQ_HSE; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_24MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_24MHz; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_36MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_36MHz; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_48MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_48MHz; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_56MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_56MHz; /*!< System Clock Frequency (Core Clock) */ -#elif defined SYSCLK_FREQ_72MHz - uint32_t SystemCoreClock = SYSCLK_FREQ_72MHz; /*!< System Clock Frequency (Core Clock) */ -#else /*!< HSI Selected as System Clock source */ - uint32_t SystemCoreClock = HSI_VALUE; /*!< System Clock Frequency (Core Clock) */ -#endif - -__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_FunctionPrototypes - * @{ - */ - -static void SetSysClock(void); - -#ifdef SYSCLK_FREQ_HSE - static void SetSysClockToHSE(void); -#elif defined SYSCLK_FREQ_24MHz - static void SetSysClockTo24(void); -#elif defined SYSCLK_FREQ_36MHz - static void SetSysClockTo36(void); -#elif defined SYSCLK_FREQ_48MHz - static void SetSysClockTo48(void); -#elif defined SYSCLK_FREQ_56MHz - static void SetSysClockTo56(void); -#elif defined SYSCLK_FREQ_72MHz - static void SetSysClockTo72(void); -#endif - -#ifdef DATA_IN_ExtSRAM - static void SystemInit_ExtMemCtl(void); -#endif /* DATA_IN_ExtSRAM */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Private_Functions - * @{ - */ - -/** - * @brief Setup the microcontroller system - * Initialize the Embedded Flash Interface, the PLL and update the - * SystemCoreClock variable. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -void SystemInit (void) -{ - /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ - /* Set HSION bit */ - RCC->CR |= (uint32_t)0x00000001; - - /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ -#ifndef STM32F10X_CL - RCC->CFGR &= (uint32_t)0xF8FF0000; -#else - RCC->CFGR &= (uint32_t)0xF0FF0000; -#endif /* STM32F10X_CL */ - - /* Reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (uint32_t)0xFEF6FFFF; - - /* Reset HSEBYP bit */ - RCC->CR &= (uint32_t)0xFFFBFFFF; - - /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (uint32_t)0xFF80FFFF; - -#ifdef STM32F10X_CL - /* Reset PLL2ON and PLL3ON bits */ - RCC->CR &= (uint32_t)0xEBFFFFFF; - - /* Disable all interrupts and clear pending bits */ - RCC->CIR = 0x00FF0000; - - /* Reset CFGR2 register */ - RCC->CFGR2 = 0x00000000; -#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) - /* Disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - - /* Reset CFGR2 register */ - RCC->CFGR2 = 0x00000000; -#else - /* Disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; -#endif /* STM32F10X_CL */ - -#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL) - #ifdef DATA_IN_ExtSRAM - SystemInit_ExtMemCtl(); - #endif /* DATA_IN_ExtSRAM */ -#endif - - /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */ - /* Configure the Flash Latency cycles and enable prefetch buffer */ - SetSysClock(); - -#ifdef VECT_TAB_SRAM - SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ -#else - SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ -#endif -} - -/** - * @brief Update SystemCoreClock variable according to Clock Register Values. - * The SystemCoreClock variable contains the core clock (HCLK), it can - * be used by the user application to setup the SysTick timer or configure - * other parameters. - * - * @note Each time the core clock (HCLK) changes, this function must be called - * to update SystemCoreClock variable value. Otherwise, any configuration - * based on this variable will be incorrect. - * - * @note - The system frequency computed by this function is not the real - * frequency in the chip. It is calculated based on the predefined - * constant and the selected clock source: - * - * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) - * - * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) - * - * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) - * or HSI_VALUE(*) multiplied by the PLL factors. - * - * (*) HSI_VALUE is a constant defined in stm32f1xx.h file (default value - * 8 MHz) but the real value may vary depending on the variations - * in voltage and temperature. - * - * (**) HSE_VALUE is a constant defined in stm32f1xx.h file (default value - * 8 MHz or 25 MHz, depedning on the product used), user has to ensure - * that HSE_VALUE is same as the real frequency of the crystal used. - * Otherwise, this function may have wrong result. - * - * - The result of this function could be not correct when using fractional - * value for HSE crystal. - * @param None - * @retval None - */ -void SystemCoreClockUpdate (void) -{ - uint32_t tmp = 0, pllmull = 0, pllsource = 0; - -#ifdef STM32F10X_CL - uint32_t prediv1source = 0, prediv1factor = 0, prediv2factor = 0, pll2mull = 0; -#endif /* STM32F10X_CL */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) - uint32_t prediv1factor = 0; -#endif /* STM32F10X_LD_VL or STM32F10X_MD_VL or STM32F10X_HD_VL */ - - /* Get SYSCLK source -------------------------------------------------------*/ - tmp = RCC->CFGR & RCC_CFGR_SWS; - - switch (tmp) - { - case 0x00: /* HSI used as system clock */ - SystemCoreClock = HSI_VALUE; - break; - case 0x04: /* HSE used as system clock */ - SystemCoreClock = HSE_VALUE; - break; - case 0x08: /* PLL used as system clock */ - - /* Get PLL clock source and multiplication factor ----------------------*/ - pllmull = RCC->CFGR & RCC_CFGR_PLLMULL; - pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; - -#ifndef STM32F10X_CL - pllmull = ( pllmull >> 18) + 2; - - if (pllsource == 0x00) - { - /* HSI oscillator clock divided by 2 selected as PLL clock entry */ - SystemCoreClock = (HSI_VALUE >> 1) * pllmull; - } - else - { - #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) - prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1; - /* HSE oscillator clock selected as PREDIV1 clock entry */ - SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; - #else - /* HSE selected as PLL clock entry */ - if ((RCC->CFGR & RCC_CFGR_PLLXTPRE) != (uint32_t)RESET) - {/* HSE oscillator clock divided by 2 */ - SystemCoreClock = (HSE_VALUE >> 1) * pllmull; - } - else - { - SystemCoreClock = HSE_VALUE * pllmull; - } - #endif - } -#else - pllmull = pllmull >> 18; - - if (pllmull != 0x0D) - { - pllmull += 2; - } - else - { /* PLL multiplication factor = PLL input clock * 6.5 */ - pllmull = 13 / 2; - } - - if (pllsource == 0x00) - { - /* HSI oscillator clock divided by 2 selected as PLL clock entry */ - SystemCoreClock = (HSI_VALUE >> 1) * pllmull; - } - else - {/* PREDIV1 selected as PLL clock entry */ - - /* Get PREDIV1 clock source and division factor */ - prediv1source = RCC->CFGR2 & RCC_CFGR2_PREDIV1SRC; - prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1; - - if (prediv1source == 0) - { - /* HSE oscillator clock selected as PREDIV1 clock entry */ - SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; - } - else - {/* PLL2 clock selected as PREDIV1 clock entry */ - - /* Get PREDIV2 division factor and PLL2 multiplication factor */ - prediv2factor = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> 4) + 1; - pll2mull = ((RCC->CFGR2 & RCC_CFGR2_PLL2MUL) >> 8 ) + 2; - SystemCoreClock = (((HSE_VALUE / prediv2factor) * pll2mull) / prediv1factor) * pllmull; - } - } -#endif /* STM32F10X_CL */ - break; - - default: - SystemCoreClock = HSI_VALUE; - break; - } - - /* Compute HCLK clock frequency ----------------*/ - /* Get HCLK prescaler */ - tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; - /* HCLK clock frequency */ - SystemCoreClock >>= tmp; -} - -/** - * @brief Configures the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers. - * @param None - * @retval None - */ -static void SetSysClock(void) -{ -#ifdef SYSCLK_FREQ_HSE - SetSysClockToHSE(); -#elif defined SYSCLK_FREQ_24MHz - SetSysClockTo24(); -#elif defined SYSCLK_FREQ_36MHz - SetSysClockTo36(); -#elif defined SYSCLK_FREQ_48MHz - SetSysClockTo48(); -#elif defined SYSCLK_FREQ_56MHz - SetSysClockTo56(); -#elif defined SYSCLK_FREQ_72MHz - SetSysClockTo72(); -#endif - - /* If none of the define above is enabled, the HSI is used as System clock - source (default after reset) */ -} - -/** - * @brief Setup the external memory controller. Called in startup_stm32f10x.s - * before jump to __main - * @param None - * @retval None - */ -#ifdef DATA_IN_ExtSRAM -/** - * @brief Setup the external memory controller. - * Called in startup_stm32f10x_xx.s/.c before jump to main. - * This function configures the external SRAM mounted on STM3210E-EVAL - * board (STM32 High density devices). This SRAM will be used as program - * data memory (including heap and stack). - * @param None - * @retval None - */ -void SystemInit_ExtMemCtl(void) -{ -/*!< FSMC Bank1 NOR/SRAM3 is used for the STM3210E-EVAL, if another Bank is - required, then adjust the Register Addresses */ - - /* Enable FSMC clock */ - RCC->AHBENR = 0x00000114; - - /* Enable GPIOD, GPIOE, GPIOF and GPIOG clocks */ - RCC->APB2ENR = 0x000001E0; - -/* --------------- SRAM Data lines, NOE and NWE configuration ---------------*/ -/*---------------- SRAM Address lines configuration -------------------------*/ -/*---------------- NOE and NWE configuration --------------------------------*/ -/*---------------- NE3 configuration ----------------------------------------*/ -/*---------------- NBL0, NBL1 configuration ---------------------------------*/ - - GPIOD->CRL = 0x44BB44BB; - GPIOD->CRH = 0xBBBBBBBB; - - GPIOE->CRL = 0xB44444BB; - GPIOE->CRH = 0xBBBBBBBB; - - GPIOF->CRL = 0x44BBBBBB; - GPIOF->CRH = 0xBBBB4444; - - GPIOG->CRL = 0x44BBBBBB; - GPIOG->CRH = 0x44444B44; - -/*---------------- FSMC Configuration ---------------------------------------*/ -/*---------------- Enable FSMC Bank1_SRAM Bank ------------------------------*/ - - FSMC_Bank1->BTCR[4] = 0x00001011; - FSMC_Bank1->BTCR[5] = 0x00000200; -} -#endif /* DATA_IN_ExtSRAM */ - -#ifdef SYSCLK_FREQ_HSE -/** - * @brief Selects HSE as System clock source and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockToHSE(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - -#if !defined STM32F10X_LD_VL && !defined STM32F10X_MD_VL && !defined STM32F10X_HD_VL - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 0 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - -#ifndef STM32F10X_CL - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_0; -#else - if (HSE_VALUE <= 24000000) - { - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_0; - } - else - { - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; - } -#endif /* STM32F10X_CL */ -#endif - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; - - /* Select HSE as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_HSE; - - /* Wait till HSE is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x04) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} -#elif defined SYSCLK_FREQ_24MHz -/** - * @brief Sets System clock frequency to 24MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo24(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { -#if !defined STM32F10X_LD_VL && !defined STM32F10X_MD_VL && !defined STM32F10X_HD_VL - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 0 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_0; -#endif - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - /* PLL configuration: PLLCLK = PREDIV1 * 6 = 24 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL6); - - /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 10 = 4 MHz */ - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV10); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } -#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - /* PLL configuration: = (HSE / 2) * 6 = 24 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1_Div2 | RCC_CFGR_PLLMULL6); -#else - /* PLL configuration: = (HSE / 2) * 6 = 24 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6); -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} -#elif defined SYSCLK_FREQ_36MHz -/** - * @brief Sets System clock frequency to 36MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo36(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 1 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - - /* PLL configuration: PLLCLK = PREDIV1 * 9 = 36 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL9); - - /*!< PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 10 = 4 MHz */ - - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV10); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } - -#else - /* PLL configuration: PLLCLK = (HSE / 2) * 9 = 36 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL9); -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} -#elif defined SYSCLK_FREQ_48MHz -/** - * @brief Sets System clock frequency to 48MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo48(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 1 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */ - - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } - - - /* PLL configuration: PLLCLK = PREDIV1 * 6 = 48 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL6); -#else - /* PLL configuration: PLLCLK = HSE * 6 = 48 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6); -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} - -#elif defined SYSCLK_FREQ_56MHz -/** - * @brief Sets System clock frequency to 56MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo56(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 2 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2; - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */ - - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } - - - /* PLL configuration: PLLCLK = PREDIV1 * 7 = 56 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL7); -#else - /* PLL configuration: PLLCLK = HSE * 7 = 56 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL7); - -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} - -#elif defined SYSCLK_FREQ_72MHz -/** - * @brief Sets System clock frequency to 72MHz and configure HCLK, PCLK2 - * and PCLK1 prescalers. - * @note This function should be used only after reset. - * @param None - * @retval None - */ -static void SetSysClockTo72(void) -{ - __IO uint32_t StartUpCounter = 0, HSEStatus = 0; - - /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ - /* Enable HSE */ - RCC->CR |= ((uint32_t)RCC_CR_HSEON); - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); - - if ((RCC->CR & RCC_CR_HSERDY) != RESET) - { - HSEStatus = (uint32_t)0x01; - } - else - { - HSEStatus = (uint32_t)0x00; - } - - if (HSEStatus == (uint32_t)0x01) - { - /* Enable Prefetch Buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - - /* Flash 2 wait state */ - FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); - FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2; - - - /* HCLK = SYSCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; - - /* PCLK2 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; - - /* PCLK1 = HCLK */ - RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; - -#ifdef STM32F10X_CL - /* Configure PLLs ------------------------------------------------------*/ - /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ - /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */ - - RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL | - RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC); - RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | - RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5); - - /* Enable PLL2 */ - RCC->CR |= RCC_CR_PLL2ON; - /* Wait till PLL2 is ready */ - while((RCC->CR & RCC_CR_PLL2RDY) == 0) - { - } - - - /* PLL configuration: PLLCLK = PREDIV1 * 9 = 72 MHz */ - RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | - RCC_CFGR_PLLMULL9); -#else - /* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | - RCC_CFGR_PLLMULL)); - RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9); -#endif /* STM32F10X_CL */ - - /* Enable PLL */ - RCC->CR |= RCC_CR_PLLON; - - /* Wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - - /* Select PLL as system clock source */ - RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); - RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; - - /* Wait till PLL is used as system clock source */ - while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) - { - } - } - else - { /* If HSE fails to start-up, the application will have wrong clock - configuration. User can add here some code to deal with this error */ - } -} -#endif - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h deleted file mode 100644 index 739f3328..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h +++ /dev/null @@ -1,98 +0,0 @@ -/** - ****************************************************************************** - * @file system_stm32f10x.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Header File. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/** @addtogroup CMSIS - * @{ - */ - -/** @addtogroup stm32f10x_system - * @{ - */ - -/** - * @brief Define to prevent recursive inclusion - */ -#ifndef __SYSTEM_STM32F10X_H -#define __SYSTEM_STM32F10X_H - -#ifdef __cplusplus - extern "C" { -#endif - -/** @addtogroup STM32F10x_System_Includes - * @{ - */ - -/** - * @} - */ - - -/** @addtogroup STM32F10x_System_Exported_types - * @{ - */ - -extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Exported_Constants - * @{ - */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @addtogroup STM32F10x_System_Exported_Functions - * @{ - */ - -extern void SystemInit(void); -extern void SystemCoreClockUpdate(void); -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /*__SYSTEM_STM32F10X_H */ - -/** - * @} - */ - -/** - * @} - */ -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CMSIS debug support.htm b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CMSIS debug support.htm deleted file mode 100644 index efda685b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CMSIS debug support.htm +++ /dev/null @@ -1,243 +0,0 @@ - - - -CMSIS Debug Support - - - - - - - - -

CMSIS Debug Support

- -
- -

Cortex-M3 ITM Debug Access

-

- The Cortex-M3 incorporates the Instrumented Trace Macrocell (ITM) that provides together with - the Serial Viewer Output trace capabilities for the microcontroller system. The ITM has - 32 communication channels which are able to transmit 32 / 16 / 8 bit values; two ITM - communication channels are used by CMSIS to output the following information: -

-
    -
  • ITM Channel 0: used for printf-style output via the debug interface.
  • -
  • ITM Channel 31: is reserved for RTOS kernel awareness debugging.
  • -
- -

Debug IN / OUT functions

-

CMSIS provides following debug functions:

-
    -
  • ITM_SendChar (uses ITM channel 0)
  • -
  • ITM_ReceiveChar (uses global variable)
  • -
  • ITM_CheckChar (uses global variable)
  • -
- -

ITM_SendChar

-

- ITM_SendChar is used to transmit a character over ITM channel 0 from - the microcontroller system to the debug system.
- Only a 8 bit value is transmitted. -

-
-static __INLINE uint32_t ITM_SendChar (uint32_t ch)
-{
-  /* check if debugger connected and ITM channel enabled for tracing */
-  if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA)  &&
-      (ITM->TCR & ITM_TCR_ITMENA)                  &&
-      (ITM->TER & (1UL << 0))  ) 
-  {
-    while (ITM->PORT[0].u32 == 0);
-    ITM->PORT[0].u8 = (uint8_t)ch;
-  }  
-  return (ch);
-}
- -

ITM_ReceiveChar

-

- ITM communication channel is only capable for OUT direction. For IN direction - a globel variable is used. A simple mechansim detects if a character is received. - The project to test need to be build with debug information. -

- -

- The globale variable ITM_RxBuffer is used to transmit a 8 bit value from debug system - to microcontroller system. ITM_RxBuffer is 32 bit wide to enshure a proper handshake. -

-
-extern volatile int ITM_RxBuffer;                    /* variable to receive characters                             */
-
-

- A dedicated bit pattern is used to determin if ITM_RxBuffer is empty - or contains a valid value. -

-
-#define             ITM_RXBUFFER_EMPTY    0x5AA55AA5 /* value identifying ITM_RxBuffer is ready for next character */
-
-

- ITM_ReceiveChar is used to receive a 8 bit value from the debug system. The function is nonblocking. - It returns the received character or '-1' if no character was available. -

-
-static __INLINE int ITM_ReceiveChar (void) {
-  int ch = -1;                               /* no character available */
-
-  if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) {
-    ch = ITM_RxBuffer;
-    ITM_RxBuffer = ITM_RXBUFFER_EMPTY;       /* ready for next character */
-  }
-  
-  return (ch); 
-}
-
- -

ITM_CheckChar

-

- ITM_CheckChar is used to check if a character is received. -

-
-static __INLINE int ITM_CheckChar (void) {
-
-  if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) {
-    return (0);                                 /* no character available */
-  } else {
-    return (1);                                 /*    character available */
-  }
-}
- - -

ITM Debug Support in uVision

-

- uVision uses in a debug session the Debug (printf) Viewer window to - display the debug data. -

-

Direction microcontroller system -> uVision:

-
    -
  • - Characters received via ITM communication channel 0 are written in a printf style - to Debug (printf) Viewer window. -
  • -
- -

Direction uVision -> microcontroller system:

-
    -
  • Check if ITM_RxBuffer variable is available (only performed once).
  • -
  • Read character from Debug (printf) Viewer window.
  • -
  • If ITM_RxBuffer empty write character to ITM_RxBuffer.
  • -
- -

Note

-
    -
  • Current solution does not use a buffer machanism for trasmitting the characters.

    -
  • -
- -

RTX Kernel awareness in uVision

-

- uVision / RTX are using a simple and efficient solution for RTX Kernel awareness. - No format overhead is necessary.
- uVsion debugger decodes the RTX events via the 32 / 16 / 8 bit ITM write access - to ITM communication channel 31. -

- -

Following RTX events are traced:

-
    -
  • Task Create / Delete event -
      -
    1. 32 bit access. Task start address is transmitted
    2. -
    3. 16 bit access. Task ID and Create/Delete flag are transmitted
      - High byte holds Create/Delete flag, Low byte holds TASK ID. -
    4. -
    -
  • -
  • Task switch event -
      -
    1. 8 bit access. Task ID of current task is transmitted
    2. -
    -
  • -
- -

Note

-
    -
  • Other RTOS information could be retrieved via memory read access in a polling mode manner.

    -
  • -
- - -

 

- -
- -

Copyright © KEIL - An ARM Company.
-All rights reserved.
-Visit our web site at www.keil.com. -

- - - - \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CMSIS_changes.htm b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CMSIS_changes.htm deleted file mode 100644 index 162ffcc9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/CMSIS_changes.htm +++ /dev/null @@ -1,320 +0,0 @@ - - - -CMSIS Changes - - - - - - - - -

Changes to CMSIS version V1.20

- -
- -

1. Removed CMSIS Middelware packages

-

- CMSIS Middleware is on hold from ARM side until a agreement between all CMSIS partners is found. -

- -

2. SystemFrequency renamed to SystemCoreClock

-

- The variable name SystemCoreClock is more precise than SystemFrequency - because the variable holds the clock value at which the core is running. -

- -

3. Changed startup concept

-

- The old startup concept (calling SystemInit_ExtMemCtl from startup file and calling SystemInit - from main) has the weakness that it does not work for controllers which need a already - configuerd clock system to configure the external memory controller. -

- -

Changed startup concept

-
    -
  • - SystemInit() is called from startup file before premain. -
  • -
  • - SystemInit() configures the clock system and also configures - an existing external memory controller. -
  • -
  • - SystemInit() must not use global variables. -
  • -
  • - SystemCoreClock is initialized with a correct predefined value. -
  • -
  • - Additional function void SystemCoreClockUpdate (void) is provided.
    - SystemCoreClockUpdate() updates the variable SystemCoreClock - and must be called whenever the core clock is changed.
    - SystemCoreClockUpdate() evaluates the clock register settings and calculates - the current core clock. -
  • -
- - -

4. Advanced Debug Functions

-

- ITM communication channel is only capable for OUT direction. To allow also communication for - IN direction a simple concept is provided. -

-
    -
  • - Global variable volatile int ITM_RxBuffer used for IN data. -
  • -
  • - Function int ITM_CheckChar (void) checks if a new character is available. -
  • -
  • - Function int ITM_ReceiveChar (void) retrieves the new character. -
  • -
- -

- For detailed explanation see file CMSIS debug support.htm. -

- - -

5. Core Register Bit Definitions

-

- Files core_cm3.h and core_cm0.h contain now bit definitions for Core Registers. The name for the - defines correspond with the Cortex-M Technical Reference Manual. -

-

- e.g. SysTick structure with bit definitions -

-
-/** @addtogroup CMSIS_CM3_SysTick CMSIS CM3 SysTick
-  memory mapped structure for SysTick
-  @{
- */
-typedef struct
-{
-  __IO uint32_t CTRL;                         /*!< Offset: 0x00  SysTick Control and Status Register */
-  __IO uint32_t LOAD;                         /*!< Offset: 0x04  SysTick Reload Value Register       */
-  __IO uint32_t VAL;                          /*!< Offset: 0x08  SysTick Current Value Register      */
-  __I  uint32_t CALIB;                        /*!< Offset: 0x0C  SysTick Calibration Register        */
-} SysTick_Type;
-
-/* SysTick Control / Status Register Definitions */
-#define SysTick_CTRL_COUNTFLAG_Pos         16                                             /*!< SysTick CTRL: COUNTFLAG Position */
-#define SysTick_CTRL_COUNTFLAG_Msk         (1ul << SysTick_CTRL_COUNTFLAG_Pos)            /*!< SysTick CTRL: COUNTFLAG Mask */
-
-#define SysTick_CTRL_CLKSOURCE_Pos          2                                             /*!< SysTick CTRL: CLKSOURCE Position */
-#define SysTick_CTRL_CLKSOURCE_Msk         (1ul << SysTick_CTRL_CLKSOURCE_Pos)            /*!< SysTick CTRL: CLKSOURCE Mask */
-
-#define SysTick_CTRL_TICKINT_Pos            1                                             /*!< SysTick CTRL: TICKINT Position */
-#define SysTick_CTRL_TICKINT_Msk           (1ul << SysTick_CTRL_TICKINT_Pos)              /*!< SysTick CTRL: TICKINT Mask */
-
-#define SysTick_CTRL_ENABLE_Pos             0                                             /*!< SysTick CTRL: ENABLE Position */
-#define SysTick_CTRL_ENABLE_Msk            (1ul << SysTick_CTRL_ENABLE_Pos)               /*!< SysTick CTRL: ENABLE Mask */
-
-/* SysTick Reload Register Definitions */
-#define SysTick_LOAD_RELOAD_Pos             0                                             /*!< SysTick LOAD: RELOAD Position */
-#define SysTick_LOAD_RELOAD_Msk            (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos)        /*!< SysTick LOAD: RELOAD Mask */
-
-/* SysTick Current Register Definitions */
-#define SysTick_VAL_CURRENT_Pos             0                                             /*!< SysTick VAL: CURRENT Position */
-#define SysTick_VAL_CURRENT_Msk            (0xFFFFFFul << SysTick_VAL_CURRENT_Pos)        /*!< SysTick VAL: CURRENT Mask */
-
-/* SysTick Calibration Register Definitions */
-#define SysTick_CALIB_NOREF_Pos            31                                             /*!< SysTick CALIB: NOREF Position */
-#define SysTick_CALIB_NOREF_Msk            (1ul << SysTick_CALIB_NOREF_Pos)               /*!< SysTick CALIB: NOREF Mask */
-
-#define SysTick_CALIB_SKEW_Pos             30                                             /*!< SysTick CALIB: SKEW Position */
-#define SysTick_CALIB_SKEW_Msk             (1ul << SysTick_CALIB_SKEW_Pos)                /*!< SysTick CALIB: SKEW Mask */
-
-#define SysTick_CALIB_TENMS_Pos             0                                             /*!< SysTick CALIB: TENMS Position */
-#define SysTick_CALIB_TENMS_Msk            (0xFFFFFFul << SysTick_VAL_CURRENT_Pos)        /*!< SysTick CALIB: TENMS Mask */
-/*@}*/ /* end of group CMSIS_CM3_SysTick */
- -

7. DoxyGen Tags

-

- DoxyGen tags in files core_cm3.[c,h] and core_cm0.[c,h] are reworked to create proper documentation - using DoxyGen. -

- -

8. Folder Structure

-

- The folder structure is changed to differentiate the single support packages. -

- -
    -
  • CM0
  • -
  • CM3 -
      -
    • CoreSupport
    • -
    • DeviceSupport
    • -
        -
      • Vendor -
          -
        • Device -
            -
          • Startup -
              -
            • Toolchain
            • -
            • Toolchain
            • -
            • ...
            • -
            -
          • -
          -
        • -
        • Device
        • -
        • ...
        • -
        -
      • -
      • Vendor
      • -
      • ...
      • -
      - -
    • Example -
        -
      • Toolchain -
          -
        • Device
        • -
        • Device
        • -
        • ...
        • -
        -
      • -
      • Toolchain
      • -
      • ...
      • -
      -
    • -
    -
  • - -
  • Documentation
  • -
- -

9. Open Points

-

- Following points need to be clarified and solved: -

-
    -
  • -

    - Equivalent C and Assembler startup files. -

    -

    - Is there a need for having C startup files although assembler startup files are - very efficient and do not need to be changed? -

    -

  • -
  • -

    - Placing of HEAP in external RAM. -

    -

    - It must be possible to place HEAP in external RAM if the device supports an - external memory controller. -

    -
  • -
  • -

    - Placing of STACK /HEAP. -

    -

    - STACK should always be placed at the end of internal RAM. -

    -

    - If HEAP is placed in internal RAM than it should be placed after RW ZI section. -

    -
  • -
  • -

    - Removing core_cm3.c and core_cm0.c. -

    -

    - On a long term the functions in core_cm3.c and core_cm0.c must be replaced with - appropriate compiler intrinsics. -

    -
  • -
- - -

10. Limitations

-

- The following limitations are not covered with the current CMSIS version: -

-
    -
  • - No C startup files for ARM toolchain are provided. -
  • -
  • - No C startup files for GNU toolchain are provided. -
  • -
  • - No C startup files for IAR toolchain are provided. -
  • -
  • - No Tasking projects are provided yet. -
  • -
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/Documentation/CMSIS_Core.htm b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/Documentation/CMSIS_Core.htm deleted file mode 100644 index 6fd131e1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/Documentation/CMSIS_Core.htm +++ /dev/null @@ -1,1337 +0,0 @@ - - - - CMSIS: Cortex Microcontroller Software Interface Standard - - - -

Cortex Microcontroller Software Interface Standard

- -

This file describes the Cortex Microcontroller Software Interface Standard (CMSIS).

-

Version: 1.30 - 30. October 2009

- -

Information in this file, the accompany manuals, and software is
- Copyright © ARM Ltd.
All rights reserved. -

- -
- -

Revision History

-
    -
  • Version 1.00: initial release.
  • -
  • Version 1.01: added __LDREXx, __STREXx, and __CLREX.
  • -
  • Version 1.02: added Cortex-M0.
  • -
  • Version 1.10: second review.
  • -
  • Version 1.20: third review.
  • -
  • Version 1.30 PRE-RELEASE: reworked Startup Concept, additional Debug Functionality.
  • -
  • Version 1.30 2nd PRE-RELEASE: changed folder structure, added doxyGen comments, added Bit definitions.
  • -
  • Version 1.30: updated Device Support Packages.
  • -
- -
- -

Contents

- -
    -
  1. About
  2. -
  3. Coding Rules and Conventions
  4. -
  5. CMSIS Files
  6. -
  7. Core Peripheral Access Layer
  8. -
  9. CMSIS Example
  10. -
- -

About

- -

- The Cortex Microcontroller Software Interface Standard (CMSIS) answers the challenges - that are faced when software components are deployed to physical microcontroller devices based on a - Cortex-M0 or Cortex-M3 processor. The CMSIS will be also expanded to future Cortex-M - processor cores (the term Cortex-M is used to indicate that). The CMSIS is defined in close co-operation - with various silicon and software vendors and provides a common approach to interface to peripherals, - real-time operating systems, and middleware components. -

- -

ARM provides as part of the CMSIS the following software layers that are -available for various compiler implementations:

-
    -
  • Core Peripheral Access Layer: contains name definitions, - address definitions and helper functions to - access core registers and peripherals. It defines also a device - independent interface for RTOS Kernels that includes debug channel - definitions.
  • -
- -

These software layers are expanded by Silicon partners with:

-
    -
  • Device Peripheral Access Layer: provides definitions - for all device peripherals
  • -
  • Access Functions for Peripherals (optional): provides - additional helper functions for peripherals
  • -
- -

CMSIS defines for a Cortex-M Microcontroller System:

-
    -
  • A common way to access peripheral registers - and a common way to define exception vectors.
  • -
  • The register names of the Core - Peripherals and the names of the Core - Exception Vectors.
  • -
  • An device independent interface for RTOS Kernels including a debug - channel.
  • -
- -

- By using CMSIS compliant software components, the user can easier re-use template code. - CMSIS is intended to enable the combination of software components from multiple middleware vendors. -

- -

Coding Rules and Conventions

- -

- The following section describes the coding rules and conventions used in the CMSIS - implementation. It contains also information about data types and version number information. -

- -

Essentials

-
    -
  • The CMSIS C code conforms to MISRA 2004 rules. In case of MISRA violations, - there are disable and enable sequences for PC-LINT inserted.
  • -
  • ANSI standard data types defined in the ANSI C header file - <stdint.h> are used.
  • -
  • #define constants that include expressions must be enclosed by - parenthesis.
  • -
  • Variables and parameters have a complete data type.
  • -
  • All functions in the Core Peripheral Access Layer are - re-entrant.
  • -
  • The Core Peripheral Access Layer has no blocking code - (which means that wait/query loops are done at other software layers).
  • -
  • For each exception/interrupt there is definition for: -
      -
    • an exception/interrupt handler with the postfix _Handler - (for exceptions) or _IRQHandler (for interrupts).
    • -
    • a default exception/interrupt handler (weak definition) that contains an endless loop.
    • -
    • a #define of the interrupt number with the postfix _IRQn.
    • -
  • -
- -

Recommendations

- -

The CMSIS recommends the following conventions for identifiers.

-
    -
  • CAPITAL names to identify Core Registers, Peripheral Registers, and CPU Instructions.
  • -
  • CamelCase names to identify peripherals access functions and interrupts.
  • -
  • PERIPHERAL_ prefix to identify functions that belong to specify peripherals.
  • -
  • Doxygen comments for all functions are included as described under Function Comments below.
  • -
- -Comments - -
    -
  • Comments use the ANSI C90 style (/* comment */) or C++ style - (// comment). It is assumed that the programming tools support today - consistently the C++ comment style.
  • -
  • Function Comments provide for each function the following information: -
      -
    • one-line brief function overview.
    • -
    • detailed parameter explanation.
    • -
    • detailed information about return values.
    • -
    • detailed description of the actual function.
    • -
    -

    Doxygen Example:

    -
    -/** 
    - * @brief  Enable Interrupt in NVIC Interrupt Controller
    - * @param  IRQn  interrupt number that specifies the interrupt
    - * @return none.
    - * Enable the specified interrupt in the NVIC Interrupt Controller.
    - * Other settings of the interrupt such as priority are not affected.
    - */
    -
  • -
- -

Data Types and IO Type Qualifiers

- -

- The Cortex-M HAL uses the standard types from the standard ANSI C header file - <stdint.h>. IO Type Qualifiers are used to specify the access - to peripheral variables. IO Type Qualifiers are indented to be used for automatic generation of - debug information of peripheral registers. -

- - - - - - - - - - - - - - - - - - - - - - - - -
IO Type Qualifier#defineDescription
__Ivolatile constRead access only
__OvolatileWrite access only
__IOvolatileRead and write access
- -

CMSIS Version Number

-

- File core_cm3.h contains the version number of the CMSIS with the following define: -

- -
-#define __CM3_CMSIS_VERSION_MAIN  (0x01)      /* [31:16] main version       */
-#define __CM3_CMSIS_VERSION_SUB   (0x30)      /* [15:0]  sub version        */
-#define __CM3_CMSIS_VERSION       ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB)
- -

- File core_cm0.h contains the version number of the CMSIS with the following define: -

- -
-#define __CM0_CMSIS_VERSION_MAIN  (0x01)      /* [31:16] main version       */
-#define __CM0_CMSIS_VERSION_SUB   (0x30)      /* [15:0]  sub version        */
-#define __CM0_CMSIS_VERSION       ((__CM0_CMSIS_VERSION_MAIN << 16) | __CM0_CMSIS_VERSION_SUB)
- - -

CMSIS Cortex Core

-

- File core_cm3.h contains the type of the CMSIS Cortex-M with the following define: -

- -
-#define __CORTEX_M                (0x03)
- -

- File core_cm0.h contains the type of the CMSIS Cortex-M with the following define: -

- -
-#define __CORTEX_M                (0x00)
- - -

CMSIS Files

-

- This section describes the Files provided in context with the CMSIS to access the Cortex-M - hardware and peripherals. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileProviderDescription
device.hDevice specific (provided by silicon partner)Defines the peripherals for the actual device. The file may use - several other include files to define the peripherals of the actual device.
core_cm0.hARM (for RealView ARMCC, IAR, and GNU GCC)Defines the core peripherals for the Cortex-M0 CPU and core peripherals.
core_cm3.hARM (for RealView ARMCC, IAR, and GNU GCC)Defines the core peripherals for the Cortex-M3 CPU and core peripherals.
core_cm0.cARM (for RealView ARMCC, IAR, and GNU GCC)Provides helper functions that access core registers.
core_cm3.cARM (for RealView ARMCC, IAR, and GNU GCC)Provides helper functions that access core registers.
startup_deviceARM (adapted by compiler partner / silicon partner)Provides the Cortex-M startup code and the complete (device specific) Interrupt Vector Table
system_deviceARM (adapted by silicon partner)Provides a device specific configuration file for the device. It configures the device initializes - typically the oscillator (PLL) that is part of the microcontroller device
- -

device.h

- -

- The file device.h is provided by the silicon vendor and is the - central include file that the application programmer is using in - the C source code. This file contains: -

-
    -
  • -

    Interrupt Number Definition: provides interrupt numbers - (IRQn) for all core and device specific exceptions and interrupts.

    -
  • -
  • -

    Configuration for core_cm0.h / core_cm3.h: reflects the - actual configuration of the Cortex-M processor that is part of the actual - device. As such the file core_cm0.h / core_cm3.h is included that - implements access to processor registers and core peripherals.

    -
  • -
  • -

    Device Peripheral Access Layer: provides definitions - for all device peripherals. It contains all data structures and the address - mapping for the device specific peripherals.

    -
  • -
  • Access Functions for Peripherals (optional): provides - additional helper functions for peripherals that are useful for programming - of these peripherals. Access Functions may be provided as inline functions - or can be extern references to a device specific library provided by the - silicon vendor.
  • -
- - -

Interrupt Number Definition

- -

To access the device specific interrupts the device.h file defines IRQn -numbers for the complete device using a enum typedef as shown below:

-
-typedef enum IRQn
-{
-/******  Cortex-M3 Processor Exceptions/Interrupt Numbers ************************************************/
-  NonMaskableInt_IRQn             = -14,      /*!< 2 Non Maskable Interrupt                              */
-  HardFault_IRQn                  = -13,      /*!< 3 Cortex-M3 Hard Fault Interrupt                      */
-  MemoryManagement_IRQn           = -12,      /*!< 4 Cortex-M3 Memory Management Interrupt               */
-  BusFault_IRQn                   = -11,      /*!< 5 Cortex-M3 Bus Fault Interrupt                       */
-  UsageFault_IRQn                 = -10,      /*!< 6 Cortex-M3 Usage Fault Interrupt                     */
-  SVCall_IRQn                     = -5,       /*!< 11 Cortex-M3 SV Call Interrupt                        */
-  DebugMonitor_IRQn               = -4,       /*!< 12 Cortex-M3 Debug Monitor Interrupt                  */
-  PendSV_IRQn                     = -2,       /*!< 14 Cortex-M3 Pend SV Interrupt                        */
-  SysTick_IRQn                    = -1,       /*!< 15 Cortex-M3 System Tick Interrupt                    */
-/******  STM32 specific Interrupt Numbers ****************************************************************/
-  WWDG_STM_IRQn                   = 0,        /*!< Window WatchDog Interrupt                             */
-  PVD_STM_IRQn                    = 1,        /*!< PVD through EXTI Line detection Interrupt             */
-  :
-  :
-  } IRQn_Type;
- - -

Configuration for core_cm0.h / core_cm3.h

-

- The Cortex-M core configuration options which are defined for each device implementation. Some - configuration options are reflected in the CMSIS layer using the #define settings described below. -

-

- To access core peripherals file device.h includes file core_cm0.h / core_cm3.h. - Several features in core_cm0.h / core_cm3.h are configured by the following defines that must be - defined before #include <core_cm0.h> / #include <core_cm3.h> - preprocessor command. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#defineFileValueDescription
__NVIC_PRIO_BITScore_cm0.h(2)Number of priority bits implemented in the NVIC (device specific)
__NVIC_PRIO_BITScore_cm3.h(2 ... 8)Number of priority bits implemented in the NVIC (device specific)
__MPU_PRESENTcore_cm0.h, core_cm3.h(0, 1)Defines if an MPU is present or not
__Vendor_SysTickConfigcore_cm0.h, core_cm3.h(1)When this define is setup to 1, the SysTickConfig function - in core_cm3.h is excluded. In this case the device.h - file must contain a vendor specific implementation of this function.
- - -

Device Peripheral Access Layer

-

- Each peripheral uses a prefix which consists of <device abbreviation>_ - and <peripheral name>_ to identify peripheral registers that access this - specific peripheral. The intention of this is to avoid name collisions caused - due to short names. If more than one peripheral of the same type exists, - identifiers have a postfix (digit or letter). For example: -

-
    -
  • <device abbreviation>_UART_Type: defines the generic register layout for all UART channels in a device. -
    -typedef struct
    -{
    -  union {
    -  __I  uint8_t  RBR;                     /*!< Offset: 0x000   Receiver Buffer Register    */
    -  __O  uint8_t  THR;                     /*!< Offset: 0x000   Transmit Holding Register   */
    -  __IO uint8_t  DLL;                     /*!< Offset: 0x000   Divisor Latch LSB           */
    -       uint32_t RESERVED0;
    -  };
    -  union {
    -  __IO uint8_t  DLM;                     /*!< Offset: 0x004   Divisor Latch MSB           */
    -  __IO uint32_t IER;                     /*!< Offset: 0x004   Interrupt Enable Register   */
    -  };
    -  union {
    -  __I  uint32_t IIR;                     /*!< Offset: 0x008   Interrupt ID Register       */
    -  __O  uint8_t  FCR;                     /*!< Offset: 0x008   FIFO Control Register       */
    -  };
    -  __IO uint8_t  LCR;                     /*!< Offset: 0x00C   Line Control Register       */
    -       uint8_t  RESERVED1[7];
    -  __I  uint8_t  LSR;                     /*!< Offset: 0x014   Line Status Register        */
    -       uint8_t  RESERVED2[7];
    -  __IO uint8_t  SCR;                     /*!< Offset: 0x01C   Scratch Pad Register        */
    -       uint8_t  RESERVED3[3];
    -  __IO uint32_t ACR;                     /*!< Offset: 0x020   Autobaud Control Register   */
    -  __IO uint8_t  ICR;                     /*!< Offset: 0x024   IrDA Control Register       */
    -       uint8_t  RESERVED4[3];
    -  __IO uint8_t  FDR;                     /*!< Offset: 0x028   Fractional Divider Register */
    -       uint8_t  RESERVED5[7];
    -  __IO uint8_t  TER;                     /*!< Offset: 0x030   Transmit Enable Register    */
    -       uint8_t  RESERVED6[39];
    -  __I  uint8_t  FIFOLVL;                 /*!< Offset: 0x058   FIFO Level Register         */
    -} LPC_UART_TypeDef;
    -
  • -
  • <device abbreviation>_UART1: is a pointer to a register structure that refers to a specific UART. - For example UART1->DR is the data register of UART1. -
    -#define LPC_UART2             ((LPC_UART_TypeDef      *) LPC_UART2_BASE    )
    -#define LPC_UART3             ((LPC_UART_TypeDef      *) LPC_UART3_BASE    )
    -
  • -
- -
Minimal Requiements
-

- To access the peripheral registers and related function in a device the files device.h - and core_cm0.h / core_cm3.h defines as a minimum: -

-
    -
  • The Register Layout Typedef for each peripheral that defines all register names. - Names that start with RESERVE are used to introduce space into the structure to adjust the addresses of - the peripheral registers. For example: -
    -typedef struct {
    -  __IO uint32_t CTRL;      /* SysTick Control and Status Register */
    -  __IO uint32_t LOAD;      /* SysTick Reload Value Register       */
    -  __IO uint32_t VAL;       /* SysTick Current Value Register      */
    -  __I  uint32_t CALIB;     /* SysTick Calibration Register        */
    -  } SysTick_Type;
    -
  • - -
  • - Base Address for each peripheral (in case of multiple peripherals - that use the same register layout typedef multiple base addresses are defined). For example: -
    -#define SysTick_BASE (SCS_BASE + 0x0010)            /* SysTick Base Address */
    -
  • - -
  • - Access Definition for each peripheral (in case of multiple peripherals that use - the same register layout typedef multiple access definitions exist, i.e. LPC_UART0, - LPC_UART2). For Example: -
    -#define SysTick ((SysTick_Type *) SysTick_BASE)     /* SysTick access definition */
    -
  • -
- -

- These definitions allow to access the peripheral registers from user code with simple assignments like: -

-
SysTick->CTRL = 0;
- -
Optional Features
-

In addition the device.h file may define:

-
    -
  • - #define constants that simplify access to the peripheral registers. - These constant define bit-positions or other specific patterns are that required for the - programming of the peripheral registers. The identifiers used start with - <device abbreviation>_ and <peripheral name>_. - It is recommended to use CAPITAL letters for such #define constants. -
  • -
  • - Functions that perform more complex functions with the peripheral (i.e. status query before - a sending register is accessed). Again these function start with - <device abbreviation>_ and <peripheral name>_. -
  • -
- -

core_cm0.h and core_cm0.c

-

- File core_cm0.h describes the data structures for the Cortex-M0 core peripherals and does - the address mapping of this structures. It also provides basic access to the Cortex-M0 core registers - and core peripherals with efficient functions (defined as static inline). -

-

- File core_cm0.c defines several helper functions that access processor registers. -

-

Together these files implement the Core Peripheral Access Layer for a Cortex-M0.

- -

core_cm3.h and core_cm3.c

-

- File core_cm3.h describes the data structures for the Cortex-M3 core peripherals and does - the address mapping of this structures. It also provides basic access to the Cortex-M3 core registers - and core peripherals with efficient functions (defined as static inline). -

-

- File core_cm3.c defines several helper functions that access processor registers. -

-

Together these files implement the Core Peripheral Access Layer for a Cortex-M3.

- -

startup_device

-

- A template file for startup_device is provided by ARM for each supported - compiler. It is adapted by the silicon vendor to include interrupt vectors for all device specific - interrupt handlers. Each interrupt handler is defined as weak function - to an dummy handler. Therefore the interrupt handler can be directly used in application software - without any requirements to adapt the startup_device file. -

-

- The following exception names are fixed and define the start of the vector table for a Cortex-M0: -

-
-__Vectors       DCD     __initial_sp              ; Top of Stack
-                DCD     Reset_Handler             ; Reset Handler
-                DCD     NMI_Handler               ; NMI Handler
-                DCD     HardFault_Handler         ; Hard Fault Handler
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     SVC_Handler               ; SVCall Handler
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     PendSV_Handler            ; PendSV Handler
-                DCD     SysTick_Handler           ; SysTick Handler
- -

- The following exception names are fixed and define the start of the vector table for a Cortex-M3: -

-
-__Vectors       DCD     __initial_sp              ; Top of Stack
-                DCD     Reset_Handler             ; Reset Handler
-                DCD     NMI_Handler               ; NMI Handler
-                DCD     HardFault_Handler         ; Hard Fault Handler
-                DCD     MemManage_Handler         ; MPU Fault Handler
-                DCD     BusFault_Handler          ; Bus Fault Handler
-                DCD     UsageFault_Handler        ; Usage Fault Handler
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     0                         ; Reserved
-                DCD     SVC_Handler               ; SVCall Handler
-                DCD     DebugMon_Handler          ; Debug Monitor Handler
-                DCD     0                         ; Reserved
-                DCD     PendSV_Handler            ; PendSV Handler
-                DCD     SysTick_Handler           ; SysTick Handler
- -

- In the following examples for device specific interrupts are shown: -

-
-; External Interrupts
-                DCD     WWDG_IRQHandler           ; Window Watchdog
-                DCD     PVD_IRQHandler            ; PVD through EXTI Line detect
-                DCD     TAMPER_IRQHandler         ; Tamper
- -

- Device specific interrupts must have a dummy function that can be overwritten in user code. - Below is an example for this dummy function. -

-
-Default_Handler PROC
-                EXPORT WWDG_IRQHandler   [WEAK]
-                EXPORT PVD_IRQHandler    [WEAK]
-                EXPORT TAMPER_IRQHandler [WEAK]
-                :
-                :
-                WWDG_IRQHandler
-                PVD_IRQHandler
-                TAMPER_IRQHandler
-                :
-                :
-                B .
-                ENDP
- -

- The user application may simply define an interrupt handler function by using the handler name - as shown below. -

-
-void WWDG_IRQHandler(void)
-{
-  :
-  :
-}
- - -

system_device.c

-

- A template file for system_device.c is provided by ARM but adapted by - the silicon vendor to match their actual device. As a minimum requirement - this file must provide a device specific system configuration function and a global variable - that contains the system frequency. It configures the device and initializes typically the - oscillator (PLL) that is part of the microcontroller device. -

-

- The file system_device.c must provide - as a minimum requirement the SystemInit function as shown below. -

- - - - - - - - - - - - - - - - -
Function DefinitionDescription
void SystemInit (void)Setup the microcontroller system. Typically this function configures the - oscillator (PLL) that is part of the microcontroller device. For systems - with variable clock speed it also updates the variable SystemCoreClock.
- SystemInit is called from startup_device file.
void SystemCoreClockUpdate (void)Updates the variable SystemCoreClock and must be called whenever the - core clock is changed during program execution. SystemCoreClockUpdate() - evaluates the clock register settings and calculates the current core clock. -
- -

- Also part of the file system_device.c - is the variable SystemCoreClock which contains the current CPU clock speed shown below. -

- - - - - - - - - - - - -
Variable DefinitionDescription
uint32_t SystemCoreClockContains the system core clock (which is the system clock frequency supplied - to the SysTick timer and the processor core clock). This variable can be - used by the user application to setup the SysTick timer or configure other - parameters. It may also be used by debugger to query the frequency of the - debug timer or configure the trace clock speed.
- SystemCoreClock is initialized with a correct predefined value.

- The compiler must be configured to avoid the removal of this variable in - case that the application program is not using it. It is important for - debug systems that the variable is physically present in memory so that - it can be examined to configure the debugger.
- -

Note

-
    -
  • The above definitions are the minimum requirements for the file - system_device.c. This - file may export more functions or variables that provide a more flexible - configuration of the microcontroller system.

    -
  • -
- - -

Core Peripheral Access Layer

- -

Cortex-M Core Register Access

-

- The following functions are defined in core_cm0.h / core_cm3.h - and provide access to Cortex-M core registers. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Function DefinitionCoreCore RegisterDescription
void __enable_irq (void)M0, M3PRIMASK = 0Global Interrupt enable (using the instruction CPSIE - i)
void __disable_irq (void)M0, M3PRIMASK = 1Global Interrupt disable (using the instruction - CPSID i)
void __set_PRIMASK (uint32_t value)M0, M3PRIMASK = valueAssign value to Priority Mask Register (using the instruction - MSR)
uint32_t __get_PRIMASK (void)M0, M3return PRIMASKReturn Priority Mask Register (using the instruction - MRS)
void __enable_fault_irq (void)M3FAULTMASK = 0Global Fault exception and Interrupt enable (using the - instruction CPSIE - f)
void __disable_fault_irq (void)M3FAULTMASK = 1Global Fault exception and Interrupt disable (using the - instruction CPSID f)
void __set_FAULTMASK (uint32_t value)M3FAULTMASK = valueAssign value to Fault Mask Register (using the instruction - MSR)
uint32_t __get_FAULTMASK (void)M3return FAULTMASKReturn Fault Mask Register (using the instruction MRS)
void __set_BASEPRI (uint32_t value)M3BASEPRI = valueSet Base Priority (using the instruction MSR)
uiuint32_t __get_BASEPRI (void)M3return BASEPRIReturn Base Priority (using the instruction MRS)
void __set_CONTROL (uint32_t value)M0, M3CONTROL = valueSet CONTROL register value (using the instruction MSR)
uint32_t __get_CONTROL (void)M0, M3return CONTROLReturn Control Register Value (using the instruction - MRS)
void __set_PSP (uint32_t TopOfProcStack)M0, M3PSP = TopOfProcStackSet Process Stack Pointer value (using the instruction - MSR)
uint32_t __get_PSP (void)M0, M3return PSPReturn Process Stack Pointer (using the instruction MRS)
void __set_MSP (uint32_t TopOfMainStack)M0, M3MSP = TopOfMainStackSet Main Stack Pointer (using the instruction MSR)
uint32_t __get_MSP (void)M0, M3return MSPReturn Main Stack Pointer (using the instruction MRS)
- -

Cortex-M Instruction Access

-

- The following functions are defined in core_cm0.h / core_cm3.hand - generate specific Cortex-M instructions. The functions are implemented in the file - core_cm0.c / core_cm3.c. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameCoreGenerated CPU InstructionDescription
void __NOP (void)M0, M3NOPNo Operation
void __WFI (void)M0, M3WFIWait for Interrupt
void __WFE (void)M0, M3WFEWait for Event
void __SEV (void)M0, M3SEVSet Event
void __ISB (void)M0, M3ISBInstruction Synchronization Barrier
void __DSB (void)M0, M3DSBData Synchronization Barrier
void __DMB (void)M0, M3DMBData Memory Barrier
uint32_t __REV (uint32_t value)M0, M3REVReverse byte order in integer value.
uint32_t __REV16 (uint16_t value)M0, M3REV16Reverse byte order in unsigned short value.
sint32_t __REVSH (sint16_t value)M0, M3REVSHReverse byte order in signed short value with sign extension to integer.
uint32_t __RBIT (uint32_t value)M3RBITReverse bit order of value
uint8_t __LDREXB (uint8_t *addr)M3LDREXBLoad exclusive byte
uint16_t __LDREXH (uint16_t *addr)M3LDREXHLoad exclusive half-word
uint32_t __LDREXW (uint32_t *addr)M3LDREXWLoad exclusive word
uint32_t __STREXB (uint8_t value, uint8_t *addr)M3STREXBStore exclusive byte
uint32_t __STREXB (uint16_t value, uint16_t *addr)M3STREXHStore exclusive half-word
uint32_t __STREXB (uint32_t value, uint32_t *addr)M3STREXWStore exclusive word
void __CLREX (void)M3CLREXRemove the exclusive lock created by __LDREXB, __LDREXH, or __LDREXW
- - -

NVIC Access Functions

-

- The CMSIS provides access to the NVIC via the register interface structure and several helper - functions that simplify the setup of the NVIC. The CMSIS HAL uses IRQ numbers (IRQn) to - identify the interrupts. The first device interrupt has the IRQn value 0. Therefore negative - IRQn values are used for processor core exceptions. -

-

- For the IRQn values of core exceptions the file device.h provides - the following enum names. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Core Exception enum ValueCoreIRQnDescription
NonMaskableInt_IRQnM0, M3-14Cortex-M Non Maskable Interrupt
HardFault_IRQnM0, M3-13Cortex-M Hard Fault Interrupt
MemoryManagement_IRQnM3-12Cortex-M Memory Management Interrupt
BusFault_IRQnM3-11Cortex-M Bus Fault Interrupt
UsageFault_IRQnM3-10Cortex-M Usage Fault Interrupt
SVCall_IRQnM0, M3-5Cortex-M SV Call Interrupt
DebugMonitor_IRQnM3-4Cortex-M Debug Monitor Interrupt
PendSV_IRQnM0, M3-2Cortex-M Pend SV Interrupt
SysTick_IRQnM0, M3-1Cortex-M System Tick Interrupt
- -

The following functions simplify the setup of the NVIC. -The functions are defined as static inline.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameCoreParameterDescription
void NVIC_SetPriorityGrouping (uint32_t PriorityGroup)M3Priority Grouping ValueSet the Priority Grouping (Groups . Subgroups)
uint32_t NVIC_GetPriorityGrouping (void)M3(void)Get the Priority Grouping (Groups . Subgroups)
void NVIC_EnableIRQ (IRQn_Type IRQn)M0, M3IRQ NumberEnable IRQn
void NVIC_DisableIRQ (IRQn_Type IRQn)M0, M3IRQ NumberDisable IRQn
uint32_t NVIC_GetPendingIRQ (IRQn_Type IRQn)M0, M3IRQ NumberReturn 1 if IRQn is pending else 0
void NVIC_SetPendingIRQ (IRQn_Type IRQn)M0, M3IRQ NumberSet IRQn Pending
void NVIC_ClearPendingIRQ (IRQn_Type IRQn)M0, M3IRQ NumberClear IRQn Pending Status
uint32_t NVIC_GetActive (IRQn_Type IRQn)M3IRQ NumberReturn 1 if IRQn is active else 0
void NVIC_SetPriority (IRQn_Type IRQn, uint32_t priority)M0, M3IRQ Number, PrioritySet Priority for IRQn
- (not threadsafe for Cortex-M0)
uint32_t NVIC_GetPriority (IRQn_Type IRQn)M0, M3IRQ NumberGet Priority for IRQn
uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)M3IRQ Number, Priority Group, Preemptive Priority, Sub PriorityEncode priority for given group, preemptive and sub priority
NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority)M3IRQ Number, Priority, pointer to Priority Group, pointer to Preemptive Priority, pointer to Sub PriorityDeccode given priority to group, preemptive and sub priority
void NVIC_SystemReset (void)M0, M3(void)Resets the System
-

Note

-
    -
  • The processor exceptions have negative enum values. Device specific interrupts - have positive enum values and start with 0. The values are defined in - device.h file. -

    -
  • -
  • The values for PreemptPriority and SubPriority - used in functions NVIC_EncodePriority and NVIC_DecodePriority - depend on the available __NVIC_PRIO_BITS implemented in the NVIC. -

    -
  • -
- - -

SysTick Configuration Function

- -

The following function is used to configure the SysTick timer and start the -SysTick interrupt.

- - - - - - - - - - - - - - -
NameParameterDescription
uint32_t SysTickConfig - (uint32_t ticks)ticks is SysTick counter reload valueSetup the SysTick timer and enable the SysTick interrupt. After this - call the SysTick timer creates interrupts with the specified time - interval.
-
- Return: 0 when successful, 1 on failure.
-
- - -

Cortex-M3 ITM Debug Access

- -

The Cortex-M3 incorporates the Instrumented Trace Macrocell (ITM) that -provides together with the Serial Viewer Output trace capabilities for the -microcontroller system. The ITM has 32 communication channels; two ITM -communication channels are used by CMSIS to output the following information:

-
    -
  • ITM Channel 0: implements the ITM_SendChar function - which can be used for printf-style output via the debug interface.
  • -
  • ITM Channel 31: is reserved for the RTOS kernel and can be used for - kernel awareness debugging.
  • -
-

Note

-
    -
  • The ITM channel 31 is selected for the RTOS kernel since some kernels - may use the Privileged level for program execution. ITM - channels have 4 groups with 8 channels each, whereby each group can be - configured for access rights in the Unprivileged level. The ITM channel 0 - may be therefore enabled for the user task whereas ITM channel 31 may be - accessible only in Privileged level from the RTOS kernel itself.

    -
  • -
- -

The prototype of the ITM_SendChar routine is shown in the -table below.

- - - - - - - - - - - - - - -
NameParameterDescription
void uint32_t ITM_SendChar(uint32_t chr)character to outputThe function outputs a character via the ITM channel 0. The - function returns when no debugger is connected that has booked the - output. It is blocking when a debugger is connected, but the - previous character send is not transmitted.

- Return: the input character 'chr'.
- -

- Example for the usage of the ITM Channel 31 for RTOS Kernels: -

-
-  // check if debugger connected and ITM channel enabled for tracing
-  if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA) &&
-  (ITM->TCR & ITM_TCR_ITMENA) &&
-  (ITM->TER & (1UL << 31))) {
-    // transmit trace data
-    while (ITM->PORT31_U32 == 0);
-    ITM->PORT[31].u8 = task_id;      // id of next task
-    while (ITM->PORT[31].u32 == 0);
-    ITM->PORT[31].u32 = task_status; // status information
-  }
- - -

Cortex-M3 additional Debug Access

- -

CMSIS provides additional debug functions to enlarge the Cortex-M3 Debug Access. -Data can be transmitted via a certain global buffer variable towards the target system.

- -

The buffer variable and the prototypes of the additional functions are shown in the -table below.

- - - - - - - - - - - - - - - - - - - - - - - - -
NameParameterDescription
extern volatile int ITM_RxBuffer Buffer to transmit data towards debug system.

- Value 0x5AA55AA5 indicates that buffer is empty.
int ITM_ReceiveChar (void)noneThe nonblocking functions returns the character stored in - ITM_RxBuffer.

- Return: -1 indicates that no character was received.
int ITM_CheckChar (void)noneThe function checks if a character is available in ITM_RxBuffer.

- Return: 1 indicates that a character is available, 0 indicates that - no character is available.
- - -

CMSIS Example

-

- The following section shows a typical example for using the CMSIS layer in user applications. - The example is based on a STM32F10x Device. -

-
-#include "stm32f10x.h"
-
-volatile uint32_t msTicks;                       /* timeTicks counter */
-
-void SysTick_Handler(void) {
-  msTicks++;                                     /* increment timeTicks counter */
-}
-
-__INLINE static void Delay (uint32_t dlyTicks) {
-  uint32_t curTicks = msTicks;
-
-  while ((msTicks - curTicks) < dlyTicks);
-}
-
-__INLINE static void LED_Config(void) {
-  ;                                              /* Configure the LEDs */
-}
-
-__INLINE static void LED_On (uint32_t led) {
-  ;                                              /* Turn On  LED */
-}
-
-__INLINE static void LED_Off (uint32_t led) {
-  ;                                              /* Turn Off LED */
-}
-
-int main (void) {
-  if (SysTick_Config (SystemCoreClock / 1000)) { /* Setup SysTick for 1 msec interrupts */
-    ;                                            /* Handle Error */
-    while (1);
-  }
-  
-  LED_Config();                                  /* configure the LEDs */                            
- 
-  while(1) {
-    LED_On (0x100);                              /* Turn  on the LED   */
-    Delay (100);                                 /* delay  100 Msec    */
-    LED_Off (0x100);                             /* Turn off the LED   */
-    Delay (100);                                 /* delay  100 Msec    */
-  }
-}
- - - \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/License.doc b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/CMSIS/License.doc deleted file mode 100644 index b6b8acecc137bca709444106cba045d3d01daedd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39936 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 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/Release_Notes.html b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/Release_Notes.html deleted file mode 100644 index 633e42e3..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/Release_Notes.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - - - - - - - - - -Release Notes for STM32F10x Standard Peripherals Library Drivers - - - - - -
-


-

-
- - - - - - -
- - - - - - - - - -
Back to Release page
-

Release -Notes for STM32F10x Standard Peripherals Library Drivers -(StdPeriph_Driver)

-

Copyright 2011 STMicroelectronics

-

-
-

 

- - - - - - -
-

Contents

-
    -
  1. STM32F10x Standard Peripherals Library -Drivers update History
  2. -
  3. License
  4. -
- - -

STM32F10x Standard -Peripherals Library Drivers  update History


-

V3.5.0 / 11-March-2011

-

Main -Changes

- -
    -
  • stm32f10x_can.h/.c files:
  • -
      -
    • Add 5 new functions
    • -
        -
      • 3 -new functions controlling the counter errors: CAN_GetLastErrorCode(), -CAN_GetReceiveErrorCounter() and CAN_GetLSBTransmitErrorCounter().
      • -
      -
        -
      • 1 new function to select the CAN operating mode: CAN_OperatingModeRequest().
      • -
      -
        -
      • 1 new function to support CAN TT mode: CAN_TTComModeCmd().
        -
      • -
      -
    • CAN_TransmitStatus() function updated to support all CAN transmit intermediate states
      -
    • -
    -
  • stm32f10x_i2c.h/.c files:
  • -
      -
    • Add 1 new function:
    • -
        -
      • I2C_NACKPositionConfig(): -This function configures the same bit (POS) as I2C_PECPositionConfig() -but is intended to be used in I2C mode while I2C_PECPositionConfig() is -intended to used in SMBUS mode.
      • -
      -
    -
  • stm32f10x_tim.h/.c files:
  • -
      -
    • Change the TIM_DMABurstLength_xBytes definitions to TIM_DMABurstLength_xTansfers
      -
    • -
    - - -
- -

3.4.0 -- 10/15/2010

- -
    -
  1. General
  2. -
- -
    -
  • Add support for STM32F10x High-density value line devices.
  • -
- -
    -
  1. STM32F10x_StdPeriph_Driver
  2. -
- - -
    - -
  • stm32f10x_bkp.h/.c
  • -
      -
    • Delete BKP registers definition from stm32f10x_bkp.c and use defines within stm32f10x.h file.
    • -
    -
  • stm32f10x_can.h/.c
  • -
      -
    • Delete CAN registers definition from stm32f10x_can.c and use defines within stm32f10x.h file.
      -
    • -
    • Update the wording of some defines and Asserts macro.
      -
    • -
    • CAN_GetFlagStatus() -and CAN_ClearFlag() functions: updated to support new flags (were not -supported in previous version). These flags are:  CAN_FLAG_RQCP0, -CAN_FLAG_RQCP1, CAN_FLAG_RQCP2, CAN_FLAG_FMP1, CAN_FLAG_FF1, -CAN_FLAG_FOV1, CAN_FLAG_FMP0, CAN_FLAG_FF0,   CAN_FLAG_FOV0, -CAN_FLAG_WKU, CAN_FLAG_SLAK and CAN_FLAG_LEC.
      -
    • -
    • CAN_GetITStatus() -function: add a check of the interrupt enable bit before getting the -status of corresponding interrupt pending bit.
      -
    • -
    • CAN_ClearITPendingBit() function: correct the procedure to clear the interrupt pending bit.
      -
    • -
    -
  • stm32f10x_crc.h/.c
  • -
      -
    • Delete CRC registers definition from stm32f10x_crc.c and use defines within stm32f10x.h file.
    • -
    -
  • stm32f10x_dac.h/.c
  • -
      -
    • Delete DAC registers definition from stm32f10x_dac.c and use defines within stm32f10x.h file.
    • -
    -
  • stm32f10x_dbgmcu.h/.c
  • -
      -
    • Delete DBGMCU registers definition from stm32f10x_dbgmcu.c and use defines within stm32f10x.h file.
    • -
    -
  • stm32f10x_dma.h/.c
  • -
      -
    • Delete DMA registers definition from stm32f10x_dma.c and use defines within stm32f10x.h file.
    • -
    • Add new function "void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber);"
      -
    • -
    -
  • stm32f10x_flash.h/.c
  • -
      -
    • FLASH functions (Erase and Program) updated to always clear the "PG", "MER" and "PER" bits even in case of TimeOut Error.
    • -
    -
  • stm32f10x_fsmc.h/.c
  • -
      -
    • Add new member "FSMC_AsynchronousWait" in "FSMC_NORSRAMInitTypeDef" structure.
    • -
    -
  • stm32f10x_gpio.h/.c
  • -
      -
    • GPIO_PinRemapConfig() function: add new values for GPIO_Remap parameter, to support new remap for TIM6, TIM7 and DAC DMA requests, TIM12 and DAC Triggers / DMA2_Channel5 Interrupt mapping.
    • -
    -
  • stm32f10x_pwr.h/.c
  • -
      -
    • Delete PWR registers definition from stm32f10x_pwr.c and use defines within stm32f10x.h and core_cm3.h files.
    • -
    -
  • stm32f10x_rtc.h/.c
  • -
      -
    • Delete RTC registers definition from stm32f10x_rtc.c and use defines within stm32f10x.h file.
    • -
    -
  • stm32f10x_spi.h/.c
  • -
      -
    • Add new definition for I2S Audio Clock frequencies "I2S_AudioFreq_192k".
    • -
    -
  • stm32f10x_tim.h/.c
  • -
    • Add new definition for TIM Input Capture Polarity "TIM_ICPolarity_BothEdge".
    - -
- -

3.3.0 -- 04/16/2010

- -
  1. General
-
  • Add support for STM32F10x XL-density devices.
  • I2C driver: events description and management enhancement.
-
  1. STM32F10x_StdPeriph_Driver
-
  • stm32f10x_dbgmcu.h/.c
    • DBGMCU_Config() function: add new values DBGMCU_TIMx_STOP (x: 9..14) for DBGMCU_Periph parameter.
  • stm32f10x_flash.h/.c: -updated to support Bank2 of XL-density devices (up to 1MByte of Flash -memory). For more details, refer to the description provided within -stm32f10x_flash.c file.
  • stm32f10x_gpio.h/.c
    • GPIO_PinRemapConfig() function: add new values for GPIO_Remap parameter, to support new remap for FSMC_NADV pin and TIM9..11,13,14.
  • stm32f10x_i2c.h/.c: I2C events description and management enhancement.
    • I2C_CheckEvent() -function: updated to check whether the last event contains the -I2C_EVENT  (instead of check whether the last event is equal to -I2C_EVENT)
    • Add -detailed description of I2C events and how to manage them using the -functions provided by this driver. For more information, refer to -stm32f10x_i2c.h and stm32f10x_i2c.c files.
  • stm32f10x_rcc.h/.c: updated to support TIM9..TIM14 APB clock and reset configuration
  • stm32f10x_tim.h/.c: updated to support new Timers TIM9..TIM14.
  • stm32f10x_sdio.h: 
    • SDIO_SetSDIOReadWaitMode() function: correct values of SDIO_ReadWaitMode parameter
      change
        -#define -SDIO_ReadWaitMode_CLK               -  ((uint32_t)0x00000000)
        #define -SDIO_ReadWaitMode_DATA2             -((uint32_t)0x00000001)
      by
        #define -SDIO_ReadWaitMode_CLK               -  ((uint32_t)0x00000001)
        #define -SDIO_ReadWaitMode_DATA2             -((uint32_t)0x00000000)
-

3.2.0 -- 03/01/2010

-
    -
  1. General
  2. -
-
    - -
  • Add support -for STM32 Low-density Value line (STM32F100x4/6) and -Medium-density Value line (STM32F100x8/B) devices.
  • -
  • Almost -peripherals drivers were updated to support Value -line devices features
  • -
  • Drivers limitations fix and enhancements.
  • - -
-
    -
  1. STM32F10x_StdPeriph_Driver
  2. -
-
    -
  • Add new -firmware driver for CEC peripheral: stm32f10x_cec.h and stm32f10x_cec.c
  • -
  • Timers drivers stm32f10x_tim.h/.c: add support for new General Purpose Timers: TIM15, TIM16 and TIM17.
  • -
  • RCC driver: add support for new Value peripherals: HDMI-CEC, TIM15, TIM16 and TIM17.
  • -
  • GPIO driver: add new remap parameters for TIM1, TIM15, TIM16, TIM17 and HDMI-CEC: GPIO_Remap_TIM1_DMA, GPIO_Remap_TIM15, GPIO_Remap_TIM16, GPIO_Remap_TIM17, GPIO_Remap_CEC.
  • -
  • USART -driver: add support for Oversampling by 8 mode and onebit method. 2 -functions has been added: USART_OverSampling8Cmd() and -USART_OneBitMethodCmd().
    -
  • -
  • DAC -driver: add new functions handling the DAC under run feature: -DAC_ITConfig(), DAC_GetFlagStatus(), DAC_ClearFlag(), DAC_GetITStatus() -and DAC_ClearITPendingBit().
  • -
  • DBGMCU driver: add new parameters for TIM15, TIM16 and TIM17: DBGMCU_TIM15_STOP, DBGMCU_TIM16_STOP, DBGMCU_TIM17_STOP.
    -
  • -
  • FLASH -driver: the FLASH_EraseOptionBytes() function updated. This is now just -erasing the option bytes without modifying the RDP status either -enabled or disabled.
  • -
  • PWR -driver: the PWR_EnterSTOPMode() function updated. When woken up from -STOP mode, this function resets again the SLEEPDEEP bit in the -Cortex-M3 System Control register to allow Sleep mode entering.
  • - - -
-

License

-

The -enclosed firmware and all the related documentation are not covered by -a License Agreement, if you need such License you can contact your -local STMicroelectronics office.

-

THE -PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS -WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO -SAVE TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR -ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY -CLAIMS ARISING FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY -CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH -THEIR PRODUCTS.

-

 

-
-
-

For -complete documentation on STM32(CORTEX M3) 32-Bit Microcontrollers -visit www.st.com/STM32

-
-

-
-
-

 

-
- \ No newline at end of file diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/misc.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/misc.h deleted file mode 100644 index 7d401ca9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/misc.h +++ /dev/null @@ -1,220 +0,0 @@ -/** - ****************************************************************************** - * @file misc.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the miscellaneous - * firmware library functions (add-on to CMSIS functions). - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __MISC_H -#define __MISC_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup MISC - * @{ - */ - -/** @defgroup MISC_Exported_Types - * @{ - */ - -/** - * @brief NVIC Init Structure definition - */ - -typedef struct -{ - uint8_t NVIC_IRQChannel; /*!< Specifies the IRQ channel to be enabled or disabled. - This parameter can be a value of @ref IRQn_Type - (For the complete STM32 Devices IRQ Channels list, please - refer to stm32f10x.h file) */ - - uint8_t NVIC_IRQChannelPreemptionPriority; /*!< Specifies the pre-emption priority for the IRQ channel - specified in NVIC_IRQChannel. This parameter can be a value - between 0 and 15 as described in the table @ref NVIC_Priority_Table */ - - uint8_t NVIC_IRQChannelSubPriority; /*!< Specifies the subpriority level for the IRQ channel specified - in NVIC_IRQChannel. This parameter can be a value - between 0 and 15 as described in the table @ref NVIC_Priority_Table */ - - FunctionalState NVIC_IRQChannelCmd; /*!< Specifies whether the IRQ channel defined in NVIC_IRQChannel - will be enabled or disabled. - This parameter can be set either to ENABLE or DISABLE */ -} NVIC_InitTypeDef; - -/** - * @} - */ - -/** @defgroup NVIC_Priority_Table - * @{ - */ - -/** -@code - The table below gives the allowed values of the pre-emption priority and subpriority according - to the Priority Grouping configuration performed by NVIC_PriorityGroupConfig function - ============================================================================================================================ - NVIC_PriorityGroup | NVIC_IRQChannelPreemptionPriority | NVIC_IRQChannelSubPriority | Description - ============================================================================================================================ - NVIC_PriorityGroup_0 | 0 | 0-15 | 0 bits for pre-emption priority - | | | 4 bits for subpriority - ---------------------------------------------------------------------------------------------------------------------------- - NVIC_PriorityGroup_1 | 0-1 | 0-7 | 1 bits for pre-emption priority - | | | 3 bits for subpriority - ---------------------------------------------------------------------------------------------------------------------------- - NVIC_PriorityGroup_2 | 0-3 | 0-3 | 2 bits for pre-emption priority - | | | 2 bits for subpriority - ---------------------------------------------------------------------------------------------------------------------------- - NVIC_PriorityGroup_3 | 0-7 | 0-1 | 3 bits for pre-emption priority - | | | 1 bits for subpriority - ---------------------------------------------------------------------------------------------------------------------------- - NVIC_PriorityGroup_4 | 0-15 | 0 | 4 bits for pre-emption priority - | | | 0 bits for subpriority - ============================================================================================================================ -@endcode -*/ - -/** - * @} - */ - -/** @defgroup MISC_Exported_Constants - * @{ - */ - -/** @defgroup Vector_Table_Base - * @{ - */ - -#define NVIC_VectTab_RAM ((uint32_t)0x20000000) -#define NVIC_VectTab_FLASH ((uint32_t)0x08000000) -#define IS_NVIC_VECTTAB(VECTTAB) (((VECTTAB) == NVIC_VectTab_RAM) || \ - ((VECTTAB) == NVIC_VectTab_FLASH)) -/** - * @} - */ - -/** @defgroup System_Low_Power - * @{ - */ - -#define NVIC_LP_SEVONPEND ((uint8_t)0x10) -#define NVIC_LP_SLEEPDEEP ((uint8_t)0x04) -#define NVIC_LP_SLEEPONEXIT ((uint8_t)0x02) -#define IS_NVIC_LP(LP) (((LP) == NVIC_LP_SEVONPEND) || \ - ((LP) == NVIC_LP_SLEEPDEEP) || \ - ((LP) == NVIC_LP_SLEEPONEXIT)) -/** - * @} - */ - -/** @defgroup Preemption_Priority_Group - * @{ - */ - -#define NVIC_PriorityGroup_0 ((uint32_t)0x700) /*!< 0 bits for pre-emption priority - 4 bits for subpriority */ -#define NVIC_PriorityGroup_1 ((uint32_t)0x600) /*!< 1 bits for pre-emption priority - 3 bits for subpriority */ -#define NVIC_PriorityGroup_2 ((uint32_t)0x500) /*!< 2 bits for pre-emption priority - 2 bits for subpriority */ -#define NVIC_PriorityGroup_3 ((uint32_t)0x400) /*!< 3 bits for pre-emption priority - 1 bits for subpriority */ -#define NVIC_PriorityGroup_4 ((uint32_t)0x300) /*!< 4 bits for pre-emption priority - 0 bits for subpriority */ - -#define IS_NVIC_PRIORITY_GROUP(GROUP) (((GROUP) == NVIC_PriorityGroup_0) || \ - ((GROUP) == NVIC_PriorityGroup_1) || \ - ((GROUP) == NVIC_PriorityGroup_2) || \ - ((GROUP) == NVIC_PriorityGroup_3) || \ - ((GROUP) == NVIC_PriorityGroup_4)) - -#define IS_NVIC_PREEMPTION_PRIORITY(PRIORITY) ((PRIORITY) < 0x10) - -#define IS_NVIC_SUB_PRIORITY(PRIORITY) ((PRIORITY) < 0x10) - -#define IS_NVIC_OFFSET(OFFSET) ((OFFSET) < 0x000FFFFF) - -/** - * @} - */ - -/** @defgroup SysTick_clock_source - * @{ - */ - -#define SysTick_CLKSource_HCLK_Div8 ((uint32_t)0xFFFFFFFB) -#define SysTick_CLKSource_HCLK ((uint32_t)0x00000004) -#define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SysTick_CLKSource_HCLK) || \ - ((SOURCE) == SysTick_CLKSource_HCLK_Div8)) -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup MISC_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup MISC_Exported_Functions - * @{ - */ - -void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); -void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct); -void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset); -void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState); -void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource); - -#ifdef __cplusplus -} -#endif - -#endif /* __MISC_H */ - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_adc.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_adc.h deleted file mode 100644 index d1b2653a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_adc.h +++ /dev/null @@ -1,483 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_adc.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the ADC firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_ADC_H -#define __STM32F10x_ADC_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup ADC - * @{ - */ - -/** @defgroup ADC_Exported_Types - * @{ - */ - -/** - * @brief ADC Init structure definition - */ - -typedef struct -{ - uint32_t ADC_Mode; /*!< Configures the ADC to operate in independent or - dual mode. - This parameter can be a value of @ref ADC_mode */ - - FunctionalState ADC_ScanConvMode; /*!< Specifies whether the conversion is performed in - Scan (multichannels) or Single (one channel) mode. - This parameter can be set to ENABLE or DISABLE */ - - FunctionalState ADC_ContinuousConvMode; /*!< Specifies whether the conversion is performed in - Continuous or Single mode. - This parameter can be set to ENABLE or DISABLE. */ - - uint32_t ADC_ExternalTrigConv; /*!< Defines the external trigger used to start the analog - to digital conversion of regular channels. This parameter - can be a value of @ref ADC_external_trigger_sources_for_regular_channels_conversion */ - - uint32_t ADC_DataAlign; /*!< Specifies whether the ADC data alignment is left or right. - This parameter can be a value of @ref ADC_data_align */ - - uint8_t ADC_NbrOfChannel; /*!< Specifies the number of ADC channels that will be converted - using the sequencer for regular channel group. - This parameter must range from 1 to 16. */ -}ADC_InitTypeDef; -/** - * @} - */ - -/** @defgroup ADC_Exported_Constants - * @{ - */ - -#define IS_ADC_ALL_PERIPH(PERIPH) (((PERIPH) == ADC1) || \ - ((PERIPH) == ADC2) || \ - ((PERIPH) == ADC3)) - -#define IS_ADC_DMA_PERIPH(PERIPH) (((PERIPH) == ADC1) || \ - ((PERIPH) == ADC3)) - -/** @defgroup ADC_mode - * @{ - */ - -#define ADC_Mode_Independent ((uint32_t)0x00000000) -#define ADC_Mode_RegInjecSimult ((uint32_t)0x00010000) -#define ADC_Mode_RegSimult_AlterTrig ((uint32_t)0x00020000) -#define ADC_Mode_InjecSimult_FastInterl ((uint32_t)0x00030000) -#define ADC_Mode_InjecSimult_SlowInterl ((uint32_t)0x00040000) -#define ADC_Mode_InjecSimult ((uint32_t)0x00050000) -#define ADC_Mode_RegSimult ((uint32_t)0x00060000) -#define ADC_Mode_FastInterl ((uint32_t)0x00070000) -#define ADC_Mode_SlowInterl ((uint32_t)0x00080000) -#define ADC_Mode_AlterTrig ((uint32_t)0x00090000) - -#define IS_ADC_MODE(MODE) (((MODE) == ADC_Mode_Independent) || \ - ((MODE) == ADC_Mode_RegInjecSimult) || \ - ((MODE) == ADC_Mode_RegSimult_AlterTrig) || \ - ((MODE) == ADC_Mode_InjecSimult_FastInterl) || \ - ((MODE) == ADC_Mode_InjecSimult_SlowInterl) || \ - ((MODE) == ADC_Mode_InjecSimult) || \ - ((MODE) == ADC_Mode_RegSimult) || \ - ((MODE) == ADC_Mode_FastInterl) || \ - ((MODE) == ADC_Mode_SlowInterl) || \ - ((MODE) == ADC_Mode_AlterTrig)) -/** - * @} - */ - -/** @defgroup ADC_external_trigger_sources_for_regular_channels_conversion - * @{ - */ - -#define ADC_ExternalTrigConv_T1_CC1 ((uint32_t)0x00000000) /*!< For ADC1 and ADC2 */ -#define ADC_ExternalTrigConv_T1_CC2 ((uint32_t)0x00020000) /*!< For ADC1 and ADC2 */ -#define ADC_ExternalTrigConv_T2_CC2 ((uint32_t)0x00060000) /*!< For ADC1 and ADC2 */ -#define ADC_ExternalTrigConv_T3_TRGO ((uint32_t)0x00080000) /*!< For ADC1 and ADC2 */ -#define ADC_ExternalTrigConv_T4_CC4 ((uint32_t)0x000A0000) /*!< For ADC1 and ADC2 */ -#define ADC_ExternalTrigConv_Ext_IT11_TIM8_TRGO ((uint32_t)0x000C0000) /*!< For ADC1 and ADC2 */ - -#define ADC_ExternalTrigConv_T1_CC3 ((uint32_t)0x00040000) /*!< For ADC1, ADC2 and ADC3 */ -#define ADC_ExternalTrigConv_None ((uint32_t)0x000E0000) /*!< For ADC1, ADC2 and ADC3 */ - -#define ADC_ExternalTrigConv_T3_CC1 ((uint32_t)0x00000000) /*!< For ADC3 only */ -#define ADC_ExternalTrigConv_T2_CC3 ((uint32_t)0x00020000) /*!< For ADC3 only */ -#define ADC_ExternalTrigConv_T8_CC1 ((uint32_t)0x00060000) /*!< For ADC3 only */ -#define ADC_ExternalTrigConv_T8_TRGO ((uint32_t)0x00080000) /*!< For ADC3 only */ -#define ADC_ExternalTrigConv_T5_CC1 ((uint32_t)0x000A0000) /*!< For ADC3 only */ -#define ADC_ExternalTrigConv_T5_CC3 ((uint32_t)0x000C0000) /*!< For ADC3 only */ - -#define IS_ADC_EXT_TRIG(REGTRIG) (((REGTRIG) == ADC_ExternalTrigConv_T1_CC1) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T1_CC2) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T1_CC3) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T2_CC2) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T3_TRGO) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T4_CC4) || \ - ((REGTRIG) == ADC_ExternalTrigConv_Ext_IT11_TIM8_TRGO) || \ - ((REGTRIG) == ADC_ExternalTrigConv_None) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T3_CC1) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T2_CC3) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T8_CC1) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T8_TRGO) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T5_CC1) || \ - ((REGTRIG) == ADC_ExternalTrigConv_T5_CC3)) -/** - * @} - */ - -/** @defgroup ADC_data_align - * @{ - */ - -#define ADC_DataAlign_Right ((uint32_t)0x00000000) -#define ADC_DataAlign_Left ((uint32_t)0x00000800) -#define IS_ADC_DATA_ALIGN(ALIGN) (((ALIGN) == ADC_DataAlign_Right) || \ - ((ALIGN) == ADC_DataAlign_Left)) -/** - * @} - */ - -/** @defgroup ADC_channels - * @{ - */ - -#define ADC_Channel_0 ((uint8_t)0x00) -#define ADC_Channel_1 ((uint8_t)0x01) -#define ADC_Channel_2 ((uint8_t)0x02) -#define ADC_Channel_3 ((uint8_t)0x03) -#define ADC_Channel_4 ((uint8_t)0x04) -#define ADC_Channel_5 ((uint8_t)0x05) -#define ADC_Channel_6 ((uint8_t)0x06) -#define ADC_Channel_7 ((uint8_t)0x07) -#define ADC_Channel_8 ((uint8_t)0x08) -#define ADC_Channel_9 ((uint8_t)0x09) -#define ADC_Channel_10 ((uint8_t)0x0A) -#define ADC_Channel_11 ((uint8_t)0x0B) -#define ADC_Channel_12 ((uint8_t)0x0C) -#define ADC_Channel_13 ((uint8_t)0x0D) -#define ADC_Channel_14 ((uint8_t)0x0E) -#define ADC_Channel_15 ((uint8_t)0x0F) -#define ADC_Channel_16 ((uint8_t)0x10) -#define ADC_Channel_17 ((uint8_t)0x11) - -#define ADC_Channel_TempSensor ((uint8_t)ADC_Channel_16) -#define ADC_Channel_Vrefint ((uint8_t)ADC_Channel_17) - -#define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) == ADC_Channel_0) || ((CHANNEL) == ADC_Channel_1) || \ - ((CHANNEL) == ADC_Channel_2) || ((CHANNEL) == ADC_Channel_3) || \ - ((CHANNEL) == ADC_Channel_4) || ((CHANNEL) == ADC_Channel_5) || \ - ((CHANNEL) == ADC_Channel_6) || ((CHANNEL) == ADC_Channel_7) || \ - ((CHANNEL) == ADC_Channel_8) || ((CHANNEL) == ADC_Channel_9) || \ - ((CHANNEL) == ADC_Channel_10) || ((CHANNEL) == ADC_Channel_11) || \ - ((CHANNEL) == ADC_Channel_12) || ((CHANNEL) == ADC_Channel_13) || \ - ((CHANNEL) == ADC_Channel_14) || ((CHANNEL) == ADC_Channel_15) || \ - ((CHANNEL) == ADC_Channel_16) || ((CHANNEL) == ADC_Channel_17)) -/** - * @} - */ - -/** @defgroup ADC_sampling_time - * @{ - */ - -#define ADC_SampleTime_1Cycles5 ((uint8_t)0x00) -#define ADC_SampleTime_7Cycles5 ((uint8_t)0x01) -#define ADC_SampleTime_13Cycles5 ((uint8_t)0x02) -#define ADC_SampleTime_28Cycles5 ((uint8_t)0x03) -#define ADC_SampleTime_41Cycles5 ((uint8_t)0x04) -#define ADC_SampleTime_55Cycles5 ((uint8_t)0x05) -#define ADC_SampleTime_71Cycles5 ((uint8_t)0x06) -#define ADC_SampleTime_239Cycles5 ((uint8_t)0x07) -#define IS_ADC_SAMPLE_TIME(TIME) (((TIME) == ADC_SampleTime_1Cycles5) || \ - ((TIME) == ADC_SampleTime_7Cycles5) || \ - ((TIME) == ADC_SampleTime_13Cycles5) || \ - ((TIME) == ADC_SampleTime_28Cycles5) || \ - ((TIME) == ADC_SampleTime_41Cycles5) || \ - ((TIME) == ADC_SampleTime_55Cycles5) || \ - ((TIME) == ADC_SampleTime_71Cycles5) || \ - ((TIME) == ADC_SampleTime_239Cycles5)) -/** - * @} - */ - -/** @defgroup ADC_external_trigger_sources_for_injected_channels_conversion - * @{ - */ - -#define ADC_ExternalTrigInjecConv_T2_TRGO ((uint32_t)0x00002000) /*!< For ADC1 and ADC2 */ -#define ADC_ExternalTrigInjecConv_T2_CC1 ((uint32_t)0x00003000) /*!< For ADC1 and ADC2 */ -#define ADC_ExternalTrigInjecConv_T3_CC4 ((uint32_t)0x00004000) /*!< For ADC1 and ADC2 */ -#define ADC_ExternalTrigInjecConv_T4_TRGO ((uint32_t)0x00005000) /*!< For ADC1 and ADC2 */ -#define ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4 ((uint32_t)0x00006000) /*!< For ADC1 and ADC2 */ - -#define ADC_ExternalTrigInjecConv_T1_TRGO ((uint32_t)0x00000000) /*!< For ADC1, ADC2 and ADC3 */ -#define ADC_ExternalTrigInjecConv_T1_CC4 ((uint32_t)0x00001000) /*!< For ADC1, ADC2 and ADC3 */ -#define ADC_ExternalTrigInjecConv_None ((uint32_t)0x00007000) /*!< For ADC1, ADC2 and ADC3 */ - -#define ADC_ExternalTrigInjecConv_T4_CC3 ((uint32_t)0x00002000) /*!< For ADC3 only */ -#define ADC_ExternalTrigInjecConv_T8_CC2 ((uint32_t)0x00003000) /*!< For ADC3 only */ -#define ADC_ExternalTrigInjecConv_T8_CC4 ((uint32_t)0x00004000) /*!< For ADC3 only */ -#define ADC_ExternalTrigInjecConv_T5_TRGO ((uint32_t)0x00005000) /*!< For ADC3 only */ -#define ADC_ExternalTrigInjecConv_T5_CC4 ((uint32_t)0x00006000) /*!< For ADC3 only */ - -#define IS_ADC_EXT_INJEC_TRIG(INJTRIG) (((INJTRIG) == ADC_ExternalTrigInjecConv_T1_TRGO) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T1_CC4) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T2_TRGO) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T2_CC1) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T3_CC4) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T4_TRGO) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_None) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T4_CC3) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T8_CC2) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T8_CC4) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T5_TRGO) || \ - ((INJTRIG) == ADC_ExternalTrigInjecConv_T5_CC4)) -/** - * @} - */ - -/** @defgroup ADC_injected_channel_selection - * @{ - */ - -#define ADC_InjectedChannel_1 ((uint8_t)0x14) -#define ADC_InjectedChannel_2 ((uint8_t)0x18) -#define ADC_InjectedChannel_3 ((uint8_t)0x1C) -#define ADC_InjectedChannel_4 ((uint8_t)0x20) -#define IS_ADC_INJECTED_CHANNEL(CHANNEL) (((CHANNEL) == ADC_InjectedChannel_1) || \ - ((CHANNEL) == ADC_InjectedChannel_2) || \ - ((CHANNEL) == ADC_InjectedChannel_3) || \ - ((CHANNEL) == ADC_InjectedChannel_4)) -/** - * @} - */ - -/** @defgroup ADC_analog_watchdog_selection - * @{ - */ - -#define ADC_AnalogWatchdog_SingleRegEnable ((uint32_t)0x00800200) -#define ADC_AnalogWatchdog_SingleInjecEnable ((uint32_t)0x00400200) -#define ADC_AnalogWatchdog_SingleRegOrInjecEnable ((uint32_t)0x00C00200) -#define ADC_AnalogWatchdog_AllRegEnable ((uint32_t)0x00800000) -#define ADC_AnalogWatchdog_AllInjecEnable ((uint32_t)0x00400000) -#define ADC_AnalogWatchdog_AllRegAllInjecEnable ((uint32_t)0x00C00000) -#define ADC_AnalogWatchdog_None ((uint32_t)0x00000000) - -#define IS_ADC_ANALOG_WATCHDOG(WATCHDOG) (((WATCHDOG) == ADC_AnalogWatchdog_SingleRegEnable) || \ - ((WATCHDOG) == ADC_AnalogWatchdog_SingleInjecEnable) || \ - ((WATCHDOG) == ADC_AnalogWatchdog_SingleRegOrInjecEnable) || \ - ((WATCHDOG) == ADC_AnalogWatchdog_AllRegEnable) || \ - ((WATCHDOG) == ADC_AnalogWatchdog_AllInjecEnable) || \ - ((WATCHDOG) == ADC_AnalogWatchdog_AllRegAllInjecEnable) || \ - ((WATCHDOG) == ADC_AnalogWatchdog_None)) -/** - * @} - */ - -/** @defgroup ADC_interrupts_definition - * @{ - */ - -#define ADC_IT_EOC ((uint16_t)0x0220) -#define ADC_IT_AWD ((uint16_t)0x0140) -#define ADC_IT_JEOC ((uint16_t)0x0480) - -#define IS_ADC_IT(IT) ((((IT) & (uint16_t)0xF81F) == 0x00) && ((IT) != 0x00)) - -#define IS_ADC_GET_IT(IT) (((IT) == ADC_IT_EOC) || ((IT) == ADC_IT_AWD) || \ - ((IT) == ADC_IT_JEOC)) -/** - * @} - */ - -/** @defgroup ADC_flags_definition - * @{ - */ - -#define ADC_FLAG_AWD ((uint8_t)0x01) -#define ADC_FLAG_EOC ((uint8_t)0x02) -#define ADC_FLAG_JEOC ((uint8_t)0x04) -#define ADC_FLAG_JSTRT ((uint8_t)0x08) -#define ADC_FLAG_STRT ((uint8_t)0x10) -#define IS_ADC_CLEAR_FLAG(FLAG) ((((FLAG) & (uint8_t)0xE0) == 0x00) && ((FLAG) != 0x00)) -#define IS_ADC_GET_FLAG(FLAG) (((FLAG) == ADC_FLAG_AWD) || ((FLAG) == ADC_FLAG_EOC) || \ - ((FLAG) == ADC_FLAG_JEOC) || ((FLAG)== ADC_FLAG_JSTRT) || \ - ((FLAG) == ADC_FLAG_STRT)) -/** - * @} - */ - -/** @defgroup ADC_thresholds - * @{ - */ - -#define IS_ADC_THRESHOLD(THRESHOLD) ((THRESHOLD) <= 0xFFF) - -/** - * @} - */ - -/** @defgroup ADC_injected_offset - * @{ - */ - -#define IS_ADC_OFFSET(OFFSET) ((OFFSET) <= 0xFFF) - -/** - * @} - */ - -/** @defgroup ADC_injected_length - * @{ - */ - -#define IS_ADC_INJECTED_LENGTH(LENGTH) (((LENGTH) >= 0x1) && ((LENGTH) <= 0x4)) - -/** - * @} - */ - -/** @defgroup ADC_injected_rank - * @{ - */ - -#define IS_ADC_INJECTED_RANK(RANK) (((RANK) >= 0x1) && ((RANK) <= 0x4)) - -/** - * @} - */ - - -/** @defgroup ADC_regular_length - * @{ - */ - -#define IS_ADC_REGULAR_LENGTH(LENGTH) (((LENGTH) >= 0x1) && ((LENGTH) <= 0x10)) -/** - * @} - */ - -/** @defgroup ADC_regular_rank - * @{ - */ - -#define IS_ADC_REGULAR_RANK(RANK) (((RANK) >= 0x1) && ((RANK) <= 0x10)) - -/** - * @} - */ - -/** @defgroup ADC_regular_discontinuous_mode_number - * @{ - */ - -#define IS_ADC_REGULAR_DISC_NUMBER(NUMBER) (((NUMBER) >= 0x1) && ((NUMBER) <= 0x8)) - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup ADC_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup ADC_Exported_Functions - * @{ - */ - -void ADC_DeInit(ADC_TypeDef* ADCx); -void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct); -void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct); -void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState); -void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState); -void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState); -void ADC_ResetCalibration(ADC_TypeDef* ADCx); -FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx); -void ADC_StartCalibration(ADC_TypeDef* ADCx); -FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx); -void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); -FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx); -void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, uint8_t Number); -void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState); -void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); -void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); -uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx); -uint32_t ADC_GetDualModeConversionValue(void); -void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); -void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState); -void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv); -void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); -void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); -FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef* ADCx); -void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); -void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, uint8_t Length); -void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset); -uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel); -void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog); -void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold, uint16_t LowThreshold); -void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel); -void ADC_TempSensorVrefintCmd(FunctionalState NewState); -FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG); -void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG); -ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT); -void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT); - -#ifdef __cplusplus -} -#endif - -#endif /*__STM32F10x_ADC_H */ - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_bkp.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_bkp.h deleted file mode 100644 index b620753e..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_bkp.h +++ /dev/null @@ -1,195 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_bkp.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the BKP firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_BKP_H -#define __STM32F10x_BKP_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup BKP - * @{ - */ - -/** @defgroup BKP_Exported_Types - * @{ - */ - -/** - * @} - */ - -/** @defgroup BKP_Exported_Constants - * @{ - */ - -/** @defgroup Tamper_Pin_active_level - * @{ - */ - -#define BKP_TamperPinLevel_High ((uint16_t)0x0000) -#define BKP_TamperPinLevel_Low ((uint16_t)0x0001) -#define IS_BKP_TAMPER_PIN_LEVEL(LEVEL) (((LEVEL) == BKP_TamperPinLevel_High) || \ - ((LEVEL) == BKP_TamperPinLevel_Low)) -/** - * @} - */ - -/** @defgroup RTC_output_source_to_output_on_the_Tamper_pin - * @{ - */ - -#define BKP_RTCOutputSource_None ((uint16_t)0x0000) -#define BKP_RTCOutputSource_CalibClock ((uint16_t)0x0080) -#define BKP_RTCOutputSource_Alarm ((uint16_t)0x0100) -#define BKP_RTCOutputSource_Second ((uint16_t)0x0300) -#define IS_BKP_RTC_OUTPUT_SOURCE(SOURCE) (((SOURCE) == BKP_RTCOutputSource_None) || \ - ((SOURCE) == BKP_RTCOutputSource_CalibClock) || \ - ((SOURCE) == BKP_RTCOutputSource_Alarm) || \ - ((SOURCE) == BKP_RTCOutputSource_Second)) -/** - * @} - */ - -/** @defgroup Data_Backup_Register - * @{ - */ - -#define BKP_DR1 ((uint16_t)0x0004) -#define BKP_DR2 ((uint16_t)0x0008) -#define BKP_DR3 ((uint16_t)0x000C) -#define BKP_DR4 ((uint16_t)0x0010) -#define BKP_DR5 ((uint16_t)0x0014) -#define BKP_DR6 ((uint16_t)0x0018) -#define BKP_DR7 ((uint16_t)0x001C) -#define BKP_DR8 ((uint16_t)0x0020) -#define BKP_DR9 ((uint16_t)0x0024) -#define BKP_DR10 ((uint16_t)0x0028) -#define BKP_DR11 ((uint16_t)0x0040) -#define BKP_DR12 ((uint16_t)0x0044) -#define BKP_DR13 ((uint16_t)0x0048) -#define BKP_DR14 ((uint16_t)0x004C) -#define BKP_DR15 ((uint16_t)0x0050) -#define BKP_DR16 ((uint16_t)0x0054) -#define BKP_DR17 ((uint16_t)0x0058) -#define BKP_DR18 ((uint16_t)0x005C) -#define BKP_DR19 ((uint16_t)0x0060) -#define BKP_DR20 ((uint16_t)0x0064) -#define BKP_DR21 ((uint16_t)0x0068) -#define BKP_DR22 ((uint16_t)0x006C) -#define BKP_DR23 ((uint16_t)0x0070) -#define BKP_DR24 ((uint16_t)0x0074) -#define BKP_DR25 ((uint16_t)0x0078) -#define BKP_DR26 ((uint16_t)0x007C) -#define BKP_DR27 ((uint16_t)0x0080) -#define BKP_DR28 ((uint16_t)0x0084) -#define BKP_DR29 ((uint16_t)0x0088) -#define BKP_DR30 ((uint16_t)0x008C) -#define BKP_DR31 ((uint16_t)0x0090) -#define BKP_DR32 ((uint16_t)0x0094) -#define BKP_DR33 ((uint16_t)0x0098) -#define BKP_DR34 ((uint16_t)0x009C) -#define BKP_DR35 ((uint16_t)0x00A0) -#define BKP_DR36 ((uint16_t)0x00A4) -#define BKP_DR37 ((uint16_t)0x00A8) -#define BKP_DR38 ((uint16_t)0x00AC) -#define BKP_DR39 ((uint16_t)0x00B0) -#define BKP_DR40 ((uint16_t)0x00B4) -#define BKP_DR41 ((uint16_t)0x00B8) -#define BKP_DR42 ((uint16_t)0x00BC) - -#define IS_BKP_DR(DR) (((DR) == BKP_DR1) || ((DR) == BKP_DR2) || ((DR) == BKP_DR3) || \ - ((DR) == BKP_DR4) || ((DR) == BKP_DR5) || ((DR) == BKP_DR6) || \ - ((DR) == BKP_DR7) || ((DR) == BKP_DR8) || ((DR) == BKP_DR9) || \ - ((DR) == BKP_DR10) || ((DR) == BKP_DR11) || ((DR) == BKP_DR12) || \ - ((DR) == BKP_DR13) || ((DR) == BKP_DR14) || ((DR) == BKP_DR15) || \ - ((DR) == BKP_DR16) || ((DR) == BKP_DR17) || ((DR) == BKP_DR18) || \ - ((DR) == BKP_DR19) || ((DR) == BKP_DR20) || ((DR) == BKP_DR21) || \ - ((DR) == BKP_DR22) || ((DR) == BKP_DR23) || ((DR) == BKP_DR24) || \ - ((DR) == BKP_DR25) || ((DR) == BKP_DR26) || ((DR) == BKP_DR27) || \ - ((DR) == BKP_DR28) || ((DR) == BKP_DR29) || ((DR) == BKP_DR30) || \ - ((DR) == BKP_DR31) || ((DR) == BKP_DR32) || ((DR) == BKP_DR33) || \ - ((DR) == BKP_DR34) || ((DR) == BKP_DR35) || ((DR) == BKP_DR36) || \ - ((DR) == BKP_DR37) || ((DR) == BKP_DR38) || ((DR) == BKP_DR39) || \ - ((DR) == BKP_DR40) || ((DR) == BKP_DR41) || ((DR) == BKP_DR42)) - -#define IS_BKP_CALIBRATION_VALUE(VALUE) ((VALUE) <= 0x7F) -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup BKP_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup BKP_Exported_Functions - * @{ - */ - -void BKP_DeInit(void); -void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel); -void BKP_TamperPinCmd(FunctionalState NewState); -void BKP_ITConfig(FunctionalState NewState); -void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource); -void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue); -void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data); -uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR); -FlagStatus BKP_GetFlagStatus(void); -void BKP_ClearFlag(void); -ITStatus BKP_GetITStatus(void); -void BKP_ClearITPendingBit(void); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_BKP_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_can.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_can.h deleted file mode 100644 index 648f747c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_can.h +++ /dev/null @@ -1,697 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_can.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the CAN firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_CAN_H -#define __STM32F10x_CAN_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup CAN - * @{ - */ - -/** @defgroup CAN_Exported_Types - * @{ - */ - -#define IS_CAN_ALL_PERIPH(PERIPH) (((PERIPH) == CAN1) || \ - ((PERIPH) == CAN2)) - -/** - * @brief CAN init structure definition - */ - -typedef struct -{ - uint16_t CAN_Prescaler; /*!< Specifies the length of a time quantum. - It ranges from 1 to 1024. */ - - uint8_t CAN_Mode; /*!< Specifies the CAN operating mode. - This parameter can be a value of - @ref CAN_operating_mode */ - - uint8_t CAN_SJW; /*!< Specifies the maximum number of time quanta - the CAN hardware is allowed to lengthen or - shorten a bit to perform resynchronization. - This parameter can be a value of - @ref CAN_synchronisation_jump_width */ - - uint8_t CAN_BS1; /*!< Specifies the number of time quanta in Bit - Segment 1. This parameter can be a value of - @ref CAN_time_quantum_in_bit_segment_1 */ - - uint8_t CAN_BS2; /*!< Specifies the number of time quanta in Bit - Segment 2. - This parameter can be a value of - @ref CAN_time_quantum_in_bit_segment_2 */ - - FunctionalState CAN_TTCM; /*!< Enable or disable the time triggered - communication mode. This parameter can be set - either to ENABLE or DISABLE. */ - - FunctionalState CAN_ABOM; /*!< Enable or disable the automatic bus-off - management. This parameter can be set either - to ENABLE or DISABLE. */ - - FunctionalState CAN_AWUM; /*!< Enable or disable the automatic wake-up mode. - This parameter can be set either to ENABLE or - DISABLE. */ - - FunctionalState CAN_NART; /*!< Enable or disable the no-automatic - retransmission mode. This parameter can be - set either to ENABLE or DISABLE. */ - - FunctionalState CAN_RFLM; /*!< Enable or disable the Receive FIFO Locked mode. - This parameter can be set either to ENABLE - or DISABLE. */ - - FunctionalState CAN_TXFP; /*!< Enable or disable the transmit FIFO priority. - This parameter can be set either to ENABLE - or DISABLE. */ -} CAN_InitTypeDef; - -/** - * @brief CAN filter init structure definition - */ - -typedef struct -{ - uint16_t CAN_FilterIdHigh; /*!< Specifies the filter identification number (MSBs for a 32-bit - configuration, first one for a 16-bit configuration). - This parameter can be a value between 0x0000 and 0xFFFF */ - - uint16_t CAN_FilterIdLow; /*!< Specifies the filter identification number (LSBs for a 32-bit - configuration, second one for a 16-bit configuration). - This parameter can be a value between 0x0000 and 0xFFFF */ - - uint16_t CAN_FilterMaskIdHigh; /*!< Specifies the filter mask number or identification number, - according to the mode (MSBs for a 32-bit configuration, - first one for a 16-bit configuration). - This parameter can be a value between 0x0000 and 0xFFFF */ - - uint16_t CAN_FilterMaskIdLow; /*!< Specifies the filter mask number or identification number, - according to the mode (LSBs for a 32-bit configuration, - second one for a 16-bit configuration). - This parameter can be a value between 0x0000 and 0xFFFF */ - - uint16_t CAN_FilterFIFOAssignment; /*!< Specifies the FIFO (0 or 1) which will be assigned to the filter. - This parameter can be a value of @ref CAN_filter_FIFO */ - - uint8_t CAN_FilterNumber; /*!< Specifies the filter which will be initialized. It ranges from 0 to 13. */ - - uint8_t CAN_FilterMode; /*!< Specifies the filter mode to be initialized. - This parameter can be a value of @ref CAN_filter_mode */ - - uint8_t CAN_FilterScale; /*!< Specifies the filter scale. - This parameter can be a value of @ref CAN_filter_scale */ - - FunctionalState CAN_FilterActivation; /*!< Enable or disable the filter. - This parameter can be set either to ENABLE or DISABLE. */ -} CAN_FilterInitTypeDef; - -/** - * @brief CAN Tx message structure definition - */ - -typedef struct -{ - uint32_t StdId; /*!< Specifies the standard identifier. - This parameter can be a value between 0 to 0x7FF. */ - - uint32_t ExtId; /*!< Specifies the extended identifier. - This parameter can be a value between 0 to 0x1FFFFFFF. */ - - uint8_t IDE; /*!< Specifies the type of identifier for the message that - will be transmitted. This parameter can be a value - of @ref CAN_identifier_type */ - - uint8_t RTR; /*!< Specifies the type of frame for the message that will - be transmitted. This parameter can be a value of - @ref CAN_remote_transmission_request */ - - uint8_t DLC; /*!< Specifies the length of the frame that will be - transmitted. This parameter can be a value between - 0 to 8 */ - - uint8_t Data[8]; /*!< Contains the data to be transmitted. It ranges from 0 - to 0xFF. */ -} CanTxMsg; - -/** - * @brief CAN Rx message structure definition - */ - -typedef struct -{ - uint32_t StdId; /*!< Specifies the standard identifier. - This parameter can be a value between 0 to 0x7FF. */ - - uint32_t ExtId; /*!< Specifies the extended identifier. - This parameter can be a value between 0 to 0x1FFFFFFF. */ - - uint8_t IDE; /*!< Specifies the type of identifier for the message that - will be received. This parameter can be a value of - @ref CAN_identifier_type */ - - uint8_t RTR; /*!< Specifies the type of frame for the received message. - This parameter can be a value of - @ref CAN_remote_transmission_request */ - - uint8_t DLC; /*!< Specifies the length of the frame that will be received. - This parameter can be a value between 0 to 8 */ - - uint8_t Data[8]; /*!< Contains the data to be received. It ranges from 0 to - 0xFF. */ - - uint8_t FMI; /*!< Specifies the index of the filter the message stored in - the mailbox passes through. This parameter can be a - value between 0 to 0xFF */ -} CanRxMsg; - -/** - * @} - */ - -/** @defgroup CAN_Exported_Constants - * @{ - */ - -/** @defgroup CAN_sleep_constants - * @{ - */ - -#define CAN_InitStatus_Failed ((uint8_t)0x00) /*!< CAN initialization failed */ -#define CAN_InitStatus_Success ((uint8_t)0x01) /*!< CAN initialization OK */ - -/** - * @} - */ - -/** @defgroup CAN_Mode - * @{ - */ - -#define CAN_Mode_Normal ((uint8_t)0x00) /*!< normal mode */ -#define CAN_Mode_LoopBack ((uint8_t)0x01) /*!< loopback mode */ -#define CAN_Mode_Silent ((uint8_t)0x02) /*!< silent mode */ -#define CAN_Mode_Silent_LoopBack ((uint8_t)0x03) /*!< loopback combined with silent mode */ - -#define IS_CAN_MODE(MODE) (((MODE) == CAN_Mode_Normal) || \ - ((MODE) == CAN_Mode_LoopBack)|| \ - ((MODE) == CAN_Mode_Silent) || \ - ((MODE) == CAN_Mode_Silent_LoopBack)) -/** - * @} - */ - - -/** - * @defgroup CAN_Operating_Mode - * @{ - */ -#define CAN_OperatingMode_Initialization ((uint8_t)0x00) /*!< Initialization mode */ -#define CAN_OperatingMode_Normal ((uint8_t)0x01) /*!< Normal mode */ -#define CAN_OperatingMode_Sleep ((uint8_t)0x02) /*!< sleep mode */ - - -#define IS_CAN_OPERATING_MODE(MODE) (((MODE) == CAN_OperatingMode_Initialization) ||\ - ((MODE) == CAN_OperatingMode_Normal)|| \ - ((MODE) == CAN_OperatingMode_Sleep)) -/** - * @} - */ - -/** - * @defgroup CAN_Mode_Status - * @{ - */ - -#define CAN_ModeStatus_Failed ((uint8_t)0x00) /*!< CAN entering the specific mode failed */ -#define CAN_ModeStatus_Success ((uint8_t)!CAN_ModeStatus_Failed) /*!< CAN entering the specific mode Succeed */ - - -/** - * @} - */ - -/** @defgroup CAN_synchronisation_jump_width - * @{ - */ - -#define CAN_SJW_1tq ((uint8_t)0x00) /*!< 1 time quantum */ -#define CAN_SJW_2tq ((uint8_t)0x01) /*!< 2 time quantum */ -#define CAN_SJW_3tq ((uint8_t)0x02) /*!< 3 time quantum */ -#define CAN_SJW_4tq ((uint8_t)0x03) /*!< 4 time quantum */ - -#define IS_CAN_SJW(SJW) (((SJW) == CAN_SJW_1tq) || ((SJW) == CAN_SJW_2tq)|| \ - ((SJW) == CAN_SJW_3tq) || ((SJW) == CAN_SJW_4tq)) -/** - * @} - */ - -/** @defgroup CAN_time_quantum_in_bit_segment_1 - * @{ - */ - -#define CAN_BS1_1tq ((uint8_t)0x00) /*!< 1 time quantum */ -#define CAN_BS1_2tq ((uint8_t)0x01) /*!< 2 time quantum */ -#define CAN_BS1_3tq ((uint8_t)0x02) /*!< 3 time quantum */ -#define CAN_BS1_4tq ((uint8_t)0x03) /*!< 4 time quantum */ -#define CAN_BS1_5tq ((uint8_t)0x04) /*!< 5 time quantum */ -#define CAN_BS1_6tq ((uint8_t)0x05) /*!< 6 time quantum */ -#define CAN_BS1_7tq ((uint8_t)0x06) /*!< 7 time quantum */ -#define CAN_BS1_8tq ((uint8_t)0x07) /*!< 8 time quantum */ -#define CAN_BS1_9tq ((uint8_t)0x08) /*!< 9 time quantum */ -#define CAN_BS1_10tq ((uint8_t)0x09) /*!< 10 time quantum */ -#define CAN_BS1_11tq ((uint8_t)0x0A) /*!< 11 time quantum */ -#define CAN_BS1_12tq ((uint8_t)0x0B) /*!< 12 time quantum */ -#define CAN_BS1_13tq ((uint8_t)0x0C) /*!< 13 time quantum */ -#define CAN_BS1_14tq ((uint8_t)0x0D) /*!< 14 time quantum */ -#define CAN_BS1_15tq ((uint8_t)0x0E) /*!< 15 time quantum */ -#define CAN_BS1_16tq ((uint8_t)0x0F) /*!< 16 time quantum */ - -#define IS_CAN_BS1(BS1) ((BS1) <= CAN_BS1_16tq) -/** - * @} - */ - -/** @defgroup CAN_time_quantum_in_bit_segment_2 - * @{ - */ - -#define CAN_BS2_1tq ((uint8_t)0x00) /*!< 1 time quantum */ -#define CAN_BS2_2tq ((uint8_t)0x01) /*!< 2 time quantum */ -#define CAN_BS2_3tq ((uint8_t)0x02) /*!< 3 time quantum */ -#define CAN_BS2_4tq ((uint8_t)0x03) /*!< 4 time quantum */ -#define CAN_BS2_5tq ((uint8_t)0x04) /*!< 5 time quantum */ -#define CAN_BS2_6tq ((uint8_t)0x05) /*!< 6 time quantum */ -#define CAN_BS2_7tq ((uint8_t)0x06) /*!< 7 time quantum */ -#define CAN_BS2_8tq ((uint8_t)0x07) /*!< 8 time quantum */ - -#define IS_CAN_BS2(BS2) ((BS2) <= CAN_BS2_8tq) - -/** - * @} - */ - -/** @defgroup CAN_clock_prescaler - * @{ - */ - -#define IS_CAN_PRESCALER(PRESCALER) (((PRESCALER) >= 1) && ((PRESCALER) <= 1024)) - -/** - * @} - */ - -/** @defgroup CAN_filter_number - * @{ - */ -#ifndef STM32F10X_CL - #define IS_CAN_FILTER_NUMBER(NUMBER) ((NUMBER) <= 13) -#else - #define IS_CAN_FILTER_NUMBER(NUMBER) ((NUMBER) <= 27) -#endif /* STM32F10X_CL */ -/** - * @} - */ - -/** @defgroup CAN_filter_mode - * @{ - */ - -#define CAN_FilterMode_IdMask ((uint8_t)0x00) /*!< identifier/mask mode */ -#define CAN_FilterMode_IdList ((uint8_t)0x01) /*!< identifier list mode */ - -#define IS_CAN_FILTER_MODE(MODE) (((MODE) == CAN_FilterMode_IdMask) || \ - ((MODE) == CAN_FilterMode_IdList)) -/** - * @} - */ - -/** @defgroup CAN_filter_scale - * @{ - */ - -#define CAN_FilterScale_16bit ((uint8_t)0x00) /*!< Two 16-bit filters */ -#define CAN_FilterScale_32bit ((uint8_t)0x01) /*!< One 32-bit filter */ - -#define IS_CAN_FILTER_SCALE(SCALE) (((SCALE) == CAN_FilterScale_16bit) || \ - ((SCALE) == CAN_FilterScale_32bit)) - -/** - * @} - */ - -/** @defgroup CAN_filter_FIFO - * @{ - */ - -#define CAN_Filter_FIFO0 ((uint8_t)0x00) /*!< Filter FIFO 0 assignment for filter x */ -#define CAN_Filter_FIFO1 ((uint8_t)0x01) /*!< Filter FIFO 1 assignment for filter x */ -#define IS_CAN_FILTER_FIFO(FIFO) (((FIFO) == CAN_FilterFIFO0) || \ - ((FIFO) == CAN_FilterFIFO1)) -/** - * @} - */ - -/** @defgroup Start_bank_filter_for_slave_CAN - * @{ - */ -#define IS_CAN_BANKNUMBER(BANKNUMBER) (((BANKNUMBER) >= 1) && ((BANKNUMBER) <= 27)) -/** - * @} - */ - -/** @defgroup CAN_Tx - * @{ - */ - -#define IS_CAN_TRANSMITMAILBOX(TRANSMITMAILBOX) ((TRANSMITMAILBOX) <= ((uint8_t)0x02)) -#define IS_CAN_STDID(STDID) ((STDID) <= ((uint32_t)0x7FF)) -#define IS_CAN_EXTID(EXTID) ((EXTID) <= ((uint32_t)0x1FFFFFFF)) -#define IS_CAN_DLC(DLC) ((DLC) <= ((uint8_t)0x08)) - -/** - * @} - */ - -/** @defgroup CAN_identifier_type - * @{ - */ - -#define CAN_Id_Standard ((uint32_t)0x00000000) /*!< Standard Id */ -#define CAN_Id_Extended ((uint32_t)0x00000004) /*!< Extended Id */ -#define IS_CAN_IDTYPE(IDTYPE) (((IDTYPE) == CAN_Id_Standard) || \ - ((IDTYPE) == CAN_Id_Extended)) -/** - * @} - */ - -/** @defgroup CAN_remote_transmission_request - * @{ - */ - -#define CAN_RTR_Data ((uint32_t)0x00000000) /*!< Data frame */ -#define CAN_RTR_Remote ((uint32_t)0x00000002) /*!< Remote frame */ -#define IS_CAN_RTR(RTR) (((RTR) == CAN_RTR_Data) || ((RTR) == CAN_RTR_Remote)) - -/** - * @} - */ - -/** @defgroup CAN_transmit_constants - * @{ - */ - -#define CAN_TxStatus_Failed ((uint8_t)0x00)/*!< CAN transmission failed */ -#define CAN_TxStatus_Ok ((uint8_t)0x01) /*!< CAN transmission succeeded */ -#define CAN_TxStatus_Pending ((uint8_t)0x02) /*!< CAN transmission pending */ -#define CAN_TxStatus_NoMailBox ((uint8_t)0x04) /*!< CAN cell did not provide an empty mailbox */ - -/** - * @} - */ - -/** @defgroup CAN_receive_FIFO_number_constants - * @{ - */ - -#define CAN_FIFO0 ((uint8_t)0x00) /*!< CAN FIFO 0 used to receive */ -#define CAN_FIFO1 ((uint8_t)0x01) /*!< CAN FIFO 1 used to receive */ - -#define IS_CAN_FIFO(FIFO) (((FIFO) == CAN_FIFO0) || ((FIFO) == CAN_FIFO1)) - -/** - * @} - */ - -/** @defgroup CAN_sleep_constants - * @{ - */ - -#define CAN_Sleep_Failed ((uint8_t)0x00) /*!< CAN did not enter the sleep mode */ -#define CAN_Sleep_Ok ((uint8_t)0x01) /*!< CAN entered the sleep mode */ - -/** - * @} - */ - -/** @defgroup CAN_wake_up_constants - * @{ - */ - -#define CAN_WakeUp_Failed ((uint8_t)0x00) /*!< CAN did not leave the sleep mode */ -#define CAN_WakeUp_Ok ((uint8_t)0x01) /*!< CAN leaved the sleep mode */ - -/** - * @} - */ - -/** - * @defgroup CAN_Error_Code_constants - * @{ - */ - -#define CAN_ErrorCode_NoErr ((uint8_t)0x00) /*!< No Error */ -#define CAN_ErrorCode_StuffErr ((uint8_t)0x10) /*!< Stuff Error */ -#define CAN_ErrorCode_FormErr ((uint8_t)0x20) /*!< Form Error */ -#define CAN_ErrorCode_ACKErr ((uint8_t)0x30) /*!< Acknowledgment Error */ -#define CAN_ErrorCode_BitRecessiveErr ((uint8_t)0x40) /*!< Bit Recessive Error */ -#define CAN_ErrorCode_BitDominantErr ((uint8_t)0x50) /*!< Bit Dominant Error */ -#define CAN_ErrorCode_CRCErr ((uint8_t)0x60) /*!< CRC Error */ -#define CAN_ErrorCode_SoftwareSetErr ((uint8_t)0x70) /*!< Software Set Error */ - - -/** - * @} - */ - -/** @defgroup CAN_flags - * @{ - */ -/* If the flag is 0x3XXXXXXX, it means that it can be used with CAN_GetFlagStatus() - and CAN_ClearFlag() functions. */ -/* If the flag is 0x1XXXXXXX, it means that it can only be used with CAN_GetFlagStatus() function. */ - -/* Transmit Flags */ -#define CAN_FLAG_RQCP0 ((uint32_t)0x38000001) /*!< Request MailBox0 Flag */ -#define CAN_FLAG_RQCP1 ((uint32_t)0x38000100) /*!< Request MailBox1 Flag */ -#define CAN_FLAG_RQCP2 ((uint32_t)0x38010000) /*!< Request MailBox2 Flag */ - -/* Receive Flags */ -#define CAN_FLAG_FMP0 ((uint32_t)0x12000003) /*!< FIFO 0 Message Pending Flag */ -#define CAN_FLAG_FF0 ((uint32_t)0x32000008) /*!< FIFO 0 Full Flag */ -#define CAN_FLAG_FOV0 ((uint32_t)0x32000010) /*!< FIFO 0 Overrun Flag */ -#define CAN_FLAG_FMP1 ((uint32_t)0x14000003) /*!< FIFO 1 Message Pending Flag */ -#define CAN_FLAG_FF1 ((uint32_t)0x34000008) /*!< FIFO 1 Full Flag */ -#define CAN_FLAG_FOV1 ((uint32_t)0x34000010) /*!< FIFO 1 Overrun Flag */ - -/* Operating Mode Flags */ -#define CAN_FLAG_WKU ((uint32_t)0x31000008) /*!< Wake up Flag */ -#define CAN_FLAG_SLAK ((uint32_t)0x31000012) /*!< Sleep acknowledge Flag */ -/* Note: When SLAK intterupt is disabled (SLKIE=0), no polling on SLAKI is possible. - In this case the SLAK bit can be polled.*/ - -/* Error Flags */ -#define CAN_FLAG_EWG ((uint32_t)0x10F00001) /*!< Error Warning Flag */ -#define CAN_FLAG_EPV ((uint32_t)0x10F00002) /*!< Error Passive Flag */ -#define CAN_FLAG_BOF ((uint32_t)0x10F00004) /*!< Bus-Off Flag */ -#define CAN_FLAG_LEC ((uint32_t)0x30F00070) /*!< Last error code Flag */ - -#define IS_CAN_GET_FLAG(FLAG) (((FLAG) == CAN_FLAG_LEC) || ((FLAG) == CAN_FLAG_BOF) || \ - ((FLAG) == CAN_FLAG_EPV) || ((FLAG) == CAN_FLAG_EWG) || \ - ((FLAG) == CAN_FLAG_WKU) || ((FLAG) == CAN_FLAG_FOV0) || \ - ((FLAG) == CAN_FLAG_FF0) || ((FLAG) == CAN_FLAG_FMP0) || \ - ((FLAG) == CAN_FLAG_FOV1) || ((FLAG) == CAN_FLAG_FF1) || \ - ((FLAG) == CAN_FLAG_FMP1) || ((FLAG) == CAN_FLAG_RQCP2) || \ - ((FLAG) == CAN_FLAG_RQCP1)|| ((FLAG) == CAN_FLAG_RQCP0) || \ - ((FLAG) == CAN_FLAG_SLAK )) - -#define IS_CAN_CLEAR_FLAG(FLAG)(((FLAG) == CAN_FLAG_LEC) || ((FLAG) == CAN_FLAG_RQCP2) || \ - ((FLAG) == CAN_FLAG_RQCP1) || ((FLAG) == CAN_FLAG_RQCP0) || \ - ((FLAG) == CAN_FLAG_FF0) || ((FLAG) == CAN_FLAG_FOV0) ||\ - ((FLAG) == CAN_FLAG_FF1) || ((FLAG) == CAN_FLAG_FOV1) || \ - ((FLAG) == CAN_FLAG_WKU) || ((FLAG) == CAN_FLAG_SLAK)) -/** - * @} - */ - - -/** @defgroup CAN_interrupts - * @{ - */ - - - -#define CAN_IT_TME ((uint32_t)0x00000001) /*!< Transmit mailbox empty Interrupt*/ - -/* Receive Interrupts */ -#define CAN_IT_FMP0 ((uint32_t)0x00000002) /*!< FIFO 0 message pending Interrupt*/ -#define CAN_IT_FF0 ((uint32_t)0x00000004) /*!< FIFO 0 full Interrupt*/ -#define CAN_IT_FOV0 ((uint32_t)0x00000008) /*!< FIFO 0 overrun Interrupt*/ -#define CAN_IT_FMP1 ((uint32_t)0x00000010) /*!< FIFO 1 message pending Interrupt*/ -#define CAN_IT_FF1 ((uint32_t)0x00000020) /*!< FIFO 1 full Interrupt*/ -#define CAN_IT_FOV1 ((uint32_t)0x00000040) /*!< FIFO 1 overrun Interrupt*/ - -/* Operating Mode Interrupts */ -#define CAN_IT_WKU ((uint32_t)0x00010000) /*!< Wake-up Interrupt*/ -#define CAN_IT_SLK ((uint32_t)0x00020000) /*!< Sleep acknowledge Interrupt*/ - -/* Error Interrupts */ -#define CAN_IT_EWG ((uint32_t)0x00000100) /*!< Error warning Interrupt*/ -#define CAN_IT_EPV ((uint32_t)0x00000200) /*!< Error passive Interrupt*/ -#define CAN_IT_BOF ((uint32_t)0x00000400) /*!< Bus-off Interrupt*/ -#define CAN_IT_LEC ((uint32_t)0x00000800) /*!< Last error code Interrupt*/ -#define CAN_IT_ERR ((uint32_t)0x00008000) /*!< Error Interrupt*/ - -/* Flags named as Interrupts : kept only for FW compatibility */ -#define CAN_IT_RQCP0 CAN_IT_TME -#define CAN_IT_RQCP1 CAN_IT_TME -#define CAN_IT_RQCP2 CAN_IT_TME - - -#define IS_CAN_IT(IT) (((IT) == CAN_IT_TME) || ((IT) == CAN_IT_FMP0) ||\ - ((IT) == CAN_IT_FF0) || ((IT) == CAN_IT_FOV0) ||\ - ((IT) == CAN_IT_FMP1) || ((IT) == CAN_IT_FF1) ||\ - ((IT) == CAN_IT_FOV1) || ((IT) == CAN_IT_EWG) ||\ - ((IT) == CAN_IT_EPV) || ((IT) == CAN_IT_BOF) ||\ - ((IT) == CAN_IT_LEC) || ((IT) == CAN_IT_ERR) ||\ - ((IT) == CAN_IT_WKU) || ((IT) == CAN_IT_SLK)) - -#define IS_CAN_CLEAR_IT(IT) (((IT) == CAN_IT_TME) || ((IT) == CAN_IT_FF0) ||\ - ((IT) == CAN_IT_FOV0)|| ((IT) == CAN_IT_FF1) ||\ - ((IT) == CAN_IT_FOV1)|| ((IT) == CAN_IT_EWG) ||\ - ((IT) == CAN_IT_EPV) || ((IT) == CAN_IT_BOF) ||\ - ((IT) == CAN_IT_LEC) || ((IT) == CAN_IT_ERR) ||\ - ((IT) == CAN_IT_WKU) || ((IT) == CAN_IT_SLK)) - -/** - * @} - */ - -/** @defgroup CAN_Legacy - * @{ - */ -#define CANINITFAILED CAN_InitStatus_Failed -#define CANINITOK CAN_InitStatus_Success -#define CAN_FilterFIFO0 CAN_Filter_FIFO0 -#define CAN_FilterFIFO1 CAN_Filter_FIFO1 -#define CAN_ID_STD CAN_Id_Standard -#define CAN_ID_EXT CAN_Id_Extended -#define CAN_RTR_DATA CAN_RTR_Data -#define CAN_RTR_REMOTE CAN_RTR_Remote -#define CANTXFAILE CAN_TxStatus_Failed -#define CANTXOK CAN_TxStatus_Ok -#define CANTXPENDING CAN_TxStatus_Pending -#define CAN_NO_MB CAN_TxStatus_NoMailBox -#define CANSLEEPFAILED CAN_Sleep_Failed -#define CANSLEEPOK CAN_Sleep_Ok -#define CANWAKEUPFAILED CAN_WakeUp_Failed -#define CANWAKEUPOK CAN_WakeUp_Ok - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup CAN_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup CAN_Exported_Functions - * @{ - */ -/* Function used to set the CAN configuration to the default reset state *****/ -void CAN_DeInit(CAN_TypeDef* CANx); - -/* Initialization and Configuration functions *********************************/ -uint8_t CAN_Init(CAN_TypeDef* CANx, CAN_InitTypeDef* CAN_InitStruct); -void CAN_FilterInit(CAN_FilterInitTypeDef* CAN_FilterInitStruct); -void CAN_StructInit(CAN_InitTypeDef* CAN_InitStruct); -void CAN_SlaveStartBank(uint8_t CAN_BankNumber); -void CAN_DBGFreeze(CAN_TypeDef* CANx, FunctionalState NewState); -void CAN_TTComModeCmd(CAN_TypeDef* CANx, FunctionalState NewState); - -/* Transmit functions *********************************************************/ -uint8_t CAN_Transmit(CAN_TypeDef* CANx, CanTxMsg* TxMessage); -uint8_t CAN_TransmitStatus(CAN_TypeDef* CANx, uint8_t TransmitMailbox); -void CAN_CancelTransmit(CAN_TypeDef* CANx, uint8_t Mailbox); - -/* Receive functions **********************************************************/ -void CAN_Receive(CAN_TypeDef* CANx, uint8_t FIFONumber, CanRxMsg* RxMessage); -void CAN_FIFORelease(CAN_TypeDef* CANx, uint8_t FIFONumber); -uint8_t CAN_MessagePending(CAN_TypeDef* CANx, uint8_t FIFONumber); - - -/* Operation modes functions **************************************************/ -uint8_t CAN_OperatingModeRequest(CAN_TypeDef* CANx, uint8_t CAN_OperatingMode); -uint8_t CAN_Sleep(CAN_TypeDef* CANx); -uint8_t CAN_WakeUp(CAN_TypeDef* CANx); - -/* Error management functions *************************************************/ -uint8_t CAN_GetLastErrorCode(CAN_TypeDef* CANx); -uint8_t CAN_GetReceiveErrorCounter(CAN_TypeDef* CANx); -uint8_t CAN_GetLSBTransmitErrorCounter(CAN_TypeDef* CANx); - -/* Interrupts and flags management functions **********************************/ -void CAN_ITConfig(CAN_TypeDef* CANx, uint32_t CAN_IT, FunctionalState NewState); -FlagStatus CAN_GetFlagStatus(CAN_TypeDef* CANx, uint32_t CAN_FLAG); -void CAN_ClearFlag(CAN_TypeDef* CANx, uint32_t CAN_FLAG); -ITStatus CAN_GetITStatus(CAN_TypeDef* CANx, uint32_t CAN_IT); -void CAN_ClearITPendingBit(CAN_TypeDef* CANx, uint32_t CAN_IT); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_CAN_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_cec.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_cec.h deleted file mode 100644 index a3f8fc78..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_cec.h +++ /dev/null @@ -1,210 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_cec.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the CEC firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_CEC_H -#define __STM32F10x_CEC_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup CEC - * @{ - */ - - -/** @defgroup CEC_Exported_Types - * @{ - */ - -/** - * @brief CEC Init structure definition - */ -typedef struct -{ - uint16_t CEC_BitTimingMode; /*!< Configures the CEC Bit Timing Error Mode. - This parameter can be a value of @ref CEC_BitTiming_Mode */ - uint16_t CEC_BitPeriodMode; /*!< Configures the CEC Bit Period Error Mode. - This parameter can be a value of @ref CEC_BitPeriod_Mode */ -}CEC_InitTypeDef; - -/** - * @} - */ - -/** @defgroup CEC_Exported_Constants - * @{ - */ - -/** @defgroup CEC_BitTiming_Mode - * @{ - */ -#define CEC_BitTimingStdMode ((uint16_t)0x00) /*!< Bit timing error Standard Mode */ -#define CEC_BitTimingErrFreeMode CEC_CFGR_BTEM /*!< Bit timing error Free Mode */ - -#define IS_CEC_BIT_TIMING_ERROR_MODE(MODE) (((MODE) == CEC_BitTimingStdMode) || \ - ((MODE) == CEC_BitTimingErrFreeMode)) -/** - * @} - */ - -/** @defgroup CEC_BitPeriod_Mode - * @{ - */ -#define CEC_BitPeriodStdMode ((uint16_t)0x00) /*!< Bit period error Standard Mode */ -#define CEC_BitPeriodFlexibleMode CEC_CFGR_BPEM /*!< Bit period error Flexible Mode */ - -#define IS_CEC_BIT_PERIOD_ERROR_MODE(MODE) (((MODE) == CEC_BitPeriodStdMode) || \ - ((MODE) == CEC_BitPeriodFlexibleMode)) -/** - * @} - */ - - -/** @defgroup CEC_interrupts_definition - * @{ - */ -#define CEC_IT_TERR CEC_CSR_TERR -#define CEC_IT_TBTRF CEC_CSR_TBTRF -#define CEC_IT_RERR CEC_CSR_RERR -#define CEC_IT_RBTF CEC_CSR_RBTF -#define IS_CEC_GET_IT(IT) (((IT) == CEC_IT_TERR) || ((IT) == CEC_IT_TBTRF) || \ - ((IT) == CEC_IT_RERR) || ((IT) == CEC_IT_RBTF)) -/** - * @} - */ - - -/** @defgroup CEC_Own_Address - * @{ - */ -#define IS_CEC_ADDRESS(ADDRESS) ((ADDRESS) < 0x10) -/** - * @} - */ - -/** @defgroup CEC_Prescaler - * @{ - */ -#define IS_CEC_PRESCALER(PRESCALER) ((PRESCALER) <= 0x3FFF) - -/** - * @} - */ - -/** @defgroup CEC_flags_definition - * @{ - */ - -/** - * @brief ESR register flags - */ -#define CEC_FLAG_BTE ((uint32_t)0x10010000) -#define CEC_FLAG_BPE ((uint32_t)0x10020000) -#define CEC_FLAG_RBTFE ((uint32_t)0x10040000) -#define CEC_FLAG_SBE ((uint32_t)0x10080000) -#define CEC_FLAG_ACKE ((uint32_t)0x10100000) -#define CEC_FLAG_LINE ((uint32_t)0x10200000) -#define CEC_FLAG_TBTFE ((uint32_t)0x10400000) - -/** - * @brief CSR register flags - */ -#define CEC_FLAG_TEOM ((uint32_t)0x00000002) -#define CEC_FLAG_TERR ((uint32_t)0x00000004) -#define CEC_FLAG_TBTRF ((uint32_t)0x00000008) -#define CEC_FLAG_RSOM ((uint32_t)0x00000010) -#define CEC_FLAG_REOM ((uint32_t)0x00000020) -#define CEC_FLAG_RERR ((uint32_t)0x00000040) -#define CEC_FLAG_RBTF ((uint32_t)0x00000080) - -#define IS_CEC_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0xFFFFFF03) == 0x00) && ((FLAG) != 0x00)) - -#define IS_CEC_GET_FLAG(FLAG) (((FLAG) == CEC_FLAG_BTE) || ((FLAG) == CEC_FLAG_BPE) || \ - ((FLAG) == CEC_FLAG_RBTFE) || ((FLAG)== CEC_FLAG_SBE) || \ - ((FLAG) == CEC_FLAG_ACKE) || ((FLAG) == CEC_FLAG_LINE) || \ - ((FLAG) == CEC_FLAG_TBTFE) || ((FLAG) == CEC_FLAG_TEOM) || \ - ((FLAG) == CEC_FLAG_TERR) || ((FLAG) == CEC_FLAG_TBTRF) || \ - ((FLAG) == CEC_FLAG_RSOM) || ((FLAG) == CEC_FLAG_REOM) || \ - ((FLAG) == CEC_FLAG_RERR) || ((FLAG) == CEC_FLAG_RBTF)) - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup CEC_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup CEC_Exported_Functions - * @{ - */ -void CEC_DeInit(void); -void CEC_Init(CEC_InitTypeDef* CEC_InitStruct); -void CEC_Cmd(FunctionalState NewState); -void CEC_ITConfig(FunctionalState NewState); -void CEC_OwnAddressConfig(uint8_t CEC_OwnAddress); -void CEC_SetPrescaler(uint16_t CEC_Prescaler); -void CEC_SendDataByte(uint8_t Data); -uint8_t CEC_ReceiveDataByte(void); -void CEC_StartOfMessage(void); -void CEC_EndOfMessageCmd(FunctionalState NewState); -FlagStatus CEC_GetFlagStatus(uint32_t CEC_FLAG); -void CEC_ClearFlag(uint32_t CEC_FLAG); -ITStatus CEC_GetITStatus(uint8_t CEC_IT); -void CEC_ClearITPendingBit(uint16_t CEC_IT); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_CEC_H */ - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_crc.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_crc.h deleted file mode 100644 index 658a51ce..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_crc.h +++ /dev/null @@ -1,94 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_crc.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the CRC firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_CRC_H -#define __STM32F10x_CRC_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup CRC - * @{ - */ - -/** @defgroup CRC_Exported_Types - * @{ - */ - -/** - * @} - */ - -/** @defgroup CRC_Exported_Constants - * @{ - */ - -/** - * @} - */ - -/** @defgroup CRC_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup CRC_Exported_Functions - * @{ - */ - -void CRC_ResetDR(void); -uint32_t CRC_CalcCRC(uint32_t Data); -uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength); -uint32_t CRC_GetCRC(void); -void CRC_SetIDRegister(uint8_t IDValue); -uint8_t CRC_GetIDRegister(void); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_CRC_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dac.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dac.h deleted file mode 100644 index 71061641..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dac.h +++ /dev/null @@ -1,317 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_dac.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the DAC firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_DAC_H -#define __STM32F10x_DAC_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup DAC - * @{ - */ - -/** @defgroup DAC_Exported_Types - * @{ - */ - -/** - * @brief DAC Init structure definition - */ - -typedef struct -{ - uint32_t DAC_Trigger; /*!< Specifies the external trigger for the selected DAC channel. - This parameter can be a value of @ref DAC_trigger_selection */ - - uint32_t DAC_WaveGeneration; /*!< Specifies whether DAC channel noise waves or triangle waves - are generated, or whether no wave is generated. - This parameter can be a value of @ref DAC_wave_generation */ - - uint32_t DAC_LFSRUnmask_TriangleAmplitude; /*!< Specifies the LFSR mask for noise wave generation or - the maximum amplitude triangle generation for the DAC channel. - This parameter can be a value of @ref DAC_lfsrunmask_triangleamplitude */ - - uint32_t DAC_OutputBuffer; /*!< Specifies whether the DAC channel output buffer is enabled or disabled. - This parameter can be a value of @ref DAC_output_buffer */ -}DAC_InitTypeDef; - -/** - * @} - */ - -/** @defgroup DAC_Exported_Constants - * @{ - */ - -/** @defgroup DAC_trigger_selection - * @{ - */ - -#define DAC_Trigger_None ((uint32_t)0x00000000) /*!< Conversion is automatic once the DAC1_DHRxxxx register - has been loaded, and not by external trigger */ -#define DAC_Trigger_T6_TRGO ((uint32_t)0x00000004) /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */ -#define DAC_Trigger_T8_TRGO ((uint32_t)0x0000000C) /*!< TIM8 TRGO selected as external conversion trigger for DAC channel - only in High-density devices*/ -#define DAC_Trigger_T3_TRGO ((uint32_t)0x0000000C) /*!< TIM8 TRGO selected as external conversion trigger for DAC channel - only in Connectivity line, Medium-density and Low-density Value Line devices */ -#define DAC_Trigger_T7_TRGO ((uint32_t)0x00000014) /*!< TIM7 TRGO selected as external conversion trigger for DAC channel */ -#define DAC_Trigger_T5_TRGO ((uint32_t)0x0000001C) /*!< TIM5 TRGO selected as external conversion trigger for DAC channel */ -#define DAC_Trigger_T15_TRGO ((uint32_t)0x0000001C) /*!< TIM15 TRGO selected as external conversion trigger for DAC channel - only in Medium-density and Low-density Value Line devices*/ -#define DAC_Trigger_T2_TRGO ((uint32_t)0x00000024) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */ -#define DAC_Trigger_T4_TRGO ((uint32_t)0x0000002C) /*!< TIM4 TRGO selected as external conversion trigger for DAC channel */ -#define DAC_Trigger_Ext_IT9 ((uint32_t)0x00000034) /*!< EXTI Line9 event selected as external conversion trigger for DAC channel */ -#define DAC_Trigger_Software ((uint32_t)0x0000003C) /*!< Conversion started by software trigger for DAC channel */ - -#define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_Trigger_None) || \ - ((TRIGGER) == DAC_Trigger_T6_TRGO) || \ - ((TRIGGER) == DAC_Trigger_T8_TRGO) || \ - ((TRIGGER) == DAC_Trigger_T7_TRGO) || \ - ((TRIGGER) == DAC_Trigger_T5_TRGO) || \ - ((TRIGGER) == DAC_Trigger_T2_TRGO) || \ - ((TRIGGER) == DAC_Trigger_T4_TRGO) || \ - ((TRIGGER) == DAC_Trigger_Ext_IT9) || \ - ((TRIGGER) == DAC_Trigger_Software)) - -/** - * @} - */ - -/** @defgroup DAC_wave_generation - * @{ - */ - -#define DAC_WaveGeneration_None ((uint32_t)0x00000000) -#define DAC_WaveGeneration_Noise ((uint32_t)0x00000040) -#define DAC_WaveGeneration_Triangle ((uint32_t)0x00000080) -#define IS_DAC_GENERATE_WAVE(WAVE) (((WAVE) == DAC_WaveGeneration_None) || \ - ((WAVE) == DAC_WaveGeneration_Noise) || \ - ((WAVE) == DAC_WaveGeneration_Triangle)) -/** - * @} - */ - -/** @defgroup DAC_lfsrunmask_triangleamplitude - * @{ - */ - -#define DAC_LFSRUnmask_Bit0 ((uint32_t)0x00000000) /*!< Unmask DAC channel LFSR bit0 for noise wave generation */ -#define DAC_LFSRUnmask_Bits1_0 ((uint32_t)0x00000100) /*!< Unmask DAC channel LFSR bit[1:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits2_0 ((uint32_t)0x00000200) /*!< Unmask DAC channel LFSR bit[2:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits3_0 ((uint32_t)0x00000300) /*!< Unmask DAC channel LFSR bit[3:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits4_0 ((uint32_t)0x00000400) /*!< Unmask DAC channel LFSR bit[4:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits5_0 ((uint32_t)0x00000500) /*!< Unmask DAC channel LFSR bit[5:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits6_0 ((uint32_t)0x00000600) /*!< Unmask DAC channel LFSR bit[6:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits7_0 ((uint32_t)0x00000700) /*!< Unmask DAC channel LFSR bit[7:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits8_0 ((uint32_t)0x00000800) /*!< Unmask DAC channel LFSR bit[8:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits9_0 ((uint32_t)0x00000900) /*!< Unmask DAC channel LFSR bit[9:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits10_0 ((uint32_t)0x00000A00) /*!< Unmask DAC channel LFSR bit[10:0] for noise wave generation */ -#define DAC_LFSRUnmask_Bits11_0 ((uint32_t)0x00000B00) /*!< Unmask DAC channel LFSR bit[11:0] for noise wave generation */ -#define DAC_TriangleAmplitude_1 ((uint32_t)0x00000000) /*!< Select max triangle amplitude of 1 */ -#define DAC_TriangleAmplitude_3 ((uint32_t)0x00000100) /*!< Select max triangle amplitude of 3 */ -#define DAC_TriangleAmplitude_7 ((uint32_t)0x00000200) /*!< Select max triangle amplitude of 7 */ -#define DAC_TriangleAmplitude_15 ((uint32_t)0x00000300) /*!< Select max triangle amplitude of 15 */ -#define DAC_TriangleAmplitude_31 ((uint32_t)0x00000400) /*!< Select max triangle amplitude of 31 */ -#define DAC_TriangleAmplitude_63 ((uint32_t)0x00000500) /*!< Select max triangle amplitude of 63 */ -#define DAC_TriangleAmplitude_127 ((uint32_t)0x00000600) /*!< Select max triangle amplitude of 127 */ -#define DAC_TriangleAmplitude_255 ((uint32_t)0x00000700) /*!< Select max triangle amplitude of 255 */ -#define DAC_TriangleAmplitude_511 ((uint32_t)0x00000800) /*!< Select max triangle amplitude of 511 */ -#define DAC_TriangleAmplitude_1023 ((uint32_t)0x00000900) /*!< Select max triangle amplitude of 1023 */ -#define DAC_TriangleAmplitude_2047 ((uint32_t)0x00000A00) /*!< Select max triangle amplitude of 2047 */ -#define DAC_TriangleAmplitude_4095 ((uint32_t)0x00000B00) /*!< Select max triangle amplitude of 4095 */ - -#define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUnmask_Bit0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits1_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits2_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits3_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits4_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits5_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits6_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits7_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits8_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits9_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits10_0) || \ - ((VALUE) == DAC_LFSRUnmask_Bits11_0) || \ - ((VALUE) == DAC_TriangleAmplitude_1) || \ - ((VALUE) == DAC_TriangleAmplitude_3) || \ - ((VALUE) == DAC_TriangleAmplitude_7) || \ - ((VALUE) == DAC_TriangleAmplitude_15) || \ - ((VALUE) == DAC_TriangleAmplitude_31) || \ - ((VALUE) == DAC_TriangleAmplitude_63) || \ - ((VALUE) == DAC_TriangleAmplitude_127) || \ - ((VALUE) == DAC_TriangleAmplitude_255) || \ - ((VALUE) == DAC_TriangleAmplitude_511) || \ - ((VALUE) == DAC_TriangleAmplitude_1023) || \ - ((VALUE) == DAC_TriangleAmplitude_2047) || \ - ((VALUE) == DAC_TriangleAmplitude_4095)) -/** - * @} - */ - -/** @defgroup DAC_output_buffer - * @{ - */ - -#define DAC_OutputBuffer_Enable ((uint32_t)0x00000000) -#define DAC_OutputBuffer_Disable ((uint32_t)0x00000002) -#define IS_DAC_OUTPUT_BUFFER_STATE(STATE) (((STATE) == DAC_OutputBuffer_Enable) || \ - ((STATE) == DAC_OutputBuffer_Disable)) -/** - * @} - */ - -/** @defgroup DAC_Channel_selection - * @{ - */ - -#define DAC_Channel_1 ((uint32_t)0x00000000) -#define DAC_Channel_2 ((uint32_t)0x00000010) -#define IS_DAC_CHANNEL(CHANNEL) (((CHANNEL) == DAC_Channel_1) || \ - ((CHANNEL) == DAC_Channel_2)) -/** - * @} - */ - -/** @defgroup DAC_data_alignment - * @{ - */ - -#define DAC_Align_12b_R ((uint32_t)0x00000000) -#define DAC_Align_12b_L ((uint32_t)0x00000004) -#define DAC_Align_8b_R ((uint32_t)0x00000008) -#define IS_DAC_ALIGN(ALIGN) (((ALIGN) == DAC_Align_12b_R) || \ - ((ALIGN) == DAC_Align_12b_L) || \ - ((ALIGN) == DAC_Align_8b_R)) -/** - * @} - */ - -/** @defgroup DAC_wave_generation - * @{ - */ - -#define DAC_Wave_Noise ((uint32_t)0x00000040) -#define DAC_Wave_Triangle ((uint32_t)0x00000080) -#define IS_DAC_WAVE(WAVE) (((WAVE) == DAC_Wave_Noise) || \ - ((WAVE) == DAC_Wave_Triangle)) -/** - * @} - */ - -/** @defgroup DAC_data - * @{ - */ - -#define IS_DAC_DATA(DATA) ((DATA) <= 0xFFF0) -/** - * @} - */ -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -/** @defgroup DAC_interrupts_definition - * @{ - */ - -#define DAC_IT_DMAUDR ((uint32_t)0x00002000) -#define IS_DAC_IT(IT) (((IT) == DAC_IT_DMAUDR)) - -/** - * @} - */ - -/** @defgroup DAC_flags_definition - * @{ - */ - -#define DAC_FLAG_DMAUDR ((uint32_t)0x00002000) -#define IS_DAC_FLAG(FLAG) (((FLAG) == DAC_FLAG_DMAUDR)) - -/** - * @} - */ -#endif - -/** - * @} - */ - -/** @defgroup DAC_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup DAC_Exported_Functions - * @{ - */ - -void DAC_DeInit(void); -void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct); -void DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct); -void DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState); -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -void DAC_ITConfig(uint32_t DAC_Channel, uint32_t DAC_IT, FunctionalState NewState); -#endif -void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState); -void DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState); -void DAC_DualSoftwareTriggerCmd(FunctionalState NewState); -void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState); -void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data); -void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data); -void DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t Data1); -uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel); -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -FlagStatus DAC_GetFlagStatus(uint32_t DAC_Channel, uint32_t DAC_FLAG); -void DAC_ClearFlag(uint32_t DAC_Channel, uint32_t DAC_FLAG); -ITStatus DAC_GetITStatus(uint32_t DAC_Channel, uint32_t DAC_IT); -void DAC_ClearITPendingBit(uint32_t DAC_Channel, uint32_t DAC_IT); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /*__STM32F10x_DAC_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dbgmcu.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dbgmcu.h deleted file mode 100644 index 1e6a68ac..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dbgmcu.h +++ /dev/null @@ -1,119 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_dbgmcu.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the DBGMCU - * firmware library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_DBGMCU_H -#define __STM32F10x_DBGMCU_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup DBGMCU - * @{ - */ - -/** @defgroup DBGMCU_Exported_Types - * @{ - */ - -/** - * @} - */ - -/** @defgroup DBGMCU_Exported_Constants - * @{ - */ - -#define DBGMCU_SLEEP ((uint32_t)0x00000001) -#define DBGMCU_STOP ((uint32_t)0x00000002) -#define DBGMCU_STANDBY ((uint32_t)0x00000004) -#define DBGMCU_IWDG_STOP ((uint32_t)0x00000100) -#define DBGMCU_WWDG_STOP ((uint32_t)0x00000200) -#define DBGMCU_TIM1_STOP ((uint32_t)0x00000400) -#define DBGMCU_TIM2_STOP ((uint32_t)0x00000800) -#define DBGMCU_TIM3_STOP ((uint32_t)0x00001000) -#define DBGMCU_TIM4_STOP ((uint32_t)0x00002000) -#define DBGMCU_CAN1_STOP ((uint32_t)0x00004000) -#define DBGMCU_I2C1_SMBUS_TIMEOUT ((uint32_t)0x00008000) -#define DBGMCU_I2C2_SMBUS_TIMEOUT ((uint32_t)0x00010000) -#define DBGMCU_TIM8_STOP ((uint32_t)0x00020000) -#define DBGMCU_TIM5_STOP ((uint32_t)0x00040000) -#define DBGMCU_TIM6_STOP ((uint32_t)0x00080000) -#define DBGMCU_TIM7_STOP ((uint32_t)0x00100000) -#define DBGMCU_CAN2_STOP ((uint32_t)0x00200000) -#define DBGMCU_TIM15_STOP ((uint32_t)0x00400000) -#define DBGMCU_TIM16_STOP ((uint32_t)0x00800000) -#define DBGMCU_TIM17_STOP ((uint32_t)0x01000000) -#define DBGMCU_TIM12_STOP ((uint32_t)0x02000000) -#define DBGMCU_TIM13_STOP ((uint32_t)0x04000000) -#define DBGMCU_TIM14_STOP ((uint32_t)0x08000000) -#define DBGMCU_TIM9_STOP ((uint32_t)0x10000000) -#define DBGMCU_TIM10_STOP ((uint32_t)0x20000000) -#define DBGMCU_TIM11_STOP ((uint32_t)0x40000000) - -#define IS_DBGMCU_PERIPH(PERIPH) ((((PERIPH) & 0x800000F8) == 0x00) && ((PERIPH) != 0x00)) -/** - * @} - */ - -/** @defgroup DBGMCU_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup DBGMCU_Exported_Functions - * @{ - */ - -uint32_t DBGMCU_GetREVID(void); -uint32_t DBGMCU_GetDEVID(void); -void DBGMCU_Config(uint32_t DBGMCU_Periph, FunctionalState NewState); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_DBGMCU_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dma.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dma.h deleted file mode 100644 index b5dc6a80..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dma.h +++ /dev/null @@ -1,439 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_dma.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the DMA firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_DMA_H -#define __STM32F10x_DMA_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup DMA - * @{ - */ - -/** @defgroup DMA_Exported_Types - * @{ - */ - -/** - * @brief DMA Init structure definition - */ - -typedef struct -{ - uint32_t DMA_PeripheralBaseAddr; /*!< Specifies the peripheral base address for DMAy Channelx. */ - - uint32_t DMA_MemoryBaseAddr; /*!< Specifies the memory base address for DMAy Channelx. */ - - uint32_t DMA_DIR; /*!< Specifies if the peripheral is the source or destination. - This parameter can be a value of @ref DMA_data_transfer_direction */ - - uint32_t DMA_BufferSize; /*!< Specifies the buffer size, in data unit, of the specified Channel. - The data unit is equal to the configuration set in DMA_PeripheralDataSize - or DMA_MemoryDataSize members depending in the transfer direction. */ - - uint32_t DMA_PeripheralInc; /*!< Specifies whether the Peripheral address register is incremented or not. - This parameter can be a value of @ref DMA_peripheral_incremented_mode */ - - uint32_t DMA_MemoryInc; /*!< Specifies whether the memory address register is incremented or not. - This parameter can be a value of @ref DMA_memory_incremented_mode */ - - uint32_t DMA_PeripheralDataSize; /*!< Specifies the Peripheral data width. - This parameter can be a value of @ref DMA_peripheral_data_size */ - - uint32_t DMA_MemoryDataSize; /*!< Specifies the Memory data width. - This parameter can be a value of @ref DMA_memory_data_size */ - - uint32_t DMA_Mode; /*!< Specifies the operation mode of the DMAy Channelx. - This parameter can be a value of @ref DMA_circular_normal_mode. - @note: The circular buffer mode cannot be used if the memory-to-memory - data transfer is configured on the selected Channel */ - - uint32_t DMA_Priority; /*!< Specifies the software priority for the DMAy Channelx. - This parameter can be a value of @ref DMA_priority_level */ - - uint32_t DMA_M2M; /*!< Specifies if the DMAy Channelx will be used in memory-to-memory transfer. - This parameter can be a value of @ref DMA_memory_to_memory */ -}DMA_InitTypeDef; - -/** - * @} - */ - -/** @defgroup DMA_Exported_Constants - * @{ - */ - -#define IS_DMA_ALL_PERIPH(PERIPH) (((PERIPH) == DMA1_Channel1) || \ - ((PERIPH) == DMA1_Channel2) || \ - ((PERIPH) == DMA1_Channel3) || \ - ((PERIPH) == DMA1_Channel4) || \ - ((PERIPH) == DMA1_Channel5) || \ - ((PERIPH) == DMA1_Channel6) || \ - ((PERIPH) == DMA1_Channel7) || \ - ((PERIPH) == DMA2_Channel1) || \ - ((PERIPH) == DMA2_Channel2) || \ - ((PERIPH) == DMA2_Channel3) || \ - ((PERIPH) == DMA2_Channel4) || \ - ((PERIPH) == DMA2_Channel5)) - -/** @defgroup DMA_data_transfer_direction - * @{ - */ - -#define DMA_DIR_PeripheralDST ((uint32_t)0x00000010) -#define DMA_DIR_PeripheralSRC ((uint32_t)0x00000000) -#define IS_DMA_DIR(DIR) (((DIR) == DMA_DIR_PeripheralDST) || \ - ((DIR) == DMA_DIR_PeripheralSRC)) -/** - * @} - */ - -/** @defgroup DMA_peripheral_incremented_mode - * @{ - */ - -#define DMA_PeripheralInc_Enable ((uint32_t)0x00000040) -#define DMA_PeripheralInc_Disable ((uint32_t)0x00000000) -#define IS_DMA_PERIPHERAL_INC_STATE(STATE) (((STATE) == DMA_PeripheralInc_Enable) || \ - ((STATE) == DMA_PeripheralInc_Disable)) -/** - * @} - */ - -/** @defgroup DMA_memory_incremented_mode - * @{ - */ - -#define DMA_MemoryInc_Enable ((uint32_t)0x00000080) -#define DMA_MemoryInc_Disable ((uint32_t)0x00000000) -#define IS_DMA_MEMORY_INC_STATE(STATE) (((STATE) == DMA_MemoryInc_Enable) || \ - ((STATE) == DMA_MemoryInc_Disable)) -/** - * @} - */ - -/** @defgroup DMA_peripheral_data_size - * @{ - */ - -#define DMA_PeripheralDataSize_Byte ((uint32_t)0x00000000) -#define DMA_PeripheralDataSize_HalfWord ((uint32_t)0x00000100) -#define DMA_PeripheralDataSize_Word ((uint32_t)0x00000200) -#define IS_DMA_PERIPHERAL_DATA_SIZE(SIZE) (((SIZE) == DMA_PeripheralDataSize_Byte) || \ - ((SIZE) == DMA_PeripheralDataSize_HalfWord) || \ - ((SIZE) == DMA_PeripheralDataSize_Word)) -/** - * @} - */ - -/** @defgroup DMA_memory_data_size - * @{ - */ - -#define DMA_MemoryDataSize_Byte ((uint32_t)0x00000000) -#define DMA_MemoryDataSize_HalfWord ((uint32_t)0x00000400) -#define DMA_MemoryDataSize_Word ((uint32_t)0x00000800) -#define IS_DMA_MEMORY_DATA_SIZE(SIZE) (((SIZE) == DMA_MemoryDataSize_Byte) || \ - ((SIZE) == DMA_MemoryDataSize_HalfWord) || \ - ((SIZE) == DMA_MemoryDataSize_Word)) -/** - * @} - */ - -/** @defgroup DMA_circular_normal_mode - * @{ - */ - -#define DMA_Mode_Circular ((uint32_t)0x00000020) -#define DMA_Mode_Normal ((uint32_t)0x00000000) -#define IS_DMA_MODE(MODE) (((MODE) == DMA_Mode_Circular) || ((MODE) == DMA_Mode_Normal)) -/** - * @} - */ - -/** @defgroup DMA_priority_level - * @{ - */ - -#define DMA_Priority_VeryHigh ((uint32_t)0x00003000) -#define DMA_Priority_High ((uint32_t)0x00002000) -#define DMA_Priority_Medium ((uint32_t)0x00001000) -#define DMA_Priority_Low ((uint32_t)0x00000000) -#define IS_DMA_PRIORITY(PRIORITY) (((PRIORITY) == DMA_Priority_VeryHigh) || \ - ((PRIORITY) == DMA_Priority_High) || \ - ((PRIORITY) == DMA_Priority_Medium) || \ - ((PRIORITY) == DMA_Priority_Low)) -/** - * @} - */ - -/** @defgroup DMA_memory_to_memory - * @{ - */ - -#define DMA_M2M_Enable ((uint32_t)0x00004000) -#define DMA_M2M_Disable ((uint32_t)0x00000000) -#define IS_DMA_M2M_STATE(STATE) (((STATE) == DMA_M2M_Enable) || ((STATE) == DMA_M2M_Disable)) - -/** - * @} - */ - -/** @defgroup DMA_interrupts_definition - * @{ - */ - -#define DMA_IT_TC ((uint32_t)0x00000002) -#define DMA_IT_HT ((uint32_t)0x00000004) -#define DMA_IT_TE ((uint32_t)0x00000008) -#define IS_DMA_CONFIG_IT(IT) ((((IT) & 0xFFFFFFF1) == 0x00) && ((IT) != 0x00)) - -#define DMA1_IT_GL1 ((uint32_t)0x00000001) -#define DMA1_IT_TC1 ((uint32_t)0x00000002) -#define DMA1_IT_HT1 ((uint32_t)0x00000004) -#define DMA1_IT_TE1 ((uint32_t)0x00000008) -#define DMA1_IT_GL2 ((uint32_t)0x00000010) -#define DMA1_IT_TC2 ((uint32_t)0x00000020) -#define DMA1_IT_HT2 ((uint32_t)0x00000040) -#define DMA1_IT_TE2 ((uint32_t)0x00000080) -#define DMA1_IT_GL3 ((uint32_t)0x00000100) -#define DMA1_IT_TC3 ((uint32_t)0x00000200) -#define DMA1_IT_HT3 ((uint32_t)0x00000400) -#define DMA1_IT_TE3 ((uint32_t)0x00000800) -#define DMA1_IT_GL4 ((uint32_t)0x00001000) -#define DMA1_IT_TC4 ((uint32_t)0x00002000) -#define DMA1_IT_HT4 ((uint32_t)0x00004000) -#define DMA1_IT_TE4 ((uint32_t)0x00008000) -#define DMA1_IT_GL5 ((uint32_t)0x00010000) -#define DMA1_IT_TC5 ((uint32_t)0x00020000) -#define DMA1_IT_HT5 ((uint32_t)0x00040000) -#define DMA1_IT_TE5 ((uint32_t)0x00080000) -#define DMA1_IT_GL6 ((uint32_t)0x00100000) -#define DMA1_IT_TC6 ((uint32_t)0x00200000) -#define DMA1_IT_HT6 ((uint32_t)0x00400000) -#define DMA1_IT_TE6 ((uint32_t)0x00800000) -#define DMA1_IT_GL7 ((uint32_t)0x01000000) -#define DMA1_IT_TC7 ((uint32_t)0x02000000) -#define DMA1_IT_HT7 ((uint32_t)0x04000000) -#define DMA1_IT_TE7 ((uint32_t)0x08000000) - -#define DMA2_IT_GL1 ((uint32_t)0x10000001) -#define DMA2_IT_TC1 ((uint32_t)0x10000002) -#define DMA2_IT_HT1 ((uint32_t)0x10000004) -#define DMA2_IT_TE1 ((uint32_t)0x10000008) -#define DMA2_IT_GL2 ((uint32_t)0x10000010) -#define DMA2_IT_TC2 ((uint32_t)0x10000020) -#define DMA2_IT_HT2 ((uint32_t)0x10000040) -#define DMA2_IT_TE2 ((uint32_t)0x10000080) -#define DMA2_IT_GL3 ((uint32_t)0x10000100) -#define DMA2_IT_TC3 ((uint32_t)0x10000200) -#define DMA2_IT_HT3 ((uint32_t)0x10000400) -#define DMA2_IT_TE3 ((uint32_t)0x10000800) -#define DMA2_IT_GL4 ((uint32_t)0x10001000) -#define DMA2_IT_TC4 ((uint32_t)0x10002000) -#define DMA2_IT_HT4 ((uint32_t)0x10004000) -#define DMA2_IT_TE4 ((uint32_t)0x10008000) -#define DMA2_IT_GL5 ((uint32_t)0x10010000) -#define DMA2_IT_TC5 ((uint32_t)0x10020000) -#define DMA2_IT_HT5 ((uint32_t)0x10040000) -#define DMA2_IT_TE5 ((uint32_t)0x10080000) - -#define IS_DMA_CLEAR_IT(IT) (((((IT) & 0xF0000000) == 0x00) || (((IT) & 0xEFF00000) == 0x00)) && ((IT) != 0x00)) - -#define IS_DMA_GET_IT(IT) (((IT) == DMA1_IT_GL1) || ((IT) == DMA1_IT_TC1) || \ - ((IT) == DMA1_IT_HT1) || ((IT) == DMA1_IT_TE1) || \ - ((IT) == DMA1_IT_GL2) || ((IT) == DMA1_IT_TC2) || \ - ((IT) == DMA1_IT_HT2) || ((IT) == DMA1_IT_TE2) || \ - ((IT) == DMA1_IT_GL3) || ((IT) == DMA1_IT_TC3) || \ - ((IT) == DMA1_IT_HT3) || ((IT) == DMA1_IT_TE3) || \ - ((IT) == DMA1_IT_GL4) || ((IT) == DMA1_IT_TC4) || \ - ((IT) == DMA1_IT_HT4) || ((IT) == DMA1_IT_TE4) || \ - ((IT) == DMA1_IT_GL5) || ((IT) == DMA1_IT_TC5) || \ - ((IT) == DMA1_IT_HT5) || ((IT) == DMA1_IT_TE5) || \ - ((IT) == DMA1_IT_GL6) || ((IT) == DMA1_IT_TC6) || \ - ((IT) == DMA1_IT_HT6) || ((IT) == DMA1_IT_TE6) || \ - ((IT) == DMA1_IT_GL7) || ((IT) == DMA1_IT_TC7) || \ - ((IT) == DMA1_IT_HT7) || ((IT) == DMA1_IT_TE7) || \ - ((IT) == DMA2_IT_GL1) || ((IT) == DMA2_IT_TC1) || \ - ((IT) == DMA2_IT_HT1) || ((IT) == DMA2_IT_TE1) || \ - ((IT) == DMA2_IT_GL2) || ((IT) == DMA2_IT_TC2) || \ - ((IT) == DMA2_IT_HT2) || ((IT) == DMA2_IT_TE2) || \ - ((IT) == DMA2_IT_GL3) || ((IT) == DMA2_IT_TC3) || \ - ((IT) == DMA2_IT_HT3) || ((IT) == DMA2_IT_TE3) || \ - ((IT) == DMA2_IT_GL4) || ((IT) == DMA2_IT_TC4) || \ - ((IT) == DMA2_IT_HT4) || ((IT) == DMA2_IT_TE4) || \ - ((IT) == DMA2_IT_GL5) || ((IT) == DMA2_IT_TC5) || \ - ((IT) == DMA2_IT_HT5) || ((IT) == DMA2_IT_TE5)) - -/** - * @} - */ - -/** @defgroup DMA_flags_definition - * @{ - */ -#define DMA1_FLAG_GL1 ((uint32_t)0x00000001) -#define DMA1_FLAG_TC1 ((uint32_t)0x00000002) -#define DMA1_FLAG_HT1 ((uint32_t)0x00000004) -#define DMA1_FLAG_TE1 ((uint32_t)0x00000008) -#define DMA1_FLAG_GL2 ((uint32_t)0x00000010) -#define DMA1_FLAG_TC2 ((uint32_t)0x00000020) -#define DMA1_FLAG_HT2 ((uint32_t)0x00000040) -#define DMA1_FLAG_TE2 ((uint32_t)0x00000080) -#define DMA1_FLAG_GL3 ((uint32_t)0x00000100) -#define DMA1_FLAG_TC3 ((uint32_t)0x00000200) -#define DMA1_FLAG_HT3 ((uint32_t)0x00000400) -#define DMA1_FLAG_TE3 ((uint32_t)0x00000800) -#define DMA1_FLAG_GL4 ((uint32_t)0x00001000) -#define DMA1_FLAG_TC4 ((uint32_t)0x00002000) -#define DMA1_FLAG_HT4 ((uint32_t)0x00004000) -#define DMA1_FLAG_TE4 ((uint32_t)0x00008000) -#define DMA1_FLAG_GL5 ((uint32_t)0x00010000) -#define DMA1_FLAG_TC5 ((uint32_t)0x00020000) -#define DMA1_FLAG_HT5 ((uint32_t)0x00040000) -#define DMA1_FLAG_TE5 ((uint32_t)0x00080000) -#define DMA1_FLAG_GL6 ((uint32_t)0x00100000) -#define DMA1_FLAG_TC6 ((uint32_t)0x00200000) -#define DMA1_FLAG_HT6 ((uint32_t)0x00400000) -#define DMA1_FLAG_TE6 ((uint32_t)0x00800000) -#define DMA1_FLAG_GL7 ((uint32_t)0x01000000) -#define DMA1_FLAG_TC7 ((uint32_t)0x02000000) -#define DMA1_FLAG_HT7 ((uint32_t)0x04000000) -#define DMA1_FLAG_TE7 ((uint32_t)0x08000000) - -#define DMA2_FLAG_GL1 ((uint32_t)0x10000001) -#define DMA2_FLAG_TC1 ((uint32_t)0x10000002) -#define DMA2_FLAG_HT1 ((uint32_t)0x10000004) -#define DMA2_FLAG_TE1 ((uint32_t)0x10000008) -#define DMA2_FLAG_GL2 ((uint32_t)0x10000010) -#define DMA2_FLAG_TC2 ((uint32_t)0x10000020) -#define DMA2_FLAG_HT2 ((uint32_t)0x10000040) -#define DMA2_FLAG_TE2 ((uint32_t)0x10000080) -#define DMA2_FLAG_GL3 ((uint32_t)0x10000100) -#define DMA2_FLAG_TC3 ((uint32_t)0x10000200) -#define DMA2_FLAG_HT3 ((uint32_t)0x10000400) -#define DMA2_FLAG_TE3 ((uint32_t)0x10000800) -#define DMA2_FLAG_GL4 ((uint32_t)0x10001000) -#define DMA2_FLAG_TC4 ((uint32_t)0x10002000) -#define DMA2_FLAG_HT4 ((uint32_t)0x10004000) -#define DMA2_FLAG_TE4 ((uint32_t)0x10008000) -#define DMA2_FLAG_GL5 ((uint32_t)0x10010000) -#define DMA2_FLAG_TC5 ((uint32_t)0x10020000) -#define DMA2_FLAG_HT5 ((uint32_t)0x10040000) -#define DMA2_FLAG_TE5 ((uint32_t)0x10080000) - -#define IS_DMA_CLEAR_FLAG(FLAG) (((((FLAG) & 0xF0000000) == 0x00) || (((FLAG) & 0xEFF00000) == 0x00)) && ((FLAG) != 0x00)) - -#define IS_DMA_GET_FLAG(FLAG) (((FLAG) == DMA1_FLAG_GL1) || ((FLAG) == DMA1_FLAG_TC1) || \ - ((FLAG) == DMA1_FLAG_HT1) || ((FLAG) == DMA1_FLAG_TE1) || \ - ((FLAG) == DMA1_FLAG_GL2) || ((FLAG) == DMA1_FLAG_TC2) || \ - ((FLAG) == DMA1_FLAG_HT2) || ((FLAG) == DMA1_FLAG_TE2) || \ - ((FLAG) == DMA1_FLAG_GL3) || ((FLAG) == DMA1_FLAG_TC3) || \ - ((FLAG) == DMA1_FLAG_HT3) || ((FLAG) == DMA1_FLAG_TE3) || \ - ((FLAG) == DMA1_FLAG_GL4) || ((FLAG) == DMA1_FLAG_TC4) || \ - ((FLAG) == DMA1_FLAG_HT4) || ((FLAG) == DMA1_FLAG_TE4) || \ - ((FLAG) == DMA1_FLAG_GL5) || ((FLAG) == DMA1_FLAG_TC5) || \ - ((FLAG) == DMA1_FLAG_HT5) || ((FLAG) == DMA1_FLAG_TE5) || \ - ((FLAG) == DMA1_FLAG_GL6) || ((FLAG) == DMA1_FLAG_TC6) || \ - ((FLAG) == DMA1_FLAG_HT6) || ((FLAG) == DMA1_FLAG_TE6) || \ - ((FLAG) == DMA1_FLAG_GL7) || ((FLAG) == DMA1_FLAG_TC7) || \ - ((FLAG) == DMA1_FLAG_HT7) || ((FLAG) == DMA1_FLAG_TE7) || \ - ((FLAG) == DMA2_FLAG_GL1) || ((FLAG) == DMA2_FLAG_TC1) || \ - ((FLAG) == DMA2_FLAG_HT1) || ((FLAG) == DMA2_FLAG_TE1) || \ - ((FLAG) == DMA2_FLAG_GL2) || ((FLAG) == DMA2_FLAG_TC2) || \ - ((FLAG) == DMA2_FLAG_HT2) || ((FLAG) == DMA2_FLAG_TE2) || \ - ((FLAG) == DMA2_FLAG_GL3) || ((FLAG) == DMA2_FLAG_TC3) || \ - ((FLAG) == DMA2_FLAG_HT3) || ((FLAG) == DMA2_FLAG_TE3) || \ - ((FLAG) == DMA2_FLAG_GL4) || ((FLAG) == DMA2_FLAG_TC4) || \ - ((FLAG) == DMA2_FLAG_HT4) || ((FLAG) == DMA2_FLAG_TE4) || \ - ((FLAG) == DMA2_FLAG_GL5) || ((FLAG) == DMA2_FLAG_TC5) || \ - ((FLAG) == DMA2_FLAG_HT5) || ((FLAG) == DMA2_FLAG_TE5)) -/** - * @} - */ - -/** @defgroup DMA_Buffer_Size - * @{ - */ - -#define IS_DMA_BUFFER_SIZE(SIZE) (((SIZE) >= 0x1) && ((SIZE) < 0x10000)) - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup DMA_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup DMA_Exported_Functions - * @{ - */ - -void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx); -void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct); -void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct); -void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState); -void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState); -void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber); -uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx); -FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG); -void DMA_ClearFlag(uint32_t DMAy_FLAG); -ITStatus DMA_GetITStatus(uint32_t DMAy_IT); -void DMA_ClearITPendingBit(uint32_t DMAy_IT); - -#ifdef __cplusplus -} -#endif - -#endif /*__STM32F10x_DMA_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h deleted file mode 100644 index a1ab7d03..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h +++ /dev/null @@ -1,184 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_exti.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the EXTI firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_EXTI_H -#define __STM32F10x_EXTI_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup EXTI - * @{ - */ - -/** @defgroup EXTI_Exported_Types - * @{ - */ - -/** - * @brief EXTI mode enumeration - */ - -typedef enum -{ - EXTI_Mode_Interrupt = 0x00, - EXTI_Mode_Event = 0x04 -}EXTIMode_TypeDef; - -#define IS_EXTI_MODE(MODE) (((MODE) == EXTI_Mode_Interrupt) || ((MODE) == EXTI_Mode_Event)) - -/** - * @brief EXTI Trigger enumeration - */ - -typedef enum -{ - EXTI_Trigger_Rising = 0x08, - EXTI_Trigger_Falling = 0x0C, - EXTI_Trigger_Rising_Falling = 0x10 -}EXTITrigger_TypeDef; - -#define IS_EXTI_TRIGGER(TRIGGER) (((TRIGGER) == EXTI_Trigger_Rising) || \ - ((TRIGGER) == EXTI_Trigger_Falling) || \ - ((TRIGGER) == EXTI_Trigger_Rising_Falling)) -/** - * @brief EXTI Init Structure definition - */ - -typedef struct -{ - uint32_t EXTI_Line; /*!< Specifies the EXTI lines to be enabled or disabled. - This parameter can be any combination of @ref EXTI_Lines */ - - EXTIMode_TypeDef EXTI_Mode; /*!< Specifies the mode for the EXTI lines. - This parameter can be a value of @ref EXTIMode_TypeDef */ - - EXTITrigger_TypeDef EXTI_Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines. - This parameter can be a value of @ref EXTIMode_TypeDef */ - - FunctionalState EXTI_LineCmd; /*!< Specifies the new state of the selected EXTI lines. - This parameter can be set either to ENABLE or DISABLE */ -}EXTI_InitTypeDef; - -/** - * @} - */ - -/** @defgroup EXTI_Exported_Constants - * @{ - */ - -/** @defgroup EXTI_Lines - * @{ - */ - -#define EXTI_Line0 ((uint32_t)0x00001) /*!< External interrupt line 0 */ -#define EXTI_Line1 ((uint32_t)0x00002) /*!< External interrupt line 1 */ -#define EXTI_Line2 ((uint32_t)0x00004) /*!< External interrupt line 2 */ -#define EXTI_Line3 ((uint32_t)0x00008) /*!< External interrupt line 3 */ -#define EXTI_Line4 ((uint32_t)0x00010) /*!< External interrupt line 4 */ -#define EXTI_Line5 ((uint32_t)0x00020) /*!< External interrupt line 5 */ -#define EXTI_Line6 ((uint32_t)0x00040) /*!< External interrupt line 6 */ -#define EXTI_Line7 ((uint32_t)0x00080) /*!< External interrupt line 7 */ -#define EXTI_Line8 ((uint32_t)0x00100) /*!< External interrupt line 8 */ -#define EXTI_Line9 ((uint32_t)0x00200) /*!< External interrupt line 9 */ -#define EXTI_Line10 ((uint32_t)0x00400) /*!< External interrupt line 10 */ -#define EXTI_Line11 ((uint32_t)0x00800) /*!< External interrupt line 11 */ -#define EXTI_Line12 ((uint32_t)0x01000) /*!< External interrupt line 12 */ -#define EXTI_Line13 ((uint32_t)0x02000) /*!< External interrupt line 13 */ -#define EXTI_Line14 ((uint32_t)0x04000) /*!< External interrupt line 14 */ -#define EXTI_Line15 ((uint32_t)0x08000) /*!< External interrupt line 15 */ -#define EXTI_Line16 ((uint32_t)0x10000) /*!< External interrupt line 16 Connected to the PVD Output */ -#define EXTI_Line17 ((uint32_t)0x20000) /*!< External interrupt line 17 Connected to the RTC Alarm event */ -#define EXTI_Line18 ((uint32_t)0x40000) /*!< External interrupt line 18 Connected to the USB Device/USB OTG FS - Wakeup from suspend event */ -#define EXTI_Line19 ((uint32_t)0x80000) /*!< External interrupt line 19 Connected to the Ethernet Wakeup event */ - -#define IS_EXTI_LINE(LINE) ((((LINE) & (uint32_t)0xFFF00000) == 0x00) && ((LINE) != (uint16_t)0x00)) -#define IS_GET_EXTI_LINE(LINE) (((LINE) == EXTI_Line0) || ((LINE) == EXTI_Line1) || \ - ((LINE) == EXTI_Line2) || ((LINE) == EXTI_Line3) || \ - ((LINE) == EXTI_Line4) || ((LINE) == EXTI_Line5) || \ - ((LINE) == EXTI_Line6) || ((LINE) == EXTI_Line7) || \ - ((LINE) == EXTI_Line8) || ((LINE) == EXTI_Line9) || \ - ((LINE) == EXTI_Line10) || ((LINE) == EXTI_Line11) || \ - ((LINE) == EXTI_Line12) || ((LINE) == EXTI_Line13) || \ - ((LINE) == EXTI_Line14) || ((LINE) == EXTI_Line15) || \ - ((LINE) == EXTI_Line16) || ((LINE) == EXTI_Line17) || \ - ((LINE) == EXTI_Line18) || ((LINE) == EXTI_Line19)) - - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup EXTI_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup EXTI_Exported_Functions - * @{ - */ - -void EXTI_DeInit(void); -void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct); -void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct); -void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line); -FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line); -void EXTI_ClearFlag(uint32_t EXTI_Line); -ITStatus EXTI_GetITStatus(uint32_t EXTI_Line); -void EXTI_ClearITPendingBit(uint32_t EXTI_Line); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_EXTI_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_flash.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_flash.h deleted file mode 100644 index f46d4e87..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_flash.h +++ /dev/null @@ -1,426 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_flash.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the FLASH - * firmware library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_FLASH_H -#define __STM32F10x_FLASH_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup FLASH - * @{ - */ - -/** @defgroup FLASH_Exported_Types - * @{ - */ - -/** - * @brief FLASH Status - */ - -typedef enum -{ - FLASH_BUSY = 1, - FLASH_ERROR_PG, - FLASH_ERROR_WRP, - FLASH_COMPLETE, - FLASH_TIMEOUT -}FLASH_Status; - -/** - * @} - */ - -/** @defgroup FLASH_Exported_Constants - * @{ - */ - -/** @defgroup Flash_Latency - * @{ - */ - -#define FLASH_Latency_0 ((uint32_t)0x00000000) /*!< FLASH Zero Latency cycle */ -#define FLASH_Latency_1 ((uint32_t)0x00000001) /*!< FLASH One Latency cycle */ -#define FLASH_Latency_2 ((uint32_t)0x00000002) /*!< FLASH Two Latency cycles */ -#define IS_FLASH_LATENCY(LATENCY) (((LATENCY) == FLASH_Latency_0) || \ - ((LATENCY) == FLASH_Latency_1) || \ - ((LATENCY) == FLASH_Latency_2)) -/** - * @} - */ - -/** @defgroup Half_Cycle_Enable_Disable - * @{ - */ - -#define FLASH_HalfCycleAccess_Enable ((uint32_t)0x00000008) /*!< FLASH Half Cycle Enable */ -#define FLASH_HalfCycleAccess_Disable ((uint32_t)0x00000000) /*!< FLASH Half Cycle Disable */ -#define IS_FLASH_HALFCYCLEACCESS_STATE(STATE) (((STATE) == FLASH_HalfCycleAccess_Enable) || \ - ((STATE) == FLASH_HalfCycleAccess_Disable)) -/** - * @} - */ - -/** @defgroup Prefetch_Buffer_Enable_Disable - * @{ - */ - -#define FLASH_PrefetchBuffer_Enable ((uint32_t)0x00000010) /*!< FLASH Prefetch Buffer Enable */ -#define FLASH_PrefetchBuffer_Disable ((uint32_t)0x00000000) /*!< FLASH Prefetch Buffer Disable */ -#define IS_FLASH_PREFETCHBUFFER_STATE(STATE) (((STATE) == FLASH_PrefetchBuffer_Enable) || \ - ((STATE) == FLASH_PrefetchBuffer_Disable)) -/** - * @} - */ - -/** @defgroup Option_Bytes_Write_Protection - * @{ - */ - -/* Values to be used with STM32 Low and Medium density devices */ -#define FLASH_WRProt_Pages0to3 ((uint32_t)0x00000001) /*!< STM32 Low and Medium density devices: Write protection of page 0 to 3 */ -#define FLASH_WRProt_Pages4to7 ((uint32_t)0x00000002) /*!< STM32 Low and Medium density devices: Write protection of page 4 to 7 */ -#define FLASH_WRProt_Pages8to11 ((uint32_t)0x00000004) /*!< STM32 Low and Medium density devices: Write protection of page 8 to 11 */ -#define FLASH_WRProt_Pages12to15 ((uint32_t)0x00000008) /*!< STM32 Low and Medium density devices: Write protection of page 12 to 15 */ -#define FLASH_WRProt_Pages16to19 ((uint32_t)0x00000010) /*!< STM32 Low and Medium density devices: Write protection of page 16 to 19 */ -#define FLASH_WRProt_Pages20to23 ((uint32_t)0x00000020) /*!< STM32 Low and Medium density devices: Write protection of page 20 to 23 */ -#define FLASH_WRProt_Pages24to27 ((uint32_t)0x00000040) /*!< STM32 Low and Medium density devices: Write protection of page 24 to 27 */ -#define FLASH_WRProt_Pages28to31 ((uint32_t)0x00000080) /*!< STM32 Low and Medium density devices: Write protection of page 28 to 31 */ - -/* Values to be used with STM32 Medium-density devices */ -#define FLASH_WRProt_Pages32to35 ((uint32_t)0x00000100) /*!< STM32 Medium-density devices: Write protection of page 32 to 35 */ -#define FLASH_WRProt_Pages36to39 ((uint32_t)0x00000200) /*!< STM32 Medium-density devices: Write protection of page 36 to 39 */ -#define FLASH_WRProt_Pages40to43 ((uint32_t)0x00000400) /*!< STM32 Medium-density devices: Write protection of page 40 to 43 */ -#define FLASH_WRProt_Pages44to47 ((uint32_t)0x00000800) /*!< STM32 Medium-density devices: Write protection of page 44 to 47 */ -#define FLASH_WRProt_Pages48to51 ((uint32_t)0x00001000) /*!< STM32 Medium-density devices: Write protection of page 48 to 51 */ -#define FLASH_WRProt_Pages52to55 ((uint32_t)0x00002000) /*!< STM32 Medium-density devices: Write protection of page 52 to 55 */ -#define FLASH_WRProt_Pages56to59 ((uint32_t)0x00004000) /*!< STM32 Medium-density devices: Write protection of page 56 to 59 */ -#define FLASH_WRProt_Pages60to63 ((uint32_t)0x00008000) /*!< STM32 Medium-density devices: Write protection of page 60 to 63 */ -#define FLASH_WRProt_Pages64to67 ((uint32_t)0x00010000) /*!< STM32 Medium-density devices: Write protection of page 64 to 67 */ -#define FLASH_WRProt_Pages68to71 ((uint32_t)0x00020000) /*!< STM32 Medium-density devices: Write protection of page 68 to 71 */ -#define FLASH_WRProt_Pages72to75 ((uint32_t)0x00040000) /*!< STM32 Medium-density devices: Write protection of page 72 to 75 */ -#define FLASH_WRProt_Pages76to79 ((uint32_t)0x00080000) /*!< STM32 Medium-density devices: Write protection of page 76 to 79 */ -#define FLASH_WRProt_Pages80to83 ((uint32_t)0x00100000) /*!< STM32 Medium-density devices: Write protection of page 80 to 83 */ -#define FLASH_WRProt_Pages84to87 ((uint32_t)0x00200000) /*!< STM32 Medium-density devices: Write protection of page 84 to 87 */ -#define FLASH_WRProt_Pages88to91 ((uint32_t)0x00400000) /*!< STM32 Medium-density devices: Write protection of page 88 to 91 */ -#define FLASH_WRProt_Pages92to95 ((uint32_t)0x00800000) /*!< STM32 Medium-density devices: Write protection of page 92 to 95 */ -#define FLASH_WRProt_Pages96to99 ((uint32_t)0x01000000) /*!< STM32 Medium-density devices: Write protection of page 96 to 99 */ -#define FLASH_WRProt_Pages100to103 ((uint32_t)0x02000000) /*!< STM32 Medium-density devices: Write protection of page 100 to 103 */ -#define FLASH_WRProt_Pages104to107 ((uint32_t)0x04000000) /*!< STM32 Medium-density devices: Write protection of page 104 to 107 */ -#define FLASH_WRProt_Pages108to111 ((uint32_t)0x08000000) /*!< STM32 Medium-density devices: Write protection of page 108 to 111 */ -#define FLASH_WRProt_Pages112to115 ((uint32_t)0x10000000) /*!< STM32 Medium-density devices: Write protection of page 112 to 115 */ -#define FLASH_WRProt_Pages116to119 ((uint32_t)0x20000000) /*!< STM32 Medium-density devices: Write protection of page 115 to 119 */ -#define FLASH_WRProt_Pages120to123 ((uint32_t)0x40000000) /*!< STM32 Medium-density devices: Write protection of page 120 to 123 */ -#define FLASH_WRProt_Pages124to127 ((uint32_t)0x80000000) /*!< STM32 Medium-density devices: Write protection of page 124 to 127 */ - -/* Values to be used with STM32 High-density and STM32F10X Connectivity line devices */ -#define FLASH_WRProt_Pages0to1 ((uint32_t)0x00000001) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 0 to 1 */ -#define FLASH_WRProt_Pages2to3 ((uint32_t)0x00000002) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 2 to 3 */ -#define FLASH_WRProt_Pages4to5 ((uint32_t)0x00000004) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 4 to 5 */ -#define FLASH_WRProt_Pages6to7 ((uint32_t)0x00000008) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 6 to 7 */ -#define FLASH_WRProt_Pages8to9 ((uint32_t)0x00000010) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 8 to 9 */ -#define FLASH_WRProt_Pages10to11 ((uint32_t)0x00000020) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 10 to 11 */ -#define FLASH_WRProt_Pages12to13 ((uint32_t)0x00000040) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 12 to 13 */ -#define FLASH_WRProt_Pages14to15 ((uint32_t)0x00000080) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 14 to 15 */ -#define FLASH_WRProt_Pages16to17 ((uint32_t)0x00000100) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 16 to 17 */ -#define FLASH_WRProt_Pages18to19 ((uint32_t)0x00000200) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 18 to 19 */ -#define FLASH_WRProt_Pages20to21 ((uint32_t)0x00000400) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 20 to 21 */ -#define FLASH_WRProt_Pages22to23 ((uint32_t)0x00000800) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 22 to 23 */ -#define FLASH_WRProt_Pages24to25 ((uint32_t)0x00001000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 24 to 25 */ -#define FLASH_WRProt_Pages26to27 ((uint32_t)0x00002000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 26 to 27 */ -#define FLASH_WRProt_Pages28to29 ((uint32_t)0x00004000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 28 to 29 */ -#define FLASH_WRProt_Pages30to31 ((uint32_t)0x00008000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 30 to 31 */ -#define FLASH_WRProt_Pages32to33 ((uint32_t)0x00010000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 32 to 33 */ -#define FLASH_WRProt_Pages34to35 ((uint32_t)0x00020000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 34 to 35 */ -#define FLASH_WRProt_Pages36to37 ((uint32_t)0x00040000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 36 to 37 */ -#define FLASH_WRProt_Pages38to39 ((uint32_t)0x00080000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 38 to 39 */ -#define FLASH_WRProt_Pages40to41 ((uint32_t)0x00100000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 40 to 41 */ -#define FLASH_WRProt_Pages42to43 ((uint32_t)0x00200000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 42 to 43 */ -#define FLASH_WRProt_Pages44to45 ((uint32_t)0x00400000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 44 to 45 */ -#define FLASH_WRProt_Pages46to47 ((uint32_t)0x00800000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 46 to 47 */ -#define FLASH_WRProt_Pages48to49 ((uint32_t)0x01000000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 48 to 49 */ -#define FLASH_WRProt_Pages50to51 ((uint32_t)0x02000000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 50 to 51 */ -#define FLASH_WRProt_Pages52to53 ((uint32_t)0x04000000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 52 to 53 */ -#define FLASH_WRProt_Pages54to55 ((uint32_t)0x08000000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 54 to 55 */ -#define FLASH_WRProt_Pages56to57 ((uint32_t)0x10000000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 56 to 57 */ -#define FLASH_WRProt_Pages58to59 ((uint32_t)0x20000000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 58 to 59 */ -#define FLASH_WRProt_Pages60to61 ((uint32_t)0x40000000) /*!< STM32 High-density, XL-density and Connectivity line devices: - Write protection of page 60 to 61 */ -#define FLASH_WRProt_Pages62to127 ((uint32_t)0x80000000) /*!< STM32 Connectivity line devices: Write protection of page 62 to 127 */ -#define FLASH_WRProt_Pages62to255 ((uint32_t)0x80000000) /*!< STM32 Medium-density devices: Write protection of page 62 to 255 */ -#define FLASH_WRProt_Pages62to511 ((uint32_t)0x80000000) /*!< STM32 XL-density devices: Write protection of page 62 to 511 */ - -#define FLASH_WRProt_AllPages ((uint32_t)0xFFFFFFFF) /*!< Write protection of all Pages */ - -#define IS_FLASH_WRPROT_PAGE(PAGE) (((PAGE) != 0x00000000)) - -#define IS_FLASH_ADDRESS(ADDRESS) (((ADDRESS) >= 0x08000000) && ((ADDRESS) < 0x080FFFFF)) - -#define IS_OB_DATA_ADDRESS(ADDRESS) (((ADDRESS) == 0x1FFFF804) || ((ADDRESS) == 0x1FFFF806)) - -/** - * @} - */ - -/** @defgroup Option_Bytes_IWatchdog - * @{ - */ - -#define OB_IWDG_SW ((uint16_t)0x0001) /*!< Software IWDG selected */ -#define OB_IWDG_HW ((uint16_t)0x0000) /*!< Hardware IWDG selected */ -#define IS_OB_IWDG_SOURCE(SOURCE) (((SOURCE) == OB_IWDG_SW) || ((SOURCE) == OB_IWDG_HW)) - -/** - * @} - */ - -/** @defgroup Option_Bytes_nRST_STOP - * @{ - */ - -#define OB_STOP_NoRST ((uint16_t)0x0002) /*!< No reset generated when entering in STOP */ -#define OB_STOP_RST ((uint16_t)0x0000) /*!< Reset generated when entering in STOP */ -#define IS_OB_STOP_SOURCE(SOURCE) (((SOURCE) == OB_STOP_NoRST) || ((SOURCE) == OB_STOP_RST)) - -/** - * @} - */ - -/** @defgroup Option_Bytes_nRST_STDBY - * @{ - */ - -#define OB_STDBY_NoRST ((uint16_t)0x0004) /*!< No reset generated when entering in STANDBY */ -#define OB_STDBY_RST ((uint16_t)0x0000) /*!< Reset generated when entering in STANDBY */ -#define IS_OB_STDBY_SOURCE(SOURCE) (((SOURCE) == OB_STDBY_NoRST) || ((SOURCE) == OB_STDBY_RST)) - -#ifdef STM32F10X_XL -/** - * @} - */ -/** @defgroup FLASH_Boot - * @{ - */ -#define FLASH_BOOT_Bank1 ((uint16_t)0x0000) /*!< At startup, if boot pins are set in boot from user Flash position - and this parameter is selected the device will boot from Bank1(Default) */ -#define FLASH_BOOT_Bank2 ((uint16_t)0x0001) /*!< At startup, if boot pins are set in boot from user Flash position - and this parameter is selected the device will boot from Bank 2 or Bank 1, - depending on the activation of the bank */ -#define IS_FLASH_BOOT(BOOT) (((BOOT) == FLASH_BOOT_Bank1) || ((BOOT) == FLASH_BOOT_Bank2)) -#endif -/** - * @} - */ -/** @defgroup FLASH_Interrupts - * @{ - */ -#ifdef STM32F10X_XL -#define FLASH_IT_BANK2_ERROR ((uint32_t)0x80000400) /*!< FPEC BANK2 error interrupt source */ -#define FLASH_IT_BANK2_EOP ((uint32_t)0x80001000) /*!< End of FLASH BANK2 Operation Interrupt source */ - -#define FLASH_IT_BANK1_ERROR FLASH_IT_ERROR /*!< FPEC BANK1 error interrupt source */ -#define FLASH_IT_BANK1_EOP FLASH_IT_EOP /*!< End of FLASH BANK1 Operation Interrupt source */ - -#define FLASH_IT_ERROR ((uint32_t)0x00000400) /*!< FPEC BANK1 error interrupt source */ -#define FLASH_IT_EOP ((uint32_t)0x00001000) /*!< End of FLASH BANK1 Operation Interrupt source */ -#define IS_FLASH_IT(IT) ((((IT) & (uint32_t)0x7FFFEBFF) == 0x00000000) && (((IT) != 0x00000000))) -#else -#define FLASH_IT_ERROR ((uint32_t)0x00000400) /*!< FPEC error interrupt source */ -#define FLASH_IT_EOP ((uint32_t)0x00001000) /*!< End of FLASH Operation Interrupt source */ -#define FLASH_IT_BANK1_ERROR FLASH_IT_ERROR /*!< FPEC BANK1 error interrupt source */ -#define FLASH_IT_BANK1_EOP FLASH_IT_EOP /*!< End of FLASH BANK1 Operation Interrupt source */ - -#define IS_FLASH_IT(IT) ((((IT) & (uint32_t)0xFFFFEBFF) == 0x00000000) && (((IT) != 0x00000000))) -#endif - -/** - * @} - */ - -/** @defgroup FLASH_Flags - * @{ - */ -#ifdef STM32F10X_XL -#define FLASH_FLAG_BANK2_BSY ((uint32_t)0x80000001) /*!< FLASH BANK2 Busy flag */ -#define FLASH_FLAG_BANK2_EOP ((uint32_t)0x80000020) /*!< FLASH BANK2 End of Operation flag */ -#define FLASH_FLAG_BANK2_PGERR ((uint32_t)0x80000004) /*!< FLASH BANK2 Program error flag */ -#define FLASH_FLAG_BANK2_WRPRTERR ((uint32_t)0x80000010) /*!< FLASH BANK2 Write protected error flag */ - -#define FLASH_FLAG_BANK1_BSY FLASH_FLAG_BSY /*!< FLASH BANK1 Busy flag*/ -#define FLASH_FLAG_BANK1_EOP FLASH_FLAG_EOP /*!< FLASH BANK1 End of Operation flag */ -#define FLASH_FLAG_BANK1_PGERR FLASH_FLAG_PGERR /*!< FLASH BANK1 Program error flag */ -#define FLASH_FLAG_BANK1_WRPRTERR FLASH_FLAG_WRPRTERR /*!< FLASH BANK1 Write protected error flag */ - -#define FLASH_FLAG_BSY ((uint32_t)0x00000001) /*!< FLASH Busy flag */ -#define FLASH_FLAG_EOP ((uint32_t)0x00000020) /*!< FLASH End of Operation flag */ -#define FLASH_FLAG_PGERR ((uint32_t)0x00000004) /*!< FLASH Program error flag */ -#define FLASH_FLAG_WRPRTERR ((uint32_t)0x00000010) /*!< FLASH Write protected error flag */ -#define FLASH_FLAG_OPTERR ((uint32_t)0x00000001) /*!< FLASH Option Byte error flag */ - -#define IS_FLASH_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0x7FFFFFCA) == 0x00000000) && ((FLAG) != 0x00000000)) -#define IS_FLASH_GET_FLAG(FLAG) (((FLAG) == FLASH_FLAG_BSY) || ((FLAG) == FLASH_FLAG_EOP) || \ - ((FLAG) == FLASH_FLAG_PGERR) || ((FLAG) == FLASH_FLAG_WRPRTERR) || \ - ((FLAG) == FLASH_FLAG_OPTERR)|| \ - ((FLAG) == FLASH_FLAG_BANK1_BSY) || ((FLAG) == FLASH_FLAG_BANK1_EOP) || \ - ((FLAG) == FLASH_FLAG_BANK1_PGERR) || ((FLAG) == FLASH_FLAG_BANK1_WRPRTERR) || \ - ((FLAG) == FLASH_FLAG_BANK2_BSY) || ((FLAG) == FLASH_FLAG_BANK2_EOP) || \ - ((FLAG) == FLASH_FLAG_BANK2_PGERR) || ((FLAG) == FLASH_FLAG_BANK2_WRPRTERR)) -#else -#define FLASH_FLAG_BSY ((uint32_t)0x00000001) /*!< FLASH Busy flag */ -#define FLASH_FLAG_EOP ((uint32_t)0x00000020) /*!< FLASH End of Operation flag */ -#define FLASH_FLAG_PGERR ((uint32_t)0x00000004) /*!< FLASH Program error flag */ -#define FLASH_FLAG_WRPRTERR ((uint32_t)0x00000010) /*!< FLASH Write protected error flag */ -#define FLASH_FLAG_OPTERR ((uint32_t)0x00000001) /*!< FLASH Option Byte error flag */ - -#define FLASH_FLAG_BANK1_BSY FLASH_FLAG_BSY /*!< FLASH BANK1 Busy flag*/ -#define FLASH_FLAG_BANK1_EOP FLASH_FLAG_EOP /*!< FLASH BANK1 End of Operation flag */ -#define FLASH_FLAG_BANK1_PGERR FLASH_FLAG_PGERR /*!< FLASH BANK1 Program error flag */ -#define FLASH_FLAG_BANK1_WRPRTERR FLASH_FLAG_WRPRTERR /*!< FLASH BANK1 Write protected error flag */ - -#define IS_FLASH_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0xFFFFFFCA) == 0x00000000) && ((FLAG) != 0x00000000)) -#define IS_FLASH_GET_FLAG(FLAG) (((FLAG) == FLASH_FLAG_BSY) || ((FLAG) == FLASH_FLAG_EOP) || \ - ((FLAG) == FLASH_FLAG_PGERR) || ((FLAG) == FLASH_FLAG_WRPRTERR) || \ - ((FLAG) == FLASH_FLAG_BANK1_BSY) || ((FLAG) == FLASH_FLAG_BANK1_EOP) || \ - ((FLAG) == FLASH_FLAG_BANK1_PGERR) || ((FLAG) == FLASH_FLAG_BANK1_WRPRTERR) || \ - ((FLAG) == FLASH_FLAG_OPTERR)) -#endif - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup FLASH_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup FLASH_Exported_Functions - * @{ - */ - -/*------------ Functions used for all STM32F10x devices -----*/ -void FLASH_SetLatency(uint32_t FLASH_Latency); -void FLASH_HalfCycleAccessCmd(uint32_t FLASH_HalfCycleAccess); -void FLASH_PrefetchBufferCmd(uint32_t FLASH_PrefetchBuffer); -void FLASH_Unlock(void); -void FLASH_Lock(void); -FLASH_Status FLASH_ErasePage(uint32_t Page_Address); -FLASH_Status FLASH_EraseAllPages(void); -FLASH_Status FLASH_EraseOptionBytes(void); -FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data); -FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data); -FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data); -FLASH_Status FLASH_EnableWriteProtection(uint32_t FLASH_Pages); -FLASH_Status FLASH_ReadOutProtection(FunctionalState NewState); -FLASH_Status FLASH_UserOptionByteConfig(uint16_t OB_IWDG, uint16_t OB_STOP, uint16_t OB_STDBY); -uint32_t FLASH_GetUserOptionByte(void); -uint32_t FLASH_GetWriteProtectionOptionByte(void); -FlagStatus FLASH_GetReadOutProtectionStatus(void); -FlagStatus FLASH_GetPrefetchBufferStatus(void); -void FLASH_ITConfig(uint32_t FLASH_IT, FunctionalState NewState); -FlagStatus FLASH_GetFlagStatus(uint32_t FLASH_FLAG); -void FLASH_ClearFlag(uint32_t FLASH_FLAG); -FLASH_Status FLASH_GetStatus(void); -FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout); - -/*------------ New function used for all STM32F10x devices -----*/ -void FLASH_UnlockBank1(void); -void FLASH_LockBank1(void); -FLASH_Status FLASH_EraseAllBank1Pages(void); -FLASH_Status FLASH_GetBank1Status(void); -FLASH_Status FLASH_WaitForLastBank1Operation(uint32_t Timeout); - -#ifdef STM32F10X_XL -/*---- New Functions used only with STM32F10x_XL density devices -----*/ -void FLASH_UnlockBank2(void); -void FLASH_LockBank2(void); -FLASH_Status FLASH_EraseAllBank2Pages(void); -FLASH_Status FLASH_GetBank2Status(void); -FLASH_Status FLASH_WaitForLastBank2Operation(uint32_t Timeout); -FLASH_Status FLASH_BootConfig(uint16_t FLASH_BOOT); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_FLASH_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_fsmc.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_fsmc.h deleted file mode 100644 index ee707e74..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_fsmc.h +++ /dev/null @@ -1,733 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_fsmc.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the FSMC firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_FSMC_H -#define __STM32F10x_FSMC_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup FSMC - * @{ - */ - -/** @defgroup FSMC_Exported_Types - * @{ - */ - -/** - * @brief Timing parameters For NOR/SRAM Banks - */ - -typedef struct -{ - uint32_t FSMC_AddressSetupTime; /*!< Defines the number of HCLK cycles to configure - the duration of the address setup time. - This parameter can be a value between 0 and 0xF. - @note: It is not used with synchronous NOR Flash memories. */ - - uint32_t FSMC_AddressHoldTime; /*!< Defines the number of HCLK cycles to configure - the duration of the address hold time. - This parameter can be a value between 0 and 0xF. - @note: It is not used with synchronous NOR Flash memories.*/ - - uint32_t FSMC_DataSetupTime; /*!< Defines the number of HCLK cycles to configure - the duration of the data setup time. - This parameter can be a value between 0 and 0xFF. - @note: It is used for SRAMs, ROMs and asynchronous multiplexed NOR Flash memories. */ - - uint32_t FSMC_BusTurnAroundDuration; /*!< Defines the number of HCLK cycles to configure - the duration of the bus turnaround. - This parameter can be a value between 0 and 0xF. - @note: It is only used for multiplexed NOR Flash memories. */ - - uint32_t FSMC_CLKDivision; /*!< Defines the period of CLK clock output signal, expressed in number of HCLK cycles. - This parameter can be a value between 1 and 0xF. - @note: This parameter is not used for asynchronous NOR Flash, SRAM or ROM accesses. */ - - uint32_t FSMC_DataLatency; /*!< Defines the number of memory clock cycles to issue - to the memory before getting the first data. - The value of this parameter depends on the memory type as shown below: - - It must be set to 0 in case of a CRAM - - It is don't care in asynchronous NOR, SRAM or ROM accesses - - It may assume a value between 0 and 0xF in NOR Flash memories - with synchronous burst mode enable */ - - uint32_t FSMC_AccessMode; /*!< Specifies the asynchronous access mode. - This parameter can be a value of @ref FSMC_Access_Mode */ -}FSMC_NORSRAMTimingInitTypeDef; - -/** - * @brief FSMC NOR/SRAM Init structure definition - */ - -typedef struct -{ - uint32_t FSMC_Bank; /*!< Specifies the NOR/SRAM memory bank that will be used. - This parameter can be a value of @ref FSMC_NORSRAM_Bank */ - - uint32_t FSMC_DataAddressMux; /*!< Specifies whether the address and data values are - multiplexed on the databus or not. - This parameter can be a value of @ref FSMC_Data_Address_Bus_Multiplexing */ - - uint32_t FSMC_MemoryType; /*!< Specifies the type of external memory attached to - the corresponding memory bank. - This parameter can be a value of @ref FSMC_Memory_Type */ - - uint32_t FSMC_MemoryDataWidth; /*!< Specifies the external memory device width. - This parameter can be a value of @ref FSMC_Data_Width */ - - uint32_t FSMC_BurstAccessMode; /*!< Enables or disables the burst access mode for Flash memory, - valid only with synchronous burst Flash memories. - This parameter can be a value of @ref FSMC_Burst_Access_Mode */ - - uint32_t FSMC_AsynchronousWait; /*!< Enables or disables wait signal during asynchronous transfers, - valid only with asynchronous Flash memories. - This parameter can be a value of @ref FSMC_AsynchronousWait */ - - uint32_t FSMC_WaitSignalPolarity; /*!< Specifies the wait signal polarity, valid only when accessing - the Flash memory in burst mode. - This parameter can be a value of @ref FSMC_Wait_Signal_Polarity */ - - uint32_t FSMC_WrapMode; /*!< Enables or disables the Wrapped burst access mode for Flash - memory, valid only when accessing Flash memories in burst mode. - This parameter can be a value of @ref FSMC_Wrap_Mode */ - - uint32_t FSMC_WaitSignalActive; /*!< Specifies if the wait signal is asserted by the memory one - clock cycle before the wait state or during the wait state, - valid only when accessing memories in burst mode. - This parameter can be a value of @ref FSMC_Wait_Timing */ - - uint32_t FSMC_WriteOperation; /*!< Enables or disables the write operation in the selected bank by the FSMC. - This parameter can be a value of @ref FSMC_Write_Operation */ - - uint32_t FSMC_WaitSignal; /*!< Enables or disables the wait-state insertion via wait - signal, valid for Flash memory access in burst mode. - This parameter can be a value of @ref FSMC_Wait_Signal */ - - uint32_t FSMC_ExtendedMode; /*!< Enables or disables the extended mode. - This parameter can be a value of @ref FSMC_Extended_Mode */ - - uint32_t FSMC_WriteBurst; /*!< Enables or disables the write burst operation. - This parameter can be a value of @ref FSMC_Write_Burst */ - - FSMC_NORSRAMTimingInitTypeDef* FSMC_ReadWriteTimingStruct; /*!< Timing Parameters for write and read access if the ExtendedMode is not used*/ - - FSMC_NORSRAMTimingInitTypeDef* FSMC_WriteTimingStruct; /*!< Timing Parameters for write access if the ExtendedMode is used*/ -}FSMC_NORSRAMInitTypeDef; - -/** - * @brief Timing parameters For FSMC NAND and PCCARD Banks - */ - -typedef struct -{ - uint32_t FSMC_SetupTime; /*!< Defines the number of HCLK cycles to setup address before - the command assertion for NAND-Flash read or write access - to common/Attribute or I/O memory space (depending on - the memory space timing to be configured). - This parameter can be a value between 0 and 0xFF.*/ - - uint32_t FSMC_WaitSetupTime; /*!< Defines the minimum number of HCLK cycles to assert the - command for NAND-Flash read or write access to - common/Attribute or I/O memory space (depending on the - memory space timing to be configured). - This parameter can be a number between 0x00 and 0xFF */ - - uint32_t FSMC_HoldSetupTime; /*!< Defines the number of HCLK clock cycles to hold address - (and data for write access) after the command deassertion - for NAND-Flash read or write access to common/Attribute - or I/O memory space (depending on the memory space timing - to be configured). - This parameter can be a number between 0x00 and 0xFF */ - - uint32_t FSMC_HiZSetupTime; /*!< Defines the number of HCLK clock cycles during which the - databus is kept in HiZ after the start of a NAND-Flash - write access to common/Attribute or I/O memory space (depending - on the memory space timing to be configured). - This parameter can be a number between 0x00 and 0xFF */ -}FSMC_NAND_PCCARDTimingInitTypeDef; - -/** - * @brief FSMC NAND Init structure definition - */ - -typedef struct -{ - uint32_t FSMC_Bank; /*!< Specifies the NAND memory bank that will be used. - This parameter can be a value of @ref FSMC_NAND_Bank */ - - uint32_t FSMC_Waitfeature; /*!< Enables or disables the Wait feature for the NAND Memory Bank. - This parameter can be any value of @ref FSMC_Wait_feature */ - - uint32_t FSMC_MemoryDataWidth; /*!< Specifies the external memory device width. - This parameter can be any value of @ref FSMC_Data_Width */ - - uint32_t FSMC_ECC; /*!< Enables or disables the ECC computation. - This parameter can be any value of @ref FSMC_ECC */ - - uint32_t FSMC_ECCPageSize; /*!< Defines the page size for the extended ECC. - This parameter can be any value of @ref FSMC_ECC_Page_Size */ - - uint32_t FSMC_TCLRSetupTime; /*!< Defines the number of HCLK cycles to configure the - delay between CLE low and RE low. - This parameter can be a value between 0 and 0xFF. */ - - uint32_t FSMC_TARSetupTime; /*!< Defines the number of HCLK cycles to configure the - delay between ALE low and RE low. - This parameter can be a number between 0x0 and 0xFF */ - - FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_CommonSpaceTimingStruct; /*!< FSMC Common Space Timing */ - - FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_AttributeSpaceTimingStruct; /*!< FSMC Attribute Space Timing */ -}FSMC_NANDInitTypeDef; - -/** - * @brief FSMC PCCARD Init structure definition - */ - -typedef struct -{ - uint32_t FSMC_Waitfeature; /*!< Enables or disables the Wait feature for the Memory Bank. - This parameter can be any value of @ref FSMC_Wait_feature */ - - uint32_t FSMC_TCLRSetupTime; /*!< Defines the number of HCLK cycles to configure the - delay between CLE low and RE low. - This parameter can be a value between 0 and 0xFF. */ - - uint32_t FSMC_TARSetupTime; /*!< Defines the number of HCLK cycles to configure the - delay between ALE low and RE low. - This parameter can be a number between 0x0 and 0xFF */ - - - FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_CommonSpaceTimingStruct; /*!< FSMC Common Space Timing */ - - FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_AttributeSpaceTimingStruct; /*!< FSMC Attribute Space Timing */ - - FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_IOSpaceTimingStruct; /*!< FSMC IO Space Timing */ -}FSMC_PCCARDInitTypeDef; - -/** - * @} - */ - -/** @defgroup FSMC_Exported_Constants - * @{ - */ - -/** @defgroup FSMC_NORSRAM_Bank - * @{ - */ -#define FSMC_Bank1_NORSRAM1 ((uint32_t)0x00000000) -#define FSMC_Bank1_NORSRAM2 ((uint32_t)0x00000002) -#define FSMC_Bank1_NORSRAM3 ((uint32_t)0x00000004) -#define FSMC_Bank1_NORSRAM4 ((uint32_t)0x00000006) -/** - * @} - */ - -/** @defgroup FSMC_NAND_Bank - * @{ - */ -#define FSMC_Bank2_NAND ((uint32_t)0x00000010) -#define FSMC_Bank3_NAND ((uint32_t)0x00000100) -/** - * @} - */ - -/** @defgroup FSMC_PCCARD_Bank - * @{ - */ -#define FSMC_Bank4_PCCARD ((uint32_t)0x00001000) -/** - * @} - */ - -#define IS_FSMC_NORSRAM_BANK(BANK) (((BANK) == FSMC_Bank1_NORSRAM1) || \ - ((BANK) == FSMC_Bank1_NORSRAM2) || \ - ((BANK) == FSMC_Bank1_NORSRAM3) || \ - ((BANK) == FSMC_Bank1_NORSRAM4)) - -#define IS_FSMC_NAND_BANK(BANK) (((BANK) == FSMC_Bank2_NAND) || \ - ((BANK) == FSMC_Bank3_NAND)) - -#define IS_FSMC_GETFLAG_BANK(BANK) (((BANK) == FSMC_Bank2_NAND) || \ - ((BANK) == FSMC_Bank3_NAND) || \ - ((BANK) == FSMC_Bank4_PCCARD)) - -#define IS_FSMC_IT_BANK(BANK) (((BANK) == FSMC_Bank2_NAND) || \ - ((BANK) == FSMC_Bank3_NAND) || \ - ((BANK) == FSMC_Bank4_PCCARD)) - -/** @defgroup NOR_SRAM_Controller - * @{ - */ - -/** @defgroup FSMC_Data_Address_Bus_Multiplexing - * @{ - */ - -#define FSMC_DataAddressMux_Disable ((uint32_t)0x00000000) -#define FSMC_DataAddressMux_Enable ((uint32_t)0x00000002) -#define IS_FSMC_MUX(MUX) (((MUX) == FSMC_DataAddressMux_Disable) || \ - ((MUX) == FSMC_DataAddressMux_Enable)) - -/** - * @} - */ - -/** @defgroup FSMC_Memory_Type - * @{ - */ - -#define FSMC_MemoryType_SRAM ((uint32_t)0x00000000) -#define FSMC_MemoryType_PSRAM ((uint32_t)0x00000004) -#define FSMC_MemoryType_NOR ((uint32_t)0x00000008) -#define IS_FSMC_MEMORY(MEMORY) (((MEMORY) == FSMC_MemoryType_SRAM) || \ - ((MEMORY) == FSMC_MemoryType_PSRAM)|| \ - ((MEMORY) == FSMC_MemoryType_NOR)) - -/** - * @} - */ - -/** @defgroup FSMC_Data_Width - * @{ - */ - -#define FSMC_MemoryDataWidth_8b ((uint32_t)0x00000000) -#define FSMC_MemoryDataWidth_16b ((uint32_t)0x00000010) -#define IS_FSMC_MEMORY_WIDTH(WIDTH) (((WIDTH) == FSMC_MemoryDataWidth_8b) || \ - ((WIDTH) == FSMC_MemoryDataWidth_16b)) - -/** - * @} - */ - -/** @defgroup FSMC_Burst_Access_Mode - * @{ - */ - -#define FSMC_BurstAccessMode_Disable ((uint32_t)0x00000000) -#define FSMC_BurstAccessMode_Enable ((uint32_t)0x00000100) -#define IS_FSMC_BURSTMODE(STATE) (((STATE) == FSMC_BurstAccessMode_Disable) || \ - ((STATE) == FSMC_BurstAccessMode_Enable)) -/** - * @} - */ - -/** @defgroup FSMC_AsynchronousWait - * @{ - */ -#define FSMC_AsynchronousWait_Disable ((uint32_t)0x00000000) -#define FSMC_AsynchronousWait_Enable ((uint32_t)0x00008000) -#define IS_FSMC_ASYNWAIT(STATE) (((STATE) == FSMC_AsynchronousWait_Disable) || \ - ((STATE) == FSMC_AsynchronousWait_Enable)) - -/** - * @} - */ - -/** @defgroup FSMC_Wait_Signal_Polarity - * @{ - */ - -#define FSMC_WaitSignalPolarity_Low ((uint32_t)0x00000000) -#define FSMC_WaitSignalPolarity_High ((uint32_t)0x00000200) -#define IS_FSMC_WAIT_POLARITY(POLARITY) (((POLARITY) == FSMC_WaitSignalPolarity_Low) || \ - ((POLARITY) == FSMC_WaitSignalPolarity_High)) - -/** - * @} - */ - -/** @defgroup FSMC_Wrap_Mode - * @{ - */ - -#define FSMC_WrapMode_Disable ((uint32_t)0x00000000) -#define FSMC_WrapMode_Enable ((uint32_t)0x00000400) -#define IS_FSMC_WRAP_MODE(MODE) (((MODE) == FSMC_WrapMode_Disable) || \ - ((MODE) == FSMC_WrapMode_Enable)) - -/** - * @} - */ - -/** @defgroup FSMC_Wait_Timing - * @{ - */ - -#define FSMC_WaitSignalActive_BeforeWaitState ((uint32_t)0x00000000) -#define FSMC_WaitSignalActive_DuringWaitState ((uint32_t)0x00000800) -#define IS_FSMC_WAIT_SIGNAL_ACTIVE(ACTIVE) (((ACTIVE) == FSMC_WaitSignalActive_BeforeWaitState) || \ - ((ACTIVE) == FSMC_WaitSignalActive_DuringWaitState)) - -/** - * @} - */ - -/** @defgroup FSMC_Write_Operation - * @{ - */ - -#define FSMC_WriteOperation_Disable ((uint32_t)0x00000000) -#define FSMC_WriteOperation_Enable ((uint32_t)0x00001000) -#define IS_FSMC_WRITE_OPERATION(OPERATION) (((OPERATION) == FSMC_WriteOperation_Disable) || \ - ((OPERATION) == FSMC_WriteOperation_Enable)) - -/** - * @} - */ - -/** @defgroup FSMC_Wait_Signal - * @{ - */ - -#define FSMC_WaitSignal_Disable ((uint32_t)0x00000000) -#define FSMC_WaitSignal_Enable ((uint32_t)0x00002000) -#define IS_FSMC_WAITE_SIGNAL(SIGNAL) (((SIGNAL) == FSMC_WaitSignal_Disable) || \ - ((SIGNAL) == FSMC_WaitSignal_Enable)) -/** - * @} - */ - -/** @defgroup FSMC_Extended_Mode - * @{ - */ - -#define FSMC_ExtendedMode_Disable ((uint32_t)0x00000000) -#define FSMC_ExtendedMode_Enable ((uint32_t)0x00004000) - -#define IS_FSMC_EXTENDED_MODE(MODE) (((MODE) == FSMC_ExtendedMode_Disable) || \ - ((MODE) == FSMC_ExtendedMode_Enable)) - -/** - * @} - */ - -/** @defgroup FSMC_Write_Burst - * @{ - */ - -#define FSMC_WriteBurst_Disable ((uint32_t)0x00000000) -#define FSMC_WriteBurst_Enable ((uint32_t)0x00080000) -#define IS_FSMC_WRITE_BURST(BURST) (((BURST) == FSMC_WriteBurst_Disable) || \ - ((BURST) == FSMC_WriteBurst_Enable)) -/** - * @} - */ - -/** @defgroup FSMC_Address_Setup_Time - * @{ - */ - -#define IS_FSMC_ADDRESS_SETUP_TIME(TIME) ((TIME) <= 0xF) - -/** - * @} - */ - -/** @defgroup FSMC_Address_Hold_Time - * @{ - */ - -#define IS_FSMC_ADDRESS_HOLD_TIME(TIME) ((TIME) <= 0xF) - -/** - * @} - */ - -/** @defgroup FSMC_Data_Setup_Time - * @{ - */ - -#define IS_FSMC_DATASETUP_TIME(TIME) (((TIME) > 0) && ((TIME) <= 0xFF)) - -/** - * @} - */ - -/** @defgroup FSMC_Bus_Turn_around_Duration - * @{ - */ - -#define IS_FSMC_TURNAROUND_TIME(TIME) ((TIME) <= 0xF) - -/** - * @} - */ - -/** @defgroup FSMC_CLK_Division - * @{ - */ - -#define IS_FSMC_CLK_DIV(DIV) ((DIV) <= 0xF) - -/** - * @} - */ - -/** @defgroup FSMC_Data_Latency - * @{ - */ - -#define IS_FSMC_DATA_LATENCY(LATENCY) ((LATENCY) <= 0xF) - -/** - * @} - */ - -/** @defgroup FSMC_Access_Mode - * @{ - */ - -#define FSMC_AccessMode_A ((uint32_t)0x00000000) -#define FSMC_AccessMode_B ((uint32_t)0x10000000) -#define FSMC_AccessMode_C ((uint32_t)0x20000000) -#define FSMC_AccessMode_D ((uint32_t)0x30000000) -#define IS_FSMC_ACCESS_MODE(MODE) (((MODE) == FSMC_AccessMode_A) || \ - ((MODE) == FSMC_AccessMode_B) || \ - ((MODE) == FSMC_AccessMode_C) || \ - ((MODE) == FSMC_AccessMode_D)) - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup NAND_PCCARD_Controller - * @{ - */ - -/** @defgroup FSMC_Wait_feature - * @{ - */ - -#define FSMC_Waitfeature_Disable ((uint32_t)0x00000000) -#define FSMC_Waitfeature_Enable ((uint32_t)0x00000002) -#define IS_FSMC_WAIT_FEATURE(FEATURE) (((FEATURE) == FSMC_Waitfeature_Disable) || \ - ((FEATURE) == FSMC_Waitfeature_Enable)) - -/** - * @} - */ - - -/** @defgroup FSMC_ECC - * @{ - */ - -#define FSMC_ECC_Disable ((uint32_t)0x00000000) -#define FSMC_ECC_Enable ((uint32_t)0x00000040) -#define IS_FSMC_ECC_STATE(STATE) (((STATE) == FSMC_ECC_Disable) || \ - ((STATE) == FSMC_ECC_Enable)) - -/** - * @} - */ - -/** @defgroup FSMC_ECC_Page_Size - * @{ - */ - -#define FSMC_ECCPageSize_256Bytes ((uint32_t)0x00000000) -#define FSMC_ECCPageSize_512Bytes ((uint32_t)0x00020000) -#define FSMC_ECCPageSize_1024Bytes ((uint32_t)0x00040000) -#define FSMC_ECCPageSize_2048Bytes ((uint32_t)0x00060000) -#define FSMC_ECCPageSize_4096Bytes ((uint32_t)0x00080000) -#define FSMC_ECCPageSize_8192Bytes ((uint32_t)0x000A0000) -#define IS_FSMC_ECCPAGE_SIZE(SIZE) (((SIZE) == FSMC_ECCPageSize_256Bytes) || \ - ((SIZE) == FSMC_ECCPageSize_512Bytes) || \ - ((SIZE) == FSMC_ECCPageSize_1024Bytes) || \ - ((SIZE) == FSMC_ECCPageSize_2048Bytes) || \ - ((SIZE) == FSMC_ECCPageSize_4096Bytes) || \ - ((SIZE) == FSMC_ECCPageSize_8192Bytes)) - -/** - * @} - */ - -/** @defgroup FSMC_TCLR_Setup_Time - * @{ - */ - -#define IS_FSMC_TCLR_TIME(TIME) ((TIME) <= 0xFF) - -/** - * @} - */ - -/** @defgroup FSMC_TAR_Setup_Time - * @{ - */ - -#define IS_FSMC_TAR_TIME(TIME) ((TIME) <= 0xFF) - -/** - * @} - */ - -/** @defgroup FSMC_Setup_Time - * @{ - */ - -#define IS_FSMC_SETUP_TIME(TIME) ((TIME) <= 0xFF) - -/** - * @} - */ - -/** @defgroup FSMC_Wait_Setup_Time - * @{ - */ - -#define IS_FSMC_WAIT_TIME(TIME) ((TIME) <= 0xFF) - -/** - * @} - */ - -/** @defgroup FSMC_Hold_Setup_Time - * @{ - */ - -#define IS_FSMC_HOLD_TIME(TIME) ((TIME) <= 0xFF) - -/** - * @} - */ - -/** @defgroup FSMC_HiZ_Setup_Time - * @{ - */ - -#define IS_FSMC_HIZ_TIME(TIME) ((TIME) <= 0xFF) - -/** - * @} - */ - -/** @defgroup FSMC_Interrupt_sources - * @{ - */ - -#define FSMC_IT_RisingEdge ((uint32_t)0x00000008) -#define FSMC_IT_Level ((uint32_t)0x00000010) -#define FSMC_IT_FallingEdge ((uint32_t)0x00000020) -#define IS_FSMC_IT(IT) ((((IT) & (uint32_t)0xFFFFFFC7) == 0x00000000) && ((IT) != 0x00000000)) -#define IS_FSMC_GET_IT(IT) (((IT) == FSMC_IT_RisingEdge) || \ - ((IT) == FSMC_IT_Level) || \ - ((IT) == FSMC_IT_FallingEdge)) -/** - * @} - */ - -/** @defgroup FSMC_Flags - * @{ - */ - -#define FSMC_FLAG_RisingEdge ((uint32_t)0x00000001) -#define FSMC_FLAG_Level ((uint32_t)0x00000002) -#define FSMC_FLAG_FallingEdge ((uint32_t)0x00000004) -#define FSMC_FLAG_FEMPT ((uint32_t)0x00000040) -#define IS_FSMC_GET_FLAG(FLAG) (((FLAG) == FSMC_FLAG_RisingEdge) || \ - ((FLAG) == FSMC_FLAG_Level) || \ - ((FLAG) == FSMC_FLAG_FallingEdge) || \ - ((FLAG) == FSMC_FLAG_FEMPT)) - -#define IS_FSMC_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0xFFFFFFF8) == 0x00000000) && ((FLAG) != 0x00000000)) - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup FSMC_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup FSMC_Exported_Functions - * @{ - */ - -void FSMC_NORSRAMDeInit(uint32_t FSMC_Bank); -void FSMC_NANDDeInit(uint32_t FSMC_Bank); -void FSMC_PCCARDDeInit(void); -void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct); -void FSMC_NANDInit(FSMC_NANDInitTypeDef* FSMC_NANDInitStruct); -void FSMC_PCCARDInit(FSMC_PCCARDInitTypeDef* FSMC_PCCARDInitStruct); -void FSMC_NORSRAMStructInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct); -void FSMC_NANDStructInit(FSMC_NANDInitTypeDef* FSMC_NANDInitStruct); -void FSMC_PCCARDStructInit(FSMC_PCCARDInitTypeDef* FSMC_PCCARDInitStruct); -void FSMC_NORSRAMCmd(uint32_t FSMC_Bank, FunctionalState NewState); -void FSMC_NANDCmd(uint32_t FSMC_Bank, FunctionalState NewState); -void FSMC_PCCARDCmd(FunctionalState NewState); -void FSMC_NANDECCCmd(uint32_t FSMC_Bank, FunctionalState NewState); -uint32_t FSMC_GetECC(uint32_t FSMC_Bank); -void FSMC_ITConfig(uint32_t FSMC_Bank, uint32_t FSMC_IT, FunctionalState NewState); -FlagStatus FSMC_GetFlagStatus(uint32_t FSMC_Bank, uint32_t FSMC_FLAG); -void FSMC_ClearFlag(uint32_t FSMC_Bank, uint32_t FSMC_FLAG); -ITStatus FSMC_GetITStatus(uint32_t FSMC_Bank, uint32_t FSMC_IT); -void FSMC_ClearITPendingBit(uint32_t FSMC_Bank, uint32_t FSMC_IT); - -#ifdef __cplusplus -} -#endif - -#endif /*__STM32F10x_FSMC_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h deleted file mode 100644 index b8aa49a2..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h +++ /dev/null @@ -1,385 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_gpio.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the GPIO - * firmware library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_GPIO_H -#define __STM32F10x_GPIO_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup GPIO - * @{ - */ - -/** @defgroup GPIO_Exported_Types - * @{ - */ - -#define IS_GPIO_ALL_PERIPH(PERIPH) (((PERIPH) == GPIOA) || \ - ((PERIPH) == GPIOB) || \ - ((PERIPH) == GPIOC) || \ - ((PERIPH) == GPIOD) || \ - ((PERIPH) == GPIOE) || \ - ((PERIPH) == GPIOF) || \ - ((PERIPH) == GPIOG)) - -/** - * @brief Output Maximum frequency selection - */ - -typedef enum -{ - GPIO_Speed_10MHz = 1, - GPIO_Speed_2MHz, - GPIO_Speed_50MHz -}GPIOSpeed_TypeDef; -#define IS_GPIO_SPEED(SPEED) (((SPEED) == GPIO_Speed_10MHz) || ((SPEED) == GPIO_Speed_2MHz) || \ - ((SPEED) == GPIO_Speed_50MHz)) - -/** - * @brief Configuration Mode enumeration - */ - -typedef enum -{ GPIO_Mode_AIN = 0x0, - GPIO_Mode_IN_FLOATING = 0x04, - GPIO_Mode_IPD = 0x28, - GPIO_Mode_IPU = 0x48, - GPIO_Mode_Out_OD = 0x14, - GPIO_Mode_Out_PP = 0x10, - GPIO_Mode_AF_OD = 0x1C, - GPIO_Mode_AF_PP = 0x18 -}GPIOMode_TypeDef; - -#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_Mode_AIN) || ((MODE) == GPIO_Mode_IN_FLOATING) || \ - ((MODE) == GPIO_Mode_IPD) || ((MODE) == GPIO_Mode_IPU) || \ - ((MODE) == GPIO_Mode_Out_OD) || ((MODE) == GPIO_Mode_Out_PP) || \ - ((MODE) == GPIO_Mode_AF_OD) || ((MODE) == GPIO_Mode_AF_PP)) - -/** - * @brief GPIO Init structure definition - */ - -typedef struct -{ - uint16_t GPIO_Pin; /*!< Specifies the GPIO pins to be configured. - This parameter can be any value of @ref GPIO_pins_define */ - - GPIOSpeed_TypeDef GPIO_Speed; /*!< Specifies the speed for the selected pins. - This parameter can be a value of @ref GPIOSpeed_TypeDef */ - - GPIOMode_TypeDef GPIO_Mode; /*!< Specifies the operating mode for the selected pins. - This parameter can be a value of @ref GPIOMode_TypeDef */ -}GPIO_InitTypeDef; - - -/** - * @brief Bit_SET and Bit_RESET enumeration - */ - -typedef enum -{ Bit_RESET = 0, - Bit_SET -}BitAction; - -#define IS_GPIO_BIT_ACTION(ACTION) (((ACTION) == Bit_RESET) || ((ACTION) == Bit_SET)) - -/** - * @} - */ - -/** @defgroup GPIO_Exported_Constants - * @{ - */ - -/** @defgroup GPIO_pins_define - * @{ - */ - -#define GPIO_Pin_0 ((uint16_t)0x0001) /*!< Pin 0 selected */ -#define GPIO_Pin_1 ((uint16_t)0x0002) /*!< Pin 1 selected */ -#define GPIO_Pin_2 ((uint16_t)0x0004) /*!< Pin 2 selected */ -#define GPIO_Pin_3 ((uint16_t)0x0008) /*!< Pin 3 selected */ -#define GPIO_Pin_4 ((uint16_t)0x0010) /*!< Pin 4 selected */ -#define GPIO_Pin_5 ((uint16_t)0x0020) /*!< Pin 5 selected */ -#define GPIO_Pin_6 ((uint16_t)0x0040) /*!< Pin 6 selected */ -#define GPIO_Pin_7 ((uint16_t)0x0080) /*!< Pin 7 selected */ -#define GPIO_Pin_8 ((uint16_t)0x0100) /*!< Pin 8 selected */ -#define GPIO_Pin_9 ((uint16_t)0x0200) /*!< Pin 9 selected */ -#define GPIO_Pin_10 ((uint16_t)0x0400) /*!< Pin 10 selected */ -#define GPIO_Pin_11 ((uint16_t)0x0800) /*!< Pin 11 selected */ -#define GPIO_Pin_12 ((uint16_t)0x1000) /*!< Pin 12 selected */ -#define GPIO_Pin_13 ((uint16_t)0x2000) /*!< Pin 13 selected */ -#define GPIO_Pin_14 ((uint16_t)0x4000) /*!< Pin 14 selected */ -#define GPIO_Pin_15 ((uint16_t)0x8000) /*!< Pin 15 selected */ -#define GPIO_Pin_All ((uint16_t)0xFFFF) /*!< All pins selected */ - -#define IS_GPIO_PIN(PIN) ((((PIN) & (uint16_t)0x00) == 0x00) && ((PIN) != (uint16_t)0x00)) - -#define IS_GET_GPIO_PIN(PIN) (((PIN) == GPIO_Pin_0) || \ - ((PIN) == GPIO_Pin_1) || \ - ((PIN) == GPIO_Pin_2) || \ - ((PIN) == GPIO_Pin_3) || \ - ((PIN) == GPIO_Pin_4) || \ - ((PIN) == GPIO_Pin_5) || \ - ((PIN) == GPIO_Pin_6) || \ - ((PIN) == GPIO_Pin_7) || \ - ((PIN) == GPIO_Pin_8) || \ - ((PIN) == GPIO_Pin_9) || \ - ((PIN) == GPIO_Pin_10) || \ - ((PIN) == GPIO_Pin_11) || \ - ((PIN) == GPIO_Pin_12) || \ - ((PIN) == GPIO_Pin_13) || \ - ((PIN) == GPIO_Pin_14) || \ - ((PIN) == GPIO_Pin_15)) - -/** - * @} - */ - -/** @defgroup GPIO_Remap_define - * @{ - */ - -#define GPIO_Remap_SPI1 ((uint32_t)0x00000001) /*!< SPI1 Alternate Function mapping */ -#define GPIO_Remap_I2C1 ((uint32_t)0x00000002) /*!< I2C1 Alternate Function mapping */ -#define GPIO_Remap_USART1 ((uint32_t)0x00000004) /*!< USART1 Alternate Function mapping */ -#define GPIO_Remap_USART2 ((uint32_t)0x00000008) /*!< USART2 Alternate Function mapping */ -#define GPIO_PartialRemap_USART3 ((uint32_t)0x00140010) /*!< USART3 Partial Alternate Function mapping */ -#define GPIO_FullRemap_USART3 ((uint32_t)0x00140030) /*!< USART3 Full Alternate Function mapping */ -#define GPIO_PartialRemap_TIM1 ((uint32_t)0x00160040) /*!< TIM1 Partial Alternate Function mapping */ -#define GPIO_FullRemap_TIM1 ((uint32_t)0x001600C0) /*!< TIM1 Full Alternate Function mapping */ -#define GPIO_PartialRemap1_TIM2 ((uint32_t)0x00180100) /*!< TIM2 Partial1 Alternate Function mapping */ -#define GPIO_PartialRemap2_TIM2 ((uint32_t)0x00180200) /*!< TIM2 Partial2 Alternate Function mapping */ -#define GPIO_FullRemap_TIM2 ((uint32_t)0x00180300) /*!< TIM2 Full Alternate Function mapping */ -#define GPIO_PartialRemap_TIM3 ((uint32_t)0x001A0800) /*!< TIM3 Partial Alternate Function mapping */ -#define GPIO_FullRemap_TIM3 ((uint32_t)0x001A0C00) /*!< TIM3 Full Alternate Function mapping */ -#define GPIO_Remap_TIM4 ((uint32_t)0x00001000) /*!< TIM4 Alternate Function mapping */ -#define GPIO_Remap1_CAN1 ((uint32_t)0x001D4000) /*!< CAN1 Alternate Function mapping */ -#define GPIO_Remap2_CAN1 ((uint32_t)0x001D6000) /*!< CAN1 Alternate Function mapping */ -#define GPIO_Remap_PD01 ((uint32_t)0x00008000) /*!< PD01 Alternate Function mapping */ -#define GPIO_Remap_TIM5CH4_LSI ((uint32_t)0x00200001) /*!< LSI connected to TIM5 Channel4 input capture for calibration */ -#define GPIO_Remap_ADC1_ETRGINJ ((uint32_t)0x00200002) /*!< ADC1 External Trigger Injected Conversion remapping */ -#define GPIO_Remap_ADC1_ETRGREG ((uint32_t)0x00200004) /*!< ADC1 External Trigger Regular Conversion remapping */ -#define GPIO_Remap_ADC2_ETRGINJ ((uint32_t)0x00200008) /*!< ADC2 External Trigger Injected Conversion remapping */ -#define GPIO_Remap_ADC2_ETRGREG ((uint32_t)0x00200010) /*!< ADC2 External Trigger Regular Conversion remapping */ -#define GPIO_Remap_ETH ((uint32_t)0x00200020) /*!< Ethernet remapping (only for Connectivity line devices) */ -#define GPIO_Remap_CAN2 ((uint32_t)0x00200040) /*!< CAN2 remapping (only for Connectivity line devices) */ -#define GPIO_Remap_SWJ_NoJTRST ((uint32_t)0x00300100) /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */ -#define GPIO_Remap_SWJ_JTAGDisable ((uint32_t)0x00300200) /*!< JTAG-DP Disabled and SW-DP Enabled */ -#define GPIO_Remap_SWJ_Disable ((uint32_t)0x00300400) /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */ -#define GPIO_Remap_SPI3 ((uint32_t)0x00201100) /*!< SPI3/I2S3 Alternate Function mapping (only for Connectivity line devices) */ -#define GPIO_Remap_TIM2ITR1_PTP_SOF ((uint32_t)0x00202000) /*!< Ethernet PTP output or USB OTG SOF (Start of Frame) connected - to TIM2 Internal Trigger 1 for calibration - (only for Connectivity line devices) */ -#define GPIO_Remap_PTP_PPS ((uint32_t)0x00204000) /*!< Ethernet MAC PPS_PTS output on PB05 (only for Connectivity line devices) */ - -#define GPIO_Remap_TIM15 ((uint32_t)0x80000001) /*!< TIM15 Alternate Function mapping (only for Value line devices) */ -#define GPIO_Remap_TIM16 ((uint32_t)0x80000002) /*!< TIM16 Alternate Function mapping (only for Value line devices) */ -#define GPIO_Remap_TIM17 ((uint32_t)0x80000004) /*!< TIM17 Alternate Function mapping (only for Value line devices) */ -#define GPIO_Remap_CEC ((uint32_t)0x80000008) /*!< CEC Alternate Function mapping (only for Value line devices) */ -#define GPIO_Remap_TIM1_DMA ((uint32_t)0x80000010) /*!< TIM1 DMA requests mapping (only for Value line devices) */ - -#define GPIO_Remap_TIM9 ((uint32_t)0x80000020) /*!< TIM9 Alternate Function mapping (only for XL-density devices) */ -#define GPIO_Remap_TIM10 ((uint32_t)0x80000040) /*!< TIM10 Alternate Function mapping (only for XL-density devices) */ -#define GPIO_Remap_TIM11 ((uint32_t)0x80000080) /*!< TIM11 Alternate Function mapping (only for XL-density devices) */ -#define GPIO_Remap_TIM13 ((uint32_t)0x80000100) /*!< TIM13 Alternate Function mapping (only for High density Value line and XL-density devices) */ -#define GPIO_Remap_TIM14 ((uint32_t)0x80000200) /*!< TIM14 Alternate Function mapping (only for High density Value line and XL-density devices) */ -#define GPIO_Remap_FSMC_NADV ((uint32_t)0x80000400) /*!< FSMC_NADV Alternate Function mapping (only for High density Value line and XL-density devices) */ - -#define GPIO_Remap_TIM67_DAC_DMA ((uint32_t)0x80000800) /*!< TIM6/TIM7 and DAC DMA requests remapping (only for High density Value line devices) */ -#define GPIO_Remap_TIM12 ((uint32_t)0x80001000) /*!< TIM12 Alternate Function mapping (only for High density Value line devices) */ -#define GPIO_Remap_MISC ((uint32_t)0x80002000) /*!< Miscellaneous Remap (DMA2 Channel5 Position and DAC Trigger remapping, - only for High density Value line devices) */ - -#define IS_GPIO_REMAP(REMAP) (((REMAP) == GPIO_Remap_SPI1) || ((REMAP) == GPIO_Remap_I2C1) || \ - ((REMAP) == GPIO_Remap_USART1) || ((REMAP) == GPIO_Remap_USART2) || \ - ((REMAP) == GPIO_PartialRemap_USART3) || ((REMAP) == GPIO_FullRemap_USART3) || \ - ((REMAP) == GPIO_PartialRemap_TIM1) || ((REMAP) == GPIO_FullRemap_TIM1) || \ - ((REMAP) == GPIO_PartialRemap1_TIM2) || ((REMAP) == GPIO_PartialRemap2_TIM2) || \ - ((REMAP) == GPIO_FullRemap_TIM2) || ((REMAP) == GPIO_PartialRemap_TIM3) || \ - ((REMAP) == GPIO_FullRemap_TIM3) || ((REMAP) == GPIO_Remap_TIM4) || \ - ((REMAP) == GPIO_Remap1_CAN1) || ((REMAP) == GPIO_Remap2_CAN1) || \ - ((REMAP) == GPIO_Remap_PD01) || ((REMAP) == GPIO_Remap_TIM5CH4_LSI) || \ - ((REMAP) == GPIO_Remap_ADC1_ETRGINJ) ||((REMAP) == GPIO_Remap_ADC1_ETRGREG) || \ - ((REMAP) == GPIO_Remap_ADC2_ETRGINJ) ||((REMAP) == GPIO_Remap_ADC2_ETRGREG) || \ - ((REMAP) == GPIO_Remap_ETH) ||((REMAP) == GPIO_Remap_CAN2) || \ - ((REMAP) == GPIO_Remap_SWJ_NoJTRST) || ((REMAP) == GPIO_Remap_SWJ_JTAGDisable) || \ - ((REMAP) == GPIO_Remap_SWJ_Disable)|| ((REMAP) == GPIO_Remap_SPI3) || \ - ((REMAP) == GPIO_Remap_TIM2ITR1_PTP_SOF) || ((REMAP) == GPIO_Remap_PTP_PPS) || \ - ((REMAP) == GPIO_Remap_TIM15) || ((REMAP) == GPIO_Remap_TIM16) || \ - ((REMAP) == GPIO_Remap_TIM17) || ((REMAP) == GPIO_Remap_CEC) || \ - ((REMAP) == GPIO_Remap_TIM1_DMA) || ((REMAP) == GPIO_Remap_TIM9) || \ - ((REMAP) == GPIO_Remap_TIM10) || ((REMAP) == GPIO_Remap_TIM11) || \ - ((REMAP) == GPIO_Remap_TIM13) || ((REMAP) == GPIO_Remap_TIM14) || \ - ((REMAP) == GPIO_Remap_FSMC_NADV) || ((REMAP) == GPIO_Remap_TIM67_DAC_DMA) || \ - ((REMAP) == GPIO_Remap_TIM12) || ((REMAP) == GPIO_Remap_MISC)) - -/** - * @} - */ - -/** @defgroup GPIO_Port_Sources - * @{ - */ - -#define GPIO_PortSourceGPIOA ((uint8_t)0x00) -#define GPIO_PortSourceGPIOB ((uint8_t)0x01) -#define GPIO_PortSourceGPIOC ((uint8_t)0x02) -#define GPIO_PortSourceGPIOD ((uint8_t)0x03) -#define GPIO_PortSourceGPIOE ((uint8_t)0x04) -#define GPIO_PortSourceGPIOF ((uint8_t)0x05) -#define GPIO_PortSourceGPIOG ((uint8_t)0x06) -#define IS_GPIO_EVENTOUT_PORT_SOURCE(PORTSOURCE) (((PORTSOURCE) == GPIO_PortSourceGPIOA) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOB) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOC) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOD) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOE)) - -#define IS_GPIO_EXTI_PORT_SOURCE(PORTSOURCE) (((PORTSOURCE) == GPIO_PortSourceGPIOA) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOB) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOC) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOD) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOE) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOF) || \ - ((PORTSOURCE) == GPIO_PortSourceGPIOG)) - -/** - * @} - */ - -/** @defgroup GPIO_Pin_sources - * @{ - */ - -#define GPIO_PinSource0 ((uint8_t)0x00) -#define GPIO_PinSource1 ((uint8_t)0x01) -#define GPIO_PinSource2 ((uint8_t)0x02) -#define GPIO_PinSource3 ((uint8_t)0x03) -#define GPIO_PinSource4 ((uint8_t)0x04) -#define GPIO_PinSource5 ((uint8_t)0x05) -#define GPIO_PinSource6 ((uint8_t)0x06) -#define GPIO_PinSource7 ((uint8_t)0x07) -#define GPIO_PinSource8 ((uint8_t)0x08) -#define GPIO_PinSource9 ((uint8_t)0x09) -#define GPIO_PinSource10 ((uint8_t)0x0A) -#define GPIO_PinSource11 ((uint8_t)0x0B) -#define GPIO_PinSource12 ((uint8_t)0x0C) -#define GPIO_PinSource13 ((uint8_t)0x0D) -#define GPIO_PinSource14 ((uint8_t)0x0E) -#define GPIO_PinSource15 ((uint8_t)0x0F) - -#define IS_GPIO_PIN_SOURCE(PINSOURCE) (((PINSOURCE) == GPIO_PinSource0) || \ - ((PINSOURCE) == GPIO_PinSource1) || \ - ((PINSOURCE) == GPIO_PinSource2) || \ - ((PINSOURCE) == GPIO_PinSource3) || \ - ((PINSOURCE) == GPIO_PinSource4) || \ - ((PINSOURCE) == GPIO_PinSource5) || \ - ((PINSOURCE) == GPIO_PinSource6) || \ - ((PINSOURCE) == GPIO_PinSource7) || \ - ((PINSOURCE) == GPIO_PinSource8) || \ - ((PINSOURCE) == GPIO_PinSource9) || \ - ((PINSOURCE) == GPIO_PinSource10) || \ - ((PINSOURCE) == GPIO_PinSource11) || \ - ((PINSOURCE) == GPIO_PinSource12) || \ - ((PINSOURCE) == GPIO_PinSource13) || \ - ((PINSOURCE) == GPIO_PinSource14) || \ - ((PINSOURCE) == GPIO_PinSource15)) - -/** - * @} - */ - -/** @defgroup Ethernet_Media_Interface - * @{ - */ -#define GPIO_ETH_MediaInterface_MII ((u32)0x00000000) -#define GPIO_ETH_MediaInterface_RMII ((u32)0x00000001) - -#define IS_GPIO_ETH_MEDIA_INTERFACE(INTERFACE) (((INTERFACE) == GPIO_ETH_MediaInterface_MII) || \ - ((INTERFACE) == GPIO_ETH_MediaInterface_RMII)) - -/** - * @} - */ -/** - * @} - */ - -/** @defgroup GPIO_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup GPIO_Exported_Functions - * @{ - */ - -void GPIO_DeInit(GPIO_TypeDef* GPIOx); -void GPIO_AFIODeInit(void); -void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); -void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct); -uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); -uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx); -uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); -uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx); -void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); -void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); -void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal); -void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal); -void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); -void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); -void GPIO_EventOutputCmd(FunctionalState NewState); -void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState); -void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); -void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_GPIO_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_i2c.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_i2c.h deleted file mode 100644 index 2d42e5ce..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_i2c.h +++ /dev/null @@ -1,684 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_i2c.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the I2C firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_I2C_H -#define __STM32F10x_I2C_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup I2C - * @{ - */ - -/** @defgroup I2C_Exported_Types - * @{ - */ - -/** - * @brief I2C Init structure definition - */ - -typedef struct -{ - uint32_t I2C_ClockSpeed; /*!< Specifies the clock frequency. - This parameter must be set to a value lower than 400kHz */ - - uint16_t I2C_Mode; /*!< Specifies the I2C mode. - This parameter can be a value of @ref I2C_mode */ - - uint16_t I2C_DutyCycle; /*!< Specifies the I2C fast mode duty cycle. - This parameter can be a value of @ref I2C_duty_cycle_in_fast_mode */ - - uint16_t I2C_OwnAddress1; /*!< Specifies the first device own address. - This parameter can be a 7-bit or 10-bit address. */ - - uint16_t I2C_Ack; /*!< Enables or disables the acknowledgement. - This parameter can be a value of @ref I2C_acknowledgement */ - - uint16_t I2C_AcknowledgedAddress; /*!< Specifies if 7-bit or 10-bit address is acknowledged. - This parameter can be a value of @ref I2C_acknowledged_address */ -}I2C_InitTypeDef; - -/** - * @} - */ - - -/** @defgroup I2C_Exported_Constants - * @{ - */ - -#define IS_I2C_ALL_PERIPH(PERIPH) (((PERIPH) == I2C1) || \ - ((PERIPH) == I2C2)) -/** @defgroup I2C_mode - * @{ - */ - -#define I2C_Mode_I2C ((uint16_t)0x0000) -#define I2C_Mode_SMBusDevice ((uint16_t)0x0002) -#define I2C_Mode_SMBusHost ((uint16_t)0x000A) -#define IS_I2C_MODE(MODE) (((MODE) == I2C_Mode_I2C) || \ - ((MODE) == I2C_Mode_SMBusDevice) || \ - ((MODE) == I2C_Mode_SMBusHost)) -/** - * @} - */ - -/** @defgroup I2C_duty_cycle_in_fast_mode - * @{ - */ - -#define I2C_DutyCycle_16_9 ((uint16_t)0x4000) /*!< I2C fast mode Tlow/Thigh = 16/9 */ -#define I2C_DutyCycle_2 ((uint16_t)0xBFFF) /*!< I2C fast mode Tlow/Thigh = 2 */ -#define IS_I2C_DUTY_CYCLE(CYCLE) (((CYCLE) == I2C_DutyCycle_16_9) || \ - ((CYCLE) == I2C_DutyCycle_2)) -/** - * @} - */ - -/** @defgroup I2C_acknowledgement - * @{ - */ - -#define I2C_Ack_Enable ((uint16_t)0x0400) -#define I2C_Ack_Disable ((uint16_t)0x0000) -#define IS_I2C_ACK_STATE(STATE) (((STATE) == I2C_Ack_Enable) || \ - ((STATE) == I2C_Ack_Disable)) -/** - * @} - */ - -/** @defgroup I2C_transfer_direction - * @{ - */ - -#define I2C_Direction_Transmitter ((uint8_t)0x00) -#define I2C_Direction_Receiver ((uint8_t)0x01) -#define IS_I2C_DIRECTION(DIRECTION) (((DIRECTION) == I2C_Direction_Transmitter) || \ - ((DIRECTION) == I2C_Direction_Receiver)) -/** - * @} - */ - -/** @defgroup I2C_acknowledged_address - * @{ - */ - -#define I2C_AcknowledgedAddress_7bit ((uint16_t)0x4000) -#define I2C_AcknowledgedAddress_10bit ((uint16_t)0xC000) -#define IS_I2C_ACKNOWLEDGE_ADDRESS(ADDRESS) (((ADDRESS) == I2C_AcknowledgedAddress_7bit) || \ - ((ADDRESS) == I2C_AcknowledgedAddress_10bit)) -/** - * @} - */ - -/** @defgroup I2C_registers - * @{ - */ - -#define I2C_Register_CR1 ((uint8_t)0x00) -#define I2C_Register_CR2 ((uint8_t)0x04) -#define I2C_Register_OAR1 ((uint8_t)0x08) -#define I2C_Register_OAR2 ((uint8_t)0x0C) -#define I2C_Register_DR ((uint8_t)0x10) -#define I2C_Register_SR1 ((uint8_t)0x14) -#define I2C_Register_SR2 ((uint8_t)0x18) -#define I2C_Register_CCR ((uint8_t)0x1C) -#define I2C_Register_TRISE ((uint8_t)0x20) -#define IS_I2C_REGISTER(REGISTER) (((REGISTER) == I2C_Register_CR1) || \ - ((REGISTER) == I2C_Register_CR2) || \ - ((REGISTER) == I2C_Register_OAR1) || \ - ((REGISTER) == I2C_Register_OAR2) || \ - ((REGISTER) == I2C_Register_DR) || \ - ((REGISTER) == I2C_Register_SR1) || \ - ((REGISTER) == I2C_Register_SR2) || \ - ((REGISTER) == I2C_Register_CCR) || \ - ((REGISTER) == I2C_Register_TRISE)) -/** - * @} - */ - -/** @defgroup I2C_SMBus_alert_pin_level - * @{ - */ - -#define I2C_SMBusAlert_Low ((uint16_t)0x2000) -#define I2C_SMBusAlert_High ((uint16_t)0xDFFF) -#define IS_I2C_SMBUS_ALERT(ALERT) (((ALERT) == I2C_SMBusAlert_Low) || \ - ((ALERT) == I2C_SMBusAlert_High)) -/** - * @} - */ - -/** @defgroup I2C_PEC_position - * @{ - */ - -#define I2C_PECPosition_Next ((uint16_t)0x0800) -#define I2C_PECPosition_Current ((uint16_t)0xF7FF) -#define IS_I2C_PEC_POSITION(POSITION) (((POSITION) == I2C_PECPosition_Next) || \ - ((POSITION) == I2C_PECPosition_Current)) -/** - * @} - */ - -/** @defgroup I2C_NCAK_position - * @{ - */ - -#define I2C_NACKPosition_Next ((uint16_t)0x0800) -#define I2C_NACKPosition_Current ((uint16_t)0xF7FF) -#define IS_I2C_NACK_POSITION(POSITION) (((POSITION) == I2C_NACKPosition_Next) || \ - ((POSITION) == I2C_NACKPosition_Current)) -/** - * @} - */ - -/** @defgroup I2C_interrupts_definition - * @{ - */ - -#define I2C_IT_BUF ((uint16_t)0x0400) -#define I2C_IT_EVT ((uint16_t)0x0200) -#define I2C_IT_ERR ((uint16_t)0x0100) -#define IS_I2C_CONFIG_IT(IT) ((((IT) & (uint16_t)0xF8FF) == 0x00) && ((IT) != 0x00)) -/** - * @} - */ - -/** @defgroup I2C_interrupts_definition - * @{ - */ - -#define I2C_IT_SMBALERT ((uint32_t)0x01008000) -#define I2C_IT_TIMEOUT ((uint32_t)0x01004000) -#define I2C_IT_PECERR ((uint32_t)0x01001000) -#define I2C_IT_OVR ((uint32_t)0x01000800) -#define I2C_IT_AF ((uint32_t)0x01000400) -#define I2C_IT_ARLO ((uint32_t)0x01000200) -#define I2C_IT_BERR ((uint32_t)0x01000100) -#define I2C_IT_TXE ((uint32_t)0x06000080) -#define I2C_IT_RXNE ((uint32_t)0x06000040) -#define I2C_IT_STOPF ((uint32_t)0x02000010) -#define I2C_IT_ADD10 ((uint32_t)0x02000008) -#define I2C_IT_BTF ((uint32_t)0x02000004) -#define I2C_IT_ADDR ((uint32_t)0x02000002) -#define I2C_IT_SB ((uint32_t)0x02000001) - -#define IS_I2C_CLEAR_IT(IT) ((((IT) & (uint16_t)0x20FF) == 0x00) && ((IT) != (uint16_t)0x00)) - -#define IS_I2C_GET_IT(IT) (((IT) == I2C_IT_SMBALERT) || ((IT) == I2C_IT_TIMEOUT) || \ - ((IT) == I2C_IT_PECERR) || ((IT) == I2C_IT_OVR) || \ - ((IT) == I2C_IT_AF) || ((IT) == I2C_IT_ARLO) || \ - ((IT) == I2C_IT_BERR) || ((IT) == I2C_IT_TXE) || \ - ((IT) == I2C_IT_RXNE) || ((IT) == I2C_IT_STOPF) || \ - ((IT) == I2C_IT_ADD10) || ((IT) == I2C_IT_BTF) || \ - ((IT) == I2C_IT_ADDR) || ((IT) == I2C_IT_SB)) -/** - * @} - */ - -/** @defgroup I2C_flags_definition - * @{ - */ - -/** - * @brief SR2 register flags - */ - -#define I2C_FLAG_DUALF ((uint32_t)0x00800000) -#define I2C_FLAG_SMBHOST ((uint32_t)0x00400000) -#define I2C_FLAG_SMBDEFAULT ((uint32_t)0x00200000) -#define I2C_FLAG_GENCALL ((uint32_t)0x00100000) -#define I2C_FLAG_TRA ((uint32_t)0x00040000) -#define I2C_FLAG_BUSY ((uint32_t)0x00020000) -#define I2C_FLAG_MSL ((uint32_t)0x00010000) - -/** - * @brief SR1 register flags - */ - -#define I2C_FLAG_SMBALERT ((uint32_t)0x10008000) -#define I2C_FLAG_TIMEOUT ((uint32_t)0x10004000) -#define I2C_FLAG_PECERR ((uint32_t)0x10001000) -#define I2C_FLAG_OVR ((uint32_t)0x10000800) -#define I2C_FLAG_AF ((uint32_t)0x10000400) -#define I2C_FLAG_ARLO ((uint32_t)0x10000200) -#define I2C_FLAG_BERR ((uint32_t)0x10000100) -#define I2C_FLAG_TXE ((uint32_t)0x10000080) -#define I2C_FLAG_RXNE ((uint32_t)0x10000040) -#define I2C_FLAG_STOPF ((uint32_t)0x10000010) -#define I2C_FLAG_ADD10 ((uint32_t)0x10000008) -#define I2C_FLAG_BTF ((uint32_t)0x10000004) -#define I2C_FLAG_ADDR ((uint32_t)0x10000002) -#define I2C_FLAG_SB ((uint32_t)0x10000001) - -#define IS_I2C_CLEAR_FLAG(FLAG) ((((FLAG) & (uint16_t)0x20FF) == 0x00) && ((FLAG) != (uint16_t)0x00)) - -#define IS_I2C_GET_FLAG(FLAG) (((FLAG) == I2C_FLAG_DUALF) || ((FLAG) == I2C_FLAG_SMBHOST) || \ - ((FLAG) == I2C_FLAG_SMBDEFAULT) || ((FLAG) == I2C_FLAG_GENCALL) || \ - ((FLAG) == I2C_FLAG_TRA) || ((FLAG) == I2C_FLAG_BUSY) || \ - ((FLAG) == I2C_FLAG_MSL) || ((FLAG) == I2C_FLAG_SMBALERT) || \ - ((FLAG) == I2C_FLAG_TIMEOUT) || ((FLAG) == I2C_FLAG_PECERR) || \ - ((FLAG) == I2C_FLAG_OVR) || ((FLAG) == I2C_FLAG_AF) || \ - ((FLAG) == I2C_FLAG_ARLO) || ((FLAG) == I2C_FLAG_BERR) || \ - ((FLAG) == I2C_FLAG_TXE) || ((FLAG) == I2C_FLAG_RXNE) || \ - ((FLAG) == I2C_FLAG_STOPF) || ((FLAG) == I2C_FLAG_ADD10) || \ - ((FLAG) == I2C_FLAG_BTF) || ((FLAG) == I2C_FLAG_ADDR) || \ - ((FLAG) == I2C_FLAG_SB)) -/** - * @} - */ - -/** @defgroup I2C_Events - * @{ - */ - -/*======================================== - - I2C Master Events (Events grouped in order of communication) - ==========================================*/ -/** - * @brief Communication start - * - * After sending the START condition (I2C_GenerateSTART() function) the master - * has to wait for this event. It means that the Start condition has been correctly - * released on the I2C bus (the bus is free, no other devices is communicating). - * - */ -/* --EV5 */ -#define I2C_EVENT_MASTER_MODE_SELECT ((uint32_t)0x00030001) /* BUSY, MSL and SB flag */ - -/** - * @brief Address Acknowledge - * - * After checking on EV5 (start condition correctly released on the bus), the - * master sends the address of the slave(s) with which it will communicate - * (I2C_Send7bitAddress() function, it also determines the direction of the communication: - * Master transmitter or Receiver). Then the master has to wait that a slave acknowledges - * his address. If an acknowledge is sent on the bus, one of the following events will - * be set: - * - * 1) In case of Master Receiver (7-bit addressing): the I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED - * event is set. - * - * 2) In case of Master Transmitter (7-bit addressing): the I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED - * is set - * - * 3) In case of 10-Bit addressing mode, the master (just after generating the START - * and checking on EV5) has to send the header of 10-bit addressing mode (I2C_SendData() - * function). Then master should wait on EV9. It means that the 10-bit addressing - * header has been correctly sent on the bus. Then master should send the second part of - * the 10-bit address (LSB) using the function I2C_Send7bitAddress(). Then master - * should wait for event EV6. - * - */ - -/* --EV6 */ -#define I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED ((uint32_t)0x00070082) /* BUSY, MSL, ADDR, TXE and TRA flags */ -#define I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED ((uint32_t)0x00030002) /* BUSY, MSL and ADDR flags */ -/* --EV9 */ -#define I2C_EVENT_MASTER_MODE_ADDRESS10 ((uint32_t)0x00030008) /* BUSY, MSL and ADD10 flags */ - -/** - * @brief Communication events - * - * If a communication is established (START condition generated and slave address - * acknowledged) then the master has to check on one of the following events for - * communication procedures: - * - * 1) Master Receiver mode: The master has to wait on the event EV7 then to read - * the data received from the slave (I2C_ReceiveData() function). - * - * 2) Master Transmitter mode: The master has to send data (I2C_SendData() - * function) then to wait on event EV8 or EV8_2. - * These two events are similar: - * - EV8 means that the data has been written in the data register and is - * being shifted out. - * - EV8_2 means that the data has been physically shifted out and output - * on the bus. - * In most cases, using EV8 is sufficient for the application. - * Using EV8_2 leads to a slower communication but ensure more reliable test. - * EV8_2 is also more suitable than EV8 for testing on the last data transmission - * (before Stop condition generation). - * - * @note In case the user software does not guarantee that this event EV7 is - * managed before the current byte end of transfer, then user may check on EV7 - * and BTF flag at the same time (ie. (I2C_EVENT_MASTER_BYTE_RECEIVED | I2C_FLAG_BTF)). - * In this case the communication may be slower. - * - */ - -/* Master RECEIVER mode -----------------------------*/ -/* --EV7 */ -#define I2C_EVENT_MASTER_BYTE_RECEIVED ((uint32_t)0x00030040) /* BUSY, MSL and RXNE flags */ - -/* Master TRANSMITTER mode --------------------------*/ -/* --EV8 */ -#define I2C_EVENT_MASTER_BYTE_TRANSMITTING ((uint32_t)0x00070080) /* TRA, BUSY, MSL, TXE flags */ -/* --EV8_2 */ -#define I2C_EVENT_MASTER_BYTE_TRANSMITTED ((uint32_t)0x00070084) /* TRA, BUSY, MSL, TXE and BTF flags */ - - -/*======================================== - - I2C Slave Events (Events grouped in order of communication) - ==========================================*/ - -/** - * @brief Communication start events - * - * Wait on one of these events at the start of the communication. It means that - * the I2C peripheral detected a Start condition on the bus (generated by master - * device) followed by the peripheral address. The peripheral generates an ACK - * condition on the bus (if the acknowledge feature is enabled through function - * I2C_AcknowledgeConfig()) and the events listed above are set : - * - * 1) In normal case (only one address managed by the slave), when the address - * sent by the master matches the own address of the peripheral (configured by - * I2C_OwnAddress1 field) the I2C_EVENT_SLAVE_XXX_ADDRESS_MATCHED event is set - * (where XXX could be TRANSMITTER or RECEIVER). - * - * 2) In case the address sent by the master matches the second address of the - * peripheral (configured by the function I2C_OwnAddress2Config() and enabled - * by the function I2C_DualAddressCmd()) the events I2C_EVENT_SLAVE_XXX_SECONDADDRESS_MATCHED - * (where XXX could be TRANSMITTER or RECEIVER) are set. - * - * 3) In case the address sent by the master is General Call (address 0x00) and - * if the General Call is enabled for the peripheral (using function I2C_GeneralCallCmd()) - * the following event is set I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED. - * - */ - -/* --EV1 (all the events below are variants of EV1) */ -/* 1) Case of One Single Address managed by the slave */ -#define I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED ((uint32_t)0x00020002) /* BUSY and ADDR flags */ -#define I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED ((uint32_t)0x00060082) /* TRA, BUSY, TXE and ADDR flags */ - -/* 2) Case of Dual address managed by the slave */ -#define I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED ((uint32_t)0x00820000) /* DUALF and BUSY flags */ -#define I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED ((uint32_t)0x00860080) /* DUALF, TRA, BUSY and TXE flags */ - -/* 3) Case of General Call enabled for the slave */ -#define I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED ((uint32_t)0x00120000) /* GENCALL and BUSY flags */ - -/** - * @brief Communication events - * - * Wait on one of these events when EV1 has already been checked and: - * - * - Slave RECEIVER mode: - * - EV2: When the application is expecting a data byte to be received. - * - EV4: When the application is expecting the end of the communication: master - * sends a stop condition and data transmission is stopped. - * - * - Slave Transmitter mode: - * - EV3: When a byte has been transmitted by the slave and the application is expecting - * the end of the byte transmission. The two events I2C_EVENT_SLAVE_BYTE_TRANSMITTED and - * I2C_EVENT_SLAVE_BYTE_TRANSMITTING are similar. The second one can optionally be - * used when the user software doesn't guarantee the EV3 is managed before the - * current byte end of transfer. - * - EV3_2: When the master sends a NACK in order to tell slave that data transmission - * shall end (before sending the STOP condition). In this case slave has to stop sending - * data bytes and expect a Stop condition on the bus. - * - * @note In case the user software does not guarantee that the event EV2 is - * managed before the current byte end of transfer, then user may check on EV2 - * and BTF flag at the same time (ie. (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_BTF)). - * In this case the communication may be slower. - * - */ - -/* Slave RECEIVER mode --------------------------*/ -/* --EV2 */ -#define I2C_EVENT_SLAVE_BYTE_RECEIVED ((uint32_t)0x00020040) /* BUSY and RXNE flags */ -/* --EV4 */ -#define I2C_EVENT_SLAVE_STOP_DETECTED ((uint32_t)0x00000010) /* STOPF flag */ - -/* Slave TRANSMITTER mode -----------------------*/ -/* --EV3 */ -#define I2C_EVENT_SLAVE_BYTE_TRANSMITTED ((uint32_t)0x00060084) /* TRA, BUSY, TXE and BTF flags */ -#define I2C_EVENT_SLAVE_BYTE_TRANSMITTING ((uint32_t)0x00060080) /* TRA, BUSY and TXE flags */ -/* --EV3_2 */ -#define I2C_EVENT_SLAVE_ACK_FAILURE ((uint32_t)0x00000400) /* AF flag */ - -/*=========================== End of Events Description ==========================================*/ - -#define IS_I2C_EVENT(EVENT) (((EVENT) == I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED) || \ - ((EVENT) == I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED) || \ - ((EVENT) == I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED) || \ - ((EVENT) == I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED) || \ - ((EVENT) == I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED) || \ - ((EVENT) == I2C_EVENT_SLAVE_BYTE_RECEIVED) || \ - ((EVENT) == (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_DUALF)) || \ - ((EVENT) == (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_GENCALL)) || \ - ((EVENT) == I2C_EVENT_SLAVE_BYTE_TRANSMITTED) || \ - ((EVENT) == (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_DUALF)) || \ - ((EVENT) == (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_GENCALL)) || \ - ((EVENT) == I2C_EVENT_SLAVE_STOP_DETECTED) || \ - ((EVENT) == I2C_EVENT_MASTER_MODE_SELECT) || \ - ((EVENT) == I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) || \ - ((EVENT) == I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED) || \ - ((EVENT) == I2C_EVENT_MASTER_BYTE_RECEIVED) || \ - ((EVENT) == I2C_EVENT_MASTER_BYTE_TRANSMITTED) || \ - ((EVENT) == I2C_EVENT_MASTER_BYTE_TRANSMITTING) || \ - ((EVENT) == I2C_EVENT_MASTER_MODE_ADDRESS10) || \ - ((EVENT) == I2C_EVENT_SLAVE_ACK_FAILURE)) -/** - * @} - */ - -/** @defgroup I2C_own_address1 - * @{ - */ - -#define IS_I2C_OWN_ADDRESS1(ADDRESS1) ((ADDRESS1) <= 0x3FF) -/** - * @} - */ - -/** @defgroup I2C_clock_speed - * @{ - */ - -#define IS_I2C_CLOCK_SPEED(SPEED) (((SPEED) >= 0x1) && ((SPEED) <= 400000)) -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup I2C_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup I2C_Exported_Functions - * @{ - */ - -void I2C_DeInit(I2C_TypeDef* I2Cx); -void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct); -void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct); -void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_DMACmd(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_DMALastTransferCmd(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_GenerateSTOP(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_AcknowledgeConfig(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_OwnAddress2Config(I2C_TypeDef* I2Cx, uint8_t Address); -void I2C_DualAddressCmd(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_GeneralCallCmd(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_ITConfig(I2C_TypeDef* I2Cx, uint16_t I2C_IT, FunctionalState NewState); -void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data); -uint8_t I2C_ReceiveData(I2C_TypeDef* I2Cx); -void I2C_Send7bitAddress(I2C_TypeDef* I2Cx, uint8_t Address, uint8_t I2C_Direction); -uint16_t I2C_ReadRegister(I2C_TypeDef* I2Cx, uint8_t I2C_Register); -void I2C_SoftwareResetCmd(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_NACKPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_NACKPosition); -void I2C_SMBusAlertConfig(I2C_TypeDef* I2Cx, uint16_t I2C_SMBusAlert); -void I2C_TransmitPEC(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_PECPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_PECPosition); -void I2C_CalculatePEC(I2C_TypeDef* I2Cx, FunctionalState NewState); -uint8_t I2C_GetPEC(I2C_TypeDef* I2Cx); -void I2C_ARPCmd(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_StretchClockCmd(I2C_TypeDef* I2Cx, FunctionalState NewState); -void I2C_FastModeDutyCycleConfig(I2C_TypeDef* I2Cx, uint16_t I2C_DutyCycle); - -/** - * @brief - **************************************************************************************** - * - * I2C State Monitoring Functions - * - **************************************************************************************** - * This I2C driver provides three different ways for I2C state monitoring - * depending on the application requirements and constraints: - * - * - * 1) Basic state monitoring: - * Using I2C_CheckEvent() function: - * It compares the status registers (SR1 and SR2) content to a given event - * (can be the combination of one or more flags). - * It returns SUCCESS if the current status includes the given flags - * and returns ERROR if one or more flags are missing in the current status. - * - When to use: - * - This function is suitable for most applications as well as for startup - * activity since the events are fully described in the product reference manual - * (RM0008). - * - It is also suitable for users who need to define their own events. - * - Limitations: - * - If an error occurs (ie. error flags are set besides to the monitored flags), - * the I2C_CheckEvent() function may return SUCCESS despite the communication - * hold or corrupted real state. - * In this case, it is advised to use error interrupts to monitor the error - * events and handle them in the interrupt IRQ handler. - * - * @note - * For error management, it is advised to use the following functions: - * - I2C_ITConfig() to configure and enable the error interrupts (I2C_IT_ERR). - * - I2Cx_ER_IRQHandler() which is called when the error interrupt occurs. - * Where x is the peripheral instance (I2C1, I2C2 ...) - * - I2C_GetFlagStatus() or I2C_GetITStatus() to be called into I2Cx_ER_IRQHandler() - * in order to determine which error occurred. - * - I2C_ClearFlag() or I2C_ClearITPendingBit() and/or I2C_SoftwareResetCmd() - * and/or I2C_GenerateStop() in order to clear the error flag and source, - * and return to correct communication status. - * - * - * 2) Advanced state monitoring: - * Using the function I2C_GetLastEvent() which returns the image of both status - * registers in a single word (uint32_t) (Status Register 2 value is shifted left - * by 16 bits and concatenated to Status Register 1). - * - When to use: - * - This function is suitable for the same applications above but it allows to - * overcome the limitations of I2C_GetFlagStatus() function (see below). - * The returned value could be compared to events already defined in the - * library (stm32f10x_i2c.h) or to custom values defined by user. - * - This function is suitable when multiple flags are monitored at the same time. - * - At the opposite of I2C_CheckEvent() function, this function allows user to - * choose when an event is accepted (when all events flags are set and no - * other flags are set or just when the needed flags are set like - * I2C_CheckEvent() function). - * - Limitations: - * - User may need to define his own events. - * - Same remark concerning the error management is applicable for this - * function if user decides to check only regular communication flags (and - * ignores error flags). - * - * - * 3) Flag-based state monitoring: - * Using the function I2C_GetFlagStatus() which simply returns the status of - * one single flag (ie. I2C_FLAG_RXNE ...). - * - When to use: - * - This function could be used for specific applications or in debug phase. - * - It is suitable when only one flag checking is needed (most I2C events - * are monitored through multiple flags). - * - Limitations: - * - When calling this function, the Status register is accessed. Some flags are - * cleared when the status register is accessed. So checking the status - * of one Flag, may clear other ones. - * - Function may need to be called twice or more in order to monitor one - * single event. - * - */ - -/** - * - * 1) Basic state monitoring - ******************************************************************************* - */ -ErrorStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT); -/** - * - * 2) Advanced state monitoring - ******************************************************************************* - */ -uint32_t I2C_GetLastEvent(I2C_TypeDef* I2Cx); -/** - * - * 3) Flag-based state monitoring - ******************************************************************************* - */ -FlagStatus I2C_GetFlagStatus(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG); -/** - * - ******************************************************************************* - */ - -void I2C_ClearFlag(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG); -ITStatus I2C_GetITStatus(I2C_TypeDef* I2Cx, uint32_t I2C_IT); -void I2C_ClearITPendingBit(I2C_TypeDef* I2Cx, uint32_t I2C_IT); - -#ifdef __cplusplus -} -#endif - -#endif /*__STM32F10x_I2C_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_iwdg.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_iwdg.h deleted file mode 100644 index 7f5ab764..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_iwdg.h +++ /dev/null @@ -1,140 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_iwdg.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the IWDG - * firmware library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_IWDG_H -#define __STM32F10x_IWDG_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup IWDG - * @{ - */ - -/** @defgroup IWDG_Exported_Types - * @{ - */ - -/** - * @} - */ - -/** @defgroup IWDG_Exported_Constants - * @{ - */ - -/** @defgroup IWDG_WriteAccess - * @{ - */ - -#define IWDG_WriteAccess_Enable ((uint16_t)0x5555) -#define IWDG_WriteAccess_Disable ((uint16_t)0x0000) -#define IS_IWDG_WRITE_ACCESS(ACCESS) (((ACCESS) == IWDG_WriteAccess_Enable) || \ - ((ACCESS) == IWDG_WriteAccess_Disable)) -/** - * @} - */ - -/** @defgroup IWDG_prescaler - * @{ - */ - -#define IWDG_Prescaler_4 ((uint8_t)0x00) -#define IWDG_Prescaler_8 ((uint8_t)0x01) -#define IWDG_Prescaler_16 ((uint8_t)0x02) -#define IWDG_Prescaler_32 ((uint8_t)0x03) -#define IWDG_Prescaler_64 ((uint8_t)0x04) -#define IWDG_Prescaler_128 ((uint8_t)0x05) -#define IWDG_Prescaler_256 ((uint8_t)0x06) -#define IS_IWDG_PRESCALER(PRESCALER) (((PRESCALER) == IWDG_Prescaler_4) || \ - ((PRESCALER) == IWDG_Prescaler_8) || \ - ((PRESCALER) == IWDG_Prescaler_16) || \ - ((PRESCALER) == IWDG_Prescaler_32) || \ - ((PRESCALER) == IWDG_Prescaler_64) || \ - ((PRESCALER) == IWDG_Prescaler_128)|| \ - ((PRESCALER) == IWDG_Prescaler_256)) -/** - * @} - */ - -/** @defgroup IWDG_Flag - * @{ - */ - -#define IWDG_FLAG_PVU ((uint16_t)0x0001) -#define IWDG_FLAG_RVU ((uint16_t)0x0002) -#define IS_IWDG_FLAG(FLAG) (((FLAG) == IWDG_FLAG_PVU) || ((FLAG) == IWDG_FLAG_RVU)) -#define IS_IWDG_RELOAD(RELOAD) ((RELOAD) <= 0xFFF) -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup IWDG_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup IWDG_Exported_Functions - * @{ - */ - -void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess); -void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); -void IWDG_SetReload(uint16_t Reload); -void IWDG_ReloadCounter(void); -void IWDG_Enable(void); -FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_IWDG_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_pwr.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_pwr.h deleted file mode 100644 index 76e6ce91..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_pwr.h +++ /dev/null @@ -1,156 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_pwr.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the PWR firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_PWR_H -#define __STM32F10x_PWR_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup PWR - * @{ - */ - -/** @defgroup PWR_Exported_Types - * @{ - */ - -/** - * @} - */ - -/** @defgroup PWR_Exported_Constants - * @{ - */ - -/** @defgroup PVD_detection_level - * @{ - */ - -#define PWR_PVDLevel_2V2 ((uint32_t)0x00000000) -#define PWR_PVDLevel_2V3 ((uint32_t)0x00000020) -#define PWR_PVDLevel_2V4 ((uint32_t)0x00000040) -#define PWR_PVDLevel_2V5 ((uint32_t)0x00000060) -#define PWR_PVDLevel_2V6 ((uint32_t)0x00000080) -#define PWR_PVDLevel_2V7 ((uint32_t)0x000000A0) -#define PWR_PVDLevel_2V8 ((uint32_t)0x000000C0) -#define PWR_PVDLevel_2V9 ((uint32_t)0x000000E0) -#define IS_PWR_PVD_LEVEL(LEVEL) (((LEVEL) == PWR_PVDLevel_2V2) || ((LEVEL) == PWR_PVDLevel_2V3)|| \ - ((LEVEL) == PWR_PVDLevel_2V4) || ((LEVEL) == PWR_PVDLevel_2V5)|| \ - ((LEVEL) == PWR_PVDLevel_2V6) || ((LEVEL) == PWR_PVDLevel_2V7)|| \ - ((LEVEL) == PWR_PVDLevel_2V8) || ((LEVEL) == PWR_PVDLevel_2V9)) -/** - * @} - */ - -/** @defgroup Regulator_state_is_STOP_mode - * @{ - */ - -#define PWR_Regulator_ON ((uint32_t)0x00000000) -#define PWR_Regulator_LowPower ((uint32_t)0x00000001) -#define IS_PWR_REGULATOR(REGULATOR) (((REGULATOR) == PWR_Regulator_ON) || \ - ((REGULATOR) == PWR_Regulator_LowPower)) -/** - * @} - */ - -/** @defgroup STOP_mode_entry - * @{ - */ - -#define PWR_STOPEntry_WFI ((uint8_t)0x01) -#define PWR_STOPEntry_WFE ((uint8_t)0x02) -#define IS_PWR_STOP_ENTRY(ENTRY) (((ENTRY) == PWR_STOPEntry_WFI) || ((ENTRY) == PWR_STOPEntry_WFE)) - -/** - * @} - */ - -/** @defgroup PWR_Flag - * @{ - */ - -#define PWR_FLAG_WU ((uint32_t)0x00000001) -#define PWR_FLAG_SB ((uint32_t)0x00000002) -#define PWR_FLAG_PVDO ((uint32_t)0x00000004) -#define IS_PWR_GET_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB) || \ - ((FLAG) == PWR_FLAG_PVDO)) - -#define IS_PWR_CLEAR_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB)) -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup PWR_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup PWR_Exported_Functions - * @{ - */ - -void PWR_DeInit(void); -void PWR_BackupAccessCmd(FunctionalState NewState); -void PWR_PVDCmd(FunctionalState NewState); -void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel); -void PWR_WakeUpPinCmd(FunctionalState NewState); -void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry); -void PWR_EnterSTANDBYMode(void); -FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG); -void PWR_ClearFlag(uint32_t PWR_FLAG); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_PWR_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h deleted file mode 100644 index b3b7d821..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h +++ /dev/null @@ -1,727 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_rcc.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the RCC firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_RCC_H -#define __STM32F10x_RCC_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup RCC - * @{ - */ - -/** @defgroup RCC_Exported_Types - * @{ - */ - -typedef struct -{ - uint32_t SYSCLK_Frequency; /*!< returns SYSCLK clock frequency expressed in Hz */ - uint32_t HCLK_Frequency; /*!< returns HCLK clock frequency expressed in Hz */ - uint32_t PCLK1_Frequency; /*!< returns PCLK1 clock frequency expressed in Hz */ - uint32_t PCLK2_Frequency; /*!< returns PCLK2 clock frequency expressed in Hz */ - uint32_t ADCCLK_Frequency; /*!< returns ADCCLK clock frequency expressed in Hz */ -}RCC_ClocksTypeDef; - -/** - * @} - */ - -/** @defgroup RCC_Exported_Constants - * @{ - */ - -/** @defgroup HSE_configuration - * @{ - */ - -#define RCC_HSE_OFF ((uint32_t)0x00000000) -#define RCC_HSE_ON ((uint32_t)0x00010000) -#define RCC_HSE_Bypass ((uint32_t)0x00040000) -#define IS_RCC_HSE(HSE) (((HSE) == RCC_HSE_OFF) || ((HSE) == RCC_HSE_ON) || \ - ((HSE) == RCC_HSE_Bypass)) - -/** - * @} - */ - -/** @defgroup PLL_entry_clock_source - * @{ - */ - -#define RCC_PLLSource_HSI_Div2 ((uint32_t)0x00000000) - -#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_CL) - #define RCC_PLLSource_HSE_Div1 ((uint32_t)0x00010000) - #define RCC_PLLSource_HSE_Div2 ((uint32_t)0x00030000) - #define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \ - ((SOURCE) == RCC_PLLSource_HSE_Div1) || \ - ((SOURCE) == RCC_PLLSource_HSE_Div2)) -#else - #define RCC_PLLSource_PREDIV1 ((uint32_t)0x00010000) - #define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \ - ((SOURCE) == RCC_PLLSource_PREDIV1)) -#endif /* STM32F10X_CL */ - -/** - * @} - */ - -/** @defgroup PLL_multiplication_factor - * @{ - */ -#ifndef STM32F10X_CL - #define RCC_PLLMul_2 ((uint32_t)0x00000000) - #define RCC_PLLMul_3 ((uint32_t)0x00040000) - #define RCC_PLLMul_4 ((uint32_t)0x00080000) - #define RCC_PLLMul_5 ((uint32_t)0x000C0000) - #define RCC_PLLMul_6 ((uint32_t)0x00100000) - #define RCC_PLLMul_7 ((uint32_t)0x00140000) - #define RCC_PLLMul_8 ((uint32_t)0x00180000) - #define RCC_PLLMul_9 ((uint32_t)0x001C0000) - #define RCC_PLLMul_10 ((uint32_t)0x00200000) - #define RCC_PLLMul_11 ((uint32_t)0x00240000) - #define RCC_PLLMul_12 ((uint32_t)0x00280000) - #define RCC_PLLMul_13 ((uint32_t)0x002C0000) - #define RCC_PLLMul_14 ((uint32_t)0x00300000) - #define RCC_PLLMul_15 ((uint32_t)0x00340000) - #define RCC_PLLMul_16 ((uint32_t)0x00380000) - #define IS_RCC_PLL_MUL(MUL) (((MUL) == RCC_PLLMul_2) || ((MUL) == RCC_PLLMul_3) || \ - ((MUL) == RCC_PLLMul_4) || ((MUL) == RCC_PLLMul_5) || \ - ((MUL) == RCC_PLLMul_6) || ((MUL) == RCC_PLLMul_7) || \ - ((MUL) == RCC_PLLMul_8) || ((MUL) == RCC_PLLMul_9) || \ - ((MUL) == RCC_PLLMul_10) || ((MUL) == RCC_PLLMul_11) || \ - ((MUL) == RCC_PLLMul_12) || ((MUL) == RCC_PLLMul_13) || \ - ((MUL) == RCC_PLLMul_14) || ((MUL) == RCC_PLLMul_15) || \ - ((MUL) == RCC_PLLMul_16)) - -#else - #define RCC_PLLMul_4 ((uint32_t)0x00080000) - #define RCC_PLLMul_5 ((uint32_t)0x000C0000) - #define RCC_PLLMul_6 ((uint32_t)0x00100000) - #define RCC_PLLMul_7 ((uint32_t)0x00140000) - #define RCC_PLLMul_8 ((uint32_t)0x00180000) - #define RCC_PLLMul_9 ((uint32_t)0x001C0000) - #define RCC_PLLMul_6_5 ((uint32_t)0x00340000) - - #define IS_RCC_PLL_MUL(MUL) (((MUL) == RCC_PLLMul_4) || ((MUL) == RCC_PLLMul_5) || \ - ((MUL) == RCC_PLLMul_6) || ((MUL) == RCC_PLLMul_7) || \ - ((MUL) == RCC_PLLMul_8) || ((MUL) == RCC_PLLMul_9) || \ - ((MUL) == RCC_PLLMul_6_5)) -#endif /* STM32F10X_CL */ -/** - * @} - */ - -/** @defgroup PREDIV1_division_factor - * @{ - */ -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) - #define RCC_PREDIV1_Div1 ((uint32_t)0x00000000) - #define RCC_PREDIV1_Div2 ((uint32_t)0x00000001) - #define RCC_PREDIV1_Div3 ((uint32_t)0x00000002) - #define RCC_PREDIV1_Div4 ((uint32_t)0x00000003) - #define RCC_PREDIV1_Div5 ((uint32_t)0x00000004) - #define RCC_PREDIV1_Div6 ((uint32_t)0x00000005) - #define RCC_PREDIV1_Div7 ((uint32_t)0x00000006) - #define RCC_PREDIV1_Div8 ((uint32_t)0x00000007) - #define RCC_PREDIV1_Div9 ((uint32_t)0x00000008) - #define RCC_PREDIV1_Div10 ((uint32_t)0x00000009) - #define RCC_PREDIV1_Div11 ((uint32_t)0x0000000A) - #define RCC_PREDIV1_Div12 ((uint32_t)0x0000000B) - #define RCC_PREDIV1_Div13 ((uint32_t)0x0000000C) - #define RCC_PREDIV1_Div14 ((uint32_t)0x0000000D) - #define RCC_PREDIV1_Div15 ((uint32_t)0x0000000E) - #define RCC_PREDIV1_Div16 ((uint32_t)0x0000000F) - - #define IS_RCC_PREDIV1(PREDIV1) (((PREDIV1) == RCC_PREDIV1_Div1) || ((PREDIV1) == RCC_PREDIV1_Div2) || \ - ((PREDIV1) == RCC_PREDIV1_Div3) || ((PREDIV1) == RCC_PREDIV1_Div4) || \ - ((PREDIV1) == RCC_PREDIV1_Div5) || ((PREDIV1) == RCC_PREDIV1_Div6) || \ - ((PREDIV1) == RCC_PREDIV1_Div7) || ((PREDIV1) == RCC_PREDIV1_Div8) || \ - ((PREDIV1) == RCC_PREDIV1_Div9) || ((PREDIV1) == RCC_PREDIV1_Div10) || \ - ((PREDIV1) == RCC_PREDIV1_Div11) || ((PREDIV1) == RCC_PREDIV1_Div12) || \ - ((PREDIV1) == RCC_PREDIV1_Div13) || ((PREDIV1) == RCC_PREDIV1_Div14) || \ - ((PREDIV1) == RCC_PREDIV1_Div15) || ((PREDIV1) == RCC_PREDIV1_Div16)) -#endif -/** - * @} - */ - - -/** @defgroup PREDIV1_clock_source - * @{ - */ -#ifdef STM32F10X_CL -/* PREDIV1 clock source (for STM32 connectivity line devices) */ - #define RCC_PREDIV1_Source_HSE ((uint32_t)0x00000000) - #define RCC_PREDIV1_Source_PLL2 ((uint32_t)0x00010000) - - #define IS_RCC_PREDIV1_SOURCE(SOURCE) (((SOURCE) == RCC_PREDIV1_Source_HSE) || \ - ((SOURCE) == RCC_PREDIV1_Source_PLL2)) -#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -/* PREDIV1 clock source (for STM32 Value line devices) */ - #define RCC_PREDIV1_Source_HSE ((uint32_t)0x00000000) - - #define IS_RCC_PREDIV1_SOURCE(SOURCE) (((SOURCE) == RCC_PREDIV1_Source_HSE)) -#endif -/** - * @} - */ - -#ifdef STM32F10X_CL -/** @defgroup PREDIV2_division_factor - * @{ - */ - - #define RCC_PREDIV2_Div1 ((uint32_t)0x00000000) - #define RCC_PREDIV2_Div2 ((uint32_t)0x00000010) - #define RCC_PREDIV2_Div3 ((uint32_t)0x00000020) - #define RCC_PREDIV2_Div4 ((uint32_t)0x00000030) - #define RCC_PREDIV2_Div5 ((uint32_t)0x00000040) - #define RCC_PREDIV2_Div6 ((uint32_t)0x00000050) - #define RCC_PREDIV2_Div7 ((uint32_t)0x00000060) - #define RCC_PREDIV2_Div8 ((uint32_t)0x00000070) - #define RCC_PREDIV2_Div9 ((uint32_t)0x00000080) - #define RCC_PREDIV2_Div10 ((uint32_t)0x00000090) - #define RCC_PREDIV2_Div11 ((uint32_t)0x000000A0) - #define RCC_PREDIV2_Div12 ((uint32_t)0x000000B0) - #define RCC_PREDIV2_Div13 ((uint32_t)0x000000C0) - #define RCC_PREDIV2_Div14 ((uint32_t)0x000000D0) - #define RCC_PREDIV2_Div15 ((uint32_t)0x000000E0) - #define RCC_PREDIV2_Div16 ((uint32_t)0x000000F0) - - #define IS_RCC_PREDIV2(PREDIV2) (((PREDIV2) == RCC_PREDIV2_Div1) || ((PREDIV2) == RCC_PREDIV2_Div2) || \ - ((PREDIV2) == RCC_PREDIV2_Div3) || ((PREDIV2) == RCC_PREDIV2_Div4) || \ - ((PREDIV2) == RCC_PREDIV2_Div5) || ((PREDIV2) == RCC_PREDIV2_Div6) || \ - ((PREDIV2) == RCC_PREDIV2_Div7) || ((PREDIV2) == RCC_PREDIV2_Div8) || \ - ((PREDIV2) == RCC_PREDIV2_Div9) || ((PREDIV2) == RCC_PREDIV2_Div10) || \ - ((PREDIV2) == RCC_PREDIV2_Div11) || ((PREDIV2) == RCC_PREDIV2_Div12) || \ - ((PREDIV2) == RCC_PREDIV2_Div13) || ((PREDIV2) == RCC_PREDIV2_Div14) || \ - ((PREDIV2) == RCC_PREDIV2_Div15) || ((PREDIV2) == RCC_PREDIV2_Div16)) -/** - * @} - */ - - -/** @defgroup PLL2_multiplication_factor - * @{ - */ - - #define RCC_PLL2Mul_8 ((uint32_t)0x00000600) - #define RCC_PLL2Mul_9 ((uint32_t)0x00000700) - #define RCC_PLL2Mul_10 ((uint32_t)0x00000800) - #define RCC_PLL2Mul_11 ((uint32_t)0x00000900) - #define RCC_PLL2Mul_12 ((uint32_t)0x00000A00) - #define RCC_PLL2Mul_13 ((uint32_t)0x00000B00) - #define RCC_PLL2Mul_14 ((uint32_t)0x00000C00) - #define RCC_PLL2Mul_16 ((uint32_t)0x00000E00) - #define RCC_PLL2Mul_20 ((uint32_t)0x00000F00) - - #define IS_RCC_PLL2_MUL(MUL) (((MUL) == RCC_PLL2Mul_8) || ((MUL) == RCC_PLL2Mul_9) || \ - ((MUL) == RCC_PLL2Mul_10) || ((MUL) == RCC_PLL2Mul_11) || \ - ((MUL) == RCC_PLL2Mul_12) || ((MUL) == RCC_PLL2Mul_13) || \ - ((MUL) == RCC_PLL2Mul_14) || ((MUL) == RCC_PLL2Mul_16) || \ - ((MUL) == RCC_PLL2Mul_20)) -/** - * @} - */ - - -/** @defgroup PLL3_multiplication_factor - * @{ - */ - - #define RCC_PLL3Mul_8 ((uint32_t)0x00006000) - #define RCC_PLL3Mul_9 ((uint32_t)0x00007000) - #define RCC_PLL3Mul_10 ((uint32_t)0x00008000) - #define RCC_PLL3Mul_11 ((uint32_t)0x00009000) - #define RCC_PLL3Mul_12 ((uint32_t)0x0000A000) - #define RCC_PLL3Mul_13 ((uint32_t)0x0000B000) - #define RCC_PLL3Mul_14 ((uint32_t)0x0000C000) - #define RCC_PLL3Mul_16 ((uint32_t)0x0000E000) - #define RCC_PLL3Mul_20 ((uint32_t)0x0000F000) - - #define IS_RCC_PLL3_MUL(MUL) (((MUL) == RCC_PLL3Mul_8) || ((MUL) == RCC_PLL3Mul_9) || \ - ((MUL) == RCC_PLL3Mul_10) || ((MUL) == RCC_PLL3Mul_11) || \ - ((MUL) == RCC_PLL3Mul_12) || ((MUL) == RCC_PLL3Mul_13) || \ - ((MUL) == RCC_PLL3Mul_14) || ((MUL) == RCC_PLL3Mul_16) || \ - ((MUL) == RCC_PLL3Mul_20)) -/** - * @} - */ - -#endif /* STM32F10X_CL */ - - -/** @defgroup System_clock_source - * @{ - */ - -#define RCC_SYSCLKSource_HSI ((uint32_t)0x00000000) -#define RCC_SYSCLKSource_HSE ((uint32_t)0x00000001) -#define RCC_SYSCLKSource_PLLCLK ((uint32_t)0x00000002) -#define IS_RCC_SYSCLK_SOURCE(SOURCE) (((SOURCE) == RCC_SYSCLKSource_HSI) || \ - ((SOURCE) == RCC_SYSCLKSource_HSE) || \ - ((SOURCE) == RCC_SYSCLKSource_PLLCLK)) -/** - * @} - */ - -/** @defgroup AHB_clock_source - * @{ - */ - -#define RCC_SYSCLK_Div1 ((uint32_t)0x00000000) -#define RCC_SYSCLK_Div2 ((uint32_t)0x00000080) -#define RCC_SYSCLK_Div4 ((uint32_t)0x00000090) -#define RCC_SYSCLK_Div8 ((uint32_t)0x000000A0) -#define RCC_SYSCLK_Div16 ((uint32_t)0x000000B0) -#define RCC_SYSCLK_Div64 ((uint32_t)0x000000C0) -#define RCC_SYSCLK_Div128 ((uint32_t)0x000000D0) -#define RCC_SYSCLK_Div256 ((uint32_t)0x000000E0) -#define RCC_SYSCLK_Div512 ((uint32_t)0x000000F0) -#define IS_RCC_HCLK(HCLK) (((HCLK) == RCC_SYSCLK_Div1) || ((HCLK) == RCC_SYSCLK_Div2) || \ - ((HCLK) == RCC_SYSCLK_Div4) || ((HCLK) == RCC_SYSCLK_Div8) || \ - ((HCLK) == RCC_SYSCLK_Div16) || ((HCLK) == RCC_SYSCLK_Div64) || \ - ((HCLK) == RCC_SYSCLK_Div128) || ((HCLK) == RCC_SYSCLK_Div256) || \ - ((HCLK) == RCC_SYSCLK_Div512)) -/** - * @} - */ - -/** @defgroup APB1_APB2_clock_source - * @{ - */ - -#define RCC_HCLK_Div1 ((uint32_t)0x00000000) -#define RCC_HCLK_Div2 ((uint32_t)0x00000400) -#define RCC_HCLK_Div4 ((uint32_t)0x00000500) -#define RCC_HCLK_Div8 ((uint32_t)0x00000600) -#define RCC_HCLK_Div16 ((uint32_t)0x00000700) -#define IS_RCC_PCLK(PCLK) (((PCLK) == RCC_HCLK_Div1) || ((PCLK) == RCC_HCLK_Div2) || \ - ((PCLK) == RCC_HCLK_Div4) || ((PCLK) == RCC_HCLK_Div8) || \ - ((PCLK) == RCC_HCLK_Div16)) -/** - * @} - */ - -/** @defgroup RCC_Interrupt_source - * @{ - */ - -#define RCC_IT_LSIRDY ((uint8_t)0x01) -#define RCC_IT_LSERDY ((uint8_t)0x02) -#define RCC_IT_HSIRDY ((uint8_t)0x04) -#define RCC_IT_HSERDY ((uint8_t)0x08) -#define RCC_IT_PLLRDY ((uint8_t)0x10) -#define RCC_IT_CSS ((uint8_t)0x80) - -#ifndef STM32F10X_CL - #define IS_RCC_IT(IT) ((((IT) & (uint8_t)0xE0) == 0x00) && ((IT) != 0x00)) - #define IS_RCC_GET_IT(IT) (((IT) == RCC_IT_LSIRDY) || ((IT) == RCC_IT_LSERDY) || \ - ((IT) == RCC_IT_HSIRDY) || ((IT) == RCC_IT_HSERDY) || \ - ((IT) == RCC_IT_PLLRDY) || ((IT) == RCC_IT_CSS)) - #define IS_RCC_CLEAR_IT(IT) ((((IT) & (uint8_t)0x60) == 0x00) && ((IT) != 0x00)) -#else - #define RCC_IT_PLL2RDY ((uint8_t)0x20) - #define RCC_IT_PLL3RDY ((uint8_t)0x40) - #define IS_RCC_IT(IT) ((((IT) & (uint8_t)0x80) == 0x00) && ((IT) != 0x00)) - #define IS_RCC_GET_IT(IT) (((IT) == RCC_IT_LSIRDY) || ((IT) == RCC_IT_LSERDY) || \ - ((IT) == RCC_IT_HSIRDY) || ((IT) == RCC_IT_HSERDY) || \ - ((IT) == RCC_IT_PLLRDY) || ((IT) == RCC_IT_CSS) || \ - ((IT) == RCC_IT_PLL2RDY) || ((IT) == RCC_IT_PLL3RDY)) - #define IS_RCC_CLEAR_IT(IT) ((IT) != 0x00) -#endif /* STM32F10X_CL */ - - -/** - * @} - */ - -#ifndef STM32F10X_CL -/** @defgroup USB_Device_clock_source - * @{ - */ - - #define RCC_USBCLKSource_PLLCLK_1Div5 ((uint8_t)0x00) - #define RCC_USBCLKSource_PLLCLK_Div1 ((uint8_t)0x01) - - #define IS_RCC_USBCLK_SOURCE(SOURCE) (((SOURCE) == RCC_USBCLKSource_PLLCLK_1Div5) || \ - ((SOURCE) == RCC_USBCLKSource_PLLCLK_Div1)) -/** - * @} - */ -#else -/** @defgroup USB_OTG_FS_clock_source - * @{ - */ - #define RCC_OTGFSCLKSource_PLLVCO_Div3 ((uint8_t)0x00) - #define RCC_OTGFSCLKSource_PLLVCO_Div2 ((uint8_t)0x01) - - #define IS_RCC_OTGFSCLK_SOURCE(SOURCE) (((SOURCE) == RCC_OTGFSCLKSource_PLLVCO_Div3) || \ - ((SOURCE) == RCC_OTGFSCLKSource_PLLVCO_Div2)) -/** - * @} - */ -#endif /* STM32F10X_CL */ - - -#ifdef STM32F10X_CL -/** @defgroup I2S2_clock_source - * @{ - */ - #define RCC_I2S2CLKSource_SYSCLK ((uint8_t)0x00) - #define RCC_I2S2CLKSource_PLL3_VCO ((uint8_t)0x01) - - #define IS_RCC_I2S2CLK_SOURCE(SOURCE) (((SOURCE) == RCC_I2S2CLKSource_SYSCLK) || \ - ((SOURCE) == RCC_I2S2CLKSource_PLL3_VCO)) -/** - * @} - */ - -/** @defgroup I2S3_clock_source - * @{ - */ - #define RCC_I2S3CLKSource_SYSCLK ((uint8_t)0x00) - #define RCC_I2S3CLKSource_PLL3_VCO ((uint8_t)0x01) - - #define IS_RCC_I2S3CLK_SOURCE(SOURCE) (((SOURCE) == RCC_I2S3CLKSource_SYSCLK) || \ - ((SOURCE) == RCC_I2S3CLKSource_PLL3_VCO)) -/** - * @} - */ -#endif /* STM32F10X_CL */ - - -/** @defgroup ADC_clock_source - * @{ - */ - -#define RCC_PCLK2_Div2 ((uint32_t)0x00000000) -#define RCC_PCLK2_Div4 ((uint32_t)0x00004000) -#define RCC_PCLK2_Div6 ((uint32_t)0x00008000) -#define RCC_PCLK2_Div8 ((uint32_t)0x0000C000) -#define IS_RCC_ADCCLK(ADCCLK) (((ADCCLK) == RCC_PCLK2_Div2) || ((ADCCLK) == RCC_PCLK2_Div4) || \ - ((ADCCLK) == RCC_PCLK2_Div6) || ((ADCCLK) == RCC_PCLK2_Div8)) -/** - * @} - */ - -/** @defgroup LSE_configuration - * @{ - */ - -#define RCC_LSE_OFF ((uint8_t)0x00) -#define RCC_LSE_ON ((uint8_t)0x01) -#define RCC_LSE_Bypass ((uint8_t)0x04) -#define IS_RCC_LSE(LSE) (((LSE) == RCC_LSE_OFF) || ((LSE) == RCC_LSE_ON) || \ - ((LSE) == RCC_LSE_Bypass)) -/** - * @} - */ - -/** @defgroup RTC_clock_source - * @{ - */ - -#define RCC_RTCCLKSource_LSE ((uint32_t)0x00000100) -#define RCC_RTCCLKSource_LSI ((uint32_t)0x00000200) -#define RCC_RTCCLKSource_HSE_Div128 ((uint32_t)0x00000300) -#define IS_RCC_RTCCLK_SOURCE(SOURCE) (((SOURCE) == RCC_RTCCLKSource_LSE) || \ - ((SOURCE) == RCC_RTCCLKSource_LSI) || \ - ((SOURCE) == RCC_RTCCLKSource_HSE_Div128)) -/** - * @} - */ - -/** @defgroup AHB_peripheral - * @{ - */ - -#define RCC_AHBPeriph_DMA1 ((uint32_t)0x00000001) -#define RCC_AHBPeriph_DMA2 ((uint32_t)0x00000002) -#define RCC_AHBPeriph_SRAM ((uint32_t)0x00000004) -#define RCC_AHBPeriph_FLITF ((uint32_t)0x00000010) -#define RCC_AHBPeriph_CRC ((uint32_t)0x00000040) - -#ifndef STM32F10X_CL - #define RCC_AHBPeriph_FSMC ((uint32_t)0x00000100) - #define RCC_AHBPeriph_SDIO ((uint32_t)0x00000400) - #define IS_RCC_AHB_PERIPH(PERIPH) ((((PERIPH) & 0xFFFFFAA8) == 0x00) && ((PERIPH) != 0x00)) -#else - #define RCC_AHBPeriph_OTG_FS ((uint32_t)0x00001000) - #define RCC_AHBPeriph_ETH_MAC ((uint32_t)0x00004000) - #define RCC_AHBPeriph_ETH_MAC_Tx ((uint32_t)0x00008000) - #define RCC_AHBPeriph_ETH_MAC_Rx ((uint32_t)0x00010000) - - #define IS_RCC_AHB_PERIPH(PERIPH) ((((PERIPH) & 0xFFFE2FA8) == 0x00) && ((PERIPH) != 0x00)) - #define IS_RCC_AHB_PERIPH_RESET(PERIPH) ((((PERIPH) & 0xFFFFAFFF) == 0x00) && ((PERIPH) != 0x00)) -#endif /* STM32F10X_CL */ -/** - * @} - */ - -/** @defgroup APB2_peripheral - * @{ - */ - -#define RCC_APB2Periph_AFIO ((uint32_t)0x00000001) -#define RCC_APB2Periph_GPIOA ((uint32_t)0x00000004) -#define RCC_APB2Periph_GPIOB ((uint32_t)0x00000008) -#define RCC_APB2Periph_GPIOC ((uint32_t)0x00000010) -#define RCC_APB2Periph_GPIOD ((uint32_t)0x00000020) -#define RCC_APB2Periph_GPIOE ((uint32_t)0x00000040) -#define RCC_APB2Periph_GPIOF ((uint32_t)0x00000080) -#define RCC_APB2Periph_GPIOG ((uint32_t)0x00000100) -#define RCC_APB2Periph_ADC1 ((uint32_t)0x00000200) -#define RCC_APB2Periph_ADC2 ((uint32_t)0x00000400) -#define RCC_APB2Periph_TIM1 ((uint32_t)0x00000800) -#define RCC_APB2Periph_SPI1 ((uint32_t)0x00001000) -#define RCC_APB2Periph_TIM8 ((uint32_t)0x00002000) -#define RCC_APB2Periph_USART1 ((uint32_t)0x00004000) -#define RCC_APB2Periph_ADC3 ((uint32_t)0x00008000) -#define RCC_APB2Periph_TIM15 ((uint32_t)0x00010000) -#define RCC_APB2Periph_TIM16 ((uint32_t)0x00020000) -#define RCC_APB2Periph_TIM17 ((uint32_t)0x00040000) -#define RCC_APB2Periph_TIM9 ((uint32_t)0x00080000) -#define RCC_APB2Periph_TIM10 ((uint32_t)0x00100000) -#define RCC_APB2Periph_TIM11 ((uint32_t)0x00200000) - -#define IS_RCC_APB2_PERIPH(PERIPH) ((((PERIPH) & 0xFFC00002) == 0x00) && ((PERIPH) != 0x00)) -/** - * @} - */ - -/** @defgroup APB1_peripheral - * @{ - */ - -#define RCC_APB1Periph_TIM2 ((uint32_t)0x00000001) -#define RCC_APB1Periph_TIM3 ((uint32_t)0x00000002) -#define RCC_APB1Periph_TIM4 ((uint32_t)0x00000004) -#define RCC_APB1Periph_TIM5 ((uint32_t)0x00000008) -#define RCC_APB1Periph_TIM6 ((uint32_t)0x00000010) -#define RCC_APB1Periph_TIM7 ((uint32_t)0x00000020) -#define RCC_APB1Periph_TIM12 ((uint32_t)0x00000040) -#define RCC_APB1Periph_TIM13 ((uint32_t)0x00000080) -#define RCC_APB1Periph_TIM14 ((uint32_t)0x00000100) -#define RCC_APB1Periph_WWDG ((uint32_t)0x00000800) -#define RCC_APB1Periph_SPI2 ((uint32_t)0x00004000) -#define RCC_APB1Periph_SPI3 ((uint32_t)0x00008000) -#define RCC_APB1Periph_USART2 ((uint32_t)0x00020000) -#define RCC_APB1Periph_USART3 ((uint32_t)0x00040000) -#define RCC_APB1Periph_UART4 ((uint32_t)0x00080000) -#define RCC_APB1Periph_UART5 ((uint32_t)0x00100000) -#define RCC_APB1Periph_I2C1 ((uint32_t)0x00200000) -#define RCC_APB1Periph_I2C2 ((uint32_t)0x00400000) -#define RCC_APB1Periph_USB ((uint32_t)0x00800000) -#define RCC_APB1Periph_CAN1 ((uint32_t)0x02000000) -#define RCC_APB1Periph_CAN2 ((uint32_t)0x04000000) -#define RCC_APB1Periph_BKP ((uint32_t)0x08000000) -#define RCC_APB1Periph_PWR ((uint32_t)0x10000000) -#define RCC_APB1Periph_DAC ((uint32_t)0x20000000) -#define RCC_APB1Periph_CEC ((uint32_t)0x40000000) - -#define IS_RCC_APB1_PERIPH(PERIPH) ((((PERIPH) & 0x81013600) == 0x00) && ((PERIPH) != 0x00)) - -/** - * @} - */ - -/** @defgroup Clock_source_to_output_on_MCO_pin - * @{ - */ - -#define RCC_MCO_NoClock ((uint8_t)0x00) -#define RCC_MCO_SYSCLK ((uint8_t)0x04) -#define RCC_MCO_HSI ((uint8_t)0x05) -#define RCC_MCO_HSE ((uint8_t)0x06) -#define RCC_MCO_PLLCLK_Div2 ((uint8_t)0x07) - -#ifndef STM32F10X_CL - #define IS_RCC_MCO(MCO) (((MCO) == RCC_MCO_NoClock) || ((MCO) == RCC_MCO_HSI) || \ - ((MCO) == RCC_MCO_SYSCLK) || ((MCO) == RCC_MCO_HSE) || \ - ((MCO) == RCC_MCO_PLLCLK_Div2)) -#else - #define RCC_MCO_PLL2CLK ((uint8_t)0x08) - #define RCC_MCO_PLL3CLK_Div2 ((uint8_t)0x09) - #define RCC_MCO_XT1 ((uint8_t)0x0A) - #define RCC_MCO_PLL3CLK ((uint8_t)0x0B) - - #define IS_RCC_MCO(MCO) (((MCO) == RCC_MCO_NoClock) || ((MCO) == RCC_MCO_HSI) || \ - ((MCO) == RCC_MCO_SYSCLK) || ((MCO) == RCC_MCO_HSE) || \ - ((MCO) == RCC_MCO_PLLCLK_Div2) || ((MCO) == RCC_MCO_PLL2CLK) || \ - ((MCO) == RCC_MCO_PLL3CLK_Div2) || ((MCO) == RCC_MCO_XT1) || \ - ((MCO) == RCC_MCO_PLL3CLK)) -#endif /* STM32F10X_CL */ - -/** - * @} - */ - -/** @defgroup RCC_Flag - * @{ - */ - -#define RCC_FLAG_HSIRDY ((uint8_t)0x21) -#define RCC_FLAG_HSERDY ((uint8_t)0x31) -#define RCC_FLAG_PLLRDY ((uint8_t)0x39) -#define RCC_FLAG_LSERDY ((uint8_t)0x41) -#define RCC_FLAG_LSIRDY ((uint8_t)0x61) -#define RCC_FLAG_PINRST ((uint8_t)0x7A) -#define RCC_FLAG_PORRST ((uint8_t)0x7B) -#define RCC_FLAG_SFTRST ((uint8_t)0x7C) -#define RCC_FLAG_IWDGRST ((uint8_t)0x7D) -#define RCC_FLAG_WWDGRST ((uint8_t)0x7E) -#define RCC_FLAG_LPWRRST ((uint8_t)0x7F) - -#ifndef STM32F10X_CL - #define IS_RCC_FLAG(FLAG) (((FLAG) == RCC_FLAG_HSIRDY) || ((FLAG) == RCC_FLAG_HSERDY) || \ - ((FLAG) == RCC_FLAG_PLLRDY) || ((FLAG) == RCC_FLAG_LSERDY) || \ - ((FLAG) == RCC_FLAG_LSIRDY) || ((FLAG) == RCC_FLAG_PINRST) || \ - ((FLAG) == RCC_FLAG_PORRST) || ((FLAG) == RCC_FLAG_SFTRST) || \ - ((FLAG) == RCC_FLAG_IWDGRST)|| ((FLAG) == RCC_FLAG_WWDGRST)|| \ - ((FLAG) == RCC_FLAG_LPWRRST)) -#else - #define RCC_FLAG_PLL2RDY ((uint8_t)0x3B) - #define RCC_FLAG_PLL3RDY ((uint8_t)0x3D) - #define IS_RCC_FLAG(FLAG) (((FLAG) == RCC_FLAG_HSIRDY) || ((FLAG) == RCC_FLAG_HSERDY) || \ - ((FLAG) == RCC_FLAG_PLLRDY) || ((FLAG) == RCC_FLAG_LSERDY) || \ - ((FLAG) == RCC_FLAG_PLL2RDY) || ((FLAG) == RCC_FLAG_PLL3RDY) || \ - ((FLAG) == RCC_FLAG_LSIRDY) || ((FLAG) == RCC_FLAG_PINRST) || \ - ((FLAG) == RCC_FLAG_PORRST) || ((FLAG) == RCC_FLAG_SFTRST) || \ - ((FLAG) == RCC_FLAG_IWDGRST)|| ((FLAG) == RCC_FLAG_WWDGRST)|| \ - ((FLAG) == RCC_FLAG_LPWRRST)) -#endif /* STM32F10X_CL */ - -#define IS_RCC_CALIBRATION_VALUE(VALUE) ((VALUE) <= 0x1F) -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup RCC_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup RCC_Exported_Functions - * @{ - */ - -void RCC_DeInit(void); -void RCC_HSEConfig(uint32_t RCC_HSE); -ErrorStatus RCC_WaitForHSEStartUp(void); -void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue); -void RCC_HSICmd(FunctionalState NewState); -void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul); -void RCC_PLLCmd(FunctionalState NewState); - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) - void RCC_PREDIV1Config(uint32_t RCC_PREDIV1_Source, uint32_t RCC_PREDIV1_Div); -#endif - -#ifdef STM32F10X_CL - void RCC_PREDIV2Config(uint32_t RCC_PREDIV2_Div); - void RCC_PLL2Config(uint32_t RCC_PLL2Mul); - void RCC_PLL2Cmd(FunctionalState NewState); - void RCC_PLL3Config(uint32_t RCC_PLL3Mul); - void RCC_PLL3Cmd(FunctionalState NewState); -#endif /* STM32F10X_CL */ - -void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource); -uint8_t RCC_GetSYSCLKSource(void); -void RCC_HCLKConfig(uint32_t RCC_SYSCLK); -void RCC_PCLK1Config(uint32_t RCC_HCLK); -void RCC_PCLK2Config(uint32_t RCC_HCLK); -void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState); - -#ifndef STM32F10X_CL - void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource); -#else - void RCC_OTGFSCLKConfig(uint32_t RCC_OTGFSCLKSource); -#endif /* STM32F10X_CL */ - -void RCC_ADCCLKConfig(uint32_t RCC_PCLK2); - -#ifdef STM32F10X_CL - void RCC_I2S2CLKConfig(uint32_t RCC_I2S2CLKSource); - void RCC_I2S3CLKConfig(uint32_t RCC_I2S3CLKSource); -#endif /* STM32F10X_CL */ - -void RCC_LSEConfig(uint8_t RCC_LSE); -void RCC_LSICmd(FunctionalState NewState); -void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource); -void RCC_RTCCLKCmd(FunctionalState NewState); -void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks); -void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); -void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); -void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState); - -#ifdef STM32F10X_CL -void RCC_AHBPeriphResetCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); -#endif /* STM32F10X_CL */ - -void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); -void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState); -void RCC_BackupResetCmd(FunctionalState NewState); -void RCC_ClockSecuritySystemCmd(FunctionalState NewState); -void RCC_MCOConfig(uint8_t RCC_MCO); -FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG); -void RCC_ClearFlag(void); -ITStatus RCC_GetITStatus(uint8_t RCC_IT); -void RCC_ClearITPendingBit(uint8_t RCC_IT); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_RCC_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rtc.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rtc.h deleted file mode 100644 index 214a5893..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rtc.h +++ /dev/null @@ -1,135 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_rtc.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the RTC firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_RTC_H -#define __STM32F10x_RTC_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup RTC - * @{ - */ - -/** @defgroup RTC_Exported_Types - * @{ - */ - -/** - * @} - */ - -/** @defgroup RTC_Exported_Constants - * @{ - */ - -/** @defgroup RTC_interrupts_define - * @{ - */ - -#define RTC_IT_OW ((uint16_t)0x0004) /*!< Overflow interrupt */ -#define RTC_IT_ALR ((uint16_t)0x0002) /*!< Alarm interrupt */ -#define RTC_IT_SEC ((uint16_t)0x0001) /*!< Second interrupt */ -#define IS_RTC_IT(IT) ((((IT) & (uint16_t)0xFFF8) == 0x00) && ((IT) != 0x00)) -#define IS_RTC_GET_IT(IT) (((IT) == RTC_IT_OW) || ((IT) == RTC_IT_ALR) || \ - ((IT) == RTC_IT_SEC)) -/** - * @} - */ - -/** @defgroup RTC_interrupts_flags - * @{ - */ - -#define RTC_FLAG_RTOFF ((uint16_t)0x0020) /*!< RTC Operation OFF flag */ -#define RTC_FLAG_RSF ((uint16_t)0x0008) /*!< Registers Synchronized flag */ -#define RTC_FLAG_OW ((uint16_t)0x0004) /*!< Overflow flag */ -#define RTC_FLAG_ALR ((uint16_t)0x0002) /*!< Alarm flag */ -#define RTC_FLAG_SEC ((uint16_t)0x0001) /*!< Second flag */ -#define IS_RTC_CLEAR_FLAG(FLAG) ((((FLAG) & (uint16_t)0xFFF0) == 0x00) && ((FLAG) != 0x00)) -#define IS_RTC_GET_FLAG(FLAG) (((FLAG) == RTC_FLAG_RTOFF) || ((FLAG) == RTC_FLAG_RSF) || \ - ((FLAG) == RTC_FLAG_OW) || ((FLAG) == RTC_FLAG_ALR) || \ - ((FLAG) == RTC_FLAG_SEC)) -#define IS_RTC_PRESCALER(PRESCALER) ((PRESCALER) <= 0xFFFFF) - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup RTC_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup RTC_Exported_Functions - * @{ - */ - -void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState); -void RTC_EnterConfigMode(void); -void RTC_ExitConfigMode(void); -uint32_t RTC_GetCounter(void); -void RTC_SetCounter(uint32_t CounterValue); -void RTC_SetPrescaler(uint32_t PrescalerValue); -void RTC_SetAlarm(uint32_t AlarmValue); -uint32_t RTC_GetDivider(void); -void RTC_WaitForLastTask(void); -void RTC_WaitForSynchro(void); -FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG); -void RTC_ClearFlag(uint16_t RTC_FLAG); -ITStatus RTC_GetITStatus(uint16_t RTC_IT); -void RTC_ClearITPendingBit(uint16_t RTC_IT); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_RTC_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_sdio.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_sdio.h deleted file mode 100644 index 40cfdedc..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_sdio.h +++ /dev/null @@ -1,531 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_sdio.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the SDIO firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_SDIO_H -#define __STM32F10x_SDIO_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup SDIO - * @{ - */ - -/** @defgroup SDIO_Exported_Types - * @{ - */ - -typedef struct -{ - uint32_t SDIO_ClockEdge; /*!< Specifies the clock transition on which the bit capture is made. - This parameter can be a value of @ref SDIO_Clock_Edge */ - - uint32_t SDIO_ClockBypass; /*!< Specifies whether the SDIO Clock divider bypass is - enabled or disabled. - This parameter can be a value of @ref SDIO_Clock_Bypass */ - - uint32_t SDIO_ClockPowerSave; /*!< Specifies whether SDIO Clock output is enabled or - disabled when the bus is idle. - This parameter can be a value of @ref SDIO_Clock_Power_Save */ - - uint32_t SDIO_BusWide; /*!< Specifies the SDIO bus width. - This parameter can be a value of @ref SDIO_Bus_Wide */ - - uint32_t SDIO_HardwareFlowControl; /*!< Specifies whether the SDIO hardware flow control is enabled or disabled. - This parameter can be a value of @ref SDIO_Hardware_Flow_Control */ - - uint8_t SDIO_ClockDiv; /*!< Specifies the clock frequency of the SDIO controller. - This parameter can be a value between 0x00 and 0xFF. */ - -} SDIO_InitTypeDef; - -typedef struct -{ - uint32_t SDIO_Argument; /*!< Specifies the SDIO command argument which is sent - to a card as part of a command message. If a command - contains an argument, it must be loaded into this register - before writing the command to the command register */ - - uint32_t SDIO_CmdIndex; /*!< Specifies the SDIO command index. It must be lower than 0x40. */ - - uint32_t SDIO_Response; /*!< Specifies the SDIO response type. - This parameter can be a value of @ref SDIO_Response_Type */ - - uint32_t SDIO_Wait; /*!< Specifies whether SDIO wait-for-interrupt request is enabled or disabled. - This parameter can be a value of @ref SDIO_Wait_Interrupt_State */ - - uint32_t SDIO_CPSM; /*!< Specifies whether SDIO Command path state machine (CPSM) - is enabled or disabled. - This parameter can be a value of @ref SDIO_CPSM_State */ -} SDIO_CmdInitTypeDef; - -typedef struct -{ - uint32_t SDIO_DataTimeOut; /*!< Specifies the data timeout period in card bus clock periods. */ - - uint32_t SDIO_DataLength; /*!< Specifies the number of data bytes to be transferred. */ - - uint32_t SDIO_DataBlockSize; /*!< Specifies the data block size for block transfer. - This parameter can be a value of @ref SDIO_Data_Block_Size */ - - uint32_t SDIO_TransferDir; /*!< Specifies the data transfer direction, whether the transfer - is a read or write. - This parameter can be a value of @ref SDIO_Transfer_Direction */ - - uint32_t SDIO_TransferMode; /*!< Specifies whether data transfer is in stream or block mode. - This parameter can be a value of @ref SDIO_Transfer_Type */ - - uint32_t SDIO_DPSM; /*!< Specifies whether SDIO Data path state machine (DPSM) - is enabled or disabled. - This parameter can be a value of @ref SDIO_DPSM_State */ -} SDIO_DataInitTypeDef; - -/** - * @} - */ - -/** @defgroup SDIO_Exported_Constants - * @{ - */ - -/** @defgroup SDIO_Clock_Edge - * @{ - */ - -#define SDIO_ClockEdge_Rising ((uint32_t)0x00000000) -#define SDIO_ClockEdge_Falling ((uint32_t)0x00002000) -#define IS_SDIO_CLOCK_EDGE(EDGE) (((EDGE) == SDIO_ClockEdge_Rising) || \ - ((EDGE) == SDIO_ClockEdge_Falling)) -/** - * @} - */ - -/** @defgroup SDIO_Clock_Bypass - * @{ - */ - -#define SDIO_ClockBypass_Disable ((uint32_t)0x00000000) -#define SDIO_ClockBypass_Enable ((uint32_t)0x00000400) -#define IS_SDIO_CLOCK_BYPASS(BYPASS) (((BYPASS) == SDIO_ClockBypass_Disable) || \ - ((BYPASS) == SDIO_ClockBypass_Enable)) -/** - * @} - */ - -/** @defgroup SDIO_Clock_Power_Save - * @{ - */ - -#define SDIO_ClockPowerSave_Disable ((uint32_t)0x00000000) -#define SDIO_ClockPowerSave_Enable ((uint32_t)0x00000200) -#define IS_SDIO_CLOCK_POWER_SAVE(SAVE) (((SAVE) == SDIO_ClockPowerSave_Disable) || \ - ((SAVE) == SDIO_ClockPowerSave_Enable)) -/** - * @} - */ - -/** @defgroup SDIO_Bus_Wide - * @{ - */ - -#define SDIO_BusWide_1b ((uint32_t)0x00000000) -#define SDIO_BusWide_4b ((uint32_t)0x00000800) -#define SDIO_BusWide_8b ((uint32_t)0x00001000) -#define IS_SDIO_BUS_WIDE(WIDE) (((WIDE) == SDIO_BusWide_1b) || ((WIDE) == SDIO_BusWide_4b) || \ - ((WIDE) == SDIO_BusWide_8b)) - -/** - * @} - */ - -/** @defgroup SDIO_Hardware_Flow_Control - * @{ - */ - -#define SDIO_HardwareFlowControl_Disable ((uint32_t)0x00000000) -#define SDIO_HardwareFlowControl_Enable ((uint32_t)0x00004000) -#define IS_SDIO_HARDWARE_FLOW_CONTROL(CONTROL) (((CONTROL) == SDIO_HardwareFlowControl_Disable) || \ - ((CONTROL) == SDIO_HardwareFlowControl_Enable)) -/** - * @} - */ - -/** @defgroup SDIO_Power_State - * @{ - */ - -#define SDIO_PowerState_OFF ((uint32_t)0x00000000) -#define SDIO_PowerState_ON ((uint32_t)0x00000003) -#define IS_SDIO_POWER_STATE(STATE) (((STATE) == SDIO_PowerState_OFF) || ((STATE) == SDIO_PowerState_ON)) -/** - * @} - */ - - -/** @defgroup SDIO_Interrupt_sources - * @{ - */ - -#define SDIO_IT_CCRCFAIL ((uint32_t)0x00000001) -#define SDIO_IT_DCRCFAIL ((uint32_t)0x00000002) -#define SDIO_IT_CTIMEOUT ((uint32_t)0x00000004) -#define SDIO_IT_DTIMEOUT ((uint32_t)0x00000008) -#define SDIO_IT_TXUNDERR ((uint32_t)0x00000010) -#define SDIO_IT_RXOVERR ((uint32_t)0x00000020) -#define SDIO_IT_CMDREND ((uint32_t)0x00000040) -#define SDIO_IT_CMDSENT ((uint32_t)0x00000080) -#define SDIO_IT_DATAEND ((uint32_t)0x00000100) -#define SDIO_IT_STBITERR ((uint32_t)0x00000200) -#define SDIO_IT_DBCKEND ((uint32_t)0x00000400) -#define SDIO_IT_CMDACT ((uint32_t)0x00000800) -#define SDIO_IT_TXACT ((uint32_t)0x00001000) -#define SDIO_IT_RXACT ((uint32_t)0x00002000) -#define SDIO_IT_TXFIFOHE ((uint32_t)0x00004000) -#define SDIO_IT_RXFIFOHF ((uint32_t)0x00008000) -#define SDIO_IT_TXFIFOF ((uint32_t)0x00010000) -#define SDIO_IT_RXFIFOF ((uint32_t)0x00020000) -#define SDIO_IT_TXFIFOE ((uint32_t)0x00040000) -#define SDIO_IT_RXFIFOE ((uint32_t)0x00080000) -#define SDIO_IT_TXDAVL ((uint32_t)0x00100000) -#define SDIO_IT_RXDAVL ((uint32_t)0x00200000) -#define SDIO_IT_SDIOIT ((uint32_t)0x00400000) -#define SDIO_IT_CEATAEND ((uint32_t)0x00800000) -#define IS_SDIO_IT(IT) ((((IT) & (uint32_t)0xFF000000) == 0x00) && ((IT) != (uint32_t)0x00)) -/** - * @} - */ - -/** @defgroup SDIO_Command_Index - * @{ - */ - -#define IS_SDIO_CMD_INDEX(INDEX) ((INDEX) < 0x40) -/** - * @} - */ - -/** @defgroup SDIO_Response_Type - * @{ - */ - -#define SDIO_Response_No ((uint32_t)0x00000000) -#define SDIO_Response_Short ((uint32_t)0x00000040) -#define SDIO_Response_Long ((uint32_t)0x000000C0) -#define IS_SDIO_RESPONSE(RESPONSE) (((RESPONSE) == SDIO_Response_No) || \ - ((RESPONSE) == SDIO_Response_Short) || \ - ((RESPONSE) == SDIO_Response_Long)) -/** - * @} - */ - -/** @defgroup SDIO_Wait_Interrupt_State - * @{ - */ - -#define SDIO_Wait_No ((uint32_t)0x00000000) /*!< SDIO No Wait, TimeOut is enabled */ -#define SDIO_Wait_IT ((uint32_t)0x00000100) /*!< SDIO Wait Interrupt Request */ -#define SDIO_Wait_Pend ((uint32_t)0x00000200) /*!< SDIO Wait End of transfer */ -#define IS_SDIO_WAIT(WAIT) (((WAIT) == SDIO_Wait_No) || ((WAIT) == SDIO_Wait_IT) || \ - ((WAIT) == SDIO_Wait_Pend)) -/** - * @} - */ - -/** @defgroup SDIO_CPSM_State - * @{ - */ - -#define SDIO_CPSM_Disable ((uint32_t)0x00000000) -#define SDIO_CPSM_Enable ((uint32_t)0x00000400) -#define IS_SDIO_CPSM(CPSM) (((CPSM) == SDIO_CPSM_Enable) || ((CPSM) == SDIO_CPSM_Disable)) -/** - * @} - */ - -/** @defgroup SDIO_Response_Registers - * @{ - */ - -#define SDIO_RESP1 ((uint32_t)0x00000000) -#define SDIO_RESP2 ((uint32_t)0x00000004) -#define SDIO_RESP3 ((uint32_t)0x00000008) -#define SDIO_RESP4 ((uint32_t)0x0000000C) -#define IS_SDIO_RESP(RESP) (((RESP) == SDIO_RESP1) || ((RESP) == SDIO_RESP2) || \ - ((RESP) == SDIO_RESP3) || ((RESP) == SDIO_RESP4)) -/** - * @} - */ - -/** @defgroup SDIO_Data_Length - * @{ - */ - -#define IS_SDIO_DATA_LENGTH(LENGTH) ((LENGTH) <= 0x01FFFFFF) -/** - * @} - */ - -/** @defgroup SDIO_Data_Block_Size - * @{ - */ - -#define SDIO_DataBlockSize_1b ((uint32_t)0x00000000) -#define SDIO_DataBlockSize_2b ((uint32_t)0x00000010) -#define SDIO_DataBlockSize_4b ((uint32_t)0x00000020) -#define SDIO_DataBlockSize_8b ((uint32_t)0x00000030) -#define SDIO_DataBlockSize_16b ((uint32_t)0x00000040) -#define SDIO_DataBlockSize_32b ((uint32_t)0x00000050) -#define SDIO_DataBlockSize_64b ((uint32_t)0x00000060) -#define SDIO_DataBlockSize_128b ((uint32_t)0x00000070) -#define SDIO_DataBlockSize_256b ((uint32_t)0x00000080) -#define SDIO_DataBlockSize_512b ((uint32_t)0x00000090) -#define SDIO_DataBlockSize_1024b ((uint32_t)0x000000A0) -#define SDIO_DataBlockSize_2048b ((uint32_t)0x000000B0) -#define SDIO_DataBlockSize_4096b ((uint32_t)0x000000C0) -#define SDIO_DataBlockSize_8192b ((uint32_t)0x000000D0) -#define SDIO_DataBlockSize_16384b ((uint32_t)0x000000E0) -#define IS_SDIO_BLOCK_SIZE(SIZE) (((SIZE) == SDIO_DataBlockSize_1b) || \ - ((SIZE) == SDIO_DataBlockSize_2b) || \ - ((SIZE) == SDIO_DataBlockSize_4b) || \ - ((SIZE) == SDIO_DataBlockSize_8b) || \ - ((SIZE) == SDIO_DataBlockSize_16b) || \ - ((SIZE) == SDIO_DataBlockSize_32b) || \ - ((SIZE) == SDIO_DataBlockSize_64b) || \ - ((SIZE) == SDIO_DataBlockSize_128b) || \ - ((SIZE) == SDIO_DataBlockSize_256b) || \ - ((SIZE) == SDIO_DataBlockSize_512b) || \ - ((SIZE) == SDIO_DataBlockSize_1024b) || \ - ((SIZE) == SDIO_DataBlockSize_2048b) || \ - ((SIZE) == SDIO_DataBlockSize_4096b) || \ - ((SIZE) == SDIO_DataBlockSize_8192b) || \ - ((SIZE) == SDIO_DataBlockSize_16384b)) -/** - * @} - */ - -/** @defgroup SDIO_Transfer_Direction - * @{ - */ - -#define SDIO_TransferDir_ToCard ((uint32_t)0x00000000) -#define SDIO_TransferDir_ToSDIO ((uint32_t)0x00000002) -#define IS_SDIO_TRANSFER_DIR(DIR) (((DIR) == SDIO_TransferDir_ToCard) || \ - ((DIR) == SDIO_TransferDir_ToSDIO)) -/** - * @} - */ - -/** @defgroup SDIO_Transfer_Type - * @{ - */ - -#define SDIO_TransferMode_Block ((uint32_t)0x00000000) -#define SDIO_TransferMode_Stream ((uint32_t)0x00000004) -#define IS_SDIO_TRANSFER_MODE(MODE) (((MODE) == SDIO_TransferMode_Stream) || \ - ((MODE) == SDIO_TransferMode_Block)) -/** - * @} - */ - -/** @defgroup SDIO_DPSM_State - * @{ - */ - -#define SDIO_DPSM_Disable ((uint32_t)0x00000000) -#define SDIO_DPSM_Enable ((uint32_t)0x00000001) -#define IS_SDIO_DPSM(DPSM) (((DPSM) == SDIO_DPSM_Enable) || ((DPSM) == SDIO_DPSM_Disable)) -/** - * @} - */ - -/** @defgroup SDIO_Flags - * @{ - */ - -#define SDIO_FLAG_CCRCFAIL ((uint32_t)0x00000001) -#define SDIO_FLAG_DCRCFAIL ((uint32_t)0x00000002) -#define SDIO_FLAG_CTIMEOUT ((uint32_t)0x00000004) -#define SDIO_FLAG_DTIMEOUT ((uint32_t)0x00000008) -#define SDIO_FLAG_TXUNDERR ((uint32_t)0x00000010) -#define SDIO_FLAG_RXOVERR ((uint32_t)0x00000020) -#define SDIO_FLAG_CMDREND ((uint32_t)0x00000040) -#define SDIO_FLAG_CMDSENT ((uint32_t)0x00000080) -#define SDIO_FLAG_DATAEND ((uint32_t)0x00000100) -#define SDIO_FLAG_STBITERR ((uint32_t)0x00000200) -#define SDIO_FLAG_DBCKEND ((uint32_t)0x00000400) -#define SDIO_FLAG_CMDACT ((uint32_t)0x00000800) -#define SDIO_FLAG_TXACT ((uint32_t)0x00001000) -#define SDIO_FLAG_RXACT ((uint32_t)0x00002000) -#define SDIO_FLAG_TXFIFOHE ((uint32_t)0x00004000) -#define SDIO_FLAG_RXFIFOHF ((uint32_t)0x00008000) -#define SDIO_FLAG_TXFIFOF ((uint32_t)0x00010000) -#define SDIO_FLAG_RXFIFOF ((uint32_t)0x00020000) -#define SDIO_FLAG_TXFIFOE ((uint32_t)0x00040000) -#define SDIO_FLAG_RXFIFOE ((uint32_t)0x00080000) -#define SDIO_FLAG_TXDAVL ((uint32_t)0x00100000) -#define SDIO_FLAG_RXDAVL ((uint32_t)0x00200000) -#define SDIO_FLAG_SDIOIT ((uint32_t)0x00400000) -#define SDIO_FLAG_CEATAEND ((uint32_t)0x00800000) -#define IS_SDIO_FLAG(FLAG) (((FLAG) == SDIO_FLAG_CCRCFAIL) || \ - ((FLAG) == SDIO_FLAG_DCRCFAIL) || \ - ((FLAG) == SDIO_FLAG_CTIMEOUT) || \ - ((FLAG) == SDIO_FLAG_DTIMEOUT) || \ - ((FLAG) == SDIO_FLAG_TXUNDERR) || \ - ((FLAG) == SDIO_FLAG_RXOVERR) || \ - ((FLAG) == SDIO_FLAG_CMDREND) || \ - ((FLAG) == SDIO_FLAG_CMDSENT) || \ - ((FLAG) == SDIO_FLAG_DATAEND) || \ - ((FLAG) == SDIO_FLAG_STBITERR) || \ - ((FLAG) == SDIO_FLAG_DBCKEND) || \ - ((FLAG) == SDIO_FLAG_CMDACT) || \ - ((FLAG) == SDIO_FLAG_TXACT) || \ - ((FLAG) == SDIO_FLAG_RXACT) || \ - ((FLAG) == SDIO_FLAG_TXFIFOHE) || \ - ((FLAG) == SDIO_FLAG_RXFIFOHF) || \ - ((FLAG) == SDIO_FLAG_TXFIFOF) || \ - ((FLAG) == SDIO_FLAG_RXFIFOF) || \ - ((FLAG) == SDIO_FLAG_TXFIFOE) || \ - ((FLAG) == SDIO_FLAG_RXFIFOE) || \ - ((FLAG) == SDIO_FLAG_TXDAVL) || \ - ((FLAG) == SDIO_FLAG_RXDAVL) || \ - ((FLAG) == SDIO_FLAG_SDIOIT) || \ - ((FLAG) == SDIO_FLAG_CEATAEND)) - -#define IS_SDIO_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0xFF3FF800) == 0x00) && ((FLAG) != (uint32_t)0x00)) - -#define IS_SDIO_GET_IT(IT) (((IT) == SDIO_IT_CCRCFAIL) || \ - ((IT) == SDIO_IT_DCRCFAIL) || \ - ((IT) == SDIO_IT_CTIMEOUT) || \ - ((IT) == SDIO_IT_DTIMEOUT) || \ - ((IT) == SDIO_IT_TXUNDERR) || \ - ((IT) == SDIO_IT_RXOVERR) || \ - ((IT) == SDIO_IT_CMDREND) || \ - ((IT) == SDIO_IT_CMDSENT) || \ - ((IT) == SDIO_IT_DATAEND) || \ - ((IT) == SDIO_IT_STBITERR) || \ - ((IT) == SDIO_IT_DBCKEND) || \ - ((IT) == SDIO_IT_CMDACT) || \ - ((IT) == SDIO_IT_TXACT) || \ - ((IT) == SDIO_IT_RXACT) || \ - ((IT) == SDIO_IT_TXFIFOHE) || \ - ((IT) == SDIO_IT_RXFIFOHF) || \ - ((IT) == SDIO_IT_TXFIFOF) || \ - ((IT) == SDIO_IT_RXFIFOF) || \ - ((IT) == SDIO_IT_TXFIFOE) || \ - ((IT) == SDIO_IT_RXFIFOE) || \ - ((IT) == SDIO_IT_TXDAVL) || \ - ((IT) == SDIO_IT_RXDAVL) || \ - ((IT) == SDIO_IT_SDIOIT) || \ - ((IT) == SDIO_IT_CEATAEND)) - -#define IS_SDIO_CLEAR_IT(IT) ((((IT) & (uint32_t)0xFF3FF800) == 0x00) && ((IT) != (uint32_t)0x00)) - -/** - * @} - */ - -/** @defgroup SDIO_Read_Wait_Mode - * @{ - */ - -#define SDIO_ReadWaitMode_CLK ((uint32_t)0x00000001) -#define SDIO_ReadWaitMode_DATA2 ((uint32_t)0x00000000) -#define IS_SDIO_READWAIT_MODE(MODE) (((MODE) == SDIO_ReadWaitMode_CLK) || \ - ((MODE) == SDIO_ReadWaitMode_DATA2)) -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup SDIO_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup SDIO_Exported_Functions - * @{ - */ - -void SDIO_DeInit(void); -void SDIO_Init(SDIO_InitTypeDef* SDIO_InitStruct); -void SDIO_StructInit(SDIO_InitTypeDef* SDIO_InitStruct); -void SDIO_ClockCmd(FunctionalState NewState); -void SDIO_SetPowerState(uint32_t SDIO_PowerState); -uint32_t SDIO_GetPowerState(void); -void SDIO_ITConfig(uint32_t SDIO_IT, FunctionalState NewState); -void SDIO_DMACmd(FunctionalState NewState); -void SDIO_SendCommand(SDIO_CmdInitTypeDef *SDIO_CmdInitStruct); -void SDIO_CmdStructInit(SDIO_CmdInitTypeDef* SDIO_CmdInitStruct); -uint8_t SDIO_GetCommandResponse(void); -uint32_t SDIO_GetResponse(uint32_t SDIO_RESP); -void SDIO_DataConfig(SDIO_DataInitTypeDef* SDIO_DataInitStruct); -void SDIO_DataStructInit(SDIO_DataInitTypeDef* SDIO_DataInitStruct); -uint32_t SDIO_GetDataCounter(void); -uint32_t SDIO_ReadData(void); -void SDIO_WriteData(uint32_t Data); -uint32_t SDIO_GetFIFOCount(void); -void SDIO_StartSDIOReadWait(FunctionalState NewState); -void SDIO_StopSDIOReadWait(FunctionalState NewState); -void SDIO_SetSDIOReadWaitMode(uint32_t SDIO_ReadWaitMode); -void SDIO_SetSDIOOperation(FunctionalState NewState); -void SDIO_SendSDIOSuspendCmd(FunctionalState NewState); -void SDIO_CommandCompletionCmd(FunctionalState NewState); -void SDIO_CEATAITCmd(FunctionalState NewState); -void SDIO_SendCEATACmd(FunctionalState NewState); -FlagStatus SDIO_GetFlagStatus(uint32_t SDIO_FLAG); -void SDIO_ClearFlag(uint32_t SDIO_FLAG); -ITStatus SDIO_GetITStatus(uint32_t SDIO_IT); -void SDIO_ClearITPendingBit(uint32_t SDIO_IT); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_SDIO_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_spi.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_spi.h deleted file mode 100644 index 6056c4c6..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_spi.h +++ /dev/null @@ -1,487 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_spi.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the SPI firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_SPI_H -#define __STM32F10x_SPI_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup SPI - * @{ - */ - -/** @defgroup SPI_Exported_Types - * @{ - */ - -/** - * @brief SPI Init structure definition - */ - -typedef struct -{ - uint16_t SPI_Direction; /*!< Specifies the SPI unidirectional or bidirectional data mode. - This parameter can be a value of @ref SPI_data_direction */ - - uint16_t SPI_Mode; /*!< Specifies the SPI operating mode. - This parameter can be a value of @ref SPI_mode */ - - uint16_t SPI_DataSize; /*!< Specifies the SPI data size. - This parameter can be a value of @ref SPI_data_size */ - - uint16_t SPI_CPOL; /*!< Specifies the serial clock steady state. - This parameter can be a value of @ref SPI_Clock_Polarity */ - - uint16_t SPI_CPHA; /*!< Specifies the clock active edge for the bit capture. - This parameter can be a value of @ref SPI_Clock_Phase */ - - uint16_t SPI_NSS; /*!< Specifies whether the NSS signal is managed by - hardware (NSS pin) or by software using the SSI bit. - This parameter can be a value of @ref SPI_Slave_Select_management */ - - uint16_t SPI_BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be - used to configure the transmit and receive SCK clock. - This parameter can be a value of @ref SPI_BaudRate_Prescaler. - @note The communication clock is derived from the master - clock. The slave clock does not need to be set. */ - - uint16_t SPI_FirstBit; /*!< Specifies whether data transfers start from MSB or LSB bit. - This parameter can be a value of @ref SPI_MSB_LSB_transmission */ - - uint16_t SPI_CRCPolynomial; /*!< Specifies the polynomial used for the CRC calculation. */ -}SPI_InitTypeDef; - -/** - * @brief I2S Init structure definition - */ - -typedef struct -{ - - uint16_t I2S_Mode; /*!< Specifies the I2S operating mode. - This parameter can be a value of @ref I2S_Mode */ - - uint16_t I2S_Standard; /*!< Specifies the standard used for the I2S communication. - This parameter can be a value of @ref I2S_Standard */ - - uint16_t I2S_DataFormat; /*!< Specifies the data format for the I2S communication. - This parameter can be a value of @ref I2S_Data_Format */ - - uint16_t I2S_MCLKOutput; /*!< Specifies whether the I2S MCLK output is enabled or not. - This parameter can be a value of @ref I2S_MCLK_Output */ - - uint32_t I2S_AudioFreq; /*!< Specifies the frequency selected for the I2S communication. - This parameter can be a value of @ref I2S_Audio_Frequency */ - - uint16_t I2S_CPOL; /*!< Specifies the idle state of the I2S clock. - This parameter can be a value of @ref I2S_Clock_Polarity */ -}I2S_InitTypeDef; - -/** - * @} - */ - -/** @defgroup SPI_Exported_Constants - * @{ - */ - -#define IS_SPI_ALL_PERIPH(PERIPH) (((PERIPH) == SPI1) || \ - ((PERIPH) == SPI2) || \ - ((PERIPH) == SPI3)) - -#define IS_SPI_23_PERIPH(PERIPH) (((PERIPH) == SPI2) || \ - ((PERIPH) == SPI3)) - -/** @defgroup SPI_data_direction - * @{ - */ - -#define SPI_Direction_2Lines_FullDuplex ((uint16_t)0x0000) -#define SPI_Direction_2Lines_RxOnly ((uint16_t)0x0400) -#define SPI_Direction_1Line_Rx ((uint16_t)0x8000) -#define SPI_Direction_1Line_Tx ((uint16_t)0xC000) -#define IS_SPI_DIRECTION_MODE(MODE) (((MODE) == SPI_Direction_2Lines_FullDuplex) || \ - ((MODE) == SPI_Direction_2Lines_RxOnly) || \ - ((MODE) == SPI_Direction_1Line_Rx) || \ - ((MODE) == SPI_Direction_1Line_Tx)) -/** - * @} - */ - -/** @defgroup SPI_mode - * @{ - */ - -#define SPI_Mode_Master ((uint16_t)0x0104) -#define SPI_Mode_Slave ((uint16_t)0x0000) -#define IS_SPI_MODE(MODE) (((MODE) == SPI_Mode_Master) || \ - ((MODE) == SPI_Mode_Slave)) -/** - * @} - */ - -/** @defgroup SPI_data_size - * @{ - */ - -#define SPI_DataSize_16b ((uint16_t)0x0800) -#define SPI_DataSize_8b ((uint16_t)0x0000) -#define IS_SPI_DATASIZE(DATASIZE) (((DATASIZE) == SPI_DataSize_16b) || \ - ((DATASIZE) == SPI_DataSize_8b)) -/** - * @} - */ - -/** @defgroup SPI_Clock_Polarity - * @{ - */ - -#define SPI_CPOL_Low ((uint16_t)0x0000) -#define SPI_CPOL_High ((uint16_t)0x0002) -#define IS_SPI_CPOL(CPOL) (((CPOL) == SPI_CPOL_Low) || \ - ((CPOL) == SPI_CPOL_High)) -/** - * @} - */ - -/** @defgroup SPI_Clock_Phase - * @{ - */ - -#define SPI_CPHA_1Edge ((uint16_t)0x0000) -#define SPI_CPHA_2Edge ((uint16_t)0x0001) -#define IS_SPI_CPHA(CPHA) (((CPHA) == SPI_CPHA_1Edge) || \ - ((CPHA) == SPI_CPHA_2Edge)) -/** - * @} - */ - -/** @defgroup SPI_Slave_Select_management - * @{ - */ - -#define SPI_NSS_Soft ((uint16_t)0x0200) -#define SPI_NSS_Hard ((uint16_t)0x0000) -#define IS_SPI_NSS(NSS) (((NSS) == SPI_NSS_Soft) || \ - ((NSS) == SPI_NSS_Hard)) -/** - * @} - */ - -/** @defgroup SPI_BaudRate_Prescaler - * @{ - */ - -#define SPI_BaudRatePrescaler_2 ((uint16_t)0x0000) -#define SPI_BaudRatePrescaler_4 ((uint16_t)0x0008) -#define SPI_BaudRatePrescaler_8 ((uint16_t)0x0010) -#define SPI_BaudRatePrescaler_16 ((uint16_t)0x0018) -#define SPI_BaudRatePrescaler_32 ((uint16_t)0x0020) -#define SPI_BaudRatePrescaler_64 ((uint16_t)0x0028) -#define SPI_BaudRatePrescaler_128 ((uint16_t)0x0030) -#define SPI_BaudRatePrescaler_256 ((uint16_t)0x0038) -#define IS_SPI_BAUDRATE_PRESCALER(PRESCALER) (((PRESCALER) == SPI_BaudRatePrescaler_2) || \ - ((PRESCALER) == SPI_BaudRatePrescaler_4) || \ - ((PRESCALER) == SPI_BaudRatePrescaler_8) || \ - ((PRESCALER) == SPI_BaudRatePrescaler_16) || \ - ((PRESCALER) == SPI_BaudRatePrescaler_32) || \ - ((PRESCALER) == SPI_BaudRatePrescaler_64) || \ - ((PRESCALER) == SPI_BaudRatePrescaler_128) || \ - ((PRESCALER) == SPI_BaudRatePrescaler_256)) -/** - * @} - */ - -/** @defgroup SPI_MSB_LSB_transmission - * @{ - */ - -#define SPI_FirstBit_MSB ((uint16_t)0x0000) -#define SPI_FirstBit_LSB ((uint16_t)0x0080) -#define IS_SPI_FIRST_BIT(BIT) (((BIT) == SPI_FirstBit_MSB) || \ - ((BIT) == SPI_FirstBit_LSB)) -/** - * @} - */ - -/** @defgroup I2S_Mode - * @{ - */ - -#define I2S_Mode_SlaveTx ((uint16_t)0x0000) -#define I2S_Mode_SlaveRx ((uint16_t)0x0100) -#define I2S_Mode_MasterTx ((uint16_t)0x0200) -#define I2S_Mode_MasterRx ((uint16_t)0x0300) -#define IS_I2S_MODE(MODE) (((MODE) == I2S_Mode_SlaveTx) || \ - ((MODE) == I2S_Mode_SlaveRx) || \ - ((MODE) == I2S_Mode_MasterTx) || \ - ((MODE) == I2S_Mode_MasterRx) ) -/** - * @} - */ - -/** @defgroup I2S_Standard - * @{ - */ - -#define I2S_Standard_Phillips ((uint16_t)0x0000) -#define I2S_Standard_MSB ((uint16_t)0x0010) -#define I2S_Standard_LSB ((uint16_t)0x0020) -#define I2S_Standard_PCMShort ((uint16_t)0x0030) -#define I2S_Standard_PCMLong ((uint16_t)0x00B0) -#define IS_I2S_STANDARD(STANDARD) (((STANDARD) == I2S_Standard_Phillips) || \ - ((STANDARD) == I2S_Standard_MSB) || \ - ((STANDARD) == I2S_Standard_LSB) || \ - ((STANDARD) == I2S_Standard_PCMShort) || \ - ((STANDARD) == I2S_Standard_PCMLong)) -/** - * @} - */ - -/** @defgroup I2S_Data_Format - * @{ - */ - -#define I2S_DataFormat_16b ((uint16_t)0x0000) -#define I2S_DataFormat_16bextended ((uint16_t)0x0001) -#define I2S_DataFormat_24b ((uint16_t)0x0003) -#define I2S_DataFormat_32b ((uint16_t)0x0005) -#define IS_I2S_DATA_FORMAT(FORMAT) (((FORMAT) == I2S_DataFormat_16b) || \ - ((FORMAT) == I2S_DataFormat_16bextended) || \ - ((FORMAT) == I2S_DataFormat_24b) || \ - ((FORMAT) == I2S_DataFormat_32b)) -/** - * @} - */ - -/** @defgroup I2S_MCLK_Output - * @{ - */ - -#define I2S_MCLKOutput_Enable ((uint16_t)0x0200) -#define I2S_MCLKOutput_Disable ((uint16_t)0x0000) -#define IS_I2S_MCLK_OUTPUT(OUTPUT) (((OUTPUT) == I2S_MCLKOutput_Enable) || \ - ((OUTPUT) == I2S_MCLKOutput_Disable)) -/** - * @} - */ - -/** @defgroup I2S_Audio_Frequency - * @{ - */ - -#define I2S_AudioFreq_192k ((uint32_t)192000) -#define I2S_AudioFreq_96k ((uint32_t)96000) -#define I2S_AudioFreq_48k ((uint32_t)48000) -#define I2S_AudioFreq_44k ((uint32_t)44100) -#define I2S_AudioFreq_32k ((uint32_t)32000) -#define I2S_AudioFreq_22k ((uint32_t)22050) -#define I2S_AudioFreq_16k ((uint32_t)16000) -#define I2S_AudioFreq_11k ((uint32_t)11025) -#define I2S_AudioFreq_8k ((uint32_t)8000) -#define I2S_AudioFreq_Default ((uint32_t)2) - -#define IS_I2S_AUDIO_FREQ(FREQ) ((((FREQ) >= I2S_AudioFreq_8k) && \ - ((FREQ) <= I2S_AudioFreq_192k)) || \ - ((FREQ) == I2S_AudioFreq_Default)) -/** - * @} - */ - -/** @defgroup I2S_Clock_Polarity - * @{ - */ - -#define I2S_CPOL_Low ((uint16_t)0x0000) -#define I2S_CPOL_High ((uint16_t)0x0008) -#define IS_I2S_CPOL(CPOL) (((CPOL) == I2S_CPOL_Low) || \ - ((CPOL) == I2S_CPOL_High)) -/** - * @} - */ - -/** @defgroup SPI_I2S_DMA_transfer_requests - * @{ - */ - -#define SPI_I2S_DMAReq_Tx ((uint16_t)0x0002) -#define SPI_I2S_DMAReq_Rx ((uint16_t)0x0001) -#define IS_SPI_I2S_DMAREQ(DMAREQ) ((((DMAREQ) & (uint16_t)0xFFFC) == 0x00) && ((DMAREQ) != 0x00)) -/** - * @} - */ - -/** @defgroup SPI_NSS_internal_software_management - * @{ - */ - -#define SPI_NSSInternalSoft_Set ((uint16_t)0x0100) -#define SPI_NSSInternalSoft_Reset ((uint16_t)0xFEFF) -#define IS_SPI_NSS_INTERNAL(INTERNAL) (((INTERNAL) == SPI_NSSInternalSoft_Set) || \ - ((INTERNAL) == SPI_NSSInternalSoft_Reset)) -/** - * @} - */ - -/** @defgroup SPI_CRC_Transmit_Receive - * @{ - */ - -#define SPI_CRC_Tx ((uint8_t)0x00) -#define SPI_CRC_Rx ((uint8_t)0x01) -#define IS_SPI_CRC(CRC) (((CRC) == SPI_CRC_Tx) || ((CRC) == SPI_CRC_Rx)) -/** - * @} - */ - -/** @defgroup SPI_direction_transmit_receive - * @{ - */ - -#define SPI_Direction_Rx ((uint16_t)0xBFFF) -#define SPI_Direction_Tx ((uint16_t)0x4000) -#define IS_SPI_DIRECTION(DIRECTION) (((DIRECTION) == SPI_Direction_Rx) || \ - ((DIRECTION) == SPI_Direction_Tx)) -/** - * @} - */ - -/** @defgroup SPI_I2S_interrupts_definition - * @{ - */ - -#define SPI_I2S_IT_TXE ((uint8_t)0x71) -#define SPI_I2S_IT_RXNE ((uint8_t)0x60) -#define SPI_I2S_IT_ERR ((uint8_t)0x50) -#define IS_SPI_I2S_CONFIG_IT(IT) (((IT) == SPI_I2S_IT_TXE) || \ - ((IT) == SPI_I2S_IT_RXNE) || \ - ((IT) == SPI_I2S_IT_ERR)) -#define SPI_I2S_IT_OVR ((uint8_t)0x56) -#define SPI_IT_MODF ((uint8_t)0x55) -#define SPI_IT_CRCERR ((uint8_t)0x54) -#define I2S_IT_UDR ((uint8_t)0x53) -#define IS_SPI_I2S_CLEAR_IT(IT) (((IT) == SPI_IT_CRCERR)) -#define IS_SPI_I2S_GET_IT(IT) (((IT) == SPI_I2S_IT_RXNE) || ((IT) == SPI_I2S_IT_TXE) || \ - ((IT) == I2S_IT_UDR) || ((IT) == SPI_IT_CRCERR) || \ - ((IT) == SPI_IT_MODF) || ((IT) == SPI_I2S_IT_OVR)) -/** - * @} - */ - -/** @defgroup SPI_I2S_flags_definition - * @{ - */ - -#define SPI_I2S_FLAG_RXNE ((uint16_t)0x0001) -#define SPI_I2S_FLAG_TXE ((uint16_t)0x0002) -#define I2S_FLAG_CHSIDE ((uint16_t)0x0004) -#define I2S_FLAG_UDR ((uint16_t)0x0008) -#define SPI_FLAG_CRCERR ((uint16_t)0x0010) -#define SPI_FLAG_MODF ((uint16_t)0x0020) -#define SPI_I2S_FLAG_OVR ((uint16_t)0x0040) -#define SPI_I2S_FLAG_BSY ((uint16_t)0x0080) -#define IS_SPI_I2S_CLEAR_FLAG(FLAG) (((FLAG) == SPI_FLAG_CRCERR)) -#define IS_SPI_I2S_GET_FLAG(FLAG) (((FLAG) == SPI_I2S_FLAG_BSY) || ((FLAG) == SPI_I2S_FLAG_OVR) || \ - ((FLAG) == SPI_FLAG_MODF) || ((FLAG) == SPI_FLAG_CRCERR) || \ - ((FLAG) == I2S_FLAG_UDR) || ((FLAG) == I2S_FLAG_CHSIDE) || \ - ((FLAG) == SPI_I2S_FLAG_TXE) || ((FLAG) == SPI_I2S_FLAG_RXNE)) -/** - * @} - */ - -/** @defgroup SPI_CRC_polynomial - * @{ - */ - -#define IS_SPI_CRC_POLYNOMIAL(POLYNOMIAL) ((POLYNOMIAL) >= 0x1) -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup SPI_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup SPI_Exported_Functions - * @{ - */ - -void SPI_I2S_DeInit(SPI_TypeDef* SPIx); -void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct); -void I2S_Init(SPI_TypeDef* SPIx, I2S_InitTypeDef* I2S_InitStruct); -void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct); -void I2S_StructInit(I2S_InitTypeDef* I2S_InitStruct); -void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState); -void I2S_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState); -void SPI_I2S_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState); -void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState); -void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data); -uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx); -void SPI_NSSInternalSoftwareConfig(SPI_TypeDef* SPIx, uint16_t SPI_NSSInternalSoft); -void SPI_SSOutputCmd(SPI_TypeDef* SPIx, FunctionalState NewState); -void SPI_DataSizeConfig(SPI_TypeDef* SPIx, uint16_t SPI_DataSize); -void SPI_TransmitCRC(SPI_TypeDef* SPIx); -void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState); -uint16_t SPI_GetCRC(SPI_TypeDef* SPIx, uint8_t SPI_CRC); -uint16_t SPI_GetCRCPolynomial(SPI_TypeDef* SPIx); -void SPI_BiDirectionalLineConfig(SPI_TypeDef* SPIx, uint16_t SPI_Direction); -FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG); -void SPI_I2S_ClearFlag(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG); -ITStatus SPI_I2S_GetITStatus(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT); -void SPI_I2S_ClearITPendingBit(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT); - -#ifdef __cplusplus -} -#endif - -#endif /*__STM32F10x_SPI_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_tim.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_tim.h deleted file mode 100644 index cd7ac3e9..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_tim.h +++ /dev/null @@ -1,1164 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_tim.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the TIM firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_TIM_H -#define __STM32F10x_TIM_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup TIM - * @{ - */ - -/** @defgroup TIM_Exported_Types - * @{ - */ - -/** - * @brief TIM Time Base Init structure definition - * @note This structure is used with all TIMx except for TIM6 and TIM7. - */ - -typedef struct -{ - uint16_t TIM_Prescaler; /*!< Specifies the prescaler value used to divide the TIM clock. - This parameter can be a number between 0x0000 and 0xFFFF */ - - uint16_t TIM_CounterMode; /*!< Specifies the counter mode. - This parameter can be a value of @ref TIM_Counter_Mode */ - - uint16_t TIM_Period; /*!< Specifies the period value to be loaded into the active - Auto-Reload Register at the next update event. - This parameter must be a number between 0x0000 and 0xFFFF. */ - - uint16_t TIM_ClockDivision; /*!< Specifies the clock division. - This parameter can be a value of @ref TIM_Clock_Division_CKD */ - - uint8_t TIM_RepetitionCounter; /*!< Specifies the repetition counter value. Each time the RCR downcounter - reaches zero, an update event is generated and counting restarts - from the RCR value (N). - This means in PWM mode that (N+1) corresponds to: - - the number of PWM periods in edge-aligned mode - - the number of half PWM period in center-aligned mode - This parameter must be a number between 0x00 and 0xFF. - @note This parameter is valid only for TIM1 and TIM8. */ -} TIM_TimeBaseInitTypeDef; - -/** - * @brief TIM Output Compare Init structure definition - */ - -typedef struct -{ - uint16_t TIM_OCMode; /*!< Specifies the TIM mode. - This parameter can be a value of @ref TIM_Output_Compare_and_PWM_modes */ - - uint16_t TIM_OutputState; /*!< Specifies the TIM Output Compare state. - This parameter can be a value of @ref TIM_Output_Compare_state */ - - uint16_t TIM_OutputNState; /*!< Specifies the TIM complementary Output Compare state. - This parameter can be a value of @ref TIM_Output_Compare_N_state - @note This parameter is valid only for TIM1 and TIM8. */ - - uint16_t TIM_Pulse; /*!< Specifies the pulse value to be loaded into the Capture Compare Register. - This parameter can be a number between 0x0000 and 0xFFFF */ - - uint16_t TIM_OCPolarity; /*!< Specifies the output polarity. - This parameter can be a value of @ref TIM_Output_Compare_Polarity */ - - uint16_t TIM_OCNPolarity; /*!< Specifies the complementary output polarity. - This parameter can be a value of @ref TIM_Output_Compare_N_Polarity - @note This parameter is valid only for TIM1 and TIM8. */ - - uint16_t TIM_OCIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. - This parameter can be a value of @ref TIM_Output_Compare_Idle_State - @note This parameter is valid only for TIM1 and TIM8. */ - - uint16_t TIM_OCNIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. - This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State - @note This parameter is valid only for TIM1 and TIM8. */ -} TIM_OCInitTypeDef; - -/** - * @brief TIM Input Capture Init structure definition - */ - -typedef struct -{ - - uint16_t TIM_Channel; /*!< Specifies the TIM channel. - This parameter can be a value of @ref TIM_Channel */ - - uint16_t TIM_ICPolarity; /*!< Specifies the active edge of the input signal. - This parameter can be a value of @ref TIM_Input_Capture_Polarity */ - - uint16_t TIM_ICSelection; /*!< Specifies the input. - This parameter can be a value of @ref TIM_Input_Capture_Selection */ - - uint16_t TIM_ICPrescaler; /*!< Specifies the Input Capture Prescaler. - This parameter can be a value of @ref TIM_Input_Capture_Prescaler */ - - uint16_t TIM_ICFilter; /*!< Specifies the input capture filter. - This parameter can be a number between 0x0 and 0xF */ -} TIM_ICInitTypeDef; - -/** - * @brief BDTR structure definition - * @note This structure is used only with TIM1 and TIM8. - */ - -typedef struct -{ - - uint16_t TIM_OSSRState; /*!< Specifies the Off-State selection used in Run mode. - This parameter can be a value of @ref OSSR_Off_State_Selection_for_Run_mode_state */ - - uint16_t TIM_OSSIState; /*!< Specifies the Off-State used in Idle state. - This parameter can be a value of @ref OSSI_Off_State_Selection_for_Idle_mode_state */ - - uint16_t TIM_LOCKLevel; /*!< Specifies the LOCK level parameters. - This parameter can be a value of @ref Lock_level */ - - uint16_t TIM_DeadTime; /*!< Specifies the delay time between the switching-off and the - switching-on of the outputs. - This parameter can be a number between 0x00 and 0xFF */ - - uint16_t TIM_Break; /*!< Specifies whether the TIM Break input is enabled or not. - This parameter can be a value of @ref Break_Input_enable_disable */ - - uint16_t TIM_BreakPolarity; /*!< Specifies the TIM Break Input pin polarity. - This parameter can be a value of @ref Break_Polarity */ - - uint16_t TIM_AutomaticOutput; /*!< Specifies whether the TIM Automatic Output feature is enabled or not. - This parameter can be a value of @ref TIM_AOE_Bit_Set_Reset */ -} TIM_BDTRInitTypeDef; - -/** @defgroup TIM_Exported_constants - * @{ - */ - -#define IS_TIM_ALL_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM2) || \ - ((PERIPH) == TIM3) || \ - ((PERIPH) == TIM4) || \ - ((PERIPH) == TIM5) || \ - ((PERIPH) == TIM6) || \ - ((PERIPH) == TIM7) || \ - ((PERIPH) == TIM8) || \ - ((PERIPH) == TIM9) || \ - ((PERIPH) == TIM10)|| \ - ((PERIPH) == TIM11)|| \ - ((PERIPH) == TIM12)|| \ - ((PERIPH) == TIM13)|| \ - ((PERIPH) == TIM14)|| \ - ((PERIPH) == TIM15)|| \ - ((PERIPH) == TIM16)|| \ - ((PERIPH) == TIM17)) - -/* LIST1: TIM 1 and 8 */ -#define IS_TIM_LIST1_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM8)) - -/* LIST2: TIM 1, 8, 15 16 and 17 */ -#define IS_TIM_LIST2_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM8) || \ - ((PERIPH) == TIM15)|| \ - ((PERIPH) == TIM16)|| \ - ((PERIPH) == TIM17)) - -/* LIST3: TIM 1, 2, 3, 4, 5 and 8 */ -#define IS_TIM_LIST3_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM2) || \ - ((PERIPH) == TIM3) || \ - ((PERIPH) == TIM4) || \ - ((PERIPH) == TIM5) || \ - ((PERIPH) == TIM8)) - -/* LIST4: TIM 1, 2, 3, 4, 5, 8, 15, 16 and 17 */ -#define IS_TIM_LIST4_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM2) || \ - ((PERIPH) == TIM3) || \ - ((PERIPH) == TIM4) || \ - ((PERIPH) == TIM5) || \ - ((PERIPH) == TIM8) || \ - ((PERIPH) == TIM15)|| \ - ((PERIPH) == TIM16)|| \ - ((PERIPH) == TIM17)) - -/* LIST5: TIM 1, 2, 3, 4, 5, 8 and 15 */ -#define IS_TIM_LIST5_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM2) || \ - ((PERIPH) == TIM3) || \ - ((PERIPH) == TIM4) || \ - ((PERIPH) == TIM5) || \ - ((PERIPH) == TIM8) || \ - ((PERIPH) == TIM15)) - -/* LIST6: TIM 1, 2, 3, 4, 5, 8, 9, 12 and 15 */ -#define IS_TIM_LIST6_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM2) || \ - ((PERIPH) == TIM3) || \ - ((PERIPH) == TIM4) || \ - ((PERIPH) == TIM5) || \ - ((PERIPH) == TIM8) || \ - ((PERIPH) == TIM9) || \ - ((PERIPH) == TIM12)|| \ - ((PERIPH) == TIM15)) - -/* LIST7: TIM 1, 2, 3, 4, 5, 6, 7, 8, 9, 12 and 15 */ -#define IS_TIM_LIST7_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM2) || \ - ((PERIPH) == TIM3) || \ - ((PERIPH) == TIM4) || \ - ((PERIPH) == TIM5) || \ - ((PERIPH) == TIM6) || \ - ((PERIPH) == TIM7) || \ - ((PERIPH) == TIM8) || \ - ((PERIPH) == TIM9) || \ - ((PERIPH) == TIM12)|| \ - ((PERIPH) == TIM15)) - -/* LIST8: TIM 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16 and 17 */ -#define IS_TIM_LIST8_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM2) || \ - ((PERIPH) == TIM3) || \ - ((PERIPH) == TIM4) || \ - ((PERIPH) == TIM5) || \ - ((PERIPH) == TIM8) || \ - ((PERIPH) == TIM9) || \ - ((PERIPH) == TIM10)|| \ - ((PERIPH) == TIM11)|| \ - ((PERIPH) == TIM12)|| \ - ((PERIPH) == TIM13)|| \ - ((PERIPH) == TIM14)|| \ - ((PERIPH) == TIM15)|| \ - ((PERIPH) == TIM16)|| \ - ((PERIPH) == TIM17)) - -/* LIST9: TIM 1, 2, 3, 4, 5, 6, 7, 8, 15, 16, and 17 */ -#define IS_TIM_LIST9_PERIPH(PERIPH) (((PERIPH) == TIM1) || \ - ((PERIPH) == TIM2) || \ - ((PERIPH) == TIM3) || \ - ((PERIPH) == TIM4) || \ - ((PERIPH) == TIM5) || \ - ((PERIPH) == TIM6) || \ - ((PERIPH) == TIM7) || \ - ((PERIPH) == TIM8) || \ - ((PERIPH) == TIM15)|| \ - ((PERIPH) == TIM16)|| \ - ((PERIPH) == TIM17)) - -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_and_PWM_modes - * @{ - */ - -#define TIM_OCMode_Timing ((uint16_t)0x0000) -#define TIM_OCMode_Active ((uint16_t)0x0010) -#define TIM_OCMode_Inactive ((uint16_t)0x0020) -#define TIM_OCMode_Toggle ((uint16_t)0x0030) -#define TIM_OCMode_PWM1 ((uint16_t)0x0060) -#define TIM_OCMode_PWM2 ((uint16_t)0x0070) -#define IS_TIM_OC_MODE(MODE) (((MODE) == TIM_OCMode_Timing) || \ - ((MODE) == TIM_OCMode_Active) || \ - ((MODE) == TIM_OCMode_Inactive) || \ - ((MODE) == TIM_OCMode_Toggle)|| \ - ((MODE) == TIM_OCMode_PWM1) || \ - ((MODE) == TIM_OCMode_PWM2)) -#define IS_TIM_OCM(MODE) (((MODE) == TIM_OCMode_Timing) || \ - ((MODE) == TIM_OCMode_Active) || \ - ((MODE) == TIM_OCMode_Inactive) || \ - ((MODE) == TIM_OCMode_Toggle)|| \ - ((MODE) == TIM_OCMode_PWM1) || \ - ((MODE) == TIM_OCMode_PWM2) || \ - ((MODE) == TIM_ForcedAction_Active) || \ - ((MODE) == TIM_ForcedAction_InActive)) -/** - * @} - */ - -/** @defgroup TIM_One_Pulse_Mode - * @{ - */ - -#define TIM_OPMode_Single ((uint16_t)0x0008) -#define TIM_OPMode_Repetitive ((uint16_t)0x0000) -#define IS_TIM_OPM_MODE(MODE) (((MODE) == TIM_OPMode_Single) || \ - ((MODE) == TIM_OPMode_Repetitive)) -/** - * @} - */ - -/** @defgroup TIM_Channel - * @{ - */ - -#define TIM_Channel_1 ((uint16_t)0x0000) -#define TIM_Channel_2 ((uint16_t)0x0004) -#define TIM_Channel_3 ((uint16_t)0x0008) -#define TIM_Channel_4 ((uint16_t)0x000C) -#define IS_TIM_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \ - ((CHANNEL) == TIM_Channel_2) || \ - ((CHANNEL) == TIM_Channel_3) || \ - ((CHANNEL) == TIM_Channel_4)) -#define IS_TIM_PWMI_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \ - ((CHANNEL) == TIM_Channel_2)) -#define IS_TIM_COMPLEMENTARY_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \ - ((CHANNEL) == TIM_Channel_2) || \ - ((CHANNEL) == TIM_Channel_3)) -/** - * @} - */ - -/** @defgroup TIM_Clock_Division_CKD - * @{ - */ - -#define TIM_CKD_DIV1 ((uint16_t)0x0000) -#define TIM_CKD_DIV2 ((uint16_t)0x0100) -#define TIM_CKD_DIV4 ((uint16_t)0x0200) -#define IS_TIM_CKD_DIV(DIV) (((DIV) == TIM_CKD_DIV1) || \ - ((DIV) == TIM_CKD_DIV2) || \ - ((DIV) == TIM_CKD_DIV4)) -/** - * @} - */ - -/** @defgroup TIM_Counter_Mode - * @{ - */ - -#define TIM_CounterMode_Up ((uint16_t)0x0000) -#define TIM_CounterMode_Down ((uint16_t)0x0010) -#define TIM_CounterMode_CenterAligned1 ((uint16_t)0x0020) -#define TIM_CounterMode_CenterAligned2 ((uint16_t)0x0040) -#define TIM_CounterMode_CenterAligned3 ((uint16_t)0x0060) -#define IS_TIM_COUNTER_MODE(MODE) (((MODE) == TIM_CounterMode_Up) || \ - ((MODE) == TIM_CounterMode_Down) || \ - ((MODE) == TIM_CounterMode_CenterAligned1) || \ - ((MODE) == TIM_CounterMode_CenterAligned2) || \ - ((MODE) == TIM_CounterMode_CenterAligned3)) -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_Polarity - * @{ - */ - -#define TIM_OCPolarity_High ((uint16_t)0x0000) -#define TIM_OCPolarity_Low ((uint16_t)0x0002) -#define IS_TIM_OC_POLARITY(POLARITY) (((POLARITY) == TIM_OCPolarity_High) || \ - ((POLARITY) == TIM_OCPolarity_Low)) -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_N_Polarity - * @{ - */ - -#define TIM_OCNPolarity_High ((uint16_t)0x0000) -#define TIM_OCNPolarity_Low ((uint16_t)0x0008) -#define IS_TIM_OCN_POLARITY(POLARITY) (((POLARITY) == TIM_OCNPolarity_High) || \ - ((POLARITY) == TIM_OCNPolarity_Low)) -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_state - * @{ - */ - -#define TIM_OutputState_Disable ((uint16_t)0x0000) -#define TIM_OutputState_Enable ((uint16_t)0x0001) -#define IS_TIM_OUTPUT_STATE(STATE) (((STATE) == TIM_OutputState_Disable) || \ - ((STATE) == TIM_OutputState_Enable)) -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_N_state - * @{ - */ - -#define TIM_OutputNState_Disable ((uint16_t)0x0000) -#define TIM_OutputNState_Enable ((uint16_t)0x0004) -#define IS_TIM_OUTPUTN_STATE(STATE) (((STATE) == TIM_OutputNState_Disable) || \ - ((STATE) == TIM_OutputNState_Enable)) -/** - * @} - */ - -/** @defgroup TIM_Capture_Compare_state - * @{ - */ - -#define TIM_CCx_Enable ((uint16_t)0x0001) -#define TIM_CCx_Disable ((uint16_t)0x0000) -#define IS_TIM_CCX(CCX) (((CCX) == TIM_CCx_Enable) || \ - ((CCX) == TIM_CCx_Disable)) -/** - * @} - */ - -/** @defgroup TIM_Capture_Compare_N_state - * @{ - */ - -#define TIM_CCxN_Enable ((uint16_t)0x0004) -#define TIM_CCxN_Disable ((uint16_t)0x0000) -#define IS_TIM_CCXN(CCXN) (((CCXN) == TIM_CCxN_Enable) || \ - ((CCXN) == TIM_CCxN_Disable)) -/** - * @} - */ - -/** @defgroup Break_Input_enable_disable - * @{ - */ - -#define TIM_Break_Enable ((uint16_t)0x1000) -#define TIM_Break_Disable ((uint16_t)0x0000) -#define IS_TIM_BREAK_STATE(STATE) (((STATE) == TIM_Break_Enable) || \ - ((STATE) == TIM_Break_Disable)) -/** - * @} - */ - -/** @defgroup Break_Polarity - * @{ - */ - -#define TIM_BreakPolarity_Low ((uint16_t)0x0000) -#define TIM_BreakPolarity_High ((uint16_t)0x2000) -#define IS_TIM_BREAK_POLARITY(POLARITY) (((POLARITY) == TIM_BreakPolarity_Low) || \ - ((POLARITY) == TIM_BreakPolarity_High)) -/** - * @} - */ - -/** @defgroup TIM_AOE_Bit_Set_Reset - * @{ - */ - -#define TIM_AutomaticOutput_Enable ((uint16_t)0x4000) -#define TIM_AutomaticOutput_Disable ((uint16_t)0x0000) -#define IS_TIM_AUTOMATIC_OUTPUT_STATE(STATE) (((STATE) == TIM_AutomaticOutput_Enable) || \ - ((STATE) == TIM_AutomaticOutput_Disable)) -/** - * @} - */ - -/** @defgroup Lock_level - * @{ - */ - -#define TIM_LOCKLevel_OFF ((uint16_t)0x0000) -#define TIM_LOCKLevel_1 ((uint16_t)0x0100) -#define TIM_LOCKLevel_2 ((uint16_t)0x0200) -#define TIM_LOCKLevel_3 ((uint16_t)0x0300) -#define IS_TIM_LOCK_LEVEL(LEVEL) (((LEVEL) == TIM_LOCKLevel_OFF) || \ - ((LEVEL) == TIM_LOCKLevel_1) || \ - ((LEVEL) == TIM_LOCKLevel_2) || \ - ((LEVEL) == TIM_LOCKLevel_3)) -/** - * @} - */ - -/** @defgroup OSSI_Off_State_Selection_for_Idle_mode_state - * @{ - */ - -#define TIM_OSSIState_Enable ((uint16_t)0x0400) -#define TIM_OSSIState_Disable ((uint16_t)0x0000) -#define IS_TIM_OSSI_STATE(STATE) (((STATE) == TIM_OSSIState_Enable) || \ - ((STATE) == TIM_OSSIState_Disable)) -/** - * @} - */ - -/** @defgroup OSSR_Off_State_Selection_for_Run_mode_state - * @{ - */ - -#define TIM_OSSRState_Enable ((uint16_t)0x0800) -#define TIM_OSSRState_Disable ((uint16_t)0x0000) -#define IS_TIM_OSSR_STATE(STATE) (((STATE) == TIM_OSSRState_Enable) || \ - ((STATE) == TIM_OSSRState_Disable)) -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_Idle_State - * @{ - */ - -#define TIM_OCIdleState_Set ((uint16_t)0x0100) -#define TIM_OCIdleState_Reset ((uint16_t)0x0000) -#define IS_TIM_OCIDLE_STATE(STATE) (((STATE) == TIM_OCIdleState_Set) || \ - ((STATE) == TIM_OCIdleState_Reset)) -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_N_Idle_State - * @{ - */ - -#define TIM_OCNIdleState_Set ((uint16_t)0x0200) -#define TIM_OCNIdleState_Reset ((uint16_t)0x0000) -#define IS_TIM_OCNIDLE_STATE(STATE) (((STATE) == TIM_OCNIdleState_Set) || \ - ((STATE) == TIM_OCNIdleState_Reset)) -/** - * @} - */ - -/** @defgroup TIM_Input_Capture_Polarity - * @{ - */ - -#define TIM_ICPolarity_Rising ((uint16_t)0x0000) -#define TIM_ICPolarity_Falling ((uint16_t)0x0002) -#define TIM_ICPolarity_BothEdge ((uint16_t)0x000A) -#define IS_TIM_IC_POLARITY(POLARITY) (((POLARITY) == TIM_ICPolarity_Rising) || \ - ((POLARITY) == TIM_ICPolarity_Falling)) -#define IS_TIM_IC_POLARITY_LITE(POLARITY) (((POLARITY) == TIM_ICPolarity_Rising) || \ - ((POLARITY) == TIM_ICPolarity_Falling)|| \ - ((POLARITY) == TIM_ICPolarity_BothEdge)) -/** - * @} - */ - -/** @defgroup TIM_Input_Capture_Selection - * @{ - */ - -#define TIM_ICSelection_DirectTI ((uint16_t)0x0001) /*!< TIM Input 1, 2, 3 or 4 is selected to be - connected to IC1, IC2, IC3 or IC4, respectively */ -#define TIM_ICSelection_IndirectTI ((uint16_t)0x0002) /*!< TIM Input 1, 2, 3 or 4 is selected to be - connected to IC2, IC1, IC4 or IC3, respectively. */ -#define TIM_ICSelection_TRC ((uint16_t)0x0003) /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to TRC. */ -#define IS_TIM_IC_SELECTION(SELECTION) (((SELECTION) == TIM_ICSelection_DirectTI) || \ - ((SELECTION) == TIM_ICSelection_IndirectTI) || \ - ((SELECTION) == TIM_ICSelection_TRC)) -/** - * @} - */ - -/** @defgroup TIM_Input_Capture_Prescaler - * @{ - */ - -#define TIM_ICPSC_DIV1 ((uint16_t)0x0000) /*!< Capture performed each time an edge is detected on the capture input. */ -#define TIM_ICPSC_DIV2 ((uint16_t)0x0004) /*!< Capture performed once every 2 events. */ -#define TIM_ICPSC_DIV4 ((uint16_t)0x0008) /*!< Capture performed once every 4 events. */ -#define TIM_ICPSC_DIV8 ((uint16_t)0x000C) /*!< Capture performed once every 8 events. */ -#define IS_TIM_IC_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ICPSC_DIV1) || \ - ((PRESCALER) == TIM_ICPSC_DIV2) || \ - ((PRESCALER) == TIM_ICPSC_DIV4) || \ - ((PRESCALER) == TIM_ICPSC_DIV8)) -/** - * @} - */ - -/** @defgroup TIM_interrupt_sources - * @{ - */ - -#define TIM_IT_Update ((uint16_t)0x0001) -#define TIM_IT_CC1 ((uint16_t)0x0002) -#define TIM_IT_CC2 ((uint16_t)0x0004) -#define TIM_IT_CC3 ((uint16_t)0x0008) -#define TIM_IT_CC4 ((uint16_t)0x0010) -#define TIM_IT_COM ((uint16_t)0x0020) -#define TIM_IT_Trigger ((uint16_t)0x0040) -#define TIM_IT_Break ((uint16_t)0x0080) -#define IS_TIM_IT(IT) ((((IT) & (uint16_t)0xFF00) == 0x0000) && ((IT) != 0x0000)) - -#define IS_TIM_GET_IT(IT) (((IT) == TIM_IT_Update) || \ - ((IT) == TIM_IT_CC1) || \ - ((IT) == TIM_IT_CC2) || \ - ((IT) == TIM_IT_CC3) || \ - ((IT) == TIM_IT_CC4) || \ - ((IT) == TIM_IT_COM) || \ - ((IT) == TIM_IT_Trigger) || \ - ((IT) == TIM_IT_Break)) -/** - * @} - */ - -/** @defgroup TIM_DMA_Base_address - * @{ - */ - -#define TIM_DMABase_CR1 ((uint16_t)0x0000) -#define TIM_DMABase_CR2 ((uint16_t)0x0001) -#define TIM_DMABase_SMCR ((uint16_t)0x0002) -#define TIM_DMABase_DIER ((uint16_t)0x0003) -#define TIM_DMABase_SR ((uint16_t)0x0004) -#define TIM_DMABase_EGR ((uint16_t)0x0005) -#define TIM_DMABase_CCMR1 ((uint16_t)0x0006) -#define TIM_DMABase_CCMR2 ((uint16_t)0x0007) -#define TIM_DMABase_CCER ((uint16_t)0x0008) -#define TIM_DMABase_CNT ((uint16_t)0x0009) -#define TIM_DMABase_PSC ((uint16_t)0x000A) -#define TIM_DMABase_ARR ((uint16_t)0x000B) -#define TIM_DMABase_RCR ((uint16_t)0x000C) -#define TIM_DMABase_CCR1 ((uint16_t)0x000D) -#define TIM_DMABase_CCR2 ((uint16_t)0x000E) -#define TIM_DMABase_CCR3 ((uint16_t)0x000F) -#define TIM_DMABase_CCR4 ((uint16_t)0x0010) -#define TIM_DMABase_BDTR ((uint16_t)0x0011) -#define TIM_DMABase_DCR ((uint16_t)0x0012) -#define IS_TIM_DMA_BASE(BASE) (((BASE) == TIM_DMABase_CR1) || \ - ((BASE) == TIM_DMABase_CR2) || \ - ((BASE) == TIM_DMABase_SMCR) || \ - ((BASE) == TIM_DMABase_DIER) || \ - ((BASE) == TIM_DMABase_SR) || \ - ((BASE) == TIM_DMABase_EGR) || \ - ((BASE) == TIM_DMABase_CCMR1) || \ - ((BASE) == TIM_DMABase_CCMR2) || \ - ((BASE) == TIM_DMABase_CCER) || \ - ((BASE) == TIM_DMABase_CNT) || \ - ((BASE) == TIM_DMABase_PSC) || \ - ((BASE) == TIM_DMABase_ARR) || \ - ((BASE) == TIM_DMABase_RCR) || \ - ((BASE) == TIM_DMABase_CCR1) || \ - ((BASE) == TIM_DMABase_CCR2) || \ - ((BASE) == TIM_DMABase_CCR3) || \ - ((BASE) == TIM_DMABase_CCR4) || \ - ((BASE) == TIM_DMABase_BDTR) || \ - ((BASE) == TIM_DMABase_DCR)) -/** - * @} - */ - -/** @defgroup TIM_DMA_Burst_Length - * @{ - */ - -#define TIM_DMABurstLength_1Transfer ((uint16_t)0x0000) -#define TIM_DMABurstLength_2Transfers ((uint16_t)0x0100) -#define TIM_DMABurstLength_3Transfers ((uint16_t)0x0200) -#define TIM_DMABurstLength_4Transfers ((uint16_t)0x0300) -#define TIM_DMABurstLength_5Transfers ((uint16_t)0x0400) -#define TIM_DMABurstLength_6Transfers ((uint16_t)0x0500) -#define TIM_DMABurstLength_7Transfers ((uint16_t)0x0600) -#define TIM_DMABurstLength_8Transfers ((uint16_t)0x0700) -#define TIM_DMABurstLength_9Transfers ((uint16_t)0x0800) -#define TIM_DMABurstLength_10Transfers ((uint16_t)0x0900) -#define TIM_DMABurstLength_11Transfers ((uint16_t)0x0A00) -#define TIM_DMABurstLength_12Transfers ((uint16_t)0x0B00) -#define TIM_DMABurstLength_13Transfers ((uint16_t)0x0C00) -#define TIM_DMABurstLength_14Transfers ((uint16_t)0x0D00) -#define TIM_DMABurstLength_15Transfers ((uint16_t)0x0E00) -#define TIM_DMABurstLength_16Transfers ((uint16_t)0x0F00) -#define TIM_DMABurstLength_17Transfers ((uint16_t)0x1000) -#define TIM_DMABurstLength_18Transfers ((uint16_t)0x1100) -#define IS_TIM_DMA_LENGTH(LENGTH) (((LENGTH) == TIM_DMABurstLength_1Transfer) || \ - ((LENGTH) == TIM_DMABurstLength_2Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_3Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_4Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_5Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_6Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_7Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_8Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_9Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_10Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_11Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_12Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_13Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_14Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_15Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_16Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_17Transfers) || \ - ((LENGTH) == TIM_DMABurstLength_18Transfers)) -/** - * @} - */ - -/** @defgroup TIM_DMA_sources - * @{ - */ - -#define TIM_DMA_Update ((uint16_t)0x0100) -#define TIM_DMA_CC1 ((uint16_t)0x0200) -#define TIM_DMA_CC2 ((uint16_t)0x0400) -#define TIM_DMA_CC3 ((uint16_t)0x0800) -#define TIM_DMA_CC4 ((uint16_t)0x1000) -#define TIM_DMA_COM ((uint16_t)0x2000) -#define TIM_DMA_Trigger ((uint16_t)0x4000) -#define IS_TIM_DMA_SOURCE(SOURCE) ((((SOURCE) & (uint16_t)0x80FF) == 0x0000) && ((SOURCE) != 0x0000)) - -/** - * @} - */ - -/** @defgroup TIM_External_Trigger_Prescaler - * @{ - */ - -#define TIM_ExtTRGPSC_OFF ((uint16_t)0x0000) -#define TIM_ExtTRGPSC_DIV2 ((uint16_t)0x1000) -#define TIM_ExtTRGPSC_DIV4 ((uint16_t)0x2000) -#define TIM_ExtTRGPSC_DIV8 ((uint16_t)0x3000) -#define IS_TIM_EXT_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ExtTRGPSC_OFF) || \ - ((PRESCALER) == TIM_ExtTRGPSC_DIV2) || \ - ((PRESCALER) == TIM_ExtTRGPSC_DIV4) || \ - ((PRESCALER) == TIM_ExtTRGPSC_DIV8)) -/** - * @} - */ - -/** @defgroup TIM_Internal_Trigger_Selection - * @{ - */ - -#define TIM_TS_ITR0 ((uint16_t)0x0000) -#define TIM_TS_ITR1 ((uint16_t)0x0010) -#define TIM_TS_ITR2 ((uint16_t)0x0020) -#define TIM_TS_ITR3 ((uint16_t)0x0030) -#define TIM_TS_TI1F_ED ((uint16_t)0x0040) -#define TIM_TS_TI1FP1 ((uint16_t)0x0050) -#define TIM_TS_TI2FP2 ((uint16_t)0x0060) -#define TIM_TS_ETRF ((uint16_t)0x0070) -#define IS_TIM_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \ - ((SELECTION) == TIM_TS_ITR1) || \ - ((SELECTION) == TIM_TS_ITR2) || \ - ((SELECTION) == TIM_TS_ITR3) || \ - ((SELECTION) == TIM_TS_TI1F_ED) || \ - ((SELECTION) == TIM_TS_TI1FP1) || \ - ((SELECTION) == TIM_TS_TI2FP2) || \ - ((SELECTION) == TIM_TS_ETRF)) -#define IS_TIM_INTERNAL_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \ - ((SELECTION) == TIM_TS_ITR1) || \ - ((SELECTION) == TIM_TS_ITR2) || \ - ((SELECTION) == TIM_TS_ITR3)) -/** - * @} - */ - -/** @defgroup TIM_TIx_External_Clock_Source - * @{ - */ - -#define TIM_TIxExternalCLK1Source_TI1 ((uint16_t)0x0050) -#define TIM_TIxExternalCLK1Source_TI2 ((uint16_t)0x0060) -#define TIM_TIxExternalCLK1Source_TI1ED ((uint16_t)0x0040) -#define IS_TIM_TIXCLK_SOURCE(SOURCE) (((SOURCE) == TIM_TIxExternalCLK1Source_TI1) || \ - ((SOURCE) == TIM_TIxExternalCLK1Source_TI2) || \ - ((SOURCE) == TIM_TIxExternalCLK1Source_TI1ED)) -/** - * @} - */ - -/** @defgroup TIM_External_Trigger_Polarity - * @{ - */ -#define TIM_ExtTRGPolarity_Inverted ((uint16_t)0x8000) -#define TIM_ExtTRGPolarity_NonInverted ((uint16_t)0x0000) -#define IS_TIM_EXT_POLARITY(POLARITY) (((POLARITY) == TIM_ExtTRGPolarity_Inverted) || \ - ((POLARITY) == TIM_ExtTRGPolarity_NonInverted)) -/** - * @} - */ - -/** @defgroup TIM_Prescaler_Reload_Mode - * @{ - */ - -#define TIM_PSCReloadMode_Update ((uint16_t)0x0000) -#define TIM_PSCReloadMode_Immediate ((uint16_t)0x0001) -#define IS_TIM_PRESCALER_RELOAD(RELOAD) (((RELOAD) == TIM_PSCReloadMode_Update) || \ - ((RELOAD) == TIM_PSCReloadMode_Immediate)) -/** - * @} - */ - -/** @defgroup TIM_Forced_Action - * @{ - */ - -#define TIM_ForcedAction_Active ((uint16_t)0x0050) -#define TIM_ForcedAction_InActive ((uint16_t)0x0040) -#define IS_TIM_FORCED_ACTION(ACTION) (((ACTION) == TIM_ForcedAction_Active) || \ - ((ACTION) == TIM_ForcedAction_InActive)) -/** - * @} - */ - -/** @defgroup TIM_Encoder_Mode - * @{ - */ - -#define TIM_EncoderMode_TI1 ((uint16_t)0x0001) -#define TIM_EncoderMode_TI2 ((uint16_t)0x0002) -#define TIM_EncoderMode_TI12 ((uint16_t)0x0003) -#define IS_TIM_ENCODER_MODE(MODE) (((MODE) == TIM_EncoderMode_TI1) || \ - ((MODE) == TIM_EncoderMode_TI2) || \ - ((MODE) == TIM_EncoderMode_TI12)) -/** - * @} - */ - - -/** @defgroup TIM_Event_Source - * @{ - */ - -#define TIM_EventSource_Update ((uint16_t)0x0001) -#define TIM_EventSource_CC1 ((uint16_t)0x0002) -#define TIM_EventSource_CC2 ((uint16_t)0x0004) -#define TIM_EventSource_CC3 ((uint16_t)0x0008) -#define TIM_EventSource_CC4 ((uint16_t)0x0010) -#define TIM_EventSource_COM ((uint16_t)0x0020) -#define TIM_EventSource_Trigger ((uint16_t)0x0040) -#define TIM_EventSource_Break ((uint16_t)0x0080) -#define IS_TIM_EVENT_SOURCE(SOURCE) ((((SOURCE) & (uint16_t)0xFF00) == 0x0000) && ((SOURCE) != 0x0000)) - -/** - * @} - */ - -/** @defgroup TIM_Update_Source - * @{ - */ - -#define TIM_UpdateSource_Global ((uint16_t)0x0000) /*!< Source of update is the counter overflow/underflow - or the setting of UG bit, or an update generation - through the slave mode controller. */ -#define TIM_UpdateSource_Regular ((uint16_t)0x0001) /*!< Source of update is counter overflow/underflow. */ -#define IS_TIM_UPDATE_SOURCE(SOURCE) (((SOURCE) == TIM_UpdateSource_Global) || \ - ((SOURCE) == TIM_UpdateSource_Regular)) -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_Preload_State - * @{ - */ - -#define TIM_OCPreload_Enable ((uint16_t)0x0008) -#define TIM_OCPreload_Disable ((uint16_t)0x0000) -#define IS_TIM_OCPRELOAD_STATE(STATE) (((STATE) == TIM_OCPreload_Enable) || \ - ((STATE) == TIM_OCPreload_Disable)) -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_Fast_State - * @{ - */ - -#define TIM_OCFast_Enable ((uint16_t)0x0004) -#define TIM_OCFast_Disable ((uint16_t)0x0000) -#define IS_TIM_OCFAST_STATE(STATE) (((STATE) == TIM_OCFast_Enable) || \ - ((STATE) == TIM_OCFast_Disable)) - -/** - * @} - */ - -/** @defgroup TIM_Output_Compare_Clear_State - * @{ - */ - -#define TIM_OCClear_Enable ((uint16_t)0x0080) -#define TIM_OCClear_Disable ((uint16_t)0x0000) -#define IS_TIM_OCCLEAR_STATE(STATE) (((STATE) == TIM_OCClear_Enable) || \ - ((STATE) == TIM_OCClear_Disable)) -/** - * @} - */ - -/** @defgroup TIM_Trigger_Output_Source - * @{ - */ - -#define TIM_TRGOSource_Reset ((uint16_t)0x0000) -#define TIM_TRGOSource_Enable ((uint16_t)0x0010) -#define TIM_TRGOSource_Update ((uint16_t)0x0020) -#define TIM_TRGOSource_OC1 ((uint16_t)0x0030) -#define TIM_TRGOSource_OC1Ref ((uint16_t)0x0040) -#define TIM_TRGOSource_OC2Ref ((uint16_t)0x0050) -#define TIM_TRGOSource_OC3Ref ((uint16_t)0x0060) -#define TIM_TRGOSource_OC4Ref ((uint16_t)0x0070) -#define IS_TIM_TRGO_SOURCE(SOURCE) (((SOURCE) == TIM_TRGOSource_Reset) || \ - ((SOURCE) == TIM_TRGOSource_Enable) || \ - ((SOURCE) == TIM_TRGOSource_Update) || \ - ((SOURCE) == TIM_TRGOSource_OC1) || \ - ((SOURCE) == TIM_TRGOSource_OC1Ref) || \ - ((SOURCE) == TIM_TRGOSource_OC2Ref) || \ - ((SOURCE) == TIM_TRGOSource_OC3Ref) || \ - ((SOURCE) == TIM_TRGOSource_OC4Ref)) -/** - * @} - */ - -/** @defgroup TIM_Slave_Mode - * @{ - */ - -#define TIM_SlaveMode_Reset ((uint16_t)0x0004) -#define TIM_SlaveMode_Gated ((uint16_t)0x0005) -#define TIM_SlaveMode_Trigger ((uint16_t)0x0006) -#define TIM_SlaveMode_External1 ((uint16_t)0x0007) -#define IS_TIM_SLAVE_MODE(MODE) (((MODE) == TIM_SlaveMode_Reset) || \ - ((MODE) == TIM_SlaveMode_Gated) || \ - ((MODE) == TIM_SlaveMode_Trigger) || \ - ((MODE) == TIM_SlaveMode_External1)) -/** - * @} - */ - -/** @defgroup TIM_Master_Slave_Mode - * @{ - */ - -#define TIM_MasterSlaveMode_Enable ((uint16_t)0x0080) -#define TIM_MasterSlaveMode_Disable ((uint16_t)0x0000) -#define IS_TIM_MSM_STATE(STATE) (((STATE) == TIM_MasterSlaveMode_Enable) || \ - ((STATE) == TIM_MasterSlaveMode_Disable)) -/** - * @} - */ - -/** @defgroup TIM_Flags - * @{ - */ - -#define TIM_FLAG_Update ((uint16_t)0x0001) -#define TIM_FLAG_CC1 ((uint16_t)0x0002) -#define TIM_FLAG_CC2 ((uint16_t)0x0004) -#define TIM_FLAG_CC3 ((uint16_t)0x0008) -#define TIM_FLAG_CC4 ((uint16_t)0x0010) -#define TIM_FLAG_COM ((uint16_t)0x0020) -#define TIM_FLAG_Trigger ((uint16_t)0x0040) -#define TIM_FLAG_Break ((uint16_t)0x0080) -#define TIM_FLAG_CC1OF ((uint16_t)0x0200) -#define TIM_FLAG_CC2OF ((uint16_t)0x0400) -#define TIM_FLAG_CC3OF ((uint16_t)0x0800) -#define TIM_FLAG_CC4OF ((uint16_t)0x1000) -#define IS_TIM_GET_FLAG(FLAG) (((FLAG) == TIM_FLAG_Update) || \ - ((FLAG) == TIM_FLAG_CC1) || \ - ((FLAG) == TIM_FLAG_CC2) || \ - ((FLAG) == TIM_FLAG_CC3) || \ - ((FLAG) == TIM_FLAG_CC4) || \ - ((FLAG) == TIM_FLAG_COM) || \ - ((FLAG) == TIM_FLAG_Trigger) || \ - ((FLAG) == TIM_FLAG_Break) || \ - ((FLAG) == TIM_FLAG_CC1OF) || \ - ((FLAG) == TIM_FLAG_CC2OF) || \ - ((FLAG) == TIM_FLAG_CC3OF) || \ - ((FLAG) == TIM_FLAG_CC4OF)) - - -#define IS_TIM_CLEAR_FLAG(TIM_FLAG) ((((TIM_FLAG) & (uint16_t)0xE100) == 0x0000) && ((TIM_FLAG) != 0x0000)) -/** - * @} - */ - -/** @defgroup TIM_Input_Capture_Filer_Value - * @{ - */ - -#define IS_TIM_IC_FILTER(ICFILTER) ((ICFILTER) <= 0xF) -/** - * @} - */ - -/** @defgroup TIM_External_Trigger_Filter - * @{ - */ - -#define IS_TIM_EXT_FILTER(EXTFILTER) ((EXTFILTER) <= 0xF) -/** - * @} - */ - -/** @defgroup TIM_Legacy - * @{ - */ - -#define TIM_DMABurstLength_1Byte TIM_DMABurstLength_1Transfer -#define TIM_DMABurstLength_2Bytes TIM_DMABurstLength_2Transfers -#define TIM_DMABurstLength_3Bytes TIM_DMABurstLength_3Transfers -#define TIM_DMABurstLength_4Bytes TIM_DMABurstLength_4Transfers -#define TIM_DMABurstLength_5Bytes TIM_DMABurstLength_5Transfers -#define TIM_DMABurstLength_6Bytes TIM_DMABurstLength_6Transfers -#define TIM_DMABurstLength_7Bytes TIM_DMABurstLength_7Transfers -#define TIM_DMABurstLength_8Bytes TIM_DMABurstLength_8Transfers -#define TIM_DMABurstLength_9Bytes TIM_DMABurstLength_9Transfers -#define TIM_DMABurstLength_10Bytes TIM_DMABurstLength_10Transfers -#define TIM_DMABurstLength_11Bytes TIM_DMABurstLength_11Transfers -#define TIM_DMABurstLength_12Bytes TIM_DMABurstLength_12Transfers -#define TIM_DMABurstLength_13Bytes TIM_DMABurstLength_13Transfers -#define TIM_DMABurstLength_14Bytes TIM_DMABurstLength_14Transfers -#define TIM_DMABurstLength_15Bytes TIM_DMABurstLength_15Transfers -#define TIM_DMABurstLength_16Bytes TIM_DMABurstLength_16Transfers -#define TIM_DMABurstLength_17Bytes TIM_DMABurstLength_17Transfers -#define TIM_DMABurstLength_18Bytes TIM_DMABurstLength_18Transfers -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup TIM_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup TIM_Exported_Functions - * @{ - */ - -void TIM_DeInit(TIM_TypeDef* TIMx); -void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); -void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); -void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); -void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); -void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); -void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct); -void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct); -void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct); -void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); -void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct); -void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct); -void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct); -void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState); -void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState); -void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState); -void TIM_GenerateEvent(TIM_TypeDef* TIMx, uint16_t TIM_EventSource); -void TIM_DMAConfig(TIM_TypeDef* TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength); -void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalState NewState); -void TIM_InternalClockConfig(TIM_TypeDef* TIMx); -void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource); -void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource, - uint16_t TIM_ICPolarity, uint16_t ICFilter); -void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, - uint16_t ExtTRGFilter); -void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, - uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter); -void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, - uint16_t ExtTRGFilter); -void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode); -void TIM_CounterModeConfig(TIM_TypeDef* TIMx, uint16_t TIM_CounterMode); -void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource); -void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode, - uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity); -void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); -void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); -void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); -void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); -void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState); -void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState); -void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState); -void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState); -void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); -void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); -void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); -void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); -void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); -void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); -void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); -void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); -void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); -void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); -void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); -void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); -void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); -void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity); -void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); -void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity); -void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); -void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity); -void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); -void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx); -void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN); -void TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode); -void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState NewState); -void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, uint16_t TIM_UpdateSource); -void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState); -void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, uint16_t TIM_OPMode); -void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource); -void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode); -void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_MasterSlaveMode); -void TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter); -void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint16_t Autoreload); -void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1); -void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2); -void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3); -void TIM_SetCompare4(TIM_TypeDef* TIMx, uint16_t Compare4); -void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); -void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); -void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); -void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); -void TIM_SetClockDivision(TIM_TypeDef* TIMx, uint16_t TIM_CKD); -uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx); -uint16_t TIM_GetCapture2(TIM_TypeDef* TIMx); -uint16_t TIM_GetCapture3(TIM_TypeDef* TIMx); -uint16_t TIM_GetCapture4(TIM_TypeDef* TIMx); -uint16_t TIM_GetCounter(TIM_TypeDef* TIMx); -uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx); -FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG); -void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG); -ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT); -void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT); - -#ifdef __cplusplus -} -#endif - -#endif /*__STM32F10x_TIM_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_usart.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_usart.h deleted file mode 100644 index 61ae249a..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_usart.h +++ /dev/null @@ -1,412 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_usart.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the USART - * firmware library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_USART_H -#define __STM32F10x_USART_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup USART - * @{ - */ - -/** @defgroup USART_Exported_Types - * @{ - */ - -/** - * @brief USART Init Structure definition - */ - -typedef struct -{ - uint32_t USART_BaudRate; /*!< This member configures the USART communication baud rate. - The baud rate is computed using the following formula: - - IntegerDivider = ((PCLKx) / (16 * (USART_InitStruct->USART_BaudRate))) - - FractionalDivider = ((IntegerDivider - ((u32) IntegerDivider)) * 16) + 0.5 */ - - uint16_t USART_WordLength; /*!< Specifies the number of data bits transmitted or received in a frame. - This parameter can be a value of @ref USART_Word_Length */ - - uint16_t USART_StopBits; /*!< Specifies the number of stop bits transmitted. - This parameter can be a value of @ref USART_Stop_Bits */ - - uint16_t USART_Parity; /*!< Specifies the parity mode. - This parameter can be a value of @ref USART_Parity - @note When parity is enabled, the computed parity is inserted - at the MSB position of the transmitted data (9th bit when - the word length is set to 9 data bits; 8th bit when the - word length is set to 8 data bits). */ - - uint16_t USART_Mode; /*!< Specifies wether the Receive or Transmit mode is enabled or disabled. - This parameter can be a value of @ref USART_Mode */ - - uint16_t USART_HardwareFlowControl; /*!< Specifies wether the hardware flow control mode is enabled - or disabled. - This parameter can be a value of @ref USART_Hardware_Flow_Control */ -} USART_InitTypeDef; - -/** - * @brief USART Clock Init Structure definition - */ - -typedef struct -{ - - uint16_t USART_Clock; /*!< Specifies whether the USART clock is enabled or disabled. - This parameter can be a value of @ref USART_Clock */ - - uint16_t USART_CPOL; /*!< Specifies the steady state value of the serial clock. - This parameter can be a value of @ref USART_Clock_Polarity */ - - uint16_t USART_CPHA; /*!< Specifies the clock transition on which the bit capture is made. - This parameter can be a value of @ref USART_Clock_Phase */ - - uint16_t USART_LastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted - data bit (MSB) has to be output on the SCLK pin in synchronous mode. - This parameter can be a value of @ref USART_Last_Bit */ -} USART_ClockInitTypeDef; - -/** - * @} - */ - -/** @defgroup USART_Exported_Constants - * @{ - */ - -#define IS_USART_ALL_PERIPH(PERIPH) (((PERIPH) == USART1) || \ - ((PERIPH) == USART2) || \ - ((PERIPH) == USART3) || \ - ((PERIPH) == UART4) || \ - ((PERIPH) == UART5)) - -#define IS_USART_123_PERIPH(PERIPH) (((PERIPH) == USART1) || \ - ((PERIPH) == USART2) || \ - ((PERIPH) == USART3)) - -#define IS_USART_1234_PERIPH(PERIPH) (((PERIPH) == USART1) || \ - ((PERIPH) == USART2) || \ - ((PERIPH) == USART3) || \ - ((PERIPH) == UART4)) -/** @defgroup USART_Word_Length - * @{ - */ - -#define USART_WordLength_8b ((uint16_t)0x0000) -#define USART_WordLength_9b ((uint16_t)0x1000) - -#define IS_USART_WORD_LENGTH(LENGTH) (((LENGTH) == USART_WordLength_8b) || \ - ((LENGTH) == USART_WordLength_9b)) -/** - * @} - */ - -/** @defgroup USART_Stop_Bits - * @{ - */ - -#define USART_StopBits_1 ((uint16_t)0x0000) -#define USART_StopBits_0_5 ((uint16_t)0x1000) -#define USART_StopBits_2 ((uint16_t)0x2000) -#define USART_StopBits_1_5 ((uint16_t)0x3000) -#define IS_USART_STOPBITS(STOPBITS) (((STOPBITS) == USART_StopBits_1) || \ - ((STOPBITS) == USART_StopBits_0_5) || \ - ((STOPBITS) == USART_StopBits_2) || \ - ((STOPBITS) == USART_StopBits_1_5)) -/** - * @} - */ - -/** @defgroup USART_Parity - * @{ - */ - -#define USART_Parity_No ((uint16_t)0x0000) -#define USART_Parity_Even ((uint16_t)0x0400) -#define USART_Parity_Odd ((uint16_t)0x0600) -#define IS_USART_PARITY(PARITY) (((PARITY) == USART_Parity_No) || \ - ((PARITY) == USART_Parity_Even) || \ - ((PARITY) == USART_Parity_Odd)) -/** - * @} - */ - -/** @defgroup USART_Mode - * @{ - */ - -#define USART_Mode_Rx ((uint16_t)0x0004) -#define USART_Mode_Tx ((uint16_t)0x0008) -#define IS_USART_MODE(MODE) ((((MODE) & (uint16_t)0xFFF3) == 0x00) && ((MODE) != (uint16_t)0x00)) -/** - * @} - */ - -/** @defgroup USART_Hardware_Flow_Control - * @{ - */ -#define USART_HardwareFlowControl_None ((uint16_t)0x0000) -#define USART_HardwareFlowControl_RTS ((uint16_t)0x0100) -#define USART_HardwareFlowControl_CTS ((uint16_t)0x0200) -#define USART_HardwareFlowControl_RTS_CTS ((uint16_t)0x0300) -#define IS_USART_HARDWARE_FLOW_CONTROL(CONTROL)\ - (((CONTROL) == USART_HardwareFlowControl_None) || \ - ((CONTROL) == USART_HardwareFlowControl_RTS) || \ - ((CONTROL) == USART_HardwareFlowControl_CTS) || \ - ((CONTROL) == USART_HardwareFlowControl_RTS_CTS)) -/** - * @} - */ - -/** @defgroup USART_Clock - * @{ - */ -#define USART_Clock_Disable ((uint16_t)0x0000) -#define USART_Clock_Enable ((uint16_t)0x0800) -#define IS_USART_CLOCK(CLOCK) (((CLOCK) == USART_Clock_Disable) || \ - ((CLOCK) == USART_Clock_Enable)) -/** - * @} - */ - -/** @defgroup USART_Clock_Polarity - * @{ - */ - -#define USART_CPOL_Low ((uint16_t)0x0000) -#define USART_CPOL_High ((uint16_t)0x0400) -#define IS_USART_CPOL(CPOL) (((CPOL) == USART_CPOL_Low) || ((CPOL) == USART_CPOL_High)) - -/** - * @} - */ - -/** @defgroup USART_Clock_Phase - * @{ - */ - -#define USART_CPHA_1Edge ((uint16_t)0x0000) -#define USART_CPHA_2Edge ((uint16_t)0x0200) -#define IS_USART_CPHA(CPHA) (((CPHA) == USART_CPHA_1Edge) || ((CPHA) == USART_CPHA_2Edge)) - -/** - * @} - */ - -/** @defgroup USART_Last_Bit - * @{ - */ - -#define USART_LastBit_Disable ((uint16_t)0x0000) -#define USART_LastBit_Enable ((uint16_t)0x0100) -#define IS_USART_LASTBIT(LASTBIT) (((LASTBIT) == USART_LastBit_Disable) || \ - ((LASTBIT) == USART_LastBit_Enable)) -/** - * @} - */ - -/** @defgroup USART_Interrupt_definition - * @{ - */ - -#define USART_IT_PE ((uint16_t)0x0028) -#define USART_IT_TXE ((uint16_t)0x0727) -#define USART_IT_TC ((uint16_t)0x0626) -#define USART_IT_RXNE ((uint16_t)0x0525) -#define USART_IT_IDLE ((uint16_t)0x0424) -#define USART_IT_LBD ((uint16_t)0x0846) -#define USART_IT_CTS ((uint16_t)0x096A) -#define USART_IT_ERR ((uint16_t)0x0060) -#define USART_IT_ORE ((uint16_t)0x0360) -#define USART_IT_NE ((uint16_t)0x0260) -#define USART_IT_FE ((uint16_t)0x0160) -#define IS_USART_CONFIG_IT(IT) (((IT) == USART_IT_PE) || ((IT) == USART_IT_TXE) || \ - ((IT) == USART_IT_TC) || ((IT) == USART_IT_RXNE) || \ - ((IT) == USART_IT_IDLE) || ((IT) == USART_IT_LBD) || \ - ((IT) == USART_IT_CTS) || ((IT) == USART_IT_ERR)) -#define IS_USART_GET_IT(IT) (((IT) == USART_IT_PE) || ((IT) == USART_IT_TXE) || \ - ((IT) == USART_IT_TC) || ((IT) == USART_IT_RXNE) || \ - ((IT) == USART_IT_IDLE) || ((IT) == USART_IT_LBD) || \ - ((IT) == USART_IT_CTS) || ((IT) == USART_IT_ORE) || \ - ((IT) == USART_IT_NE) || ((IT) == USART_IT_FE)) -#define IS_USART_CLEAR_IT(IT) (((IT) == USART_IT_TC) || ((IT) == USART_IT_RXNE) || \ - ((IT) == USART_IT_LBD) || ((IT) == USART_IT_CTS)) -/** - * @} - */ - -/** @defgroup USART_DMA_Requests - * @{ - */ - -#define USART_DMAReq_Tx ((uint16_t)0x0080) -#define USART_DMAReq_Rx ((uint16_t)0x0040) -#define IS_USART_DMAREQ(DMAREQ) ((((DMAREQ) & (uint16_t)0xFF3F) == 0x00) && ((DMAREQ) != (uint16_t)0x00)) - -/** - * @} - */ - -/** @defgroup USART_WakeUp_methods - * @{ - */ - -#define USART_WakeUp_IdleLine ((uint16_t)0x0000) -#define USART_WakeUp_AddressMark ((uint16_t)0x0800) -#define IS_USART_WAKEUP(WAKEUP) (((WAKEUP) == USART_WakeUp_IdleLine) || \ - ((WAKEUP) == USART_WakeUp_AddressMark)) -/** - * @} - */ - -/** @defgroup USART_LIN_Break_Detection_Length - * @{ - */ - -#define USART_LINBreakDetectLength_10b ((uint16_t)0x0000) -#define USART_LINBreakDetectLength_11b ((uint16_t)0x0020) -#define IS_USART_LIN_BREAK_DETECT_LENGTH(LENGTH) \ - (((LENGTH) == USART_LINBreakDetectLength_10b) || \ - ((LENGTH) == USART_LINBreakDetectLength_11b)) -/** - * @} - */ - -/** @defgroup USART_IrDA_Low_Power - * @{ - */ - -#define USART_IrDAMode_LowPower ((uint16_t)0x0004) -#define USART_IrDAMode_Normal ((uint16_t)0x0000) -#define IS_USART_IRDA_MODE(MODE) (((MODE) == USART_IrDAMode_LowPower) || \ - ((MODE) == USART_IrDAMode_Normal)) -/** - * @} - */ - -/** @defgroup USART_Flags - * @{ - */ - -#define USART_FLAG_CTS ((uint16_t)0x0200) -#define USART_FLAG_LBD ((uint16_t)0x0100) -#define USART_FLAG_TXE ((uint16_t)0x0080) -#define USART_FLAG_TC ((uint16_t)0x0040) -#define USART_FLAG_RXNE ((uint16_t)0x0020) -#define USART_FLAG_IDLE ((uint16_t)0x0010) -#define USART_FLAG_ORE ((uint16_t)0x0008) -#define USART_FLAG_NE ((uint16_t)0x0004) -#define USART_FLAG_FE ((uint16_t)0x0002) -#define USART_FLAG_PE ((uint16_t)0x0001) -#define IS_USART_FLAG(FLAG) (((FLAG) == USART_FLAG_PE) || ((FLAG) == USART_FLAG_TXE) || \ - ((FLAG) == USART_FLAG_TC) || ((FLAG) == USART_FLAG_RXNE) || \ - ((FLAG) == USART_FLAG_IDLE) || ((FLAG) == USART_FLAG_LBD) || \ - ((FLAG) == USART_FLAG_CTS) || ((FLAG) == USART_FLAG_ORE) || \ - ((FLAG) == USART_FLAG_NE) || ((FLAG) == USART_FLAG_FE)) - -#define IS_USART_CLEAR_FLAG(FLAG) ((((FLAG) & (uint16_t)0xFC9F) == 0x00) && ((FLAG) != (uint16_t)0x00)) -#define IS_USART_PERIPH_FLAG(PERIPH, USART_FLAG) ((((*(uint32_t*)&(PERIPH)) != UART4_BASE) &&\ - ((*(uint32_t*)&(PERIPH)) != UART5_BASE)) \ - || ((USART_FLAG) != USART_FLAG_CTS)) -#define IS_USART_BAUDRATE(BAUDRATE) (((BAUDRATE) > 0) && ((BAUDRATE) < 0x0044AA21)) -#define IS_USART_ADDRESS(ADDRESS) ((ADDRESS) <= 0xF) -#define IS_USART_DATA(DATA) ((DATA) <= 0x1FF) - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup USART_Exported_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup USART_Exported_Functions - * @{ - */ - -void USART_DeInit(USART_TypeDef* USARTx); -void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct); -void USART_StructInit(USART_InitTypeDef* USART_InitStruct); -void USART_ClockInit(USART_TypeDef* USARTx, USART_ClockInitTypeDef* USART_ClockInitStruct); -void USART_ClockStructInit(USART_ClockInitTypeDef* USART_ClockInitStruct); -void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState); -void USART_ITConfig(USART_TypeDef* USARTx, uint16_t USART_IT, FunctionalState NewState); -void USART_DMACmd(USART_TypeDef* USARTx, uint16_t USART_DMAReq, FunctionalState NewState); -void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address); -void USART_WakeUpConfig(USART_TypeDef* USARTx, uint16_t USART_WakeUp); -void USART_ReceiverWakeUpCmd(USART_TypeDef* USARTx, FunctionalState NewState); -void USART_LINBreakDetectLengthConfig(USART_TypeDef* USARTx, uint16_t USART_LINBreakDetectLength); -void USART_LINCmd(USART_TypeDef* USARTx, FunctionalState NewState); -void USART_SendData(USART_TypeDef* USARTx, uint16_t Data); -uint16_t USART_ReceiveData(USART_TypeDef* USARTx); -void USART_SendBreak(USART_TypeDef* USARTx); -void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime); -void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler); -void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState); -void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState); -void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState); -void USART_OverSampling8Cmd(USART_TypeDef* USARTx, FunctionalState NewState); -void USART_OneBitMethodCmd(USART_TypeDef* USARTx, FunctionalState NewState); -void USART_IrDAConfig(USART_TypeDef* USARTx, uint16_t USART_IrDAMode); -void USART_IrDACmd(USART_TypeDef* USARTx, FunctionalState NewState); -FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG); -void USART_ClearFlag(USART_TypeDef* USARTx, uint16_t USART_FLAG); -ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT); -void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_USART_H */ -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_wwdg.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_wwdg.h deleted file mode 100644 index cd573da4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_wwdg.h +++ /dev/null @@ -1,115 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_wwdg.h - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file contains all the functions prototypes for the WWDG firmware - * library. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_WWDG_H -#define __STM32F10x_WWDG_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @addtogroup WWDG - * @{ - */ - -/** @defgroup WWDG_Exported_Types - * @{ - */ - -/** - * @} - */ - -/** @defgroup WWDG_Exported_Constants - * @{ - */ - -/** @defgroup WWDG_Prescaler - * @{ - */ - -#define WWDG_Prescaler_1 ((uint32_t)0x00000000) -#define WWDG_Prescaler_2 ((uint32_t)0x00000080) -#define WWDG_Prescaler_4 ((uint32_t)0x00000100) -#define WWDG_Prescaler_8 ((uint32_t)0x00000180) -#define IS_WWDG_PRESCALER(PRESCALER) (((PRESCALER) == WWDG_Prescaler_1) || \ - ((PRESCALER) == WWDG_Prescaler_2) || \ - ((PRESCALER) == WWDG_Prescaler_4) || \ - ((PRESCALER) == WWDG_Prescaler_8)) -#define IS_WWDG_WINDOW_VALUE(VALUE) ((VALUE) <= 0x7F) -#define IS_WWDG_COUNTER(COUNTER) (((COUNTER) >= 0x40) && ((COUNTER) <= 0x7F)) - -/** - * @} - */ - -/** - * @} - */ - -/** @defgroup WWDG_Exported_Macros - * @{ - */ -/** - * @} - */ - -/** @defgroup WWDG_Exported_Functions - * @{ - */ - -void WWDG_DeInit(void); -void WWDG_SetPrescaler(uint32_t WWDG_Prescaler); -void WWDG_SetWindowValue(uint8_t WindowValue); -void WWDG_EnableIT(void); -void WWDG_SetCounter(uint8_t Counter); -void WWDG_Enable(uint8_t Counter); -FlagStatus WWDG_GetFlagStatus(void); -void WWDG_ClearFlag(void); - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32F10x_WWDG_H */ - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c deleted file mode 100644 index ec9165f7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c +++ /dev/null @@ -1,225 +0,0 @@ -/** - ****************************************************************************** - * @file misc.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the miscellaneous firmware functions (add-on - * to CMSIS functions). - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "misc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup MISC - * @brief MISC driver modules - * @{ - */ - -/** @defgroup MISC_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup MISC_Private_Defines - * @{ - */ - -#define AIRCR_VECTKEY_MASK ((uint32_t)0x05FA0000) -/** - * @} - */ - -/** @defgroup MISC_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup MISC_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup MISC_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup MISC_Private_Functions - * @{ - */ - -/** - * @brief Configures the priority grouping: pre-emption priority and subpriority. - * @param NVIC_PriorityGroup: specifies the priority grouping bits length. - * This parameter can be one of the following values: - * @arg NVIC_PriorityGroup_0: 0 bits for pre-emption priority - * 4 bits for subpriority - * @arg NVIC_PriorityGroup_1: 1 bits for pre-emption priority - * 3 bits for subpriority - * @arg NVIC_PriorityGroup_2: 2 bits for pre-emption priority - * 2 bits for subpriority - * @arg NVIC_PriorityGroup_3: 3 bits for pre-emption priority - * 1 bits for subpriority - * @arg NVIC_PriorityGroup_4: 4 bits for pre-emption priority - * 0 bits for subpriority - * @retval None - */ -void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup) -{ - /* Check the parameters */ - assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup)); - - /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */ - SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup; -} - -/** - * @brief Initializes the NVIC peripheral according to the specified - * parameters in the NVIC_InitStruct. - * @param NVIC_InitStruct: pointer to a NVIC_InitTypeDef structure that contains - * the configuration information for the specified NVIC peripheral. - * @retval None - */ -void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct) -{ - uint32_t tmppriority = 0x00, tmppre = 0x00, tmpsub = 0x0F; - - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NVIC_InitStruct->NVIC_IRQChannelCmd)); - assert_param(IS_NVIC_PREEMPTION_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority)); - assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority)); - - if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE) - { - /* Compute the Corresponding IRQ Priority --------------------------------*/ - tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08; - tmppre = (0x4 - tmppriority); - tmpsub = tmpsub >> tmppriority; - - tmppriority = (uint32_t)NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre; - tmppriority |= NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub; - tmppriority = tmppriority << 0x04; - - NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority; - - /* Enable the Selected IRQ Channels --------------------------------------*/ - NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] = - (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F); - } - else - { - /* Disable the Selected IRQ Channels -------------------------------------*/ - NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] = - (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F); - } -} - -/** - * @brief Sets the vector table location and Offset. - * @param NVIC_VectTab: specifies if the vector table is in RAM or FLASH memory. - * This parameter can be one of the following values: - * @arg NVIC_VectTab_RAM - * @arg NVIC_VectTab_FLASH - * @param Offset: Vector Table base offset field. This value must be a multiple - * of 0x200. - * @retval None - */ -void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset) -{ - /* Check the parameters */ - assert_param(IS_NVIC_VECTTAB(NVIC_VectTab)); - assert_param(IS_NVIC_OFFSET(Offset)); - - SCB->VTOR = NVIC_VectTab | (Offset & (uint32_t)0x1FFFFF80); -} - -/** - * @brief Selects the condition for the system to enter low power mode. - * @param LowPowerMode: Specifies the new mode for the system to enter low power mode. - * This parameter can be one of the following values: - * @arg NVIC_LP_SEVONPEND - * @arg NVIC_LP_SLEEPDEEP - * @arg NVIC_LP_SLEEPONEXIT - * @param NewState: new state of LP condition. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_NVIC_LP(LowPowerMode)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - SCB->SCR |= LowPowerMode; - } - else - { - SCB->SCR &= (uint32_t)(~(uint32_t)LowPowerMode); - } -} - -/** - * @brief Configures the SysTick clock source. - * @param SysTick_CLKSource: specifies the SysTick clock source. - * This parameter can be one of the following values: - * @arg SysTick_CLKSource_HCLK_Div8: AHB clock divided by 8 selected as SysTick clock source. - * @arg SysTick_CLKSource_HCLK: AHB clock selected as SysTick clock source. - * @retval None - */ -void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource) -{ - /* Check the parameters */ - assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource)); - if (SysTick_CLKSource == SysTick_CLKSource_HCLK) - { - SysTick->CTRL |= SysTick_CLKSource_HCLK; - } - else - { - SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8; - } -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c deleted file mode 100644 index 916a096d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c +++ /dev/null @@ -1,1307 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_adc.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the ADC firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_adc.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup ADC - * @brief ADC driver modules - * @{ - */ - -/** @defgroup ADC_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup ADC_Private_Defines - * @{ - */ - -/* ADC DISCNUM mask */ -#define CR1_DISCNUM_Reset ((uint32_t)0xFFFF1FFF) - -/* ADC DISCEN mask */ -#define CR1_DISCEN_Set ((uint32_t)0x00000800) -#define CR1_DISCEN_Reset ((uint32_t)0xFFFFF7FF) - -/* ADC JAUTO mask */ -#define CR1_JAUTO_Set ((uint32_t)0x00000400) -#define CR1_JAUTO_Reset ((uint32_t)0xFFFFFBFF) - -/* ADC JDISCEN mask */ -#define CR1_JDISCEN_Set ((uint32_t)0x00001000) -#define CR1_JDISCEN_Reset ((uint32_t)0xFFFFEFFF) - -/* ADC AWDCH mask */ -#define CR1_AWDCH_Reset ((uint32_t)0xFFFFFFE0) - -/* ADC Analog watchdog enable mode mask */ -#define CR1_AWDMode_Reset ((uint32_t)0xFF3FFDFF) - -/* CR1 register Mask */ -#define CR1_CLEAR_Mask ((uint32_t)0xFFF0FEFF) - -/* ADC ADON mask */ -#define CR2_ADON_Set ((uint32_t)0x00000001) -#define CR2_ADON_Reset ((uint32_t)0xFFFFFFFE) - -/* ADC DMA mask */ -#define CR2_DMA_Set ((uint32_t)0x00000100) -#define CR2_DMA_Reset ((uint32_t)0xFFFFFEFF) - -/* ADC RSTCAL mask */ -#define CR2_RSTCAL_Set ((uint32_t)0x00000008) - -/* ADC CAL mask */ -#define CR2_CAL_Set ((uint32_t)0x00000004) - -/* ADC SWSTART mask */ -#define CR2_SWSTART_Set ((uint32_t)0x00400000) - -/* ADC EXTTRIG mask */ -#define CR2_EXTTRIG_Set ((uint32_t)0x00100000) -#define CR2_EXTTRIG_Reset ((uint32_t)0xFFEFFFFF) - -/* ADC Software start mask */ -#define CR2_EXTTRIG_SWSTART_Set ((uint32_t)0x00500000) -#define CR2_EXTTRIG_SWSTART_Reset ((uint32_t)0xFFAFFFFF) - -/* ADC JEXTSEL mask */ -#define CR2_JEXTSEL_Reset ((uint32_t)0xFFFF8FFF) - -/* ADC JEXTTRIG mask */ -#define CR2_JEXTTRIG_Set ((uint32_t)0x00008000) -#define CR2_JEXTTRIG_Reset ((uint32_t)0xFFFF7FFF) - -/* ADC JSWSTART mask */ -#define CR2_JSWSTART_Set ((uint32_t)0x00200000) - -/* ADC injected software start mask */ -#define CR2_JEXTTRIG_JSWSTART_Set ((uint32_t)0x00208000) -#define CR2_JEXTTRIG_JSWSTART_Reset ((uint32_t)0xFFDF7FFF) - -/* ADC TSPD mask */ -#define CR2_TSVREFE_Set ((uint32_t)0x00800000) -#define CR2_TSVREFE_Reset ((uint32_t)0xFF7FFFFF) - -/* CR2 register Mask */ -#define CR2_CLEAR_Mask ((uint32_t)0xFFF1F7FD) - -/* ADC SQx mask */ -#define SQR3_SQ_Set ((uint32_t)0x0000001F) -#define SQR2_SQ_Set ((uint32_t)0x0000001F) -#define SQR1_SQ_Set ((uint32_t)0x0000001F) - -/* SQR1 register Mask */ -#define SQR1_CLEAR_Mask ((uint32_t)0xFF0FFFFF) - -/* ADC JSQx mask */ -#define JSQR_JSQ_Set ((uint32_t)0x0000001F) - -/* ADC JL mask */ -#define JSQR_JL_Set ((uint32_t)0x00300000) -#define JSQR_JL_Reset ((uint32_t)0xFFCFFFFF) - -/* ADC SMPx mask */ -#define SMPR1_SMP_Set ((uint32_t)0x00000007) -#define SMPR2_SMP_Set ((uint32_t)0x00000007) - -/* ADC JDRx registers offset */ -#define JDR_Offset ((uint8_t)0x28) - -/* ADC1 DR register base address */ -#define DR_ADDRESS ((uint32_t)0x4001244C) - -/** - * @} - */ - -/** @defgroup ADC_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup ADC_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup ADC_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup ADC_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the ADCx peripheral registers to their default reset values. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @retval None - */ -void ADC_DeInit(ADC_TypeDef* ADCx) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - - if (ADCx == ADC1) - { - /* Enable ADC1 reset state */ - RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, ENABLE); - /* Release ADC1 from reset state */ - RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, DISABLE); - } - else if (ADCx == ADC2) - { - /* Enable ADC2 reset state */ - RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, ENABLE); - /* Release ADC2 from reset state */ - RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, DISABLE); - } - else - { - if (ADCx == ADC3) - { - /* Enable ADC3 reset state */ - RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3, ENABLE); - /* Release ADC3 from reset state */ - RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3, DISABLE); - } - } -} - -/** - * @brief Initializes the ADCx peripheral according to the specified parameters - * in the ADC_InitStruct. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_InitStruct: pointer to an ADC_InitTypeDef structure that contains - * the configuration information for the specified ADC peripheral. - * @retval None - */ -void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct) -{ - uint32_t tmpreg1 = 0; - uint8_t tmpreg2 = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_MODE(ADC_InitStruct->ADC_Mode)); - assert_param(IS_FUNCTIONAL_STATE(ADC_InitStruct->ADC_ScanConvMode)); - assert_param(IS_FUNCTIONAL_STATE(ADC_InitStruct->ADC_ContinuousConvMode)); - assert_param(IS_ADC_EXT_TRIG(ADC_InitStruct->ADC_ExternalTrigConv)); - assert_param(IS_ADC_DATA_ALIGN(ADC_InitStruct->ADC_DataAlign)); - assert_param(IS_ADC_REGULAR_LENGTH(ADC_InitStruct->ADC_NbrOfChannel)); - - /*---------------------------- ADCx CR1 Configuration -----------------*/ - /* Get the ADCx CR1 value */ - tmpreg1 = ADCx->CR1; - /* Clear DUALMOD and SCAN bits */ - tmpreg1 &= CR1_CLEAR_Mask; - /* Configure ADCx: Dual mode and scan conversion mode */ - /* Set DUALMOD bits according to ADC_Mode value */ - /* Set SCAN bit according to ADC_ScanConvMode value */ - tmpreg1 |= (uint32_t)(ADC_InitStruct->ADC_Mode | ((uint32_t)ADC_InitStruct->ADC_ScanConvMode << 8)); - /* Write to ADCx CR1 */ - ADCx->CR1 = tmpreg1; - - /*---------------------------- ADCx CR2 Configuration -----------------*/ - /* Get the ADCx CR2 value */ - tmpreg1 = ADCx->CR2; - /* Clear CONT, ALIGN and EXTSEL bits */ - tmpreg1 &= CR2_CLEAR_Mask; - /* Configure ADCx: external trigger event and continuous conversion mode */ - /* Set ALIGN bit according to ADC_DataAlign value */ - /* Set EXTSEL bits according to ADC_ExternalTrigConv value */ - /* Set CONT bit according to ADC_ContinuousConvMode value */ - tmpreg1 |= (uint32_t)(ADC_InitStruct->ADC_DataAlign | ADC_InitStruct->ADC_ExternalTrigConv | - ((uint32_t)ADC_InitStruct->ADC_ContinuousConvMode << 1)); - /* Write to ADCx CR2 */ - ADCx->CR2 = tmpreg1; - - /*---------------------------- ADCx SQR1 Configuration -----------------*/ - /* Get the ADCx SQR1 value */ - tmpreg1 = ADCx->SQR1; - /* Clear L bits */ - tmpreg1 &= SQR1_CLEAR_Mask; - /* Configure ADCx: regular channel sequence length */ - /* Set L bits according to ADC_NbrOfChannel value */ - tmpreg2 |= (uint8_t) (ADC_InitStruct->ADC_NbrOfChannel - (uint8_t)1); - tmpreg1 |= (uint32_t)tmpreg2 << 20; - /* Write to ADCx SQR1 */ - ADCx->SQR1 = tmpreg1; -} - -/** - * @brief Fills each ADC_InitStruct member with its default value. - * @param ADC_InitStruct : pointer to an ADC_InitTypeDef structure which will be initialized. - * @retval None - */ -void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct) -{ - /* Reset ADC init structure parameters values */ - /* Initialize the ADC_Mode member */ - ADC_InitStruct->ADC_Mode = ADC_Mode_Independent; - /* initialize the ADC_ScanConvMode member */ - ADC_InitStruct->ADC_ScanConvMode = DISABLE; - /* Initialize the ADC_ContinuousConvMode member */ - ADC_InitStruct->ADC_ContinuousConvMode = DISABLE; - /* Initialize the ADC_ExternalTrigConv member */ - ADC_InitStruct->ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1; - /* Initialize the ADC_DataAlign member */ - ADC_InitStruct->ADC_DataAlign = ADC_DataAlign_Right; - /* Initialize the ADC_NbrOfChannel member */ - ADC_InitStruct->ADC_NbrOfChannel = 1; -} - -/** - * @brief Enables or disables the specified ADC peripheral. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param NewState: new state of the ADCx peripheral. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Set the ADON bit to wake up the ADC from power down mode */ - ADCx->CR2 |= CR2_ADON_Set; - } - else - { - /* Disable the selected ADC peripheral */ - ADCx->CR2 &= CR2_ADON_Reset; - } -} - -/** - * @brief Enables or disables the specified ADC DMA request. - * @param ADCx: where x can be 1 or 3 to select the ADC peripheral. - * Note: ADC2 hasn't a DMA capability. - * @param NewState: new state of the selected ADC DMA transfer. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_ADC_DMA_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected ADC DMA request */ - ADCx->CR2 |= CR2_DMA_Set; - } - else - { - /* Disable the selected ADC DMA request */ - ADCx->CR2 &= CR2_DMA_Reset; - } -} - -/** - * @brief Enables or disables the specified ADC interrupts. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_IT: specifies the ADC interrupt sources to be enabled or disabled. - * This parameter can be any combination of the following values: - * @arg ADC_IT_EOC: End of conversion interrupt mask - * @arg ADC_IT_AWD: Analog watchdog interrupt mask - * @arg ADC_IT_JEOC: End of injected conversion interrupt mask - * @param NewState: new state of the specified ADC interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState) -{ - uint8_t itmask = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - assert_param(IS_ADC_IT(ADC_IT)); - /* Get the ADC IT index */ - itmask = (uint8_t)ADC_IT; - if (NewState != DISABLE) - { - /* Enable the selected ADC interrupts */ - ADCx->CR1 |= itmask; - } - else - { - /* Disable the selected ADC interrupts */ - ADCx->CR1 &= (~(uint32_t)itmask); - } -} - -/** - * @brief Resets the selected ADC calibration registers. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @retval None - */ -void ADC_ResetCalibration(ADC_TypeDef* ADCx) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - /* Resets the selected ADC calibration registers */ - ADCx->CR2 |= CR2_RSTCAL_Set; -} - -/** - * @brief Gets the selected ADC reset calibration registers status. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @retval The new state of ADC reset calibration registers (SET or RESET). - */ -FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - /* Check the status of RSTCAL bit */ - if ((ADCx->CR2 & CR2_RSTCAL_Set) != (uint32_t)RESET) - { - /* RSTCAL bit is set */ - bitstatus = SET; - } - else - { - /* RSTCAL bit is reset */ - bitstatus = RESET; - } - /* Return the RSTCAL bit status */ - return bitstatus; -} - -/** - * @brief Starts the selected ADC calibration process. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @retval None - */ -void ADC_StartCalibration(ADC_TypeDef* ADCx) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - /* Enable the selected ADC calibration process */ - ADCx->CR2 |= CR2_CAL_Set; -} - -/** - * @brief Gets the selected ADC calibration status. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @retval The new state of ADC calibration (SET or RESET). - */ -FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - /* Check the status of CAL bit */ - if ((ADCx->CR2 & CR2_CAL_Set) != (uint32_t)RESET) - { - /* CAL bit is set: calibration on going */ - bitstatus = SET; - } - else - { - /* CAL bit is reset: end of calibration */ - bitstatus = RESET; - } - /* Return the CAL bit status */ - return bitstatus; -} - -/** - * @brief Enables or disables the selected ADC software start conversion . - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param NewState: new state of the selected ADC software start conversion. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected ADC conversion on external event and start the selected - ADC conversion */ - ADCx->CR2 |= CR2_EXTTRIG_SWSTART_Set; - } - else - { - /* Disable the selected ADC conversion on external event and stop the selected - ADC conversion */ - ADCx->CR2 &= CR2_EXTTRIG_SWSTART_Reset; - } -} - -/** - * @brief Gets the selected ADC Software start conversion Status. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @retval The new state of ADC software start conversion (SET or RESET). - */ -FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - /* Check the status of SWSTART bit */ - if ((ADCx->CR2 & CR2_SWSTART_Set) != (uint32_t)RESET) - { - /* SWSTART bit is set */ - bitstatus = SET; - } - else - { - /* SWSTART bit is reset */ - bitstatus = RESET; - } - /* Return the SWSTART bit status */ - return bitstatus; -} - -/** - * @brief Configures the discontinuous mode for the selected ADC regular - * group channel. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param Number: specifies the discontinuous mode regular channel - * count value. This number must be between 1 and 8. - * @retval None - */ -void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, uint8_t Number) -{ - uint32_t tmpreg1 = 0; - uint32_t tmpreg2 = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_REGULAR_DISC_NUMBER(Number)); - /* Get the old register value */ - tmpreg1 = ADCx->CR1; - /* Clear the old discontinuous mode channel count */ - tmpreg1 &= CR1_DISCNUM_Reset; - /* Set the discontinuous mode channel count */ - tmpreg2 = Number - 1; - tmpreg1 |= tmpreg2 << 13; - /* Store the new register value */ - ADCx->CR1 = tmpreg1; -} - -/** - * @brief Enables or disables the discontinuous mode on regular group - * channel for the specified ADC - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param NewState: new state of the selected ADC discontinuous mode - * on regular group channel. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected ADC regular discontinuous mode */ - ADCx->CR1 |= CR1_DISCEN_Set; - } - else - { - /* Disable the selected ADC regular discontinuous mode */ - ADCx->CR1 &= CR1_DISCEN_Reset; - } -} - -/** - * @brief Configures for the selected ADC regular channel its corresponding - * rank in the sequencer and its sample time. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_Channel: the ADC channel to configure. - * This parameter can be one of the following values: - * @arg ADC_Channel_0: ADC Channel0 selected - * @arg ADC_Channel_1: ADC Channel1 selected - * @arg ADC_Channel_2: ADC Channel2 selected - * @arg ADC_Channel_3: ADC Channel3 selected - * @arg ADC_Channel_4: ADC Channel4 selected - * @arg ADC_Channel_5: ADC Channel5 selected - * @arg ADC_Channel_6: ADC Channel6 selected - * @arg ADC_Channel_7: ADC Channel7 selected - * @arg ADC_Channel_8: ADC Channel8 selected - * @arg ADC_Channel_9: ADC Channel9 selected - * @arg ADC_Channel_10: ADC Channel10 selected - * @arg ADC_Channel_11: ADC Channel11 selected - * @arg ADC_Channel_12: ADC Channel12 selected - * @arg ADC_Channel_13: ADC Channel13 selected - * @arg ADC_Channel_14: ADC Channel14 selected - * @arg ADC_Channel_15: ADC Channel15 selected - * @arg ADC_Channel_16: ADC Channel16 selected - * @arg ADC_Channel_17: ADC Channel17 selected - * @param Rank: The rank in the regular group sequencer. This parameter must be between 1 to 16. - * @param ADC_SampleTime: The sample time value to be set for the selected channel. - * This parameter can be one of the following values: - * @arg ADC_SampleTime_1Cycles5: Sample time equal to 1.5 cycles - * @arg ADC_SampleTime_7Cycles5: Sample time equal to 7.5 cycles - * @arg ADC_SampleTime_13Cycles5: Sample time equal to 13.5 cycles - * @arg ADC_SampleTime_28Cycles5: Sample time equal to 28.5 cycles - * @arg ADC_SampleTime_41Cycles5: Sample time equal to 41.5 cycles - * @arg ADC_SampleTime_55Cycles5: Sample time equal to 55.5 cycles - * @arg ADC_SampleTime_71Cycles5: Sample time equal to 71.5 cycles - * @arg ADC_SampleTime_239Cycles5: Sample time equal to 239.5 cycles - * @retval None - */ -void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime) -{ - uint32_t tmpreg1 = 0, tmpreg2 = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_CHANNEL(ADC_Channel)); - assert_param(IS_ADC_REGULAR_RANK(Rank)); - assert_param(IS_ADC_SAMPLE_TIME(ADC_SampleTime)); - /* if ADC_Channel_10 ... ADC_Channel_17 is selected */ - if (ADC_Channel > ADC_Channel_9) - { - /* Get the old register value */ - tmpreg1 = ADCx->SMPR1; - /* Calculate the mask to clear */ - tmpreg2 = SMPR1_SMP_Set << (3 * (ADC_Channel - 10)); - /* Clear the old channel sample time */ - tmpreg1 &= ~tmpreg2; - /* Calculate the mask to set */ - tmpreg2 = (uint32_t)ADC_SampleTime << (3 * (ADC_Channel - 10)); - /* Set the new channel sample time */ - tmpreg1 |= tmpreg2; - /* Store the new register value */ - ADCx->SMPR1 = tmpreg1; - } - else /* ADC_Channel include in ADC_Channel_[0..9] */ - { - /* Get the old register value */ - tmpreg1 = ADCx->SMPR2; - /* Calculate the mask to clear */ - tmpreg2 = SMPR2_SMP_Set << (3 * ADC_Channel); - /* Clear the old channel sample time */ - tmpreg1 &= ~tmpreg2; - /* Calculate the mask to set */ - tmpreg2 = (uint32_t)ADC_SampleTime << (3 * ADC_Channel); - /* Set the new channel sample time */ - tmpreg1 |= tmpreg2; - /* Store the new register value */ - ADCx->SMPR2 = tmpreg1; - } - /* For Rank 1 to 6 */ - if (Rank < 7) - { - /* Get the old register value */ - tmpreg1 = ADCx->SQR3; - /* Calculate the mask to clear */ - tmpreg2 = SQR3_SQ_Set << (5 * (Rank - 1)); - /* Clear the old SQx bits for the selected rank */ - tmpreg1 &= ~tmpreg2; - /* Calculate the mask to set */ - tmpreg2 = (uint32_t)ADC_Channel << (5 * (Rank - 1)); - /* Set the SQx bits for the selected rank */ - tmpreg1 |= tmpreg2; - /* Store the new register value */ - ADCx->SQR3 = tmpreg1; - } - /* For Rank 7 to 12 */ - else if (Rank < 13) - { - /* Get the old register value */ - tmpreg1 = ADCx->SQR2; - /* Calculate the mask to clear */ - tmpreg2 = SQR2_SQ_Set << (5 * (Rank - 7)); - /* Clear the old SQx bits for the selected rank */ - tmpreg1 &= ~tmpreg2; - /* Calculate the mask to set */ - tmpreg2 = (uint32_t)ADC_Channel << (5 * (Rank - 7)); - /* Set the SQx bits for the selected rank */ - tmpreg1 |= tmpreg2; - /* Store the new register value */ - ADCx->SQR2 = tmpreg1; - } - /* For Rank 13 to 16 */ - else - { - /* Get the old register value */ - tmpreg1 = ADCx->SQR1; - /* Calculate the mask to clear */ - tmpreg2 = SQR1_SQ_Set << (5 * (Rank - 13)); - /* Clear the old SQx bits for the selected rank */ - tmpreg1 &= ~tmpreg2; - /* Calculate the mask to set */ - tmpreg2 = (uint32_t)ADC_Channel << (5 * (Rank - 13)); - /* Set the SQx bits for the selected rank */ - tmpreg1 |= tmpreg2; - /* Store the new register value */ - ADCx->SQR1 = tmpreg1; - } -} - -/** - * @brief Enables or disables the ADCx conversion through external trigger. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param NewState: new state of the selected ADC external trigger start of conversion. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected ADC conversion on external event */ - ADCx->CR2 |= CR2_EXTTRIG_Set; - } - else - { - /* Disable the selected ADC conversion on external event */ - ADCx->CR2 &= CR2_EXTTRIG_Reset; - } -} - -/** - * @brief Returns the last ADCx conversion result data for regular channel. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @retval The Data conversion value. - */ -uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - /* Return the selected ADC conversion value */ - return (uint16_t) ADCx->DR; -} - -/** - * @brief Returns the last ADC1 and ADC2 conversion result data in dual mode. - * @retval The Data conversion value. - */ -uint32_t ADC_GetDualModeConversionValue(void) -{ - /* Return the dual mode conversion value */ - return (*(__IO uint32_t *) DR_ADDRESS); -} - -/** - * @brief Enables or disables the selected ADC automatic injected group - * conversion after regular one. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param NewState: new state of the selected ADC auto injected conversion - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected ADC automatic injected group conversion */ - ADCx->CR1 |= CR1_JAUTO_Set; - } - else - { - /* Disable the selected ADC automatic injected group conversion */ - ADCx->CR1 &= CR1_JAUTO_Reset; - } -} - -/** - * @brief Enables or disables the discontinuous mode for injected group - * channel for the specified ADC - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param NewState: new state of the selected ADC discontinuous mode - * on injected group channel. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected ADC injected discontinuous mode */ - ADCx->CR1 |= CR1_JDISCEN_Set; - } - else - { - /* Disable the selected ADC injected discontinuous mode */ - ADCx->CR1 &= CR1_JDISCEN_Reset; - } -} - -/** - * @brief Configures the ADCx external trigger for injected channels conversion. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_ExternalTrigInjecConv: specifies the ADC trigger to start injected conversion. - * This parameter can be one of the following values: - * @arg ADC_ExternalTrigInjecConv_T1_TRGO: Timer1 TRGO event selected (for ADC1, ADC2 and ADC3) - * @arg ADC_ExternalTrigInjecConv_T1_CC4: Timer1 capture compare4 selected (for ADC1, ADC2 and ADC3) - * @arg ADC_ExternalTrigInjecConv_T2_TRGO: Timer2 TRGO event selected (for ADC1 and ADC2) - * @arg ADC_ExternalTrigInjecConv_T2_CC1: Timer2 capture compare1 selected (for ADC1 and ADC2) - * @arg ADC_ExternalTrigInjecConv_T3_CC4: Timer3 capture compare4 selected (for ADC1 and ADC2) - * @arg ADC_ExternalTrigInjecConv_T4_TRGO: Timer4 TRGO event selected (for ADC1 and ADC2) - * @arg ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4: External interrupt line 15 or Timer8 - * capture compare4 event selected (for ADC1 and ADC2) - * @arg ADC_ExternalTrigInjecConv_T4_CC3: Timer4 capture compare3 selected (for ADC3 only) - * @arg ADC_ExternalTrigInjecConv_T8_CC2: Timer8 capture compare2 selected (for ADC3 only) - * @arg ADC_ExternalTrigInjecConv_T8_CC4: Timer8 capture compare4 selected (for ADC3 only) - * @arg ADC_ExternalTrigInjecConv_T5_TRGO: Timer5 TRGO event selected (for ADC3 only) - * @arg ADC_ExternalTrigInjecConv_T5_CC4: Timer5 capture compare4 selected (for ADC3 only) - * @arg ADC_ExternalTrigInjecConv_None: Injected conversion started by software and not - * by external trigger (for ADC1, ADC2 and ADC3) - * @retval None - */ -void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_EXT_INJEC_TRIG(ADC_ExternalTrigInjecConv)); - /* Get the old register value */ - tmpreg = ADCx->CR2; - /* Clear the old external event selection for injected group */ - tmpreg &= CR2_JEXTSEL_Reset; - /* Set the external event selection for injected group */ - tmpreg |= ADC_ExternalTrigInjecConv; - /* Store the new register value */ - ADCx->CR2 = tmpreg; -} - -/** - * @brief Enables or disables the ADCx injected channels conversion through - * external trigger - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param NewState: new state of the selected ADC external trigger start of - * injected conversion. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected ADC external event selection for injected group */ - ADCx->CR2 |= CR2_JEXTTRIG_Set; - } - else - { - /* Disable the selected ADC external event selection for injected group */ - ADCx->CR2 &= CR2_JEXTTRIG_Reset; - } -} - -/** - * @brief Enables or disables the selected ADC start of the injected - * channels conversion. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param NewState: new state of the selected ADC software start injected conversion. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected ADC conversion for injected group on external event and start the selected - ADC injected conversion */ - ADCx->CR2 |= CR2_JEXTTRIG_JSWSTART_Set; - } - else - { - /* Disable the selected ADC conversion on external event for injected group and stop the selected - ADC injected conversion */ - ADCx->CR2 &= CR2_JEXTTRIG_JSWSTART_Reset; - } -} - -/** - * @brief Gets the selected ADC Software start injected conversion Status. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @retval The new state of ADC software start injected conversion (SET or RESET). - */ -FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef* ADCx) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - /* Check the status of JSWSTART bit */ - if ((ADCx->CR2 & CR2_JSWSTART_Set) != (uint32_t)RESET) - { - /* JSWSTART bit is set */ - bitstatus = SET; - } - else - { - /* JSWSTART bit is reset */ - bitstatus = RESET; - } - /* Return the JSWSTART bit status */ - return bitstatus; -} - -/** - * @brief Configures for the selected ADC injected channel its corresponding - * rank in the sequencer and its sample time. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_Channel: the ADC channel to configure. - * This parameter can be one of the following values: - * @arg ADC_Channel_0: ADC Channel0 selected - * @arg ADC_Channel_1: ADC Channel1 selected - * @arg ADC_Channel_2: ADC Channel2 selected - * @arg ADC_Channel_3: ADC Channel3 selected - * @arg ADC_Channel_4: ADC Channel4 selected - * @arg ADC_Channel_5: ADC Channel5 selected - * @arg ADC_Channel_6: ADC Channel6 selected - * @arg ADC_Channel_7: ADC Channel7 selected - * @arg ADC_Channel_8: ADC Channel8 selected - * @arg ADC_Channel_9: ADC Channel9 selected - * @arg ADC_Channel_10: ADC Channel10 selected - * @arg ADC_Channel_11: ADC Channel11 selected - * @arg ADC_Channel_12: ADC Channel12 selected - * @arg ADC_Channel_13: ADC Channel13 selected - * @arg ADC_Channel_14: ADC Channel14 selected - * @arg ADC_Channel_15: ADC Channel15 selected - * @arg ADC_Channel_16: ADC Channel16 selected - * @arg ADC_Channel_17: ADC Channel17 selected - * @param Rank: The rank in the injected group sequencer. This parameter must be between 1 and 4. - * @param ADC_SampleTime: The sample time value to be set for the selected channel. - * This parameter can be one of the following values: - * @arg ADC_SampleTime_1Cycles5: Sample time equal to 1.5 cycles - * @arg ADC_SampleTime_7Cycles5: Sample time equal to 7.5 cycles - * @arg ADC_SampleTime_13Cycles5: Sample time equal to 13.5 cycles - * @arg ADC_SampleTime_28Cycles5: Sample time equal to 28.5 cycles - * @arg ADC_SampleTime_41Cycles5: Sample time equal to 41.5 cycles - * @arg ADC_SampleTime_55Cycles5: Sample time equal to 55.5 cycles - * @arg ADC_SampleTime_71Cycles5: Sample time equal to 71.5 cycles - * @arg ADC_SampleTime_239Cycles5: Sample time equal to 239.5 cycles - * @retval None - */ -void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime) -{ - uint32_t tmpreg1 = 0, tmpreg2 = 0, tmpreg3 = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_CHANNEL(ADC_Channel)); - assert_param(IS_ADC_INJECTED_RANK(Rank)); - assert_param(IS_ADC_SAMPLE_TIME(ADC_SampleTime)); - /* if ADC_Channel_10 ... ADC_Channel_17 is selected */ - if (ADC_Channel > ADC_Channel_9) - { - /* Get the old register value */ - tmpreg1 = ADCx->SMPR1; - /* Calculate the mask to clear */ - tmpreg2 = SMPR1_SMP_Set << (3*(ADC_Channel - 10)); - /* Clear the old channel sample time */ - tmpreg1 &= ~tmpreg2; - /* Calculate the mask to set */ - tmpreg2 = (uint32_t)ADC_SampleTime << (3*(ADC_Channel - 10)); - /* Set the new channel sample time */ - tmpreg1 |= tmpreg2; - /* Store the new register value */ - ADCx->SMPR1 = tmpreg1; - } - else /* ADC_Channel include in ADC_Channel_[0..9] */ - { - /* Get the old register value */ - tmpreg1 = ADCx->SMPR2; - /* Calculate the mask to clear */ - tmpreg2 = SMPR2_SMP_Set << (3 * ADC_Channel); - /* Clear the old channel sample time */ - tmpreg1 &= ~tmpreg2; - /* Calculate the mask to set */ - tmpreg2 = (uint32_t)ADC_SampleTime << (3 * ADC_Channel); - /* Set the new channel sample time */ - tmpreg1 |= tmpreg2; - /* Store the new register value */ - ADCx->SMPR2 = tmpreg1; - } - /* Rank configuration */ - /* Get the old register value */ - tmpreg1 = ADCx->JSQR; - /* Get JL value: Number = JL+1 */ - tmpreg3 = (tmpreg1 & JSQR_JL_Set)>> 20; - /* Calculate the mask to clear: ((Rank-1)+(4-JL-1)) */ - tmpreg2 = JSQR_JSQ_Set << (5 * (uint8_t)((Rank + 3) - (tmpreg3 + 1))); - /* Clear the old JSQx bits for the selected rank */ - tmpreg1 &= ~tmpreg2; - /* Calculate the mask to set: ((Rank-1)+(4-JL-1)) */ - tmpreg2 = (uint32_t)ADC_Channel << (5 * (uint8_t)((Rank + 3) - (tmpreg3 + 1))); - /* Set the JSQx bits for the selected rank */ - tmpreg1 |= tmpreg2; - /* Store the new register value */ - ADCx->JSQR = tmpreg1; -} - -/** - * @brief Configures the sequencer length for injected channels - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param Length: The sequencer length. - * This parameter must be a number between 1 to 4. - * @retval None - */ -void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, uint8_t Length) -{ - uint32_t tmpreg1 = 0; - uint32_t tmpreg2 = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_INJECTED_LENGTH(Length)); - - /* Get the old register value */ - tmpreg1 = ADCx->JSQR; - /* Clear the old injected sequnence lenght JL bits */ - tmpreg1 &= JSQR_JL_Reset; - /* Set the injected sequnence lenght JL bits */ - tmpreg2 = Length - 1; - tmpreg1 |= tmpreg2 << 20; - /* Store the new register value */ - ADCx->JSQR = tmpreg1; -} - -/** - * @brief Set the injected channels conversion value offset - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_InjectedChannel: the ADC injected channel to set its offset. - * This parameter can be one of the following values: - * @arg ADC_InjectedChannel_1: Injected Channel1 selected - * @arg ADC_InjectedChannel_2: Injected Channel2 selected - * @arg ADC_InjectedChannel_3: Injected Channel3 selected - * @arg ADC_InjectedChannel_4: Injected Channel4 selected - * @param Offset: the offset value for the selected ADC injected channel - * This parameter must be a 12bit value. - * @retval None - */ -void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset) -{ - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_INJECTED_CHANNEL(ADC_InjectedChannel)); - assert_param(IS_ADC_OFFSET(Offset)); - - tmp = (uint32_t)ADCx; - tmp += ADC_InjectedChannel; - - /* Set the selected injected channel data offset */ - *(__IO uint32_t *) tmp = (uint32_t)Offset; -} - -/** - * @brief Returns the ADC injected channel conversion result - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_InjectedChannel: the converted ADC injected channel. - * This parameter can be one of the following values: - * @arg ADC_InjectedChannel_1: Injected Channel1 selected - * @arg ADC_InjectedChannel_2: Injected Channel2 selected - * @arg ADC_InjectedChannel_3: Injected Channel3 selected - * @arg ADC_InjectedChannel_4: Injected Channel4 selected - * @retval The Data conversion value. - */ -uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel) -{ - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_INJECTED_CHANNEL(ADC_InjectedChannel)); - - tmp = (uint32_t)ADCx; - tmp += ADC_InjectedChannel + JDR_Offset; - - /* Returns the selected injected channel conversion data value */ - return (uint16_t) (*(__IO uint32_t*) tmp); -} - -/** - * @brief Enables or disables the analog watchdog on single/all regular - * or injected channels - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_AnalogWatchdog: the ADC analog watchdog configuration. - * This parameter can be one of the following values: - * @arg ADC_AnalogWatchdog_SingleRegEnable: Analog watchdog on a single regular channel - * @arg ADC_AnalogWatchdog_SingleInjecEnable: Analog watchdog on a single injected channel - * @arg ADC_AnalogWatchdog_SingleRegOrInjecEnable: Analog watchdog on a single regular or injected channel - * @arg ADC_AnalogWatchdog_AllRegEnable: Analog watchdog on all regular channel - * @arg ADC_AnalogWatchdog_AllInjecEnable: Analog watchdog on all injected channel - * @arg ADC_AnalogWatchdog_AllRegAllInjecEnable: Analog watchdog on all regular and injected channels - * @arg ADC_AnalogWatchdog_None: No channel guarded by the analog watchdog - * @retval None - */ -void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_ANALOG_WATCHDOG(ADC_AnalogWatchdog)); - /* Get the old register value */ - tmpreg = ADCx->CR1; - /* Clear AWDEN, AWDENJ and AWDSGL bits */ - tmpreg &= CR1_AWDMode_Reset; - /* Set the analog watchdog enable mode */ - tmpreg |= ADC_AnalogWatchdog; - /* Store the new register value */ - ADCx->CR1 = tmpreg; -} - -/** - * @brief Configures the high and low thresholds of the analog watchdog. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param HighThreshold: the ADC analog watchdog High threshold value. - * This parameter must be a 12bit value. - * @param LowThreshold: the ADC analog watchdog Low threshold value. - * This parameter must be a 12bit value. - * @retval None - */ -void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold, - uint16_t LowThreshold) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_THRESHOLD(HighThreshold)); - assert_param(IS_ADC_THRESHOLD(LowThreshold)); - /* Set the ADCx high threshold */ - ADCx->HTR = HighThreshold; - /* Set the ADCx low threshold */ - ADCx->LTR = LowThreshold; -} - -/** - * @brief Configures the analog watchdog guarded single channel - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_Channel: the ADC channel to configure for the analog watchdog. - * This parameter can be one of the following values: - * @arg ADC_Channel_0: ADC Channel0 selected - * @arg ADC_Channel_1: ADC Channel1 selected - * @arg ADC_Channel_2: ADC Channel2 selected - * @arg ADC_Channel_3: ADC Channel3 selected - * @arg ADC_Channel_4: ADC Channel4 selected - * @arg ADC_Channel_5: ADC Channel5 selected - * @arg ADC_Channel_6: ADC Channel6 selected - * @arg ADC_Channel_7: ADC Channel7 selected - * @arg ADC_Channel_8: ADC Channel8 selected - * @arg ADC_Channel_9: ADC Channel9 selected - * @arg ADC_Channel_10: ADC Channel10 selected - * @arg ADC_Channel_11: ADC Channel11 selected - * @arg ADC_Channel_12: ADC Channel12 selected - * @arg ADC_Channel_13: ADC Channel13 selected - * @arg ADC_Channel_14: ADC Channel14 selected - * @arg ADC_Channel_15: ADC Channel15 selected - * @arg ADC_Channel_16: ADC Channel16 selected - * @arg ADC_Channel_17: ADC Channel17 selected - * @retval None - */ -void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_CHANNEL(ADC_Channel)); - /* Get the old register value */ - tmpreg = ADCx->CR1; - /* Clear the Analog watchdog channel select bits */ - tmpreg &= CR1_AWDCH_Reset; - /* Set the Analog watchdog channel */ - tmpreg |= ADC_Channel; - /* Store the new register value */ - ADCx->CR1 = tmpreg; -} - -/** - * @brief Enables or disables the temperature sensor and Vrefint channel. - * @param NewState: new state of the temperature sensor. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void ADC_TempSensorVrefintCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the temperature sensor and Vrefint channel*/ - ADC1->CR2 |= CR2_TSVREFE_Set; - } - else - { - /* Disable the temperature sensor and Vrefint channel*/ - ADC1->CR2 &= CR2_TSVREFE_Reset; - } -} - -/** - * @brief Checks whether the specified ADC flag is set or not. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_FLAG: specifies the flag to check. - * This parameter can be one of the following values: - * @arg ADC_FLAG_AWD: Analog watchdog flag - * @arg ADC_FLAG_EOC: End of conversion flag - * @arg ADC_FLAG_JEOC: End of injected group conversion flag - * @arg ADC_FLAG_JSTRT: Start of injected group conversion flag - * @arg ADC_FLAG_STRT: Start of regular group conversion flag - * @retval The new state of ADC_FLAG (SET or RESET). - */ -FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_GET_FLAG(ADC_FLAG)); - /* Check the status of the specified ADC flag */ - if ((ADCx->SR & ADC_FLAG) != (uint8_t)RESET) - { - /* ADC_FLAG is set */ - bitstatus = SET; - } - else - { - /* ADC_FLAG is reset */ - bitstatus = RESET; - } - /* Return the ADC_FLAG status */ - return bitstatus; -} - -/** - * @brief Clears the ADCx's pending flags. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_FLAG: specifies the flag to clear. - * This parameter can be any combination of the following values: - * @arg ADC_FLAG_AWD: Analog watchdog flag - * @arg ADC_FLAG_EOC: End of conversion flag - * @arg ADC_FLAG_JEOC: End of injected group conversion flag - * @arg ADC_FLAG_JSTRT: Start of injected group conversion flag - * @arg ADC_FLAG_STRT: Start of regular group conversion flag - * @retval None - */ -void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG) -{ - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_CLEAR_FLAG(ADC_FLAG)); - /* Clear the selected ADC flags */ - ADCx->SR = ~(uint32_t)ADC_FLAG; -} - -/** - * @brief Checks whether the specified ADC interrupt has occurred or not. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_IT: specifies the ADC interrupt source to check. - * This parameter can be one of the following values: - * @arg ADC_IT_EOC: End of conversion interrupt mask - * @arg ADC_IT_AWD: Analog watchdog interrupt mask - * @arg ADC_IT_JEOC: End of injected conversion interrupt mask - * @retval The new state of ADC_IT (SET or RESET). - */ -ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT) -{ - ITStatus bitstatus = RESET; - uint32_t itmask = 0, enablestatus = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_GET_IT(ADC_IT)); - /* Get the ADC IT index */ - itmask = ADC_IT >> 8; - /* Get the ADC_IT enable bit status */ - enablestatus = (ADCx->CR1 & (uint8_t)ADC_IT) ; - /* Check the status of the specified ADC interrupt */ - if (((ADCx->SR & itmask) != (uint32_t)RESET) && enablestatus) - { - /* ADC_IT is set */ - bitstatus = SET; - } - else - { - /* ADC_IT is reset */ - bitstatus = RESET; - } - /* Return the ADC_IT status */ - return bitstatus; -} - -/** - * @brief Clears the ADCx's interrupt pending bits. - * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. - * @param ADC_IT: specifies the ADC interrupt pending bit to clear. - * This parameter can be any combination of the following values: - * @arg ADC_IT_EOC: End of conversion interrupt mask - * @arg ADC_IT_AWD: Analog watchdog interrupt mask - * @arg ADC_IT_JEOC: End of injected conversion interrupt mask - * @retval None - */ -void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT) -{ - uint8_t itmask = 0; - /* Check the parameters */ - assert_param(IS_ADC_ALL_PERIPH(ADCx)); - assert_param(IS_ADC_IT(ADC_IT)); - /* Get the ADC IT index */ - itmask = (uint8_t)(ADC_IT >> 8); - /* Clear the selected ADC interrupt pending bits */ - ADCx->SR = ~(uint32_t)itmask; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c deleted file mode 100644 index 3004b9ef..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c +++ /dev/null @@ -1,308 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_bkp.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the BKP firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_bkp.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup BKP - * @brief BKP driver modules - * @{ - */ - -/** @defgroup BKP_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup BKP_Private_Defines - * @{ - */ - -/* ------------ BKP registers bit address in the alias region --------------- */ -#define BKP_OFFSET (BKP_BASE - PERIPH_BASE) - -/* --- CR Register ----*/ - -/* Alias word address of TPAL bit */ -#define CR_OFFSET (BKP_OFFSET + 0x30) -#define TPAL_BitNumber 0x01 -#define CR_TPAL_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (TPAL_BitNumber * 4)) - -/* Alias word address of TPE bit */ -#define TPE_BitNumber 0x00 -#define CR_TPE_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (TPE_BitNumber * 4)) - -/* --- CSR Register ---*/ - -/* Alias word address of TPIE bit */ -#define CSR_OFFSET (BKP_OFFSET + 0x34) -#define TPIE_BitNumber 0x02 -#define CSR_TPIE_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TPIE_BitNumber * 4)) - -/* Alias word address of TIF bit */ -#define TIF_BitNumber 0x09 -#define CSR_TIF_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TIF_BitNumber * 4)) - -/* Alias word address of TEF bit */ -#define TEF_BitNumber 0x08 -#define CSR_TEF_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TEF_BitNumber * 4)) - -/* ---------------------- BKP registers bit mask ------------------------ */ - -/* RTCCR register bit mask */ -#define RTCCR_CAL_MASK ((uint16_t)0xFF80) -#define RTCCR_MASK ((uint16_t)0xFC7F) - -/** - * @} - */ - - -/** @defgroup BKP_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup BKP_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup BKP_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup BKP_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the BKP peripheral registers to their default reset values. - * @param None - * @retval None - */ -void BKP_DeInit(void) -{ - RCC_BackupResetCmd(ENABLE); - RCC_BackupResetCmd(DISABLE); -} - -/** - * @brief Configures the Tamper Pin active level. - * @param BKP_TamperPinLevel: specifies the Tamper Pin active level. - * This parameter can be one of the following values: - * @arg BKP_TamperPinLevel_High: Tamper pin active on high level - * @arg BKP_TamperPinLevel_Low: Tamper pin active on low level - * @retval None - */ -void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel) -{ - /* Check the parameters */ - assert_param(IS_BKP_TAMPER_PIN_LEVEL(BKP_TamperPinLevel)); - *(__IO uint32_t *) CR_TPAL_BB = BKP_TamperPinLevel; -} - -/** - * @brief Enables or disables the Tamper Pin activation. - * @param NewState: new state of the Tamper Pin activation. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void BKP_TamperPinCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) CR_TPE_BB = (uint32_t)NewState; -} - -/** - * @brief Enables or disables the Tamper Pin Interrupt. - * @param NewState: new state of the Tamper Pin Interrupt. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void BKP_ITConfig(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) CSR_TPIE_BB = (uint32_t)NewState; -} - -/** - * @brief Select the RTC output source to output on the Tamper pin. - * @param BKP_RTCOutputSource: specifies the RTC output source. - * This parameter can be one of the following values: - * @arg BKP_RTCOutputSource_None: no RTC output on the Tamper pin. - * @arg BKP_RTCOutputSource_CalibClock: output the RTC clock with frequency - * divided by 64 on the Tamper pin. - * @arg BKP_RTCOutputSource_Alarm: output the RTC Alarm pulse signal on - * the Tamper pin. - * @arg BKP_RTCOutputSource_Second: output the RTC Second pulse signal on - * the Tamper pin. - * @retval None - */ -void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource) -{ - uint16_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_BKP_RTC_OUTPUT_SOURCE(BKP_RTCOutputSource)); - tmpreg = BKP->RTCCR; - /* Clear CCO, ASOE and ASOS bits */ - tmpreg &= RTCCR_MASK; - - /* Set CCO, ASOE and ASOS bits according to BKP_RTCOutputSource value */ - tmpreg |= BKP_RTCOutputSource; - /* Store the new value */ - BKP->RTCCR = tmpreg; -} - -/** - * @brief Sets RTC Clock Calibration value. - * @param CalibrationValue: specifies the RTC Clock Calibration value. - * This parameter must be a number between 0 and 0x7F. - * @retval None - */ -void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue) -{ - uint16_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_BKP_CALIBRATION_VALUE(CalibrationValue)); - tmpreg = BKP->RTCCR; - /* Clear CAL[6:0] bits */ - tmpreg &= RTCCR_CAL_MASK; - /* Set CAL[6:0] bits according to CalibrationValue value */ - tmpreg |= CalibrationValue; - /* Store the new value */ - BKP->RTCCR = tmpreg; -} - -/** - * @brief Writes user data to the specified Data Backup Register. - * @param BKP_DR: specifies the Data Backup Register. - * This parameter can be BKP_DRx where x:[1, 42] - * @param Data: data to write - * @retval None - */ -void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data) -{ - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_BKP_DR(BKP_DR)); - - tmp = (uint32_t)BKP_BASE; - tmp += BKP_DR; - - *(__IO uint32_t *) tmp = Data; -} - -/** - * @brief Reads data from the specified Data Backup Register. - * @param BKP_DR: specifies the Data Backup Register. - * This parameter can be BKP_DRx where x:[1, 42] - * @retval The content of the specified Data Backup Register - */ -uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR) -{ - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_BKP_DR(BKP_DR)); - - tmp = (uint32_t)BKP_BASE; - tmp += BKP_DR; - - return (*(__IO uint16_t *) tmp); -} - -/** - * @brief Checks whether the Tamper Pin Event flag is set or not. - * @param None - * @retval The new state of the Tamper Pin Event flag (SET or RESET). - */ -FlagStatus BKP_GetFlagStatus(void) -{ - return (FlagStatus)(*(__IO uint32_t *) CSR_TEF_BB); -} - -/** - * @brief Clears Tamper Pin Event pending flag. - * @param None - * @retval None - */ -void BKP_ClearFlag(void) -{ - /* Set CTE bit to clear Tamper Pin Event flag */ - BKP->CSR |= BKP_CSR_CTE; -} - -/** - * @brief Checks whether the Tamper Pin Interrupt has occurred or not. - * @param None - * @retval The new state of the Tamper Pin Interrupt (SET or RESET). - */ -ITStatus BKP_GetITStatus(void) -{ - return (ITStatus)(*(__IO uint32_t *) CSR_TIF_BB); -} - -/** - * @brief Clears Tamper Pin Interrupt pending bit. - * @param None - * @retval None - */ -void BKP_ClearITPendingBit(void) -{ - /* Set CTI bit to clear Tamper Pin Interrupt pending bit */ - BKP->CSR |= BKP_CSR_CTI; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c deleted file mode 100644 index 607d6924..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c +++ /dev/null @@ -1,1415 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_can.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the CAN firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_can.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup CAN - * @brief CAN driver modules - * @{ - */ - -/** @defgroup CAN_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup CAN_Private_Defines - * @{ - */ - -/* CAN Master Control Register bits */ - -#define MCR_DBF ((uint32_t)0x00010000) /* software master reset */ - -/* CAN Mailbox Transmit Request */ -#define TMIDxR_TXRQ ((uint32_t)0x00000001) /* Transmit mailbox request */ - -/* CAN Filter Master Register bits */ -#define FMR_FINIT ((uint32_t)0x00000001) /* Filter init mode */ - -/* Time out for INAK bit */ -#define INAK_TIMEOUT ((uint32_t)0x0000FFFF) -/* Time out for SLAK bit */ -#define SLAK_TIMEOUT ((uint32_t)0x0000FFFF) - - - -/* Flags in TSR register */ -#define CAN_FLAGS_TSR ((uint32_t)0x08000000) -/* Flags in RF1R register */ -#define CAN_FLAGS_RF1R ((uint32_t)0x04000000) -/* Flags in RF0R register */ -#define CAN_FLAGS_RF0R ((uint32_t)0x02000000) -/* Flags in MSR register */ -#define CAN_FLAGS_MSR ((uint32_t)0x01000000) -/* Flags in ESR register */ -#define CAN_FLAGS_ESR ((uint32_t)0x00F00000) - -/* Mailboxes definition */ -#define CAN_TXMAILBOX_0 ((uint8_t)0x00) -#define CAN_TXMAILBOX_1 ((uint8_t)0x01) -#define CAN_TXMAILBOX_2 ((uint8_t)0x02) - - - -#define CAN_MODE_MASK ((uint32_t) 0x00000003) -/** - * @} - */ - -/** @defgroup CAN_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup CAN_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup CAN_Private_FunctionPrototypes - * @{ - */ - -static ITStatus CheckITStatus(uint32_t CAN_Reg, uint32_t It_Bit); - -/** - * @} - */ - -/** @defgroup CAN_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the CAN peripheral registers to their default reset values. - * @param CANx: where x can be 1 or 2 to select the CAN peripheral. - * @retval None. - */ -void CAN_DeInit(CAN_TypeDef* CANx) -{ - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - - if (CANx == CAN1) - { - /* Enable CAN1 reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN1, ENABLE); - /* Release CAN1 from reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN1, DISABLE); - } - else - { - /* Enable CAN2 reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN2, ENABLE); - /* Release CAN2 from reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN2, DISABLE); - } -} - -/** - * @brief Initializes the CAN peripheral according to the specified - * parameters in the CAN_InitStruct. - * @param CANx: where x can be 1 or 2 to to select the CAN - * peripheral. - * @param CAN_InitStruct: pointer to a CAN_InitTypeDef structure that - * contains the configuration information for the - * CAN peripheral. - * @retval Constant indicates initialization succeed which will be - * CAN_InitStatus_Failed or CAN_InitStatus_Success. - */ -uint8_t CAN_Init(CAN_TypeDef* CANx, CAN_InitTypeDef* CAN_InitStruct) -{ - uint8_t InitStatus = CAN_InitStatus_Failed; - uint32_t wait_ack = 0x00000000; - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_TTCM)); - assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_ABOM)); - assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_AWUM)); - assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_NART)); - assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_RFLM)); - assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_TXFP)); - assert_param(IS_CAN_MODE(CAN_InitStruct->CAN_Mode)); - assert_param(IS_CAN_SJW(CAN_InitStruct->CAN_SJW)); - assert_param(IS_CAN_BS1(CAN_InitStruct->CAN_BS1)); - assert_param(IS_CAN_BS2(CAN_InitStruct->CAN_BS2)); - assert_param(IS_CAN_PRESCALER(CAN_InitStruct->CAN_Prescaler)); - - /* Exit from sleep mode */ - CANx->MCR &= (~(uint32_t)CAN_MCR_SLEEP); - - /* Request initialisation */ - CANx->MCR |= CAN_MCR_INRQ ; - - /* Wait the acknowledge */ - while (((CANx->MSR & CAN_MSR_INAK) != CAN_MSR_INAK) && (wait_ack != INAK_TIMEOUT)) - { - wait_ack++; - } - - /* Check acknowledge */ - if ((CANx->MSR & CAN_MSR_INAK) != CAN_MSR_INAK) - { - InitStatus = CAN_InitStatus_Failed; - } - else - { - /* Set the time triggered communication mode */ - if (CAN_InitStruct->CAN_TTCM == ENABLE) - { - CANx->MCR |= CAN_MCR_TTCM; - } - else - { - CANx->MCR &= ~(uint32_t)CAN_MCR_TTCM; - } - - /* Set the automatic bus-off management */ - if (CAN_InitStruct->CAN_ABOM == ENABLE) - { - CANx->MCR |= CAN_MCR_ABOM; - } - else - { - CANx->MCR &= ~(uint32_t)CAN_MCR_ABOM; - } - - /* Set the automatic wake-up mode */ - if (CAN_InitStruct->CAN_AWUM == ENABLE) - { - CANx->MCR |= CAN_MCR_AWUM; - } - else - { - CANx->MCR &= ~(uint32_t)CAN_MCR_AWUM; - } - - /* Set the no automatic retransmission */ - if (CAN_InitStruct->CAN_NART == ENABLE) - { - CANx->MCR |= CAN_MCR_NART; - } - else - { - CANx->MCR &= ~(uint32_t)CAN_MCR_NART; - } - - /* Set the receive FIFO locked mode */ - if (CAN_InitStruct->CAN_RFLM == ENABLE) - { - CANx->MCR |= CAN_MCR_RFLM; - } - else - { - CANx->MCR &= ~(uint32_t)CAN_MCR_RFLM; - } - - /* Set the transmit FIFO priority */ - if (CAN_InitStruct->CAN_TXFP == ENABLE) - { - CANx->MCR |= CAN_MCR_TXFP; - } - else - { - CANx->MCR &= ~(uint32_t)CAN_MCR_TXFP; - } - - /* Set the bit timing register */ - CANx->BTR = (uint32_t)((uint32_t)CAN_InitStruct->CAN_Mode << 30) | \ - ((uint32_t)CAN_InitStruct->CAN_SJW << 24) | \ - ((uint32_t)CAN_InitStruct->CAN_BS1 << 16) | \ - ((uint32_t)CAN_InitStruct->CAN_BS2 << 20) | \ - ((uint32_t)CAN_InitStruct->CAN_Prescaler - 1); - - /* Request leave initialisation */ - CANx->MCR &= ~(uint32_t)CAN_MCR_INRQ; - - /* Wait the acknowledge */ - wait_ack = 0; - - while (((CANx->MSR & CAN_MSR_INAK) == CAN_MSR_INAK) && (wait_ack != INAK_TIMEOUT)) - { - wait_ack++; - } - - /* ...and check acknowledged */ - if ((CANx->MSR & CAN_MSR_INAK) == CAN_MSR_INAK) - { - InitStatus = CAN_InitStatus_Failed; - } - else - { - InitStatus = CAN_InitStatus_Success ; - } - } - - /* At this step, return the status of initialization */ - return InitStatus; -} - -/** - * @brief Initializes the CAN peripheral according to the specified - * parameters in the CAN_FilterInitStruct. - * @param CAN_FilterInitStruct: pointer to a CAN_FilterInitTypeDef - * structure that contains the configuration - * information. - * @retval None. - */ -void CAN_FilterInit(CAN_FilterInitTypeDef* CAN_FilterInitStruct) -{ - uint32_t filter_number_bit_pos = 0; - /* Check the parameters */ - assert_param(IS_CAN_FILTER_NUMBER(CAN_FilterInitStruct->CAN_FilterNumber)); - assert_param(IS_CAN_FILTER_MODE(CAN_FilterInitStruct->CAN_FilterMode)); - assert_param(IS_CAN_FILTER_SCALE(CAN_FilterInitStruct->CAN_FilterScale)); - assert_param(IS_CAN_FILTER_FIFO(CAN_FilterInitStruct->CAN_FilterFIFOAssignment)); - assert_param(IS_FUNCTIONAL_STATE(CAN_FilterInitStruct->CAN_FilterActivation)); - - filter_number_bit_pos = ((uint32_t)1) << CAN_FilterInitStruct->CAN_FilterNumber; - - /* Initialisation mode for the filter */ - CAN1->FMR |= FMR_FINIT; - - /* Filter Deactivation */ - CAN1->FA1R &= ~(uint32_t)filter_number_bit_pos; - - /* Filter Scale */ - if (CAN_FilterInitStruct->CAN_FilterScale == CAN_FilterScale_16bit) - { - /* 16-bit scale for the filter */ - CAN1->FS1R &= ~(uint32_t)filter_number_bit_pos; - - /* First 16-bit identifier and First 16-bit mask */ - /* Or First 16-bit identifier and Second 16-bit identifier */ - CAN1->sFilterRegister[CAN_FilterInitStruct->CAN_FilterNumber].FR1 = - ((0x0000FFFF & (uint32_t)CAN_FilterInitStruct->CAN_FilterMaskIdLow) << 16) | - (0x0000FFFF & (uint32_t)CAN_FilterInitStruct->CAN_FilterIdLow); - - /* Second 16-bit identifier and Second 16-bit mask */ - /* Or Third 16-bit identifier and Fourth 16-bit identifier */ - CAN1->sFilterRegister[CAN_FilterInitStruct->CAN_FilterNumber].FR2 = - ((0x0000FFFF & (uint32_t)CAN_FilterInitStruct->CAN_FilterMaskIdHigh) << 16) | - (0x0000FFFF & (uint32_t)CAN_FilterInitStruct->CAN_FilterIdHigh); - } - - if (CAN_FilterInitStruct->CAN_FilterScale == CAN_FilterScale_32bit) - { - /* 32-bit scale for the filter */ - CAN1->FS1R |= filter_number_bit_pos; - /* 32-bit identifier or First 32-bit identifier */ - CAN1->sFilterRegister[CAN_FilterInitStruct->CAN_FilterNumber].FR1 = - ((0x0000FFFF & (uint32_t)CAN_FilterInitStruct->CAN_FilterIdHigh) << 16) | - (0x0000FFFF & (uint32_t)CAN_FilterInitStruct->CAN_FilterIdLow); - /* 32-bit mask or Second 32-bit identifier */ - CAN1->sFilterRegister[CAN_FilterInitStruct->CAN_FilterNumber].FR2 = - ((0x0000FFFF & (uint32_t)CAN_FilterInitStruct->CAN_FilterMaskIdHigh) << 16) | - (0x0000FFFF & (uint32_t)CAN_FilterInitStruct->CAN_FilterMaskIdLow); - } - - /* Filter Mode */ - if (CAN_FilterInitStruct->CAN_FilterMode == CAN_FilterMode_IdMask) - { - /*Id/Mask mode for the filter*/ - CAN1->FM1R &= ~(uint32_t)filter_number_bit_pos; - } - else /* CAN_FilterInitStruct->CAN_FilterMode == CAN_FilterMode_IdList */ - { - /*Identifier list mode for the filter*/ - CAN1->FM1R |= (uint32_t)filter_number_bit_pos; - } - - /* Filter FIFO assignment */ - if (CAN_FilterInitStruct->CAN_FilterFIFOAssignment == CAN_Filter_FIFO0) - { - /* FIFO 0 assignation for the filter */ - CAN1->FFA1R &= ~(uint32_t)filter_number_bit_pos; - } - - if (CAN_FilterInitStruct->CAN_FilterFIFOAssignment == CAN_Filter_FIFO1) - { - /* FIFO 1 assignation for the filter */ - CAN1->FFA1R |= (uint32_t)filter_number_bit_pos; - } - - /* Filter activation */ - if (CAN_FilterInitStruct->CAN_FilterActivation == ENABLE) - { - CAN1->FA1R |= filter_number_bit_pos; - } - - /* Leave the initialisation mode for the filter */ - CAN1->FMR &= ~FMR_FINIT; -} - -/** - * @brief Fills each CAN_InitStruct member with its default value. - * @param CAN_InitStruct: pointer to a CAN_InitTypeDef structure which - * will be initialized. - * @retval None. - */ -void CAN_StructInit(CAN_InitTypeDef* CAN_InitStruct) -{ - /* Reset CAN init structure parameters values */ - - /* Initialize the time triggered communication mode */ - CAN_InitStruct->CAN_TTCM = DISABLE; - - /* Initialize the automatic bus-off management */ - CAN_InitStruct->CAN_ABOM = DISABLE; - - /* Initialize the automatic wake-up mode */ - CAN_InitStruct->CAN_AWUM = DISABLE; - - /* Initialize the no automatic retransmission */ - CAN_InitStruct->CAN_NART = DISABLE; - - /* Initialize the receive FIFO locked mode */ - CAN_InitStruct->CAN_RFLM = DISABLE; - - /* Initialize the transmit FIFO priority */ - CAN_InitStruct->CAN_TXFP = DISABLE; - - /* Initialize the CAN_Mode member */ - CAN_InitStruct->CAN_Mode = CAN_Mode_Normal; - - /* Initialize the CAN_SJW member */ - CAN_InitStruct->CAN_SJW = CAN_SJW_1tq; - - /* Initialize the CAN_BS1 member */ - CAN_InitStruct->CAN_BS1 = CAN_BS1_4tq; - - /* Initialize the CAN_BS2 member */ - CAN_InitStruct->CAN_BS2 = CAN_BS2_3tq; - - /* Initialize the CAN_Prescaler member */ - CAN_InitStruct->CAN_Prescaler = 1; -} - -/** - * @brief Select the start bank filter for slave CAN. - * @note This function applies only to STM32 Connectivity line devices. - * @param CAN_BankNumber: Select the start slave bank filter from 1..27. - * @retval None. - */ -void CAN_SlaveStartBank(uint8_t CAN_BankNumber) -{ - /* Check the parameters */ - assert_param(IS_CAN_BANKNUMBER(CAN_BankNumber)); - - /* Enter Initialisation mode for the filter */ - CAN1->FMR |= FMR_FINIT; - - /* Select the start slave bank */ - CAN1->FMR &= (uint32_t)0xFFFFC0F1 ; - CAN1->FMR |= (uint32_t)(CAN_BankNumber)<<8; - - /* Leave Initialisation mode for the filter */ - CAN1->FMR &= ~FMR_FINIT; -} - -/** - * @brief Enables or disables the DBG Freeze for CAN. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param NewState: new state of the CAN peripheral. This parameter can - * be: ENABLE or DISABLE. - * @retval None. - */ -void CAN_DBGFreeze(CAN_TypeDef* CANx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable Debug Freeze */ - CANx->MCR |= MCR_DBF; - } - else - { - /* Disable Debug Freeze */ - CANx->MCR &= ~MCR_DBF; - } -} - - -/** - * @brief Enables or disabes the CAN Time TriggerOperation communication mode. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param NewState : Mode new state , can be one of @ref FunctionalState. - * @note when enabled, Time stamp (TIME[15:0]) value is sent in the last - * two data bytes of the 8-byte message: TIME[7:0] in data byte 6 - * and TIME[15:8] in data byte 7 - * @note DLC must be programmed as 8 in order Time Stamp (2 bytes) to be - * sent over the CAN bus. - * @retval None - */ -void CAN_TTComModeCmd(CAN_TypeDef* CANx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the TTCM mode */ - CANx->MCR |= CAN_MCR_TTCM; - - /* Set TGT bits */ - CANx->sTxMailBox[0].TDTR |= ((uint32_t)CAN_TDT0R_TGT); - CANx->sTxMailBox[1].TDTR |= ((uint32_t)CAN_TDT1R_TGT); - CANx->sTxMailBox[2].TDTR |= ((uint32_t)CAN_TDT2R_TGT); - } - else - { - /* Disable the TTCM mode */ - CANx->MCR &= (uint32_t)(~(uint32_t)CAN_MCR_TTCM); - - /* Reset TGT bits */ - CANx->sTxMailBox[0].TDTR &= ((uint32_t)~CAN_TDT0R_TGT); - CANx->sTxMailBox[1].TDTR &= ((uint32_t)~CAN_TDT1R_TGT); - CANx->sTxMailBox[2].TDTR &= ((uint32_t)~CAN_TDT2R_TGT); - } -} -/** - * @brief Initiates the transmission of a message. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param TxMessage: pointer to a structure which contains CAN Id, CAN - * DLC and CAN data. - * @retval The number of the mailbox that is used for transmission - * or CAN_TxStatus_NoMailBox if there is no empty mailbox. - */ -uint8_t CAN_Transmit(CAN_TypeDef* CANx, CanTxMsg* TxMessage) -{ - uint8_t transmit_mailbox = 0; - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_IDTYPE(TxMessage->IDE)); - assert_param(IS_CAN_RTR(TxMessage->RTR)); - assert_param(IS_CAN_DLC(TxMessage->DLC)); - - /* Select one empty transmit mailbox */ - if ((CANx->TSR&CAN_TSR_TME0) == CAN_TSR_TME0) - { - transmit_mailbox = 0; - } - else if ((CANx->TSR&CAN_TSR_TME1) == CAN_TSR_TME1) - { - transmit_mailbox = 1; - } - else if ((CANx->TSR&CAN_TSR_TME2) == CAN_TSR_TME2) - { - transmit_mailbox = 2; - } - else - { - transmit_mailbox = CAN_TxStatus_NoMailBox; - } - - if (transmit_mailbox != CAN_TxStatus_NoMailBox) - { - /* Set up the Id */ - CANx->sTxMailBox[transmit_mailbox].TIR &= TMIDxR_TXRQ; - if (TxMessage->IDE == CAN_Id_Standard) - { - assert_param(IS_CAN_STDID(TxMessage->StdId)); - CANx->sTxMailBox[transmit_mailbox].TIR |= ((TxMessage->StdId << 21) | \ - TxMessage->RTR); - } - else - { - assert_param(IS_CAN_EXTID(TxMessage->ExtId)); - CANx->sTxMailBox[transmit_mailbox].TIR |= ((TxMessage->ExtId << 3) | \ - TxMessage->IDE | \ - TxMessage->RTR); - } - - /* Set up the DLC */ - TxMessage->DLC &= (uint8_t)0x0000000F; - CANx->sTxMailBox[transmit_mailbox].TDTR &= (uint32_t)0xFFFFFFF0; - CANx->sTxMailBox[transmit_mailbox].TDTR |= TxMessage->DLC; - - /* Set up the data field */ - CANx->sTxMailBox[transmit_mailbox].TDLR = (((uint32_t)TxMessage->Data[3] << 24) | - ((uint32_t)TxMessage->Data[2] << 16) | - ((uint32_t)TxMessage->Data[1] << 8) | - ((uint32_t)TxMessage->Data[0])); - CANx->sTxMailBox[transmit_mailbox].TDHR = (((uint32_t)TxMessage->Data[7] << 24) | - ((uint32_t)TxMessage->Data[6] << 16) | - ((uint32_t)TxMessage->Data[5] << 8) | - ((uint32_t)TxMessage->Data[4])); - /* Request transmission */ - CANx->sTxMailBox[transmit_mailbox].TIR |= TMIDxR_TXRQ; - } - return transmit_mailbox; -} - -/** - * @brief Checks the transmission of a message. - * @param CANx: where x can be 1 or 2 to to select the - * CAN peripheral. - * @param TransmitMailbox: the number of the mailbox that is used for - * transmission. - * @retval CAN_TxStatus_Ok if the CAN driver transmits the message, CAN_TxStatus_Failed - * in an other case. - */ -uint8_t CAN_TransmitStatus(CAN_TypeDef* CANx, uint8_t TransmitMailbox) -{ - uint32_t state = 0; - - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_TRANSMITMAILBOX(TransmitMailbox)); - - switch (TransmitMailbox) - { - case (CAN_TXMAILBOX_0): - state = CANx->TSR & (CAN_TSR_RQCP0 | CAN_TSR_TXOK0 | CAN_TSR_TME0); - break; - case (CAN_TXMAILBOX_1): - state = CANx->TSR & (CAN_TSR_RQCP1 | CAN_TSR_TXOK1 | CAN_TSR_TME1); - break; - case (CAN_TXMAILBOX_2): - state = CANx->TSR & (CAN_TSR_RQCP2 | CAN_TSR_TXOK2 | CAN_TSR_TME2); - break; - default: - state = CAN_TxStatus_Failed; - break; - } - switch (state) - { - /* transmit pending */ - case (0x0): state = CAN_TxStatus_Pending; - break; - /* transmit failed */ - case (CAN_TSR_RQCP0 | CAN_TSR_TME0): state = CAN_TxStatus_Failed; - break; - case (CAN_TSR_RQCP1 | CAN_TSR_TME1): state = CAN_TxStatus_Failed; - break; - case (CAN_TSR_RQCP2 | CAN_TSR_TME2): state = CAN_TxStatus_Failed; - break; - /* transmit succeeded */ - case (CAN_TSR_RQCP0 | CAN_TSR_TXOK0 | CAN_TSR_TME0):state = CAN_TxStatus_Ok; - break; - case (CAN_TSR_RQCP1 | CAN_TSR_TXOK1 | CAN_TSR_TME1):state = CAN_TxStatus_Ok; - break; - case (CAN_TSR_RQCP2 | CAN_TSR_TXOK2 | CAN_TSR_TME2):state = CAN_TxStatus_Ok; - break; - default: state = CAN_TxStatus_Failed; - break; - } - return (uint8_t) state; -} - -/** - * @brief Cancels a transmit request. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param Mailbox: Mailbox number. - * @retval None. - */ -void CAN_CancelTransmit(CAN_TypeDef* CANx, uint8_t Mailbox) -{ - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_TRANSMITMAILBOX(Mailbox)); - /* abort transmission */ - switch (Mailbox) - { - case (CAN_TXMAILBOX_0): CANx->TSR |= CAN_TSR_ABRQ0; - break; - case (CAN_TXMAILBOX_1): CANx->TSR |= CAN_TSR_ABRQ1; - break; - case (CAN_TXMAILBOX_2): CANx->TSR |= CAN_TSR_ABRQ2; - break; - default: - break; - } -} - - -/** - * @brief Receives a message. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param FIFONumber: Receive FIFO number, CAN_FIFO0 or CAN_FIFO1. - * @param RxMessage: pointer to a structure receive message which contains - * CAN Id, CAN DLC, CAN datas and FMI number. - * @retval None. - */ -void CAN_Receive(CAN_TypeDef* CANx, uint8_t FIFONumber, CanRxMsg* RxMessage) -{ - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_FIFO(FIFONumber)); - /* Get the Id */ - RxMessage->IDE = (uint8_t)0x04 & CANx->sFIFOMailBox[FIFONumber].RIR; - if (RxMessage->IDE == CAN_Id_Standard) - { - RxMessage->StdId = (uint32_t)0x000007FF & (CANx->sFIFOMailBox[FIFONumber].RIR >> 21); - } - else - { - RxMessage->ExtId = (uint32_t)0x1FFFFFFF & (CANx->sFIFOMailBox[FIFONumber].RIR >> 3); - } - - RxMessage->RTR = (uint8_t)0x02 & CANx->sFIFOMailBox[FIFONumber].RIR; - /* Get the DLC */ - RxMessage->DLC = (uint8_t)0x0F & CANx->sFIFOMailBox[FIFONumber].RDTR; - /* Get the FMI */ - RxMessage->FMI = (uint8_t)0xFF & (CANx->sFIFOMailBox[FIFONumber].RDTR >> 8); - /* Get the data field */ - RxMessage->Data[0] = (uint8_t)0xFF & CANx->sFIFOMailBox[FIFONumber].RDLR; - RxMessage->Data[1] = (uint8_t)0xFF & (CANx->sFIFOMailBox[FIFONumber].RDLR >> 8); - RxMessage->Data[2] = (uint8_t)0xFF & (CANx->sFIFOMailBox[FIFONumber].RDLR >> 16); - RxMessage->Data[3] = (uint8_t)0xFF & (CANx->sFIFOMailBox[FIFONumber].RDLR >> 24); - RxMessage->Data[4] = (uint8_t)0xFF & CANx->sFIFOMailBox[FIFONumber].RDHR; - RxMessage->Data[5] = (uint8_t)0xFF & (CANx->sFIFOMailBox[FIFONumber].RDHR >> 8); - RxMessage->Data[6] = (uint8_t)0xFF & (CANx->sFIFOMailBox[FIFONumber].RDHR >> 16); - RxMessage->Data[7] = (uint8_t)0xFF & (CANx->sFIFOMailBox[FIFONumber].RDHR >> 24); - /* Release the FIFO */ - /* Release FIFO0 */ - if (FIFONumber == CAN_FIFO0) - { - CANx->RF0R |= CAN_RF0R_RFOM0; - } - /* Release FIFO1 */ - else /* FIFONumber == CAN_FIFO1 */ - { - CANx->RF1R |= CAN_RF1R_RFOM1; - } -} - -/** - * @brief Releases the specified FIFO. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param FIFONumber: FIFO to release, CAN_FIFO0 or CAN_FIFO1. - * @retval None. - */ -void CAN_FIFORelease(CAN_TypeDef* CANx, uint8_t FIFONumber) -{ - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_FIFO(FIFONumber)); - /* Release FIFO0 */ - if (FIFONumber == CAN_FIFO0) - { - CANx->RF0R |= CAN_RF0R_RFOM0; - } - /* Release FIFO1 */ - else /* FIFONumber == CAN_FIFO1 */ - { - CANx->RF1R |= CAN_RF1R_RFOM1; - } -} - -/** - * @brief Returns the number of pending messages. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param FIFONumber: Receive FIFO number, CAN_FIFO0 or CAN_FIFO1. - * @retval NbMessage : which is the number of pending message. - */ -uint8_t CAN_MessagePending(CAN_TypeDef* CANx, uint8_t FIFONumber) -{ - uint8_t message_pending=0; - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_FIFO(FIFONumber)); - if (FIFONumber == CAN_FIFO0) - { - message_pending = (uint8_t)(CANx->RF0R&(uint32_t)0x03); - } - else if (FIFONumber == CAN_FIFO1) - { - message_pending = (uint8_t)(CANx->RF1R&(uint32_t)0x03); - } - else - { - message_pending = 0; - } - return message_pending; -} - - -/** - * @brief Select the CAN Operation mode. - * @param CAN_OperatingMode : CAN Operating Mode. This parameter can be one - * of @ref CAN_OperatingMode_TypeDef enumeration. - * @retval status of the requested mode which can be - * - CAN_ModeStatus_Failed CAN failed entering the specific mode - * - CAN_ModeStatus_Success CAN Succeed entering the specific mode - - */ -uint8_t CAN_OperatingModeRequest(CAN_TypeDef* CANx, uint8_t CAN_OperatingMode) -{ - uint8_t status = CAN_ModeStatus_Failed; - - /* Timeout for INAK or also for SLAK bits*/ - uint32_t timeout = INAK_TIMEOUT; - - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_OPERATING_MODE(CAN_OperatingMode)); - - if (CAN_OperatingMode == CAN_OperatingMode_Initialization) - { - /* Request initialisation */ - CANx->MCR = (uint32_t)((CANx->MCR & (uint32_t)(~(uint32_t)CAN_MCR_SLEEP)) | CAN_MCR_INRQ); - - /* Wait the acknowledge */ - while (((CANx->MSR & CAN_MODE_MASK) != CAN_MSR_INAK) && (timeout != 0)) - { - timeout--; - } - if ((CANx->MSR & CAN_MODE_MASK) != CAN_MSR_INAK) - { - status = CAN_ModeStatus_Failed; - } - else - { - status = CAN_ModeStatus_Success; - } - } - else if (CAN_OperatingMode == CAN_OperatingMode_Normal) - { - /* Request leave initialisation and sleep mode and enter Normal mode */ - CANx->MCR &= (uint32_t)(~(CAN_MCR_SLEEP|CAN_MCR_INRQ)); - - /* Wait the acknowledge */ - while (((CANx->MSR & CAN_MODE_MASK) != 0) && (timeout!=0)) - { - timeout--; - } - if ((CANx->MSR & CAN_MODE_MASK) != 0) - { - status = CAN_ModeStatus_Failed; - } - else - { - status = CAN_ModeStatus_Success; - } - } - else if (CAN_OperatingMode == CAN_OperatingMode_Sleep) - { - /* Request Sleep mode */ - CANx->MCR = (uint32_t)((CANx->MCR & (uint32_t)(~(uint32_t)CAN_MCR_INRQ)) | CAN_MCR_SLEEP); - - /* Wait the acknowledge */ - while (((CANx->MSR & CAN_MODE_MASK) != CAN_MSR_SLAK) && (timeout!=0)) - { - timeout--; - } - if ((CANx->MSR & CAN_MODE_MASK) != CAN_MSR_SLAK) - { - status = CAN_ModeStatus_Failed; - } - else - { - status = CAN_ModeStatus_Success; - } - } - else - { - status = CAN_ModeStatus_Failed; - } - - return (uint8_t) status; -} - -/** - * @brief Enters the low power mode. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @retval status: CAN_Sleep_Ok if sleep entered, CAN_Sleep_Failed in an - * other case. - */ -uint8_t CAN_Sleep(CAN_TypeDef* CANx) -{ - uint8_t sleepstatus = CAN_Sleep_Failed; - - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - - /* Request Sleep mode */ - CANx->MCR = (((CANx->MCR) & (uint32_t)(~(uint32_t)CAN_MCR_INRQ)) | CAN_MCR_SLEEP); - - /* Sleep mode status */ - if ((CANx->MSR & (CAN_MSR_SLAK|CAN_MSR_INAK)) == CAN_MSR_SLAK) - { - /* Sleep mode not entered */ - sleepstatus = CAN_Sleep_Ok; - } - /* return sleep mode status */ - return (uint8_t)sleepstatus; -} - -/** - * @brief Wakes the CAN up. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @retval status: CAN_WakeUp_Ok if sleep mode left, CAN_WakeUp_Failed in an - * other case. - */ -uint8_t CAN_WakeUp(CAN_TypeDef* CANx) -{ - uint32_t wait_slak = SLAK_TIMEOUT; - uint8_t wakeupstatus = CAN_WakeUp_Failed; - - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - - /* Wake up request */ - CANx->MCR &= ~(uint32_t)CAN_MCR_SLEEP; - - /* Sleep mode status */ - while(((CANx->MSR & CAN_MSR_SLAK) == CAN_MSR_SLAK)&&(wait_slak!=0x00)) - { - wait_slak--; - } - if((CANx->MSR & CAN_MSR_SLAK) != CAN_MSR_SLAK) - { - /* wake up done : Sleep mode exited */ - wakeupstatus = CAN_WakeUp_Ok; - } - /* return wakeup status */ - return (uint8_t)wakeupstatus; -} - - -/** - * @brief Returns the CANx's last error code (LEC). - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @retval CAN_ErrorCode: specifies the Error code : - * - CAN_ERRORCODE_NoErr No Error - * - CAN_ERRORCODE_StuffErr Stuff Error - * - CAN_ERRORCODE_FormErr Form Error - * - CAN_ERRORCODE_ACKErr Acknowledgment Error - * - CAN_ERRORCODE_BitRecessiveErr Bit Recessive Error - * - CAN_ERRORCODE_BitDominantErr Bit Dominant Error - * - CAN_ERRORCODE_CRCErr CRC Error - * - CAN_ERRORCODE_SoftwareSetErr Software Set Error - */ - -uint8_t CAN_GetLastErrorCode(CAN_TypeDef* CANx) -{ - uint8_t errorcode=0; - - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - - /* Get the error code*/ - errorcode = (((uint8_t)CANx->ESR) & (uint8_t)CAN_ESR_LEC); - - /* Return the error code*/ - return errorcode; -} -/** - * @brief Returns the CANx Receive Error Counter (REC). - * @note In case of an error during reception, this counter is incremented - * by 1 or by 8 depending on the error condition as defined by the CAN - * standard. After every successful reception, the counter is - * decremented by 1 or reset to 120 if its value was higher than 128. - * When the counter value exceeds 127, the CAN controller enters the - * error passive state. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @retval CAN Receive Error Counter. - */ -uint8_t CAN_GetReceiveErrorCounter(CAN_TypeDef* CANx) -{ - uint8_t counter=0; - - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - - /* Get the Receive Error Counter*/ - counter = (uint8_t)((CANx->ESR & CAN_ESR_REC)>> 24); - - /* Return the Receive Error Counter*/ - return counter; -} - - -/** - * @brief Returns the LSB of the 9-bit CANx Transmit Error Counter(TEC). - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @retval LSB of the 9-bit CAN Transmit Error Counter. - */ -uint8_t CAN_GetLSBTransmitErrorCounter(CAN_TypeDef* CANx) -{ - uint8_t counter=0; - - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - - /* Get the LSB of the 9-bit CANx Transmit Error Counter(TEC) */ - counter = (uint8_t)((CANx->ESR & CAN_ESR_TEC)>> 16); - - /* Return the LSB of the 9-bit CANx Transmit Error Counter(TEC) */ - return counter; -} - - -/** - * @brief Enables or disables the specified CANx interrupts. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param CAN_IT: specifies the CAN interrupt sources to be enabled or disabled. - * This parameter can be: - * - CAN_IT_TME, - * - CAN_IT_FMP0, - * - CAN_IT_FF0, - * - CAN_IT_FOV0, - * - CAN_IT_FMP1, - * - CAN_IT_FF1, - * - CAN_IT_FOV1, - * - CAN_IT_EWG, - * - CAN_IT_EPV, - * - CAN_IT_LEC, - * - CAN_IT_ERR, - * - CAN_IT_WKU or - * - CAN_IT_SLK. - * @param NewState: new state of the CAN interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None. - */ -void CAN_ITConfig(CAN_TypeDef* CANx, uint32_t CAN_IT, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_IT(CAN_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the selected CANx interrupt */ - CANx->IER |= CAN_IT; - } - else - { - /* Disable the selected CANx interrupt */ - CANx->IER &= ~CAN_IT; - } -} -/** - * @brief Checks whether the specified CAN flag is set or not. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param CAN_FLAG: specifies the flag to check. - * This parameter can be one of the following flags: - * - CAN_FLAG_EWG - * - CAN_FLAG_EPV - * - CAN_FLAG_BOF - * - CAN_FLAG_RQCP0 - * - CAN_FLAG_RQCP1 - * - CAN_FLAG_RQCP2 - * - CAN_FLAG_FMP1 - * - CAN_FLAG_FF1 - * - CAN_FLAG_FOV1 - * - CAN_FLAG_FMP0 - * - CAN_FLAG_FF0 - * - CAN_FLAG_FOV0 - * - CAN_FLAG_WKU - * - CAN_FLAG_SLAK - * - CAN_FLAG_LEC - * @retval The new state of CAN_FLAG (SET or RESET). - */ -FlagStatus CAN_GetFlagStatus(CAN_TypeDef* CANx, uint32_t CAN_FLAG) -{ - FlagStatus bitstatus = RESET; - - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_GET_FLAG(CAN_FLAG)); - - - if((CAN_FLAG & CAN_FLAGS_ESR) != (uint32_t)RESET) - { - /* Check the status of the specified CAN flag */ - if ((CANx->ESR & (CAN_FLAG & 0x000FFFFF)) != (uint32_t)RESET) - { - /* CAN_FLAG is set */ - bitstatus = SET; - } - else - { - /* CAN_FLAG is reset */ - bitstatus = RESET; - } - } - else if((CAN_FLAG & CAN_FLAGS_MSR) != (uint32_t)RESET) - { - /* Check the status of the specified CAN flag */ - if ((CANx->MSR & (CAN_FLAG & 0x000FFFFF)) != (uint32_t)RESET) - { - /* CAN_FLAG is set */ - bitstatus = SET; - } - else - { - /* CAN_FLAG is reset */ - bitstatus = RESET; - } - } - else if((CAN_FLAG & CAN_FLAGS_TSR) != (uint32_t)RESET) - { - /* Check the status of the specified CAN flag */ - if ((CANx->TSR & (CAN_FLAG & 0x000FFFFF)) != (uint32_t)RESET) - { - /* CAN_FLAG is set */ - bitstatus = SET; - } - else - { - /* CAN_FLAG is reset */ - bitstatus = RESET; - } - } - else if((CAN_FLAG & CAN_FLAGS_RF0R) != (uint32_t)RESET) - { - /* Check the status of the specified CAN flag */ - if ((CANx->RF0R & (CAN_FLAG & 0x000FFFFF)) != (uint32_t)RESET) - { - /* CAN_FLAG is set */ - bitstatus = SET; - } - else - { - /* CAN_FLAG is reset */ - bitstatus = RESET; - } - } - else /* If(CAN_FLAG & CAN_FLAGS_RF1R != (uint32_t)RESET) */ - { - /* Check the status of the specified CAN flag */ - if ((uint32_t)(CANx->RF1R & (CAN_FLAG & 0x000FFFFF)) != (uint32_t)RESET) - { - /* CAN_FLAG is set */ - bitstatus = SET; - } - else - { - /* CAN_FLAG is reset */ - bitstatus = RESET; - } - } - /* Return the CAN_FLAG status */ - return bitstatus; -} - -/** - * @brief Clears the CAN's pending flags. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param CAN_FLAG: specifies the flag to clear. - * This parameter can be one of the following flags: - * - CAN_FLAG_RQCP0 - * - CAN_FLAG_RQCP1 - * - CAN_FLAG_RQCP2 - * - CAN_FLAG_FF1 - * - CAN_FLAG_FOV1 - * - CAN_FLAG_FF0 - * - CAN_FLAG_FOV0 - * - CAN_FLAG_WKU - * - CAN_FLAG_SLAK - * - CAN_FLAG_LEC - * @retval None. - */ -void CAN_ClearFlag(CAN_TypeDef* CANx, uint32_t CAN_FLAG) -{ - uint32_t flagtmp=0; - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_CLEAR_FLAG(CAN_FLAG)); - - if (CAN_FLAG == CAN_FLAG_LEC) /* ESR register */ - { - /* Clear the selected CAN flags */ - CANx->ESR = (uint32_t)RESET; - } - else /* MSR or TSR or RF0R or RF1R */ - { - flagtmp = CAN_FLAG & 0x000FFFFF; - - if ((CAN_FLAG & CAN_FLAGS_RF0R)!=(uint32_t)RESET) - { - /* Receive Flags */ - CANx->RF0R = (uint32_t)(flagtmp); - } - else if ((CAN_FLAG & CAN_FLAGS_RF1R)!=(uint32_t)RESET) - { - /* Receive Flags */ - CANx->RF1R = (uint32_t)(flagtmp); - } - else if ((CAN_FLAG & CAN_FLAGS_TSR)!=(uint32_t)RESET) - { - /* Transmit Flags */ - CANx->TSR = (uint32_t)(flagtmp); - } - else /* If((CAN_FLAG & CAN_FLAGS_MSR)!=(uint32_t)RESET) */ - { - /* Operating mode Flags */ - CANx->MSR = (uint32_t)(flagtmp); - } - } -} - -/** - * @brief Checks whether the specified CANx interrupt has occurred or not. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param CAN_IT: specifies the CAN interrupt source to check. - * This parameter can be one of the following flags: - * - CAN_IT_TME - * - CAN_IT_FMP0 - * - CAN_IT_FF0 - * - CAN_IT_FOV0 - * - CAN_IT_FMP1 - * - CAN_IT_FF1 - * - CAN_IT_FOV1 - * - CAN_IT_WKU - * - CAN_IT_SLK - * - CAN_IT_EWG - * - CAN_IT_EPV - * - CAN_IT_BOF - * - CAN_IT_LEC - * - CAN_IT_ERR - * @retval The current state of CAN_IT (SET or RESET). - */ -ITStatus CAN_GetITStatus(CAN_TypeDef* CANx, uint32_t CAN_IT) -{ - ITStatus itstatus = RESET; - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_IT(CAN_IT)); - - /* check the enable interrupt bit */ - if((CANx->IER & CAN_IT) != RESET) - { - /* in case the Interrupt is enabled, .... */ - switch (CAN_IT) - { - case CAN_IT_TME: - /* Check CAN_TSR_RQCPx bits */ - itstatus = CheckITStatus(CANx->TSR, CAN_TSR_RQCP0|CAN_TSR_RQCP1|CAN_TSR_RQCP2); - break; - case CAN_IT_FMP0: - /* Check CAN_RF0R_FMP0 bit */ - itstatus = CheckITStatus(CANx->RF0R, CAN_RF0R_FMP0); - break; - case CAN_IT_FF0: - /* Check CAN_RF0R_FULL0 bit */ - itstatus = CheckITStatus(CANx->RF0R, CAN_RF0R_FULL0); - break; - case CAN_IT_FOV0: - /* Check CAN_RF0R_FOVR0 bit */ - itstatus = CheckITStatus(CANx->RF0R, CAN_RF0R_FOVR0); - break; - case CAN_IT_FMP1: - /* Check CAN_RF1R_FMP1 bit */ - itstatus = CheckITStatus(CANx->RF1R, CAN_RF1R_FMP1); - break; - case CAN_IT_FF1: - /* Check CAN_RF1R_FULL1 bit */ - itstatus = CheckITStatus(CANx->RF1R, CAN_RF1R_FULL1); - break; - case CAN_IT_FOV1: - /* Check CAN_RF1R_FOVR1 bit */ - itstatus = CheckITStatus(CANx->RF1R, CAN_RF1R_FOVR1); - break; - case CAN_IT_WKU: - /* Check CAN_MSR_WKUI bit */ - itstatus = CheckITStatus(CANx->MSR, CAN_MSR_WKUI); - break; - case CAN_IT_SLK: - /* Check CAN_MSR_SLAKI bit */ - itstatus = CheckITStatus(CANx->MSR, CAN_MSR_SLAKI); - break; - case CAN_IT_EWG: - /* Check CAN_ESR_EWGF bit */ - itstatus = CheckITStatus(CANx->ESR, CAN_ESR_EWGF); - break; - case CAN_IT_EPV: - /* Check CAN_ESR_EPVF bit */ - itstatus = CheckITStatus(CANx->ESR, CAN_ESR_EPVF); - break; - case CAN_IT_BOF: - /* Check CAN_ESR_BOFF bit */ - itstatus = CheckITStatus(CANx->ESR, CAN_ESR_BOFF); - break; - case CAN_IT_LEC: - /* Check CAN_ESR_LEC bit */ - itstatus = CheckITStatus(CANx->ESR, CAN_ESR_LEC); - break; - case CAN_IT_ERR: - /* Check CAN_MSR_ERRI bit */ - itstatus = CheckITStatus(CANx->MSR, CAN_MSR_ERRI); - break; - default : - /* in case of error, return RESET */ - itstatus = RESET; - break; - } - } - else - { - /* in case the Interrupt is not enabled, return RESET */ - itstatus = RESET; - } - - /* Return the CAN_IT status */ - return itstatus; -} - -/** - * @brief Clears the CANx's interrupt pending bits. - * @param CANx: where x can be 1 or 2 to to select the CAN peripheral. - * @param CAN_IT: specifies the interrupt pending bit to clear. - * - CAN_IT_TME - * - CAN_IT_FF0 - * - CAN_IT_FOV0 - * - CAN_IT_FF1 - * - CAN_IT_FOV1 - * - CAN_IT_WKU - * - CAN_IT_SLK - * - CAN_IT_EWG - * - CAN_IT_EPV - * - CAN_IT_BOF - * - CAN_IT_LEC - * - CAN_IT_ERR - * @retval None. - */ -void CAN_ClearITPendingBit(CAN_TypeDef* CANx, uint32_t CAN_IT) -{ - /* Check the parameters */ - assert_param(IS_CAN_ALL_PERIPH(CANx)); - assert_param(IS_CAN_CLEAR_IT(CAN_IT)); - - switch (CAN_IT) - { - case CAN_IT_TME: - /* Clear CAN_TSR_RQCPx (rc_w1)*/ - CANx->TSR = CAN_TSR_RQCP0|CAN_TSR_RQCP1|CAN_TSR_RQCP2; - break; - case CAN_IT_FF0: - /* Clear CAN_RF0R_FULL0 (rc_w1)*/ - CANx->RF0R = CAN_RF0R_FULL0; - break; - case CAN_IT_FOV0: - /* Clear CAN_RF0R_FOVR0 (rc_w1)*/ - CANx->RF0R = CAN_RF0R_FOVR0; - break; - case CAN_IT_FF1: - /* Clear CAN_RF1R_FULL1 (rc_w1)*/ - CANx->RF1R = CAN_RF1R_FULL1; - break; - case CAN_IT_FOV1: - /* Clear CAN_RF1R_FOVR1 (rc_w1)*/ - CANx->RF1R = CAN_RF1R_FOVR1; - break; - case CAN_IT_WKU: - /* Clear CAN_MSR_WKUI (rc_w1)*/ - CANx->MSR = CAN_MSR_WKUI; - break; - case CAN_IT_SLK: - /* Clear CAN_MSR_SLAKI (rc_w1)*/ - CANx->MSR = CAN_MSR_SLAKI; - break; - case CAN_IT_EWG: - /* Clear CAN_MSR_ERRI (rc_w1) */ - CANx->MSR = CAN_MSR_ERRI; - /* Note : the corresponding Flag is cleared by hardware depending - of the CAN Bus status*/ - break; - case CAN_IT_EPV: - /* Clear CAN_MSR_ERRI (rc_w1) */ - CANx->MSR = CAN_MSR_ERRI; - /* Note : the corresponding Flag is cleared by hardware depending - of the CAN Bus status*/ - break; - case CAN_IT_BOF: - /* Clear CAN_MSR_ERRI (rc_w1) */ - CANx->MSR = CAN_MSR_ERRI; - /* Note : the corresponding Flag is cleared by hardware depending - of the CAN Bus status*/ - break; - case CAN_IT_LEC: - /* Clear LEC bits */ - CANx->ESR = RESET; - /* Clear CAN_MSR_ERRI (rc_w1) */ - CANx->MSR = CAN_MSR_ERRI; - break; - case CAN_IT_ERR: - /*Clear LEC bits */ - CANx->ESR = RESET; - /* Clear CAN_MSR_ERRI (rc_w1) */ - CANx->MSR = CAN_MSR_ERRI; - /* Note : BOFF, EPVF and EWGF Flags are cleared by hardware depending - of the CAN Bus status*/ - break; - default : - break; - } -} - -/** - * @brief Checks whether the CAN interrupt has occurred or not. - * @param CAN_Reg: specifies the CAN interrupt register to check. - * @param It_Bit: specifies the interrupt source bit to check. - * @retval The new state of the CAN Interrupt (SET or RESET). - */ -static ITStatus CheckITStatus(uint32_t CAN_Reg, uint32_t It_Bit) -{ - ITStatus pendingbitstatus = RESET; - - if ((CAN_Reg & It_Bit) != (uint32_t)RESET) - { - /* CAN_IT is set */ - pendingbitstatus = SET; - } - else - { - /* CAN_IT is reset */ - pendingbitstatus = RESET; - } - return pendingbitstatus; -} - - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c deleted file mode 100644 index 08b501a0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c +++ /dev/null @@ -1,433 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_cec.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the CEC firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_cec.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup CEC - * @brief CEC driver modules - * @{ - */ - -/** @defgroup CEC_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - - -/** @defgroup CEC_Private_Defines - * @{ - */ - -/* ------------ CEC registers bit address in the alias region ----------- */ -#define CEC_OFFSET (CEC_BASE - PERIPH_BASE) - -/* --- CFGR Register ---*/ - -/* Alias word address of PE bit */ -#define CFGR_OFFSET (CEC_OFFSET + 0x00) -#define PE_BitNumber 0x00 -#define CFGR_PE_BB (PERIPH_BB_BASE + (CFGR_OFFSET * 32) + (PE_BitNumber * 4)) - -/* Alias word address of IE bit */ -#define IE_BitNumber 0x01 -#define CFGR_IE_BB (PERIPH_BB_BASE + (CFGR_OFFSET * 32) + (IE_BitNumber * 4)) - -/* --- CSR Register ---*/ - -/* Alias word address of TSOM bit */ -#define CSR_OFFSET (CEC_OFFSET + 0x10) -#define TSOM_BitNumber 0x00 -#define CSR_TSOM_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TSOM_BitNumber * 4)) - -/* Alias word address of TEOM bit */ -#define TEOM_BitNumber 0x01 -#define CSR_TEOM_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TEOM_BitNumber * 4)) - -#define CFGR_CLEAR_Mask (uint8_t)(0xF3) /* CFGR register Mask */ -#define FLAG_Mask ((uint32_t)0x00FFFFFF) /* CEC FLAG mask */ - -/** - * @} - */ - - -/** @defgroup CEC_Private_Macros - * @{ - */ - -/** - * @} - */ - - -/** @defgroup CEC_Private_Variables - * @{ - */ - -/** - * @} - */ - - -/** @defgroup CEC_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - - -/** @defgroup CEC_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the CEC peripheral registers to their default reset - * values. - * @param None - * @retval None - */ -void CEC_DeInit(void) -{ - /* Enable CEC reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_CEC, ENABLE); - /* Release CEC from reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_CEC, DISABLE); -} - - -/** - * @brief Initializes the CEC peripheral according to the specified - * parameters in the CEC_InitStruct. - * @param CEC_InitStruct: pointer to an CEC_InitTypeDef structure that - * contains the configuration information for the specified - * CEC peripheral. - * @retval None - */ -void CEC_Init(CEC_InitTypeDef* CEC_InitStruct) -{ - uint16_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_CEC_BIT_TIMING_ERROR_MODE(CEC_InitStruct->CEC_BitTimingMode)); - assert_param(IS_CEC_BIT_PERIOD_ERROR_MODE(CEC_InitStruct->CEC_BitPeriodMode)); - - /*---------------------------- CEC CFGR Configuration -----------------*/ - /* Get the CEC CFGR value */ - tmpreg = CEC->CFGR; - - /* Clear BTEM and BPEM bits */ - tmpreg &= CFGR_CLEAR_Mask; - - /* Configure CEC: Bit Timing Error and Bit Period Error */ - tmpreg |= (uint16_t)(CEC_InitStruct->CEC_BitTimingMode | CEC_InitStruct->CEC_BitPeriodMode); - - /* Write to CEC CFGR register*/ - CEC->CFGR = tmpreg; - -} - -/** - * @brief Enables or disables the specified CEC peripheral. - * @param NewState: new state of the CEC peripheral. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void CEC_Cmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) CFGR_PE_BB = (uint32_t)NewState; - - if(NewState == DISABLE) - { - /* Wait until the PE bit is cleared by hardware (Idle Line detected) */ - while((CEC->CFGR & CEC_CFGR_PE) != (uint32_t)RESET) - { - } - } -} - -/** - * @brief Enables or disables the CEC interrupt. - * @param NewState: new state of the CEC interrupt. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void CEC_ITConfig(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) CFGR_IE_BB = (uint32_t)NewState; -} - -/** - * @brief Defines the Own Address of the CEC device. - * @param CEC_OwnAddress: The CEC own address - * @retval None - */ -void CEC_OwnAddressConfig(uint8_t CEC_OwnAddress) -{ - /* Check the parameters */ - assert_param(IS_CEC_ADDRESS(CEC_OwnAddress)); - - /* Set the CEC own address */ - CEC->OAR = CEC_OwnAddress; -} - -/** - * @brief Sets the CEC prescaler value. - * @param CEC_Prescaler: CEC prescaler new value - * @retval None - */ -void CEC_SetPrescaler(uint16_t CEC_Prescaler) -{ - /* Check the parameters */ - assert_param(IS_CEC_PRESCALER(CEC_Prescaler)); - - /* Set the Prescaler value*/ - CEC->PRES = CEC_Prescaler; -} - -/** - * @brief Transmits single data through the CEC peripheral. - * @param Data: the data to transmit. - * @retval None - */ -void CEC_SendDataByte(uint8_t Data) -{ - /* Transmit Data */ - CEC->TXD = Data ; -} - - -/** - * @brief Returns the most recent received data by the CEC peripheral. - * @param None - * @retval The received data. - */ -uint8_t CEC_ReceiveDataByte(void) -{ - /* Receive Data */ - return (uint8_t)(CEC->RXD); -} - -/** - * @brief Starts a new message. - * @param None - * @retval None - */ -void CEC_StartOfMessage(void) -{ - /* Starts of new message */ - *(__IO uint32_t *) CSR_TSOM_BB = (uint32_t)0x1; -} - -/** - * @brief Transmits message with or without an EOM bit. - * @param NewState: new state of the CEC Tx End Of Message. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void CEC_EndOfMessageCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - /* The data byte will be transmitted with or without an EOM bit*/ - *(__IO uint32_t *) CSR_TEOM_BB = (uint32_t)NewState; -} - -/** - * @brief Gets the CEC flag status - * @param CEC_FLAG: specifies the CEC flag to check. - * This parameter can be one of the following values: - * @arg CEC_FLAG_BTE: Bit Timing Error - * @arg CEC_FLAG_BPE: Bit Period Error - * @arg CEC_FLAG_RBTFE: Rx Block Transfer Finished Error - * @arg CEC_FLAG_SBE: Start Bit Error - * @arg CEC_FLAG_ACKE: Block Acknowledge Error - * @arg CEC_FLAG_LINE: Line Error - * @arg CEC_FLAG_TBTFE: Tx Block Transfer Finished Error - * @arg CEC_FLAG_TEOM: Tx End Of Message - * @arg CEC_FLAG_TERR: Tx Error - * @arg CEC_FLAG_TBTRF: Tx Byte Transfer Request or Block Transfer Finished - * @arg CEC_FLAG_RSOM: Rx Start Of Message - * @arg CEC_FLAG_REOM: Rx End Of Message - * @arg CEC_FLAG_RERR: Rx Error - * @arg CEC_FLAG_RBTF: Rx Byte/Block Transfer Finished - * @retval The new state of CEC_FLAG (SET or RESET) - */ -FlagStatus CEC_GetFlagStatus(uint32_t CEC_FLAG) -{ - FlagStatus bitstatus = RESET; - uint32_t cecreg = 0, cecbase = 0; - - /* Check the parameters */ - assert_param(IS_CEC_GET_FLAG(CEC_FLAG)); - - /* Get the CEC peripheral base address */ - cecbase = (uint32_t)(CEC_BASE); - - /* Read flag register index */ - cecreg = CEC_FLAG >> 28; - - /* Get bit[23:0] of the flag */ - CEC_FLAG &= FLAG_Mask; - - if(cecreg != 0) - { - /* Flag in CEC ESR Register */ - CEC_FLAG = (uint32_t)(CEC_FLAG >> 16); - - /* Get the CEC ESR register address */ - cecbase += 0xC; - } - else - { - /* Get the CEC CSR register address */ - cecbase += 0x10; - } - - if(((*(__IO uint32_t *)cecbase) & CEC_FLAG) != (uint32_t)RESET) - { - /* CEC_FLAG is set */ - bitstatus = SET; - } - else - { - /* CEC_FLAG is reset */ - bitstatus = RESET; - } - - /* Return the CEC_FLAG status */ - return bitstatus; -} - -/** - * @brief Clears the CEC's pending flags. - * @param CEC_FLAG: specifies the flag to clear. - * This parameter can be any combination of the following values: - * @arg CEC_FLAG_TERR: Tx Error - * @arg CEC_FLAG_TBTRF: Tx Byte Transfer Request or Block Transfer Finished - * @arg CEC_FLAG_RSOM: Rx Start Of Message - * @arg CEC_FLAG_REOM: Rx End Of Message - * @arg CEC_FLAG_RERR: Rx Error - * @arg CEC_FLAG_RBTF: Rx Byte/Block Transfer Finished - * @retval None - */ -void CEC_ClearFlag(uint32_t CEC_FLAG) -{ - uint32_t tmp = 0x0; - - /* Check the parameters */ - assert_param(IS_CEC_CLEAR_FLAG(CEC_FLAG)); - - tmp = CEC->CSR & 0x2; - - /* Clear the selected CEC flags */ - CEC->CSR &= (uint32_t)(((~(uint32_t)CEC_FLAG) & 0xFFFFFFFC) | tmp); -} - -/** - * @brief Checks whether the specified CEC interrupt has occurred or not. - * @param CEC_IT: specifies the CEC interrupt source to check. - * This parameter can be one of the following values: - * @arg CEC_IT_TERR: Tx Error - * @arg CEC_IT_TBTF: Tx Block Transfer Finished - * @arg CEC_IT_RERR: Rx Error - * @arg CEC_IT_RBTF: Rx Block Transfer Finished - * @retval The new state of CEC_IT (SET or RESET). - */ -ITStatus CEC_GetITStatus(uint8_t CEC_IT) -{ - ITStatus bitstatus = RESET; - uint32_t enablestatus = 0; - - /* Check the parameters */ - assert_param(IS_CEC_GET_IT(CEC_IT)); - - /* Get the CEC IT enable bit status */ - enablestatus = (CEC->CFGR & (uint8_t)CEC_CFGR_IE) ; - - /* Check the status of the specified CEC interrupt */ - if (((CEC->CSR & CEC_IT) != (uint32_t)RESET) && enablestatus) - { - /* CEC_IT is set */ - bitstatus = SET; - } - else - { - /* CEC_IT is reset */ - bitstatus = RESET; - } - /* Return the CEC_IT status */ - return bitstatus; -} - -/** - * @brief Clears the CEC's interrupt pending bits. - * @param CEC_IT: specifies the CEC interrupt pending bit to clear. - * This parameter can be any combination of the following values: - * @arg CEC_IT_TERR: Tx Error - * @arg CEC_IT_TBTF: Tx Block Transfer Finished - * @arg CEC_IT_RERR: Rx Error - * @arg CEC_IT_RBTF: Rx Block Transfer Finished - * @retval None - */ -void CEC_ClearITPendingBit(uint16_t CEC_IT) -{ - uint32_t tmp = 0x0; - - /* Check the parameters */ - assert_param(IS_CEC_GET_IT(CEC_IT)); - - tmp = CEC->CSR & 0x2; - - /* Clear the selected CEC interrupt pending bits */ - CEC->CSR &= (uint32_t)(((~(uint32_t)CEC_IT) & 0xFFFFFFFC) | tmp); -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c deleted file mode 100644 index ef0c047d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c +++ /dev/null @@ -1,160 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_crc.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the CRC firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_crc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup CRC - * @brief CRC driver modules - * @{ - */ - -/** @defgroup CRC_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup CRC_Private_Defines - * @{ - */ - -/** - * @} - */ - -/** @defgroup CRC_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup CRC_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup CRC_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup CRC_Private_Functions - * @{ - */ - -/** - * @brief Resets the CRC Data register (DR). - * @param None - * @retval None - */ -void CRC_ResetDR(void) -{ - /* Reset CRC generator */ - CRC->CR = CRC_CR_RESET; -} - -/** - * @brief Computes the 32-bit CRC of a given data word(32-bit). - * @param Data: data word(32-bit) to compute its CRC - * @retval 32-bit CRC - */ -uint32_t CRC_CalcCRC(uint32_t Data) -{ - CRC->DR = Data; - - return (CRC->DR); -} - -/** - * @brief Computes the 32-bit CRC of a given buffer of data word(32-bit). - * @param pBuffer: pointer to the buffer containing the data to be computed - * @param BufferLength: length of the buffer to be computed - * @retval 32-bit CRC - */ -uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength) -{ - uint32_t index = 0; - - for(index = 0; index < BufferLength; index++) - { - CRC->DR = pBuffer[index]; - } - return (CRC->DR); -} - -/** - * @brief Returns the current CRC value. - * @param None - * @retval 32-bit CRC - */ -uint32_t CRC_GetCRC(void) -{ - return (CRC->DR); -} - -/** - * @brief Stores a 8-bit data in the Independent Data(ID) register. - * @param IDValue: 8-bit value to be stored in the ID register - * @retval None - */ -void CRC_SetIDRegister(uint8_t IDValue) -{ - CRC->IDR = IDValue; -} - -/** - * @brief Returns the 8-bit data stored in the Independent Data(ID) register - * @param None - * @retval 8-bit value of the ID register - */ -uint8_t CRC_GetIDRegister(void) -{ - return (CRC->IDR); -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c deleted file mode 100644 index 025b8e28..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c +++ /dev/null @@ -1,571 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_dac.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the DAC firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_dac.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup DAC - * @brief DAC driver modules - * @{ - */ - -/** @defgroup DAC_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup DAC_Private_Defines - * @{ - */ - -/* CR register Mask */ -#define CR_CLEAR_MASK ((uint32_t)0x00000FFE) - -/* DAC Dual Channels SWTRIG masks */ -#define DUAL_SWTRIG_SET ((uint32_t)0x00000003) -#define DUAL_SWTRIG_RESET ((uint32_t)0xFFFFFFFC) - -/* DHR registers offsets */ -#define DHR12R1_OFFSET ((uint32_t)0x00000008) -#define DHR12R2_OFFSET ((uint32_t)0x00000014) -#define DHR12RD_OFFSET ((uint32_t)0x00000020) - -/* DOR register offset */ -#define DOR_OFFSET ((uint32_t)0x0000002C) -/** - * @} - */ - -/** @defgroup DAC_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup DAC_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup DAC_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup DAC_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the DAC peripheral registers to their default reset values. - * @param None - * @retval None - */ -void DAC_DeInit(void) -{ - /* Enable DAC reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, ENABLE); - /* Release DAC from reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, DISABLE); -} - -/** - * @brief Initializes the DAC peripheral according to the specified - * parameters in the DAC_InitStruct. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param DAC_InitStruct: pointer to a DAC_InitTypeDef structure that - * contains the configuration information for the specified DAC channel. - * @retval None - */ -void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct) -{ - uint32_t tmpreg1 = 0, tmpreg2 = 0; - /* Check the DAC parameters */ - assert_param(IS_DAC_TRIGGER(DAC_InitStruct->DAC_Trigger)); - assert_param(IS_DAC_GENERATE_WAVE(DAC_InitStruct->DAC_WaveGeneration)); - assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(DAC_InitStruct->DAC_LFSRUnmask_TriangleAmplitude)); - assert_param(IS_DAC_OUTPUT_BUFFER_STATE(DAC_InitStruct->DAC_OutputBuffer)); -/*---------------------------- DAC CR Configuration --------------------------*/ - /* Get the DAC CR value */ - tmpreg1 = DAC->CR; - /* Clear BOFFx, TENx, TSELx, WAVEx and MAMPx bits */ - tmpreg1 &= ~(CR_CLEAR_MASK << DAC_Channel); - /* Configure for the selected DAC channel: buffer output, trigger, wave generation, - mask/amplitude for wave generation */ - /* Set TSELx and TENx bits according to DAC_Trigger value */ - /* Set WAVEx bits according to DAC_WaveGeneration value */ - /* Set MAMPx bits according to DAC_LFSRUnmask_TriangleAmplitude value */ - /* Set BOFFx bit according to DAC_OutputBuffer value */ - tmpreg2 = (DAC_InitStruct->DAC_Trigger | DAC_InitStruct->DAC_WaveGeneration | - DAC_InitStruct->DAC_LFSRUnmask_TriangleAmplitude | DAC_InitStruct->DAC_OutputBuffer); - /* Calculate CR register value depending on DAC_Channel */ - tmpreg1 |= tmpreg2 << DAC_Channel; - /* Write to DAC CR */ - DAC->CR = tmpreg1; -} - -/** - * @brief Fills each DAC_InitStruct member with its default value. - * @param DAC_InitStruct : pointer to a DAC_InitTypeDef structure which will - * be initialized. - * @retval None - */ -void DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct) -{ -/*--------------- Reset DAC init structure parameters values -----------------*/ - /* Initialize the DAC_Trigger member */ - DAC_InitStruct->DAC_Trigger = DAC_Trigger_None; - /* Initialize the DAC_WaveGeneration member */ - DAC_InitStruct->DAC_WaveGeneration = DAC_WaveGeneration_None; - /* Initialize the DAC_LFSRUnmask_TriangleAmplitude member */ - DAC_InitStruct->DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0; - /* Initialize the DAC_OutputBuffer member */ - DAC_InitStruct->DAC_OutputBuffer = DAC_OutputBuffer_Enable; -} - -/** - * @brief Enables or disables the specified DAC channel. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param NewState: new state of the DAC channel. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected DAC channel */ - DAC->CR |= (DAC_CR_EN1 << DAC_Channel); - } - else - { - /* Disable the selected DAC channel */ - DAC->CR &= ~(DAC_CR_EN1 << DAC_Channel); - } -} -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -/** - * @brief Enables or disables the specified DAC interrupts. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param DAC_IT: specifies the DAC interrupt sources to be enabled or disabled. - * This parameter can be the following values: - * @arg DAC_IT_DMAUDR: DMA underrun interrupt mask - * @param NewState: new state of the specified DAC interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void DAC_ITConfig(uint32_t DAC_Channel, uint32_t DAC_IT, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - assert_param(IS_DAC_IT(DAC_IT)); - - if (NewState != DISABLE) - { - /* Enable the selected DAC interrupts */ - DAC->CR |= (DAC_IT << DAC_Channel); - } - else - { - /* Disable the selected DAC interrupts */ - DAC->CR &= (~(uint32_t)(DAC_IT << DAC_Channel)); - } -} -#endif - -/** - * @brief Enables or disables the specified DAC channel DMA request. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param NewState: new state of the selected DAC channel DMA request. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected DAC channel DMA request */ - DAC->CR |= (DAC_CR_DMAEN1 << DAC_Channel); - } - else - { - /* Disable the selected DAC channel DMA request */ - DAC->CR &= ~(DAC_CR_DMAEN1 << DAC_Channel); - } -} - -/** - * @brief Enables or disables the selected DAC channel software trigger. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param NewState: new state of the selected DAC channel software trigger. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable software trigger for the selected DAC channel */ - DAC->SWTRIGR |= (uint32_t)DAC_SWTRIGR_SWTRIG1 << (DAC_Channel >> 4); - } - else - { - /* Disable software trigger for the selected DAC channel */ - DAC->SWTRIGR &= ~((uint32_t)DAC_SWTRIGR_SWTRIG1 << (DAC_Channel >> 4)); - } -} - -/** - * @brief Enables or disables simultaneously the two DAC channels software - * triggers. - * @param NewState: new state of the DAC channels software triggers. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void DAC_DualSoftwareTriggerCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable software trigger for both DAC channels */ - DAC->SWTRIGR |= DUAL_SWTRIG_SET ; - } - else - { - /* Disable software trigger for both DAC channels */ - DAC->SWTRIGR &= DUAL_SWTRIG_RESET; - } -} - -/** - * @brief Enables or disables the selected DAC channel wave generation. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param DAC_Wave: Specifies the wave type to enable or disable. - * This parameter can be one of the following values: - * @arg DAC_Wave_Noise: noise wave generation - * @arg DAC_Wave_Triangle: triangle wave generation - * @param NewState: new state of the selected DAC channel wave generation. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - assert_param(IS_DAC_WAVE(DAC_Wave)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected wave generation for the selected DAC channel */ - DAC->CR |= DAC_Wave << DAC_Channel; - } - else - { - /* Disable the selected wave generation for the selected DAC channel */ - DAC->CR &= ~(DAC_Wave << DAC_Channel); - } -} - -/** - * @brief Set the specified data holding register value for DAC channel1. - * @param DAC_Align: Specifies the data alignment for DAC channel1. - * This parameter can be one of the following values: - * @arg DAC_Align_8b_R: 8bit right data alignment selected - * @arg DAC_Align_12b_L: 12bit left data alignment selected - * @arg DAC_Align_12b_R: 12bit right data alignment selected - * @param Data : Data to be loaded in the selected data holding register. - * @retval None - */ -void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data) -{ - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_DAC_ALIGN(DAC_Align)); - assert_param(IS_DAC_DATA(Data)); - - tmp = (uint32_t)DAC_BASE; - tmp += DHR12R1_OFFSET + DAC_Align; - - /* Set the DAC channel1 selected data holding register */ - *(__IO uint32_t *) tmp = Data; -} - -/** - * @brief Set the specified data holding register value for DAC channel2. - * @param DAC_Align: Specifies the data alignment for DAC channel2. - * This parameter can be one of the following values: - * @arg DAC_Align_8b_R: 8bit right data alignment selected - * @arg DAC_Align_12b_L: 12bit left data alignment selected - * @arg DAC_Align_12b_R: 12bit right data alignment selected - * @param Data : Data to be loaded in the selected data holding register. - * @retval None - */ -void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data) -{ - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_DAC_ALIGN(DAC_Align)); - assert_param(IS_DAC_DATA(Data)); - - tmp = (uint32_t)DAC_BASE; - tmp += DHR12R2_OFFSET + DAC_Align; - - /* Set the DAC channel2 selected data holding register */ - *(__IO uint32_t *)tmp = Data; -} - -/** - * @brief Set the specified data holding register value for dual channel - * DAC. - * @param DAC_Align: Specifies the data alignment for dual channel DAC. - * This parameter can be one of the following values: - * @arg DAC_Align_8b_R: 8bit right data alignment selected - * @arg DAC_Align_12b_L: 12bit left data alignment selected - * @arg DAC_Align_12b_R: 12bit right data alignment selected - * @param Data2: Data for DAC Channel2 to be loaded in the selected data - * holding register. - * @param Data1: Data for DAC Channel1 to be loaded in the selected data - * holding register. - * @retval None - */ -void DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t Data1) -{ - uint32_t data = 0, tmp = 0; - - /* Check the parameters */ - assert_param(IS_DAC_ALIGN(DAC_Align)); - assert_param(IS_DAC_DATA(Data1)); - assert_param(IS_DAC_DATA(Data2)); - - /* Calculate and set dual DAC data holding register value */ - if (DAC_Align == DAC_Align_8b_R) - { - data = ((uint32_t)Data2 << 8) | Data1; - } - else - { - data = ((uint32_t)Data2 << 16) | Data1; - } - - tmp = (uint32_t)DAC_BASE; - tmp += DHR12RD_OFFSET + DAC_Align; - - /* Set the dual DAC selected data holding register */ - *(__IO uint32_t *)tmp = data; -} - -/** - * @brief Returns the last data output value of the selected DAC channel. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @retval The selected DAC channel data output value. - */ -uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel) -{ - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - - tmp = (uint32_t) DAC_BASE ; - tmp += DOR_OFFSET + ((uint32_t)DAC_Channel >> 2); - - /* Returns the DAC channel data output register value */ - return (uint16_t) (*(__IO uint32_t*) tmp); -} - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) -/** - * @brief Checks whether the specified DAC flag is set or not. - * @param DAC_Channel: thee selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param DAC_FLAG: specifies the flag to check. - * This parameter can be only of the following value: - * @arg DAC_FLAG_DMAUDR: DMA underrun flag - * @retval The new state of DAC_FLAG (SET or RESET). - */ -FlagStatus DAC_GetFlagStatus(uint32_t DAC_Channel, uint32_t DAC_FLAG) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - assert_param(IS_DAC_FLAG(DAC_FLAG)); - - /* Check the status of the specified DAC flag */ - if ((DAC->SR & (DAC_FLAG << DAC_Channel)) != (uint8_t)RESET) - { - /* DAC_FLAG is set */ - bitstatus = SET; - } - else - { - /* DAC_FLAG is reset */ - bitstatus = RESET; - } - /* Return the DAC_FLAG status */ - return bitstatus; -} - -/** - * @brief Clears the DAC channelx's pending flags. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param DAC_FLAG: specifies the flag to clear. - * This parameter can be of the following value: - * @arg DAC_FLAG_DMAUDR: DMA underrun flag - * @retval None - */ -void DAC_ClearFlag(uint32_t DAC_Channel, uint32_t DAC_FLAG) -{ - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - assert_param(IS_DAC_FLAG(DAC_FLAG)); - - /* Clear the selected DAC flags */ - DAC->SR = (DAC_FLAG << DAC_Channel); -} - -/** - * @brief Checks whether the specified DAC interrupt has occurred or not. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param DAC_IT: specifies the DAC interrupt source to check. - * This parameter can be the following values: - * @arg DAC_IT_DMAUDR: DMA underrun interrupt mask - * @retval The new state of DAC_IT (SET or RESET). - */ -ITStatus DAC_GetITStatus(uint32_t DAC_Channel, uint32_t DAC_IT) -{ - ITStatus bitstatus = RESET; - uint32_t enablestatus = 0; - - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - assert_param(IS_DAC_IT(DAC_IT)); - - /* Get the DAC_IT enable bit status */ - enablestatus = (DAC->CR & (DAC_IT << DAC_Channel)) ; - - /* Check the status of the specified DAC interrupt */ - if (((DAC->SR & (DAC_IT << DAC_Channel)) != (uint32_t)RESET) && enablestatus) - { - /* DAC_IT is set */ - bitstatus = SET; - } - else - { - /* DAC_IT is reset */ - bitstatus = RESET; - } - /* Return the DAC_IT status */ - return bitstatus; -} - -/** - * @brief Clears the DAC channelx's interrupt pending bits. - * @param DAC_Channel: the selected DAC channel. - * This parameter can be one of the following values: - * @arg DAC_Channel_1: DAC Channel1 selected - * @arg DAC_Channel_2: DAC Channel2 selected - * @param DAC_IT: specifies the DAC interrupt pending bit to clear. - * This parameter can be the following values: - * @arg DAC_IT_DMAUDR: DMA underrun interrupt mask - * @retval None - */ -void DAC_ClearITPendingBit(uint32_t DAC_Channel, uint32_t DAC_IT) -{ - /* Check the parameters */ - assert_param(IS_DAC_CHANNEL(DAC_Channel)); - assert_param(IS_DAC_IT(DAC_IT)); - - /* Clear the selected DAC interrupt pending bits */ - DAC->SR = (DAC_IT << DAC_Channel); -} -#endif - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c deleted file mode 100644 index d34307b0..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c +++ /dev/null @@ -1,162 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_dbgmcu.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the DBGMCU firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_dbgmcu.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup DBGMCU - * @brief DBGMCU driver modules - * @{ - */ - -/** @defgroup DBGMCU_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup DBGMCU_Private_Defines - * @{ - */ - -#define IDCODE_DEVID_MASK ((uint32_t)0x00000FFF) -/** - * @} - */ - -/** @defgroup DBGMCU_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup DBGMCU_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup DBGMCU_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup DBGMCU_Private_Functions - * @{ - */ - -/** - * @brief Returns the device revision identifier. - * @param None - * @retval Device revision identifier - */ -uint32_t DBGMCU_GetREVID(void) -{ - return(DBGMCU->IDCODE >> 16); -} - -/** - * @brief Returns the device identifier. - * @param None - * @retval Device identifier - */ -uint32_t DBGMCU_GetDEVID(void) -{ - return(DBGMCU->IDCODE & IDCODE_DEVID_MASK); -} - -/** - * @brief Configures the specified peripheral and low power mode behavior - * when the MCU under Debug mode. - * @param DBGMCU_Periph: specifies the peripheral and low power mode. - * This parameter can be any combination of the following values: - * @arg DBGMCU_SLEEP: Keep debugger connection during SLEEP mode - * @arg DBGMCU_STOP: Keep debugger connection during STOP mode - * @arg DBGMCU_STANDBY: Keep debugger connection during STANDBY mode - * @arg DBGMCU_IWDG_STOP: Debug IWDG stopped when Core is halted - * @arg DBGMCU_WWDG_STOP: Debug WWDG stopped when Core is halted - * @arg DBGMCU_TIM1_STOP: TIM1 counter stopped when Core is halted - * @arg DBGMCU_TIM2_STOP: TIM2 counter stopped when Core is halted - * @arg DBGMCU_TIM3_STOP: TIM3 counter stopped when Core is halted - * @arg DBGMCU_TIM4_STOP: TIM4 counter stopped when Core is halted - * @arg DBGMCU_CAN1_STOP: Debug CAN2 stopped when Core is halted - * @arg DBGMCU_I2C1_SMBUS_TIMEOUT: I2C1 SMBUS timeout mode stopped when Core is halted - * @arg DBGMCU_I2C2_SMBUS_TIMEOUT: I2C2 SMBUS timeout mode stopped when Core is halted - * @arg DBGMCU_TIM5_STOP: TIM5 counter stopped when Core is halted - * @arg DBGMCU_TIM6_STOP: TIM6 counter stopped when Core is halted - * @arg DBGMCU_TIM7_STOP: TIM7 counter stopped when Core is halted - * @arg DBGMCU_TIM8_STOP: TIM8 counter stopped when Core is halted - * @arg DBGMCU_CAN2_STOP: Debug CAN2 stopped when Core is halted - * @arg DBGMCU_TIM15_STOP: TIM15 counter stopped when Core is halted - * @arg DBGMCU_TIM16_STOP: TIM16 counter stopped when Core is halted - * @arg DBGMCU_TIM17_STOP: TIM17 counter stopped when Core is halted - * @arg DBGMCU_TIM9_STOP: TIM9 counter stopped when Core is halted - * @arg DBGMCU_TIM10_STOP: TIM10 counter stopped when Core is halted - * @arg DBGMCU_TIM11_STOP: TIM11 counter stopped when Core is halted - * @arg DBGMCU_TIM12_STOP: TIM12 counter stopped when Core is halted - * @arg DBGMCU_TIM13_STOP: TIM13 counter stopped when Core is halted - * @arg DBGMCU_TIM14_STOP: TIM14 counter stopped when Core is halted - * @param NewState: new state of the specified peripheral in Debug mode. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void DBGMCU_Config(uint32_t DBGMCU_Periph, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_DBGMCU_PERIPH(DBGMCU_Periph)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - DBGMCU->CR |= DBGMCU_Periph; - } - else - { - DBGMCU->CR &= ~DBGMCU_Periph; - } -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c deleted file mode 100644 index 0c86f901..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c +++ /dev/null @@ -1,714 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_dma.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the DMA firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_dma.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup DMA - * @brief DMA driver modules - * @{ - */ - -/** @defgroup DMA_Private_TypesDefinitions - * @{ - */ -/** - * @} - */ - -/** @defgroup DMA_Private_Defines - * @{ - */ - - -/* DMA1 Channelx interrupt pending bit masks */ -#define DMA1_Channel1_IT_Mask ((uint32_t)(DMA_ISR_GIF1 | DMA_ISR_TCIF1 | DMA_ISR_HTIF1 | DMA_ISR_TEIF1)) -#define DMA1_Channel2_IT_Mask ((uint32_t)(DMA_ISR_GIF2 | DMA_ISR_TCIF2 | DMA_ISR_HTIF2 | DMA_ISR_TEIF2)) -#define DMA1_Channel3_IT_Mask ((uint32_t)(DMA_ISR_GIF3 | DMA_ISR_TCIF3 | DMA_ISR_HTIF3 | DMA_ISR_TEIF3)) -#define DMA1_Channel4_IT_Mask ((uint32_t)(DMA_ISR_GIF4 | DMA_ISR_TCIF4 | DMA_ISR_HTIF4 | DMA_ISR_TEIF4)) -#define DMA1_Channel5_IT_Mask ((uint32_t)(DMA_ISR_GIF5 | DMA_ISR_TCIF5 | DMA_ISR_HTIF5 | DMA_ISR_TEIF5)) -#define DMA1_Channel6_IT_Mask ((uint32_t)(DMA_ISR_GIF6 | DMA_ISR_TCIF6 | DMA_ISR_HTIF6 | DMA_ISR_TEIF6)) -#define DMA1_Channel7_IT_Mask ((uint32_t)(DMA_ISR_GIF7 | DMA_ISR_TCIF7 | DMA_ISR_HTIF7 | DMA_ISR_TEIF7)) - -/* DMA2 Channelx interrupt pending bit masks */ -#define DMA2_Channel1_IT_Mask ((uint32_t)(DMA_ISR_GIF1 | DMA_ISR_TCIF1 | DMA_ISR_HTIF1 | DMA_ISR_TEIF1)) -#define DMA2_Channel2_IT_Mask ((uint32_t)(DMA_ISR_GIF2 | DMA_ISR_TCIF2 | DMA_ISR_HTIF2 | DMA_ISR_TEIF2)) -#define DMA2_Channel3_IT_Mask ((uint32_t)(DMA_ISR_GIF3 | DMA_ISR_TCIF3 | DMA_ISR_HTIF3 | DMA_ISR_TEIF3)) -#define DMA2_Channel4_IT_Mask ((uint32_t)(DMA_ISR_GIF4 | DMA_ISR_TCIF4 | DMA_ISR_HTIF4 | DMA_ISR_TEIF4)) -#define DMA2_Channel5_IT_Mask ((uint32_t)(DMA_ISR_GIF5 | DMA_ISR_TCIF5 | DMA_ISR_HTIF5 | DMA_ISR_TEIF5)) - -/* DMA2 FLAG mask */ -#define FLAG_Mask ((uint32_t)0x10000000) - -/* DMA registers Masks */ -#define CCR_CLEAR_Mask ((uint32_t)0xFFFF800F) - -/** - * @} - */ - -/** @defgroup DMA_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup DMA_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup DMA_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup DMA_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the DMAy Channelx registers to their default reset - * values. - * @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and - * x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. - * @retval None - */ -void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx) -{ - /* Check the parameters */ - assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); - - /* Disable the selected DMAy Channelx */ - DMAy_Channelx->CCR &= (uint16_t)(~DMA_CCR1_EN); - - /* Reset DMAy Channelx control register */ - DMAy_Channelx->CCR = 0; - - /* Reset DMAy Channelx remaining bytes register */ - DMAy_Channelx->CNDTR = 0; - - /* Reset DMAy Channelx peripheral address register */ - DMAy_Channelx->CPAR = 0; - - /* Reset DMAy Channelx memory address register */ - DMAy_Channelx->CMAR = 0; - - if (DMAy_Channelx == DMA1_Channel1) - { - /* Reset interrupt pending bits for DMA1 Channel1 */ - DMA1->IFCR |= DMA1_Channel1_IT_Mask; - } - else if (DMAy_Channelx == DMA1_Channel2) - { - /* Reset interrupt pending bits for DMA1 Channel2 */ - DMA1->IFCR |= DMA1_Channel2_IT_Mask; - } - else if (DMAy_Channelx == DMA1_Channel3) - { - /* Reset interrupt pending bits for DMA1 Channel3 */ - DMA1->IFCR |= DMA1_Channel3_IT_Mask; - } - else if (DMAy_Channelx == DMA1_Channel4) - { - /* Reset interrupt pending bits for DMA1 Channel4 */ - DMA1->IFCR |= DMA1_Channel4_IT_Mask; - } - else if (DMAy_Channelx == DMA1_Channel5) - { - /* Reset interrupt pending bits for DMA1 Channel5 */ - DMA1->IFCR |= DMA1_Channel5_IT_Mask; - } - else if (DMAy_Channelx == DMA1_Channel6) - { - /* Reset interrupt pending bits for DMA1 Channel6 */ - DMA1->IFCR |= DMA1_Channel6_IT_Mask; - } - else if (DMAy_Channelx == DMA1_Channel7) - { - /* Reset interrupt pending bits for DMA1 Channel7 */ - DMA1->IFCR |= DMA1_Channel7_IT_Mask; - } - else if (DMAy_Channelx == DMA2_Channel1) - { - /* Reset interrupt pending bits for DMA2 Channel1 */ - DMA2->IFCR |= DMA2_Channel1_IT_Mask; - } - else if (DMAy_Channelx == DMA2_Channel2) - { - /* Reset interrupt pending bits for DMA2 Channel2 */ - DMA2->IFCR |= DMA2_Channel2_IT_Mask; - } - else if (DMAy_Channelx == DMA2_Channel3) - { - /* Reset interrupt pending bits for DMA2 Channel3 */ - DMA2->IFCR |= DMA2_Channel3_IT_Mask; - } - else if (DMAy_Channelx == DMA2_Channel4) - { - /* Reset interrupt pending bits for DMA2 Channel4 */ - DMA2->IFCR |= DMA2_Channel4_IT_Mask; - } - else - { - if (DMAy_Channelx == DMA2_Channel5) - { - /* Reset interrupt pending bits for DMA2 Channel5 */ - DMA2->IFCR |= DMA2_Channel5_IT_Mask; - } - } -} - -/** - * @brief Initializes the DMAy Channelx according to the specified - * parameters in the DMA_InitStruct. - * @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and - * x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. - * @param DMA_InitStruct: pointer to a DMA_InitTypeDef structure that - * contains the configuration information for the specified DMA Channel. - * @retval None - */ -void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); - assert_param(IS_DMA_DIR(DMA_InitStruct->DMA_DIR)); - assert_param(IS_DMA_BUFFER_SIZE(DMA_InitStruct->DMA_BufferSize)); - assert_param(IS_DMA_PERIPHERAL_INC_STATE(DMA_InitStruct->DMA_PeripheralInc)); - assert_param(IS_DMA_MEMORY_INC_STATE(DMA_InitStruct->DMA_MemoryInc)); - assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(DMA_InitStruct->DMA_PeripheralDataSize)); - assert_param(IS_DMA_MEMORY_DATA_SIZE(DMA_InitStruct->DMA_MemoryDataSize)); - assert_param(IS_DMA_MODE(DMA_InitStruct->DMA_Mode)); - assert_param(IS_DMA_PRIORITY(DMA_InitStruct->DMA_Priority)); - assert_param(IS_DMA_M2M_STATE(DMA_InitStruct->DMA_M2M)); - -/*--------------------------- DMAy Channelx CCR Configuration -----------------*/ - /* Get the DMAy_Channelx CCR value */ - tmpreg = DMAy_Channelx->CCR; - /* Clear MEM2MEM, PL, MSIZE, PSIZE, MINC, PINC, CIRC and DIR bits */ - tmpreg &= CCR_CLEAR_Mask; - /* Configure DMAy Channelx: data transfer, data size, priority level and mode */ - /* Set DIR bit according to DMA_DIR value */ - /* Set CIRC bit according to DMA_Mode value */ - /* Set PINC bit according to DMA_PeripheralInc value */ - /* Set MINC bit according to DMA_MemoryInc value */ - /* Set PSIZE bits according to DMA_PeripheralDataSize value */ - /* Set MSIZE bits according to DMA_MemoryDataSize value */ - /* Set PL bits according to DMA_Priority value */ - /* Set the MEM2MEM bit according to DMA_M2M value */ - tmpreg |= DMA_InitStruct->DMA_DIR | DMA_InitStruct->DMA_Mode | - DMA_InitStruct->DMA_PeripheralInc | DMA_InitStruct->DMA_MemoryInc | - DMA_InitStruct->DMA_PeripheralDataSize | DMA_InitStruct->DMA_MemoryDataSize | - DMA_InitStruct->DMA_Priority | DMA_InitStruct->DMA_M2M; - - /* Write to DMAy Channelx CCR */ - DMAy_Channelx->CCR = tmpreg; - -/*--------------------------- DMAy Channelx CNDTR Configuration ---------------*/ - /* Write to DMAy Channelx CNDTR */ - DMAy_Channelx->CNDTR = DMA_InitStruct->DMA_BufferSize; - -/*--------------------------- DMAy Channelx CPAR Configuration ----------------*/ - /* Write to DMAy Channelx CPAR */ - DMAy_Channelx->CPAR = DMA_InitStruct->DMA_PeripheralBaseAddr; - -/*--------------------------- DMAy Channelx CMAR Configuration ----------------*/ - /* Write to DMAy Channelx CMAR */ - DMAy_Channelx->CMAR = DMA_InitStruct->DMA_MemoryBaseAddr; -} - -/** - * @brief Fills each DMA_InitStruct member with its default value. - * @param DMA_InitStruct : pointer to a DMA_InitTypeDef structure which will - * be initialized. - * @retval None - */ -void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct) -{ -/*-------------- Reset DMA init structure parameters values ------------------*/ - /* Initialize the DMA_PeripheralBaseAddr member */ - DMA_InitStruct->DMA_PeripheralBaseAddr = 0; - /* Initialize the DMA_MemoryBaseAddr member */ - DMA_InitStruct->DMA_MemoryBaseAddr = 0; - /* Initialize the DMA_DIR member */ - DMA_InitStruct->DMA_DIR = DMA_DIR_PeripheralSRC; - /* Initialize the DMA_BufferSize member */ - DMA_InitStruct->DMA_BufferSize = 0; - /* Initialize the DMA_PeripheralInc member */ - DMA_InitStruct->DMA_PeripheralInc = DMA_PeripheralInc_Disable; - /* Initialize the DMA_MemoryInc member */ - DMA_InitStruct->DMA_MemoryInc = DMA_MemoryInc_Disable; - /* Initialize the DMA_PeripheralDataSize member */ - DMA_InitStruct->DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; - /* Initialize the DMA_MemoryDataSize member */ - DMA_InitStruct->DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; - /* Initialize the DMA_Mode member */ - DMA_InitStruct->DMA_Mode = DMA_Mode_Normal; - /* Initialize the DMA_Priority member */ - DMA_InitStruct->DMA_Priority = DMA_Priority_Low; - /* Initialize the DMA_M2M member */ - DMA_InitStruct->DMA_M2M = DMA_M2M_Disable; -} - -/** - * @brief Enables or disables the specified DMAy Channelx. - * @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and - * x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. - * @param NewState: new state of the DMAy Channelx. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the selected DMAy Channelx */ - DMAy_Channelx->CCR |= DMA_CCR1_EN; - } - else - { - /* Disable the selected DMAy Channelx */ - DMAy_Channelx->CCR &= (uint16_t)(~DMA_CCR1_EN); - } -} - -/** - * @brief Enables or disables the specified DMAy Channelx interrupts. - * @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and - * x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. - * @param DMA_IT: specifies the DMA interrupts sources to be enabled - * or disabled. - * This parameter can be any combination of the following values: - * @arg DMA_IT_TC: Transfer complete interrupt mask - * @arg DMA_IT_HT: Half transfer interrupt mask - * @arg DMA_IT_TE: Transfer error interrupt mask - * @param NewState: new state of the specified DMA interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); - assert_param(IS_DMA_CONFIG_IT(DMA_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected DMA interrupts */ - DMAy_Channelx->CCR |= DMA_IT; - } - else - { - /* Disable the selected DMA interrupts */ - DMAy_Channelx->CCR &= ~DMA_IT; - } -} - -/** - * @brief Sets the number of data units in the current DMAy Channelx transfer. - * @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and - * x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. - * @param DataNumber: The number of data units in the current DMAy Channelx - * transfer. - * @note This function can only be used when the DMAy_Channelx is disabled. - * @retval None. - */ -void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber) -{ - /* Check the parameters */ - assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); - -/*--------------------------- DMAy Channelx CNDTR Configuration ---------------*/ - /* Write to DMAy Channelx CNDTR */ - DMAy_Channelx->CNDTR = DataNumber; -} - -/** - * @brief Returns the number of remaining data units in the current - * DMAy Channelx transfer. - * @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and - * x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. - * @retval The number of remaining data units in the current DMAy Channelx - * transfer. - */ -uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx) -{ - /* Check the parameters */ - assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); - /* Return the number of remaining data units for DMAy Channelx */ - return ((uint16_t)(DMAy_Channelx->CNDTR)); -} - -/** - * @brief Checks whether the specified DMAy Channelx flag is set or not. - * @param DMAy_FLAG: specifies the flag to check. - * This parameter can be one of the following values: - * @arg DMA1_FLAG_GL1: DMA1 Channel1 global flag. - * @arg DMA1_FLAG_TC1: DMA1 Channel1 transfer complete flag. - * @arg DMA1_FLAG_HT1: DMA1 Channel1 half transfer flag. - * @arg DMA1_FLAG_TE1: DMA1 Channel1 transfer error flag. - * @arg DMA1_FLAG_GL2: DMA1 Channel2 global flag. - * @arg DMA1_FLAG_TC2: DMA1 Channel2 transfer complete flag. - * @arg DMA1_FLAG_HT2: DMA1 Channel2 half transfer flag. - * @arg DMA1_FLAG_TE2: DMA1 Channel2 transfer error flag. - * @arg DMA1_FLAG_GL3: DMA1 Channel3 global flag. - * @arg DMA1_FLAG_TC3: DMA1 Channel3 transfer complete flag. - * @arg DMA1_FLAG_HT3: DMA1 Channel3 half transfer flag. - * @arg DMA1_FLAG_TE3: DMA1 Channel3 transfer error flag. - * @arg DMA1_FLAG_GL4: DMA1 Channel4 global flag. - * @arg DMA1_FLAG_TC4: DMA1 Channel4 transfer complete flag. - * @arg DMA1_FLAG_HT4: DMA1 Channel4 half transfer flag. - * @arg DMA1_FLAG_TE4: DMA1 Channel4 transfer error flag. - * @arg DMA1_FLAG_GL5: DMA1 Channel5 global flag. - * @arg DMA1_FLAG_TC5: DMA1 Channel5 transfer complete flag. - * @arg DMA1_FLAG_HT5: DMA1 Channel5 half transfer flag. - * @arg DMA1_FLAG_TE5: DMA1 Channel5 transfer error flag. - * @arg DMA1_FLAG_GL6: DMA1 Channel6 global flag. - * @arg DMA1_FLAG_TC6: DMA1 Channel6 transfer complete flag. - * @arg DMA1_FLAG_HT6: DMA1 Channel6 half transfer flag. - * @arg DMA1_FLAG_TE6: DMA1 Channel6 transfer error flag. - * @arg DMA1_FLAG_GL7: DMA1 Channel7 global flag. - * @arg DMA1_FLAG_TC7: DMA1 Channel7 transfer complete flag. - * @arg DMA1_FLAG_HT7: DMA1 Channel7 half transfer flag. - * @arg DMA1_FLAG_TE7: DMA1 Channel7 transfer error flag. - * @arg DMA2_FLAG_GL1: DMA2 Channel1 global flag. - * @arg DMA2_FLAG_TC1: DMA2 Channel1 transfer complete flag. - * @arg DMA2_FLAG_HT1: DMA2 Channel1 half transfer flag. - * @arg DMA2_FLAG_TE1: DMA2 Channel1 transfer error flag. - * @arg DMA2_FLAG_GL2: DMA2 Channel2 global flag. - * @arg DMA2_FLAG_TC2: DMA2 Channel2 transfer complete flag. - * @arg DMA2_FLAG_HT2: DMA2 Channel2 half transfer flag. - * @arg DMA2_FLAG_TE2: DMA2 Channel2 transfer error flag. - * @arg DMA2_FLAG_GL3: DMA2 Channel3 global flag. - * @arg DMA2_FLAG_TC3: DMA2 Channel3 transfer complete flag. - * @arg DMA2_FLAG_HT3: DMA2 Channel3 half transfer flag. - * @arg DMA2_FLAG_TE3: DMA2 Channel3 transfer error flag. - * @arg DMA2_FLAG_GL4: DMA2 Channel4 global flag. - * @arg DMA2_FLAG_TC4: DMA2 Channel4 transfer complete flag. - * @arg DMA2_FLAG_HT4: DMA2 Channel4 half transfer flag. - * @arg DMA2_FLAG_TE4: DMA2 Channel4 transfer error flag. - * @arg DMA2_FLAG_GL5: DMA2 Channel5 global flag. - * @arg DMA2_FLAG_TC5: DMA2 Channel5 transfer complete flag. - * @arg DMA2_FLAG_HT5: DMA2 Channel5 half transfer flag. - * @arg DMA2_FLAG_TE5: DMA2 Channel5 transfer error flag. - * @retval The new state of DMAy_FLAG (SET or RESET). - */ -FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG) -{ - FlagStatus bitstatus = RESET; - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_DMA_GET_FLAG(DMAy_FLAG)); - - /* Calculate the used DMAy */ - if ((DMAy_FLAG & FLAG_Mask) != (uint32_t)RESET) - { - /* Get DMA2 ISR register value */ - tmpreg = DMA2->ISR ; - } - else - { - /* Get DMA1 ISR register value */ - tmpreg = DMA1->ISR ; - } - - /* Check the status of the specified DMAy flag */ - if ((tmpreg & DMAy_FLAG) != (uint32_t)RESET) - { - /* DMAy_FLAG is set */ - bitstatus = SET; - } - else - { - /* DMAy_FLAG is reset */ - bitstatus = RESET; - } - - /* Return the DMAy_FLAG status */ - return bitstatus; -} - -/** - * @brief Clears the DMAy Channelx's pending flags. - * @param DMAy_FLAG: specifies the flag to clear. - * This parameter can be any combination (for the same DMA) of the following values: - * @arg DMA1_FLAG_GL1: DMA1 Channel1 global flag. - * @arg DMA1_FLAG_TC1: DMA1 Channel1 transfer complete flag. - * @arg DMA1_FLAG_HT1: DMA1 Channel1 half transfer flag. - * @arg DMA1_FLAG_TE1: DMA1 Channel1 transfer error flag. - * @arg DMA1_FLAG_GL2: DMA1 Channel2 global flag. - * @arg DMA1_FLAG_TC2: DMA1 Channel2 transfer complete flag. - * @arg DMA1_FLAG_HT2: DMA1 Channel2 half transfer flag. - * @arg DMA1_FLAG_TE2: DMA1 Channel2 transfer error flag. - * @arg DMA1_FLAG_GL3: DMA1 Channel3 global flag. - * @arg DMA1_FLAG_TC3: DMA1 Channel3 transfer complete flag. - * @arg DMA1_FLAG_HT3: DMA1 Channel3 half transfer flag. - * @arg DMA1_FLAG_TE3: DMA1 Channel3 transfer error flag. - * @arg DMA1_FLAG_GL4: DMA1 Channel4 global flag. - * @arg DMA1_FLAG_TC4: DMA1 Channel4 transfer complete flag. - * @arg DMA1_FLAG_HT4: DMA1 Channel4 half transfer flag. - * @arg DMA1_FLAG_TE4: DMA1 Channel4 transfer error flag. - * @arg DMA1_FLAG_GL5: DMA1 Channel5 global flag. - * @arg DMA1_FLAG_TC5: DMA1 Channel5 transfer complete flag. - * @arg DMA1_FLAG_HT5: DMA1 Channel5 half transfer flag. - * @arg DMA1_FLAG_TE5: DMA1 Channel5 transfer error flag. - * @arg DMA1_FLAG_GL6: DMA1 Channel6 global flag. - * @arg DMA1_FLAG_TC6: DMA1 Channel6 transfer complete flag. - * @arg DMA1_FLAG_HT6: DMA1 Channel6 half transfer flag. - * @arg DMA1_FLAG_TE6: DMA1 Channel6 transfer error flag. - * @arg DMA1_FLAG_GL7: DMA1 Channel7 global flag. - * @arg DMA1_FLAG_TC7: DMA1 Channel7 transfer complete flag. - * @arg DMA1_FLAG_HT7: DMA1 Channel7 half transfer flag. - * @arg DMA1_FLAG_TE7: DMA1 Channel7 transfer error flag. - * @arg DMA2_FLAG_GL1: DMA2 Channel1 global flag. - * @arg DMA2_FLAG_TC1: DMA2 Channel1 transfer complete flag. - * @arg DMA2_FLAG_HT1: DMA2 Channel1 half transfer flag. - * @arg DMA2_FLAG_TE1: DMA2 Channel1 transfer error flag. - * @arg DMA2_FLAG_GL2: DMA2 Channel2 global flag. - * @arg DMA2_FLAG_TC2: DMA2 Channel2 transfer complete flag. - * @arg DMA2_FLAG_HT2: DMA2 Channel2 half transfer flag. - * @arg DMA2_FLAG_TE2: DMA2 Channel2 transfer error flag. - * @arg DMA2_FLAG_GL3: DMA2 Channel3 global flag. - * @arg DMA2_FLAG_TC3: DMA2 Channel3 transfer complete flag. - * @arg DMA2_FLAG_HT3: DMA2 Channel3 half transfer flag. - * @arg DMA2_FLAG_TE3: DMA2 Channel3 transfer error flag. - * @arg DMA2_FLAG_GL4: DMA2 Channel4 global flag. - * @arg DMA2_FLAG_TC4: DMA2 Channel4 transfer complete flag. - * @arg DMA2_FLAG_HT4: DMA2 Channel4 half transfer flag. - * @arg DMA2_FLAG_TE4: DMA2 Channel4 transfer error flag. - * @arg DMA2_FLAG_GL5: DMA2 Channel5 global flag. - * @arg DMA2_FLAG_TC5: DMA2 Channel5 transfer complete flag. - * @arg DMA2_FLAG_HT5: DMA2 Channel5 half transfer flag. - * @arg DMA2_FLAG_TE5: DMA2 Channel5 transfer error flag. - * @retval None - */ -void DMA_ClearFlag(uint32_t DMAy_FLAG) -{ - /* Check the parameters */ - assert_param(IS_DMA_CLEAR_FLAG(DMAy_FLAG)); - - /* Calculate the used DMAy */ - if ((DMAy_FLAG & FLAG_Mask) != (uint32_t)RESET) - { - /* Clear the selected DMAy flags */ - DMA2->IFCR = DMAy_FLAG; - } - else - { - /* Clear the selected DMAy flags */ - DMA1->IFCR = DMAy_FLAG; - } -} - -/** - * @brief Checks whether the specified DMAy Channelx interrupt has occurred or not. - * @param DMAy_IT: specifies the DMAy interrupt source to check. - * This parameter can be one of the following values: - * @arg DMA1_IT_GL1: DMA1 Channel1 global interrupt. - * @arg DMA1_IT_TC1: DMA1 Channel1 transfer complete interrupt. - * @arg DMA1_IT_HT1: DMA1 Channel1 half transfer interrupt. - * @arg DMA1_IT_TE1: DMA1 Channel1 transfer error interrupt. - * @arg DMA1_IT_GL2: DMA1 Channel2 global interrupt. - * @arg DMA1_IT_TC2: DMA1 Channel2 transfer complete interrupt. - * @arg DMA1_IT_HT2: DMA1 Channel2 half transfer interrupt. - * @arg DMA1_IT_TE2: DMA1 Channel2 transfer error interrupt. - * @arg DMA1_IT_GL3: DMA1 Channel3 global interrupt. - * @arg DMA1_IT_TC3: DMA1 Channel3 transfer complete interrupt. - * @arg DMA1_IT_HT3: DMA1 Channel3 half transfer interrupt. - * @arg DMA1_IT_TE3: DMA1 Channel3 transfer error interrupt. - * @arg DMA1_IT_GL4: DMA1 Channel4 global interrupt. - * @arg DMA1_IT_TC4: DMA1 Channel4 transfer complete interrupt. - * @arg DMA1_IT_HT4: DMA1 Channel4 half transfer interrupt. - * @arg DMA1_IT_TE4: DMA1 Channel4 transfer error interrupt. - * @arg DMA1_IT_GL5: DMA1 Channel5 global interrupt. - * @arg DMA1_IT_TC5: DMA1 Channel5 transfer complete interrupt. - * @arg DMA1_IT_HT5: DMA1 Channel5 half transfer interrupt. - * @arg DMA1_IT_TE5: DMA1 Channel5 transfer error interrupt. - * @arg DMA1_IT_GL6: DMA1 Channel6 global interrupt. - * @arg DMA1_IT_TC6: DMA1 Channel6 transfer complete interrupt. - * @arg DMA1_IT_HT6: DMA1 Channel6 half transfer interrupt. - * @arg DMA1_IT_TE6: DMA1 Channel6 transfer error interrupt. - * @arg DMA1_IT_GL7: DMA1 Channel7 global interrupt. - * @arg DMA1_IT_TC7: DMA1 Channel7 transfer complete interrupt. - * @arg DMA1_IT_HT7: DMA1 Channel7 half transfer interrupt. - * @arg DMA1_IT_TE7: DMA1 Channel7 transfer error interrupt. - * @arg DMA2_IT_GL1: DMA2 Channel1 global interrupt. - * @arg DMA2_IT_TC1: DMA2 Channel1 transfer complete interrupt. - * @arg DMA2_IT_HT1: DMA2 Channel1 half transfer interrupt. - * @arg DMA2_IT_TE1: DMA2 Channel1 transfer error interrupt. - * @arg DMA2_IT_GL2: DMA2 Channel2 global interrupt. - * @arg DMA2_IT_TC2: DMA2 Channel2 transfer complete interrupt. - * @arg DMA2_IT_HT2: DMA2 Channel2 half transfer interrupt. - * @arg DMA2_IT_TE2: DMA2 Channel2 transfer error interrupt. - * @arg DMA2_IT_GL3: DMA2 Channel3 global interrupt. - * @arg DMA2_IT_TC3: DMA2 Channel3 transfer complete interrupt. - * @arg DMA2_IT_HT3: DMA2 Channel3 half transfer interrupt. - * @arg DMA2_IT_TE3: DMA2 Channel3 transfer error interrupt. - * @arg DMA2_IT_GL4: DMA2 Channel4 global interrupt. - * @arg DMA2_IT_TC4: DMA2 Channel4 transfer complete interrupt. - * @arg DMA2_IT_HT4: DMA2 Channel4 half transfer interrupt. - * @arg DMA2_IT_TE4: DMA2 Channel4 transfer error interrupt. - * @arg DMA2_IT_GL5: DMA2 Channel5 global interrupt. - * @arg DMA2_IT_TC5: DMA2 Channel5 transfer complete interrupt. - * @arg DMA2_IT_HT5: DMA2 Channel5 half transfer interrupt. - * @arg DMA2_IT_TE5: DMA2 Channel5 transfer error interrupt. - * @retval The new state of DMAy_IT (SET or RESET). - */ -ITStatus DMA_GetITStatus(uint32_t DMAy_IT) -{ - ITStatus bitstatus = RESET; - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_DMA_GET_IT(DMAy_IT)); - - /* Calculate the used DMA */ - if ((DMAy_IT & FLAG_Mask) != (uint32_t)RESET) - { - /* Get DMA2 ISR register value */ - tmpreg = DMA2->ISR; - } - else - { - /* Get DMA1 ISR register value */ - tmpreg = DMA1->ISR; - } - - /* Check the status of the specified DMAy interrupt */ - if ((tmpreg & DMAy_IT) != (uint32_t)RESET) - { - /* DMAy_IT is set */ - bitstatus = SET; - } - else - { - /* DMAy_IT is reset */ - bitstatus = RESET; - } - /* Return the DMA_IT status */ - return bitstatus; -} - -/** - * @brief Clears the DMAy Channelx's interrupt pending bits. - * @param DMAy_IT: specifies the DMAy interrupt pending bit to clear. - * This parameter can be any combination (for the same DMA) of the following values: - * @arg DMA1_IT_GL1: DMA1 Channel1 global interrupt. - * @arg DMA1_IT_TC1: DMA1 Channel1 transfer complete interrupt. - * @arg DMA1_IT_HT1: DMA1 Channel1 half transfer interrupt. - * @arg DMA1_IT_TE1: DMA1 Channel1 transfer error interrupt. - * @arg DMA1_IT_GL2: DMA1 Channel2 global interrupt. - * @arg DMA1_IT_TC2: DMA1 Channel2 transfer complete interrupt. - * @arg DMA1_IT_HT2: DMA1 Channel2 half transfer interrupt. - * @arg DMA1_IT_TE2: DMA1 Channel2 transfer error interrupt. - * @arg DMA1_IT_GL3: DMA1 Channel3 global interrupt. - * @arg DMA1_IT_TC3: DMA1 Channel3 transfer complete interrupt. - * @arg DMA1_IT_HT3: DMA1 Channel3 half transfer interrupt. - * @arg DMA1_IT_TE3: DMA1 Channel3 transfer error interrupt. - * @arg DMA1_IT_GL4: DMA1 Channel4 global interrupt. - * @arg DMA1_IT_TC4: DMA1 Channel4 transfer complete interrupt. - * @arg DMA1_IT_HT4: DMA1 Channel4 half transfer interrupt. - * @arg DMA1_IT_TE4: DMA1 Channel4 transfer error interrupt. - * @arg DMA1_IT_GL5: DMA1 Channel5 global interrupt. - * @arg DMA1_IT_TC5: DMA1 Channel5 transfer complete interrupt. - * @arg DMA1_IT_HT5: DMA1 Channel5 half transfer interrupt. - * @arg DMA1_IT_TE5: DMA1 Channel5 transfer error interrupt. - * @arg DMA1_IT_GL6: DMA1 Channel6 global interrupt. - * @arg DMA1_IT_TC6: DMA1 Channel6 transfer complete interrupt. - * @arg DMA1_IT_HT6: DMA1 Channel6 half transfer interrupt. - * @arg DMA1_IT_TE6: DMA1 Channel6 transfer error interrupt. - * @arg DMA1_IT_GL7: DMA1 Channel7 global interrupt. - * @arg DMA1_IT_TC7: DMA1 Channel7 transfer complete interrupt. - * @arg DMA1_IT_HT7: DMA1 Channel7 half transfer interrupt. - * @arg DMA1_IT_TE7: DMA1 Channel7 transfer error interrupt. - * @arg DMA2_IT_GL1: DMA2 Channel1 global interrupt. - * @arg DMA2_IT_TC1: DMA2 Channel1 transfer complete interrupt. - * @arg DMA2_IT_HT1: DMA2 Channel1 half transfer interrupt. - * @arg DMA2_IT_TE1: DMA2 Channel1 transfer error interrupt. - * @arg DMA2_IT_GL2: DMA2 Channel2 global interrupt. - * @arg DMA2_IT_TC2: DMA2 Channel2 transfer complete interrupt. - * @arg DMA2_IT_HT2: DMA2 Channel2 half transfer interrupt. - * @arg DMA2_IT_TE2: DMA2 Channel2 transfer error interrupt. - * @arg DMA2_IT_GL3: DMA2 Channel3 global interrupt. - * @arg DMA2_IT_TC3: DMA2 Channel3 transfer complete interrupt. - * @arg DMA2_IT_HT3: DMA2 Channel3 half transfer interrupt. - * @arg DMA2_IT_TE3: DMA2 Channel3 transfer error interrupt. - * @arg DMA2_IT_GL4: DMA2 Channel4 global interrupt. - * @arg DMA2_IT_TC4: DMA2 Channel4 transfer complete interrupt. - * @arg DMA2_IT_HT4: DMA2 Channel4 half transfer interrupt. - * @arg DMA2_IT_TE4: DMA2 Channel4 transfer error interrupt. - * @arg DMA2_IT_GL5: DMA2 Channel5 global interrupt. - * @arg DMA2_IT_TC5: DMA2 Channel5 transfer complete interrupt. - * @arg DMA2_IT_HT5: DMA2 Channel5 half transfer interrupt. - * @arg DMA2_IT_TE5: DMA2 Channel5 transfer error interrupt. - * @retval None - */ -void DMA_ClearITPendingBit(uint32_t DMAy_IT) -{ - /* Check the parameters */ - assert_param(IS_DMA_CLEAR_IT(DMAy_IT)); - - /* Calculate the used DMAy */ - if ((DMAy_IT & FLAG_Mask) != (uint32_t)RESET) - { - /* Clear the selected DMAy interrupt pending bits */ - DMA2->IFCR = DMAy_IT; - } - else - { - /* Clear the selected DMAy interrupt pending bits */ - DMA1->IFCR = DMAy_IT; - } -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c deleted file mode 100644 index ab734627..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c +++ /dev/null @@ -1,269 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_exti.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the EXTI firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_exti.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup EXTI - * @brief EXTI driver modules - * @{ - */ - -/** @defgroup EXTI_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup EXTI_Private_Defines - * @{ - */ - -#define EXTI_LINENONE ((uint32_t)0x00000) /* No interrupt selected */ - -/** - * @} - */ - -/** @defgroup EXTI_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup EXTI_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup EXTI_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup EXTI_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the EXTI peripheral registers to their default reset values. - * @param None - * @retval None - */ -void EXTI_DeInit(void) -{ - EXTI->IMR = 0x00000000; - EXTI->EMR = 0x00000000; - EXTI->RTSR = 0x00000000; - EXTI->FTSR = 0x00000000; - EXTI->PR = 0x000FFFFF; -} - -/** - * @brief Initializes the EXTI peripheral according to the specified - * parameters in the EXTI_InitStruct. - * @param EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure - * that contains the configuration information for the EXTI peripheral. - * @retval None - */ -void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct) -{ - uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_EXTI_MODE(EXTI_InitStruct->EXTI_Mode)); - assert_param(IS_EXTI_TRIGGER(EXTI_InitStruct->EXTI_Trigger)); - assert_param(IS_EXTI_LINE(EXTI_InitStruct->EXTI_Line)); - assert_param(IS_FUNCTIONAL_STATE(EXTI_InitStruct->EXTI_LineCmd)); - - tmp = (uint32_t)EXTI_BASE; - - if (EXTI_InitStruct->EXTI_LineCmd != DISABLE) - { - /* Clear EXTI line configuration */ - EXTI->IMR &= ~EXTI_InitStruct->EXTI_Line; - EXTI->EMR &= ~EXTI_InitStruct->EXTI_Line; - - tmp += EXTI_InitStruct->EXTI_Mode; - - *(__IO uint32_t *) tmp |= EXTI_InitStruct->EXTI_Line; - - /* Clear Rising Falling edge configuration */ - EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line; - EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line; - - /* Select the trigger for the selected external interrupts */ - if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling) - { - /* Rising Falling edge */ - EXTI->RTSR |= EXTI_InitStruct->EXTI_Line; - EXTI->FTSR |= EXTI_InitStruct->EXTI_Line; - } - else - { - tmp = (uint32_t)EXTI_BASE; - tmp += EXTI_InitStruct->EXTI_Trigger; - - *(__IO uint32_t *) tmp |= EXTI_InitStruct->EXTI_Line; - } - } - else - { - tmp += EXTI_InitStruct->EXTI_Mode; - - /* Disable the selected external lines */ - *(__IO uint32_t *) tmp &= ~EXTI_InitStruct->EXTI_Line; - } -} - -/** - * @brief Fills each EXTI_InitStruct member with its reset value. - * @param EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure which will - * be initialized. - * @retval None - */ -void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct) -{ - EXTI_InitStruct->EXTI_Line = EXTI_LINENONE; - EXTI_InitStruct->EXTI_Mode = EXTI_Mode_Interrupt; - EXTI_InitStruct->EXTI_Trigger = EXTI_Trigger_Falling; - EXTI_InitStruct->EXTI_LineCmd = DISABLE; -} - -/** - * @brief Generates a Software interrupt. - * @param EXTI_Line: specifies the EXTI lines to be enabled or disabled. - * This parameter can be any combination of EXTI_Linex where x can be (0..19). - * @retval None - */ -void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line) -{ - /* Check the parameters */ - assert_param(IS_EXTI_LINE(EXTI_Line)); - - EXTI->SWIER |= EXTI_Line; -} - -/** - * @brief Checks whether the specified EXTI line flag is set or not. - * @param EXTI_Line: specifies the EXTI line flag to check. - * This parameter can be: - * @arg EXTI_Linex: External interrupt line x where x(0..19) - * @retval The new state of EXTI_Line (SET or RESET). - */ -FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_GET_EXTI_LINE(EXTI_Line)); - - if ((EXTI->PR & EXTI_Line) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the EXTI's line pending flags. - * @param EXTI_Line: specifies the EXTI lines flags to clear. - * This parameter can be any combination of EXTI_Linex where x can be (0..19). - * @retval None - */ -void EXTI_ClearFlag(uint32_t EXTI_Line) -{ - /* Check the parameters */ - assert_param(IS_EXTI_LINE(EXTI_Line)); - - EXTI->PR = EXTI_Line; -} - -/** - * @brief Checks whether the specified EXTI line is asserted or not. - * @param EXTI_Line: specifies the EXTI line to check. - * This parameter can be: - * @arg EXTI_Linex: External interrupt line x where x(0..19) - * @retval The new state of EXTI_Line (SET or RESET). - */ -ITStatus EXTI_GetITStatus(uint32_t EXTI_Line) -{ - ITStatus bitstatus = RESET; - uint32_t enablestatus = 0; - /* Check the parameters */ - assert_param(IS_GET_EXTI_LINE(EXTI_Line)); - - enablestatus = EXTI->IMR & EXTI_Line; - if (((EXTI->PR & EXTI_Line) != (uint32_t)RESET) && (enablestatus != (uint32_t)RESET)) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the EXTI's line pending bits. - * @param EXTI_Line: specifies the EXTI lines to clear. - * This parameter can be any combination of EXTI_Linex where x can be (0..19). - * @retval None - */ -void EXTI_ClearITPendingBit(uint32_t EXTI_Line) -{ - /* Check the parameters */ - assert_param(IS_EXTI_LINE(EXTI_Line)); - - EXTI->PR = EXTI_Line; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c deleted file mode 100644 index f6c7bf17..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c +++ /dev/null @@ -1,1684 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_flash.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the FLASH firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_flash.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup FLASH - * @brief FLASH driver modules - * @{ - */ - -/** @defgroup FLASH_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup FLASH_Private_Defines - * @{ - */ - -/* Flash Access Control Register bits */ -#define ACR_LATENCY_Mask ((uint32_t)0x00000038) -#define ACR_HLFCYA_Mask ((uint32_t)0xFFFFFFF7) -#define ACR_PRFTBE_Mask ((uint32_t)0xFFFFFFEF) - -/* Flash Access Control Register bits */ -#define ACR_PRFTBS_Mask ((uint32_t)0x00000020) - -/* Flash Control Register bits */ -#define CR_PG_Set ((uint32_t)0x00000001) -#define CR_PG_Reset ((uint32_t)0x00001FFE) -#define CR_PER_Set ((uint32_t)0x00000002) -#define CR_PER_Reset ((uint32_t)0x00001FFD) -#define CR_MER_Set ((uint32_t)0x00000004) -#define CR_MER_Reset ((uint32_t)0x00001FFB) -#define CR_OPTPG_Set ((uint32_t)0x00000010) -#define CR_OPTPG_Reset ((uint32_t)0x00001FEF) -#define CR_OPTER_Set ((uint32_t)0x00000020) -#define CR_OPTER_Reset ((uint32_t)0x00001FDF) -#define CR_STRT_Set ((uint32_t)0x00000040) -#define CR_LOCK_Set ((uint32_t)0x00000080) - -/* FLASH Mask */ -#define RDPRT_Mask ((uint32_t)0x00000002) -#define WRP0_Mask ((uint32_t)0x000000FF) -#define WRP1_Mask ((uint32_t)0x0000FF00) -#define WRP2_Mask ((uint32_t)0x00FF0000) -#define WRP3_Mask ((uint32_t)0xFF000000) -#define OB_USER_BFB2 ((uint16_t)0x0008) - -/* FLASH Keys */ -#define RDP_Key ((uint16_t)0x00A5) -#define FLASH_KEY1 ((uint32_t)0x45670123) -#define FLASH_KEY2 ((uint32_t)0xCDEF89AB) - -/* FLASH BANK address */ -#define FLASH_BANK1_END_ADDRESS ((uint32_t)0x807FFFF) - -/* Delay definition */ -#define EraseTimeout ((uint32_t)0x000B0000) -#define ProgramTimeout ((uint32_t)0x00002000) -/** - * @} - */ - -/** @defgroup FLASH_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup FLASH_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup FLASH_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup FLASH_Private_Functions - * @{ - */ - -/** -@code - - This driver provides functions to configure and program the Flash memory of all STM32F10x devices, - including the latest STM32F10x_XL density devices. - - STM32F10x_XL devices feature up to 1 Mbyte with dual bank architecture for read-while-write (RWW) capability: - - bank1: fixed size of 512 Kbytes (256 pages of 2Kbytes each) - - bank2: up to 512 Kbytes (up to 256 pages of 2Kbytes each) - While other STM32F10x devices features only one bank with memory up to 512 Kbytes. - - In version V3.3.0, some functions were updated and new ones were added to support - STM32F10x_XL devices. Thus some functions manages all devices, while other are - dedicated for XL devices only. - - The table below presents the list of available functions depending on the used STM32F10x devices. - - *************************************************** - * Legacy functions used for all STM32F10x devices * - *************************************************** - +----------------------------------------------------------------------------------------------------------------------------------+ - | Functions prototypes |STM32F10x_XL|Other STM32F10x| Comments | - | | devices | devices | | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_SetLatency | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_HalfCycleAccessCmd | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_PrefetchBufferCmd | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_Unlock | Yes | Yes | - For STM32F10X_XL devices: unlock Bank1 and Bank2. | - | | | | - For other devices: unlock Bank1 and it is equivalent | - | | | | to FLASH_UnlockBank1 function. | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_Lock | Yes | Yes | - For STM32F10X_XL devices: lock Bank1 and Bank2. | - | | | | - For other devices: lock Bank1 and it is equivalent | - | | | | to FLASH_LockBank1 function. | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_ErasePage | Yes | Yes | - For STM32F10x_XL devices: erase a page in Bank1 and Bank2 | - | | | | - For other devices: erase a page in Bank1 | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_EraseAllPages | Yes | Yes | - For STM32F10x_XL devices: erase all pages in Bank1 and Bank2 | - | | | | - For other devices: erase all pages in Bank1 | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_EraseOptionBytes | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_ProgramWord | Yes | Yes | Updated to program up to 1MByte (depending on the used device) | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_ProgramHalfWord | Yes | Yes | Updated to program up to 1MByte (depending on the used device) | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_ProgramOptionByteData | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_EnableWriteProtection | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_ReadOutProtection | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_UserOptionByteConfig | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_GetUserOptionByte | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_GetWriteProtectionOptionByte | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_GetReadOutProtectionStatus | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_GetPrefetchBufferStatus | Yes | Yes | No change | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_ITConfig | Yes | Yes | - For STM32F10x_XL devices: enable Bank1 and Bank2's interrupts| - | | | | - For other devices: enable Bank1's interrupts | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_GetFlagStatus | Yes | Yes | - For STM32F10x_XL devices: return Bank1 and Bank2's flag status| - | | | | - For other devices: return Bank1's flag status | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_ClearFlag | Yes | Yes | - For STM32F10x_XL devices: clear Bank1 and Bank2's flag | - | | | | - For other devices: clear Bank1's flag | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_GetStatus | Yes | Yes | - Return the status of Bank1 (for all devices) | - | | | | equivalent to FLASH_GetBank1Status function | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_WaitForLastOperation | Yes | Yes | - Wait for Bank1 last operation (for all devices) | - | | | | equivalent to: FLASH_WaitForLastBank1Operation function | - +----------------------------------------------------------------------------------------------------------------------------------+ - - ************************************************************************************************************************ - * New functions used for all STM32F10x devices to manage Bank1: * - * - These functions are mainly useful for STM32F10x_XL density devices, to have separate control for Bank1 and bank2 * - * - For other devices, these functions are optional (covered by functions listed above) * - ************************************************************************************************************************ - +----------------------------------------------------------------------------------------------------------------------------------+ - | Functions prototypes |STM32F10x_XL|Other STM32F10x| Comments | - | | devices | devices | | - |----------------------------------------------------------------------------------------------------------------------------------| - | FLASH_UnlockBank1 | Yes | Yes | - Unlock Bank1 | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_LockBank1 | Yes | Yes | - Lock Bank1 | - |----------------------------------------------------------------------------------------------------------------------------------| - | FLASH_EraseAllBank1Pages | Yes | Yes | - Erase all pages in Bank1 | - |----------------------------------------------------------------------------------------------------------------------------------| - | FLASH_GetBank1Status | Yes | Yes | - Return the status of Bank1 | - |----------------------------------------------------------------------------------------------------------------------------------| - | FLASH_WaitForLastBank1Operation | Yes | Yes | - Wait for Bank1 last operation | - +----------------------------------------------------------------------------------------------------------------------------------+ - - ***************************************************************************** - * New Functions used only with STM32F10x_XL density devices to manage Bank2 * - ***************************************************************************** - +----------------------------------------------------------------------------------------------------------------------------------+ - | Functions prototypes |STM32F10x_XL|Other STM32F10x| Comments | - | | devices | devices | | - |----------------------------------------------------------------------------------------------------------------------------------| - | FLASH_UnlockBank2 | Yes | No | - Unlock Bank2 | - |----------------------------------------------------------------------------------------------------------------------------------| - |FLASH_LockBank2 | Yes | No | - Lock Bank2 | - |----------------------------------------------------------------------------------------------------------------------------------| - | FLASH_EraseAllBank2Pages | Yes | No | - Erase all pages in Bank2 | - |----------------------------------------------------------------------------------------------------------------------------------| - | FLASH_GetBank2Status | Yes | No | - Return the status of Bank2 | - |----------------------------------------------------------------------------------------------------------------------------------| - | FLASH_WaitForLastBank2Operation | Yes | No | - Wait for Bank2 last operation | - |----------------------------------------------------------------------------------------------------------------------------------| - | FLASH_BootConfig | Yes | No | - Configure to boot from Bank1 or Bank2 | - +----------------------------------------------------------------------------------------------------------------------------------+ -@endcode -*/ - - -/** - * @brief Sets the code latency value. - * @note This function can be used for all STM32F10x devices. - * @param FLASH_Latency: specifies the FLASH Latency value. - * This parameter can be one of the following values: - * @arg FLASH_Latency_0: FLASH Zero Latency cycle - * @arg FLASH_Latency_1: FLASH One Latency cycle - * @arg FLASH_Latency_2: FLASH Two Latency cycles - * @retval None - */ -void FLASH_SetLatency(uint32_t FLASH_Latency) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_FLASH_LATENCY(FLASH_Latency)); - - /* Read the ACR register */ - tmpreg = FLASH->ACR; - - /* Sets the Latency value */ - tmpreg &= ACR_LATENCY_Mask; - tmpreg |= FLASH_Latency; - - /* Write the ACR register */ - FLASH->ACR = tmpreg; -} - -/** - * @brief Enables or disables the Half cycle flash access. - * @note This function can be used for all STM32F10x devices. - * @param FLASH_HalfCycleAccess: specifies the FLASH Half cycle Access mode. - * This parameter can be one of the following values: - * @arg FLASH_HalfCycleAccess_Enable: FLASH Half Cycle Enable - * @arg FLASH_HalfCycleAccess_Disable: FLASH Half Cycle Disable - * @retval None - */ -void FLASH_HalfCycleAccessCmd(uint32_t FLASH_HalfCycleAccess) -{ - /* Check the parameters */ - assert_param(IS_FLASH_HALFCYCLEACCESS_STATE(FLASH_HalfCycleAccess)); - - /* Enable or disable the Half cycle access */ - FLASH->ACR &= ACR_HLFCYA_Mask; - FLASH->ACR |= FLASH_HalfCycleAccess; -} - -/** - * @brief Enables or disables the Prefetch Buffer. - * @note This function can be used for all STM32F10x devices. - * @param FLASH_PrefetchBuffer: specifies the Prefetch buffer status. - * This parameter can be one of the following values: - * @arg FLASH_PrefetchBuffer_Enable: FLASH Prefetch Buffer Enable - * @arg FLASH_PrefetchBuffer_Disable: FLASH Prefetch Buffer Disable - * @retval None - */ -void FLASH_PrefetchBufferCmd(uint32_t FLASH_PrefetchBuffer) -{ - /* Check the parameters */ - assert_param(IS_FLASH_PREFETCHBUFFER_STATE(FLASH_PrefetchBuffer)); - - /* Enable or disable the Prefetch Buffer */ - FLASH->ACR &= ACR_PRFTBE_Mask; - FLASH->ACR |= FLASH_PrefetchBuffer; -} - -/** - * @brief Unlocks the FLASH Program Erase Controller. - * @note This function can be used for all STM32F10x devices. - * - For STM32F10X_XL devices this function unlocks Bank1 and Bank2. - * - For all other devices it unlocks Bank1 and it is equivalent - * to FLASH_UnlockBank1 function.. - * @param None - * @retval None - */ -void FLASH_Unlock(void) -{ - /* Authorize the FPEC of Bank1 Access */ - FLASH->KEYR = FLASH_KEY1; - FLASH->KEYR = FLASH_KEY2; - -#ifdef STM32F10X_XL - /* Authorize the FPEC of Bank2 Access */ - FLASH->KEYR2 = FLASH_KEY1; - FLASH->KEYR2 = FLASH_KEY2; -#endif /* STM32F10X_XL */ -} -/** - * @brief Unlocks the FLASH Bank1 Program Erase Controller. - * @note This function can be used for all STM32F10x devices. - * - For STM32F10X_XL devices this function unlocks Bank1. - * - For all other devices it unlocks Bank1 and it is - * equivalent to FLASH_Unlock function. - * @param None - * @retval None - */ -void FLASH_UnlockBank1(void) -{ - /* Authorize the FPEC of Bank1 Access */ - FLASH->KEYR = FLASH_KEY1; - FLASH->KEYR = FLASH_KEY2; -} - -#ifdef STM32F10X_XL -/** - * @brief Unlocks the FLASH Bank2 Program Erase Controller. - * @note This function can be used only for STM32F10X_XL density devices. - * @param None - * @retval None - */ -void FLASH_UnlockBank2(void) -{ - /* Authorize the FPEC of Bank2 Access */ - FLASH->KEYR2 = FLASH_KEY1; - FLASH->KEYR2 = FLASH_KEY2; - -} -#endif /* STM32F10X_XL */ - -/** - * @brief Locks the FLASH Program Erase Controller. - * @note This function can be used for all STM32F10x devices. - * - For STM32F10X_XL devices this function Locks Bank1 and Bank2. - * - For all other devices it Locks Bank1 and it is equivalent - * to FLASH_LockBank1 function. - * @param None - * @retval None - */ -void FLASH_Lock(void) -{ - /* Set the Lock Bit to lock the FPEC and the CR of Bank1 */ - FLASH->CR |= CR_LOCK_Set; - -#ifdef STM32F10X_XL - /* Set the Lock Bit to lock the FPEC and the CR of Bank2 */ - FLASH->CR2 |= CR_LOCK_Set; -#endif /* STM32F10X_XL */ -} - -/** - * @brief Locks the FLASH Bank1 Program Erase Controller. - * @note this function can be used for all STM32F10x devices. - * - For STM32F10X_XL devices this function Locks Bank1. - * - For all other devices it Locks Bank1 and it is equivalent - * to FLASH_Lock function. - * @param None - * @retval None - */ -void FLASH_LockBank1(void) -{ - /* Set the Lock Bit to lock the FPEC and the CR of Bank1 */ - FLASH->CR |= CR_LOCK_Set; -} - -#ifdef STM32F10X_XL -/** - * @brief Locks the FLASH Bank2 Program Erase Controller. - * @note This function can be used only for STM32F10X_XL density devices. - * @param None - * @retval None - */ -void FLASH_LockBank2(void) -{ - /* Set the Lock Bit to lock the FPEC and the CR of Bank2 */ - FLASH->CR2 |= CR_LOCK_Set; -} -#endif /* STM32F10X_XL */ - -/** - * @brief Erases a specified FLASH page. - * @note This function can be used for all STM32F10x devices. - * @param Page_Address: The page address to be erased. - * @retval FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_ErasePage(uint32_t Page_Address) -{ - FLASH_Status status = FLASH_COMPLETE; - /* Check the parameters */ - assert_param(IS_FLASH_ADDRESS(Page_Address)); - -#ifdef STM32F10X_XL - if(Page_Address < FLASH_BANK1_END_ADDRESS) - { - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(EraseTimeout); - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to erase the page */ - FLASH->CR|= CR_PER_Set; - FLASH->AR = Page_Address; - FLASH->CR|= CR_STRT_Set; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(EraseTimeout); - - /* Disable the PER Bit */ - FLASH->CR &= CR_PER_Reset; - } - } - else - { - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(EraseTimeout); - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to erase the page */ - FLASH->CR2|= CR_PER_Set; - FLASH->AR2 = Page_Address; - FLASH->CR2|= CR_STRT_Set; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(EraseTimeout); - - /* Disable the PER Bit */ - FLASH->CR2 &= CR_PER_Reset; - } - } -#else - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(EraseTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to erase the page */ - FLASH->CR|= CR_PER_Set; - FLASH->AR = Page_Address; - FLASH->CR|= CR_STRT_Set; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(EraseTimeout); - - /* Disable the PER Bit */ - FLASH->CR &= CR_PER_Reset; - } -#endif /* STM32F10X_XL */ - - /* Return the Erase Status */ - return status; -} - -/** - * @brief Erases all FLASH pages. - * @note This function can be used for all STM32F10x devices. - * @param None - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_EraseAllPages(void) -{ - FLASH_Status status = FLASH_COMPLETE; - -#ifdef STM32F10X_XL - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(EraseTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to erase all pages */ - FLASH->CR |= CR_MER_Set; - FLASH->CR |= CR_STRT_Set; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(EraseTimeout); - - /* Disable the MER Bit */ - FLASH->CR &= CR_MER_Reset; - } - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to erase all pages */ - FLASH->CR2 |= CR_MER_Set; - FLASH->CR2 |= CR_STRT_Set; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(EraseTimeout); - - /* Disable the MER Bit */ - FLASH->CR2 &= CR_MER_Reset; - } -#else - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(EraseTimeout); - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to erase all pages */ - FLASH->CR |= CR_MER_Set; - FLASH->CR |= CR_STRT_Set; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(EraseTimeout); - - /* Disable the MER Bit */ - FLASH->CR &= CR_MER_Reset; - } -#endif /* STM32F10X_XL */ - - /* Return the Erase Status */ - return status; -} - -/** - * @brief Erases all Bank1 FLASH pages. - * @note This function can be used for all STM32F10x devices. - * - For STM32F10X_XL devices this function erases all Bank1 pages. - * - For all other devices it erases all Bank1 pages and it is equivalent - * to FLASH_EraseAllPages function. - * @param None - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_EraseAllBank1Pages(void) -{ - FLASH_Status status = FLASH_COMPLETE; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(EraseTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to erase all pages */ - FLASH->CR |= CR_MER_Set; - FLASH->CR |= CR_STRT_Set; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(EraseTimeout); - - /* Disable the MER Bit */ - FLASH->CR &= CR_MER_Reset; - } - /* Return the Erase Status */ - return status; -} - -#ifdef STM32F10X_XL -/** - * @brief Erases all Bank2 FLASH pages. - * @note This function can be used only for STM32F10x_XL density devices. - * @param None - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_EraseAllBank2Pages(void) -{ - FLASH_Status status = FLASH_COMPLETE; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(EraseTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to erase all pages */ - FLASH->CR2 |= CR_MER_Set; - FLASH->CR2 |= CR_STRT_Set; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(EraseTimeout); - - /* Disable the MER Bit */ - FLASH->CR2 &= CR_MER_Reset; - } - /* Return the Erase Status */ - return status; -} -#endif /* STM32F10X_XL */ - -/** - * @brief Erases the FLASH option bytes. - * @note This functions erases all option bytes except the Read protection (RDP). - * @note This function can be used for all STM32F10x devices. - * @param None - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_EraseOptionBytes(void) -{ - uint16_t rdptmp = RDP_Key; - - FLASH_Status status = FLASH_COMPLETE; - - /* Get the actual read protection Option Byte value */ - if(FLASH_GetReadOutProtectionStatus() != RESET) - { - rdptmp = 0x00; - } - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(EraseTimeout); - if(status == FLASH_COMPLETE) - { - /* Authorize the small information block programming */ - FLASH->OPTKEYR = FLASH_KEY1; - FLASH->OPTKEYR = FLASH_KEY2; - - /* if the previous operation is completed, proceed to erase the option bytes */ - FLASH->CR |= CR_OPTER_Set; - FLASH->CR |= CR_STRT_Set; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(EraseTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the erase operation is completed, disable the OPTER Bit */ - FLASH->CR &= CR_OPTER_Reset; - - /* Enable the Option Bytes Programming operation */ - FLASH->CR |= CR_OPTPG_Set; - /* Restore the last read protection Option Byte value */ - OB->RDP = (uint16_t)rdptmp; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(status != FLASH_TIMEOUT) - { - /* if the program operation is completed, disable the OPTPG Bit */ - FLASH->CR &= CR_OPTPG_Reset; - } - } - else - { - if (status != FLASH_TIMEOUT) - { - /* Disable the OPTPG Bit */ - FLASH->CR &= CR_OPTPG_Reset; - } - } - } - /* Return the erase status */ - return status; -} - -/** - * @brief Programs a word at a specified address. - * @note This function can be used for all STM32F10x devices. - * @param Address: specifies the address to be programmed. - * @param Data: specifies the data to be programmed. - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data) -{ - FLASH_Status status = FLASH_COMPLETE; - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_FLASH_ADDRESS(Address)); - -#ifdef STM32F10X_XL - if(Address < FLASH_BANK1_END_ADDRESS - 2) - { - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(ProgramTimeout); - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new first - half word */ - FLASH->CR |= CR_PG_Set; - - *(__IO uint16_t*)Address = (uint16_t)Data; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new second - half word */ - tmp = Address + 2; - - *(__IO uint16_t*) tmp = Data >> 16; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - /* Disable the PG Bit */ - FLASH->CR &= CR_PG_Reset; - } - else - { - /* Disable the PG Bit */ - FLASH->CR &= CR_PG_Reset; - } - } - } - else if(Address == (FLASH_BANK1_END_ADDRESS - 1)) - { - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new first - half word */ - FLASH->CR |= CR_PG_Set; - - *(__IO uint16_t*)Address = (uint16_t)Data; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(ProgramTimeout); - - /* Disable the PG Bit */ - FLASH->CR &= CR_PG_Reset; - } - else - { - /* Disable the PG Bit */ - FLASH->CR &= CR_PG_Reset; - } - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new second - half word */ - FLASH->CR2 |= CR_PG_Set; - tmp = Address + 2; - - *(__IO uint16_t*) tmp = Data >> 16; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(ProgramTimeout); - - /* Disable the PG Bit */ - FLASH->CR2 &= CR_PG_Reset; - } - else - { - /* Disable the PG Bit */ - FLASH->CR2 &= CR_PG_Reset; - } - } - else - { - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new first - half word */ - FLASH->CR2 |= CR_PG_Set; - - *(__IO uint16_t*)Address = (uint16_t)Data; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new second - half word */ - tmp = Address + 2; - - *(__IO uint16_t*) tmp = Data >> 16; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(ProgramTimeout); - - /* Disable the PG Bit */ - FLASH->CR2 &= CR_PG_Reset; - } - else - { - /* Disable the PG Bit */ - FLASH->CR2 &= CR_PG_Reset; - } - } - } -#else - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new first - half word */ - FLASH->CR |= CR_PG_Set; - - *(__IO uint16_t*)Address = (uint16_t)Data; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new second - half word */ - tmp = Address + 2; - - *(__IO uint16_t*) tmp = Data >> 16; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - /* Disable the PG Bit */ - FLASH->CR &= CR_PG_Reset; - } - else - { - /* Disable the PG Bit */ - FLASH->CR &= CR_PG_Reset; - } - } -#endif /* STM32F10X_XL */ - - /* Return the Program Status */ - return status; -} - -/** - * @brief Programs a half word at a specified address. - * @note This function can be used for all STM32F10x devices. - * @param Address: specifies the address to be programmed. - * @param Data: specifies the data to be programmed. - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) -{ - FLASH_Status status = FLASH_COMPLETE; - /* Check the parameters */ - assert_param(IS_FLASH_ADDRESS(Address)); - -#ifdef STM32F10X_XL - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(Address < FLASH_BANK1_END_ADDRESS) - { - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new data */ - FLASH->CR |= CR_PG_Set; - - *(__IO uint16_t*)Address = Data; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank1Operation(ProgramTimeout); - - /* Disable the PG Bit */ - FLASH->CR &= CR_PG_Reset; - } - } - else - { - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new data */ - FLASH->CR2 |= CR_PG_Set; - - *(__IO uint16_t*)Address = Data; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastBank2Operation(ProgramTimeout); - - /* Disable the PG Bit */ - FLASH->CR2 &= CR_PG_Reset; - } - } -#else - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* if the previous operation is completed, proceed to program the new data */ - FLASH->CR |= CR_PG_Set; - - *(__IO uint16_t*)Address = Data; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - /* Disable the PG Bit */ - FLASH->CR &= CR_PG_Reset; - } -#endif /* STM32F10X_XL */ - - /* Return the Program Status */ - return status; -} - -/** - * @brief Programs a half word at a specified Option Byte Data address. - * @note This function can be used for all STM32F10x devices. - * @param Address: specifies the address to be programmed. - * This parameter can be 0x1FFFF804 or 0x1FFFF806. - * @param Data: specifies the data to be programmed. - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data) -{ - FLASH_Status status = FLASH_COMPLETE; - /* Check the parameters */ - assert_param(IS_OB_DATA_ADDRESS(Address)); - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* Authorize the small information block programming */ - FLASH->OPTKEYR = FLASH_KEY1; - FLASH->OPTKEYR = FLASH_KEY2; - /* Enables the Option Bytes Programming operation */ - FLASH->CR |= CR_OPTPG_Set; - *(__IO uint16_t*)Address = Data; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - if(status != FLASH_TIMEOUT) - { - /* if the program operation is completed, disable the OPTPG Bit */ - FLASH->CR &= CR_OPTPG_Reset; - } - } - /* Return the Option Byte Data Program Status */ - return status; -} - -/** - * @brief Write protects the desired pages - * @note This function can be used for all STM32F10x devices. - * @param FLASH_Pages: specifies the address of the pages to be write protected. - * This parameter can be: - * @arg For @b STM32_Low-density_devices: value between FLASH_WRProt_Pages0to3 and FLASH_WRProt_Pages28to31 - * @arg For @b STM32_Medium-density_devices: value between FLASH_WRProt_Pages0to3 - * and FLASH_WRProt_Pages124to127 - * @arg For @b STM32_High-density_devices: value between FLASH_WRProt_Pages0to1 and - * FLASH_WRProt_Pages60to61 or FLASH_WRProt_Pages62to255 - * @arg For @b STM32_Connectivity_line_devices: value between FLASH_WRProt_Pages0to1 and - * FLASH_WRProt_Pages60to61 or FLASH_WRProt_Pages62to127 - * @arg For @b STM32_XL-density_devices: value between FLASH_WRProt_Pages0to1 and - * FLASH_WRProt_Pages60to61 or FLASH_WRProt_Pages62to511 - * @arg FLASH_WRProt_AllPages - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_EnableWriteProtection(uint32_t FLASH_Pages) -{ - uint16_t WRP0_Data = 0xFFFF, WRP1_Data = 0xFFFF, WRP2_Data = 0xFFFF, WRP3_Data = 0xFFFF; - - FLASH_Status status = FLASH_COMPLETE; - - /* Check the parameters */ - assert_param(IS_FLASH_WRPROT_PAGE(FLASH_Pages)); - - FLASH_Pages = (uint32_t)(~FLASH_Pages); - WRP0_Data = (uint16_t)(FLASH_Pages & WRP0_Mask); - WRP1_Data = (uint16_t)((FLASH_Pages & WRP1_Mask) >> 8); - WRP2_Data = (uint16_t)((FLASH_Pages & WRP2_Mask) >> 16); - WRP3_Data = (uint16_t)((FLASH_Pages & WRP3_Mask) >> 24); - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* Authorizes the small information block programming */ - FLASH->OPTKEYR = FLASH_KEY1; - FLASH->OPTKEYR = FLASH_KEY2; - FLASH->CR |= CR_OPTPG_Set; - if(WRP0_Data != 0xFF) - { - OB->WRP0 = WRP0_Data; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - } - if((status == FLASH_COMPLETE) && (WRP1_Data != 0xFF)) - { - OB->WRP1 = WRP1_Data; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - } - if((status == FLASH_COMPLETE) && (WRP2_Data != 0xFF)) - { - OB->WRP2 = WRP2_Data; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - } - - if((status == FLASH_COMPLETE)&& (WRP3_Data != 0xFF)) - { - OB->WRP3 = WRP3_Data; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - } - - if(status != FLASH_TIMEOUT) - { - /* if the program operation is completed, disable the OPTPG Bit */ - FLASH->CR &= CR_OPTPG_Reset; - } - } - /* Return the write protection operation Status */ - return status; -} - -/** - * @brief Enables or disables the read out protection. - * @note If the user has already programmed the other option bytes before calling - * this function, he must re-program them since this function erases all option bytes. - * @note This function can be used for all STM32F10x devices. - * @param Newstate: new state of the ReadOut Protection. - * This parameter can be: ENABLE or DISABLE. - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_ReadOutProtection(FunctionalState NewState) -{ - FLASH_Status status = FLASH_COMPLETE; - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - status = FLASH_WaitForLastOperation(EraseTimeout); - if(status == FLASH_COMPLETE) - { - /* Authorizes the small information block programming */ - FLASH->OPTKEYR = FLASH_KEY1; - FLASH->OPTKEYR = FLASH_KEY2; - FLASH->CR |= CR_OPTER_Set; - FLASH->CR |= CR_STRT_Set; - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(EraseTimeout); - if(status == FLASH_COMPLETE) - { - /* if the erase operation is completed, disable the OPTER Bit */ - FLASH->CR &= CR_OPTER_Reset; - /* Enable the Option Bytes Programming operation */ - FLASH->CR |= CR_OPTPG_Set; - if(NewState != DISABLE) - { - OB->RDP = 0x00; - } - else - { - OB->RDP = RDP_Key; - } - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(EraseTimeout); - - if(status != FLASH_TIMEOUT) - { - /* if the program operation is completed, disable the OPTPG Bit */ - FLASH->CR &= CR_OPTPG_Reset; - } - } - else - { - if(status != FLASH_TIMEOUT) - { - /* Disable the OPTER Bit */ - FLASH->CR &= CR_OPTER_Reset; - } - } - } - /* Return the protection operation Status */ - return status; -} - -/** - * @brief Programs the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY. - * @note This function can be used for all STM32F10x devices. - * @param OB_IWDG: Selects the IWDG mode - * This parameter can be one of the following values: - * @arg OB_IWDG_SW: Software IWDG selected - * @arg OB_IWDG_HW: Hardware IWDG selected - * @param OB_STOP: Reset event when entering STOP mode. - * This parameter can be one of the following values: - * @arg OB_STOP_NoRST: No reset generated when entering in STOP - * @arg OB_STOP_RST: Reset generated when entering in STOP - * @param OB_STDBY: Reset event when entering Standby mode. - * This parameter can be one of the following values: - * @arg OB_STDBY_NoRST: No reset generated when entering in STANDBY - * @arg OB_STDBY_RST: Reset generated when entering in STANDBY - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_UserOptionByteConfig(uint16_t OB_IWDG, uint16_t OB_STOP, uint16_t OB_STDBY) -{ - FLASH_Status status = FLASH_COMPLETE; - - /* Check the parameters */ - assert_param(IS_OB_IWDG_SOURCE(OB_IWDG)); - assert_param(IS_OB_STOP_SOURCE(OB_STOP)); - assert_param(IS_OB_STDBY_SOURCE(OB_STDBY)); - - /* Authorize the small information block programming */ - FLASH->OPTKEYR = FLASH_KEY1; - FLASH->OPTKEYR = FLASH_KEY2; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* Enable the Option Bytes Programming operation */ - FLASH->CR |= CR_OPTPG_Set; - - OB->USER = OB_IWDG | (uint16_t)(OB_STOP | (uint16_t)(OB_STDBY | ((uint16_t)0xF8))); - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - if(status != FLASH_TIMEOUT) - { - /* if the program operation is completed, disable the OPTPG Bit */ - FLASH->CR &= CR_OPTPG_Reset; - } - } - /* Return the Option Byte program Status */ - return status; -} - -#ifdef STM32F10X_XL -/** - * @brief Configures to boot from Bank1 or Bank2. - * @note This function can be used only for STM32F10x_XL density devices. - * @param FLASH_BOOT: select the FLASH Bank to boot from. - * This parameter can be one of the following values: - * @arg FLASH_BOOT_Bank1: At startup, if boot pins are set in boot from user Flash - * position and this parameter is selected the device will boot from Bank1(Default). - * @arg FLASH_BOOT_Bank2: At startup, if boot pins are set in boot from user Flash - * position and this parameter is selected the device will boot from Bank2 or Bank1, - * depending on the activation of the bank. The active banks are checked in - * the following order: Bank2, followed by Bank1. - * The active bank is recognized by the value programmed at the base address - * of the respective bank (corresponding to the initial stack pointer value - * in the interrupt vector table). - * For more information, please refer to AN2606 from www.st.com. - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_BootConfig(uint16_t FLASH_BOOT) -{ - FLASH_Status status = FLASH_COMPLETE; - assert_param(IS_FLASH_BOOT(FLASH_BOOT)); - /* Authorize the small information block programming */ - FLASH->OPTKEYR = FLASH_KEY1; - FLASH->OPTKEYR = FLASH_KEY2; - - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - - if(status == FLASH_COMPLETE) - { - /* Enable the Option Bytes Programming operation */ - FLASH->CR |= CR_OPTPG_Set; - - if(FLASH_BOOT == FLASH_BOOT_Bank1) - { - OB->USER |= OB_USER_BFB2; - } - else - { - OB->USER &= (uint16_t)(~(uint16_t)(OB_USER_BFB2)); - } - /* Wait for last operation to be completed */ - status = FLASH_WaitForLastOperation(ProgramTimeout); - if(status != FLASH_TIMEOUT) - { - /* if the program operation is completed, disable the OPTPG Bit */ - FLASH->CR &= CR_OPTPG_Reset; - } - } - /* Return the Option Byte program Status */ - return status; -} -#endif /* STM32F10X_XL */ - -/** - * @brief Returns the FLASH User Option Bytes values. - * @note This function can be used for all STM32F10x devices. - * @param None - * @retval The FLASH User Option Bytes values:IWDG_SW(Bit0), RST_STOP(Bit1) - * and RST_STDBY(Bit2). - */ -uint32_t FLASH_GetUserOptionByte(void) -{ - /* Return the User Option Byte */ - return (uint32_t)(FLASH->OBR >> 2); -} - -/** - * @brief Returns the FLASH Write Protection Option Bytes Register value. - * @note This function can be used for all STM32F10x devices. - * @param None - * @retval The FLASH Write Protection Option Bytes Register value - */ -uint32_t FLASH_GetWriteProtectionOptionByte(void) -{ - /* Return the Flash write protection Register value */ - return (uint32_t)(FLASH->WRPR); -} - -/** - * @brief Checks whether the FLASH Read Out Protection Status is set or not. - * @note This function can be used for all STM32F10x devices. - * @param None - * @retval FLASH ReadOut Protection Status(SET or RESET) - */ -FlagStatus FLASH_GetReadOutProtectionStatus(void) -{ - FlagStatus readoutstatus = RESET; - if ((FLASH->OBR & RDPRT_Mask) != (uint32_t)RESET) - { - readoutstatus = SET; - } - else - { - readoutstatus = RESET; - } - return readoutstatus; -} - -/** - * @brief Checks whether the FLASH Prefetch Buffer status is set or not. - * @note This function can be used for all STM32F10x devices. - * @param None - * @retval FLASH Prefetch Buffer Status (SET or RESET). - */ -FlagStatus FLASH_GetPrefetchBufferStatus(void) -{ - FlagStatus bitstatus = RESET; - - if ((FLASH->ACR & ACR_PRFTBS_Mask) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - /* Return the new state of FLASH Prefetch Buffer Status (SET or RESET) */ - return bitstatus; -} - -/** - * @brief Enables or disables the specified FLASH interrupts. - * @note This function can be used for all STM32F10x devices. - * - For STM32F10X_XL devices, enables or disables the specified FLASH interrupts - for Bank1 and Bank2. - * - For other devices it enables or disables the specified FLASH interrupts for Bank1. - * @param FLASH_IT: specifies the FLASH interrupt sources to be enabled or disabled. - * This parameter can be any combination of the following values: - * @arg FLASH_IT_ERROR: FLASH Error Interrupt - * @arg FLASH_IT_EOP: FLASH end of operation Interrupt - * @param NewState: new state of the specified Flash interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void FLASH_ITConfig(uint32_t FLASH_IT, FunctionalState NewState) -{ -#ifdef STM32F10X_XL - /* Check the parameters */ - assert_param(IS_FLASH_IT(FLASH_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if((FLASH_IT & 0x80000000) != 0x0) - { - if(NewState != DISABLE) - { - /* Enable the interrupt sources */ - FLASH->CR2 |= (FLASH_IT & 0x7FFFFFFF); - } - else - { - /* Disable the interrupt sources */ - FLASH->CR2 &= ~(uint32_t)(FLASH_IT & 0x7FFFFFFF); - } - } - else - { - if(NewState != DISABLE) - { - /* Enable the interrupt sources */ - FLASH->CR |= FLASH_IT; - } - else - { - /* Disable the interrupt sources */ - FLASH->CR &= ~(uint32_t)FLASH_IT; - } - } -#else - /* Check the parameters */ - assert_param(IS_FLASH_IT(FLASH_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if(NewState != DISABLE) - { - /* Enable the interrupt sources */ - FLASH->CR |= FLASH_IT; - } - else - { - /* Disable the interrupt sources */ - FLASH->CR &= ~(uint32_t)FLASH_IT; - } -#endif /* STM32F10X_XL */ -} - -/** - * @brief Checks whether the specified FLASH flag is set or not. - * @note This function can be used for all STM32F10x devices. - * - For STM32F10X_XL devices, this function checks whether the specified - * Bank1 or Bank2 flag is set or not. - * - For other devices, it checks whether the specified Bank1 flag is - * set or not. - * @param FLASH_FLAG: specifies the FLASH flag to check. - * This parameter can be one of the following values: - * @arg FLASH_FLAG_BSY: FLASH Busy flag - * @arg FLASH_FLAG_PGERR: FLASH Program error flag - * @arg FLASH_FLAG_WRPRTERR: FLASH Write protected error flag - * @arg FLASH_FLAG_EOP: FLASH End of Operation flag - * @arg FLASH_FLAG_OPTERR: FLASH Option Byte error flag - * @retval The new state of FLASH_FLAG (SET or RESET). - */ -FlagStatus FLASH_GetFlagStatus(uint32_t FLASH_FLAG) -{ - FlagStatus bitstatus = RESET; - -#ifdef STM32F10X_XL - /* Check the parameters */ - assert_param(IS_FLASH_GET_FLAG(FLASH_FLAG)) ; - if(FLASH_FLAG == FLASH_FLAG_OPTERR) - { - if((FLASH->OBR & FLASH_FLAG_OPTERR) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - } - else - { - if((FLASH_FLAG & 0x80000000) != 0x0) - { - if((FLASH->SR2 & FLASH_FLAG) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - } - else - { - if((FLASH->SR & FLASH_FLAG) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - } - } -#else - /* Check the parameters */ - assert_param(IS_FLASH_GET_FLAG(FLASH_FLAG)) ; - if(FLASH_FLAG == FLASH_FLAG_OPTERR) - { - if((FLASH->OBR & FLASH_FLAG_OPTERR) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - } - else - { - if((FLASH->SR & FLASH_FLAG) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - } -#endif /* STM32F10X_XL */ - - /* Return the new state of FLASH_FLAG (SET or RESET) */ - return bitstatus; -} - -/** - * @brief Clears the FLASH's pending flags. - * @note This function can be used for all STM32F10x devices. - * - For STM32F10X_XL devices, this function clears Bank1 or Bank2’s pending flags - * - For other devices, it clears Bank1’s pending flags. - * @param FLASH_FLAG: specifies the FLASH flags to clear. - * This parameter can be any combination of the following values: - * @arg FLASH_FLAG_PGERR: FLASH Program error flag - * @arg FLASH_FLAG_WRPRTERR: FLASH Write protected error flag - * @arg FLASH_FLAG_EOP: FLASH End of Operation flag - * @retval None - */ -void FLASH_ClearFlag(uint32_t FLASH_FLAG) -{ -#ifdef STM32F10X_XL - /* Check the parameters */ - assert_param(IS_FLASH_CLEAR_FLAG(FLASH_FLAG)) ; - - if((FLASH_FLAG & 0x80000000) != 0x0) - { - /* Clear the flags */ - FLASH->SR2 = FLASH_FLAG; - } - else - { - /* Clear the flags */ - FLASH->SR = FLASH_FLAG; - } - -#else - /* Check the parameters */ - assert_param(IS_FLASH_CLEAR_FLAG(FLASH_FLAG)) ; - - /* Clear the flags */ - FLASH->SR = FLASH_FLAG; -#endif /* STM32F10X_XL */ -} - -/** - * @brief Returns the FLASH Status. - * @note This function can be used for all STM32F10x devices, it is equivalent - * to FLASH_GetBank1Status function. - * @param None - * @retval FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, - * FLASH_ERROR_WRP or FLASH_COMPLETE - */ -FLASH_Status FLASH_GetStatus(void) -{ - FLASH_Status flashstatus = FLASH_COMPLETE; - - if((FLASH->SR & FLASH_FLAG_BSY) == FLASH_FLAG_BSY) - { - flashstatus = FLASH_BUSY; - } - else - { - if((FLASH->SR & FLASH_FLAG_PGERR) != 0) - { - flashstatus = FLASH_ERROR_PG; - } - else - { - if((FLASH->SR & FLASH_FLAG_WRPRTERR) != 0 ) - { - flashstatus = FLASH_ERROR_WRP; - } - else - { - flashstatus = FLASH_COMPLETE; - } - } - } - /* Return the Flash Status */ - return flashstatus; -} - -/** - * @brief Returns the FLASH Bank1 Status. - * @note This function can be used for all STM32F10x devices, it is equivalent - * to FLASH_GetStatus function. - * @param None - * @retval FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, - * FLASH_ERROR_WRP or FLASH_COMPLETE - */ -FLASH_Status FLASH_GetBank1Status(void) -{ - FLASH_Status flashstatus = FLASH_COMPLETE; - - if((FLASH->SR & FLASH_FLAG_BANK1_BSY) == FLASH_FLAG_BSY) - { - flashstatus = FLASH_BUSY; - } - else - { - if((FLASH->SR & FLASH_FLAG_BANK1_PGERR) != 0) - { - flashstatus = FLASH_ERROR_PG; - } - else - { - if((FLASH->SR & FLASH_FLAG_BANK1_WRPRTERR) != 0 ) - { - flashstatus = FLASH_ERROR_WRP; - } - else - { - flashstatus = FLASH_COMPLETE; - } - } - } - /* Return the Flash Status */ - return flashstatus; -} - -#ifdef STM32F10X_XL -/** - * @brief Returns the FLASH Bank2 Status. - * @note This function can be used for STM32F10x_XL density devices. - * @param None - * @retval FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, - * FLASH_ERROR_WRP or FLASH_COMPLETE - */ -FLASH_Status FLASH_GetBank2Status(void) -{ - FLASH_Status flashstatus = FLASH_COMPLETE; - - if((FLASH->SR2 & (FLASH_FLAG_BANK2_BSY & 0x7FFFFFFF)) == (FLASH_FLAG_BANK2_BSY & 0x7FFFFFFF)) - { - flashstatus = FLASH_BUSY; - } - else - { - if((FLASH->SR2 & (FLASH_FLAG_BANK2_PGERR & 0x7FFFFFFF)) != 0) - { - flashstatus = FLASH_ERROR_PG; - } - else - { - if((FLASH->SR2 & (FLASH_FLAG_BANK2_WRPRTERR & 0x7FFFFFFF)) != 0 ) - { - flashstatus = FLASH_ERROR_WRP; - } - else - { - flashstatus = FLASH_COMPLETE; - } - } - } - /* Return the Flash Status */ - return flashstatus; -} -#endif /* STM32F10X_XL */ -/** - * @brief Waits for a Flash operation to complete or a TIMEOUT to occur. - * @note This function can be used for all STM32F10x devices, - * it is equivalent to FLASH_WaitForLastBank1Operation. - * - For STM32F10X_XL devices this function waits for a Bank1 Flash operation - * to complete or a TIMEOUT to occur. - * - For all other devices it waits for a Flash operation to complete - * or a TIMEOUT to occur. - * @param Timeout: FLASH programming Timeout - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout) -{ - FLASH_Status status = FLASH_COMPLETE; - - /* Check for the Flash Status */ - status = FLASH_GetBank1Status(); - /* Wait for a Flash operation to complete or a TIMEOUT to occur */ - while((status == FLASH_BUSY) && (Timeout != 0x00)) - { - status = FLASH_GetBank1Status(); - Timeout--; - } - if(Timeout == 0x00 ) - { - status = FLASH_TIMEOUT; - } - /* Return the operation status */ - return status; -} - -/** - * @brief Waits for a Flash operation on Bank1 to complete or a TIMEOUT to occur. - * @note This function can be used for all STM32F10x devices, - * it is equivalent to FLASH_WaitForLastOperation. - * @param Timeout: FLASH programming Timeout - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_WaitForLastBank1Operation(uint32_t Timeout) -{ - FLASH_Status status = FLASH_COMPLETE; - - /* Check for the Flash Status */ - status = FLASH_GetBank1Status(); - /* Wait for a Flash operation to complete or a TIMEOUT to occur */ - while((status == FLASH_FLAG_BANK1_BSY) && (Timeout != 0x00)) - { - status = FLASH_GetBank1Status(); - Timeout--; - } - if(Timeout == 0x00 ) - { - status = FLASH_TIMEOUT; - } - /* Return the operation status */ - return status; -} - -#ifdef STM32F10X_XL -/** - * @brief Waits for a Flash operation on Bank2 to complete or a TIMEOUT to occur. - * @note This function can be used only for STM32F10x_XL density devices. - * @param Timeout: FLASH programming Timeout - * @retval FLASH Status: The returned value can be: FLASH_ERROR_PG, - * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. - */ -FLASH_Status FLASH_WaitForLastBank2Operation(uint32_t Timeout) -{ - FLASH_Status status = FLASH_COMPLETE; - - /* Check for the Flash Status */ - status = FLASH_GetBank2Status(); - /* Wait for a Flash operation to complete or a TIMEOUT to occur */ - while((status == (FLASH_FLAG_BANK2_BSY & 0x7FFFFFFF)) && (Timeout != 0x00)) - { - status = FLASH_GetBank2Status(); - Timeout--; - } - if(Timeout == 0x00 ) - { - status = FLASH_TIMEOUT; - } - /* Return the operation status */ - return status; -} -#endif /* STM32F10X_XL */ - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c deleted file mode 100644 index c75137ca..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c +++ /dev/null @@ -1,866 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_fsmc.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the FSMC firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_fsmc.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup FSMC - * @brief FSMC driver modules - * @{ - */ - -/** @defgroup FSMC_Private_TypesDefinitions - * @{ - */ -/** - * @} - */ - -/** @defgroup FSMC_Private_Defines - * @{ - */ - -/* --------------------- FSMC registers bit mask ---------------------------- */ - -/* FSMC BCRx Mask */ -#define BCR_MBKEN_Set ((uint32_t)0x00000001) -#define BCR_MBKEN_Reset ((uint32_t)0x000FFFFE) -#define BCR_FACCEN_Set ((uint32_t)0x00000040) - -/* FSMC PCRx Mask */ -#define PCR_PBKEN_Set ((uint32_t)0x00000004) -#define PCR_PBKEN_Reset ((uint32_t)0x000FFFFB) -#define PCR_ECCEN_Set ((uint32_t)0x00000040) -#define PCR_ECCEN_Reset ((uint32_t)0x000FFFBF) -#define PCR_MemoryType_NAND ((uint32_t)0x00000008) -/** - * @} - */ - -/** @defgroup FSMC_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup FSMC_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup FSMC_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup FSMC_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the FSMC NOR/SRAM Banks registers to their default - * reset values. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank1_NORSRAM1: FSMC Bank1 NOR/SRAM1 - * @arg FSMC_Bank1_NORSRAM2: FSMC Bank1 NOR/SRAM2 - * @arg FSMC_Bank1_NORSRAM3: FSMC Bank1 NOR/SRAM3 - * @arg FSMC_Bank1_NORSRAM4: FSMC Bank1 NOR/SRAM4 - * @retval None - */ -void FSMC_NORSRAMDeInit(uint32_t FSMC_Bank) -{ - /* Check the parameter */ - assert_param(IS_FSMC_NORSRAM_BANK(FSMC_Bank)); - - /* FSMC_Bank1_NORSRAM1 */ - if(FSMC_Bank == FSMC_Bank1_NORSRAM1) - { - FSMC_Bank1->BTCR[FSMC_Bank] = 0x000030DB; - } - /* FSMC_Bank1_NORSRAM2, FSMC_Bank1_NORSRAM3 or FSMC_Bank1_NORSRAM4 */ - else - { - FSMC_Bank1->BTCR[FSMC_Bank] = 0x000030D2; - } - FSMC_Bank1->BTCR[FSMC_Bank + 1] = 0x0FFFFFFF; - FSMC_Bank1E->BWTR[FSMC_Bank] = 0x0FFFFFFF; -} - -/** - * @brief Deinitializes the FSMC NAND Banks registers to their default reset values. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank2_NAND: FSMC Bank2 NAND - * @arg FSMC_Bank3_NAND: FSMC Bank3 NAND - * @retval None - */ -void FSMC_NANDDeInit(uint32_t FSMC_Bank) -{ - /* Check the parameter */ - assert_param(IS_FSMC_NAND_BANK(FSMC_Bank)); - - if(FSMC_Bank == FSMC_Bank2_NAND) - { - /* Set the FSMC_Bank2 registers to their reset values */ - FSMC_Bank2->PCR2 = 0x00000018; - FSMC_Bank2->SR2 = 0x00000040; - FSMC_Bank2->PMEM2 = 0xFCFCFCFC; - FSMC_Bank2->PATT2 = 0xFCFCFCFC; - } - /* FSMC_Bank3_NAND */ - else - { - /* Set the FSMC_Bank3 registers to their reset values */ - FSMC_Bank3->PCR3 = 0x00000018; - FSMC_Bank3->SR3 = 0x00000040; - FSMC_Bank3->PMEM3 = 0xFCFCFCFC; - FSMC_Bank3->PATT3 = 0xFCFCFCFC; - } -} - -/** - * @brief Deinitializes the FSMC PCCARD Bank registers to their default reset values. - * @param None - * @retval None - */ -void FSMC_PCCARDDeInit(void) -{ - /* Set the FSMC_Bank4 registers to their reset values */ - FSMC_Bank4->PCR4 = 0x00000018; - FSMC_Bank4->SR4 = 0x00000000; - FSMC_Bank4->PMEM4 = 0xFCFCFCFC; - FSMC_Bank4->PATT4 = 0xFCFCFCFC; - FSMC_Bank4->PIO4 = 0xFCFCFCFC; -} - -/** - * @brief Initializes the FSMC NOR/SRAM Banks according to the specified - * parameters in the FSMC_NORSRAMInitStruct. - * @param FSMC_NORSRAMInitStruct : pointer to a FSMC_NORSRAMInitTypeDef - * structure that contains the configuration information for - * the FSMC NOR/SRAM specified Banks. - * @retval None - */ -void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct) -{ - /* Check the parameters */ - assert_param(IS_FSMC_NORSRAM_BANK(FSMC_NORSRAMInitStruct->FSMC_Bank)); - assert_param(IS_FSMC_MUX(FSMC_NORSRAMInitStruct->FSMC_DataAddressMux)); - assert_param(IS_FSMC_MEMORY(FSMC_NORSRAMInitStruct->FSMC_MemoryType)); - assert_param(IS_FSMC_MEMORY_WIDTH(FSMC_NORSRAMInitStruct->FSMC_MemoryDataWidth)); - assert_param(IS_FSMC_BURSTMODE(FSMC_NORSRAMInitStruct->FSMC_BurstAccessMode)); - assert_param(IS_FSMC_ASYNWAIT(FSMC_NORSRAMInitStruct->FSMC_AsynchronousWait)); - assert_param(IS_FSMC_WAIT_POLARITY(FSMC_NORSRAMInitStruct->FSMC_WaitSignalPolarity)); - assert_param(IS_FSMC_WRAP_MODE(FSMC_NORSRAMInitStruct->FSMC_WrapMode)); - assert_param(IS_FSMC_WAIT_SIGNAL_ACTIVE(FSMC_NORSRAMInitStruct->FSMC_WaitSignalActive)); - assert_param(IS_FSMC_WRITE_OPERATION(FSMC_NORSRAMInitStruct->FSMC_WriteOperation)); - assert_param(IS_FSMC_WAITE_SIGNAL(FSMC_NORSRAMInitStruct->FSMC_WaitSignal)); - assert_param(IS_FSMC_EXTENDED_MODE(FSMC_NORSRAMInitStruct->FSMC_ExtendedMode)); - assert_param(IS_FSMC_WRITE_BURST(FSMC_NORSRAMInitStruct->FSMC_WriteBurst)); - assert_param(IS_FSMC_ADDRESS_SETUP_TIME(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressSetupTime)); - assert_param(IS_FSMC_ADDRESS_HOLD_TIME(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressHoldTime)); - assert_param(IS_FSMC_DATASETUP_TIME(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataSetupTime)); - assert_param(IS_FSMC_TURNAROUND_TIME(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_BusTurnAroundDuration)); - assert_param(IS_FSMC_CLK_DIV(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_CLKDivision)); - assert_param(IS_FSMC_DATA_LATENCY(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataLatency)); - assert_param(IS_FSMC_ACCESS_MODE(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AccessMode)); - - /* Bank1 NOR/SRAM control register configuration */ - FSMC_Bank1->BTCR[FSMC_NORSRAMInitStruct->FSMC_Bank] = - (uint32_t)FSMC_NORSRAMInitStruct->FSMC_DataAddressMux | - FSMC_NORSRAMInitStruct->FSMC_MemoryType | - FSMC_NORSRAMInitStruct->FSMC_MemoryDataWidth | - FSMC_NORSRAMInitStruct->FSMC_BurstAccessMode | - FSMC_NORSRAMInitStruct->FSMC_AsynchronousWait | - FSMC_NORSRAMInitStruct->FSMC_WaitSignalPolarity | - FSMC_NORSRAMInitStruct->FSMC_WrapMode | - FSMC_NORSRAMInitStruct->FSMC_WaitSignalActive | - FSMC_NORSRAMInitStruct->FSMC_WriteOperation | - FSMC_NORSRAMInitStruct->FSMC_WaitSignal | - FSMC_NORSRAMInitStruct->FSMC_ExtendedMode | - FSMC_NORSRAMInitStruct->FSMC_WriteBurst; - - if(FSMC_NORSRAMInitStruct->FSMC_MemoryType == FSMC_MemoryType_NOR) - { - FSMC_Bank1->BTCR[FSMC_NORSRAMInitStruct->FSMC_Bank] |= (uint32_t)BCR_FACCEN_Set; - } - - /* Bank1 NOR/SRAM timing register configuration */ - FSMC_Bank1->BTCR[FSMC_NORSRAMInitStruct->FSMC_Bank+1] = - (uint32_t)FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressSetupTime | - (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressHoldTime << 4) | - (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataSetupTime << 8) | - (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_BusTurnAroundDuration << 16) | - (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_CLKDivision << 20) | - (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataLatency << 24) | - FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AccessMode; - - - /* Bank1 NOR/SRAM timing register for write configuration, if extended mode is used */ - if(FSMC_NORSRAMInitStruct->FSMC_ExtendedMode == FSMC_ExtendedMode_Enable) - { - assert_param(IS_FSMC_ADDRESS_SETUP_TIME(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressSetupTime)); - assert_param(IS_FSMC_ADDRESS_HOLD_TIME(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressHoldTime)); - assert_param(IS_FSMC_DATASETUP_TIME(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataSetupTime)); - assert_param(IS_FSMC_CLK_DIV(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_CLKDivision)); - assert_param(IS_FSMC_DATA_LATENCY(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataLatency)); - assert_param(IS_FSMC_ACCESS_MODE(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AccessMode)); - FSMC_Bank1E->BWTR[FSMC_NORSRAMInitStruct->FSMC_Bank] = - (uint32_t)FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressSetupTime | - (FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressHoldTime << 4 )| - (FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataSetupTime << 8) | - (FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_CLKDivision << 20) | - (FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataLatency << 24) | - FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AccessMode; - } - else - { - FSMC_Bank1E->BWTR[FSMC_NORSRAMInitStruct->FSMC_Bank] = 0x0FFFFFFF; - } -} - -/** - * @brief Initializes the FSMC NAND Banks according to the specified - * parameters in the FSMC_NANDInitStruct. - * @param FSMC_NANDInitStruct : pointer to a FSMC_NANDInitTypeDef - * structure that contains the configuration information for the FSMC - * NAND specified Banks. - * @retval None - */ -void FSMC_NANDInit(FSMC_NANDInitTypeDef* FSMC_NANDInitStruct) -{ - uint32_t tmppcr = 0x00000000, tmppmem = 0x00000000, tmppatt = 0x00000000; - - /* Check the parameters */ - assert_param( IS_FSMC_NAND_BANK(FSMC_NANDInitStruct->FSMC_Bank)); - assert_param( IS_FSMC_WAIT_FEATURE(FSMC_NANDInitStruct->FSMC_Waitfeature)); - assert_param( IS_FSMC_MEMORY_WIDTH(FSMC_NANDInitStruct->FSMC_MemoryDataWidth)); - assert_param( IS_FSMC_ECC_STATE(FSMC_NANDInitStruct->FSMC_ECC)); - assert_param( IS_FSMC_ECCPAGE_SIZE(FSMC_NANDInitStruct->FSMC_ECCPageSize)); - assert_param( IS_FSMC_TCLR_TIME(FSMC_NANDInitStruct->FSMC_TCLRSetupTime)); - assert_param( IS_FSMC_TAR_TIME(FSMC_NANDInitStruct->FSMC_TARSetupTime)); - assert_param(IS_FSMC_SETUP_TIME(FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_SetupTime)); - assert_param(IS_FSMC_WAIT_TIME(FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_WaitSetupTime)); - assert_param(IS_FSMC_HOLD_TIME(FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HoldSetupTime)); - assert_param(IS_FSMC_HIZ_TIME(FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HiZSetupTime)); - assert_param(IS_FSMC_SETUP_TIME(FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_SetupTime)); - assert_param(IS_FSMC_WAIT_TIME(FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_WaitSetupTime)); - assert_param(IS_FSMC_HOLD_TIME(FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HoldSetupTime)); - assert_param(IS_FSMC_HIZ_TIME(FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HiZSetupTime)); - - /* Set the tmppcr value according to FSMC_NANDInitStruct parameters */ - tmppcr = (uint32_t)FSMC_NANDInitStruct->FSMC_Waitfeature | - PCR_MemoryType_NAND | - FSMC_NANDInitStruct->FSMC_MemoryDataWidth | - FSMC_NANDInitStruct->FSMC_ECC | - FSMC_NANDInitStruct->FSMC_ECCPageSize | - (FSMC_NANDInitStruct->FSMC_TCLRSetupTime << 9 )| - (FSMC_NANDInitStruct->FSMC_TARSetupTime << 13); - - /* Set tmppmem value according to FSMC_CommonSpaceTimingStructure parameters */ - tmppmem = (uint32_t)FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_SetupTime | - (FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_WaitSetupTime << 8) | - (FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HoldSetupTime << 16)| - (FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HiZSetupTime << 24); - - /* Set tmppatt value according to FSMC_AttributeSpaceTimingStructure parameters */ - tmppatt = (uint32_t)FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_SetupTime | - (FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_WaitSetupTime << 8) | - (FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HoldSetupTime << 16)| - (FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HiZSetupTime << 24); - - if(FSMC_NANDInitStruct->FSMC_Bank == FSMC_Bank2_NAND) - { - /* FSMC_Bank2_NAND registers configuration */ - FSMC_Bank2->PCR2 = tmppcr; - FSMC_Bank2->PMEM2 = tmppmem; - FSMC_Bank2->PATT2 = tmppatt; - } - else - { - /* FSMC_Bank3_NAND registers configuration */ - FSMC_Bank3->PCR3 = tmppcr; - FSMC_Bank3->PMEM3 = tmppmem; - FSMC_Bank3->PATT3 = tmppatt; - } -} - -/** - * @brief Initializes the FSMC PCCARD Bank according to the specified - * parameters in the FSMC_PCCARDInitStruct. - * @param FSMC_PCCARDInitStruct : pointer to a FSMC_PCCARDInitTypeDef - * structure that contains the configuration information for the FSMC - * PCCARD Bank. - * @retval None - */ -void FSMC_PCCARDInit(FSMC_PCCARDInitTypeDef* FSMC_PCCARDInitStruct) -{ - /* Check the parameters */ - assert_param(IS_FSMC_WAIT_FEATURE(FSMC_PCCARDInitStruct->FSMC_Waitfeature)); - assert_param(IS_FSMC_TCLR_TIME(FSMC_PCCARDInitStruct->FSMC_TCLRSetupTime)); - assert_param(IS_FSMC_TAR_TIME(FSMC_PCCARDInitStruct->FSMC_TARSetupTime)); - - assert_param(IS_FSMC_SETUP_TIME(FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_SetupTime)); - assert_param(IS_FSMC_WAIT_TIME(FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_WaitSetupTime)); - assert_param(IS_FSMC_HOLD_TIME(FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HoldSetupTime)); - assert_param(IS_FSMC_HIZ_TIME(FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HiZSetupTime)); - - assert_param(IS_FSMC_SETUP_TIME(FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_SetupTime)); - assert_param(IS_FSMC_WAIT_TIME(FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_WaitSetupTime)); - assert_param(IS_FSMC_HOLD_TIME(FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HoldSetupTime)); - assert_param(IS_FSMC_HIZ_TIME(FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HiZSetupTime)); - assert_param(IS_FSMC_SETUP_TIME(FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_SetupTime)); - assert_param(IS_FSMC_WAIT_TIME(FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_WaitSetupTime)); - assert_param(IS_FSMC_HOLD_TIME(FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_HoldSetupTime)); - assert_param(IS_FSMC_HIZ_TIME(FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_HiZSetupTime)); - - /* Set the PCR4 register value according to FSMC_PCCARDInitStruct parameters */ - FSMC_Bank4->PCR4 = (uint32_t)FSMC_PCCARDInitStruct->FSMC_Waitfeature | - FSMC_MemoryDataWidth_16b | - (FSMC_PCCARDInitStruct->FSMC_TCLRSetupTime << 9) | - (FSMC_PCCARDInitStruct->FSMC_TARSetupTime << 13); - - /* Set PMEM4 register value according to FSMC_CommonSpaceTimingStructure parameters */ - FSMC_Bank4->PMEM4 = (uint32_t)FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_SetupTime | - (FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_WaitSetupTime << 8) | - (FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HoldSetupTime << 16)| - (FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HiZSetupTime << 24); - - /* Set PATT4 register value according to FSMC_AttributeSpaceTimingStructure parameters */ - FSMC_Bank4->PATT4 = (uint32_t)FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_SetupTime | - (FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_WaitSetupTime << 8) | - (FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HoldSetupTime << 16)| - (FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HiZSetupTime << 24); - - /* Set PIO4 register value according to FSMC_IOSpaceTimingStructure parameters */ - FSMC_Bank4->PIO4 = (uint32_t)FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_SetupTime | - (FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_WaitSetupTime << 8) | - (FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_HoldSetupTime << 16)| - (FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_HiZSetupTime << 24); -} - -/** - * @brief Fills each FSMC_NORSRAMInitStruct member with its default value. - * @param FSMC_NORSRAMInitStruct: pointer to a FSMC_NORSRAMInitTypeDef - * structure which will be initialized. - * @retval None - */ -void FSMC_NORSRAMStructInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct) -{ - /* Reset NOR/SRAM Init structure parameters values */ - FSMC_NORSRAMInitStruct->FSMC_Bank = FSMC_Bank1_NORSRAM1; - FSMC_NORSRAMInitStruct->FSMC_DataAddressMux = FSMC_DataAddressMux_Enable; - FSMC_NORSRAMInitStruct->FSMC_MemoryType = FSMC_MemoryType_SRAM; - FSMC_NORSRAMInitStruct->FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b; - FSMC_NORSRAMInitStruct->FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; - FSMC_NORSRAMInitStruct->FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; - FSMC_NORSRAMInitStruct->FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; - FSMC_NORSRAMInitStruct->FSMC_WrapMode = FSMC_WrapMode_Disable; - FSMC_NORSRAMInitStruct->FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; - FSMC_NORSRAMInitStruct->FSMC_WriteOperation = FSMC_WriteOperation_Enable; - FSMC_NORSRAMInitStruct->FSMC_WaitSignal = FSMC_WaitSignal_Enable; - FSMC_NORSRAMInitStruct->FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; - FSMC_NORSRAMInitStruct->FSMC_WriteBurst = FSMC_WriteBurst_Disable; - FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressSetupTime = 0xF; - FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressHoldTime = 0xF; - FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataSetupTime = 0xFF; - FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_BusTurnAroundDuration = 0xF; - FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_CLKDivision = 0xF; - FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataLatency = 0xF; - FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AccessMode = FSMC_AccessMode_A; - FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressSetupTime = 0xF; - FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressHoldTime = 0xF; - FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataSetupTime = 0xFF; - FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_BusTurnAroundDuration = 0xF; - FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_CLKDivision = 0xF; - FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataLatency = 0xF; - FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AccessMode = FSMC_AccessMode_A; -} - -/** - * @brief Fills each FSMC_NANDInitStruct member with its default value. - * @param FSMC_NANDInitStruct: pointer to a FSMC_NANDInitTypeDef - * structure which will be initialized. - * @retval None - */ -void FSMC_NANDStructInit(FSMC_NANDInitTypeDef* FSMC_NANDInitStruct) -{ - /* Reset NAND Init structure parameters values */ - FSMC_NANDInitStruct->FSMC_Bank = FSMC_Bank2_NAND; - FSMC_NANDInitStruct->FSMC_Waitfeature = FSMC_Waitfeature_Disable; - FSMC_NANDInitStruct->FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b; - FSMC_NANDInitStruct->FSMC_ECC = FSMC_ECC_Disable; - FSMC_NANDInitStruct->FSMC_ECCPageSize = FSMC_ECCPageSize_256Bytes; - FSMC_NANDInitStruct->FSMC_TCLRSetupTime = 0x0; - FSMC_NANDInitStruct->FSMC_TARSetupTime = 0x0; - FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_SetupTime = 0xFC; - FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_WaitSetupTime = 0xFC; - FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HoldSetupTime = 0xFC; - FSMC_NANDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HiZSetupTime = 0xFC; - FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_SetupTime = 0xFC; - FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_WaitSetupTime = 0xFC; - FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HoldSetupTime = 0xFC; - FSMC_NANDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HiZSetupTime = 0xFC; -} - -/** - * @brief Fills each FSMC_PCCARDInitStruct member with its default value. - * @param FSMC_PCCARDInitStruct: pointer to a FSMC_PCCARDInitTypeDef - * structure which will be initialized. - * @retval None - */ -void FSMC_PCCARDStructInit(FSMC_PCCARDInitTypeDef* FSMC_PCCARDInitStruct) -{ - /* Reset PCCARD Init structure parameters values */ - FSMC_PCCARDInitStruct->FSMC_Waitfeature = FSMC_Waitfeature_Disable; - FSMC_PCCARDInitStruct->FSMC_TCLRSetupTime = 0x0; - FSMC_PCCARDInitStruct->FSMC_TARSetupTime = 0x0; - FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_SetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_WaitSetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HoldSetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_CommonSpaceTimingStruct->FSMC_HiZSetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_SetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_WaitSetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HoldSetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_AttributeSpaceTimingStruct->FSMC_HiZSetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_SetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_WaitSetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_HoldSetupTime = 0xFC; - FSMC_PCCARDInitStruct->FSMC_IOSpaceTimingStruct->FSMC_HiZSetupTime = 0xFC; -} - -/** - * @brief Enables or disables the specified NOR/SRAM Memory Bank. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank1_NORSRAM1: FSMC Bank1 NOR/SRAM1 - * @arg FSMC_Bank1_NORSRAM2: FSMC Bank1 NOR/SRAM2 - * @arg FSMC_Bank1_NORSRAM3: FSMC Bank1 NOR/SRAM3 - * @arg FSMC_Bank1_NORSRAM4: FSMC Bank1 NOR/SRAM4 - * @param NewState: new state of the FSMC_Bank. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void FSMC_NORSRAMCmd(uint32_t FSMC_Bank, FunctionalState NewState) -{ - assert_param(IS_FSMC_NORSRAM_BANK(FSMC_Bank)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the selected NOR/SRAM Bank by setting the PBKEN bit in the BCRx register */ - FSMC_Bank1->BTCR[FSMC_Bank] |= BCR_MBKEN_Set; - } - else - { - /* Disable the selected NOR/SRAM Bank by clearing the PBKEN bit in the BCRx register */ - FSMC_Bank1->BTCR[FSMC_Bank] &= BCR_MBKEN_Reset; - } -} - -/** - * @brief Enables or disables the specified NAND Memory Bank. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank2_NAND: FSMC Bank2 NAND - * @arg FSMC_Bank3_NAND: FSMC Bank3 NAND - * @param NewState: new state of the FSMC_Bank. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void FSMC_NANDCmd(uint32_t FSMC_Bank, FunctionalState NewState) -{ - assert_param(IS_FSMC_NAND_BANK(FSMC_Bank)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the selected NAND Bank by setting the PBKEN bit in the PCRx register */ - if(FSMC_Bank == FSMC_Bank2_NAND) - { - FSMC_Bank2->PCR2 |= PCR_PBKEN_Set; - } - else - { - FSMC_Bank3->PCR3 |= PCR_PBKEN_Set; - } - } - else - { - /* Disable the selected NAND Bank by clearing the PBKEN bit in the PCRx register */ - if(FSMC_Bank == FSMC_Bank2_NAND) - { - FSMC_Bank2->PCR2 &= PCR_PBKEN_Reset; - } - else - { - FSMC_Bank3->PCR3 &= PCR_PBKEN_Reset; - } - } -} - -/** - * @brief Enables or disables the PCCARD Memory Bank. - * @param NewState: new state of the PCCARD Memory Bank. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void FSMC_PCCARDCmd(FunctionalState NewState) -{ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the PCCARD Bank by setting the PBKEN bit in the PCR4 register */ - FSMC_Bank4->PCR4 |= PCR_PBKEN_Set; - } - else - { - /* Disable the PCCARD Bank by clearing the PBKEN bit in the PCR4 register */ - FSMC_Bank4->PCR4 &= PCR_PBKEN_Reset; - } -} - -/** - * @brief Enables or disables the FSMC NAND ECC feature. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank2_NAND: FSMC Bank2 NAND - * @arg FSMC_Bank3_NAND: FSMC Bank3 NAND - * @param NewState: new state of the FSMC NAND ECC feature. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void FSMC_NANDECCCmd(uint32_t FSMC_Bank, FunctionalState NewState) -{ - assert_param(IS_FSMC_NAND_BANK(FSMC_Bank)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the selected NAND Bank ECC function by setting the ECCEN bit in the PCRx register */ - if(FSMC_Bank == FSMC_Bank2_NAND) - { - FSMC_Bank2->PCR2 |= PCR_ECCEN_Set; - } - else - { - FSMC_Bank3->PCR3 |= PCR_ECCEN_Set; - } - } - else - { - /* Disable the selected NAND Bank ECC function by clearing the ECCEN bit in the PCRx register */ - if(FSMC_Bank == FSMC_Bank2_NAND) - { - FSMC_Bank2->PCR2 &= PCR_ECCEN_Reset; - } - else - { - FSMC_Bank3->PCR3 &= PCR_ECCEN_Reset; - } - } -} - -/** - * @brief Returns the error correction code register value. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank2_NAND: FSMC Bank2 NAND - * @arg FSMC_Bank3_NAND: FSMC Bank3 NAND - * @retval The Error Correction Code (ECC) value. - */ -uint32_t FSMC_GetECC(uint32_t FSMC_Bank) -{ - uint32_t eccval = 0x00000000; - - if(FSMC_Bank == FSMC_Bank2_NAND) - { - /* Get the ECCR2 register value */ - eccval = FSMC_Bank2->ECCR2; - } - else - { - /* Get the ECCR3 register value */ - eccval = FSMC_Bank3->ECCR3; - } - /* Return the error correction code value */ - return(eccval); -} - -/** - * @brief Enables or disables the specified FSMC interrupts. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank2_NAND: FSMC Bank2 NAND - * @arg FSMC_Bank3_NAND: FSMC Bank3 NAND - * @arg FSMC_Bank4_PCCARD: FSMC Bank4 PCCARD - * @param FSMC_IT: specifies the FSMC interrupt sources to be enabled or disabled. - * This parameter can be any combination of the following values: - * @arg FSMC_IT_RisingEdge: Rising edge detection interrupt. - * @arg FSMC_IT_Level: Level edge detection interrupt. - * @arg FSMC_IT_FallingEdge: Falling edge detection interrupt. - * @param NewState: new state of the specified FSMC interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void FSMC_ITConfig(uint32_t FSMC_Bank, uint32_t FSMC_IT, FunctionalState NewState) -{ - assert_param(IS_FSMC_IT_BANK(FSMC_Bank)); - assert_param(IS_FSMC_IT(FSMC_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the selected FSMC_Bank2 interrupts */ - if(FSMC_Bank == FSMC_Bank2_NAND) - { - FSMC_Bank2->SR2 |= FSMC_IT; - } - /* Enable the selected FSMC_Bank3 interrupts */ - else if (FSMC_Bank == FSMC_Bank3_NAND) - { - FSMC_Bank3->SR3 |= FSMC_IT; - } - /* Enable the selected FSMC_Bank4 interrupts */ - else - { - FSMC_Bank4->SR4 |= FSMC_IT; - } - } - else - { - /* Disable the selected FSMC_Bank2 interrupts */ - if(FSMC_Bank == FSMC_Bank2_NAND) - { - - FSMC_Bank2->SR2 &= (uint32_t)~FSMC_IT; - } - /* Disable the selected FSMC_Bank3 interrupts */ - else if (FSMC_Bank == FSMC_Bank3_NAND) - { - FSMC_Bank3->SR3 &= (uint32_t)~FSMC_IT; - } - /* Disable the selected FSMC_Bank4 interrupts */ - else - { - FSMC_Bank4->SR4 &= (uint32_t)~FSMC_IT; - } - } -} - -/** - * @brief Checks whether the specified FSMC flag is set or not. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank2_NAND: FSMC Bank2 NAND - * @arg FSMC_Bank3_NAND: FSMC Bank3 NAND - * @arg FSMC_Bank4_PCCARD: FSMC Bank4 PCCARD - * @param FSMC_FLAG: specifies the flag to check. - * This parameter can be one of the following values: - * @arg FSMC_FLAG_RisingEdge: Rising egde detection Flag. - * @arg FSMC_FLAG_Level: Level detection Flag. - * @arg FSMC_FLAG_FallingEdge: Falling egde detection Flag. - * @arg FSMC_FLAG_FEMPT: Fifo empty Flag. - * @retval The new state of FSMC_FLAG (SET or RESET). - */ -FlagStatus FSMC_GetFlagStatus(uint32_t FSMC_Bank, uint32_t FSMC_FLAG) -{ - FlagStatus bitstatus = RESET; - uint32_t tmpsr = 0x00000000; - - /* Check the parameters */ - assert_param(IS_FSMC_GETFLAG_BANK(FSMC_Bank)); - assert_param(IS_FSMC_GET_FLAG(FSMC_FLAG)); - - if(FSMC_Bank == FSMC_Bank2_NAND) - { - tmpsr = FSMC_Bank2->SR2; - } - else if(FSMC_Bank == FSMC_Bank3_NAND) - { - tmpsr = FSMC_Bank3->SR3; - } - /* FSMC_Bank4_PCCARD*/ - else - { - tmpsr = FSMC_Bank4->SR4; - } - - /* Get the flag status */ - if ((tmpsr & FSMC_FLAG) != (uint16_t)RESET ) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - /* Return the flag status */ - return bitstatus; -} - -/** - * @brief Clears the FSMC's pending flags. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank2_NAND: FSMC Bank2 NAND - * @arg FSMC_Bank3_NAND: FSMC Bank3 NAND - * @arg FSMC_Bank4_PCCARD: FSMC Bank4 PCCARD - * @param FSMC_FLAG: specifies the flag to clear. - * This parameter can be any combination of the following values: - * @arg FSMC_FLAG_RisingEdge: Rising egde detection Flag. - * @arg FSMC_FLAG_Level: Level detection Flag. - * @arg FSMC_FLAG_FallingEdge: Falling egde detection Flag. - * @retval None - */ -void FSMC_ClearFlag(uint32_t FSMC_Bank, uint32_t FSMC_FLAG) -{ - /* Check the parameters */ - assert_param(IS_FSMC_GETFLAG_BANK(FSMC_Bank)); - assert_param(IS_FSMC_CLEAR_FLAG(FSMC_FLAG)) ; - - if(FSMC_Bank == FSMC_Bank2_NAND) - { - FSMC_Bank2->SR2 &= ~FSMC_FLAG; - } - else if(FSMC_Bank == FSMC_Bank3_NAND) - { - FSMC_Bank3->SR3 &= ~FSMC_FLAG; - } - /* FSMC_Bank4_PCCARD*/ - else - { - FSMC_Bank4->SR4 &= ~FSMC_FLAG; - } -} - -/** - * @brief Checks whether the specified FSMC interrupt has occurred or not. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank2_NAND: FSMC Bank2 NAND - * @arg FSMC_Bank3_NAND: FSMC Bank3 NAND - * @arg FSMC_Bank4_PCCARD: FSMC Bank4 PCCARD - * @param FSMC_IT: specifies the FSMC interrupt source to check. - * This parameter can be one of the following values: - * @arg FSMC_IT_RisingEdge: Rising edge detection interrupt. - * @arg FSMC_IT_Level: Level edge detection interrupt. - * @arg FSMC_IT_FallingEdge: Falling edge detection interrupt. - * @retval The new state of FSMC_IT (SET or RESET). - */ -ITStatus FSMC_GetITStatus(uint32_t FSMC_Bank, uint32_t FSMC_IT) -{ - ITStatus bitstatus = RESET; - uint32_t tmpsr = 0x0, itstatus = 0x0, itenable = 0x0; - - /* Check the parameters */ - assert_param(IS_FSMC_IT_BANK(FSMC_Bank)); - assert_param(IS_FSMC_GET_IT(FSMC_IT)); - - if(FSMC_Bank == FSMC_Bank2_NAND) - { - tmpsr = FSMC_Bank2->SR2; - } - else if(FSMC_Bank == FSMC_Bank3_NAND) - { - tmpsr = FSMC_Bank3->SR3; - } - /* FSMC_Bank4_PCCARD*/ - else - { - tmpsr = FSMC_Bank4->SR4; - } - - itstatus = tmpsr & FSMC_IT; - - itenable = tmpsr & (FSMC_IT >> 3); - if ((itstatus != (uint32_t)RESET) && (itenable != (uint32_t)RESET)) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the FSMC's interrupt pending bits. - * @param FSMC_Bank: specifies the FSMC Bank to be used - * This parameter can be one of the following values: - * @arg FSMC_Bank2_NAND: FSMC Bank2 NAND - * @arg FSMC_Bank3_NAND: FSMC Bank3 NAND - * @arg FSMC_Bank4_PCCARD: FSMC Bank4 PCCARD - * @param FSMC_IT: specifies the interrupt pending bit to clear. - * This parameter can be any combination of the following values: - * @arg FSMC_IT_RisingEdge: Rising edge detection interrupt. - * @arg FSMC_IT_Level: Level edge detection interrupt. - * @arg FSMC_IT_FallingEdge: Falling edge detection interrupt. - * @retval None - */ -void FSMC_ClearITPendingBit(uint32_t FSMC_Bank, uint32_t FSMC_IT) -{ - /* Check the parameters */ - assert_param(IS_FSMC_IT_BANK(FSMC_Bank)); - assert_param(IS_FSMC_IT(FSMC_IT)); - - if(FSMC_Bank == FSMC_Bank2_NAND) - { - FSMC_Bank2->SR2 &= ~(FSMC_IT >> 3); - } - else if(FSMC_Bank == FSMC_Bank3_NAND) - { - FSMC_Bank3->SR3 &= ~(FSMC_IT >> 3); - } - /* FSMC_Bank4_PCCARD*/ - else - { - FSMC_Bank4->SR4 &= ~(FSMC_IT >> 3); - } -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c deleted file mode 100644 index 93dbcd7c..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c +++ /dev/null @@ -1,650 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_gpio.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the GPIO firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_gpio.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup GPIO - * @brief GPIO driver modules - * @{ - */ - -/** @defgroup GPIO_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup GPIO_Private_Defines - * @{ - */ - -/* ------------ RCC registers bit address in the alias region ----------------*/ -#define AFIO_OFFSET (AFIO_BASE - PERIPH_BASE) - -/* --- EVENTCR Register -----*/ - -/* Alias word address of EVOE bit */ -#define EVCR_OFFSET (AFIO_OFFSET + 0x00) -#define EVOE_BitNumber ((uint8_t)0x07) -#define EVCR_EVOE_BB (PERIPH_BB_BASE + (EVCR_OFFSET * 32) + (EVOE_BitNumber * 4)) - - -/* --- MAPR Register ---*/ -/* Alias word address of MII_RMII_SEL bit */ -#define MAPR_OFFSET (AFIO_OFFSET + 0x04) -#define MII_RMII_SEL_BitNumber ((u8)0x17) -#define MAPR_MII_RMII_SEL_BB (PERIPH_BB_BASE + (MAPR_OFFSET * 32) + (MII_RMII_SEL_BitNumber * 4)) - - -#define EVCR_PORTPINCONFIG_MASK ((uint16_t)0xFF80) -#define LSB_MASK ((uint16_t)0xFFFF) -#define DBGAFR_POSITION_MASK ((uint32_t)0x000F0000) -#define DBGAFR_SWJCFG_MASK ((uint32_t)0xF0FFFFFF) -#define DBGAFR_LOCATION_MASK ((uint32_t)0x00200000) -#define DBGAFR_NUMBITS_MASK ((uint32_t)0x00100000) -/** - * @} - */ - -/** @defgroup GPIO_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup GPIO_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup GPIO_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup GPIO_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the GPIOx peripheral registers to their default reset values. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @retval None - */ -void GPIO_DeInit(GPIO_TypeDef* GPIOx) -{ - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - - if (GPIOx == GPIOA) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE); - } - else if (GPIOx == GPIOB) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, DISABLE); - } - else if (GPIOx == GPIOC) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, DISABLE); - } - else if (GPIOx == GPIOD) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, DISABLE); - } - else if (GPIOx == GPIOE) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, DISABLE); - } - else if (GPIOx == GPIOF) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, DISABLE); - } - else - { - if (GPIOx == GPIOG) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, DISABLE); - } - } -} - -/** - * @brief Deinitializes the Alternate Functions (remap, event control - * and EXTI configuration) registers to their default reset values. - * @param None - * @retval None - */ -void GPIO_AFIODeInit(void) -{ - RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, DISABLE); -} - -/** - * @brief Initializes the GPIOx peripheral according to the specified - * parameters in the GPIO_InitStruct. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @param GPIO_InitStruct: pointer to a GPIO_InitTypeDef structure that - * contains the configuration information for the specified GPIO peripheral. - * @retval None - */ -void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) -{ - uint32_t currentmode = 0x00, currentpin = 0x00, pinpos = 0x00, pos = 0x00; - uint32_t tmpreg = 0x00, pinmask = 0x00; - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode)); - assert_param(IS_GPIO_PIN(GPIO_InitStruct->GPIO_Pin)); - -/*---------------------------- GPIO Mode Configuration -----------------------*/ - currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F); - if ((((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x10)) != 0x00) - { - /* Check the parameters */ - assert_param(IS_GPIO_SPEED(GPIO_InitStruct->GPIO_Speed)); - /* Output mode */ - currentmode |= (uint32_t)GPIO_InitStruct->GPIO_Speed; - } -/*---------------------------- GPIO CRL Configuration ------------------------*/ - /* Configure the eight low port pins */ - if (((uint32_t)GPIO_InitStruct->GPIO_Pin & ((uint32_t)0x00FF)) != 0x00) - { - tmpreg = GPIOx->CRL; - for (pinpos = 0x00; pinpos < 0x08; pinpos++) - { - pos = ((uint32_t)0x01) << pinpos; - /* Get the port pins position */ - currentpin = (GPIO_InitStruct->GPIO_Pin) & pos; - if (currentpin == pos) - { - pos = pinpos << 2; - /* Clear the corresponding low control register bits */ - pinmask = ((uint32_t)0x0F) << pos; - tmpreg &= ~pinmask; - /* Write the mode configuration in the corresponding bits */ - tmpreg |= (currentmode << pos); - /* Reset the corresponding ODR bit */ - if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) - { - GPIOx->BRR = (((uint32_t)0x01) << pinpos); - } - else - { - /* Set the corresponding ODR bit */ - if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) - { - GPIOx->BSRR = (((uint32_t)0x01) << pinpos); - } - } - } - } - GPIOx->CRL = tmpreg; - } -/*---------------------------- GPIO CRH Configuration ------------------------*/ - /* Configure the eight high port pins */ - if (GPIO_InitStruct->GPIO_Pin > 0x00FF) - { - tmpreg = GPIOx->CRH; - for (pinpos = 0x00; pinpos < 0x08; pinpos++) - { - pos = (((uint32_t)0x01) << (pinpos + 0x08)); - /* Get the port pins position */ - currentpin = ((GPIO_InitStruct->GPIO_Pin) & pos); - if (currentpin == pos) - { - pos = pinpos << 2; - /* Clear the corresponding high control register bits */ - pinmask = ((uint32_t)0x0F) << pos; - tmpreg &= ~pinmask; - /* Write the mode configuration in the corresponding bits */ - tmpreg |= (currentmode << pos); - /* Reset the corresponding ODR bit */ - if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) - { - GPIOx->BRR = (((uint32_t)0x01) << (pinpos + 0x08)); - } - /* Set the corresponding ODR bit */ - if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) - { - GPIOx->BSRR = (((uint32_t)0x01) << (pinpos + 0x08)); - } - } - } - GPIOx->CRH = tmpreg; - } -} - -/** - * @brief Fills each GPIO_InitStruct member with its default value. - * @param GPIO_InitStruct : pointer to a GPIO_InitTypeDef structure which will - * be initialized. - * @retval None - */ -void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct) -{ - /* Reset GPIO init structure parameters values */ - GPIO_InitStruct->GPIO_Pin = GPIO_Pin_All; - GPIO_InitStruct->GPIO_Speed = GPIO_Speed_2MHz; - GPIO_InitStruct->GPIO_Mode = GPIO_Mode_IN_FLOATING; -} - -/** - * @brief Reads the specified input port pin. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @param GPIO_Pin: specifies the port bit to read. - * This parameter can be GPIO_Pin_x where x can be (0..15). - * @retval The input port pin value. - */ -uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) -{ - uint8_t bitstatus = 0x00; - - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); - - if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET) - { - bitstatus = (uint8_t)Bit_SET; - } - else - { - bitstatus = (uint8_t)Bit_RESET; - } - return bitstatus; -} - -/** - * @brief Reads the specified GPIO input data port. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @retval GPIO input data port value. - */ -uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx) -{ - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - - return ((uint16_t)GPIOx->IDR); -} - -/** - * @brief Reads the specified output data port bit. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @param GPIO_Pin: specifies the port bit to read. - * This parameter can be GPIO_Pin_x where x can be (0..15). - * @retval The output port pin value. - */ -uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) -{ - uint8_t bitstatus = 0x00; - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); - - if ((GPIOx->ODR & GPIO_Pin) != (uint32_t)Bit_RESET) - { - bitstatus = (uint8_t)Bit_SET; - } - else - { - bitstatus = (uint8_t)Bit_RESET; - } - return bitstatus; -} - -/** - * @brief Reads the specified GPIO output data port. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @retval GPIO output data port value. - */ -uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx) -{ - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - - return ((uint16_t)GPIOx->ODR); -} - -/** - * @brief Sets the selected data port bits. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @param GPIO_Pin: specifies the port bits to be written. - * This parameter can be any combination of GPIO_Pin_x where x can be (0..15). - * @retval None - */ -void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) -{ - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - assert_param(IS_GPIO_PIN(GPIO_Pin)); - - GPIOx->BSRR = GPIO_Pin; -} - -/** - * @brief Clears the selected data port bits. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @param GPIO_Pin: specifies the port bits to be written. - * This parameter can be any combination of GPIO_Pin_x where x can be (0..15). - * @retval None - */ -void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) -{ - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - assert_param(IS_GPIO_PIN(GPIO_Pin)); - - GPIOx->BRR = GPIO_Pin; -} - -/** - * @brief Sets or clears the selected data port bit. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @param GPIO_Pin: specifies the port bit to be written. - * This parameter can be one of GPIO_Pin_x where x can be (0..15). - * @param BitVal: specifies the value to be written to the selected bit. - * This parameter can be one of the BitAction enum values: - * @arg Bit_RESET: to clear the port pin - * @arg Bit_SET: to set the port pin - * @retval None - */ -void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal) -{ - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); - assert_param(IS_GPIO_BIT_ACTION(BitVal)); - - if (BitVal != Bit_RESET) - { - GPIOx->BSRR = GPIO_Pin; - } - else - { - GPIOx->BRR = GPIO_Pin; - } -} - -/** - * @brief Writes data to the specified GPIO data port. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @param PortVal: specifies the value to be written to the port output data register. - * @retval None - */ -void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal) -{ - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - - GPIOx->ODR = PortVal; -} - -/** - * @brief Locks GPIO Pins configuration registers. - * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. - * @param GPIO_Pin: specifies the port bit to be written. - * This parameter can be any combination of GPIO_Pin_x where x can be (0..15). - * @retval None - */ -void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) -{ - uint32_t tmp = 0x00010000; - - /* Check the parameters */ - assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); - assert_param(IS_GPIO_PIN(GPIO_Pin)); - - tmp |= GPIO_Pin; - /* Set LCKK bit */ - GPIOx->LCKR = tmp; - /* Reset LCKK bit */ - GPIOx->LCKR = GPIO_Pin; - /* Set LCKK bit */ - GPIOx->LCKR = tmp; - /* Read LCKK bit*/ - tmp = GPIOx->LCKR; - /* Read LCKK bit*/ - tmp = GPIOx->LCKR; -} - -/** - * @brief Selects the GPIO pin used as Event output. - * @param GPIO_PortSource: selects the GPIO port to be used as source - * for Event output. - * This parameter can be GPIO_PortSourceGPIOx where x can be (A..E). - * @param GPIO_PinSource: specifies the pin for the Event output. - * This parameter can be GPIO_PinSourcex where x can be (0..15). - * @retval None - */ -void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource) -{ - uint32_t tmpreg = 0x00; - /* Check the parameters */ - assert_param(IS_GPIO_EVENTOUT_PORT_SOURCE(GPIO_PortSource)); - assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource)); - - tmpreg = AFIO->EVCR; - /* Clear the PORT[6:4] and PIN[3:0] bits */ - tmpreg &= EVCR_PORTPINCONFIG_MASK; - tmpreg |= (uint32_t)GPIO_PortSource << 0x04; - tmpreg |= GPIO_PinSource; - AFIO->EVCR = tmpreg; -} - -/** - * @brief Enables or disables the Event Output. - * @param NewState: new state of the Event output. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void GPIO_EventOutputCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) EVCR_EVOE_BB = (uint32_t)NewState; -} - -/** - * @brief Changes the mapping of the specified pin. - * @param GPIO_Remap: selects the pin to remap. - * This parameter can be one of the following values: - * @arg GPIO_Remap_SPI1 : SPI1 Alternate Function mapping - * @arg GPIO_Remap_I2C1 : I2C1 Alternate Function mapping - * @arg GPIO_Remap_USART1 : USART1 Alternate Function mapping - * @arg GPIO_Remap_USART2 : USART2 Alternate Function mapping - * @arg GPIO_PartialRemap_USART3 : USART3 Partial Alternate Function mapping - * @arg GPIO_FullRemap_USART3 : USART3 Full Alternate Function mapping - * @arg GPIO_PartialRemap_TIM1 : TIM1 Partial Alternate Function mapping - * @arg GPIO_FullRemap_TIM1 : TIM1 Full Alternate Function mapping - * @arg GPIO_PartialRemap1_TIM2 : TIM2 Partial1 Alternate Function mapping - * @arg GPIO_PartialRemap2_TIM2 : TIM2 Partial2 Alternate Function mapping - * @arg GPIO_FullRemap_TIM2 : TIM2 Full Alternate Function mapping - * @arg GPIO_PartialRemap_TIM3 : TIM3 Partial Alternate Function mapping - * @arg GPIO_FullRemap_TIM3 : TIM3 Full Alternate Function mapping - * @arg GPIO_Remap_TIM4 : TIM4 Alternate Function mapping - * @arg GPIO_Remap1_CAN1 : CAN1 Alternate Function mapping - * @arg GPIO_Remap2_CAN1 : CAN1 Alternate Function mapping - * @arg GPIO_Remap_PD01 : PD01 Alternate Function mapping - * @arg GPIO_Remap_TIM5CH4_LSI : LSI connected to TIM5 Channel4 input capture for calibration - * @arg GPIO_Remap_ADC1_ETRGINJ : ADC1 External Trigger Injected Conversion remapping - * @arg GPIO_Remap_ADC1_ETRGREG : ADC1 External Trigger Regular Conversion remapping - * @arg GPIO_Remap_ADC2_ETRGINJ : ADC2 External Trigger Injected Conversion remapping - * @arg GPIO_Remap_ADC2_ETRGREG : ADC2 External Trigger Regular Conversion remapping - * @arg GPIO_Remap_ETH : Ethernet remapping (only for Connectivity line devices) - * @arg GPIO_Remap_CAN2 : CAN2 remapping (only for Connectivity line devices) - * @arg GPIO_Remap_SWJ_NoJTRST : Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST - * @arg GPIO_Remap_SWJ_JTAGDisable : JTAG-DP Disabled and SW-DP Enabled - * @arg GPIO_Remap_SWJ_Disable : Full SWJ Disabled (JTAG-DP + SW-DP) - * @arg GPIO_Remap_SPI3 : SPI3/I2S3 Alternate Function mapping (only for Connectivity line devices) - * When the SPI3/I2S3 is remapped using this function, the SWJ is configured - * to Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST. - * @arg GPIO_Remap_TIM2ITR1_PTP_SOF : Ethernet PTP output or USB OTG SOF (Start of Frame) connected - * to TIM2 Internal Trigger 1 for calibration (only for Connectivity line devices) - * If the GPIO_Remap_TIM2ITR1_PTP_SOF is enabled the TIM2 ITR1 is connected to - * Ethernet PTP output. When Reset TIM2 ITR1 is connected to USB OTG SOF output. - * @arg GPIO_Remap_PTP_PPS : Ethernet MAC PPS_PTS output on PB05 (only for Connectivity line devices) - * @arg GPIO_Remap_TIM15 : TIM15 Alternate Function mapping (only for Value line devices) - * @arg GPIO_Remap_TIM16 : TIM16 Alternate Function mapping (only for Value line devices) - * @arg GPIO_Remap_TIM17 : TIM17 Alternate Function mapping (only for Value line devices) - * @arg GPIO_Remap_CEC : CEC Alternate Function mapping (only for Value line devices) - * @arg GPIO_Remap_TIM1_DMA : TIM1 DMA requests mapping (only for Value line devices) - * @arg GPIO_Remap_TIM9 : TIM9 Alternate Function mapping (only for XL-density devices) - * @arg GPIO_Remap_TIM10 : TIM10 Alternate Function mapping (only for XL-density devices) - * @arg GPIO_Remap_TIM11 : TIM11 Alternate Function mapping (only for XL-density devices) - * @arg GPIO_Remap_TIM13 : TIM13 Alternate Function mapping (only for High density Value line and XL-density devices) - * @arg GPIO_Remap_TIM14 : TIM14 Alternate Function mapping (only for High density Value line and XL-density devices) - * @arg GPIO_Remap_FSMC_NADV : FSMC_NADV Alternate Function mapping (only for High density Value line and XL-density devices) - * @arg GPIO_Remap_TIM67_DAC_DMA : TIM6/TIM7 and DAC DMA requests remapping (only for High density Value line devices) - * @arg GPIO_Remap_TIM12 : TIM12 Alternate Function mapping (only for High density Value line devices) - * @arg GPIO_Remap_MISC : Miscellaneous Remap (DMA2 Channel5 Position and DAC Trigger remapping, - * only for High density Value line devices) - * @param NewState: new state of the port pin remapping. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState) -{ - uint32_t tmp = 0x00, tmp1 = 0x00, tmpreg = 0x00, tmpmask = 0x00; - - /* Check the parameters */ - assert_param(IS_GPIO_REMAP(GPIO_Remap)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if((GPIO_Remap & 0x80000000) == 0x80000000) - { - tmpreg = AFIO->MAPR2; - } - else - { - tmpreg = AFIO->MAPR; - } - - tmpmask = (GPIO_Remap & DBGAFR_POSITION_MASK) >> 0x10; - tmp = GPIO_Remap & LSB_MASK; - - if ((GPIO_Remap & (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) == (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) - { - tmpreg &= DBGAFR_SWJCFG_MASK; - AFIO->MAPR &= DBGAFR_SWJCFG_MASK; - } - else if ((GPIO_Remap & DBGAFR_NUMBITS_MASK) == DBGAFR_NUMBITS_MASK) - { - tmp1 = ((uint32_t)0x03) << tmpmask; - tmpreg &= ~tmp1; - tmpreg |= ~DBGAFR_SWJCFG_MASK; - } - else - { - tmpreg &= ~(tmp << ((GPIO_Remap >> 0x15)*0x10)); - tmpreg |= ~DBGAFR_SWJCFG_MASK; - } - - if (NewState != DISABLE) - { - tmpreg |= (tmp << ((GPIO_Remap >> 0x15)*0x10)); - } - - if((GPIO_Remap & 0x80000000) == 0x80000000) - { - AFIO->MAPR2 = tmpreg; - } - else - { - AFIO->MAPR = tmpreg; - } -} - -/** - * @brief Selects the GPIO pin used as EXTI Line. - * @param GPIO_PortSource: selects the GPIO port to be used as source for EXTI lines. - * This parameter can be GPIO_PortSourceGPIOx where x can be (A..G). - * @param GPIO_PinSource: specifies the EXTI line to be configured. - * This parameter can be GPIO_PinSourcex where x can be (0..15). - * @retval None - */ -void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource) -{ - uint32_t tmp = 0x00; - /* Check the parameters */ - assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource)); - assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource)); - - tmp = ((uint32_t)0x0F) << (0x04 * (GPIO_PinSource & (uint8_t)0x03)); - AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp; - AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((uint32_t)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (uint8_t)0x03))); -} - -/** - * @brief Selects the Ethernet media interface. - * @note This function applies only to STM32 Connectivity line devices. - * @param GPIO_ETH_MediaInterface: specifies the Media Interface mode. - * This parameter can be one of the following values: - * @arg GPIO_ETH_MediaInterface_MII: MII mode - * @arg GPIO_ETH_MediaInterface_RMII: RMII mode - * @retval None - */ -void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface) -{ - assert_param(IS_GPIO_ETH_MEDIA_INTERFACE(GPIO_ETH_MediaInterface)); - - /* Configure MII_RMII selection bit */ - *(__IO uint32_t *) MAPR_MII_RMII_SEL_BB = GPIO_ETH_MediaInterface; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c deleted file mode 100644 index 88967268..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c +++ /dev/null @@ -1,1331 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_i2c.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the I2C firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_i2c.h" -#include "stm32f10x_rcc.h" - - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup I2C - * @brief I2C driver modules - * @{ - */ - -/** @defgroup I2C_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup I2C_Private_Defines - * @{ - */ - -/* I2C SPE mask */ -#define CR1_PE_Set ((uint16_t)0x0001) -#define CR1_PE_Reset ((uint16_t)0xFFFE) - -/* I2C START mask */ -#define CR1_START_Set ((uint16_t)0x0100) -#define CR1_START_Reset ((uint16_t)0xFEFF) - -/* I2C STOP mask */ -#define CR1_STOP_Set ((uint16_t)0x0200) -#define CR1_STOP_Reset ((uint16_t)0xFDFF) - -/* I2C ACK mask */ -#define CR1_ACK_Set ((uint16_t)0x0400) -#define CR1_ACK_Reset ((uint16_t)0xFBFF) - -/* I2C ENGC mask */ -#define CR1_ENGC_Set ((uint16_t)0x0040) -#define CR1_ENGC_Reset ((uint16_t)0xFFBF) - -/* I2C SWRST mask */ -#define CR1_SWRST_Set ((uint16_t)0x8000) -#define CR1_SWRST_Reset ((uint16_t)0x7FFF) - -/* I2C PEC mask */ -#define CR1_PEC_Set ((uint16_t)0x1000) -#define CR1_PEC_Reset ((uint16_t)0xEFFF) - -/* I2C ENPEC mask */ -#define CR1_ENPEC_Set ((uint16_t)0x0020) -#define CR1_ENPEC_Reset ((uint16_t)0xFFDF) - -/* I2C ENARP mask */ -#define CR1_ENARP_Set ((uint16_t)0x0010) -#define CR1_ENARP_Reset ((uint16_t)0xFFEF) - -/* I2C NOSTRETCH mask */ -#define CR1_NOSTRETCH_Set ((uint16_t)0x0080) -#define CR1_NOSTRETCH_Reset ((uint16_t)0xFF7F) - -/* I2C registers Masks */ -#define CR1_CLEAR_Mask ((uint16_t)0xFBF5) - -/* I2C DMAEN mask */ -#define CR2_DMAEN_Set ((uint16_t)0x0800) -#define CR2_DMAEN_Reset ((uint16_t)0xF7FF) - -/* I2C LAST mask */ -#define CR2_LAST_Set ((uint16_t)0x1000) -#define CR2_LAST_Reset ((uint16_t)0xEFFF) - -/* I2C FREQ mask */ -#define CR2_FREQ_Reset ((uint16_t)0xFFC0) - -/* I2C ADD0 mask */ -#define OAR1_ADD0_Set ((uint16_t)0x0001) -#define OAR1_ADD0_Reset ((uint16_t)0xFFFE) - -/* I2C ENDUAL mask */ -#define OAR2_ENDUAL_Set ((uint16_t)0x0001) -#define OAR2_ENDUAL_Reset ((uint16_t)0xFFFE) - -/* I2C ADD2 mask */ -#define OAR2_ADD2_Reset ((uint16_t)0xFF01) - -/* I2C F/S mask */ -#define CCR_FS_Set ((uint16_t)0x8000) - -/* I2C CCR mask */ -#define CCR_CCR_Set ((uint16_t)0x0FFF) - -/* I2C FLAG mask */ -#define FLAG_Mask ((uint32_t)0x00FFFFFF) - -/* I2C Interrupt Enable mask */ -#define ITEN_Mask ((uint32_t)0x07000000) - -/** - * @} - */ - -/** @defgroup I2C_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup I2C_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup I2C_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup I2C_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the I2Cx peripheral registers to their default reset values. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @retval None - */ -void I2C_DeInit(I2C_TypeDef* I2Cx) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - - if (I2Cx == I2C1) - { - /* Enable I2C1 reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE); - /* Release I2C1 from reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE); - } - else - { - /* Enable I2C2 reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, ENABLE); - /* Release I2C2 from reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, DISABLE); - } -} - -/** - * @brief Initializes the I2Cx peripheral according to the specified - * parameters in the I2C_InitStruct. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_InitStruct: pointer to a I2C_InitTypeDef structure that - * contains the configuration information for the specified I2C peripheral. - * @retval None - */ -void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct) -{ - uint16_t tmpreg = 0, freqrange = 0; - uint16_t result = 0x04; - uint32_t pclk1 = 8000000; - RCC_ClocksTypeDef rcc_clocks; - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_CLOCK_SPEED(I2C_InitStruct->I2C_ClockSpeed)); - assert_param(IS_I2C_MODE(I2C_InitStruct->I2C_Mode)); - assert_param(IS_I2C_DUTY_CYCLE(I2C_InitStruct->I2C_DutyCycle)); - assert_param(IS_I2C_OWN_ADDRESS1(I2C_InitStruct->I2C_OwnAddress1)); - assert_param(IS_I2C_ACK_STATE(I2C_InitStruct->I2C_Ack)); - assert_param(IS_I2C_ACKNOWLEDGE_ADDRESS(I2C_InitStruct->I2C_AcknowledgedAddress)); - -/*---------------------------- I2Cx CR2 Configuration ------------------------*/ - /* Get the I2Cx CR2 value */ - tmpreg = I2Cx->CR2; - /* Clear frequency FREQ[5:0] bits */ - tmpreg &= CR2_FREQ_Reset; - /* Get pclk1 frequency value */ - RCC_GetClocksFreq(&rcc_clocks); - pclk1 = rcc_clocks.PCLK1_Frequency; - /* Set frequency bits depending on pclk1 value */ - freqrange = (uint16_t)(pclk1 / 1000000); - tmpreg |= freqrange; - /* Write to I2Cx CR2 */ - I2Cx->CR2 = tmpreg; - -/*---------------------------- I2Cx CCR Configuration ------------------------*/ - /* Disable the selected I2C peripheral to configure TRISE */ - I2Cx->CR1 &= CR1_PE_Reset; - /* Reset tmpreg value */ - /* Clear F/S, DUTY and CCR[11:0] bits */ - tmpreg = 0; - - /* Configure speed in standard mode */ - if (I2C_InitStruct->I2C_ClockSpeed <= 100000) - { - /* Standard mode speed calculate */ - result = (uint16_t)(pclk1 / (I2C_InitStruct->I2C_ClockSpeed << 1)); - /* Test if CCR value is under 0x4*/ - if (result < 0x04) - { - /* Set minimum allowed value */ - result = 0x04; - } - /* Set speed value for standard mode */ - tmpreg |= result; - /* Set Maximum Rise Time for standard mode */ - I2Cx->TRISE = freqrange + 1; - } - /* Configure speed in fast mode */ - else /*(I2C_InitStruct->I2C_ClockSpeed <= 400000)*/ - { - if (I2C_InitStruct->I2C_DutyCycle == I2C_DutyCycle_2) - { - /* Fast mode speed calculate: Tlow/Thigh = 2 */ - result = (uint16_t)(pclk1 / (I2C_InitStruct->I2C_ClockSpeed * 3)); - } - else /*I2C_InitStruct->I2C_DutyCycle == I2C_DutyCycle_16_9*/ - { - /* Fast mode speed calculate: Tlow/Thigh = 16/9 */ - result = (uint16_t)(pclk1 / (I2C_InitStruct->I2C_ClockSpeed * 25)); - /* Set DUTY bit */ - result |= I2C_DutyCycle_16_9; - } - - /* Test if CCR value is under 0x1*/ - if ((result & CCR_CCR_Set) == 0) - { - /* Set minimum allowed value */ - result |= (uint16_t)0x0001; - } - /* Set speed value and set F/S bit for fast mode */ - tmpreg |= (uint16_t)(result | CCR_FS_Set); - /* Set Maximum Rise Time for fast mode */ - I2Cx->TRISE = (uint16_t)(((freqrange * (uint16_t)300) / (uint16_t)1000) + (uint16_t)1); - } - - /* Write to I2Cx CCR */ - I2Cx->CCR = tmpreg; - /* Enable the selected I2C peripheral */ - I2Cx->CR1 |= CR1_PE_Set; - -/*---------------------------- I2Cx CR1 Configuration ------------------------*/ - /* Get the I2Cx CR1 value */ - tmpreg = I2Cx->CR1; - /* Clear ACK, SMBTYPE and SMBUS bits */ - tmpreg &= CR1_CLEAR_Mask; - /* Configure I2Cx: mode and acknowledgement */ - /* Set SMBTYPE and SMBUS bits according to I2C_Mode value */ - /* Set ACK bit according to I2C_Ack value */ - tmpreg |= (uint16_t)((uint32_t)I2C_InitStruct->I2C_Mode | I2C_InitStruct->I2C_Ack); - /* Write to I2Cx CR1 */ - I2Cx->CR1 = tmpreg; - -/*---------------------------- I2Cx OAR1 Configuration -----------------------*/ - /* Set I2Cx Own Address1 and acknowledged address */ - I2Cx->OAR1 = (I2C_InitStruct->I2C_AcknowledgedAddress | I2C_InitStruct->I2C_OwnAddress1); -} - -/** - * @brief Fills each I2C_InitStruct member with its default value. - * @param I2C_InitStruct: pointer to an I2C_InitTypeDef structure which will be initialized. - * @retval None - */ -void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct) -{ -/*---------------- Reset I2C init structure parameters values ----------------*/ - /* initialize the I2C_ClockSpeed member */ - I2C_InitStruct->I2C_ClockSpeed = 5000; - /* Initialize the I2C_Mode member */ - I2C_InitStruct->I2C_Mode = I2C_Mode_I2C; - /* Initialize the I2C_DutyCycle member */ - I2C_InitStruct->I2C_DutyCycle = I2C_DutyCycle_2; - /* Initialize the I2C_OwnAddress1 member */ - I2C_InitStruct->I2C_OwnAddress1 = 0; - /* Initialize the I2C_Ack member */ - I2C_InitStruct->I2C_Ack = I2C_Ack_Disable; - /* Initialize the I2C_AcknowledgedAddress member */ - I2C_InitStruct->I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; -} - -/** - * @brief Enables or disables the specified I2C peripheral. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2Cx peripheral. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected I2C peripheral */ - I2Cx->CR1 |= CR1_PE_Set; - } - else - { - /* Disable the selected I2C peripheral */ - I2Cx->CR1 &= CR1_PE_Reset; - } -} - -/** - * @brief Enables or disables the specified I2C DMA requests. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2C DMA transfer. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_DMACmd(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected I2C DMA requests */ - I2Cx->CR2 |= CR2_DMAEN_Set; - } - else - { - /* Disable the selected I2C DMA requests */ - I2Cx->CR2 &= CR2_DMAEN_Reset; - } -} - -/** - * @brief Specifies if the next DMA transfer will be the last one. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2C DMA last transfer. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_DMALastTransferCmd(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Next DMA transfer is the last transfer */ - I2Cx->CR2 |= CR2_LAST_Set; - } - else - { - /* Next DMA transfer is not the last transfer */ - I2Cx->CR2 &= CR2_LAST_Reset; - } -} - -/** - * @brief Generates I2Cx communication START condition. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2C START condition generation. - * This parameter can be: ENABLE or DISABLE. - * @retval None. - */ -void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Generate a START condition */ - I2Cx->CR1 |= CR1_START_Set; - } - else - { - /* Disable the START condition generation */ - I2Cx->CR1 &= CR1_START_Reset; - } -} - -/** - * @brief Generates I2Cx communication STOP condition. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2C STOP condition generation. - * This parameter can be: ENABLE or DISABLE. - * @retval None. - */ -void I2C_GenerateSTOP(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Generate a STOP condition */ - I2Cx->CR1 |= CR1_STOP_Set; - } - else - { - /* Disable the STOP condition generation */ - I2Cx->CR1 &= CR1_STOP_Reset; - } -} - -/** - * @brief Enables or disables the specified I2C acknowledge feature. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2C Acknowledgement. - * This parameter can be: ENABLE or DISABLE. - * @retval None. - */ -void I2C_AcknowledgeConfig(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the acknowledgement */ - I2Cx->CR1 |= CR1_ACK_Set; - } - else - { - /* Disable the acknowledgement */ - I2Cx->CR1 &= CR1_ACK_Reset; - } -} - -/** - * @brief Configures the specified I2C own address2. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param Address: specifies the 7bit I2C own address2. - * @retval None. - */ -void I2C_OwnAddress2Config(I2C_TypeDef* I2Cx, uint8_t Address) -{ - uint16_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - - /* Get the old register value */ - tmpreg = I2Cx->OAR2; - - /* Reset I2Cx Own address2 bit [7:1] */ - tmpreg &= OAR2_ADD2_Reset; - - /* Set I2Cx Own address2 */ - tmpreg |= (uint16_t)((uint16_t)Address & (uint16_t)0x00FE); - - /* Store the new register value */ - I2Cx->OAR2 = tmpreg; -} - -/** - * @brief Enables or disables the specified I2C dual addressing mode. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2C dual addressing mode. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_DualAddressCmd(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable dual addressing mode */ - I2Cx->OAR2 |= OAR2_ENDUAL_Set; - } - else - { - /* Disable dual addressing mode */ - I2Cx->OAR2 &= OAR2_ENDUAL_Reset; - } -} - -/** - * @brief Enables or disables the specified I2C general call feature. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2C General call. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_GeneralCallCmd(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable generall call */ - I2Cx->CR1 |= CR1_ENGC_Set; - } - else - { - /* Disable generall call */ - I2Cx->CR1 &= CR1_ENGC_Reset; - } -} - -/** - * @brief Enables or disables the specified I2C interrupts. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_IT: specifies the I2C interrupts sources to be enabled or disabled. - * This parameter can be any combination of the following values: - * @arg I2C_IT_BUF: Buffer interrupt mask - * @arg I2C_IT_EVT: Event interrupt mask - * @arg I2C_IT_ERR: Error interrupt mask - * @param NewState: new state of the specified I2C interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_ITConfig(I2C_TypeDef* I2Cx, uint16_t I2C_IT, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - assert_param(IS_I2C_CONFIG_IT(I2C_IT)); - - if (NewState != DISABLE) - { - /* Enable the selected I2C interrupts */ - I2Cx->CR2 |= I2C_IT; - } - else - { - /* Disable the selected I2C interrupts */ - I2Cx->CR2 &= (uint16_t)~I2C_IT; - } -} - -/** - * @brief Sends a data byte through the I2Cx peripheral. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param Data: Byte to be transmitted.. - * @retval None - */ -void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - /* Write in the DR register the data to be sent */ - I2Cx->DR = Data; -} - -/** - * @brief Returns the most recent received data by the I2Cx peripheral. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @retval The value of the received data. - */ -uint8_t I2C_ReceiveData(I2C_TypeDef* I2Cx) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - /* Return the data in the DR register */ - return (uint8_t)I2Cx->DR; -} - -/** - * @brief Transmits the address byte to select the slave device. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param Address: specifies the slave address which will be transmitted - * @param I2C_Direction: specifies whether the I2C device will be a - * Transmitter or a Receiver. This parameter can be one of the following values - * @arg I2C_Direction_Transmitter: Transmitter mode - * @arg I2C_Direction_Receiver: Receiver mode - * @retval None. - */ -void I2C_Send7bitAddress(I2C_TypeDef* I2Cx, uint8_t Address, uint8_t I2C_Direction) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_DIRECTION(I2C_Direction)); - /* Test on the direction to set/reset the read/write bit */ - if (I2C_Direction != I2C_Direction_Transmitter) - { - /* Set the address bit0 for read */ - Address |= OAR1_ADD0_Set; - } - else - { - /* Reset the address bit0 for write */ - Address &= OAR1_ADD0_Reset; - } - /* Send the address */ - I2Cx->DR = Address; -} - -/** - * @brief Reads the specified I2C register and returns its value. - * @param I2C_Register: specifies the register to read. - * This parameter can be one of the following values: - * @arg I2C_Register_CR1: CR1 register. - * @arg I2C_Register_CR2: CR2 register. - * @arg I2C_Register_OAR1: OAR1 register. - * @arg I2C_Register_OAR2: OAR2 register. - * @arg I2C_Register_DR: DR register. - * @arg I2C_Register_SR1: SR1 register. - * @arg I2C_Register_SR2: SR2 register. - * @arg I2C_Register_CCR: CCR register. - * @arg I2C_Register_TRISE: TRISE register. - * @retval The value of the read register. - */ -uint16_t I2C_ReadRegister(I2C_TypeDef* I2Cx, uint8_t I2C_Register) -{ - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_REGISTER(I2C_Register)); - - tmp = (uint32_t) I2Cx; - tmp += I2C_Register; - - /* Return the selected register value */ - return (*(__IO uint16_t *) tmp); -} - -/** - * @brief Enables or disables the specified I2C software reset. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2C software reset. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_SoftwareResetCmd(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Peripheral under reset */ - I2Cx->CR1 |= CR1_SWRST_Set; - } - else - { - /* Peripheral not under reset */ - I2Cx->CR1 &= CR1_SWRST_Reset; - } -} - -/** - * @brief Selects the specified I2C NACK position in master receiver mode. - * This function is useful in I2C Master Receiver mode when the number - * of data to be received is equal to 2. In this case, this function - * should be called (with parameter I2C_NACKPosition_Next) before data - * reception starts,as described in the 2-byte reception procedure - * recommended in Reference Manual in Section: Master receiver. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_NACKPosition: specifies the NACK position. - * This parameter can be one of the following values: - * @arg I2C_NACKPosition_Next: indicates that the next byte will be the last - * received byte. - * @arg I2C_NACKPosition_Current: indicates that current byte is the last - * received byte. - * - * @note This function configures the same bit (POS) as I2C_PECPositionConfig() - * but is intended to be used in I2C mode while I2C_PECPositionConfig() - * is intended to used in SMBUS mode. - * - * @retval None - */ -void I2C_NACKPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_NACKPosition) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_NACK_POSITION(I2C_NACKPosition)); - - /* Check the input parameter */ - if (I2C_NACKPosition == I2C_NACKPosition_Next) - { - /* Next byte in shift register is the last received byte */ - I2Cx->CR1 |= I2C_NACKPosition_Next; - } - else - { - /* Current byte in shift register is the last received byte */ - I2Cx->CR1 &= I2C_NACKPosition_Current; - } -} - -/** - * @brief Drives the SMBusAlert pin high or low for the specified I2C. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_SMBusAlert: specifies SMBAlert pin level. - * This parameter can be one of the following values: - * @arg I2C_SMBusAlert_Low: SMBAlert pin driven low - * @arg I2C_SMBusAlert_High: SMBAlert pin driven high - * @retval None - */ -void I2C_SMBusAlertConfig(I2C_TypeDef* I2Cx, uint16_t I2C_SMBusAlert) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_SMBUS_ALERT(I2C_SMBusAlert)); - if (I2C_SMBusAlert == I2C_SMBusAlert_Low) - { - /* Drive the SMBusAlert pin Low */ - I2Cx->CR1 |= I2C_SMBusAlert_Low; - } - else - { - /* Drive the SMBusAlert pin High */ - I2Cx->CR1 &= I2C_SMBusAlert_High; - } -} - -/** - * @brief Enables or disables the specified I2C PEC transfer. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2C PEC transmission. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_TransmitPEC(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected I2C PEC transmission */ - I2Cx->CR1 |= CR1_PEC_Set; - } - else - { - /* Disable the selected I2C PEC transmission */ - I2Cx->CR1 &= CR1_PEC_Reset; - } -} - -/** - * @brief Selects the specified I2C PEC position. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_PECPosition: specifies the PEC position. - * This parameter can be one of the following values: - * @arg I2C_PECPosition_Next: indicates that the next byte is PEC - * @arg I2C_PECPosition_Current: indicates that current byte is PEC - * - * @note This function configures the same bit (POS) as I2C_NACKPositionConfig() - * but is intended to be used in SMBUS mode while I2C_NACKPositionConfig() - * is intended to used in I2C mode. - * - * @retval None - */ -void I2C_PECPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_PECPosition) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_PEC_POSITION(I2C_PECPosition)); - if (I2C_PECPosition == I2C_PECPosition_Next) - { - /* Next byte in shift register is PEC */ - I2Cx->CR1 |= I2C_PECPosition_Next; - } - else - { - /* Current byte in shift register is PEC */ - I2Cx->CR1 &= I2C_PECPosition_Current; - } -} - -/** - * @brief Enables or disables the PEC value calculation of the transferred bytes. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2Cx PEC value calculation. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_CalculatePEC(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected I2C PEC calculation */ - I2Cx->CR1 |= CR1_ENPEC_Set; - } - else - { - /* Disable the selected I2C PEC calculation */ - I2Cx->CR1 &= CR1_ENPEC_Reset; - } -} - -/** - * @brief Returns the PEC value for the specified I2C. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @retval The PEC value. - */ -uint8_t I2C_GetPEC(I2C_TypeDef* I2Cx) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - /* Return the selected I2C PEC value */ - return ((I2Cx->SR2) >> 8); -} - -/** - * @brief Enables or disables the specified I2C ARP. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2Cx ARP. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_ARPCmd(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected I2C ARP */ - I2Cx->CR1 |= CR1_ENARP_Set; - } - else - { - /* Disable the selected I2C ARP */ - I2Cx->CR1 &= CR1_ENARP_Reset; - } -} - -/** - * @brief Enables or disables the specified I2C Clock stretching. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param NewState: new state of the I2Cx Clock stretching. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2C_StretchClockCmd(I2C_TypeDef* I2Cx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState == DISABLE) - { - /* Enable the selected I2C Clock stretching */ - I2Cx->CR1 |= CR1_NOSTRETCH_Set; - } - else - { - /* Disable the selected I2C Clock stretching */ - I2Cx->CR1 &= CR1_NOSTRETCH_Reset; - } -} - -/** - * @brief Selects the specified I2C fast mode duty cycle. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_DutyCycle: specifies the fast mode duty cycle. - * This parameter can be one of the following values: - * @arg I2C_DutyCycle_2: I2C fast mode Tlow/Thigh = 2 - * @arg I2C_DutyCycle_16_9: I2C fast mode Tlow/Thigh = 16/9 - * @retval None - */ -void I2C_FastModeDutyCycleConfig(I2C_TypeDef* I2Cx, uint16_t I2C_DutyCycle) -{ - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_DUTY_CYCLE(I2C_DutyCycle)); - if (I2C_DutyCycle != I2C_DutyCycle_16_9) - { - /* I2C fast mode Tlow/Thigh=2 */ - I2Cx->CCR &= I2C_DutyCycle_2; - } - else - { - /* I2C fast mode Tlow/Thigh=16/9 */ - I2Cx->CCR |= I2C_DutyCycle_16_9; - } -} - - - -/** - * @brief - **************************************************************************************** - * - * I2C State Monitoring Functions - * - **************************************************************************************** - * This I2C driver provides three different ways for I2C state monitoring - * depending on the application requirements and constraints: - * - * - * 1) Basic state monitoring: - * Using I2C_CheckEvent() function: - * It compares the status registers (SR1 and SR2) content to a given event - * (can be the combination of one or more flags). - * It returns SUCCESS if the current status includes the given flags - * and returns ERROR if one or more flags are missing in the current status. - * - When to use: - * - This function is suitable for most applications as well as for startup - * activity since the events are fully described in the product reference manual - * (RM0008). - * - It is also suitable for users who need to define their own events. - * - Limitations: - * - If an error occurs (ie. error flags are set besides to the monitored flags), - * the I2C_CheckEvent() function may return SUCCESS despite the communication - * hold or corrupted real state. - * In this case, it is advised to use error interrupts to monitor the error - * events and handle them in the interrupt IRQ handler. - * - * @note - * For error management, it is advised to use the following functions: - * - I2C_ITConfig() to configure and enable the error interrupts (I2C_IT_ERR). - * - I2Cx_ER_IRQHandler() which is called when the error interrupt occurs. - * Where x is the peripheral instance (I2C1, I2C2 ...) - * - I2C_GetFlagStatus() or I2C_GetITStatus() to be called into I2Cx_ER_IRQHandler() - * in order to determine which error occured. - * - I2C_ClearFlag() or I2C_ClearITPendingBit() and/or I2C_SoftwareResetCmd() - * and/or I2C_GenerateStop() in order to clear the error flag and source, - * and return to correct communication status. - * - * - * 2) Advanced state monitoring: - * Using the function I2C_GetLastEvent() which returns the image of both status - * registers in a single word (uint32_t) (Status Register 2 value is shifted left - * by 16 bits and concatenated to Status Register 1). - * - When to use: - * - This function is suitable for the same applications above but it allows to - * overcome the mentioned limitation of I2C_GetFlagStatus() function. - * The returned value could be compared to events already defined in the - * library (stm32f10x_i2c.h) or to custom values defined by user. - * - This function is suitable when multiple flags are monitored at the same time. - * - At the opposite of I2C_CheckEvent() function, this function allows user to - * choose when an event is accepted (when all events flags are set and no - * other flags are set or just when the needed flags are set like - * I2C_CheckEvent() function). - * - Limitations: - * - User may need to define his own events. - * - Same remark concerning the error management is applicable for this - * function if user decides to check only regular communication flags (and - * ignores error flags). - * - * - * 3) Flag-based state monitoring: - * Using the function I2C_GetFlagStatus() which simply returns the status of - * one single flag (ie. I2C_FLAG_RXNE ...). - * - When to use: - * - This function could be used for specific applications or in debug phase. - * - It is suitable when only one flag checking is needed (most I2C events - * are monitored through multiple flags). - * - Limitations: - * - When calling this function, the Status register is accessed. Some flags are - * cleared when the status register is accessed. So checking the status - * of one Flag, may clear other ones. - * - Function may need to be called twice or more in order to monitor one - * single event. - * - * For detailed description of Events, please refer to section I2C_Events in - * stm32f10x_i2c.h file. - * - */ - -/** - * - * 1) Basic state monitoring - ******************************************************************************* - */ - -/** - * @brief Checks whether the last I2Cx Event is equal to the one passed - * as parameter. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_EVENT: specifies the event to be checked. - * This parameter can be one of the following values: - * @arg I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED : EV1 - * @arg I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED : EV1 - * @arg I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED : EV1 - * @arg I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED : EV1 - * @arg I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED : EV1 - * @arg I2C_EVENT_SLAVE_BYTE_RECEIVED : EV2 - * @arg (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_DUALF) : EV2 - * @arg (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_GENCALL) : EV2 - * @arg I2C_EVENT_SLAVE_BYTE_TRANSMITTED : EV3 - * @arg (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_DUALF) : EV3 - * @arg (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_GENCALL) : EV3 - * @arg I2C_EVENT_SLAVE_ACK_FAILURE : EV3_2 - * @arg I2C_EVENT_SLAVE_STOP_DETECTED : EV4 - * @arg I2C_EVENT_MASTER_MODE_SELECT : EV5 - * @arg I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED : EV6 - * @arg I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED : EV6 - * @arg I2C_EVENT_MASTER_BYTE_RECEIVED : EV7 - * @arg I2C_EVENT_MASTER_BYTE_TRANSMITTING : EV8 - * @arg I2C_EVENT_MASTER_BYTE_TRANSMITTED : EV8_2 - * @arg I2C_EVENT_MASTER_MODE_ADDRESS10 : EV9 - * - * @note: For detailed description of Events, please refer to section - * I2C_Events in stm32f10x_i2c.h file. - * - * @retval An ErrorStatus enumeration value: - * - SUCCESS: Last event is equal to the I2C_EVENT - * - ERROR: Last event is different from the I2C_EVENT - */ -ErrorStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT) -{ - uint32_t lastevent = 0; - uint32_t flag1 = 0, flag2 = 0; - ErrorStatus status = ERROR; - - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_EVENT(I2C_EVENT)); - - /* Read the I2Cx status register */ - flag1 = I2Cx->SR1; - flag2 = I2Cx->SR2; - flag2 = flag2 << 16; - - /* Get the last event value from I2C status register */ - lastevent = (flag1 | flag2) & FLAG_Mask; - - /* Check whether the last event contains the I2C_EVENT */ - if ((lastevent & I2C_EVENT) == I2C_EVENT) - { - /* SUCCESS: last event is equal to I2C_EVENT */ - status = SUCCESS; - } - else - { - /* ERROR: last event is different from I2C_EVENT */ - status = ERROR; - } - /* Return status */ - return status; -} - -/** - * - * 2) Advanced state monitoring - ******************************************************************************* - */ - -/** - * @brief Returns the last I2Cx Event. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * - * @note: For detailed description of Events, please refer to section - * I2C_Events in stm32f10x_i2c.h file. - * - * @retval The last event - */ -uint32_t I2C_GetLastEvent(I2C_TypeDef* I2Cx) -{ - uint32_t lastevent = 0; - uint32_t flag1 = 0, flag2 = 0; - - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - - /* Read the I2Cx status register */ - flag1 = I2Cx->SR1; - flag2 = I2Cx->SR2; - flag2 = flag2 << 16; - - /* Get the last event value from I2C status register */ - lastevent = (flag1 | flag2) & FLAG_Mask; - - /* Return status */ - return lastevent; -} - -/** - * - * 3) Flag-based state monitoring - ******************************************************************************* - */ - -/** - * @brief Checks whether the specified I2C flag is set or not. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_FLAG: specifies the flag to check. - * This parameter can be one of the following values: - * @arg I2C_FLAG_DUALF: Dual flag (Slave mode) - * @arg I2C_FLAG_SMBHOST: SMBus host header (Slave mode) - * @arg I2C_FLAG_SMBDEFAULT: SMBus default header (Slave mode) - * @arg I2C_FLAG_GENCALL: General call header flag (Slave mode) - * @arg I2C_FLAG_TRA: Transmitter/Receiver flag - * @arg I2C_FLAG_BUSY: Bus busy flag - * @arg I2C_FLAG_MSL: Master/Slave flag - * @arg I2C_FLAG_SMBALERT: SMBus Alert flag - * @arg I2C_FLAG_TIMEOUT: Timeout or Tlow error flag - * @arg I2C_FLAG_PECERR: PEC error in reception flag - * @arg I2C_FLAG_OVR: Overrun/Underrun flag (Slave mode) - * @arg I2C_FLAG_AF: Acknowledge failure flag - * @arg I2C_FLAG_ARLO: Arbitration lost flag (Master mode) - * @arg I2C_FLAG_BERR: Bus error flag - * @arg I2C_FLAG_TXE: Data register empty flag (Transmitter) - * @arg I2C_FLAG_RXNE: Data register not empty (Receiver) flag - * @arg I2C_FLAG_STOPF: Stop detection flag (Slave mode) - * @arg I2C_FLAG_ADD10: 10-bit header sent flag (Master mode) - * @arg I2C_FLAG_BTF: Byte transfer finished flag - * @arg I2C_FLAG_ADDR: Address sent flag (Master mode) "ADSL" - * Address matched flag (Slave mode)"ENDA" - * @arg I2C_FLAG_SB: Start bit flag (Master mode) - * @retval The new state of I2C_FLAG (SET or RESET). - */ -FlagStatus I2C_GetFlagStatus(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG) -{ - FlagStatus bitstatus = RESET; - __IO uint32_t i2creg = 0, i2cxbase = 0; - - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_GET_FLAG(I2C_FLAG)); - - /* Get the I2Cx peripheral base address */ - i2cxbase = (uint32_t)I2Cx; - - /* Read flag register index */ - i2creg = I2C_FLAG >> 28; - - /* Get bit[23:0] of the flag */ - I2C_FLAG &= FLAG_Mask; - - if(i2creg != 0) - { - /* Get the I2Cx SR1 register address */ - i2cxbase += 0x14; - } - else - { - /* Flag in I2Cx SR2 Register */ - I2C_FLAG = (uint32_t)(I2C_FLAG >> 16); - /* Get the I2Cx SR2 register address */ - i2cxbase += 0x18; - } - - if(((*(__IO uint32_t *)i2cxbase) & I2C_FLAG) != (uint32_t)RESET) - { - /* I2C_FLAG is set */ - bitstatus = SET; - } - else - { - /* I2C_FLAG is reset */ - bitstatus = RESET; - } - - /* Return the I2C_FLAG status */ - return bitstatus; -} - - - -/** - * @brief Clears the I2Cx's pending flags. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_FLAG: specifies the flag to clear. - * This parameter can be any combination of the following values: - * @arg I2C_FLAG_SMBALERT: SMBus Alert flag - * @arg I2C_FLAG_TIMEOUT: Timeout or Tlow error flag - * @arg I2C_FLAG_PECERR: PEC error in reception flag - * @arg I2C_FLAG_OVR: Overrun/Underrun flag (Slave mode) - * @arg I2C_FLAG_AF: Acknowledge failure flag - * @arg I2C_FLAG_ARLO: Arbitration lost flag (Master mode) - * @arg I2C_FLAG_BERR: Bus error flag - * - * @note - * - STOPF (STOP detection) is cleared by software sequence: a read operation - * to I2C_SR1 register (I2C_GetFlagStatus()) followed by a write operation - * to I2C_CR1 register (I2C_Cmd() to re-enable the I2C peripheral). - * - ADD10 (10-bit header sent) is cleared by software sequence: a read - * operation to I2C_SR1 (I2C_GetFlagStatus()) followed by writing the - * second byte of the address in DR register. - * - BTF (Byte Transfer Finished) is cleared by software sequence: a read - * operation to I2C_SR1 register (I2C_GetFlagStatus()) followed by a - * read/write to I2C_DR register (I2C_SendData()). - * - ADDR (Address sent) is cleared by software sequence: a read operation to - * I2C_SR1 register (I2C_GetFlagStatus()) followed by a read operation to - * I2C_SR2 register ((void)(I2Cx->SR2)). - * - SB (Start Bit) is cleared software sequence: a read operation to I2C_SR1 - * register (I2C_GetFlagStatus()) followed by a write operation to I2C_DR - * register (I2C_SendData()). - * @retval None - */ -void I2C_ClearFlag(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG) -{ - uint32_t flagpos = 0; - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_CLEAR_FLAG(I2C_FLAG)); - /* Get the I2C flag position */ - flagpos = I2C_FLAG & FLAG_Mask; - /* Clear the selected I2C flag */ - I2Cx->SR1 = (uint16_t)~flagpos; -} - -/** - * @brief Checks whether the specified I2C interrupt has occurred or not. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_IT: specifies the interrupt source to check. - * This parameter can be one of the following values: - * @arg I2C_IT_SMBALERT: SMBus Alert flag - * @arg I2C_IT_TIMEOUT: Timeout or Tlow error flag - * @arg I2C_IT_PECERR: PEC error in reception flag - * @arg I2C_IT_OVR: Overrun/Underrun flag (Slave mode) - * @arg I2C_IT_AF: Acknowledge failure flag - * @arg I2C_IT_ARLO: Arbitration lost flag (Master mode) - * @arg I2C_IT_BERR: Bus error flag - * @arg I2C_IT_TXE: Data register empty flag (Transmitter) - * @arg I2C_IT_RXNE: Data register not empty (Receiver) flag - * @arg I2C_IT_STOPF: Stop detection flag (Slave mode) - * @arg I2C_IT_ADD10: 10-bit header sent flag (Master mode) - * @arg I2C_IT_BTF: Byte transfer finished flag - * @arg I2C_IT_ADDR: Address sent flag (Master mode) "ADSL" - * Address matched flag (Slave mode)"ENDAD" - * @arg I2C_IT_SB: Start bit flag (Master mode) - * @retval The new state of I2C_IT (SET or RESET). - */ -ITStatus I2C_GetITStatus(I2C_TypeDef* I2Cx, uint32_t I2C_IT) -{ - ITStatus bitstatus = RESET; - uint32_t enablestatus = 0; - - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_GET_IT(I2C_IT)); - - /* Check if the interrupt source is enabled or not */ - enablestatus = (uint32_t)(((I2C_IT & ITEN_Mask) >> 16) & (I2Cx->CR2)) ; - - /* Get bit[23:0] of the flag */ - I2C_IT &= FLAG_Mask; - - /* Check the status of the specified I2C flag */ - if (((I2Cx->SR1 & I2C_IT) != (uint32_t)RESET) && enablestatus) - { - /* I2C_IT is set */ - bitstatus = SET; - } - else - { - /* I2C_IT is reset */ - bitstatus = RESET; - } - /* Return the I2C_IT status */ - return bitstatus; -} - -/** - * @brief Clears the I2Cx’s interrupt pending bits. - * @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. - * @param I2C_IT: specifies the interrupt pending bit to clear. - * This parameter can be any combination of the following values: - * @arg I2C_IT_SMBALERT: SMBus Alert interrupt - * @arg I2C_IT_TIMEOUT: Timeout or Tlow error interrupt - * @arg I2C_IT_PECERR: PEC error in reception interrupt - * @arg I2C_IT_OVR: Overrun/Underrun interrupt (Slave mode) - * @arg I2C_IT_AF: Acknowledge failure interrupt - * @arg I2C_IT_ARLO: Arbitration lost interrupt (Master mode) - * @arg I2C_IT_BERR: Bus error interrupt - * - * @note - * - STOPF (STOP detection) is cleared by software sequence: a read operation - * to I2C_SR1 register (I2C_GetITStatus()) followed by a write operation to - * I2C_CR1 register (I2C_Cmd() to re-enable the I2C peripheral). - * - ADD10 (10-bit header sent) is cleared by software sequence: a read - * operation to I2C_SR1 (I2C_GetITStatus()) followed by writing the second - * byte of the address in I2C_DR register. - * - BTF (Byte Transfer Finished) is cleared by software sequence: a read - * operation to I2C_SR1 register (I2C_GetITStatus()) followed by a - * read/write to I2C_DR register (I2C_SendData()). - * - ADDR (Address sent) is cleared by software sequence: a read operation to - * I2C_SR1 register (I2C_GetITStatus()) followed by a read operation to - * I2C_SR2 register ((void)(I2Cx->SR2)). - * - SB (Start Bit) is cleared by software sequence: a read operation to - * I2C_SR1 register (I2C_GetITStatus()) followed by a write operation to - * I2C_DR register (I2C_SendData()). - * @retval None - */ -void I2C_ClearITPendingBit(I2C_TypeDef* I2Cx, uint32_t I2C_IT) -{ - uint32_t flagpos = 0; - /* Check the parameters */ - assert_param(IS_I2C_ALL_PERIPH(I2Cx)); - assert_param(IS_I2C_CLEAR_IT(I2C_IT)); - /* Get the I2C flag position */ - flagpos = I2C_IT & FLAG_Mask; - /* Clear the selected I2C flag */ - I2Cx->SR1 = (uint16_t)~flagpos; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c deleted file mode 100644 index 9d3b0e85..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c +++ /dev/null @@ -1,190 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_iwdg.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the IWDG firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_iwdg.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup IWDG - * @brief IWDG driver modules - * @{ - */ - -/** @defgroup IWDG_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup IWDG_Private_Defines - * @{ - */ - -/* ---------------------- IWDG registers bit mask ----------------------------*/ - -/* KR register bit mask */ -#define KR_KEY_Reload ((uint16_t)0xAAAA) -#define KR_KEY_Enable ((uint16_t)0xCCCC) - -/** - * @} - */ - -/** @defgroup IWDG_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup IWDG_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup IWDG_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup IWDG_Private_Functions - * @{ - */ - -/** - * @brief Enables or disables write access to IWDG_PR and IWDG_RLR registers. - * @param IWDG_WriteAccess: new state of write access to IWDG_PR and IWDG_RLR registers. - * This parameter can be one of the following values: - * @arg IWDG_WriteAccess_Enable: Enable write access to IWDG_PR and IWDG_RLR registers - * @arg IWDG_WriteAccess_Disable: Disable write access to IWDG_PR and IWDG_RLR registers - * @retval None - */ -void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess) -{ - /* Check the parameters */ - assert_param(IS_IWDG_WRITE_ACCESS(IWDG_WriteAccess)); - IWDG->KR = IWDG_WriteAccess; -} - -/** - * @brief Sets IWDG Prescaler value. - * @param IWDG_Prescaler: specifies the IWDG Prescaler value. - * This parameter can be one of the following values: - * @arg IWDG_Prescaler_4: IWDG prescaler set to 4 - * @arg IWDG_Prescaler_8: IWDG prescaler set to 8 - * @arg IWDG_Prescaler_16: IWDG prescaler set to 16 - * @arg IWDG_Prescaler_32: IWDG prescaler set to 32 - * @arg IWDG_Prescaler_64: IWDG prescaler set to 64 - * @arg IWDG_Prescaler_128: IWDG prescaler set to 128 - * @arg IWDG_Prescaler_256: IWDG prescaler set to 256 - * @retval None - */ -void IWDG_SetPrescaler(uint8_t IWDG_Prescaler) -{ - /* Check the parameters */ - assert_param(IS_IWDG_PRESCALER(IWDG_Prescaler)); - IWDG->PR = IWDG_Prescaler; -} - -/** - * @brief Sets IWDG Reload value. - * @param Reload: specifies the IWDG Reload value. - * This parameter must be a number between 0 and 0x0FFF. - * @retval None - */ -void IWDG_SetReload(uint16_t Reload) -{ - /* Check the parameters */ - assert_param(IS_IWDG_RELOAD(Reload)); - IWDG->RLR = Reload; -} - -/** - * @brief Reloads IWDG counter with value defined in the reload register - * (write access to IWDG_PR and IWDG_RLR registers disabled). - * @param None - * @retval None - */ -void IWDG_ReloadCounter(void) -{ - IWDG->KR = KR_KEY_Reload; -} - -/** - * @brief Enables IWDG (write access to IWDG_PR and IWDG_RLR registers disabled). - * @param None - * @retval None - */ -void IWDG_Enable(void) -{ - IWDG->KR = KR_KEY_Enable; -} - -/** - * @brief Checks whether the specified IWDG flag is set or not. - * @param IWDG_FLAG: specifies the flag to check. - * This parameter can be one of the following values: - * @arg IWDG_FLAG_PVU: Prescaler Value Update on going - * @arg IWDG_FLAG_RVU: Reload Value Update on going - * @retval The new state of IWDG_FLAG (SET or RESET). - */ -FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_IWDG_FLAG(IWDG_FLAG)); - if ((IWDG->SR & IWDG_FLAG) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - /* Return the flag status */ - return bitstatus; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c deleted file mode 100644 index 147bf0f8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c +++ /dev/null @@ -1,307 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_pwr.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the PWR firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_pwr.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup PWR - * @brief PWR driver modules - * @{ - */ - -/** @defgroup PWR_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup PWR_Private_Defines - * @{ - */ - -/* --------- PWR registers bit address in the alias region ---------- */ -#define PWR_OFFSET (PWR_BASE - PERIPH_BASE) - -/* --- CR Register ---*/ - -/* Alias word address of DBP bit */ -#define CR_OFFSET (PWR_OFFSET + 0x00) -#define DBP_BitNumber 0x08 -#define CR_DBP_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (DBP_BitNumber * 4)) - -/* Alias word address of PVDE bit */ -#define PVDE_BitNumber 0x04 -#define CR_PVDE_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (PVDE_BitNumber * 4)) - -/* --- CSR Register ---*/ - -/* Alias word address of EWUP bit */ -#define CSR_OFFSET (PWR_OFFSET + 0x04) -#define EWUP_BitNumber 0x08 -#define CSR_EWUP_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (EWUP_BitNumber * 4)) - -/* ------------------ PWR registers bit mask ------------------------ */ - -/* CR register bit mask */ -#define CR_DS_MASK ((uint32_t)0xFFFFFFFC) -#define CR_PLS_MASK ((uint32_t)0xFFFFFF1F) - - -/** - * @} - */ - -/** @defgroup PWR_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup PWR_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup PWR_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup PWR_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the PWR peripheral registers to their default reset values. - * @param None - * @retval None - */ -void PWR_DeInit(void) -{ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, DISABLE); -} - -/** - * @brief Enables or disables access to the RTC and backup registers. - * @param NewState: new state of the access to the RTC and backup registers. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void PWR_BackupAccessCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) CR_DBP_BB = (uint32_t)NewState; -} - -/** - * @brief Enables or disables the Power Voltage Detector(PVD). - * @param NewState: new state of the PVD. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void PWR_PVDCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) CR_PVDE_BB = (uint32_t)NewState; -} - -/** - * @brief Configures the voltage threshold detected by the Power Voltage Detector(PVD). - * @param PWR_PVDLevel: specifies the PVD detection level - * This parameter can be one of the following values: - * @arg PWR_PVDLevel_2V2: PVD detection level set to 2.2V - * @arg PWR_PVDLevel_2V3: PVD detection level set to 2.3V - * @arg PWR_PVDLevel_2V4: PVD detection level set to 2.4V - * @arg PWR_PVDLevel_2V5: PVD detection level set to 2.5V - * @arg PWR_PVDLevel_2V6: PVD detection level set to 2.6V - * @arg PWR_PVDLevel_2V7: PVD detection level set to 2.7V - * @arg PWR_PVDLevel_2V8: PVD detection level set to 2.8V - * @arg PWR_PVDLevel_2V9: PVD detection level set to 2.9V - * @retval None - */ -void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_PWR_PVD_LEVEL(PWR_PVDLevel)); - tmpreg = PWR->CR; - /* Clear PLS[7:5] bits */ - tmpreg &= CR_PLS_MASK; - /* Set PLS[7:5] bits according to PWR_PVDLevel value */ - tmpreg |= PWR_PVDLevel; - /* Store the new value */ - PWR->CR = tmpreg; -} - -/** - * @brief Enables or disables the WakeUp Pin functionality. - * @param NewState: new state of the WakeUp Pin functionality. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void PWR_WakeUpPinCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) CSR_EWUP_BB = (uint32_t)NewState; -} - -/** - * @brief Enters STOP mode. - * @param PWR_Regulator: specifies the regulator state in STOP mode. - * This parameter can be one of the following values: - * @arg PWR_Regulator_ON: STOP mode with regulator ON - * @arg PWR_Regulator_LowPower: STOP mode with regulator in low power mode - * @param PWR_STOPEntry: specifies if STOP mode in entered with WFI or WFE instruction. - * This parameter can be one of the following values: - * @arg PWR_STOPEntry_WFI: enter STOP mode with WFI instruction - * @arg PWR_STOPEntry_WFE: enter STOP mode with WFE instruction - * @retval None - */ -void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_PWR_REGULATOR(PWR_Regulator)); - assert_param(IS_PWR_STOP_ENTRY(PWR_STOPEntry)); - - /* Select the regulator state in STOP mode ---------------------------------*/ - tmpreg = PWR->CR; - /* Clear PDDS and LPDS bits */ - tmpreg &= CR_DS_MASK; - /* Set LPDS bit according to PWR_Regulator value */ - tmpreg |= PWR_Regulator; - /* Store the new value */ - PWR->CR = tmpreg; - /* Set SLEEPDEEP bit of Cortex System Control Register */ - SCB->SCR |= SCB_SCR_SLEEPDEEP; - - /* Select STOP mode entry --------------------------------------------------*/ - if(PWR_STOPEntry == PWR_STOPEntry_WFI) - { - /* Request Wait For Interrupt */ - __WFI(); - } - else - { - /* Request Wait For Event */ - __WFE(); - } - - /* Reset SLEEPDEEP bit of Cortex System Control Register */ - SCB->SCR &= (uint32_t)~((uint32_t)SCB_SCR_SLEEPDEEP); -} - -/** - * @brief Enters STANDBY mode. - * @param None - * @retval None - */ -void PWR_EnterSTANDBYMode(void) -{ - /* Clear Wake-up flag */ - PWR->CR |= PWR_CR_CWUF; - /* Select STANDBY mode */ - PWR->CR |= PWR_CR_PDDS; - /* Set SLEEPDEEP bit of Cortex System Control Register */ - SCB->SCR |= SCB_SCR_SLEEPDEEP; -/* This option is used to ensure that store operations are completed */ -#if defined ( __CC_ARM ) - __force_stores(); -#endif - /* Request Wait For Interrupt */ - __WFI(); -} - -/** - * @brief Checks whether the specified PWR flag is set or not. - * @param PWR_FLAG: specifies the flag to check. - * This parameter can be one of the following values: - * @arg PWR_FLAG_WU: Wake Up flag - * @arg PWR_FLAG_SB: StandBy flag - * @arg PWR_FLAG_PVDO: PVD Output - * @retval The new state of PWR_FLAG (SET or RESET). - */ -FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_PWR_GET_FLAG(PWR_FLAG)); - - if ((PWR->CSR & PWR_FLAG) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - /* Return the flag status */ - return bitstatus; -} - -/** - * @brief Clears the PWR's pending flags. - * @param PWR_FLAG: specifies the flag to clear. - * This parameter can be one of the following values: - * @arg PWR_FLAG_WU: Wake Up flag - * @arg PWR_FLAG_SB: StandBy flag - * @retval None - */ -void PWR_ClearFlag(uint32_t PWR_FLAG) -{ - /* Check the parameters */ - assert_param(IS_PWR_CLEAR_FLAG(PWR_FLAG)); - - PWR->CR |= PWR_FLAG << 2; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c deleted file mode 100644 index 4b2ec1f1..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c +++ /dev/null @@ -1,1470 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_rcc.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the RCC firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup RCC - * @brief RCC driver modules - * @{ - */ - -/** @defgroup RCC_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup RCC_Private_Defines - * @{ - */ - -/* ------------ RCC registers bit address in the alias region ----------- */ -#define RCC_OFFSET (RCC_BASE - PERIPH_BASE) - -/* --- CR Register ---*/ - -/* Alias word address of HSION bit */ -#define CR_OFFSET (RCC_OFFSET + 0x00) -#define HSION_BitNumber 0x00 -#define CR_HSION_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (HSION_BitNumber * 4)) - -/* Alias word address of PLLON bit */ -#define PLLON_BitNumber 0x18 -#define CR_PLLON_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (PLLON_BitNumber * 4)) - -#ifdef STM32F10X_CL - /* Alias word address of PLL2ON bit */ - #define PLL2ON_BitNumber 0x1A - #define CR_PLL2ON_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (PLL2ON_BitNumber * 4)) - - /* Alias word address of PLL3ON bit */ - #define PLL3ON_BitNumber 0x1C - #define CR_PLL3ON_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (PLL3ON_BitNumber * 4)) -#endif /* STM32F10X_CL */ - -/* Alias word address of CSSON bit */ -#define CSSON_BitNumber 0x13 -#define CR_CSSON_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (CSSON_BitNumber * 4)) - -/* --- CFGR Register ---*/ - -/* Alias word address of USBPRE bit */ -#define CFGR_OFFSET (RCC_OFFSET + 0x04) - -#ifndef STM32F10X_CL - #define USBPRE_BitNumber 0x16 - #define CFGR_USBPRE_BB (PERIPH_BB_BASE + (CFGR_OFFSET * 32) + (USBPRE_BitNumber * 4)) -#else - #define OTGFSPRE_BitNumber 0x16 - #define CFGR_OTGFSPRE_BB (PERIPH_BB_BASE + (CFGR_OFFSET * 32) + (OTGFSPRE_BitNumber * 4)) -#endif /* STM32F10X_CL */ - -/* --- BDCR Register ---*/ - -/* Alias word address of RTCEN bit */ -#define BDCR_OFFSET (RCC_OFFSET + 0x20) -#define RTCEN_BitNumber 0x0F -#define BDCR_RTCEN_BB (PERIPH_BB_BASE + (BDCR_OFFSET * 32) + (RTCEN_BitNumber * 4)) - -/* Alias word address of BDRST bit */ -#define BDRST_BitNumber 0x10 -#define BDCR_BDRST_BB (PERIPH_BB_BASE + (BDCR_OFFSET * 32) + (BDRST_BitNumber * 4)) - -/* --- CSR Register ---*/ - -/* Alias word address of LSION bit */ -#define CSR_OFFSET (RCC_OFFSET + 0x24) -#define LSION_BitNumber 0x00 -#define CSR_LSION_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (LSION_BitNumber * 4)) - -#ifdef STM32F10X_CL -/* --- CFGR2 Register ---*/ - - /* Alias word address of I2S2SRC bit */ - #define CFGR2_OFFSET (RCC_OFFSET + 0x2C) - #define I2S2SRC_BitNumber 0x11 - #define CFGR2_I2S2SRC_BB (PERIPH_BB_BASE + (CFGR2_OFFSET * 32) + (I2S2SRC_BitNumber * 4)) - - /* Alias word address of I2S3SRC bit */ - #define I2S3SRC_BitNumber 0x12 - #define CFGR2_I2S3SRC_BB (PERIPH_BB_BASE + (CFGR2_OFFSET * 32) + (I2S3SRC_BitNumber * 4)) -#endif /* STM32F10X_CL */ - -/* ---------------------- RCC registers bit mask ------------------------ */ - -/* CR register bit mask */ -#define CR_HSEBYP_Reset ((uint32_t)0xFFFBFFFF) -#define CR_HSEBYP_Set ((uint32_t)0x00040000) -#define CR_HSEON_Reset ((uint32_t)0xFFFEFFFF) -#define CR_HSEON_Set ((uint32_t)0x00010000) -#define CR_HSITRIM_Mask ((uint32_t)0xFFFFFF07) - -/* CFGR register bit mask */ -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) - #define CFGR_PLL_Mask ((uint32_t)0xFFC2FFFF) -#else - #define CFGR_PLL_Mask ((uint32_t)0xFFC0FFFF) -#endif /* STM32F10X_CL */ - -#define CFGR_PLLMull_Mask ((uint32_t)0x003C0000) -#define CFGR_PLLSRC_Mask ((uint32_t)0x00010000) -#define CFGR_PLLXTPRE_Mask ((uint32_t)0x00020000) -#define CFGR_SWS_Mask ((uint32_t)0x0000000C) -#define CFGR_SW_Mask ((uint32_t)0xFFFFFFFC) -#define CFGR_HPRE_Reset_Mask ((uint32_t)0xFFFFFF0F) -#define CFGR_HPRE_Set_Mask ((uint32_t)0x000000F0) -#define CFGR_PPRE1_Reset_Mask ((uint32_t)0xFFFFF8FF) -#define CFGR_PPRE1_Set_Mask ((uint32_t)0x00000700) -#define CFGR_PPRE2_Reset_Mask ((uint32_t)0xFFFFC7FF) -#define CFGR_PPRE2_Set_Mask ((uint32_t)0x00003800) -#define CFGR_ADCPRE_Reset_Mask ((uint32_t)0xFFFF3FFF) -#define CFGR_ADCPRE_Set_Mask ((uint32_t)0x0000C000) - -/* CSR register bit mask */ -#define CSR_RMVF_Set ((uint32_t)0x01000000) - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) -/* CFGR2 register bit mask */ - #define CFGR2_PREDIV1SRC ((uint32_t)0x00010000) - #define CFGR2_PREDIV1 ((uint32_t)0x0000000F) -#endif -#ifdef STM32F10X_CL - #define CFGR2_PREDIV2 ((uint32_t)0x000000F0) - #define CFGR2_PLL2MUL ((uint32_t)0x00000F00) - #define CFGR2_PLL3MUL ((uint32_t)0x0000F000) -#endif /* STM32F10X_CL */ - -/* RCC Flag Mask */ -#define FLAG_Mask ((uint8_t)0x1F) - -/* CIR register byte 2 (Bits[15:8]) base address */ -#define CIR_BYTE2_ADDRESS ((uint32_t)0x40021009) - -/* CIR register byte 3 (Bits[23:16]) base address */ -#define CIR_BYTE3_ADDRESS ((uint32_t)0x4002100A) - -/* CFGR register byte 4 (Bits[31:24]) base address */ -#define CFGR_BYTE4_ADDRESS ((uint32_t)0x40021007) - -/* BDCR register base address */ -#define BDCR_ADDRESS (PERIPH_BASE + BDCR_OFFSET) - -/** - * @} - */ - -/** @defgroup RCC_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup RCC_Private_Variables - * @{ - */ - -static __I uint8_t APBAHBPrescTable[16] = {0, 0, 0, 0, 1, 2, 3, 4, 1, 2, 3, 4, 6, 7, 8, 9}; -static __I uint8_t ADCPrescTable[4] = {2, 4, 6, 8}; - -/** - * @} - */ - -/** @defgroup RCC_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup RCC_Private_Functions - * @{ - */ - -/** - * @brief Resets the RCC clock configuration to the default reset state. - * @param None - * @retval None - */ -void RCC_DeInit(void) -{ - /* Set HSION bit */ - RCC->CR |= (uint32_t)0x00000001; - - /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ -#ifndef STM32F10X_CL - RCC->CFGR &= (uint32_t)0xF8FF0000; -#else - RCC->CFGR &= (uint32_t)0xF0FF0000; -#endif /* STM32F10X_CL */ - - /* Reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (uint32_t)0xFEF6FFFF; - - /* Reset HSEBYP bit */ - RCC->CR &= (uint32_t)0xFFFBFFFF; - - /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (uint32_t)0xFF80FFFF; - -#ifdef STM32F10X_CL - /* Reset PLL2ON and PLL3ON bits */ - RCC->CR &= (uint32_t)0xEBFFFFFF; - - /* Disable all interrupts and clear pending bits */ - RCC->CIR = 0x00FF0000; - - /* Reset CFGR2 register */ - RCC->CFGR2 = 0x00000000; -#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - /* Disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - - /* Reset CFGR2 register */ - RCC->CFGR2 = 0x00000000; -#else - /* Disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; -#endif /* STM32F10X_CL */ - -} - -/** - * @brief Configures the External High Speed oscillator (HSE). - * @note HSE can not be stopped if it is used directly or through the PLL as system clock. - * @param RCC_HSE: specifies the new state of the HSE. - * This parameter can be one of the following values: - * @arg RCC_HSE_OFF: HSE oscillator OFF - * @arg RCC_HSE_ON: HSE oscillator ON - * @arg RCC_HSE_Bypass: HSE oscillator bypassed with external clock - * @retval None - */ -void RCC_HSEConfig(uint32_t RCC_HSE) -{ - /* Check the parameters */ - assert_param(IS_RCC_HSE(RCC_HSE)); - /* Reset HSEON and HSEBYP bits before configuring the HSE ------------------*/ - /* Reset HSEON bit */ - RCC->CR &= CR_HSEON_Reset; - /* Reset HSEBYP bit */ - RCC->CR &= CR_HSEBYP_Reset; - /* Configure HSE (RCC_HSE_OFF is already covered by the code section above) */ - switch(RCC_HSE) - { - case RCC_HSE_ON: - /* Set HSEON bit */ - RCC->CR |= CR_HSEON_Set; - break; - - case RCC_HSE_Bypass: - /* Set HSEBYP and HSEON bits */ - RCC->CR |= CR_HSEBYP_Set | CR_HSEON_Set; - break; - - default: - break; - } -} - -/** - * @brief Waits for HSE start-up. - * @param None - * @retval An ErrorStatus enumuration value: - * - SUCCESS: HSE oscillator is stable and ready to use - * - ERROR: HSE oscillator not yet ready - */ -ErrorStatus RCC_WaitForHSEStartUp(void) -{ - __IO uint32_t StartUpCounter = 0; - ErrorStatus status = ERROR; - FlagStatus HSEStatus = RESET; - - /* Wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC_GetFlagStatus(RCC_FLAG_HSERDY); - StartUpCounter++; - } while((StartUpCounter != HSE_STARTUP_TIMEOUT) && (HSEStatus == RESET)); - - if (RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET) - { - status = SUCCESS; - } - else - { - status = ERROR; - } - return (status); -} - -/** - * @brief Adjusts the Internal High Speed oscillator (HSI) calibration value. - * @param HSICalibrationValue: specifies the calibration trimming value. - * This parameter must be a number between 0 and 0x1F. - * @retval None - */ -void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_RCC_CALIBRATION_VALUE(HSICalibrationValue)); - tmpreg = RCC->CR; - /* Clear HSITRIM[4:0] bits */ - tmpreg &= CR_HSITRIM_Mask; - /* Set the HSITRIM[4:0] bits according to HSICalibrationValue value */ - tmpreg |= (uint32_t)HSICalibrationValue << 3; - /* Store the new value */ - RCC->CR = tmpreg; -} - -/** - * @brief Enables or disables the Internal High Speed oscillator (HSI). - * @note HSI can not be stopped if it is used directly or through the PLL as system clock. - * @param NewState: new state of the HSI. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_HSICmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) CR_HSION_BB = (uint32_t)NewState; -} - -/** - * @brief Configures the PLL clock source and multiplication factor. - * @note This function must be used only when the PLL is disabled. - * @param RCC_PLLSource: specifies the PLL entry clock source. - * For @b STM32_Connectivity_line_devices or @b STM32_Value_line_devices, - * this parameter can be one of the following values: - * @arg RCC_PLLSource_HSI_Div2: HSI oscillator clock divided by 2 selected as PLL clock entry - * @arg RCC_PLLSource_PREDIV1: PREDIV1 clock selected as PLL clock entry - * For @b other_STM32_devices, this parameter can be one of the following values: - * @arg RCC_PLLSource_HSI_Div2: HSI oscillator clock divided by 2 selected as PLL clock entry - * @arg RCC_PLLSource_HSE_Div1: HSE oscillator clock selected as PLL clock entry - * @arg RCC_PLLSource_HSE_Div2: HSE oscillator clock divided by 2 selected as PLL clock entry - * @param RCC_PLLMul: specifies the PLL multiplication factor. - * For @b STM32_Connectivity_line_devices, this parameter can be RCC_PLLMul_x where x:{[4,9], 6_5} - * For @b other_STM32_devices, this parameter can be RCC_PLLMul_x where x:[2,16] - * @retval None - */ -void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_RCC_PLL_SOURCE(RCC_PLLSource)); - assert_param(IS_RCC_PLL_MUL(RCC_PLLMul)); - - tmpreg = RCC->CFGR; - /* Clear PLLSRC, PLLXTPRE and PLLMUL[3:0] bits */ - tmpreg &= CFGR_PLL_Mask; - /* Set the PLL configuration bits */ - tmpreg |= RCC_PLLSource | RCC_PLLMul; - /* Store the new value */ - RCC->CFGR = tmpreg; -} - -/** - * @brief Enables or disables the PLL. - * @note The PLL can not be disabled if it is used as system clock. - * @param NewState: new state of the PLL. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_PLLCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) CR_PLLON_BB = (uint32_t)NewState; -} - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) -/** - * @brief Configures the PREDIV1 division factor. - * @note - * - This function must be used only when the PLL is disabled. - * - This function applies only to STM32 Connectivity line and Value line - * devices. - * @param RCC_PREDIV1_Source: specifies the PREDIV1 clock source. - * This parameter can be one of the following values: - * @arg RCC_PREDIV1_Source_HSE: HSE selected as PREDIV1 clock - * @arg RCC_PREDIV1_Source_PLL2: PLL2 selected as PREDIV1 clock - * @note - * For @b STM32_Value_line_devices this parameter is always RCC_PREDIV1_Source_HSE - * @param RCC_PREDIV1_Div: specifies the PREDIV1 clock division factor. - * This parameter can be RCC_PREDIV1_Divx where x:[1,16] - * @retval None - */ -void RCC_PREDIV1Config(uint32_t RCC_PREDIV1_Source, uint32_t RCC_PREDIV1_Div) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_RCC_PREDIV1_SOURCE(RCC_PREDIV1_Source)); - assert_param(IS_RCC_PREDIV1(RCC_PREDIV1_Div)); - - tmpreg = RCC->CFGR2; - /* Clear PREDIV1[3:0] and PREDIV1SRC bits */ - tmpreg &= ~(CFGR2_PREDIV1 | CFGR2_PREDIV1SRC); - /* Set the PREDIV1 clock source and division factor */ - tmpreg |= RCC_PREDIV1_Source | RCC_PREDIV1_Div ; - /* Store the new value */ - RCC->CFGR2 = tmpreg; -} -#endif - -#ifdef STM32F10X_CL -/** - * @brief Configures the PREDIV2 division factor. - * @note - * - This function must be used only when both PLL2 and PLL3 are disabled. - * - This function applies only to STM32 Connectivity line devices. - * @param RCC_PREDIV2_Div: specifies the PREDIV2 clock division factor. - * This parameter can be RCC_PREDIV2_Divx where x:[1,16] - * @retval None - */ -void RCC_PREDIV2Config(uint32_t RCC_PREDIV2_Div) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_RCC_PREDIV2(RCC_PREDIV2_Div)); - - tmpreg = RCC->CFGR2; - /* Clear PREDIV2[3:0] bits */ - tmpreg &= ~CFGR2_PREDIV2; - /* Set the PREDIV2 division factor */ - tmpreg |= RCC_PREDIV2_Div; - /* Store the new value */ - RCC->CFGR2 = tmpreg; -} - -/** - * @brief Configures the PLL2 multiplication factor. - * @note - * - This function must be used only when the PLL2 is disabled. - * - This function applies only to STM32 Connectivity line devices. - * @param RCC_PLL2Mul: specifies the PLL2 multiplication factor. - * This parameter can be RCC_PLL2Mul_x where x:{[8,14], 16, 20} - * @retval None - */ -void RCC_PLL2Config(uint32_t RCC_PLL2Mul) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_RCC_PLL2_MUL(RCC_PLL2Mul)); - - tmpreg = RCC->CFGR2; - /* Clear PLL2Mul[3:0] bits */ - tmpreg &= ~CFGR2_PLL2MUL; - /* Set the PLL2 configuration bits */ - tmpreg |= RCC_PLL2Mul; - /* Store the new value */ - RCC->CFGR2 = tmpreg; -} - - -/** - * @brief Enables or disables the PLL2. - * @note - * - The PLL2 can not be disabled if it is used indirectly as system clock - * (i.e. it is used as PLL clock entry that is used as System clock). - * - This function applies only to STM32 Connectivity line devices. - * @param NewState: new state of the PLL2. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_PLL2Cmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) CR_PLL2ON_BB = (uint32_t)NewState; -} - - -/** - * @brief Configures the PLL3 multiplication factor. - * @note - * - This function must be used only when the PLL3 is disabled. - * - This function applies only to STM32 Connectivity line devices. - * @param RCC_PLL3Mul: specifies the PLL3 multiplication factor. - * This parameter can be RCC_PLL3Mul_x where x:{[8,14], 16, 20} - * @retval None - */ -void RCC_PLL3Config(uint32_t RCC_PLL3Mul) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_RCC_PLL3_MUL(RCC_PLL3Mul)); - - tmpreg = RCC->CFGR2; - /* Clear PLL3Mul[3:0] bits */ - tmpreg &= ~CFGR2_PLL3MUL; - /* Set the PLL3 configuration bits */ - tmpreg |= RCC_PLL3Mul; - /* Store the new value */ - RCC->CFGR2 = tmpreg; -} - - -/** - * @brief Enables or disables the PLL3. - * @note This function applies only to STM32 Connectivity line devices. - * @param NewState: new state of the PLL3. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_PLL3Cmd(FunctionalState NewState) -{ - /* Check the parameters */ - - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) CR_PLL3ON_BB = (uint32_t)NewState; -} -#endif /* STM32F10X_CL */ - -/** - * @brief Configures the system clock (SYSCLK). - * @param RCC_SYSCLKSource: specifies the clock source used as system clock. - * This parameter can be one of the following values: - * @arg RCC_SYSCLKSource_HSI: HSI selected as system clock - * @arg RCC_SYSCLKSource_HSE: HSE selected as system clock - * @arg RCC_SYSCLKSource_PLLCLK: PLL selected as system clock - * @retval None - */ -void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_RCC_SYSCLK_SOURCE(RCC_SYSCLKSource)); - tmpreg = RCC->CFGR; - /* Clear SW[1:0] bits */ - tmpreg &= CFGR_SW_Mask; - /* Set SW[1:0] bits according to RCC_SYSCLKSource value */ - tmpreg |= RCC_SYSCLKSource; - /* Store the new value */ - RCC->CFGR = tmpreg; -} - -/** - * @brief Returns the clock source used as system clock. - * @param None - * @retval The clock source used as system clock. The returned value can - * be one of the following: - * - 0x00: HSI used as system clock - * - 0x04: HSE used as system clock - * - 0x08: PLL used as system clock - */ -uint8_t RCC_GetSYSCLKSource(void) -{ - return ((uint8_t)(RCC->CFGR & CFGR_SWS_Mask)); -} - -/** - * @brief Configures the AHB clock (HCLK). - * @param RCC_SYSCLK: defines the AHB clock divider. This clock is derived from - * the system clock (SYSCLK). - * This parameter can be one of the following values: - * @arg RCC_SYSCLK_Div1: AHB clock = SYSCLK - * @arg RCC_SYSCLK_Div2: AHB clock = SYSCLK/2 - * @arg RCC_SYSCLK_Div4: AHB clock = SYSCLK/4 - * @arg RCC_SYSCLK_Div8: AHB clock = SYSCLK/8 - * @arg RCC_SYSCLK_Div16: AHB clock = SYSCLK/16 - * @arg RCC_SYSCLK_Div64: AHB clock = SYSCLK/64 - * @arg RCC_SYSCLK_Div128: AHB clock = SYSCLK/128 - * @arg RCC_SYSCLK_Div256: AHB clock = SYSCLK/256 - * @arg RCC_SYSCLK_Div512: AHB clock = SYSCLK/512 - * @retval None - */ -void RCC_HCLKConfig(uint32_t RCC_SYSCLK) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_RCC_HCLK(RCC_SYSCLK)); - tmpreg = RCC->CFGR; - /* Clear HPRE[3:0] bits */ - tmpreg &= CFGR_HPRE_Reset_Mask; - /* Set HPRE[3:0] bits according to RCC_SYSCLK value */ - tmpreg |= RCC_SYSCLK; - /* Store the new value */ - RCC->CFGR = tmpreg; -} - -/** - * @brief Configures the Low Speed APB clock (PCLK1). - * @param RCC_HCLK: defines the APB1 clock divider. This clock is derived from - * the AHB clock (HCLK). - * This parameter can be one of the following values: - * @arg RCC_HCLK_Div1: APB1 clock = HCLK - * @arg RCC_HCLK_Div2: APB1 clock = HCLK/2 - * @arg RCC_HCLK_Div4: APB1 clock = HCLK/4 - * @arg RCC_HCLK_Div8: APB1 clock = HCLK/8 - * @arg RCC_HCLK_Div16: APB1 clock = HCLK/16 - * @retval None - */ -void RCC_PCLK1Config(uint32_t RCC_HCLK) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_RCC_PCLK(RCC_HCLK)); - tmpreg = RCC->CFGR; - /* Clear PPRE1[2:0] bits */ - tmpreg &= CFGR_PPRE1_Reset_Mask; - /* Set PPRE1[2:0] bits according to RCC_HCLK value */ - tmpreg |= RCC_HCLK; - /* Store the new value */ - RCC->CFGR = tmpreg; -} - -/** - * @brief Configures the High Speed APB clock (PCLK2). - * @param RCC_HCLK: defines the APB2 clock divider. This clock is derived from - * the AHB clock (HCLK). - * This parameter can be one of the following values: - * @arg RCC_HCLK_Div1: APB2 clock = HCLK - * @arg RCC_HCLK_Div2: APB2 clock = HCLK/2 - * @arg RCC_HCLK_Div4: APB2 clock = HCLK/4 - * @arg RCC_HCLK_Div8: APB2 clock = HCLK/8 - * @arg RCC_HCLK_Div16: APB2 clock = HCLK/16 - * @retval None - */ -void RCC_PCLK2Config(uint32_t RCC_HCLK) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_RCC_PCLK(RCC_HCLK)); - tmpreg = RCC->CFGR; - /* Clear PPRE2[2:0] bits */ - tmpreg &= CFGR_PPRE2_Reset_Mask; - /* Set PPRE2[2:0] bits according to RCC_HCLK value */ - tmpreg |= RCC_HCLK << 3; - /* Store the new value */ - RCC->CFGR = tmpreg; -} - -/** - * @brief Enables or disables the specified RCC interrupts. - * @param RCC_IT: specifies the RCC interrupt sources to be enabled or disabled. - * - * For @b STM32_Connectivity_line_devices, this parameter can be any combination - * of the following values - * @arg RCC_IT_LSIRDY: LSI ready interrupt - * @arg RCC_IT_LSERDY: LSE ready interrupt - * @arg RCC_IT_HSIRDY: HSI ready interrupt - * @arg RCC_IT_HSERDY: HSE ready interrupt - * @arg RCC_IT_PLLRDY: PLL ready interrupt - * @arg RCC_IT_PLL2RDY: PLL2 ready interrupt - * @arg RCC_IT_PLL3RDY: PLL3 ready interrupt - * - * For @b other_STM32_devices, this parameter can be any combination of the - * following values - * @arg RCC_IT_LSIRDY: LSI ready interrupt - * @arg RCC_IT_LSERDY: LSE ready interrupt - * @arg RCC_IT_HSIRDY: HSI ready interrupt - * @arg RCC_IT_HSERDY: HSE ready interrupt - * @arg RCC_IT_PLLRDY: PLL ready interrupt - * - * @param NewState: new state of the specified RCC interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_RCC_IT(RCC_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Perform Byte access to RCC_CIR bits to enable the selected interrupts */ - *(__IO uint8_t *) CIR_BYTE2_ADDRESS |= RCC_IT; - } - else - { - /* Perform Byte access to RCC_CIR bits to disable the selected interrupts */ - *(__IO uint8_t *) CIR_BYTE2_ADDRESS &= (uint8_t)~RCC_IT; - } -} - -#ifndef STM32F10X_CL -/** - * @brief Configures the USB clock (USBCLK). - * @param RCC_USBCLKSource: specifies the USB clock source. This clock is - * derived from the PLL output. - * This parameter can be one of the following values: - * @arg RCC_USBCLKSource_PLLCLK_1Div5: PLL clock divided by 1,5 selected as USB - * clock source - * @arg RCC_USBCLKSource_PLLCLK_Div1: PLL clock selected as USB clock source - * @retval None - */ -void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource) -{ - /* Check the parameters */ - assert_param(IS_RCC_USBCLK_SOURCE(RCC_USBCLKSource)); - - *(__IO uint32_t *) CFGR_USBPRE_BB = RCC_USBCLKSource; -} -#else -/** - * @brief Configures the USB OTG FS clock (OTGFSCLK). - * This function applies only to STM32 Connectivity line devices. - * @param RCC_OTGFSCLKSource: specifies the USB OTG FS clock source. - * This clock is derived from the PLL output. - * This parameter can be one of the following values: - * @arg RCC_OTGFSCLKSource_PLLVCO_Div3: PLL VCO clock divided by 2 selected as USB OTG FS clock source - * @arg RCC_OTGFSCLKSource_PLLVCO_Div2: PLL VCO clock divided by 2 selected as USB OTG FS clock source - * @retval None - */ -void RCC_OTGFSCLKConfig(uint32_t RCC_OTGFSCLKSource) -{ - /* Check the parameters */ - assert_param(IS_RCC_OTGFSCLK_SOURCE(RCC_OTGFSCLKSource)); - - *(__IO uint32_t *) CFGR_OTGFSPRE_BB = RCC_OTGFSCLKSource; -} -#endif /* STM32F10X_CL */ - -/** - * @brief Configures the ADC clock (ADCCLK). - * @param RCC_PCLK2: defines the ADC clock divider. This clock is derived from - * the APB2 clock (PCLK2). - * This parameter can be one of the following values: - * @arg RCC_PCLK2_Div2: ADC clock = PCLK2/2 - * @arg RCC_PCLK2_Div4: ADC clock = PCLK2/4 - * @arg RCC_PCLK2_Div6: ADC clock = PCLK2/6 - * @arg RCC_PCLK2_Div8: ADC clock = PCLK2/8 - * @retval None - */ -void RCC_ADCCLKConfig(uint32_t RCC_PCLK2) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_RCC_ADCCLK(RCC_PCLK2)); - tmpreg = RCC->CFGR; - /* Clear ADCPRE[1:0] bits */ - tmpreg &= CFGR_ADCPRE_Reset_Mask; - /* Set ADCPRE[1:0] bits according to RCC_PCLK2 value */ - tmpreg |= RCC_PCLK2; - /* Store the new value */ - RCC->CFGR = tmpreg; -} - -#ifdef STM32F10X_CL -/** - * @brief Configures the I2S2 clock source(I2S2CLK). - * @note - * - This function must be called before enabling I2S2 APB clock. - * - This function applies only to STM32 Connectivity line devices. - * @param RCC_I2S2CLKSource: specifies the I2S2 clock source. - * This parameter can be one of the following values: - * @arg RCC_I2S2CLKSource_SYSCLK: system clock selected as I2S2 clock entry - * @arg RCC_I2S2CLKSource_PLL3_VCO: PLL3 VCO clock selected as I2S2 clock entry - * @retval None - */ -void RCC_I2S2CLKConfig(uint32_t RCC_I2S2CLKSource) -{ - /* Check the parameters */ - assert_param(IS_RCC_I2S2CLK_SOURCE(RCC_I2S2CLKSource)); - - *(__IO uint32_t *) CFGR2_I2S2SRC_BB = RCC_I2S2CLKSource; -} - -/** - * @brief Configures the I2S3 clock source(I2S2CLK). - * @note - * - This function must be called before enabling I2S3 APB clock. - * - This function applies only to STM32 Connectivity line devices. - * @param RCC_I2S3CLKSource: specifies the I2S3 clock source. - * This parameter can be one of the following values: - * @arg RCC_I2S3CLKSource_SYSCLK: system clock selected as I2S3 clock entry - * @arg RCC_I2S3CLKSource_PLL3_VCO: PLL3 VCO clock selected as I2S3 clock entry - * @retval None - */ -void RCC_I2S3CLKConfig(uint32_t RCC_I2S3CLKSource) -{ - /* Check the parameters */ - assert_param(IS_RCC_I2S3CLK_SOURCE(RCC_I2S3CLKSource)); - - *(__IO uint32_t *) CFGR2_I2S3SRC_BB = RCC_I2S3CLKSource; -} -#endif /* STM32F10X_CL */ - -/** - * @brief Configures the External Low Speed oscillator (LSE). - * @param RCC_LSE: specifies the new state of the LSE. - * This parameter can be one of the following values: - * @arg RCC_LSE_OFF: LSE oscillator OFF - * @arg RCC_LSE_ON: LSE oscillator ON - * @arg RCC_LSE_Bypass: LSE oscillator bypassed with external clock - * @retval None - */ -void RCC_LSEConfig(uint8_t RCC_LSE) -{ - /* Check the parameters */ - assert_param(IS_RCC_LSE(RCC_LSE)); - /* Reset LSEON and LSEBYP bits before configuring the LSE ------------------*/ - /* Reset LSEON bit */ - *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_OFF; - /* Reset LSEBYP bit */ - *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_OFF; - /* Configure LSE (RCC_LSE_OFF is already covered by the code section above) */ - switch(RCC_LSE) - { - case RCC_LSE_ON: - /* Set LSEON bit */ - *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_ON; - break; - - case RCC_LSE_Bypass: - /* Set LSEBYP and LSEON bits */ - *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_Bypass | RCC_LSE_ON; - break; - - default: - break; - } -} - -/** - * @brief Enables or disables the Internal Low Speed oscillator (LSI). - * @note LSI can not be disabled if the IWDG is running. - * @param NewState: new state of the LSI. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_LSICmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) CSR_LSION_BB = (uint32_t)NewState; -} - -/** - * @brief Configures the RTC clock (RTCCLK). - * @note Once the RTC clock is selected it can't be changed unless the Backup domain is reset. - * @param RCC_RTCCLKSource: specifies the RTC clock source. - * This parameter can be one of the following values: - * @arg RCC_RTCCLKSource_LSE: LSE selected as RTC clock - * @arg RCC_RTCCLKSource_LSI: LSI selected as RTC clock - * @arg RCC_RTCCLKSource_HSE_Div128: HSE clock divided by 128 selected as RTC clock - * @retval None - */ -void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource) -{ - /* Check the parameters */ - assert_param(IS_RCC_RTCCLK_SOURCE(RCC_RTCCLKSource)); - /* Select the RTC clock source */ - RCC->BDCR |= RCC_RTCCLKSource; -} - -/** - * @brief Enables or disables the RTC clock. - * @note This function must be used only after the RTC clock was selected using the RCC_RTCCLKConfig function. - * @param NewState: new state of the RTC clock. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_RTCCLKCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) BDCR_RTCEN_BB = (uint32_t)NewState; -} - -/** - * @brief Returns the frequencies of different on chip clocks. - * @param RCC_Clocks: pointer to a RCC_ClocksTypeDef structure which will hold - * the clocks frequencies. - * @note The result of this function could be not correct when using - * fractional value for HSE crystal. - * @retval None - */ -void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks) -{ - uint32_t tmp = 0, pllmull = 0, pllsource = 0, presc = 0; - -#ifdef STM32F10X_CL - uint32_t prediv1source = 0, prediv1factor = 0, prediv2factor = 0, pll2mull = 0; -#endif /* STM32F10X_CL */ - -#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - uint32_t prediv1factor = 0; -#endif - - /* Get SYSCLK source -------------------------------------------------------*/ - tmp = RCC->CFGR & CFGR_SWS_Mask; - - switch (tmp) - { - case 0x00: /* HSI used as system clock */ - RCC_Clocks->SYSCLK_Frequency = HSI_VALUE; - break; - case 0x04: /* HSE used as system clock */ - RCC_Clocks->SYSCLK_Frequency = HSE_VALUE; - break; - case 0x08: /* PLL used as system clock */ - - /* Get PLL clock source and multiplication factor ----------------------*/ - pllmull = RCC->CFGR & CFGR_PLLMull_Mask; - pllsource = RCC->CFGR & CFGR_PLLSRC_Mask; - -#ifndef STM32F10X_CL - pllmull = ( pllmull >> 18) + 2; - - if (pllsource == 0x00) - {/* HSI oscillator clock divided by 2 selected as PLL clock entry */ - RCC_Clocks->SYSCLK_Frequency = (HSI_VALUE >> 1) * pllmull; - } - else - { - #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) - prediv1factor = (RCC->CFGR2 & CFGR2_PREDIV1) + 1; - /* HSE oscillator clock selected as PREDIV1 clock entry */ - RCC_Clocks->SYSCLK_Frequency = (HSE_VALUE / prediv1factor) * pllmull; - #else - /* HSE selected as PLL clock entry */ - if ((RCC->CFGR & CFGR_PLLXTPRE_Mask) != (uint32_t)RESET) - {/* HSE oscillator clock divided by 2 */ - RCC_Clocks->SYSCLK_Frequency = (HSE_VALUE >> 1) * pllmull; - } - else - { - RCC_Clocks->SYSCLK_Frequency = HSE_VALUE * pllmull; - } - #endif - } -#else - pllmull = pllmull >> 18; - - if (pllmull != 0x0D) - { - pllmull += 2; - } - else - { /* PLL multiplication factor = PLL input clock * 6.5 */ - pllmull = 13 / 2; - } - - if (pllsource == 0x00) - {/* HSI oscillator clock divided by 2 selected as PLL clock entry */ - RCC_Clocks->SYSCLK_Frequency = (HSI_VALUE >> 1) * pllmull; - } - else - {/* PREDIV1 selected as PLL clock entry */ - - /* Get PREDIV1 clock source and division factor */ - prediv1source = RCC->CFGR2 & CFGR2_PREDIV1SRC; - prediv1factor = (RCC->CFGR2 & CFGR2_PREDIV1) + 1; - - if (prediv1source == 0) - { /* HSE oscillator clock selected as PREDIV1 clock entry */ - RCC_Clocks->SYSCLK_Frequency = (HSE_VALUE / prediv1factor) * pllmull; - } - else - {/* PLL2 clock selected as PREDIV1 clock entry */ - - /* Get PREDIV2 division factor and PLL2 multiplication factor */ - prediv2factor = ((RCC->CFGR2 & CFGR2_PREDIV2) >> 4) + 1; - pll2mull = ((RCC->CFGR2 & CFGR2_PLL2MUL) >> 8 ) + 2; - RCC_Clocks->SYSCLK_Frequency = (((HSE_VALUE / prediv2factor) * pll2mull) / prediv1factor) * pllmull; - } - } -#endif /* STM32F10X_CL */ - break; - - default: - RCC_Clocks->SYSCLK_Frequency = HSI_VALUE; - break; - } - - /* Compute HCLK, PCLK1, PCLK2 and ADCCLK clocks frequencies ----------------*/ - /* Get HCLK prescaler */ - tmp = RCC->CFGR & CFGR_HPRE_Set_Mask; - tmp = tmp >> 4; - presc = APBAHBPrescTable[tmp]; - /* HCLK clock frequency */ - RCC_Clocks->HCLK_Frequency = RCC_Clocks->SYSCLK_Frequency >> presc; - /* Get PCLK1 prescaler */ - tmp = RCC->CFGR & CFGR_PPRE1_Set_Mask; - tmp = tmp >> 8; - presc = APBAHBPrescTable[tmp]; - /* PCLK1 clock frequency */ - RCC_Clocks->PCLK1_Frequency = RCC_Clocks->HCLK_Frequency >> presc; - /* Get PCLK2 prescaler */ - tmp = RCC->CFGR & CFGR_PPRE2_Set_Mask; - tmp = tmp >> 11; - presc = APBAHBPrescTable[tmp]; - /* PCLK2 clock frequency */ - RCC_Clocks->PCLK2_Frequency = RCC_Clocks->HCLK_Frequency >> presc; - /* Get ADCCLK prescaler */ - tmp = RCC->CFGR & CFGR_ADCPRE_Set_Mask; - tmp = tmp >> 14; - presc = ADCPrescTable[tmp]; - /* ADCCLK clock frequency */ - RCC_Clocks->ADCCLK_Frequency = RCC_Clocks->PCLK2_Frequency / presc; -} - -/** - * @brief Enables or disables the AHB peripheral clock. - * @param RCC_AHBPeriph: specifies the AHB peripheral to gates its clock. - * - * For @b STM32_Connectivity_line_devices, this parameter can be any combination - * of the following values: - * @arg RCC_AHBPeriph_DMA1 - * @arg RCC_AHBPeriph_DMA2 - * @arg RCC_AHBPeriph_SRAM - * @arg RCC_AHBPeriph_FLITF - * @arg RCC_AHBPeriph_CRC - * @arg RCC_AHBPeriph_OTG_FS - * @arg RCC_AHBPeriph_ETH_MAC - * @arg RCC_AHBPeriph_ETH_MAC_Tx - * @arg RCC_AHBPeriph_ETH_MAC_Rx - * - * For @b other_STM32_devices, this parameter can be any combination of the - * following values: - * @arg RCC_AHBPeriph_DMA1 - * @arg RCC_AHBPeriph_DMA2 - * @arg RCC_AHBPeriph_SRAM - * @arg RCC_AHBPeriph_FLITF - * @arg RCC_AHBPeriph_CRC - * @arg RCC_AHBPeriph_FSMC - * @arg RCC_AHBPeriph_SDIO - * - * @note SRAM and FLITF clock can be disabled only during sleep mode. - * @param NewState: new state of the specified peripheral clock. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_RCC_AHB_PERIPH(RCC_AHBPeriph)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - RCC->AHBENR |= RCC_AHBPeriph; - } - else - { - RCC->AHBENR &= ~RCC_AHBPeriph; - } -} - -/** - * @brief Enables or disables the High Speed APB (APB2) peripheral clock. - * @param RCC_APB2Periph: specifies the APB2 peripheral to gates its clock. - * This parameter can be any combination of the following values: - * @arg RCC_APB2Periph_AFIO, RCC_APB2Periph_GPIOA, RCC_APB2Periph_GPIOB, - * RCC_APB2Periph_GPIOC, RCC_APB2Periph_GPIOD, RCC_APB2Periph_GPIOE, - * RCC_APB2Periph_GPIOF, RCC_APB2Periph_GPIOG, RCC_APB2Periph_ADC1, - * RCC_APB2Periph_ADC2, RCC_APB2Periph_TIM1, RCC_APB2Periph_SPI1, - * RCC_APB2Periph_TIM8, RCC_APB2Periph_USART1, RCC_APB2Periph_ADC3, - * RCC_APB2Periph_TIM15, RCC_APB2Periph_TIM16, RCC_APB2Periph_TIM17, - * RCC_APB2Periph_TIM9, RCC_APB2Periph_TIM10, RCC_APB2Periph_TIM11 - * @param NewState: new state of the specified peripheral clock. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - RCC->APB2ENR |= RCC_APB2Periph; - } - else - { - RCC->APB2ENR &= ~RCC_APB2Periph; - } -} - -/** - * @brief Enables or disables the Low Speed APB (APB1) peripheral clock. - * @param RCC_APB1Periph: specifies the APB1 peripheral to gates its clock. - * This parameter can be any combination of the following values: - * @arg RCC_APB1Periph_TIM2, RCC_APB1Periph_TIM3, RCC_APB1Periph_TIM4, - * RCC_APB1Periph_TIM5, RCC_APB1Periph_TIM6, RCC_APB1Periph_TIM7, - * RCC_APB1Periph_WWDG, RCC_APB1Periph_SPI2, RCC_APB1Periph_SPI3, - * RCC_APB1Periph_USART2, RCC_APB1Periph_USART3, RCC_APB1Periph_USART4, - * RCC_APB1Periph_USART5, RCC_APB1Periph_I2C1, RCC_APB1Periph_I2C2, - * RCC_APB1Periph_USB, RCC_APB1Periph_CAN1, RCC_APB1Periph_BKP, - * RCC_APB1Periph_PWR, RCC_APB1Periph_DAC, RCC_APB1Periph_CEC, - * RCC_APB1Periph_TIM12, RCC_APB1Periph_TIM13, RCC_APB1Periph_TIM14 - * @param NewState: new state of the specified peripheral clock. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - RCC->APB1ENR |= RCC_APB1Periph; - } - else - { - RCC->APB1ENR &= ~RCC_APB1Periph; - } -} - -#ifdef STM32F10X_CL -/** - * @brief Forces or releases AHB peripheral reset. - * @note This function applies only to STM32 Connectivity line devices. - * @param RCC_AHBPeriph: specifies the AHB peripheral to reset. - * This parameter can be any combination of the following values: - * @arg RCC_AHBPeriph_OTG_FS - * @arg RCC_AHBPeriph_ETH_MAC - * @param NewState: new state of the specified peripheral reset. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_AHBPeriphResetCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_RCC_AHB_PERIPH_RESET(RCC_AHBPeriph)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - RCC->AHBRSTR |= RCC_AHBPeriph; - } - else - { - RCC->AHBRSTR &= ~RCC_AHBPeriph; - } -} -#endif /* STM32F10X_CL */ - -/** - * @brief Forces or releases High Speed APB (APB2) peripheral reset. - * @param RCC_APB2Periph: specifies the APB2 peripheral to reset. - * This parameter can be any combination of the following values: - * @arg RCC_APB2Periph_AFIO, RCC_APB2Periph_GPIOA, RCC_APB2Periph_GPIOB, - * RCC_APB2Periph_GPIOC, RCC_APB2Periph_GPIOD, RCC_APB2Periph_GPIOE, - * RCC_APB2Periph_GPIOF, RCC_APB2Periph_GPIOG, RCC_APB2Periph_ADC1, - * RCC_APB2Periph_ADC2, RCC_APB2Periph_TIM1, RCC_APB2Periph_SPI1, - * RCC_APB2Periph_TIM8, RCC_APB2Periph_USART1, RCC_APB2Periph_ADC3, - * RCC_APB2Periph_TIM15, RCC_APB2Periph_TIM16, RCC_APB2Periph_TIM17, - * RCC_APB2Periph_TIM9, RCC_APB2Periph_TIM10, RCC_APB2Periph_TIM11 - * @param NewState: new state of the specified peripheral reset. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - RCC->APB2RSTR |= RCC_APB2Periph; - } - else - { - RCC->APB2RSTR &= ~RCC_APB2Periph; - } -} - -/** - * @brief Forces or releases Low Speed APB (APB1) peripheral reset. - * @param RCC_APB1Periph: specifies the APB1 peripheral to reset. - * This parameter can be any combination of the following values: - * @arg RCC_APB1Periph_TIM2, RCC_APB1Periph_TIM3, RCC_APB1Periph_TIM4, - * RCC_APB1Periph_TIM5, RCC_APB1Periph_TIM6, RCC_APB1Periph_TIM7, - * RCC_APB1Periph_WWDG, RCC_APB1Periph_SPI2, RCC_APB1Periph_SPI3, - * RCC_APB1Periph_USART2, RCC_APB1Periph_USART3, RCC_APB1Periph_USART4, - * RCC_APB1Periph_USART5, RCC_APB1Periph_I2C1, RCC_APB1Periph_I2C2, - * RCC_APB1Periph_USB, RCC_APB1Periph_CAN1, RCC_APB1Periph_BKP, - * RCC_APB1Periph_PWR, RCC_APB1Periph_DAC, RCC_APB1Periph_CEC, - * RCC_APB1Periph_TIM12, RCC_APB1Periph_TIM13, RCC_APB1Periph_TIM14 - * @param NewState: new state of the specified peripheral clock. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - RCC->APB1RSTR |= RCC_APB1Periph; - } - else - { - RCC->APB1RSTR &= ~RCC_APB1Periph; - } -} - -/** - * @brief Forces or releases the Backup domain reset. - * @param NewState: new state of the Backup domain reset. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_BackupResetCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) BDCR_BDRST_BB = (uint32_t)NewState; -} - -/** - * @brief Enables or disables the Clock Security System. - * @param NewState: new state of the Clock Security System.. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RCC_ClockSecuritySystemCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - *(__IO uint32_t *) CR_CSSON_BB = (uint32_t)NewState; -} - -/** - * @brief Selects the clock source to output on MCO pin. - * @param RCC_MCO: specifies the clock source to output. - * - * For @b STM32_Connectivity_line_devices, this parameter can be one of the - * following values: - * @arg RCC_MCO_NoClock: No clock selected - * @arg RCC_MCO_SYSCLK: System clock selected - * @arg RCC_MCO_HSI: HSI oscillator clock selected - * @arg RCC_MCO_HSE: HSE oscillator clock selected - * @arg RCC_MCO_PLLCLK_Div2: PLL clock divided by 2 selected - * @arg RCC_MCO_PLL2CLK: PLL2 clock selected - * @arg RCC_MCO_PLL3CLK_Div2: PLL3 clock divided by 2 selected - * @arg RCC_MCO_XT1: External 3-25 MHz oscillator clock selected - * @arg RCC_MCO_PLL3CLK: PLL3 clock selected - * - * For @b other_STM32_devices, this parameter can be one of the following values: - * @arg RCC_MCO_NoClock: No clock selected - * @arg RCC_MCO_SYSCLK: System clock selected - * @arg RCC_MCO_HSI: HSI oscillator clock selected - * @arg RCC_MCO_HSE: HSE oscillator clock selected - * @arg RCC_MCO_PLLCLK_Div2: PLL clock divided by 2 selected - * - * @retval None - */ -void RCC_MCOConfig(uint8_t RCC_MCO) -{ - /* Check the parameters */ - assert_param(IS_RCC_MCO(RCC_MCO)); - - /* Perform Byte access to MCO bits to select the MCO source */ - *(__IO uint8_t *) CFGR_BYTE4_ADDRESS = RCC_MCO; -} - -/** - * @brief Checks whether the specified RCC flag is set or not. - * @param RCC_FLAG: specifies the flag to check. - * - * For @b STM32_Connectivity_line_devices, this parameter can be one of the - * following values: - * @arg RCC_FLAG_HSIRDY: HSI oscillator clock ready - * @arg RCC_FLAG_HSERDY: HSE oscillator clock ready - * @arg RCC_FLAG_PLLRDY: PLL clock ready - * @arg RCC_FLAG_PLL2RDY: PLL2 clock ready - * @arg RCC_FLAG_PLL3RDY: PLL3 clock ready - * @arg RCC_FLAG_LSERDY: LSE oscillator clock ready - * @arg RCC_FLAG_LSIRDY: LSI oscillator clock ready - * @arg RCC_FLAG_PINRST: Pin reset - * @arg RCC_FLAG_PORRST: POR/PDR reset - * @arg RCC_FLAG_SFTRST: Software reset - * @arg RCC_FLAG_IWDGRST: Independent Watchdog reset - * @arg RCC_FLAG_WWDGRST: Window Watchdog reset - * @arg RCC_FLAG_LPWRRST: Low Power reset - * - * For @b other_STM32_devices, this parameter can be one of the following values: - * @arg RCC_FLAG_HSIRDY: HSI oscillator clock ready - * @arg RCC_FLAG_HSERDY: HSE oscillator clock ready - * @arg RCC_FLAG_PLLRDY: PLL clock ready - * @arg RCC_FLAG_LSERDY: LSE oscillator clock ready - * @arg RCC_FLAG_LSIRDY: LSI oscillator clock ready - * @arg RCC_FLAG_PINRST: Pin reset - * @arg RCC_FLAG_PORRST: POR/PDR reset - * @arg RCC_FLAG_SFTRST: Software reset - * @arg RCC_FLAG_IWDGRST: Independent Watchdog reset - * @arg RCC_FLAG_WWDGRST: Window Watchdog reset - * @arg RCC_FLAG_LPWRRST: Low Power reset - * - * @retval The new state of RCC_FLAG (SET or RESET). - */ -FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG) -{ - uint32_t tmp = 0; - uint32_t statusreg = 0; - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_RCC_FLAG(RCC_FLAG)); - - /* Get the RCC register index */ - tmp = RCC_FLAG >> 5; - if (tmp == 1) /* The flag to check is in CR register */ - { - statusreg = RCC->CR; - } - else if (tmp == 2) /* The flag to check is in BDCR register */ - { - statusreg = RCC->BDCR; - } - else /* The flag to check is in CSR register */ - { - statusreg = RCC->CSR; - } - - /* Get the flag position */ - tmp = RCC_FLAG & FLAG_Mask; - if ((statusreg & ((uint32_t)1 << tmp)) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - - /* Return the flag status */ - return bitstatus; -} - -/** - * @brief Clears the RCC reset flags. - * @note The reset flags are: RCC_FLAG_PINRST, RCC_FLAG_PORRST, RCC_FLAG_SFTRST, - * RCC_FLAG_IWDGRST, RCC_FLAG_WWDGRST, RCC_FLAG_LPWRRST - * @param None - * @retval None - */ -void RCC_ClearFlag(void) -{ - /* Set RMVF bit to clear the reset flags */ - RCC->CSR |= CSR_RMVF_Set; -} - -/** - * @brief Checks whether the specified RCC interrupt has occurred or not. - * @param RCC_IT: specifies the RCC interrupt source to check. - * - * For @b STM32_Connectivity_line_devices, this parameter can be one of the - * following values: - * @arg RCC_IT_LSIRDY: LSI ready interrupt - * @arg RCC_IT_LSERDY: LSE ready interrupt - * @arg RCC_IT_HSIRDY: HSI ready interrupt - * @arg RCC_IT_HSERDY: HSE ready interrupt - * @arg RCC_IT_PLLRDY: PLL ready interrupt - * @arg RCC_IT_PLL2RDY: PLL2 ready interrupt - * @arg RCC_IT_PLL3RDY: PLL3 ready interrupt - * @arg RCC_IT_CSS: Clock Security System interrupt - * - * For @b other_STM32_devices, this parameter can be one of the following values: - * @arg RCC_IT_LSIRDY: LSI ready interrupt - * @arg RCC_IT_LSERDY: LSE ready interrupt - * @arg RCC_IT_HSIRDY: HSI ready interrupt - * @arg RCC_IT_HSERDY: HSE ready interrupt - * @arg RCC_IT_PLLRDY: PLL ready interrupt - * @arg RCC_IT_CSS: Clock Security System interrupt - * - * @retval The new state of RCC_IT (SET or RESET). - */ -ITStatus RCC_GetITStatus(uint8_t RCC_IT) -{ - ITStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_RCC_GET_IT(RCC_IT)); - - /* Check the status of the specified RCC interrupt */ - if ((RCC->CIR & RCC_IT) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - - /* Return the RCC_IT status */ - return bitstatus; -} - -/** - * @brief Clears the RCC's interrupt pending bits. - * @param RCC_IT: specifies the interrupt pending bit to clear. - * - * For @b STM32_Connectivity_line_devices, this parameter can be any combination - * of the following values: - * @arg RCC_IT_LSIRDY: LSI ready interrupt - * @arg RCC_IT_LSERDY: LSE ready interrupt - * @arg RCC_IT_HSIRDY: HSI ready interrupt - * @arg RCC_IT_HSERDY: HSE ready interrupt - * @arg RCC_IT_PLLRDY: PLL ready interrupt - * @arg RCC_IT_PLL2RDY: PLL2 ready interrupt - * @arg RCC_IT_PLL3RDY: PLL3 ready interrupt - * @arg RCC_IT_CSS: Clock Security System interrupt - * - * For @b other_STM32_devices, this parameter can be any combination of the - * following values: - * @arg RCC_IT_LSIRDY: LSI ready interrupt - * @arg RCC_IT_LSERDY: LSE ready interrupt - * @arg RCC_IT_HSIRDY: HSI ready interrupt - * @arg RCC_IT_HSERDY: HSE ready interrupt - * @arg RCC_IT_PLLRDY: PLL ready interrupt - * - * @arg RCC_IT_CSS: Clock Security System interrupt - * @retval None - */ -void RCC_ClearITPendingBit(uint8_t RCC_IT) -{ - /* Check the parameters */ - assert_param(IS_RCC_CLEAR_IT(RCC_IT)); - - /* Perform Byte access to RCC_CIR[23:16] bits to clear the selected interrupt - pending bits */ - *(__IO uint8_t *) CIR_BYTE3_ADDRESS = RCC_IT; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c deleted file mode 100644 index f798d2bd..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c +++ /dev/null @@ -1,339 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_rtc.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the RTC firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_rtc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup RTC - * @brief RTC driver modules - * @{ - */ - -/** @defgroup RTC_Private_TypesDefinitions - * @{ - */ -/** - * @} - */ - -/** @defgroup RTC_Private_Defines - * @{ - */ -#define RTC_LSB_MASK ((uint32_t)0x0000FFFF) /*!< RTC LSB Mask */ -#define PRLH_MSB_MASK ((uint32_t)0x000F0000) /*!< RTC Prescaler MSB Mask */ - -/** - * @} - */ - -/** @defgroup RTC_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup RTC_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup RTC_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup RTC_Private_Functions - * @{ - */ - -/** - * @brief Enables or disables the specified RTC interrupts. - * @param RTC_IT: specifies the RTC interrupts sources to be enabled or disabled. - * This parameter can be any combination of the following values: - * @arg RTC_IT_OW: Overflow interrupt - * @arg RTC_IT_ALR: Alarm interrupt - * @arg RTC_IT_SEC: Second interrupt - * @param NewState: new state of the specified RTC interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_RTC_IT(RTC_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - RTC->CRH |= RTC_IT; - } - else - { - RTC->CRH &= (uint16_t)~RTC_IT; - } -} - -/** - * @brief Enters the RTC configuration mode. - * @param None - * @retval None - */ -void RTC_EnterConfigMode(void) -{ - /* Set the CNF flag to enter in the Configuration Mode */ - RTC->CRL |= RTC_CRL_CNF; -} - -/** - * @brief Exits from the RTC configuration mode. - * @param None - * @retval None - */ -void RTC_ExitConfigMode(void) -{ - /* Reset the CNF flag to exit from the Configuration Mode */ - RTC->CRL &= (uint16_t)~((uint16_t)RTC_CRL_CNF); -} - -/** - * @brief Gets the RTC counter value. - * @param None - * @retval RTC counter value. - */ -uint32_t RTC_GetCounter(void) -{ - uint16_t tmp = 0; - tmp = RTC->CNTL; - return (((uint32_t)RTC->CNTH << 16 ) | tmp) ; -} - -/** - * @brief Sets the RTC counter value. - * @param CounterValue: RTC counter new value. - * @retval None - */ -void RTC_SetCounter(uint32_t CounterValue) -{ - RTC_EnterConfigMode(); - /* Set RTC COUNTER MSB word */ - RTC->CNTH = CounterValue >> 16; - /* Set RTC COUNTER LSB word */ - RTC->CNTL = (CounterValue & RTC_LSB_MASK); - RTC_ExitConfigMode(); -} - -/** - * @brief Sets the RTC prescaler value. - * @param PrescalerValue: RTC prescaler new value. - * @retval None - */ -void RTC_SetPrescaler(uint32_t PrescalerValue) -{ - /* Check the parameters */ - assert_param(IS_RTC_PRESCALER(PrescalerValue)); - - RTC_EnterConfigMode(); - /* Set RTC PRESCALER MSB word */ - RTC->PRLH = (PrescalerValue & PRLH_MSB_MASK) >> 16; - /* Set RTC PRESCALER LSB word */ - RTC->PRLL = (PrescalerValue & RTC_LSB_MASK); - RTC_ExitConfigMode(); -} - -/** - * @brief Sets the RTC alarm value. - * @param AlarmValue: RTC alarm new value. - * @retval None - */ -void RTC_SetAlarm(uint32_t AlarmValue) -{ - RTC_EnterConfigMode(); - /* Set the ALARM MSB word */ - RTC->ALRH = AlarmValue >> 16; - /* Set the ALARM LSB word */ - RTC->ALRL = (AlarmValue & RTC_LSB_MASK); - RTC_ExitConfigMode(); -} - -/** - * @brief Gets the RTC divider value. - * @param None - * @retval RTC Divider value. - */ -uint32_t RTC_GetDivider(void) -{ - uint32_t tmp = 0x00; - tmp = ((uint32_t)RTC->DIVH & (uint32_t)0x000F) << 16; - tmp |= RTC->DIVL; - return tmp; -} - -/** - * @brief Waits until last write operation on RTC registers has finished. - * @note This function must be called before any write to RTC registers. - * @param None - * @retval None - */ -void RTC_WaitForLastTask(void) -{ - /* Loop until RTOFF flag is set */ - while ((RTC->CRL & RTC_FLAG_RTOFF) == (uint16_t)RESET) - { - } -} - -/** - * @brief Waits until the RTC registers (RTC_CNT, RTC_ALR and RTC_PRL) - * are synchronized with RTC APB clock. - * @note This function must be called before any read operation after an APB reset - * or an APB clock stop. - * @param None - * @retval None - */ -void RTC_WaitForSynchro(void) -{ - /* Clear RSF flag */ - RTC->CRL &= (uint16_t)~RTC_FLAG_RSF; - /* Loop until RSF flag is set */ - while ((RTC->CRL & RTC_FLAG_RSF) == (uint16_t)RESET) - { - } -} - -/** - * @brief Checks whether the specified RTC flag is set or not. - * @param RTC_FLAG: specifies the flag to check. - * This parameter can be one the following values: - * @arg RTC_FLAG_RTOFF: RTC Operation OFF flag - * @arg RTC_FLAG_RSF: Registers Synchronized flag - * @arg RTC_FLAG_OW: Overflow flag - * @arg RTC_FLAG_ALR: Alarm flag - * @arg RTC_FLAG_SEC: Second flag - * @retval The new state of RTC_FLAG (SET or RESET). - */ -FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG) -{ - FlagStatus bitstatus = RESET; - - /* Check the parameters */ - assert_param(IS_RTC_GET_FLAG(RTC_FLAG)); - - if ((RTC->CRL & RTC_FLAG) != (uint16_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the RTC's pending flags. - * @param RTC_FLAG: specifies the flag to clear. - * This parameter can be any combination of the following values: - * @arg RTC_FLAG_RSF: Registers Synchronized flag. This flag is cleared only after - * an APB reset or an APB Clock stop. - * @arg RTC_FLAG_OW: Overflow flag - * @arg RTC_FLAG_ALR: Alarm flag - * @arg RTC_FLAG_SEC: Second flag - * @retval None - */ -void RTC_ClearFlag(uint16_t RTC_FLAG) -{ - /* Check the parameters */ - assert_param(IS_RTC_CLEAR_FLAG(RTC_FLAG)); - - /* Clear the corresponding RTC flag */ - RTC->CRL &= (uint16_t)~RTC_FLAG; -} - -/** - * @brief Checks whether the specified RTC interrupt has occurred or not. - * @param RTC_IT: specifies the RTC interrupts sources to check. - * This parameter can be one of the following values: - * @arg RTC_IT_OW: Overflow interrupt - * @arg RTC_IT_ALR: Alarm interrupt - * @arg RTC_IT_SEC: Second interrupt - * @retval The new state of the RTC_IT (SET or RESET). - */ -ITStatus RTC_GetITStatus(uint16_t RTC_IT) -{ - ITStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_RTC_GET_IT(RTC_IT)); - - bitstatus = (ITStatus)(RTC->CRL & RTC_IT); - if (((RTC->CRH & RTC_IT) != (uint16_t)RESET) && (bitstatus != (uint16_t)RESET)) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the RTC's interrupt pending bits. - * @param RTC_IT: specifies the interrupt pending bit to clear. - * This parameter can be any combination of the following values: - * @arg RTC_IT_OW: Overflow interrupt - * @arg RTC_IT_ALR: Alarm interrupt - * @arg RTC_IT_SEC: Second interrupt - * @retval None - */ -void RTC_ClearITPendingBit(uint16_t RTC_IT) -{ - /* Check the parameters */ - assert_param(IS_RTC_IT(RTC_IT)); - - /* Clear the corresponding RTC pending bit */ - RTC->CRL &= (uint16_t)~RTC_IT; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c deleted file mode 100644 index d1870cef..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c +++ /dev/null @@ -1,799 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_sdio.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the SDIO firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_sdio.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup SDIO - * @brief SDIO driver modules - * @{ - */ - -/** @defgroup SDIO_Private_TypesDefinitions - * @{ - */ - -/* ------------ SDIO registers bit address in the alias region ----------- */ -#define SDIO_OFFSET (SDIO_BASE - PERIPH_BASE) - -/* --- CLKCR Register ---*/ - -/* Alias word address of CLKEN bit */ -#define CLKCR_OFFSET (SDIO_OFFSET + 0x04) -#define CLKEN_BitNumber 0x08 -#define CLKCR_CLKEN_BB (PERIPH_BB_BASE + (CLKCR_OFFSET * 32) + (CLKEN_BitNumber * 4)) - -/* --- CMD Register ---*/ - -/* Alias word address of SDIOSUSPEND bit */ -#define CMD_OFFSET (SDIO_OFFSET + 0x0C) -#define SDIOSUSPEND_BitNumber 0x0B -#define CMD_SDIOSUSPEND_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (SDIOSUSPEND_BitNumber * 4)) - -/* Alias word address of ENCMDCOMPL bit */ -#define ENCMDCOMPL_BitNumber 0x0C -#define CMD_ENCMDCOMPL_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (ENCMDCOMPL_BitNumber * 4)) - -/* Alias word address of NIEN bit */ -#define NIEN_BitNumber 0x0D -#define CMD_NIEN_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (NIEN_BitNumber * 4)) - -/* Alias word address of ATACMD bit */ -#define ATACMD_BitNumber 0x0E -#define CMD_ATACMD_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (ATACMD_BitNumber * 4)) - -/* --- DCTRL Register ---*/ - -/* Alias word address of DMAEN bit */ -#define DCTRL_OFFSET (SDIO_OFFSET + 0x2C) -#define DMAEN_BitNumber 0x03 -#define DCTRL_DMAEN_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (DMAEN_BitNumber * 4)) - -/* Alias word address of RWSTART bit */ -#define RWSTART_BitNumber 0x08 -#define DCTRL_RWSTART_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWSTART_BitNumber * 4)) - -/* Alias word address of RWSTOP bit */ -#define RWSTOP_BitNumber 0x09 -#define DCTRL_RWSTOP_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWSTOP_BitNumber * 4)) - -/* Alias word address of RWMOD bit */ -#define RWMOD_BitNumber 0x0A -#define DCTRL_RWMOD_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWMOD_BitNumber * 4)) - -/* Alias word address of SDIOEN bit */ -#define SDIOEN_BitNumber 0x0B -#define DCTRL_SDIOEN_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (SDIOEN_BitNumber * 4)) - -/* ---------------------- SDIO registers bit mask ------------------------ */ - -/* --- CLKCR Register ---*/ - -/* CLKCR register clear mask */ -#define CLKCR_CLEAR_MASK ((uint32_t)0xFFFF8100) - -/* --- PWRCTRL Register ---*/ - -/* SDIO PWRCTRL Mask */ -#define PWR_PWRCTRL_MASK ((uint32_t)0xFFFFFFFC) - -/* --- DCTRL Register ---*/ - -/* SDIO DCTRL Clear Mask */ -#define DCTRL_CLEAR_MASK ((uint32_t)0xFFFFFF08) - -/* --- CMD Register ---*/ - -/* CMD Register clear mask */ -#define CMD_CLEAR_MASK ((uint32_t)0xFFFFF800) - -/* SDIO RESP Registers Address */ -#define SDIO_RESP_ADDR ((uint32_t)(SDIO_BASE + 0x14)) - -/** - * @} - */ - -/** @defgroup SDIO_Private_Defines - * @{ - */ - -/** - * @} - */ - -/** @defgroup SDIO_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup SDIO_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup SDIO_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup SDIO_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the SDIO peripheral registers to their default reset values. - * @param None - * @retval None - */ -void SDIO_DeInit(void) -{ - SDIO->POWER = 0x00000000; - SDIO->CLKCR = 0x00000000; - SDIO->ARG = 0x00000000; - SDIO->CMD = 0x00000000; - SDIO->DTIMER = 0x00000000; - SDIO->DLEN = 0x00000000; - SDIO->DCTRL = 0x00000000; - SDIO->ICR = 0x00C007FF; - SDIO->MASK = 0x00000000; -} - -/** - * @brief Initializes the SDIO peripheral according to the specified - * parameters in the SDIO_InitStruct. - * @param SDIO_InitStruct : pointer to a SDIO_InitTypeDef structure - * that contains the configuration information for the SDIO peripheral. - * @retval None - */ -void SDIO_Init(SDIO_InitTypeDef* SDIO_InitStruct) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_SDIO_CLOCK_EDGE(SDIO_InitStruct->SDIO_ClockEdge)); - assert_param(IS_SDIO_CLOCK_BYPASS(SDIO_InitStruct->SDIO_ClockBypass)); - assert_param(IS_SDIO_CLOCK_POWER_SAVE(SDIO_InitStruct->SDIO_ClockPowerSave)); - assert_param(IS_SDIO_BUS_WIDE(SDIO_InitStruct->SDIO_BusWide)); - assert_param(IS_SDIO_HARDWARE_FLOW_CONTROL(SDIO_InitStruct->SDIO_HardwareFlowControl)); - -/*---------------------------- SDIO CLKCR Configuration ------------------------*/ - /* Get the SDIO CLKCR value */ - tmpreg = SDIO->CLKCR; - - /* Clear CLKDIV, PWRSAV, BYPASS, WIDBUS, NEGEDGE, HWFC_EN bits */ - tmpreg &= CLKCR_CLEAR_MASK; - - /* Set CLKDIV bits according to SDIO_ClockDiv value */ - /* Set PWRSAV bit according to SDIO_ClockPowerSave value */ - /* Set BYPASS bit according to SDIO_ClockBypass value */ - /* Set WIDBUS bits according to SDIO_BusWide value */ - /* Set NEGEDGE bits according to SDIO_ClockEdge value */ - /* Set HWFC_EN bits according to SDIO_HardwareFlowControl value */ - tmpreg |= (SDIO_InitStruct->SDIO_ClockDiv | SDIO_InitStruct->SDIO_ClockPowerSave | - SDIO_InitStruct->SDIO_ClockBypass | SDIO_InitStruct->SDIO_BusWide | - SDIO_InitStruct->SDIO_ClockEdge | SDIO_InitStruct->SDIO_HardwareFlowControl); - - /* Write to SDIO CLKCR */ - SDIO->CLKCR = tmpreg; -} - -/** - * @brief Fills each SDIO_InitStruct member with its default value. - * @param SDIO_InitStruct: pointer to an SDIO_InitTypeDef structure which - * will be initialized. - * @retval None - */ -void SDIO_StructInit(SDIO_InitTypeDef* SDIO_InitStruct) -{ - /* SDIO_InitStruct members default value */ - SDIO_InitStruct->SDIO_ClockDiv = 0x00; - SDIO_InitStruct->SDIO_ClockEdge = SDIO_ClockEdge_Rising; - SDIO_InitStruct->SDIO_ClockBypass = SDIO_ClockBypass_Disable; - SDIO_InitStruct->SDIO_ClockPowerSave = SDIO_ClockPowerSave_Disable; - SDIO_InitStruct->SDIO_BusWide = SDIO_BusWide_1b; - SDIO_InitStruct->SDIO_HardwareFlowControl = SDIO_HardwareFlowControl_Disable; -} - -/** - * @brief Enables or disables the SDIO Clock. - * @param NewState: new state of the SDIO Clock. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_ClockCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) CLKCR_CLKEN_BB = (uint32_t)NewState; -} - -/** - * @brief Sets the power status of the controller. - * @param SDIO_PowerState: new state of the Power state. - * This parameter can be one of the following values: - * @arg SDIO_PowerState_OFF - * @arg SDIO_PowerState_ON - * @retval None - */ -void SDIO_SetPowerState(uint32_t SDIO_PowerState) -{ - /* Check the parameters */ - assert_param(IS_SDIO_POWER_STATE(SDIO_PowerState)); - - SDIO->POWER &= PWR_PWRCTRL_MASK; - SDIO->POWER |= SDIO_PowerState; -} - -/** - * @brief Gets the power status of the controller. - * @param None - * @retval Power status of the controller. The returned value can - * be one of the following: - * - 0x00: Power OFF - * - 0x02: Power UP - * - 0x03: Power ON - */ -uint32_t SDIO_GetPowerState(void) -{ - return (SDIO->POWER & (~PWR_PWRCTRL_MASK)); -} - -/** - * @brief Enables or disables the SDIO interrupts. - * @param SDIO_IT: specifies the SDIO interrupt sources to be enabled or disabled. - * This parameter can be one or a combination of the following values: - * @arg SDIO_IT_CCRCFAIL: Command response received (CRC check failed) interrupt - * @arg SDIO_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt - * @arg SDIO_IT_CTIMEOUT: Command response timeout interrupt - * @arg SDIO_IT_DTIMEOUT: Data timeout interrupt - * @arg SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt - * @arg SDIO_IT_RXOVERR: Received FIFO overrun error interrupt - * @arg SDIO_IT_CMDREND: Command response received (CRC check passed) interrupt - * @arg SDIO_IT_CMDSENT: Command sent (no response required) interrupt - * @arg SDIO_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt - * @arg SDIO_IT_STBITERR: Start bit not detected on all data signals in wide - * bus mode interrupt - * @arg SDIO_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt - * @arg SDIO_IT_CMDACT: Command transfer in progress interrupt - * @arg SDIO_IT_TXACT: Data transmit in progress interrupt - * @arg SDIO_IT_RXACT: Data receive in progress interrupt - * @arg SDIO_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt - * @arg SDIO_IT_RXFIFOHF: Receive FIFO Half Full interrupt - * @arg SDIO_IT_TXFIFOF: Transmit FIFO full interrupt - * @arg SDIO_IT_RXFIFOF: Receive FIFO full interrupt - * @arg SDIO_IT_TXFIFOE: Transmit FIFO empty interrupt - * @arg SDIO_IT_RXFIFOE: Receive FIFO empty interrupt - * @arg SDIO_IT_TXDAVL: Data available in transmit FIFO interrupt - * @arg SDIO_IT_RXDAVL: Data available in receive FIFO interrupt - * @arg SDIO_IT_SDIOIT: SD I/O interrupt received interrupt - * @arg SDIO_IT_CEATAEND: CE-ATA command completion signal received for CMD61 interrupt - * @param NewState: new state of the specified SDIO interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_ITConfig(uint32_t SDIO_IT, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_SDIO_IT(SDIO_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the SDIO interrupts */ - SDIO->MASK |= SDIO_IT; - } - else - { - /* Disable the SDIO interrupts */ - SDIO->MASK &= ~SDIO_IT; - } -} - -/** - * @brief Enables or disables the SDIO DMA request. - * @param NewState: new state of the selected SDIO DMA request. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_DMACmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) DCTRL_DMAEN_BB = (uint32_t)NewState; -} - -/** - * @brief Initializes the SDIO Command according to the specified - * parameters in the SDIO_CmdInitStruct and send the command. - * @param SDIO_CmdInitStruct : pointer to a SDIO_CmdInitTypeDef - * structure that contains the configuration information for the SDIO command. - * @retval None - */ -void SDIO_SendCommand(SDIO_CmdInitTypeDef *SDIO_CmdInitStruct) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_SDIO_CMD_INDEX(SDIO_CmdInitStruct->SDIO_CmdIndex)); - assert_param(IS_SDIO_RESPONSE(SDIO_CmdInitStruct->SDIO_Response)); - assert_param(IS_SDIO_WAIT(SDIO_CmdInitStruct->SDIO_Wait)); - assert_param(IS_SDIO_CPSM(SDIO_CmdInitStruct->SDIO_CPSM)); - -/*---------------------------- SDIO ARG Configuration ------------------------*/ - /* Set the SDIO Argument value */ - SDIO->ARG = SDIO_CmdInitStruct->SDIO_Argument; - -/*---------------------------- SDIO CMD Configuration ------------------------*/ - /* Get the SDIO CMD value */ - tmpreg = SDIO->CMD; - /* Clear CMDINDEX, WAITRESP, WAITINT, WAITPEND, CPSMEN bits */ - tmpreg &= CMD_CLEAR_MASK; - /* Set CMDINDEX bits according to SDIO_CmdIndex value */ - /* Set WAITRESP bits according to SDIO_Response value */ - /* Set WAITINT and WAITPEND bits according to SDIO_Wait value */ - /* Set CPSMEN bits according to SDIO_CPSM value */ - tmpreg |= (uint32_t)SDIO_CmdInitStruct->SDIO_CmdIndex | SDIO_CmdInitStruct->SDIO_Response - | SDIO_CmdInitStruct->SDIO_Wait | SDIO_CmdInitStruct->SDIO_CPSM; - - /* Write to SDIO CMD */ - SDIO->CMD = tmpreg; -} - -/** - * @brief Fills each SDIO_CmdInitStruct member with its default value. - * @param SDIO_CmdInitStruct: pointer to an SDIO_CmdInitTypeDef - * structure which will be initialized. - * @retval None - */ -void SDIO_CmdStructInit(SDIO_CmdInitTypeDef* SDIO_CmdInitStruct) -{ - /* SDIO_CmdInitStruct members default value */ - SDIO_CmdInitStruct->SDIO_Argument = 0x00; - SDIO_CmdInitStruct->SDIO_CmdIndex = 0x00; - SDIO_CmdInitStruct->SDIO_Response = SDIO_Response_No; - SDIO_CmdInitStruct->SDIO_Wait = SDIO_Wait_No; - SDIO_CmdInitStruct->SDIO_CPSM = SDIO_CPSM_Disable; -} - -/** - * @brief Returns command index of last command for which response received. - * @param None - * @retval Returns the command index of the last command response received. - */ -uint8_t SDIO_GetCommandResponse(void) -{ - return (uint8_t)(SDIO->RESPCMD); -} - -/** - * @brief Returns response received from the card for the last command. - * @param SDIO_RESP: Specifies the SDIO response register. - * This parameter can be one of the following values: - * @arg SDIO_RESP1: Response Register 1 - * @arg SDIO_RESP2: Response Register 2 - * @arg SDIO_RESP3: Response Register 3 - * @arg SDIO_RESP4: Response Register 4 - * @retval The Corresponding response register value. - */ -uint32_t SDIO_GetResponse(uint32_t SDIO_RESP) -{ - __IO uint32_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_SDIO_RESP(SDIO_RESP)); - - tmp = SDIO_RESP_ADDR + SDIO_RESP; - - return (*(__IO uint32_t *) tmp); -} - -/** - * @brief Initializes the SDIO data path according to the specified - * parameters in the SDIO_DataInitStruct. - * @param SDIO_DataInitStruct : pointer to a SDIO_DataInitTypeDef structure that - * contains the configuration information for the SDIO command. - * @retval None - */ -void SDIO_DataConfig(SDIO_DataInitTypeDef* SDIO_DataInitStruct) -{ - uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_SDIO_DATA_LENGTH(SDIO_DataInitStruct->SDIO_DataLength)); - assert_param(IS_SDIO_BLOCK_SIZE(SDIO_DataInitStruct->SDIO_DataBlockSize)); - assert_param(IS_SDIO_TRANSFER_DIR(SDIO_DataInitStruct->SDIO_TransferDir)); - assert_param(IS_SDIO_TRANSFER_MODE(SDIO_DataInitStruct->SDIO_TransferMode)); - assert_param(IS_SDIO_DPSM(SDIO_DataInitStruct->SDIO_DPSM)); - -/*---------------------------- SDIO DTIMER Configuration ---------------------*/ - /* Set the SDIO Data TimeOut value */ - SDIO->DTIMER = SDIO_DataInitStruct->SDIO_DataTimeOut; - -/*---------------------------- SDIO DLEN Configuration -----------------------*/ - /* Set the SDIO DataLength value */ - SDIO->DLEN = SDIO_DataInitStruct->SDIO_DataLength; - -/*---------------------------- SDIO DCTRL Configuration ----------------------*/ - /* Get the SDIO DCTRL value */ - tmpreg = SDIO->DCTRL; - /* Clear DEN, DTMODE, DTDIR and DBCKSIZE bits */ - tmpreg &= DCTRL_CLEAR_MASK; - /* Set DEN bit according to SDIO_DPSM value */ - /* Set DTMODE bit according to SDIO_TransferMode value */ - /* Set DTDIR bit according to SDIO_TransferDir value */ - /* Set DBCKSIZE bits according to SDIO_DataBlockSize value */ - tmpreg |= (uint32_t)SDIO_DataInitStruct->SDIO_DataBlockSize | SDIO_DataInitStruct->SDIO_TransferDir - | SDIO_DataInitStruct->SDIO_TransferMode | SDIO_DataInitStruct->SDIO_DPSM; - - /* Write to SDIO DCTRL */ - SDIO->DCTRL = tmpreg; -} - -/** - * @brief Fills each SDIO_DataInitStruct member with its default value. - * @param SDIO_DataInitStruct: pointer to an SDIO_DataInitTypeDef structure which - * will be initialized. - * @retval None - */ -void SDIO_DataStructInit(SDIO_DataInitTypeDef* SDIO_DataInitStruct) -{ - /* SDIO_DataInitStruct members default value */ - SDIO_DataInitStruct->SDIO_DataTimeOut = 0xFFFFFFFF; - SDIO_DataInitStruct->SDIO_DataLength = 0x00; - SDIO_DataInitStruct->SDIO_DataBlockSize = SDIO_DataBlockSize_1b; - SDIO_DataInitStruct->SDIO_TransferDir = SDIO_TransferDir_ToCard; - SDIO_DataInitStruct->SDIO_TransferMode = SDIO_TransferMode_Block; - SDIO_DataInitStruct->SDIO_DPSM = SDIO_DPSM_Disable; -} - -/** - * @brief Returns number of remaining data bytes to be transferred. - * @param None - * @retval Number of remaining data bytes to be transferred - */ -uint32_t SDIO_GetDataCounter(void) -{ - return SDIO->DCOUNT; -} - -/** - * @brief Read one data word from Rx FIFO. - * @param None - * @retval Data received - */ -uint32_t SDIO_ReadData(void) -{ - return SDIO->FIFO; -} - -/** - * @brief Write one data word to Tx FIFO. - * @param Data: 32-bit data word to write. - * @retval None - */ -void SDIO_WriteData(uint32_t Data) -{ - SDIO->FIFO = Data; -} - -/** - * @brief Returns the number of words left to be written to or read from FIFO. - * @param None - * @retval Remaining number of words. - */ -uint32_t SDIO_GetFIFOCount(void) -{ - return SDIO->FIFOCNT; -} - -/** - * @brief Starts the SD I/O Read Wait operation. - * @param NewState: new state of the Start SDIO Read Wait operation. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_StartSDIOReadWait(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) DCTRL_RWSTART_BB = (uint32_t) NewState; -} - -/** - * @brief Stops the SD I/O Read Wait operation. - * @param NewState: new state of the Stop SDIO Read Wait operation. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_StopSDIOReadWait(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) DCTRL_RWSTOP_BB = (uint32_t) NewState; -} - -/** - * @brief Sets one of the two options of inserting read wait interval. - * @param SDIO_ReadWaitMode: SD I/O Read Wait operation mode. - * This parameter can be: - * @arg SDIO_ReadWaitMode_CLK: Read Wait control by stopping SDIOCLK - * @arg SDIO_ReadWaitMode_DATA2: Read Wait control using SDIO_DATA2 - * @retval None - */ -void SDIO_SetSDIOReadWaitMode(uint32_t SDIO_ReadWaitMode) -{ - /* Check the parameters */ - assert_param(IS_SDIO_READWAIT_MODE(SDIO_ReadWaitMode)); - - *(__IO uint32_t *) DCTRL_RWMOD_BB = SDIO_ReadWaitMode; -} - -/** - * @brief Enables or disables the SD I/O Mode Operation. - * @param NewState: new state of SDIO specific operation. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_SetSDIOOperation(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) DCTRL_SDIOEN_BB = (uint32_t)NewState; -} - -/** - * @brief Enables or disables the SD I/O Mode suspend command sending. - * @param NewState: new state of the SD I/O Mode suspend command. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_SendSDIOSuspendCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) CMD_SDIOSUSPEND_BB = (uint32_t)NewState; -} - -/** - * @brief Enables or disables the command completion signal. - * @param NewState: new state of command completion signal. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_CommandCompletionCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) CMD_ENCMDCOMPL_BB = (uint32_t)NewState; -} - -/** - * @brief Enables or disables the CE-ATA interrupt. - * @param NewState: new state of CE-ATA interrupt. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_CEATAITCmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) CMD_NIEN_BB = (uint32_t)((~((uint32_t)NewState)) & ((uint32_t)0x1)); -} - -/** - * @brief Sends CE-ATA command (CMD61). - * @param NewState: new state of CE-ATA command. This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SDIO_SendCEATACmd(FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - *(__IO uint32_t *) CMD_ATACMD_BB = (uint32_t)NewState; -} - -/** - * @brief Checks whether the specified SDIO flag is set or not. - * @param SDIO_FLAG: specifies the flag to check. - * This parameter can be one of the following values: - * @arg SDIO_FLAG_CCRCFAIL: Command response received (CRC check failed) - * @arg SDIO_FLAG_DCRCFAIL: Data block sent/received (CRC check failed) - * @arg SDIO_FLAG_CTIMEOUT: Command response timeout - * @arg SDIO_FLAG_DTIMEOUT: Data timeout - * @arg SDIO_FLAG_TXUNDERR: Transmit FIFO underrun error - * @arg SDIO_FLAG_RXOVERR: Received FIFO overrun error - * @arg SDIO_FLAG_CMDREND: Command response received (CRC check passed) - * @arg SDIO_FLAG_CMDSENT: Command sent (no response required) - * @arg SDIO_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is zero) - * @arg SDIO_FLAG_STBITERR: Start bit not detected on all data signals in wide - * bus mode. - * @arg SDIO_FLAG_DBCKEND: Data block sent/received (CRC check passed) - * @arg SDIO_FLAG_CMDACT: Command transfer in progress - * @arg SDIO_FLAG_TXACT: Data transmit in progress - * @arg SDIO_FLAG_RXACT: Data receive in progress - * @arg SDIO_FLAG_TXFIFOHE: Transmit FIFO Half Empty - * @arg SDIO_FLAG_RXFIFOHF: Receive FIFO Half Full - * @arg SDIO_FLAG_TXFIFOF: Transmit FIFO full - * @arg SDIO_FLAG_RXFIFOF: Receive FIFO full - * @arg SDIO_FLAG_TXFIFOE: Transmit FIFO empty - * @arg SDIO_FLAG_RXFIFOE: Receive FIFO empty - * @arg SDIO_FLAG_TXDAVL: Data available in transmit FIFO - * @arg SDIO_FLAG_RXDAVL: Data available in receive FIFO - * @arg SDIO_FLAG_SDIOIT: SD I/O interrupt received - * @arg SDIO_FLAG_CEATAEND: CE-ATA command completion signal received for CMD61 - * @retval The new state of SDIO_FLAG (SET or RESET). - */ -FlagStatus SDIO_GetFlagStatus(uint32_t SDIO_FLAG) -{ - FlagStatus bitstatus = RESET; - - /* Check the parameters */ - assert_param(IS_SDIO_FLAG(SDIO_FLAG)); - - if ((SDIO->STA & SDIO_FLAG) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the SDIO's pending flags. - * @param SDIO_FLAG: specifies the flag to clear. - * This parameter can be one or a combination of the following values: - * @arg SDIO_FLAG_CCRCFAIL: Command response received (CRC check failed) - * @arg SDIO_FLAG_DCRCFAIL: Data block sent/received (CRC check failed) - * @arg SDIO_FLAG_CTIMEOUT: Command response timeout - * @arg SDIO_FLAG_DTIMEOUT: Data timeout - * @arg SDIO_FLAG_TXUNDERR: Transmit FIFO underrun error - * @arg SDIO_FLAG_RXOVERR: Received FIFO overrun error - * @arg SDIO_FLAG_CMDREND: Command response received (CRC check passed) - * @arg SDIO_FLAG_CMDSENT: Command sent (no response required) - * @arg SDIO_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is zero) - * @arg SDIO_FLAG_STBITERR: Start bit not detected on all data signals in wide - * bus mode - * @arg SDIO_FLAG_DBCKEND: Data block sent/received (CRC check passed) - * @arg SDIO_FLAG_SDIOIT: SD I/O interrupt received - * @arg SDIO_FLAG_CEATAEND: CE-ATA command completion signal received for CMD61 - * @retval None - */ -void SDIO_ClearFlag(uint32_t SDIO_FLAG) -{ - /* Check the parameters */ - assert_param(IS_SDIO_CLEAR_FLAG(SDIO_FLAG)); - - SDIO->ICR = SDIO_FLAG; -} - -/** - * @brief Checks whether the specified SDIO interrupt has occurred or not. - * @param SDIO_IT: specifies the SDIO interrupt source to check. - * This parameter can be one of the following values: - * @arg SDIO_IT_CCRCFAIL: Command response received (CRC check failed) interrupt - * @arg SDIO_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt - * @arg SDIO_IT_CTIMEOUT: Command response timeout interrupt - * @arg SDIO_IT_DTIMEOUT: Data timeout interrupt - * @arg SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt - * @arg SDIO_IT_RXOVERR: Received FIFO overrun error interrupt - * @arg SDIO_IT_CMDREND: Command response received (CRC check passed) interrupt - * @arg SDIO_IT_CMDSENT: Command sent (no response required) interrupt - * @arg SDIO_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt - * @arg SDIO_IT_STBITERR: Start bit not detected on all data signals in wide - * bus mode interrupt - * @arg SDIO_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt - * @arg SDIO_IT_CMDACT: Command transfer in progress interrupt - * @arg SDIO_IT_TXACT: Data transmit in progress interrupt - * @arg SDIO_IT_RXACT: Data receive in progress interrupt - * @arg SDIO_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt - * @arg SDIO_IT_RXFIFOHF: Receive FIFO Half Full interrupt - * @arg SDIO_IT_TXFIFOF: Transmit FIFO full interrupt - * @arg SDIO_IT_RXFIFOF: Receive FIFO full interrupt - * @arg SDIO_IT_TXFIFOE: Transmit FIFO empty interrupt - * @arg SDIO_IT_RXFIFOE: Receive FIFO empty interrupt - * @arg SDIO_IT_TXDAVL: Data available in transmit FIFO interrupt - * @arg SDIO_IT_RXDAVL: Data available in receive FIFO interrupt - * @arg SDIO_IT_SDIOIT: SD I/O interrupt received interrupt - * @arg SDIO_IT_CEATAEND: CE-ATA command completion signal received for CMD61 interrupt - * @retval The new state of SDIO_IT (SET or RESET). - */ -ITStatus SDIO_GetITStatus(uint32_t SDIO_IT) -{ - ITStatus bitstatus = RESET; - - /* Check the parameters */ - assert_param(IS_SDIO_GET_IT(SDIO_IT)); - if ((SDIO->STA & SDIO_IT) != (uint32_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the SDIO's interrupt pending bits. - * @param SDIO_IT: specifies the interrupt pending bit to clear. - * This parameter can be one or a combination of the following values: - * @arg SDIO_IT_CCRCFAIL: Command response received (CRC check failed) interrupt - * @arg SDIO_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt - * @arg SDIO_IT_CTIMEOUT: Command response timeout interrupt - * @arg SDIO_IT_DTIMEOUT: Data timeout interrupt - * @arg SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt - * @arg SDIO_IT_RXOVERR: Received FIFO overrun error interrupt - * @arg SDIO_IT_CMDREND: Command response received (CRC check passed) interrupt - * @arg SDIO_IT_CMDSENT: Command sent (no response required) interrupt - * @arg SDIO_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt - * @arg SDIO_IT_STBITERR: Start bit not detected on all data signals in wide - * bus mode interrupt - * @arg SDIO_IT_SDIOIT: SD I/O interrupt received interrupt - * @arg SDIO_IT_CEATAEND: CE-ATA command completion signal received for CMD61 - * @retval None - */ -void SDIO_ClearITPendingBit(uint32_t SDIO_IT) -{ - /* Check the parameters */ - assert_param(IS_SDIO_CLEAR_IT(SDIO_IT)); - - SDIO->ICR = SDIO_IT; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c deleted file mode 100644 index 51a9cce7..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c +++ /dev/null @@ -1,908 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_spi.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the SPI firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_spi.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup SPI - * @brief SPI driver modules - * @{ - */ - -/** @defgroup SPI_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - - -/** @defgroup SPI_Private_Defines - * @{ - */ - -/* SPI SPE mask */ -#define CR1_SPE_Set ((uint16_t)0x0040) -#define CR1_SPE_Reset ((uint16_t)0xFFBF) - -/* I2S I2SE mask */ -#define I2SCFGR_I2SE_Set ((uint16_t)0x0400) -#define I2SCFGR_I2SE_Reset ((uint16_t)0xFBFF) - -/* SPI CRCNext mask */ -#define CR1_CRCNext_Set ((uint16_t)0x1000) - -/* SPI CRCEN mask */ -#define CR1_CRCEN_Set ((uint16_t)0x2000) -#define CR1_CRCEN_Reset ((uint16_t)0xDFFF) - -/* SPI SSOE mask */ -#define CR2_SSOE_Set ((uint16_t)0x0004) -#define CR2_SSOE_Reset ((uint16_t)0xFFFB) - -/* SPI registers Masks */ -#define CR1_CLEAR_Mask ((uint16_t)0x3040) -#define I2SCFGR_CLEAR_Mask ((uint16_t)0xF040) - -/* SPI or I2S mode selection masks */ -#define SPI_Mode_Select ((uint16_t)0xF7FF) -#define I2S_Mode_Select ((uint16_t)0x0800) - -/* I2S clock source selection masks */ -#define I2S2_CLOCK_SRC ((uint32_t)(0x00020000)) -#define I2S3_CLOCK_SRC ((uint32_t)(0x00040000)) -#define I2S_MUL_MASK ((uint32_t)(0x0000F000)) -#define I2S_DIV_MASK ((uint32_t)(0x000000F0)) - -/** - * @} - */ - -/** @defgroup SPI_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup SPI_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup SPI_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup SPI_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the SPIx peripheral registers to their default - * reset values (Affects also the I2Ss). - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @retval None - */ -void SPI_I2S_DeInit(SPI_TypeDef* SPIx) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - - if (SPIx == SPI1) - { - /* Enable SPI1 reset state */ - RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, ENABLE); - /* Release SPI1 from reset state */ - RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, DISABLE); - } - else if (SPIx == SPI2) - { - /* Enable SPI2 reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, ENABLE); - /* Release SPI2 from reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, DISABLE); - } - else - { - if (SPIx == SPI3) - { - /* Enable SPI3 reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3, ENABLE); - /* Release SPI3 from reset state */ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3, DISABLE); - } - } -} - -/** - * @brief Initializes the SPIx peripheral according to the specified - * parameters in the SPI_InitStruct. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @param SPI_InitStruct: pointer to a SPI_InitTypeDef structure that - * contains the configuration information for the specified SPI peripheral. - * @retval None - */ -void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct) -{ - uint16_t tmpreg = 0; - - /* check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - - /* Check the SPI parameters */ - assert_param(IS_SPI_DIRECTION_MODE(SPI_InitStruct->SPI_Direction)); - assert_param(IS_SPI_MODE(SPI_InitStruct->SPI_Mode)); - assert_param(IS_SPI_DATASIZE(SPI_InitStruct->SPI_DataSize)); - assert_param(IS_SPI_CPOL(SPI_InitStruct->SPI_CPOL)); - assert_param(IS_SPI_CPHA(SPI_InitStruct->SPI_CPHA)); - assert_param(IS_SPI_NSS(SPI_InitStruct->SPI_NSS)); - assert_param(IS_SPI_BAUDRATE_PRESCALER(SPI_InitStruct->SPI_BaudRatePrescaler)); - assert_param(IS_SPI_FIRST_BIT(SPI_InitStruct->SPI_FirstBit)); - assert_param(IS_SPI_CRC_POLYNOMIAL(SPI_InitStruct->SPI_CRCPolynomial)); - -/*---------------------------- SPIx CR1 Configuration ------------------------*/ - /* Get the SPIx CR1 value */ - tmpreg = SPIx->CR1; - /* Clear BIDIMode, BIDIOE, RxONLY, SSM, SSI, LSBFirst, BR, MSTR, CPOL and CPHA bits */ - tmpreg &= CR1_CLEAR_Mask; - /* Configure SPIx: direction, NSS management, first transmitted bit, BaudRate prescaler - master/salve mode, CPOL and CPHA */ - /* Set BIDImode, BIDIOE and RxONLY bits according to SPI_Direction value */ - /* Set SSM, SSI and MSTR bits according to SPI_Mode and SPI_NSS values */ - /* Set LSBFirst bit according to SPI_FirstBit value */ - /* Set BR bits according to SPI_BaudRatePrescaler value */ - /* Set CPOL bit according to SPI_CPOL value */ - /* Set CPHA bit according to SPI_CPHA value */ - tmpreg |= (uint16_t)((uint32_t)SPI_InitStruct->SPI_Direction | SPI_InitStruct->SPI_Mode | - SPI_InitStruct->SPI_DataSize | SPI_InitStruct->SPI_CPOL | - SPI_InitStruct->SPI_CPHA | SPI_InitStruct->SPI_NSS | - SPI_InitStruct->SPI_BaudRatePrescaler | SPI_InitStruct->SPI_FirstBit); - /* Write to SPIx CR1 */ - SPIx->CR1 = tmpreg; - - /* Activate the SPI mode (Reset I2SMOD bit in I2SCFGR register) */ - SPIx->I2SCFGR &= SPI_Mode_Select; - -/*---------------------------- SPIx CRCPOLY Configuration --------------------*/ - /* Write to SPIx CRCPOLY */ - SPIx->CRCPR = SPI_InitStruct->SPI_CRCPolynomial; -} - -/** - * @brief Initializes the SPIx peripheral according to the specified - * parameters in the I2S_InitStruct. - * @param SPIx: where x can be 2 or 3 to select the SPI peripheral - * (configured in I2S mode). - * @param I2S_InitStruct: pointer to an I2S_InitTypeDef structure that - * contains the configuration information for the specified SPI peripheral - * configured in I2S mode. - * @note - * The function calculates the optimal prescaler needed to obtain the most - * accurate audio frequency (depending on the I2S clock source, the PLL values - * and the product configuration). But in case the prescaler value is greater - * than 511, the default value (0x02) will be configured instead. * - * @retval None - */ -void I2S_Init(SPI_TypeDef* SPIx, I2S_InitTypeDef* I2S_InitStruct) -{ - uint16_t tmpreg = 0, i2sdiv = 2, i2sodd = 0, packetlength = 1; - uint32_t tmp = 0; - RCC_ClocksTypeDef RCC_Clocks; - uint32_t sourceclock = 0; - - /* Check the I2S parameters */ - assert_param(IS_SPI_23_PERIPH(SPIx)); - assert_param(IS_I2S_MODE(I2S_InitStruct->I2S_Mode)); - assert_param(IS_I2S_STANDARD(I2S_InitStruct->I2S_Standard)); - assert_param(IS_I2S_DATA_FORMAT(I2S_InitStruct->I2S_DataFormat)); - assert_param(IS_I2S_MCLK_OUTPUT(I2S_InitStruct->I2S_MCLKOutput)); - assert_param(IS_I2S_AUDIO_FREQ(I2S_InitStruct->I2S_AudioFreq)); - assert_param(IS_I2S_CPOL(I2S_InitStruct->I2S_CPOL)); - -/*----------------------- SPIx I2SCFGR & I2SPR Configuration -----------------*/ - /* Clear I2SMOD, I2SE, I2SCFG, PCMSYNC, I2SSTD, CKPOL, DATLEN and CHLEN bits */ - SPIx->I2SCFGR &= I2SCFGR_CLEAR_Mask; - SPIx->I2SPR = 0x0002; - - /* Get the I2SCFGR register value */ - tmpreg = SPIx->I2SCFGR; - - /* If the default value has to be written, reinitialize i2sdiv and i2sodd*/ - if(I2S_InitStruct->I2S_AudioFreq == I2S_AudioFreq_Default) - { - i2sodd = (uint16_t)0; - i2sdiv = (uint16_t)2; - } - /* If the requested audio frequency is not the default, compute the prescaler */ - else - { - /* Check the frame length (For the Prescaler computing) */ - if(I2S_InitStruct->I2S_DataFormat == I2S_DataFormat_16b) - { - /* Packet length is 16 bits */ - packetlength = 1; - } - else - { - /* Packet length is 32 bits */ - packetlength = 2; - } - - /* Get the I2S clock source mask depending on the peripheral number */ - if(((uint32_t)SPIx) == SPI2_BASE) - { - /* The mask is relative to I2S2 */ - tmp = I2S2_CLOCK_SRC; - } - else - { - /* The mask is relative to I2S3 */ - tmp = I2S3_CLOCK_SRC; - } - - /* Check the I2S clock source configuration depending on the Device: - Only Connectivity line devices have the PLL3 VCO clock */ -#ifdef STM32F10X_CL - if((RCC->CFGR2 & tmp) != 0) - { - /* Get the configuration bits of RCC PLL3 multiplier */ - tmp = (uint32_t)((RCC->CFGR2 & I2S_MUL_MASK) >> 12); - - /* Get the value of the PLL3 multiplier */ - if((tmp > 5) && (tmp < 15)) - { - /* Multiplier is between 8 and 14 (value 15 is forbidden) */ - tmp += 2; - } - else - { - if (tmp == 15) - { - /* Multiplier is 20 */ - tmp = 20; - } - } - /* Get the PREDIV2 value */ - sourceclock = (uint32_t)(((RCC->CFGR2 & I2S_DIV_MASK) >> 4) + 1); - - /* Calculate the Source Clock frequency based on PLL3 and PREDIV2 values */ - sourceclock = (uint32_t) ((HSE_Value / sourceclock) * tmp * 2); - } - else - { - /* I2S Clock source is System clock: Get System Clock frequency */ - RCC_GetClocksFreq(&RCC_Clocks); - - /* Get the source clock value: based on System Clock value */ - sourceclock = RCC_Clocks.SYSCLK_Frequency; - } -#else /* STM32F10X_HD */ - /* I2S Clock source is System clock: Get System Clock frequency */ - RCC_GetClocksFreq(&RCC_Clocks); - - /* Get the source clock value: based on System Clock value */ - sourceclock = RCC_Clocks.SYSCLK_Frequency; -#endif /* STM32F10X_CL */ - - /* Compute the Real divider depending on the MCLK output state with a floating point */ - if(I2S_InitStruct->I2S_MCLKOutput == I2S_MCLKOutput_Enable) - { - /* MCLK output is enabled */ - tmp = (uint16_t)(((((sourceclock / 256) * 10) / I2S_InitStruct->I2S_AudioFreq)) + 5); - } - else - { - /* MCLK output is disabled */ - tmp = (uint16_t)(((((sourceclock / (32 * packetlength)) *10 ) / I2S_InitStruct->I2S_AudioFreq)) + 5); - } - - /* Remove the floating point */ - tmp = tmp / 10; - - /* Check the parity of the divider */ - i2sodd = (uint16_t)(tmp & (uint16_t)0x0001); - - /* Compute the i2sdiv prescaler */ - i2sdiv = (uint16_t)((tmp - i2sodd) / 2); - - /* Get the Mask for the Odd bit (SPI_I2SPR[8]) register */ - i2sodd = (uint16_t) (i2sodd << 8); - } - - /* Test if the divider is 1 or 0 or greater than 0xFF */ - if ((i2sdiv < 2) || (i2sdiv > 0xFF)) - { - /* Set the default values */ - i2sdiv = 2; - i2sodd = 0; - } - - /* Write to SPIx I2SPR register the computed value */ - SPIx->I2SPR = (uint16_t)(i2sdiv | (uint16_t)(i2sodd | (uint16_t)I2S_InitStruct->I2S_MCLKOutput)); - - /* Configure the I2S with the SPI_InitStruct values */ - tmpreg |= (uint16_t)(I2S_Mode_Select | (uint16_t)(I2S_InitStruct->I2S_Mode | \ - (uint16_t)(I2S_InitStruct->I2S_Standard | (uint16_t)(I2S_InitStruct->I2S_DataFormat | \ - (uint16_t)I2S_InitStruct->I2S_CPOL)))); - - /* Write to SPIx I2SCFGR */ - SPIx->I2SCFGR = tmpreg; -} - -/** - * @brief Fills each SPI_InitStruct member with its default value. - * @param SPI_InitStruct : pointer to a SPI_InitTypeDef structure which will be initialized. - * @retval None - */ -void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct) -{ -/*--------------- Reset SPI init structure parameters values -----------------*/ - /* Initialize the SPI_Direction member */ - SPI_InitStruct->SPI_Direction = SPI_Direction_2Lines_FullDuplex; - /* initialize the SPI_Mode member */ - SPI_InitStruct->SPI_Mode = SPI_Mode_Slave; - /* initialize the SPI_DataSize member */ - SPI_InitStruct->SPI_DataSize = SPI_DataSize_8b; - /* Initialize the SPI_CPOL member */ - SPI_InitStruct->SPI_CPOL = SPI_CPOL_Low; - /* Initialize the SPI_CPHA member */ - SPI_InitStruct->SPI_CPHA = SPI_CPHA_1Edge; - /* Initialize the SPI_NSS member */ - SPI_InitStruct->SPI_NSS = SPI_NSS_Hard; - /* Initialize the SPI_BaudRatePrescaler member */ - SPI_InitStruct->SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; - /* Initialize the SPI_FirstBit member */ - SPI_InitStruct->SPI_FirstBit = SPI_FirstBit_MSB; - /* Initialize the SPI_CRCPolynomial member */ - SPI_InitStruct->SPI_CRCPolynomial = 7; -} - -/** - * @brief Fills each I2S_InitStruct member with its default value. - * @param I2S_InitStruct : pointer to a I2S_InitTypeDef structure which will be initialized. - * @retval None - */ -void I2S_StructInit(I2S_InitTypeDef* I2S_InitStruct) -{ -/*--------------- Reset I2S init structure parameters values -----------------*/ - /* Initialize the I2S_Mode member */ - I2S_InitStruct->I2S_Mode = I2S_Mode_SlaveTx; - - /* Initialize the I2S_Standard member */ - I2S_InitStruct->I2S_Standard = I2S_Standard_Phillips; - - /* Initialize the I2S_DataFormat member */ - I2S_InitStruct->I2S_DataFormat = I2S_DataFormat_16b; - - /* Initialize the I2S_MCLKOutput member */ - I2S_InitStruct->I2S_MCLKOutput = I2S_MCLKOutput_Disable; - - /* Initialize the I2S_AudioFreq member */ - I2S_InitStruct->I2S_AudioFreq = I2S_AudioFreq_Default; - - /* Initialize the I2S_CPOL member */ - I2S_InitStruct->I2S_CPOL = I2S_CPOL_Low; -} - -/** - * @brief Enables or disables the specified SPI peripheral. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @param NewState: new state of the SPIx peripheral. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected SPI peripheral */ - SPIx->CR1 |= CR1_SPE_Set; - } - else - { - /* Disable the selected SPI peripheral */ - SPIx->CR1 &= CR1_SPE_Reset; - } -} - -/** - * @brief Enables or disables the specified SPI peripheral (in I2S mode). - * @param SPIx: where x can be 2 or 3 to select the SPI peripheral. - * @param NewState: new state of the SPIx peripheral. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void I2S_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_SPI_23_PERIPH(SPIx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected SPI peripheral (in I2S mode) */ - SPIx->I2SCFGR |= I2SCFGR_I2SE_Set; - } - else - { - /* Disable the selected SPI peripheral (in I2S mode) */ - SPIx->I2SCFGR &= I2SCFGR_I2SE_Reset; - } -} - -/** - * @brief Enables or disables the specified SPI/I2S interrupts. - * @param SPIx: where x can be - * - 1, 2 or 3 in SPI mode - * - 2 or 3 in I2S mode - * @param SPI_I2S_IT: specifies the SPI/I2S interrupt source to be enabled or disabled. - * This parameter can be one of the following values: - * @arg SPI_I2S_IT_TXE: Tx buffer empty interrupt mask - * @arg SPI_I2S_IT_RXNE: Rx buffer not empty interrupt mask - * @arg SPI_I2S_IT_ERR: Error interrupt mask - * @param NewState: new state of the specified SPI/I2S interrupt. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SPI_I2S_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState) -{ - uint16_t itpos = 0, itmask = 0 ; - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - assert_param(IS_SPI_I2S_CONFIG_IT(SPI_I2S_IT)); - - /* Get the SPI/I2S IT index */ - itpos = SPI_I2S_IT >> 4; - - /* Set the IT mask */ - itmask = (uint16_t)1 << (uint16_t)itpos; - - if (NewState != DISABLE) - { - /* Enable the selected SPI/I2S interrupt */ - SPIx->CR2 |= itmask; - } - else - { - /* Disable the selected SPI/I2S interrupt */ - SPIx->CR2 &= (uint16_t)~itmask; - } -} - -/** - * @brief Enables or disables the SPIx/I2Sx DMA interface. - * @param SPIx: where x can be - * - 1, 2 or 3 in SPI mode - * - 2 or 3 in I2S mode - * @param SPI_I2S_DMAReq: specifies the SPI/I2S DMA transfer request to be enabled or disabled. - * This parameter can be any combination of the following values: - * @arg SPI_I2S_DMAReq_Tx: Tx buffer DMA transfer request - * @arg SPI_I2S_DMAReq_Rx: Rx buffer DMA transfer request - * @param NewState: new state of the selected SPI/I2S DMA transfer request. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - assert_param(IS_SPI_I2S_DMAREQ(SPI_I2S_DMAReq)); - if (NewState != DISABLE) - { - /* Enable the selected SPI/I2S DMA requests */ - SPIx->CR2 |= SPI_I2S_DMAReq; - } - else - { - /* Disable the selected SPI/I2S DMA requests */ - SPIx->CR2 &= (uint16_t)~SPI_I2S_DMAReq; - } -} - -/** - * @brief Transmits a Data through the SPIx/I2Sx peripheral. - * @param SPIx: where x can be - * - 1, 2 or 3 in SPI mode - * - 2 or 3 in I2S mode - * @param Data : Data to be transmitted. - * @retval None - */ -void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - - /* Write in the DR register the data to be sent */ - SPIx->DR = Data; -} - -/** - * @brief Returns the most recent received data by the SPIx/I2Sx peripheral. - * @param SPIx: where x can be - * - 1, 2 or 3 in SPI mode - * - 2 or 3 in I2S mode - * @retval The value of the received data. - */ -uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - - /* Return the data in the DR register */ - return SPIx->DR; -} - -/** - * @brief Configures internally by software the NSS pin for the selected SPI. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @param SPI_NSSInternalSoft: specifies the SPI NSS internal state. - * This parameter can be one of the following values: - * @arg SPI_NSSInternalSoft_Set: Set NSS pin internally - * @arg SPI_NSSInternalSoft_Reset: Reset NSS pin internally - * @retval None - */ -void SPI_NSSInternalSoftwareConfig(SPI_TypeDef* SPIx, uint16_t SPI_NSSInternalSoft) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_SPI_NSS_INTERNAL(SPI_NSSInternalSoft)); - if (SPI_NSSInternalSoft != SPI_NSSInternalSoft_Reset) - { - /* Set NSS pin internally by software */ - SPIx->CR1 |= SPI_NSSInternalSoft_Set; - } - else - { - /* Reset NSS pin internally by software */ - SPIx->CR1 &= SPI_NSSInternalSoft_Reset; - } -} - -/** - * @brief Enables or disables the SS output for the selected SPI. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @param NewState: new state of the SPIx SS output. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SPI_SSOutputCmd(SPI_TypeDef* SPIx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected SPI SS output */ - SPIx->CR2 |= CR2_SSOE_Set; - } - else - { - /* Disable the selected SPI SS output */ - SPIx->CR2 &= CR2_SSOE_Reset; - } -} - -/** - * @brief Configures the data size for the selected SPI. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @param SPI_DataSize: specifies the SPI data size. - * This parameter can be one of the following values: - * @arg SPI_DataSize_16b: Set data frame format to 16bit - * @arg SPI_DataSize_8b: Set data frame format to 8bit - * @retval None - */ -void SPI_DataSizeConfig(SPI_TypeDef* SPIx, uint16_t SPI_DataSize) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_SPI_DATASIZE(SPI_DataSize)); - /* Clear DFF bit */ - SPIx->CR1 &= (uint16_t)~SPI_DataSize_16b; - /* Set new DFF bit value */ - SPIx->CR1 |= SPI_DataSize; -} - -/** - * @brief Transmit the SPIx CRC value. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @retval None - */ -void SPI_TransmitCRC(SPI_TypeDef* SPIx) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - - /* Enable the selected SPI CRC transmission */ - SPIx->CR1 |= CR1_CRCNext_Set; -} - -/** - * @brief Enables or disables the CRC value calculation of the transferred bytes. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @param NewState: new state of the SPIx CRC value calculation. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the selected SPI CRC calculation */ - SPIx->CR1 |= CR1_CRCEN_Set; - } - else - { - /* Disable the selected SPI CRC calculation */ - SPIx->CR1 &= CR1_CRCEN_Reset; - } -} - -/** - * @brief Returns the transmit or the receive CRC register value for the specified SPI. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @param SPI_CRC: specifies the CRC register to be read. - * This parameter can be one of the following values: - * @arg SPI_CRC_Tx: Selects Tx CRC register - * @arg SPI_CRC_Rx: Selects Rx CRC register - * @retval The selected CRC register value.. - */ -uint16_t SPI_GetCRC(SPI_TypeDef* SPIx, uint8_t SPI_CRC) -{ - uint16_t crcreg = 0; - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_SPI_CRC(SPI_CRC)); - if (SPI_CRC != SPI_CRC_Rx) - { - /* Get the Tx CRC register */ - crcreg = SPIx->TXCRCR; - } - else - { - /* Get the Rx CRC register */ - crcreg = SPIx->RXCRCR; - } - /* Return the selected CRC register */ - return crcreg; -} - -/** - * @brief Returns the CRC Polynomial register value for the specified SPI. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @retval The CRC Polynomial register value. - */ -uint16_t SPI_GetCRCPolynomial(SPI_TypeDef* SPIx) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - - /* Return the CRC polynomial register */ - return SPIx->CRCPR; -} - -/** - * @brief Selects the data transfer direction in bi-directional mode for the specified SPI. - * @param SPIx: where x can be 1, 2 or 3 to select the SPI peripheral. - * @param SPI_Direction: specifies the data transfer direction in bi-directional mode. - * This parameter can be one of the following values: - * @arg SPI_Direction_Tx: Selects Tx transmission direction - * @arg SPI_Direction_Rx: Selects Rx receive direction - * @retval None - */ -void SPI_BiDirectionalLineConfig(SPI_TypeDef* SPIx, uint16_t SPI_Direction) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_SPI_DIRECTION(SPI_Direction)); - if (SPI_Direction == SPI_Direction_Tx) - { - /* Set the Tx only mode */ - SPIx->CR1 |= SPI_Direction_Tx; - } - else - { - /* Set the Rx only mode */ - SPIx->CR1 &= SPI_Direction_Rx; - } -} - -/** - * @brief Checks whether the specified SPI/I2S flag is set or not. - * @param SPIx: where x can be - * - 1, 2 or 3 in SPI mode - * - 2 or 3 in I2S mode - * @param SPI_I2S_FLAG: specifies the SPI/I2S flag to check. - * This parameter can be one of the following values: - * @arg SPI_I2S_FLAG_TXE: Transmit buffer empty flag. - * @arg SPI_I2S_FLAG_RXNE: Receive buffer not empty flag. - * @arg SPI_I2S_FLAG_BSY: Busy flag. - * @arg SPI_I2S_FLAG_OVR: Overrun flag. - * @arg SPI_FLAG_MODF: Mode Fault flag. - * @arg SPI_FLAG_CRCERR: CRC Error flag. - * @arg I2S_FLAG_UDR: Underrun Error flag. - * @arg I2S_FLAG_CHSIDE: Channel Side flag. - * @retval The new state of SPI_I2S_FLAG (SET or RESET). - */ -FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_SPI_I2S_GET_FLAG(SPI_I2S_FLAG)); - /* Check the status of the specified SPI/I2S flag */ - if ((SPIx->SR & SPI_I2S_FLAG) != (uint16_t)RESET) - { - /* SPI_I2S_FLAG is set */ - bitstatus = SET; - } - else - { - /* SPI_I2S_FLAG is reset */ - bitstatus = RESET; - } - /* Return the SPI_I2S_FLAG status */ - return bitstatus; -} - -/** - * @brief Clears the SPIx CRC Error (CRCERR) flag. - * @param SPIx: where x can be - * - 1, 2 or 3 in SPI mode - * @param SPI_I2S_FLAG: specifies the SPI flag to clear. - * This function clears only CRCERR flag. - * @note - * - OVR (OverRun error) flag is cleared by software sequence: a read - * operation to SPI_DR register (SPI_I2S_ReceiveData()) followed by a read - * operation to SPI_SR register (SPI_I2S_GetFlagStatus()). - * - UDR (UnderRun error) flag is cleared by a read operation to - * SPI_SR register (SPI_I2S_GetFlagStatus()). - * - MODF (Mode Fault) flag is cleared by software sequence: a read/write - * operation to SPI_SR register (SPI_I2S_GetFlagStatus()) followed by a - * write operation to SPI_CR1 register (SPI_Cmd() to enable the SPI). - * @retval None - */ -void SPI_I2S_ClearFlag(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG) -{ - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_SPI_I2S_CLEAR_FLAG(SPI_I2S_FLAG)); - - /* Clear the selected SPI CRC Error (CRCERR) flag */ - SPIx->SR = (uint16_t)~SPI_I2S_FLAG; -} - -/** - * @brief Checks whether the specified SPI/I2S interrupt has occurred or not. - * @param SPIx: where x can be - * - 1, 2 or 3 in SPI mode - * - 2 or 3 in I2S mode - * @param SPI_I2S_IT: specifies the SPI/I2S interrupt source to check. - * This parameter can be one of the following values: - * @arg SPI_I2S_IT_TXE: Transmit buffer empty interrupt. - * @arg SPI_I2S_IT_RXNE: Receive buffer not empty interrupt. - * @arg SPI_I2S_IT_OVR: Overrun interrupt. - * @arg SPI_IT_MODF: Mode Fault interrupt. - * @arg SPI_IT_CRCERR: CRC Error interrupt. - * @arg I2S_IT_UDR: Underrun Error interrupt. - * @retval The new state of SPI_I2S_IT (SET or RESET). - */ -ITStatus SPI_I2S_GetITStatus(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT) -{ - ITStatus bitstatus = RESET; - uint16_t itpos = 0, itmask = 0, enablestatus = 0; - - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_SPI_I2S_GET_IT(SPI_I2S_IT)); - - /* Get the SPI/I2S IT index */ - itpos = 0x01 << (SPI_I2S_IT & 0x0F); - - /* Get the SPI/I2S IT mask */ - itmask = SPI_I2S_IT >> 4; - - /* Set the IT mask */ - itmask = 0x01 << itmask; - - /* Get the SPI_I2S_IT enable bit status */ - enablestatus = (SPIx->CR2 & itmask) ; - - /* Check the status of the specified SPI/I2S interrupt */ - if (((SPIx->SR & itpos) != (uint16_t)RESET) && enablestatus) - { - /* SPI_I2S_IT is set */ - bitstatus = SET; - } - else - { - /* SPI_I2S_IT is reset */ - bitstatus = RESET; - } - /* Return the SPI_I2S_IT status */ - return bitstatus; -} - -/** - * @brief Clears the SPIx CRC Error (CRCERR) interrupt pending bit. - * @param SPIx: where x can be - * - 1, 2 or 3 in SPI mode - * @param SPI_I2S_IT: specifies the SPI interrupt pending bit to clear. - * This function clears only CRCERR interrupt pending bit. - * @note - * - OVR (OverRun Error) interrupt pending bit is cleared by software - * sequence: a read operation to SPI_DR register (SPI_I2S_ReceiveData()) - * followed by a read operation to SPI_SR register (SPI_I2S_GetITStatus()). - * - UDR (UnderRun Error) interrupt pending bit is cleared by a read - * operation to SPI_SR register (SPI_I2S_GetITStatus()). - * - MODF (Mode Fault) interrupt pending bit is cleared by software sequence: - * a read/write operation to SPI_SR register (SPI_I2S_GetITStatus()) - * followed by a write operation to SPI_CR1 register (SPI_Cmd() to enable - * the SPI). - * @retval None - */ -void SPI_I2S_ClearITPendingBit(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT) -{ - uint16_t itpos = 0; - /* Check the parameters */ - assert_param(IS_SPI_ALL_PERIPH(SPIx)); - assert_param(IS_SPI_I2S_CLEAR_IT(SPI_I2S_IT)); - - /* Get the SPI IT index */ - itpos = 0x01 << (SPI_I2S_IT & 0x0F); - - /* Clear the selected SPI CRC Error (CRCERR) interrupt pending bit */ - SPIx->SR = (uint16_t)~itpos; -} -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c deleted file mode 100644 index 81c8484e..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c +++ /dev/null @@ -1,2890 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_tim.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the TIM firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_tim.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup TIM - * @brief TIM driver modules - * @{ - */ - -/** @defgroup TIM_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup TIM_Private_Defines - * @{ - */ - -/* ---------------------- TIM registers bit mask ------------------------ */ -#define SMCR_ETR_Mask ((uint16_t)0x00FF) -#define CCMR_Offset ((uint16_t)0x0018) -#define CCER_CCE_Set ((uint16_t)0x0001) -#define CCER_CCNE_Set ((uint16_t)0x0004) - -/** - * @} - */ - -/** @defgroup TIM_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup TIM_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup TIM_Private_FunctionPrototypes - * @{ - */ - -static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, - uint16_t TIM_ICFilter); -static void TI2_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, - uint16_t TIM_ICFilter); -static void TI3_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, - uint16_t TIM_ICFilter); -static void TI4_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, - uint16_t TIM_ICFilter); -/** - * @} - */ - -/** @defgroup TIM_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup TIM_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup TIM_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup TIM_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the TIMx peripheral registers to their default reset values. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @retval None - */ -void TIM_DeInit(TIM_TypeDef* TIMx) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - - if (TIMx == TIM1) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, DISABLE); - } - else if (TIMx == TIM2) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, DISABLE); - } - else if (TIMx == TIM3) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, DISABLE); - } - else if (TIMx == TIM4) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM4, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM4, DISABLE); - } - else if (TIMx == TIM5) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM5, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM5, DISABLE); - } - else if (TIMx == TIM6) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM6, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM6, DISABLE); - } - else if (TIMx == TIM7) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM7, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM7, DISABLE); - } - else if (TIMx == TIM8) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM8, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM8, DISABLE); - } - else if (TIMx == TIM9) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM9, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM9, DISABLE); - } - else if (TIMx == TIM10) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM10, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM10, DISABLE); - } - else if (TIMx == TIM11) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM11, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM11, DISABLE); - } - else if (TIMx == TIM12) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM12, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM12, DISABLE); - } - else if (TIMx == TIM13) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM13, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM13, DISABLE); - } - else if (TIMx == TIM14) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM14, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM14, DISABLE); - } - else if (TIMx == TIM15) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM15, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM15, DISABLE); - } - else if (TIMx == TIM16) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM16, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM16, DISABLE); - } - else - { - if (TIMx == TIM17) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM17, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM17, DISABLE); - } - } -} - -/** - * @brief Initializes the TIMx Time Base Unit peripheral according to - * the specified parameters in the TIM_TimeBaseInitStruct. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param TIM_TimeBaseInitStruct: pointer to a TIM_TimeBaseInitTypeDef - * structure that contains the configuration information for the - * specified TIM peripheral. - * @retval None - */ -void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct) -{ - uint16_t tmpcr1 = 0; - - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_COUNTER_MODE(TIM_TimeBaseInitStruct->TIM_CounterMode)); - assert_param(IS_TIM_CKD_DIV(TIM_TimeBaseInitStruct->TIM_ClockDivision)); - - tmpcr1 = TIMx->CR1; - - if((TIMx == TIM1) || (TIMx == TIM8)|| (TIMx == TIM2) || (TIMx == TIM3)|| - (TIMx == TIM4) || (TIMx == TIM5)) - { - /* Select the Counter Mode */ - tmpcr1 &= (uint16_t)(~((uint16_t)(TIM_CR1_DIR | TIM_CR1_CMS))); - tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_CounterMode; - } - - if((TIMx != TIM6) && (TIMx != TIM7)) - { - /* Set the clock division */ - tmpcr1 &= (uint16_t)(~((uint16_t)TIM_CR1_CKD)); - tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision; - } - - TIMx->CR1 = tmpcr1; - - /* Set the Autoreload value */ - TIMx->ARR = TIM_TimeBaseInitStruct->TIM_Period ; - - /* Set the Prescaler value */ - TIMx->PSC = TIM_TimeBaseInitStruct->TIM_Prescaler; - - if ((TIMx == TIM1) || (TIMx == TIM8)|| (TIMx == TIM15)|| (TIMx == TIM16) || (TIMx == TIM17)) - { - /* Set the Repetition Counter value */ - TIMx->RCR = TIM_TimeBaseInitStruct->TIM_RepetitionCounter; - } - - /* Generate an update event to reload the Prescaler and the Repetition counter - values immediately */ - TIMx->EGR = TIM_PSCReloadMode_Immediate; -} - -/** - * @brief Initializes the TIMx Channel1 according to the specified - * parameters in the TIM_OCInitStruct. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure - * that contains the configuration information for the specified TIM peripheral. - * @retval None - */ -void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) -{ - uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; - - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - assert_param(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode)); - assert_param(IS_TIM_OUTPUT_STATE(TIM_OCInitStruct->TIM_OutputState)); - assert_param(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity)); - /* Disable the Channel 1: Reset the CC1E Bit */ - TIMx->CCER &= (uint16_t)(~(uint16_t)TIM_CCER_CC1E); - /* Get the TIMx CCER register value */ - tmpccer = TIMx->CCER; - /* Get the TIMx CR2 register value */ - tmpcr2 = TIMx->CR2; - - /* Get the TIMx CCMR1 register value */ - tmpccmrx = TIMx->CCMR1; - - /* Reset the Output Compare Mode Bits */ - tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CCMR1_OC1M)); - tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CCMR1_CC1S)); - - /* Select the Output Compare Mode */ - tmpccmrx |= TIM_OCInitStruct->TIM_OCMode; - - /* Reset the Output Polarity level */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC1P)); - /* Set the Output Compare Polarity */ - tmpccer |= TIM_OCInitStruct->TIM_OCPolarity; - - /* Set the Output State */ - tmpccer |= TIM_OCInitStruct->TIM_OutputState; - - if((TIMx == TIM1) || (TIMx == TIM8)|| (TIMx == TIM15)|| - (TIMx == TIM16)|| (TIMx == TIM17)) - { - assert_param(IS_TIM_OUTPUTN_STATE(TIM_OCInitStruct->TIM_OutputNState)); - assert_param(IS_TIM_OCN_POLARITY(TIM_OCInitStruct->TIM_OCNPolarity)); - assert_param(IS_TIM_OCNIDLE_STATE(TIM_OCInitStruct->TIM_OCNIdleState)); - assert_param(IS_TIM_OCIDLE_STATE(TIM_OCInitStruct->TIM_OCIdleState)); - - /* Reset the Output N Polarity level */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC1NP)); - /* Set the Output N Polarity */ - tmpccer |= TIM_OCInitStruct->TIM_OCNPolarity; - - /* Reset the Output N State */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC1NE)); - /* Set the Output N State */ - tmpccer |= TIM_OCInitStruct->TIM_OutputNState; - - /* Reset the Output Compare and Output Compare N IDLE State */ - tmpcr2 &= (uint16_t)(~((uint16_t)TIM_CR2_OIS1)); - tmpcr2 &= (uint16_t)(~((uint16_t)TIM_CR2_OIS1N)); - - /* Set the Output Idle state */ - tmpcr2 |= TIM_OCInitStruct->TIM_OCIdleState; - /* Set the Output N Idle state */ - tmpcr2 |= TIM_OCInitStruct->TIM_OCNIdleState; - } - /* Write to TIMx CR2 */ - TIMx->CR2 = tmpcr2; - - /* Write to TIMx CCMR1 */ - TIMx->CCMR1 = tmpccmrx; - - /* Set the Capture Compare Register value */ - TIMx->CCR1 = TIM_OCInitStruct->TIM_Pulse; - - /* Write to TIMx CCER */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Initializes the TIMx Channel2 according to the specified - * parameters in the TIM_OCInitStruct. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select - * the TIM peripheral. - * @param TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure - * that contains the configuration information for the specified TIM peripheral. - * @retval None - */ -void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) -{ - uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; - - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode)); - assert_param(IS_TIM_OUTPUT_STATE(TIM_OCInitStruct->TIM_OutputState)); - assert_param(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity)); - /* Disable the Channel 2: Reset the CC2E Bit */ - TIMx->CCER &= (uint16_t)(~((uint16_t)TIM_CCER_CC2E)); - - /* Get the TIMx CCER register value */ - tmpccer = TIMx->CCER; - /* Get the TIMx CR2 register value */ - tmpcr2 = TIMx->CR2; - - /* Get the TIMx CCMR1 register value */ - tmpccmrx = TIMx->CCMR1; - - /* Reset the Output Compare mode and Capture/Compare selection Bits */ - tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CCMR1_OC2M)); - tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CCMR1_CC2S)); - - /* Select the Output Compare Mode */ - tmpccmrx |= (uint16_t)(TIM_OCInitStruct->TIM_OCMode << 8); - - /* Reset the Output Polarity level */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC2P)); - /* Set the Output Compare Polarity */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 4); - - /* Set the Output State */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 4); - - if((TIMx == TIM1) || (TIMx == TIM8)) - { - assert_param(IS_TIM_OUTPUTN_STATE(TIM_OCInitStruct->TIM_OutputNState)); - assert_param(IS_TIM_OCN_POLARITY(TIM_OCInitStruct->TIM_OCNPolarity)); - assert_param(IS_TIM_OCNIDLE_STATE(TIM_OCInitStruct->TIM_OCNIdleState)); - assert_param(IS_TIM_OCIDLE_STATE(TIM_OCInitStruct->TIM_OCIdleState)); - - /* Reset the Output N Polarity level */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC2NP)); - /* Set the Output N Polarity */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCNPolarity << 4); - - /* Reset the Output N State */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC2NE)); - /* Set the Output N State */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputNState << 4); - - /* Reset the Output Compare and Output Compare N IDLE State */ - tmpcr2 &= (uint16_t)(~((uint16_t)TIM_CR2_OIS2)); - tmpcr2 &= (uint16_t)(~((uint16_t)TIM_CR2_OIS2N)); - - /* Set the Output Idle state */ - tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 2); - /* Set the Output N Idle state */ - tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCNIdleState << 2); - } - /* Write to TIMx CR2 */ - TIMx->CR2 = tmpcr2; - - /* Write to TIMx CCMR1 */ - TIMx->CCMR1 = tmpccmrx; - - /* Set the Capture Compare Register value */ - TIMx->CCR2 = TIM_OCInitStruct->TIM_Pulse; - - /* Write to TIMx CCER */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Initializes the TIMx Channel3 according to the specified - * parameters in the TIM_OCInitStruct. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure - * that contains the configuration information for the specified TIM peripheral. - * @retval None - */ -void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) -{ - uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; - - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode)); - assert_param(IS_TIM_OUTPUT_STATE(TIM_OCInitStruct->TIM_OutputState)); - assert_param(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity)); - /* Disable the Channel 2: Reset the CC2E Bit */ - TIMx->CCER &= (uint16_t)(~((uint16_t)TIM_CCER_CC3E)); - - /* Get the TIMx CCER register value */ - tmpccer = TIMx->CCER; - /* Get the TIMx CR2 register value */ - tmpcr2 = TIMx->CR2; - - /* Get the TIMx CCMR2 register value */ - tmpccmrx = TIMx->CCMR2; - - /* Reset the Output Compare mode and Capture/Compare selection Bits */ - tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CCMR2_OC3M)); - tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CCMR2_CC3S)); - /* Select the Output Compare Mode */ - tmpccmrx |= TIM_OCInitStruct->TIM_OCMode; - - /* Reset the Output Polarity level */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC3P)); - /* Set the Output Compare Polarity */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 8); - - /* Set the Output State */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 8); - - if((TIMx == TIM1) || (TIMx == TIM8)) - { - assert_param(IS_TIM_OUTPUTN_STATE(TIM_OCInitStruct->TIM_OutputNState)); - assert_param(IS_TIM_OCN_POLARITY(TIM_OCInitStruct->TIM_OCNPolarity)); - assert_param(IS_TIM_OCNIDLE_STATE(TIM_OCInitStruct->TIM_OCNIdleState)); - assert_param(IS_TIM_OCIDLE_STATE(TIM_OCInitStruct->TIM_OCIdleState)); - - /* Reset the Output N Polarity level */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC3NP)); - /* Set the Output N Polarity */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCNPolarity << 8); - /* Reset the Output N State */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC3NE)); - - /* Set the Output N State */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputNState << 8); - /* Reset the Output Compare and Output Compare N IDLE State */ - tmpcr2 &= (uint16_t)(~((uint16_t)TIM_CR2_OIS3)); - tmpcr2 &= (uint16_t)(~((uint16_t)TIM_CR2_OIS3N)); - /* Set the Output Idle state */ - tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 4); - /* Set the Output N Idle state */ - tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCNIdleState << 4); - } - /* Write to TIMx CR2 */ - TIMx->CR2 = tmpcr2; - - /* Write to TIMx CCMR2 */ - TIMx->CCMR2 = tmpccmrx; - - /* Set the Capture Compare Register value */ - TIMx->CCR3 = TIM_OCInitStruct->TIM_Pulse; - - /* Write to TIMx CCER */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Initializes the TIMx Channel4 according to the specified - * parameters in the TIM_OCInitStruct. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure - * that contains the configuration information for the specified TIM peripheral. - * @retval None - */ -void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) -{ - uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; - - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode)); - assert_param(IS_TIM_OUTPUT_STATE(TIM_OCInitStruct->TIM_OutputState)); - assert_param(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity)); - /* Disable the Channel 2: Reset the CC4E Bit */ - TIMx->CCER &= (uint16_t)(~((uint16_t)TIM_CCER_CC4E)); - - /* Get the TIMx CCER register value */ - tmpccer = TIMx->CCER; - /* Get the TIMx CR2 register value */ - tmpcr2 = TIMx->CR2; - - /* Get the TIMx CCMR2 register value */ - tmpccmrx = TIMx->CCMR2; - - /* Reset the Output Compare mode and Capture/Compare selection Bits */ - tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CCMR2_OC4M)); - tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CCMR2_CC4S)); - - /* Select the Output Compare Mode */ - tmpccmrx |= (uint16_t)(TIM_OCInitStruct->TIM_OCMode << 8); - - /* Reset the Output Polarity level */ - tmpccer &= (uint16_t)(~((uint16_t)TIM_CCER_CC4P)); - /* Set the Output Compare Polarity */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 12); - - /* Set the Output State */ - tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 12); - - if((TIMx == TIM1) || (TIMx == TIM8)) - { - assert_param(IS_TIM_OCIDLE_STATE(TIM_OCInitStruct->TIM_OCIdleState)); - /* Reset the Output Compare IDLE State */ - tmpcr2 &= (uint16_t)(~((uint16_t)TIM_CR2_OIS4)); - /* Set the Output Idle state */ - tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 6); - } - /* Write to TIMx CR2 */ - TIMx->CR2 = tmpcr2; - - /* Write to TIMx CCMR2 */ - TIMx->CCMR2 = tmpccmrx; - - /* Set the Capture Compare Register value */ - TIMx->CCR4 = TIM_OCInitStruct->TIM_Pulse; - - /* Write to TIMx CCER */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Initializes the TIM peripheral according to the specified - * parameters in the TIM_ICInitStruct. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure - * that contains the configuration information for the specified TIM peripheral. - * @retval None - */ -void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct) -{ - /* Check the parameters */ - assert_param(IS_TIM_CHANNEL(TIM_ICInitStruct->TIM_Channel)); - assert_param(IS_TIM_IC_SELECTION(TIM_ICInitStruct->TIM_ICSelection)); - assert_param(IS_TIM_IC_PRESCALER(TIM_ICInitStruct->TIM_ICPrescaler)); - assert_param(IS_TIM_IC_FILTER(TIM_ICInitStruct->TIM_ICFilter)); - - if((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM2) || (TIMx == TIM3) || - (TIMx == TIM4) ||(TIMx == TIM5)) - { - assert_param(IS_TIM_IC_POLARITY(TIM_ICInitStruct->TIM_ICPolarity)); - } - else - { - assert_param(IS_TIM_IC_POLARITY_LITE(TIM_ICInitStruct->TIM_ICPolarity)); - } - if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1) - { - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - /* TI1 Configuration */ - TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, - TIM_ICInitStruct->TIM_ICSelection, - TIM_ICInitStruct->TIM_ICFilter); - /* Set the Input Capture Prescaler value */ - TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); - } - else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2) - { - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - /* TI2 Configuration */ - TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, - TIM_ICInitStruct->TIM_ICSelection, - TIM_ICInitStruct->TIM_ICFilter); - /* Set the Input Capture Prescaler value */ - TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); - } - else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_3) - { - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - /* TI3 Configuration */ - TI3_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, - TIM_ICInitStruct->TIM_ICSelection, - TIM_ICInitStruct->TIM_ICFilter); - /* Set the Input Capture Prescaler value */ - TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); - } - else - { - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - /* TI4 Configuration */ - TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, - TIM_ICInitStruct->TIM_ICSelection, - TIM_ICInitStruct->TIM_ICFilter); - /* Set the Input Capture Prescaler value */ - TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); - } -} - -/** - * @brief Configures the TIM peripheral according to the specified - * parameters in the TIM_ICInitStruct to measure an external PWM signal. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure - * that contains the configuration information for the specified TIM peripheral. - * @retval None - */ -void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct) -{ - uint16_t icoppositepolarity = TIM_ICPolarity_Rising; - uint16_t icoppositeselection = TIM_ICSelection_DirectTI; - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - /* Select the Opposite Input Polarity */ - if (TIM_ICInitStruct->TIM_ICPolarity == TIM_ICPolarity_Rising) - { - icoppositepolarity = TIM_ICPolarity_Falling; - } - else - { - icoppositepolarity = TIM_ICPolarity_Rising; - } - /* Select the Opposite Input */ - if (TIM_ICInitStruct->TIM_ICSelection == TIM_ICSelection_DirectTI) - { - icoppositeselection = TIM_ICSelection_IndirectTI; - } - else - { - icoppositeselection = TIM_ICSelection_DirectTI; - } - if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1) - { - /* TI1 Configuration */ - TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, - TIM_ICInitStruct->TIM_ICFilter); - /* Set the Input Capture Prescaler value */ - TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); - /* TI2 Configuration */ - TI2_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter); - /* Set the Input Capture Prescaler value */ - TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); - } - else - { - /* TI2 Configuration */ - TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, - TIM_ICInitStruct->TIM_ICFilter); - /* Set the Input Capture Prescaler value */ - TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); - /* TI1 Configuration */ - TI1_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter); - /* Set the Input Capture Prescaler value */ - TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); - } -} - -/** - * @brief Configures the: Break feature, dead time, Lock level, the OSSI, - * the OSSR State and the AOE(automatic output enable). - * @param TIMx: where x can be 1 or 8 to select the TIM - * @param TIM_BDTRInitStruct: pointer to a TIM_BDTRInitTypeDef structure that - * contains the BDTR Register configuration information for the TIM peripheral. - * @retval None - */ -void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST2_PERIPH(TIMx)); - assert_param(IS_TIM_OSSR_STATE(TIM_BDTRInitStruct->TIM_OSSRState)); - assert_param(IS_TIM_OSSI_STATE(TIM_BDTRInitStruct->TIM_OSSIState)); - assert_param(IS_TIM_LOCK_LEVEL(TIM_BDTRInitStruct->TIM_LOCKLevel)); - assert_param(IS_TIM_BREAK_STATE(TIM_BDTRInitStruct->TIM_Break)); - assert_param(IS_TIM_BREAK_POLARITY(TIM_BDTRInitStruct->TIM_BreakPolarity)); - assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(TIM_BDTRInitStruct->TIM_AutomaticOutput)); - /* Set the Lock level, the Break enable Bit and the Ploarity, the OSSR State, - the OSSI State, the dead time value and the Automatic Output Enable Bit */ - TIMx->BDTR = (uint32_t)TIM_BDTRInitStruct->TIM_OSSRState | TIM_BDTRInitStruct->TIM_OSSIState | - TIM_BDTRInitStruct->TIM_LOCKLevel | TIM_BDTRInitStruct->TIM_DeadTime | - TIM_BDTRInitStruct->TIM_Break | TIM_BDTRInitStruct->TIM_BreakPolarity | - TIM_BDTRInitStruct->TIM_AutomaticOutput; -} - -/** - * @brief Fills each TIM_TimeBaseInitStruct member with its default value. - * @param TIM_TimeBaseInitStruct : pointer to a TIM_TimeBaseInitTypeDef - * structure which will be initialized. - * @retval None - */ -void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct) -{ - /* Set the default configuration */ - TIM_TimeBaseInitStruct->TIM_Period = 0xFFFF; - TIM_TimeBaseInitStruct->TIM_Prescaler = 0x0000; - TIM_TimeBaseInitStruct->TIM_ClockDivision = TIM_CKD_DIV1; - TIM_TimeBaseInitStruct->TIM_CounterMode = TIM_CounterMode_Up; - TIM_TimeBaseInitStruct->TIM_RepetitionCounter = 0x0000; -} - -/** - * @brief Fills each TIM_OCInitStruct member with its default value. - * @param TIM_OCInitStruct : pointer to a TIM_OCInitTypeDef structure which will - * be initialized. - * @retval None - */ -void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct) -{ - /* Set the default configuration */ - TIM_OCInitStruct->TIM_OCMode = TIM_OCMode_Timing; - TIM_OCInitStruct->TIM_OutputState = TIM_OutputState_Disable; - TIM_OCInitStruct->TIM_OutputNState = TIM_OutputNState_Disable; - TIM_OCInitStruct->TIM_Pulse = 0x0000; - TIM_OCInitStruct->TIM_OCPolarity = TIM_OCPolarity_High; - TIM_OCInitStruct->TIM_OCNPolarity = TIM_OCPolarity_High; - TIM_OCInitStruct->TIM_OCIdleState = TIM_OCIdleState_Reset; - TIM_OCInitStruct->TIM_OCNIdleState = TIM_OCNIdleState_Reset; -} - -/** - * @brief Fills each TIM_ICInitStruct member with its default value. - * @param TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure which will - * be initialized. - * @retval None - */ -void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct) -{ - /* Set the default configuration */ - TIM_ICInitStruct->TIM_Channel = TIM_Channel_1; - TIM_ICInitStruct->TIM_ICPolarity = TIM_ICPolarity_Rising; - TIM_ICInitStruct->TIM_ICSelection = TIM_ICSelection_DirectTI; - TIM_ICInitStruct->TIM_ICPrescaler = TIM_ICPSC_DIV1; - TIM_ICInitStruct->TIM_ICFilter = 0x00; -} - -/** - * @brief Fills each TIM_BDTRInitStruct member with its default value. - * @param TIM_BDTRInitStruct: pointer to a TIM_BDTRInitTypeDef structure which - * will be initialized. - * @retval None - */ -void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct) -{ - /* Set the default configuration */ - TIM_BDTRInitStruct->TIM_OSSRState = TIM_OSSRState_Disable; - TIM_BDTRInitStruct->TIM_OSSIState = TIM_OSSIState_Disable; - TIM_BDTRInitStruct->TIM_LOCKLevel = TIM_LOCKLevel_OFF; - TIM_BDTRInitStruct->TIM_DeadTime = 0x00; - TIM_BDTRInitStruct->TIM_Break = TIM_Break_Disable; - TIM_BDTRInitStruct->TIM_BreakPolarity = TIM_BreakPolarity_Low; - TIM_BDTRInitStruct->TIM_AutomaticOutput = TIM_AutomaticOutput_Disable; -} - -/** - * @brief Enables or disables the specified TIM peripheral. - * @param TIMx: where x can be 1 to 17 to select the TIMx peripheral. - * @param NewState: new state of the TIMx peripheral. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the TIM Counter */ - TIMx->CR1 |= TIM_CR1_CEN; - } - else - { - /* Disable the TIM Counter */ - TIMx->CR1 &= (uint16_t)(~((uint16_t)TIM_CR1_CEN)); - } -} - -/** - * @brief Enables or disables the TIM peripheral Main Outputs. - * @param TIMx: where x can be 1, 8, 15, 16 or 17 to select the TIMx peripheral. - * @param NewState: new state of the TIM peripheral Main Outputs. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST2_PERIPH(TIMx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the TIM Main Output */ - TIMx->BDTR |= TIM_BDTR_MOE; - } - else - { - /* Disable the TIM Main Output */ - TIMx->BDTR &= (uint16_t)(~((uint16_t)TIM_BDTR_MOE)); - } -} - -/** - * @brief Enables or disables the specified TIM interrupts. - * @param TIMx: where x can be 1 to 17 to select the TIMx peripheral. - * @param TIM_IT: specifies the TIM interrupts sources to be enabled or disabled. - * This parameter can be any combination of the following values: - * @arg TIM_IT_Update: TIM update Interrupt source - * @arg TIM_IT_CC1: TIM Capture Compare 1 Interrupt source - * @arg TIM_IT_CC2: TIM Capture Compare 2 Interrupt source - * @arg TIM_IT_CC3: TIM Capture Compare 3 Interrupt source - * @arg TIM_IT_CC4: TIM Capture Compare 4 Interrupt source - * @arg TIM_IT_COM: TIM Commutation Interrupt source - * @arg TIM_IT_Trigger: TIM Trigger Interrupt source - * @arg TIM_IT_Break: TIM Break Interrupt source - * @note - * - TIM6 and TIM7 can only generate an update interrupt. - * - TIM9, TIM12 and TIM15 can have only TIM_IT_Update, TIM_IT_CC1, - * TIM_IT_CC2 or TIM_IT_Trigger. - * - TIM10, TIM11, TIM13, TIM14, TIM16 and TIM17 can have TIM_IT_Update or TIM_IT_CC1. - * - TIM_IT_Break is used only with TIM1, TIM8 and TIM15. - * - TIM_IT_COM is used only with TIM1, TIM8, TIM15, TIM16 and TIM17. - * @param NewState: new state of the TIM interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_IT(TIM_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the Interrupt sources */ - TIMx->DIER |= TIM_IT; - } - else - { - /* Disable the Interrupt sources */ - TIMx->DIER &= (uint16_t)~TIM_IT; - } -} - -/** - * @brief Configures the TIMx event to be generate by software. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param TIM_EventSource: specifies the event source. - * This parameter can be one or more of the following values: - * @arg TIM_EventSource_Update: Timer update Event source - * @arg TIM_EventSource_CC1: Timer Capture Compare 1 Event source - * @arg TIM_EventSource_CC2: Timer Capture Compare 2 Event source - * @arg TIM_EventSource_CC3: Timer Capture Compare 3 Event source - * @arg TIM_EventSource_CC4: Timer Capture Compare 4 Event source - * @arg TIM_EventSource_COM: Timer COM event source - * @arg TIM_EventSource_Trigger: Timer Trigger Event source - * @arg TIM_EventSource_Break: Timer Break event source - * @note - * - TIM6 and TIM7 can only generate an update event. - * - TIM_EventSource_COM and TIM_EventSource_Break are used only with TIM1 and TIM8. - * @retval None - */ -void TIM_GenerateEvent(TIM_TypeDef* TIMx, uint16_t TIM_EventSource) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_EVENT_SOURCE(TIM_EventSource)); - - /* Set the event sources */ - TIMx->EGR = TIM_EventSource; -} - -/** - * @brief Configures the TIMx's DMA interface. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 15, 16 or 17 to select - * the TIM peripheral. - * @param TIM_DMABase: DMA Base address. - * This parameter can be one of the following values: - * @arg TIM_DMABase_CR, TIM_DMABase_CR2, TIM_DMABase_SMCR, - * TIM_DMABase_DIER, TIM1_DMABase_SR, TIM_DMABase_EGR, - * TIM_DMABase_CCMR1, TIM_DMABase_CCMR2, TIM_DMABase_CCER, - * TIM_DMABase_CNT, TIM_DMABase_PSC, TIM_DMABase_ARR, - * TIM_DMABase_RCR, TIM_DMABase_CCR1, TIM_DMABase_CCR2, - * TIM_DMABase_CCR3, TIM_DMABase_CCR4, TIM_DMABase_BDTR, - * TIM_DMABase_DCR. - * @param TIM_DMABurstLength: DMA Burst length. - * This parameter can be one value between: - * TIM_DMABurstLength_1Transfer and TIM_DMABurstLength_18Transfers. - * @retval None - */ -void TIM_DMAConfig(TIM_TypeDef* TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST4_PERIPH(TIMx)); - assert_param(IS_TIM_DMA_BASE(TIM_DMABase)); - assert_param(IS_TIM_DMA_LENGTH(TIM_DMABurstLength)); - /* Set the DMA Base and the DMA Burst Length */ - TIMx->DCR = TIM_DMABase | TIM_DMABurstLength; -} - -/** - * @brief Enables or disables the TIMx's DMA Requests. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 6, 7, 8, 15, 16 or 17 - * to select the TIM peripheral. - * @param TIM_DMASource: specifies the DMA Request sources. - * This parameter can be any combination of the following values: - * @arg TIM_DMA_Update: TIM update Interrupt source - * @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source - * @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source - * @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source - * @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source - * @arg TIM_DMA_COM: TIM Commutation DMA source - * @arg TIM_DMA_Trigger: TIM Trigger DMA source - * @param NewState: new state of the DMA Request sources. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST9_PERIPH(TIMx)); - assert_param(IS_TIM_DMA_SOURCE(TIM_DMASource)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the DMA sources */ - TIMx->DIER |= TIM_DMASource; - } - else - { - /* Disable the DMA sources */ - TIMx->DIER &= (uint16_t)~TIM_DMASource; - } -} - -/** - * @brief Configures the TIMx internal Clock - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 - * to select the TIM peripheral. - * @retval None - */ -void TIM_InternalClockConfig(TIM_TypeDef* TIMx) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - /* Disable slave mode to clock the prescaler directly with the internal clock */ - TIMx->SMCR &= (uint16_t)(~((uint16_t)TIM_SMCR_SMS)); -} - -/** - * @brief Configures the TIMx Internal Trigger as External Clock - * @param TIMx: where x can be 1, 2, 3, 4, 5, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_ITRSource: Trigger source. - * This parameter can be one of the following values: - * @param TIM_TS_ITR0: Internal Trigger 0 - * @param TIM_TS_ITR1: Internal Trigger 1 - * @param TIM_TS_ITR2: Internal Trigger 2 - * @param TIM_TS_ITR3: Internal Trigger 3 - * @retval None - */ -void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_INTERNAL_TRIGGER_SELECTION(TIM_InputTriggerSource)); - /* Select the Internal Trigger */ - TIM_SelectInputTrigger(TIMx, TIM_InputTriggerSource); - /* Select the External clock mode1 */ - TIMx->SMCR |= TIM_SlaveMode_External1; -} - -/** - * @brief Configures the TIMx Trigger as External Clock - * @param TIMx: where x can be 1, 2, 3, 4, 5, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_TIxExternalCLKSource: Trigger source. - * This parameter can be one of the following values: - * @arg TIM_TIxExternalCLK1Source_TI1ED: TI1 Edge Detector - * @arg TIM_TIxExternalCLK1Source_TI1: Filtered Timer Input 1 - * @arg TIM_TIxExternalCLK1Source_TI2: Filtered Timer Input 2 - * @param TIM_ICPolarity: specifies the TIx Polarity. - * This parameter can be one of the following values: - * @arg TIM_ICPolarity_Rising - * @arg TIM_ICPolarity_Falling - * @param ICFilter : specifies the filter value. - * This parameter must be a value between 0x0 and 0xF. - * @retval None - */ -void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource, - uint16_t TIM_ICPolarity, uint16_t ICFilter) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_TIXCLK_SOURCE(TIM_TIxExternalCLKSource)); - assert_param(IS_TIM_IC_POLARITY(TIM_ICPolarity)); - assert_param(IS_TIM_IC_FILTER(ICFilter)); - /* Configure the Timer Input Clock Source */ - if (TIM_TIxExternalCLKSource == TIM_TIxExternalCLK1Source_TI2) - { - TI2_Config(TIMx, TIM_ICPolarity, TIM_ICSelection_DirectTI, ICFilter); - } - else - { - TI1_Config(TIMx, TIM_ICPolarity, TIM_ICSelection_DirectTI, ICFilter); - } - /* Select the Trigger source */ - TIM_SelectInputTrigger(TIMx, TIM_TIxExternalCLKSource); - /* Select the External clock mode1 */ - TIMx->SMCR |= TIM_SlaveMode_External1; -} - -/** - * @brief Configures the External clock Mode1 - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_ExtTRGPrescaler: The external Trigger Prescaler. - * This parameter can be one of the following values: - * @arg TIM_ExtTRGPSC_OFF: ETRP Prescaler OFF. - * @arg TIM_ExtTRGPSC_DIV2: ETRP frequency divided by 2. - * @arg TIM_ExtTRGPSC_DIV4: ETRP frequency divided by 4. - * @arg TIM_ExtTRGPSC_DIV8: ETRP frequency divided by 8. - * @param TIM_ExtTRGPolarity: The external Trigger Polarity. - * This parameter can be one of the following values: - * @arg TIM_ExtTRGPolarity_Inverted: active low or falling edge active. - * @arg TIM_ExtTRGPolarity_NonInverted: active high or rising edge active. - * @param ExtTRGFilter: External Trigger Filter. - * This parameter must be a value between 0x00 and 0x0F - * @retval None - */ -void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, - uint16_t ExtTRGFilter) -{ - uint16_t tmpsmcr = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_EXT_PRESCALER(TIM_ExtTRGPrescaler)); - assert_param(IS_TIM_EXT_POLARITY(TIM_ExtTRGPolarity)); - assert_param(IS_TIM_EXT_FILTER(ExtTRGFilter)); - /* Configure the ETR Clock source */ - TIM_ETRConfig(TIMx, TIM_ExtTRGPrescaler, TIM_ExtTRGPolarity, ExtTRGFilter); - - /* Get the TIMx SMCR register value */ - tmpsmcr = TIMx->SMCR; - /* Reset the SMS Bits */ - tmpsmcr &= (uint16_t)(~((uint16_t)TIM_SMCR_SMS)); - /* Select the External clock mode1 */ - tmpsmcr |= TIM_SlaveMode_External1; - /* Select the Trigger selection : ETRF */ - tmpsmcr &= (uint16_t)(~((uint16_t)TIM_SMCR_TS)); - tmpsmcr |= TIM_TS_ETRF; - /* Write to TIMx SMCR */ - TIMx->SMCR = tmpsmcr; -} - -/** - * @brief Configures the External clock Mode2 - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_ExtTRGPrescaler: The external Trigger Prescaler. - * This parameter can be one of the following values: - * @arg TIM_ExtTRGPSC_OFF: ETRP Prescaler OFF. - * @arg TIM_ExtTRGPSC_DIV2: ETRP frequency divided by 2. - * @arg TIM_ExtTRGPSC_DIV4: ETRP frequency divided by 4. - * @arg TIM_ExtTRGPSC_DIV8: ETRP frequency divided by 8. - * @param TIM_ExtTRGPolarity: The external Trigger Polarity. - * This parameter can be one of the following values: - * @arg TIM_ExtTRGPolarity_Inverted: active low or falling edge active. - * @arg TIM_ExtTRGPolarity_NonInverted: active high or rising edge active. - * @param ExtTRGFilter: External Trigger Filter. - * This parameter must be a value between 0x00 and 0x0F - * @retval None - */ -void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, - uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_EXT_PRESCALER(TIM_ExtTRGPrescaler)); - assert_param(IS_TIM_EXT_POLARITY(TIM_ExtTRGPolarity)); - assert_param(IS_TIM_EXT_FILTER(ExtTRGFilter)); - /* Configure the ETR Clock source */ - TIM_ETRConfig(TIMx, TIM_ExtTRGPrescaler, TIM_ExtTRGPolarity, ExtTRGFilter); - /* Enable the External clock mode2 */ - TIMx->SMCR |= TIM_SMCR_ECE; -} - -/** - * @brief Configures the TIMx External Trigger (ETR). - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_ExtTRGPrescaler: The external Trigger Prescaler. - * This parameter can be one of the following values: - * @arg TIM_ExtTRGPSC_OFF: ETRP Prescaler OFF. - * @arg TIM_ExtTRGPSC_DIV2: ETRP frequency divided by 2. - * @arg TIM_ExtTRGPSC_DIV4: ETRP frequency divided by 4. - * @arg TIM_ExtTRGPSC_DIV8: ETRP frequency divided by 8. - * @param TIM_ExtTRGPolarity: The external Trigger Polarity. - * This parameter can be one of the following values: - * @arg TIM_ExtTRGPolarity_Inverted: active low or falling edge active. - * @arg TIM_ExtTRGPolarity_NonInverted: active high or rising edge active. - * @param ExtTRGFilter: External Trigger Filter. - * This parameter must be a value between 0x00 and 0x0F - * @retval None - */ -void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, - uint16_t ExtTRGFilter) -{ - uint16_t tmpsmcr = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_EXT_PRESCALER(TIM_ExtTRGPrescaler)); - assert_param(IS_TIM_EXT_POLARITY(TIM_ExtTRGPolarity)); - assert_param(IS_TIM_EXT_FILTER(ExtTRGFilter)); - tmpsmcr = TIMx->SMCR; - /* Reset the ETR Bits */ - tmpsmcr &= SMCR_ETR_Mask; - /* Set the Prescaler, the Filter value and the Polarity */ - tmpsmcr |= (uint16_t)(TIM_ExtTRGPrescaler | (uint16_t)(TIM_ExtTRGPolarity | (uint16_t)(ExtTRGFilter << (uint16_t)8))); - /* Write to TIMx SMCR */ - TIMx->SMCR = tmpsmcr; -} - -/** - * @brief Configures the TIMx Prescaler. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param Prescaler: specifies the Prescaler Register value - * @param TIM_PSCReloadMode: specifies the TIM Prescaler Reload mode - * This parameter can be one of the following values: - * @arg TIM_PSCReloadMode_Update: The Prescaler is loaded at the update event. - * @arg TIM_PSCReloadMode_Immediate: The Prescaler is loaded immediately. - * @retval None - */ -void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_PRESCALER_RELOAD(TIM_PSCReloadMode)); - /* Set the Prescaler value */ - TIMx->PSC = Prescaler; - /* Set or reset the UG Bit */ - TIMx->EGR = TIM_PSCReloadMode; -} - -/** - * @brief Specifies the TIMx Counter Mode to be used. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_CounterMode: specifies the Counter Mode to be used - * This parameter can be one of the following values: - * @arg TIM_CounterMode_Up: TIM Up Counting Mode - * @arg TIM_CounterMode_Down: TIM Down Counting Mode - * @arg TIM_CounterMode_CenterAligned1: TIM Center Aligned Mode1 - * @arg TIM_CounterMode_CenterAligned2: TIM Center Aligned Mode2 - * @arg TIM_CounterMode_CenterAligned3: TIM Center Aligned Mode3 - * @retval None - */ -void TIM_CounterModeConfig(TIM_TypeDef* TIMx, uint16_t TIM_CounterMode) -{ - uint16_t tmpcr1 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_COUNTER_MODE(TIM_CounterMode)); - tmpcr1 = TIMx->CR1; - /* Reset the CMS and DIR Bits */ - tmpcr1 &= (uint16_t)(~((uint16_t)(TIM_CR1_DIR | TIM_CR1_CMS))); - /* Set the Counter Mode */ - tmpcr1 |= TIM_CounterMode; - /* Write to TIMx CR1 register */ - TIMx->CR1 = tmpcr1; -} - -/** - * @brief Selects the Input Trigger source - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_InputTriggerSource: The Input Trigger source. - * This parameter can be one of the following values: - * @arg TIM_TS_ITR0: Internal Trigger 0 - * @arg TIM_TS_ITR1: Internal Trigger 1 - * @arg TIM_TS_ITR2: Internal Trigger 2 - * @arg TIM_TS_ITR3: Internal Trigger 3 - * @arg TIM_TS_TI1F_ED: TI1 Edge Detector - * @arg TIM_TS_TI1FP1: Filtered Timer Input 1 - * @arg TIM_TS_TI2FP2: Filtered Timer Input 2 - * @arg TIM_TS_ETRF: External Trigger input - * @retval None - */ -void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource) -{ - uint16_t tmpsmcr = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_TRIGGER_SELECTION(TIM_InputTriggerSource)); - /* Get the TIMx SMCR register value */ - tmpsmcr = TIMx->SMCR; - /* Reset the TS Bits */ - tmpsmcr &= (uint16_t)(~((uint16_t)TIM_SMCR_TS)); - /* Set the Input Trigger source */ - tmpsmcr |= TIM_InputTriggerSource; - /* Write to TIMx SMCR */ - TIMx->SMCR = tmpsmcr; -} - -/** - * @brief Configures the TIMx Encoder Interface. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_EncoderMode: specifies the TIMx Encoder Mode. - * This parameter can be one of the following values: - * @arg TIM_EncoderMode_TI1: Counter counts on TI1FP1 edge depending on TI2FP2 level. - * @arg TIM_EncoderMode_TI2: Counter counts on TI2FP2 edge depending on TI1FP1 level. - * @arg TIM_EncoderMode_TI12: Counter counts on both TI1FP1 and TI2FP2 edges depending - * on the level of the other input. - * @param TIM_IC1Polarity: specifies the IC1 Polarity - * This parameter can be one of the following values: - * @arg TIM_ICPolarity_Falling: IC Falling edge. - * @arg TIM_ICPolarity_Rising: IC Rising edge. - * @param TIM_IC2Polarity: specifies the IC2 Polarity - * This parameter can be one of the following values: - * @arg TIM_ICPolarity_Falling: IC Falling edge. - * @arg TIM_ICPolarity_Rising: IC Rising edge. - * @retval None - */ -void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode, - uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity) -{ - uint16_t tmpsmcr = 0; - uint16_t tmpccmr1 = 0; - uint16_t tmpccer = 0; - - /* Check the parameters */ - assert_param(IS_TIM_LIST5_PERIPH(TIMx)); - assert_param(IS_TIM_ENCODER_MODE(TIM_EncoderMode)); - assert_param(IS_TIM_IC_POLARITY(TIM_IC1Polarity)); - assert_param(IS_TIM_IC_POLARITY(TIM_IC2Polarity)); - - /* Get the TIMx SMCR register value */ - tmpsmcr = TIMx->SMCR; - - /* Get the TIMx CCMR1 register value */ - tmpccmr1 = TIMx->CCMR1; - - /* Get the TIMx CCER register value */ - tmpccer = TIMx->CCER; - - /* Set the encoder Mode */ - tmpsmcr &= (uint16_t)(~((uint16_t)TIM_SMCR_SMS)); - tmpsmcr |= TIM_EncoderMode; - - /* Select the Capture Compare 1 and the Capture Compare 2 as input */ - tmpccmr1 &= (uint16_t)(((uint16_t)~((uint16_t)TIM_CCMR1_CC1S)) & (uint16_t)(~((uint16_t)TIM_CCMR1_CC2S))); - tmpccmr1 |= TIM_CCMR1_CC1S_0 | TIM_CCMR1_CC2S_0; - - /* Set the TI1 and the TI2 Polarities */ - tmpccer &= (uint16_t)(((uint16_t)~((uint16_t)TIM_CCER_CC1P)) & ((uint16_t)~((uint16_t)TIM_CCER_CC2P))); - tmpccer |= (uint16_t)(TIM_IC1Polarity | (uint16_t)(TIM_IC2Polarity << (uint16_t)4)); - - /* Write to TIMx SMCR */ - TIMx->SMCR = tmpsmcr; - /* Write to TIMx CCMR1 */ - TIMx->CCMR1 = tmpccmr1; - /* Write to TIMx CCER */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Forces the TIMx output 1 waveform to active or inactive level. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_ForcedAction: specifies the forced Action to be set to the output waveform. - * This parameter can be one of the following values: - * @arg TIM_ForcedAction_Active: Force active level on OC1REF - * @arg TIM_ForcedAction_InActive: Force inactive level on OC1REF. - * @retval None - */ -void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction) -{ - uint16_t tmpccmr1 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction)); - tmpccmr1 = TIMx->CCMR1; - /* Reset the OC1M Bits */ - tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC1M); - /* Configure The Forced output Mode */ - tmpccmr1 |= TIM_ForcedAction; - /* Write to TIMx CCMR1 register */ - TIMx->CCMR1 = tmpccmr1; -} - -/** - * @brief Forces the TIMx output 2 waveform to active or inactive level. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_ForcedAction: specifies the forced Action to be set to the output waveform. - * This parameter can be one of the following values: - * @arg TIM_ForcedAction_Active: Force active level on OC2REF - * @arg TIM_ForcedAction_InActive: Force inactive level on OC2REF. - * @retval None - */ -void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction) -{ - uint16_t tmpccmr1 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction)); - tmpccmr1 = TIMx->CCMR1; - /* Reset the OC2M Bits */ - tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC2M); - /* Configure The Forced output Mode */ - tmpccmr1 |= (uint16_t)(TIM_ForcedAction << 8); - /* Write to TIMx CCMR1 register */ - TIMx->CCMR1 = tmpccmr1; -} - -/** - * @brief Forces the TIMx output 3 waveform to active or inactive level. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_ForcedAction: specifies the forced Action to be set to the output waveform. - * This parameter can be one of the following values: - * @arg TIM_ForcedAction_Active: Force active level on OC3REF - * @arg TIM_ForcedAction_InActive: Force inactive level on OC3REF. - * @retval None - */ -void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction) -{ - uint16_t tmpccmr2 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction)); - tmpccmr2 = TIMx->CCMR2; - /* Reset the OC1M Bits */ - tmpccmr2 &= (uint16_t)~((uint16_t)TIM_CCMR2_OC3M); - /* Configure The Forced output Mode */ - tmpccmr2 |= TIM_ForcedAction; - /* Write to TIMx CCMR2 register */ - TIMx->CCMR2 = tmpccmr2; -} - -/** - * @brief Forces the TIMx output 4 waveform to active or inactive level. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_ForcedAction: specifies the forced Action to be set to the output waveform. - * This parameter can be one of the following values: - * @arg TIM_ForcedAction_Active: Force active level on OC4REF - * @arg TIM_ForcedAction_InActive: Force inactive level on OC4REF. - * @retval None - */ -void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction) -{ - uint16_t tmpccmr2 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction)); - tmpccmr2 = TIMx->CCMR2; - /* Reset the OC2M Bits */ - tmpccmr2 &= (uint16_t)~((uint16_t)TIM_CCMR2_OC4M); - /* Configure The Forced output Mode */ - tmpccmr2 |= (uint16_t)(TIM_ForcedAction << 8); - /* Write to TIMx CCMR2 register */ - TIMx->CCMR2 = tmpccmr2; -} - -/** - * @brief Enables or disables TIMx peripheral Preload register on ARR. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param NewState: new state of the TIMx peripheral Preload register - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Set the ARR Preload Bit */ - TIMx->CR1 |= TIM_CR1_ARPE; - } - else - { - /* Reset the ARR Preload Bit */ - TIMx->CR1 &= (uint16_t)~((uint16_t)TIM_CR1_ARPE); - } -} - -/** - * @brief Selects the TIM peripheral Commutation event. - * @param TIMx: where x can be 1, 8, 15, 16 or 17 to select the TIMx peripheral - * @param NewState: new state of the Commutation event. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST2_PERIPH(TIMx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Set the COM Bit */ - TIMx->CR2 |= TIM_CR2_CCUS; - } - else - { - /* Reset the COM Bit */ - TIMx->CR2 &= (uint16_t)~((uint16_t)TIM_CR2_CCUS); - } -} - -/** - * @brief Selects the TIMx peripheral Capture Compare DMA source. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 15, 16 or 17 to select - * the TIM peripheral. - * @param NewState: new state of the Capture Compare DMA source - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST4_PERIPH(TIMx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Set the CCDS Bit */ - TIMx->CR2 |= TIM_CR2_CCDS; - } - else - { - /* Reset the CCDS Bit */ - TIMx->CR2 &= (uint16_t)~((uint16_t)TIM_CR2_CCDS); - } -} - -/** - * @brief Sets or Resets the TIM peripheral Capture Compare Preload Control bit. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8 or 15 - * to select the TIMx peripheral - * @param NewState: new state of the Capture Compare Preload Control bit - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST5_PERIPH(TIMx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Set the CCPC Bit */ - TIMx->CR2 |= TIM_CR2_CCPC; - } - else - { - /* Reset the CCPC Bit */ - TIMx->CR2 &= (uint16_t)~((uint16_t)TIM_CR2_CCPC); - } -} - -/** - * @brief Enables or disables the TIMx peripheral Preload register on CCR1. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_OCPreload: new state of the TIMx peripheral Preload register - * This parameter can be one of the following values: - * @arg TIM_OCPreload_Enable - * @arg TIM_OCPreload_Disable - * @retval None - */ -void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload) -{ - uint16_t tmpccmr1 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload)); - tmpccmr1 = TIMx->CCMR1; - /* Reset the OC1PE Bit */ - tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC1PE); - /* Enable or Disable the Output Compare Preload feature */ - tmpccmr1 |= TIM_OCPreload; - /* Write to TIMx CCMR1 register */ - TIMx->CCMR1 = tmpccmr1; -} - -/** - * @brief Enables or disables the TIMx peripheral Preload register on CCR2. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select - * the TIM peripheral. - * @param TIM_OCPreload: new state of the TIMx peripheral Preload register - * This parameter can be one of the following values: - * @arg TIM_OCPreload_Enable - * @arg TIM_OCPreload_Disable - * @retval None - */ -void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload) -{ - uint16_t tmpccmr1 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload)); - tmpccmr1 = TIMx->CCMR1; - /* Reset the OC2PE Bit */ - tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC2PE); - /* Enable or Disable the Output Compare Preload feature */ - tmpccmr1 |= (uint16_t)(TIM_OCPreload << 8); - /* Write to TIMx CCMR1 register */ - TIMx->CCMR1 = tmpccmr1; -} - -/** - * @brief Enables or disables the TIMx peripheral Preload register on CCR3. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCPreload: new state of the TIMx peripheral Preload register - * This parameter can be one of the following values: - * @arg TIM_OCPreload_Enable - * @arg TIM_OCPreload_Disable - * @retval None - */ -void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload) -{ - uint16_t tmpccmr2 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload)); - tmpccmr2 = TIMx->CCMR2; - /* Reset the OC3PE Bit */ - tmpccmr2 &= (uint16_t)~((uint16_t)TIM_CCMR2_OC3PE); - /* Enable or Disable the Output Compare Preload feature */ - tmpccmr2 |= TIM_OCPreload; - /* Write to TIMx CCMR2 register */ - TIMx->CCMR2 = tmpccmr2; -} - -/** - * @brief Enables or disables the TIMx peripheral Preload register on CCR4. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCPreload: new state of the TIMx peripheral Preload register - * This parameter can be one of the following values: - * @arg TIM_OCPreload_Enable - * @arg TIM_OCPreload_Disable - * @retval None - */ -void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload) -{ - uint16_t tmpccmr2 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload)); - tmpccmr2 = TIMx->CCMR2; - /* Reset the OC4PE Bit */ - tmpccmr2 &= (uint16_t)~((uint16_t)TIM_CCMR2_OC4PE); - /* Enable or Disable the Output Compare Preload feature */ - tmpccmr2 |= (uint16_t)(TIM_OCPreload << 8); - /* Write to TIMx CCMR2 register */ - TIMx->CCMR2 = tmpccmr2; -} - -/** - * @brief Configures the TIMx Output Compare 1 Fast feature. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_OCFast: new state of the Output Compare Fast Enable Bit. - * This parameter can be one of the following values: - * @arg TIM_OCFast_Enable: TIM output compare fast enable - * @arg TIM_OCFast_Disable: TIM output compare fast disable - * @retval None - */ -void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast) -{ - uint16_t tmpccmr1 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast)); - /* Get the TIMx CCMR1 register value */ - tmpccmr1 = TIMx->CCMR1; - /* Reset the OC1FE Bit */ - tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC1FE); - /* Enable or Disable the Output Compare Fast Bit */ - tmpccmr1 |= TIM_OCFast; - /* Write to TIMx CCMR1 */ - TIMx->CCMR1 = tmpccmr1; -} - -/** - * @brief Configures the TIMx Output Compare 2 Fast feature. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select - * the TIM peripheral. - * @param TIM_OCFast: new state of the Output Compare Fast Enable Bit. - * This parameter can be one of the following values: - * @arg TIM_OCFast_Enable: TIM output compare fast enable - * @arg TIM_OCFast_Disable: TIM output compare fast disable - * @retval None - */ -void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast) -{ - uint16_t tmpccmr1 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast)); - /* Get the TIMx CCMR1 register value */ - tmpccmr1 = TIMx->CCMR1; - /* Reset the OC2FE Bit */ - tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC2FE); - /* Enable or Disable the Output Compare Fast Bit */ - tmpccmr1 |= (uint16_t)(TIM_OCFast << 8); - /* Write to TIMx CCMR1 */ - TIMx->CCMR1 = tmpccmr1; -} - -/** - * @brief Configures the TIMx Output Compare 3 Fast feature. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCFast: new state of the Output Compare Fast Enable Bit. - * This parameter can be one of the following values: - * @arg TIM_OCFast_Enable: TIM output compare fast enable - * @arg TIM_OCFast_Disable: TIM output compare fast disable - * @retval None - */ -void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast) -{ - uint16_t tmpccmr2 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast)); - /* Get the TIMx CCMR2 register value */ - tmpccmr2 = TIMx->CCMR2; - /* Reset the OC3FE Bit */ - tmpccmr2 &= (uint16_t)~((uint16_t)TIM_CCMR2_OC3FE); - /* Enable or Disable the Output Compare Fast Bit */ - tmpccmr2 |= TIM_OCFast; - /* Write to TIMx CCMR2 */ - TIMx->CCMR2 = tmpccmr2; -} - -/** - * @brief Configures the TIMx Output Compare 4 Fast feature. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCFast: new state of the Output Compare Fast Enable Bit. - * This parameter can be one of the following values: - * @arg TIM_OCFast_Enable: TIM output compare fast enable - * @arg TIM_OCFast_Disable: TIM output compare fast disable - * @retval None - */ -void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast) -{ - uint16_t tmpccmr2 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast)); - /* Get the TIMx CCMR2 register value */ - tmpccmr2 = TIMx->CCMR2; - /* Reset the OC4FE Bit */ - tmpccmr2 &= (uint16_t)~((uint16_t)TIM_CCMR2_OC4FE); - /* Enable or Disable the Output Compare Fast Bit */ - tmpccmr2 |= (uint16_t)(TIM_OCFast << 8); - /* Write to TIMx CCMR2 */ - TIMx->CCMR2 = tmpccmr2; -} - -/** - * @brief Clears or safeguards the OCREF1 signal on an external event - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCClear: new state of the Output Compare Clear Enable Bit. - * This parameter can be one of the following values: - * @arg TIM_OCClear_Enable: TIM Output clear enable - * @arg TIM_OCClear_Disable: TIM Output clear disable - * @retval None - */ -void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear) -{ - uint16_t tmpccmr1 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear)); - - tmpccmr1 = TIMx->CCMR1; - - /* Reset the OC1CE Bit */ - tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC1CE); - /* Enable or Disable the Output Compare Clear Bit */ - tmpccmr1 |= TIM_OCClear; - /* Write to TIMx CCMR1 register */ - TIMx->CCMR1 = tmpccmr1; -} - -/** - * @brief Clears or safeguards the OCREF2 signal on an external event - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCClear: new state of the Output Compare Clear Enable Bit. - * This parameter can be one of the following values: - * @arg TIM_OCClear_Enable: TIM Output clear enable - * @arg TIM_OCClear_Disable: TIM Output clear disable - * @retval None - */ -void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear) -{ - uint16_t tmpccmr1 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear)); - tmpccmr1 = TIMx->CCMR1; - /* Reset the OC2CE Bit */ - tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC2CE); - /* Enable or Disable the Output Compare Clear Bit */ - tmpccmr1 |= (uint16_t)(TIM_OCClear << 8); - /* Write to TIMx CCMR1 register */ - TIMx->CCMR1 = tmpccmr1; -} - -/** - * @brief Clears or safeguards the OCREF3 signal on an external event - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCClear: new state of the Output Compare Clear Enable Bit. - * This parameter can be one of the following values: - * @arg TIM_OCClear_Enable: TIM Output clear enable - * @arg TIM_OCClear_Disable: TIM Output clear disable - * @retval None - */ -void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear) -{ - uint16_t tmpccmr2 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear)); - tmpccmr2 = TIMx->CCMR2; - /* Reset the OC3CE Bit */ - tmpccmr2 &= (uint16_t)~((uint16_t)TIM_CCMR2_OC3CE); - /* Enable or Disable the Output Compare Clear Bit */ - tmpccmr2 |= TIM_OCClear; - /* Write to TIMx CCMR2 register */ - TIMx->CCMR2 = tmpccmr2; -} - -/** - * @brief Clears or safeguards the OCREF4 signal on an external event - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCClear: new state of the Output Compare Clear Enable Bit. - * This parameter can be one of the following values: - * @arg TIM_OCClear_Enable: TIM Output clear enable - * @arg TIM_OCClear_Disable: TIM Output clear disable - * @retval None - */ -void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear) -{ - uint16_t tmpccmr2 = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear)); - tmpccmr2 = TIMx->CCMR2; - /* Reset the OC4CE Bit */ - tmpccmr2 &= (uint16_t)~((uint16_t)TIM_CCMR2_OC4CE); - /* Enable or Disable the Output Compare Clear Bit */ - tmpccmr2 |= (uint16_t)(TIM_OCClear << 8); - /* Write to TIMx CCMR2 register */ - TIMx->CCMR2 = tmpccmr2; -} - -/** - * @brief Configures the TIMx channel 1 polarity. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_OCPolarity: specifies the OC1 Polarity - * This parameter can be one of the following values: - * @arg TIM_OCPolarity_High: Output Compare active high - * @arg TIM_OCPolarity_Low: Output Compare active low - * @retval None - */ -void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity) -{ - uint16_t tmpccer = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity)); - tmpccer = TIMx->CCER; - /* Set or Reset the CC1P Bit */ - tmpccer &= (uint16_t)~((uint16_t)TIM_CCER_CC1P); - tmpccer |= TIM_OCPolarity; - /* Write to TIMx CCER register */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Configures the TIMx Channel 1N polarity. - * @param TIMx: where x can be 1, 8, 15, 16 or 17 to select the TIM peripheral. - * @param TIM_OCNPolarity: specifies the OC1N Polarity - * This parameter can be one of the following values: - * @arg TIM_OCNPolarity_High: Output Compare active high - * @arg TIM_OCNPolarity_Low: Output Compare active low - * @retval None - */ -void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity) -{ - uint16_t tmpccer = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST2_PERIPH(TIMx)); - assert_param(IS_TIM_OCN_POLARITY(TIM_OCNPolarity)); - - tmpccer = TIMx->CCER; - /* Set or Reset the CC1NP Bit */ - tmpccer &= (uint16_t)~((uint16_t)TIM_CCER_CC1NP); - tmpccer |= TIM_OCNPolarity; - /* Write to TIMx CCER register */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Configures the TIMx channel 2 polarity. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_OCPolarity: specifies the OC2 Polarity - * This parameter can be one of the following values: - * @arg TIM_OCPolarity_High: Output Compare active high - * @arg TIM_OCPolarity_Low: Output Compare active low - * @retval None - */ -void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity) -{ - uint16_t tmpccer = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity)); - tmpccer = TIMx->CCER; - /* Set or Reset the CC2P Bit */ - tmpccer &= (uint16_t)~((uint16_t)TIM_CCER_CC2P); - tmpccer |= (uint16_t)(TIM_OCPolarity << 4); - /* Write to TIMx CCER register */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Configures the TIMx Channel 2N polarity. - * @param TIMx: where x can be 1 or 8 to select the TIM peripheral. - * @param TIM_OCNPolarity: specifies the OC2N Polarity - * This parameter can be one of the following values: - * @arg TIM_OCNPolarity_High: Output Compare active high - * @arg TIM_OCNPolarity_Low: Output Compare active low - * @retval None - */ -void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity) -{ - uint16_t tmpccer = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST1_PERIPH(TIMx)); - assert_param(IS_TIM_OCN_POLARITY(TIM_OCNPolarity)); - - tmpccer = TIMx->CCER; - /* Set or Reset the CC2NP Bit */ - tmpccer &= (uint16_t)~((uint16_t)TIM_CCER_CC2NP); - tmpccer |= (uint16_t)(TIM_OCNPolarity << 4); - /* Write to TIMx CCER register */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Configures the TIMx channel 3 polarity. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCPolarity: specifies the OC3 Polarity - * This parameter can be one of the following values: - * @arg TIM_OCPolarity_High: Output Compare active high - * @arg TIM_OCPolarity_Low: Output Compare active low - * @retval None - */ -void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity) -{ - uint16_t tmpccer = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity)); - tmpccer = TIMx->CCER; - /* Set or Reset the CC3P Bit */ - tmpccer &= (uint16_t)~((uint16_t)TIM_CCER_CC3P); - tmpccer |= (uint16_t)(TIM_OCPolarity << 8); - /* Write to TIMx CCER register */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Configures the TIMx Channel 3N polarity. - * @param TIMx: where x can be 1 or 8 to select the TIM peripheral. - * @param TIM_OCNPolarity: specifies the OC3N Polarity - * This parameter can be one of the following values: - * @arg TIM_OCNPolarity_High: Output Compare active high - * @arg TIM_OCNPolarity_Low: Output Compare active low - * @retval None - */ -void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity) -{ - uint16_t tmpccer = 0; - - /* Check the parameters */ - assert_param(IS_TIM_LIST1_PERIPH(TIMx)); - assert_param(IS_TIM_OCN_POLARITY(TIM_OCNPolarity)); - - tmpccer = TIMx->CCER; - /* Set or Reset the CC3NP Bit */ - tmpccer &= (uint16_t)~((uint16_t)TIM_CCER_CC3NP); - tmpccer |= (uint16_t)(TIM_OCNPolarity << 8); - /* Write to TIMx CCER register */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Configures the TIMx channel 4 polarity. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_OCPolarity: specifies the OC4 Polarity - * This parameter can be one of the following values: - * @arg TIM_OCPolarity_High: Output Compare active high - * @arg TIM_OCPolarity_Low: Output Compare active low - * @retval None - */ -void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity) -{ - uint16_t tmpccer = 0; - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity)); - tmpccer = TIMx->CCER; - /* Set or Reset the CC4P Bit */ - tmpccer &= (uint16_t)~((uint16_t)TIM_CCER_CC4P); - tmpccer |= (uint16_t)(TIM_OCPolarity << 12); - /* Write to TIMx CCER register */ - TIMx->CCER = tmpccer; -} - -/** - * @brief Enables or disables the TIM Capture Compare Channel x. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_Channel: specifies the TIM Channel - * This parameter can be one of the following values: - * @arg TIM_Channel_1: TIM Channel 1 - * @arg TIM_Channel_2: TIM Channel 2 - * @arg TIM_Channel_3: TIM Channel 3 - * @arg TIM_Channel_4: TIM Channel 4 - * @param TIM_CCx: specifies the TIM Channel CCxE bit new state. - * This parameter can be: TIM_CCx_Enable or TIM_CCx_Disable. - * @retval None - */ -void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx) -{ - uint16_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - assert_param(IS_TIM_CHANNEL(TIM_Channel)); - assert_param(IS_TIM_CCX(TIM_CCx)); - - tmp = CCER_CCE_Set << TIM_Channel; - - /* Reset the CCxE Bit */ - TIMx->CCER &= (uint16_t)~ tmp; - - /* Set or reset the CCxE Bit */ - TIMx->CCER |= (uint16_t)(TIM_CCx << TIM_Channel); -} - -/** - * @brief Enables or disables the TIM Capture Compare Channel xN. - * @param TIMx: where x can be 1, 8, 15, 16 or 17 to select the TIM peripheral. - * @param TIM_Channel: specifies the TIM Channel - * This parameter can be one of the following values: - * @arg TIM_Channel_1: TIM Channel 1 - * @arg TIM_Channel_2: TIM Channel 2 - * @arg TIM_Channel_3: TIM Channel 3 - * @param TIM_CCxN: specifies the TIM Channel CCxNE bit new state. - * This parameter can be: TIM_CCxN_Enable or TIM_CCxN_Disable. - * @retval None - */ -void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN) -{ - uint16_t tmp = 0; - - /* Check the parameters */ - assert_param(IS_TIM_LIST2_PERIPH(TIMx)); - assert_param(IS_TIM_COMPLEMENTARY_CHANNEL(TIM_Channel)); - assert_param(IS_TIM_CCXN(TIM_CCxN)); - - tmp = CCER_CCNE_Set << TIM_Channel; - - /* Reset the CCxNE Bit */ - TIMx->CCER &= (uint16_t) ~tmp; - - /* Set or reset the CCxNE Bit */ - TIMx->CCER |= (uint16_t)(TIM_CCxN << TIM_Channel); -} - -/** - * @brief Selects the TIM Output Compare Mode. - * @note This function disables the selected channel before changing the Output - * Compare Mode. - * User has to enable this channel using TIM_CCxCmd and TIM_CCxNCmd functions. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_Channel: specifies the TIM Channel - * This parameter can be one of the following values: - * @arg TIM_Channel_1: TIM Channel 1 - * @arg TIM_Channel_2: TIM Channel 2 - * @arg TIM_Channel_3: TIM Channel 3 - * @arg TIM_Channel_4: TIM Channel 4 - * @param TIM_OCMode: specifies the TIM Output Compare Mode. - * This parameter can be one of the following values: - * @arg TIM_OCMode_Timing - * @arg TIM_OCMode_Active - * @arg TIM_OCMode_Toggle - * @arg TIM_OCMode_PWM1 - * @arg TIM_OCMode_PWM2 - * @arg TIM_ForcedAction_Active - * @arg TIM_ForcedAction_InActive - * @retval None - */ -void TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode) -{ - uint32_t tmp = 0; - uint16_t tmp1 = 0; - - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - assert_param(IS_TIM_CHANNEL(TIM_Channel)); - assert_param(IS_TIM_OCM(TIM_OCMode)); - - tmp = (uint32_t) TIMx; - tmp += CCMR_Offset; - - tmp1 = CCER_CCE_Set << (uint16_t)TIM_Channel; - - /* Disable the Channel: Reset the CCxE Bit */ - TIMx->CCER &= (uint16_t) ~tmp1; - - if((TIM_Channel == TIM_Channel_1) ||(TIM_Channel == TIM_Channel_3)) - { - tmp += (TIM_Channel>>1); - - /* Reset the OCxM bits in the CCMRx register */ - *(__IO uint32_t *) tmp &= (uint32_t)~((uint32_t)TIM_CCMR1_OC1M); - - /* Configure the OCxM bits in the CCMRx register */ - *(__IO uint32_t *) tmp |= TIM_OCMode; - } - else - { - tmp += (uint16_t)(TIM_Channel - (uint16_t)4)>> (uint16_t)1; - - /* Reset the OCxM bits in the CCMRx register */ - *(__IO uint32_t *) tmp &= (uint32_t)~((uint32_t)TIM_CCMR1_OC2M); - - /* Configure the OCxM bits in the CCMRx register */ - *(__IO uint32_t *) tmp |= (uint16_t)(TIM_OCMode << 8); - } -} - -/** - * @brief Enables or Disables the TIMx Update event. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param NewState: new state of the TIMx UDIS bit - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Set the Update Disable Bit */ - TIMx->CR1 |= TIM_CR1_UDIS; - } - else - { - /* Reset the Update Disable Bit */ - TIMx->CR1 &= (uint16_t)~((uint16_t)TIM_CR1_UDIS); - } -} - -/** - * @brief Configures the TIMx Update Request Interrupt source. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param TIM_UpdateSource: specifies the Update source. - * This parameter can be one of the following values: - * @arg TIM_UpdateSource_Regular: Source of update is the counter overflow/underflow - or the setting of UG bit, or an update generation - through the slave mode controller. - * @arg TIM_UpdateSource_Global: Source of update is counter overflow/underflow. - * @retval None - */ -void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, uint16_t TIM_UpdateSource) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_UPDATE_SOURCE(TIM_UpdateSource)); - if (TIM_UpdateSource != TIM_UpdateSource_Global) - { - /* Set the URS Bit */ - TIMx->CR1 |= TIM_CR1_URS; - } - else - { - /* Reset the URS Bit */ - TIMx->CR1 &= (uint16_t)~((uint16_t)TIM_CR1_URS); - } -} - -/** - * @brief Enables or disables the TIMx's Hall sensor interface. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param NewState: new state of the TIMx Hall sensor interface. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Set the TI1S Bit */ - TIMx->CR2 |= TIM_CR2_TI1S; - } - else - { - /* Reset the TI1S Bit */ - TIMx->CR2 &= (uint16_t)~((uint16_t)TIM_CR2_TI1S); - } -} - -/** - * @brief Selects the TIMx's One Pulse Mode. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param TIM_OPMode: specifies the OPM Mode to be used. - * This parameter can be one of the following values: - * @arg TIM_OPMode_Single - * @arg TIM_OPMode_Repetitive - * @retval None - */ -void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, uint16_t TIM_OPMode) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_OPM_MODE(TIM_OPMode)); - /* Reset the OPM Bit */ - TIMx->CR1 &= (uint16_t)~((uint16_t)TIM_CR1_OPM); - /* Configure the OPM Mode */ - TIMx->CR1 |= TIM_OPMode; -} - -/** - * @brief Selects the TIMx Trigger Output Mode. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 6, 7, 8, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_TRGOSource: specifies the Trigger Output source. - * This paramter can be one of the following values: - * - * - For all TIMx - * @arg TIM_TRGOSource_Reset: The UG bit in the TIM_EGR register is used as the trigger output (TRGO). - * @arg TIM_TRGOSource_Enable: The Counter Enable CEN is used as the trigger output (TRGO). - * @arg TIM_TRGOSource_Update: The update event is selected as the trigger output (TRGO). - * - * - For all TIMx except TIM6 and TIM7 - * @arg TIM_TRGOSource_OC1: The trigger output sends a positive pulse when the CC1IF flag - * is to be set, as soon as a capture or compare match occurs (TRGO). - * @arg TIM_TRGOSource_OC1Ref: OC1REF signal is used as the trigger output (TRGO). - * @arg TIM_TRGOSource_OC2Ref: OC2REF signal is used as the trigger output (TRGO). - * @arg TIM_TRGOSource_OC3Ref: OC3REF signal is used as the trigger output (TRGO). - * @arg TIM_TRGOSource_OC4Ref: OC4REF signal is used as the trigger output (TRGO). - * - * @retval None - */ -void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST7_PERIPH(TIMx)); - assert_param(IS_TIM_TRGO_SOURCE(TIM_TRGOSource)); - /* Reset the MMS Bits */ - TIMx->CR2 &= (uint16_t)~((uint16_t)TIM_CR2_MMS); - /* Select the TRGO source */ - TIMx->CR2 |= TIM_TRGOSource; -} - -/** - * @brief Selects the TIMx Slave Mode. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_SlaveMode: specifies the Timer Slave Mode. - * This parameter can be one of the following values: - * @arg TIM_SlaveMode_Reset: Rising edge of the selected trigger signal (TRGI) re-initializes - * the counter and triggers an update of the registers. - * @arg TIM_SlaveMode_Gated: The counter clock is enabled when the trigger signal (TRGI) is high. - * @arg TIM_SlaveMode_Trigger: The counter starts at a rising edge of the trigger TRGI. - * @arg TIM_SlaveMode_External1: Rising edges of the selected trigger (TRGI) clock the counter. - * @retval None - */ -void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_SLAVE_MODE(TIM_SlaveMode)); - /* Reset the SMS Bits */ - TIMx->SMCR &= (uint16_t)~((uint16_t)TIM_SMCR_SMS); - /* Select the Slave Mode */ - TIMx->SMCR |= TIM_SlaveMode; -} - -/** - * @brief Sets or Resets the TIMx Master/Slave Mode. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_MasterSlaveMode: specifies the Timer Master Slave Mode. - * This parameter can be one of the following values: - * @arg TIM_MasterSlaveMode_Enable: synchronization between the current timer - * and its slaves (through TRGO). - * @arg TIM_MasterSlaveMode_Disable: No action - * @retval None - */ -void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_MasterSlaveMode) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_MSM_STATE(TIM_MasterSlaveMode)); - /* Reset the MSM Bit */ - TIMx->SMCR &= (uint16_t)~((uint16_t)TIM_SMCR_MSM); - - /* Set or Reset the MSM Bit */ - TIMx->SMCR |= TIM_MasterSlaveMode; -} - -/** - * @brief Sets the TIMx Counter Register value - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param Counter: specifies the Counter register new value. - * @retval None - */ -void TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - /* Set the Counter Register value */ - TIMx->CNT = Counter; -} - -/** - * @brief Sets the TIMx Autoreload Register value - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param Autoreload: specifies the Autoreload register new value. - * @retval None - */ -void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint16_t Autoreload) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - /* Set the Autoreload Register value */ - TIMx->ARR = Autoreload; -} - -/** - * @brief Sets the TIMx Capture Compare1 Register value - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param Compare1: specifies the Capture Compare1 register new value. - * @retval None - */ -void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - /* Set the Capture Compare1 Register value */ - TIMx->CCR1 = Compare1; -} - -/** - * @brief Sets the TIMx Capture Compare2 Register value - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @param Compare2: specifies the Capture Compare2 register new value. - * @retval None - */ -void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - /* Set the Capture Compare2 Register value */ - TIMx->CCR2 = Compare2; -} - -/** - * @brief Sets the TIMx Capture Compare3 Register value - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param Compare3: specifies the Capture Compare3 register new value. - * @retval None - */ -void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - /* Set the Capture Compare3 Register value */ - TIMx->CCR3 = Compare3; -} - -/** - * @brief Sets the TIMx Capture Compare4 Register value - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param Compare4: specifies the Capture Compare4 register new value. - * @retval None - */ -void TIM_SetCompare4(TIM_TypeDef* TIMx, uint16_t Compare4) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - /* Set the Capture Compare4 Register value */ - TIMx->CCR4 = Compare4; -} - -/** - * @brief Sets the TIMx Input Capture 1 prescaler. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_ICPSC: specifies the Input Capture1 prescaler new value. - * This parameter can be one of the following values: - * @arg TIM_ICPSC_DIV1: no prescaler - * @arg TIM_ICPSC_DIV2: capture is done once every 2 events - * @arg TIM_ICPSC_DIV4: capture is done once every 4 events - * @arg TIM_ICPSC_DIV8: capture is done once every 8 events - * @retval None - */ -void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC)); - /* Reset the IC1PSC Bits */ - TIMx->CCMR1 &= (uint16_t)~((uint16_t)TIM_CCMR1_IC1PSC); - /* Set the IC1PSC value */ - TIMx->CCMR1 |= TIM_ICPSC; -} - -/** - * @brief Sets the TIMx Input Capture 2 prescaler. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_ICPSC: specifies the Input Capture2 prescaler new value. - * This parameter can be one of the following values: - * @arg TIM_ICPSC_DIV1: no prescaler - * @arg TIM_ICPSC_DIV2: capture is done once every 2 events - * @arg TIM_ICPSC_DIV4: capture is done once every 4 events - * @arg TIM_ICPSC_DIV8: capture is done once every 8 events - * @retval None - */ -void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC)); - /* Reset the IC2PSC Bits */ - TIMx->CCMR1 &= (uint16_t)~((uint16_t)TIM_CCMR1_IC2PSC); - /* Set the IC2PSC value */ - TIMx->CCMR1 |= (uint16_t)(TIM_ICPSC << 8); -} - -/** - * @brief Sets the TIMx Input Capture 3 prescaler. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_ICPSC: specifies the Input Capture3 prescaler new value. - * This parameter can be one of the following values: - * @arg TIM_ICPSC_DIV1: no prescaler - * @arg TIM_ICPSC_DIV2: capture is done once every 2 events - * @arg TIM_ICPSC_DIV4: capture is done once every 4 events - * @arg TIM_ICPSC_DIV8: capture is done once every 8 events - * @retval None - */ -void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC)); - /* Reset the IC3PSC Bits */ - TIMx->CCMR2 &= (uint16_t)~((uint16_t)TIM_CCMR2_IC3PSC); - /* Set the IC3PSC value */ - TIMx->CCMR2 |= TIM_ICPSC; -} - -/** - * @brief Sets the TIMx Input Capture 4 prescaler. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_ICPSC: specifies the Input Capture4 prescaler new value. - * This parameter can be one of the following values: - * @arg TIM_ICPSC_DIV1: no prescaler - * @arg TIM_ICPSC_DIV2: capture is done once every 2 events - * @arg TIM_ICPSC_DIV4: capture is done once every 4 events - * @arg TIM_ICPSC_DIV8: capture is done once every 8 events - * @retval None - */ -void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC)); - /* Reset the IC4PSC Bits */ - TIMx->CCMR2 &= (uint16_t)~((uint16_t)TIM_CCMR2_IC4PSC); - /* Set the IC4PSC value */ - TIMx->CCMR2 |= (uint16_t)(TIM_ICPSC << 8); -} - -/** - * @brief Sets the TIMx Clock Division value. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select - * the TIM peripheral. - * @param TIM_CKD: specifies the clock division value. - * This parameter can be one of the following value: - * @arg TIM_CKD_DIV1: TDTS = Tck_tim - * @arg TIM_CKD_DIV2: TDTS = 2*Tck_tim - * @arg TIM_CKD_DIV4: TDTS = 4*Tck_tim - * @retval None - */ -void TIM_SetClockDivision(TIM_TypeDef* TIMx, uint16_t TIM_CKD) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - assert_param(IS_TIM_CKD_DIV(TIM_CKD)); - /* Reset the CKD Bits */ - TIMx->CR1 &= (uint16_t)~((uint16_t)TIM_CR1_CKD); - /* Set the CKD value */ - TIMx->CR1 |= TIM_CKD; -} - -/** - * @brief Gets the TIMx Input Capture 1 value. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @retval Capture Compare 1 Register value. - */ -uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST8_PERIPH(TIMx)); - /* Get the Capture 1 Register value */ - return TIMx->CCR1; -} - -/** - * @brief Gets the TIMx Input Capture 2 value. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @retval Capture Compare 2 Register value. - */ -uint16_t TIM_GetCapture2(TIM_TypeDef* TIMx) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST6_PERIPH(TIMx)); - /* Get the Capture 2 Register value */ - return TIMx->CCR2; -} - -/** - * @brief Gets the TIMx Input Capture 3 value. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @retval Capture Compare 3 Register value. - */ -uint16_t TIM_GetCapture3(TIM_TypeDef* TIMx) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - /* Get the Capture 3 Register value */ - return TIMx->CCR3; -} - -/** - * @brief Gets the TIMx Input Capture 4 value. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @retval Capture Compare 4 Register value. - */ -uint16_t TIM_GetCapture4(TIM_TypeDef* TIMx) -{ - /* Check the parameters */ - assert_param(IS_TIM_LIST3_PERIPH(TIMx)); - /* Get the Capture 4 Register value */ - return TIMx->CCR4; -} - -/** - * @brief Gets the TIMx Counter value. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @retval Counter Register value. - */ -uint16_t TIM_GetCounter(TIM_TypeDef* TIMx) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - /* Get the Counter Register value */ - return TIMx->CNT; -} - -/** - * @brief Gets the TIMx Prescaler value. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @retval Prescaler Register value. - */ -uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - /* Get the Prescaler Register value */ - return TIMx->PSC; -} - -/** - * @brief Checks whether the specified TIM flag is set or not. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param TIM_FLAG: specifies the flag to check. - * This parameter can be one of the following values: - * @arg TIM_FLAG_Update: TIM update Flag - * @arg TIM_FLAG_CC1: TIM Capture Compare 1 Flag - * @arg TIM_FLAG_CC2: TIM Capture Compare 2 Flag - * @arg TIM_FLAG_CC3: TIM Capture Compare 3 Flag - * @arg TIM_FLAG_CC4: TIM Capture Compare 4 Flag - * @arg TIM_FLAG_COM: TIM Commutation Flag - * @arg TIM_FLAG_Trigger: TIM Trigger Flag - * @arg TIM_FLAG_Break: TIM Break Flag - * @arg TIM_FLAG_CC1OF: TIM Capture Compare 1 overcapture Flag - * @arg TIM_FLAG_CC2OF: TIM Capture Compare 2 overcapture Flag - * @arg TIM_FLAG_CC3OF: TIM Capture Compare 3 overcapture Flag - * @arg TIM_FLAG_CC4OF: TIM Capture Compare 4 overcapture Flag - * @note - * - TIM6 and TIM7 can have only one update flag. - * - TIM9, TIM12 and TIM15 can have only TIM_FLAG_Update, TIM_FLAG_CC1, - * TIM_FLAG_CC2 or TIM_FLAG_Trigger. - * - TIM10, TIM11, TIM13, TIM14, TIM16 and TIM17 can have TIM_FLAG_Update or TIM_FLAG_CC1. - * - TIM_FLAG_Break is used only with TIM1, TIM8 and TIM15. - * - TIM_FLAG_COM is used only with TIM1, TIM8, TIM15, TIM16 and TIM17. - * @retval The new state of TIM_FLAG (SET or RESET). - */ -FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG) -{ - ITStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_GET_FLAG(TIM_FLAG)); - - if ((TIMx->SR & TIM_FLAG) != (uint16_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the TIMx's pending flags. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param TIM_FLAG: specifies the flag bit to clear. - * This parameter can be any combination of the following values: - * @arg TIM_FLAG_Update: TIM update Flag - * @arg TIM_FLAG_CC1: TIM Capture Compare 1 Flag - * @arg TIM_FLAG_CC2: TIM Capture Compare 2 Flag - * @arg TIM_FLAG_CC3: TIM Capture Compare 3 Flag - * @arg TIM_FLAG_CC4: TIM Capture Compare 4 Flag - * @arg TIM_FLAG_COM: TIM Commutation Flag - * @arg TIM_FLAG_Trigger: TIM Trigger Flag - * @arg TIM_FLAG_Break: TIM Break Flag - * @arg TIM_FLAG_CC1OF: TIM Capture Compare 1 overcapture Flag - * @arg TIM_FLAG_CC2OF: TIM Capture Compare 2 overcapture Flag - * @arg TIM_FLAG_CC3OF: TIM Capture Compare 3 overcapture Flag - * @arg TIM_FLAG_CC4OF: TIM Capture Compare 4 overcapture Flag - * @note - * - TIM6 and TIM7 can have only one update flag. - * - TIM9, TIM12 and TIM15 can have only TIM_FLAG_Update, TIM_FLAG_CC1, - * TIM_FLAG_CC2 or TIM_FLAG_Trigger. - * - TIM10, TIM11, TIM13, TIM14, TIM16 and TIM17 can have TIM_FLAG_Update or TIM_FLAG_CC1. - * - TIM_FLAG_Break is used only with TIM1, TIM8 and TIM15. - * - TIM_FLAG_COM is used only with TIM1, TIM8, TIM15, TIM16 and TIM17. - * @retval None - */ -void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_CLEAR_FLAG(TIM_FLAG)); - - /* Clear the flags */ - TIMx->SR = (uint16_t)~TIM_FLAG; -} - -/** - * @brief Checks whether the TIM interrupt has occurred or not. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param TIM_IT: specifies the TIM interrupt source to check. - * This parameter can be one of the following values: - * @arg TIM_IT_Update: TIM update Interrupt source - * @arg TIM_IT_CC1: TIM Capture Compare 1 Interrupt source - * @arg TIM_IT_CC2: TIM Capture Compare 2 Interrupt source - * @arg TIM_IT_CC3: TIM Capture Compare 3 Interrupt source - * @arg TIM_IT_CC4: TIM Capture Compare 4 Interrupt source - * @arg TIM_IT_COM: TIM Commutation Interrupt source - * @arg TIM_IT_Trigger: TIM Trigger Interrupt source - * @arg TIM_IT_Break: TIM Break Interrupt source - * @note - * - TIM6 and TIM7 can generate only an update interrupt. - * - TIM9, TIM12 and TIM15 can have only TIM_IT_Update, TIM_IT_CC1, - * TIM_IT_CC2 or TIM_IT_Trigger. - * - TIM10, TIM11, TIM13, TIM14, TIM16 and TIM17 can have TIM_IT_Update or TIM_IT_CC1. - * - TIM_IT_Break is used only with TIM1, TIM8 and TIM15. - * - TIM_IT_COM is used only with TIM1, TIM8, TIM15, TIM16 and TIM17. - * @retval The new state of the TIM_IT(SET or RESET). - */ -ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT) -{ - ITStatus bitstatus = RESET; - uint16_t itstatus = 0x0, itenable = 0x0; - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_GET_IT(TIM_IT)); - - itstatus = TIMx->SR & TIM_IT; - - itenable = TIMx->DIER & TIM_IT; - if ((itstatus != (uint16_t)RESET) && (itenable != (uint16_t)RESET)) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the TIMx's interrupt pending bits. - * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. - * @param TIM_IT: specifies the pending bit to clear. - * This parameter can be any combination of the following values: - * @arg TIM_IT_Update: TIM1 update Interrupt source - * @arg TIM_IT_CC1: TIM Capture Compare 1 Interrupt source - * @arg TIM_IT_CC2: TIM Capture Compare 2 Interrupt source - * @arg TIM_IT_CC3: TIM Capture Compare 3 Interrupt source - * @arg TIM_IT_CC4: TIM Capture Compare 4 Interrupt source - * @arg TIM_IT_COM: TIM Commutation Interrupt source - * @arg TIM_IT_Trigger: TIM Trigger Interrupt source - * @arg TIM_IT_Break: TIM Break Interrupt source - * @note - * - TIM6 and TIM7 can generate only an update interrupt. - * - TIM9, TIM12 and TIM15 can have only TIM_IT_Update, TIM_IT_CC1, - * TIM_IT_CC2 or TIM_IT_Trigger. - * - TIM10, TIM11, TIM13, TIM14, TIM16 and TIM17 can have TIM_IT_Update or TIM_IT_CC1. - * - TIM_IT_Break is used only with TIM1, TIM8 and TIM15. - * - TIM_IT_COM is used only with TIM1, TIM8, TIM15, TIM16 and TIM17. - * @retval None - */ -void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT) -{ - /* Check the parameters */ - assert_param(IS_TIM_ALL_PERIPH(TIMx)); - assert_param(IS_TIM_IT(TIM_IT)); - /* Clear the IT pending Bit */ - TIMx->SR = (uint16_t)~TIM_IT; -} - -/** - * @brief Configure the TI1 as Input. - * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. - * @param TIM_ICPolarity : The Input Polarity. - * This parameter can be one of the following values: - * @arg TIM_ICPolarity_Rising - * @arg TIM_ICPolarity_Falling - * @param TIM_ICSelection: specifies the input to be used. - * This parameter can be one of the following values: - * @arg TIM_ICSelection_DirectTI: TIM Input 1 is selected to be connected to IC1. - * @arg TIM_ICSelection_IndirectTI: TIM Input 1 is selected to be connected to IC2. - * @arg TIM_ICSelection_TRC: TIM Input 1 is selected to be connected to TRC. - * @param TIM_ICFilter: Specifies the Input Capture Filter. - * This parameter must be a value between 0x00 and 0x0F. - * @retval None - */ -static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, - uint16_t TIM_ICFilter) -{ - uint16_t tmpccmr1 = 0, tmpccer = 0; - /* Disable the Channel 1: Reset the CC1E Bit */ - TIMx->CCER &= (uint16_t)~((uint16_t)TIM_CCER_CC1E); - tmpccmr1 = TIMx->CCMR1; - tmpccer = TIMx->CCER; - /* Select the Input and set the filter */ - tmpccmr1 &= (uint16_t)(((uint16_t)~((uint16_t)TIM_CCMR1_CC1S)) & ((uint16_t)~((uint16_t)TIM_CCMR1_IC1F))); - tmpccmr1 |= (uint16_t)(TIM_ICSelection | (uint16_t)(TIM_ICFilter << (uint16_t)4)); - - if((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM2) || (TIMx == TIM3) || - (TIMx == TIM4) ||(TIMx == TIM5)) - { - /* Select the Polarity and set the CC1E Bit */ - tmpccer &= (uint16_t)~((uint16_t)(TIM_CCER_CC1P)); - tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CCER_CC1E); - } - else - { - /* Select the Polarity and set the CC1E Bit */ - tmpccer &= (uint16_t)~((uint16_t)(TIM_CCER_CC1P | TIM_CCER_CC1NP)); - tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CCER_CC1E); - } - - /* Write to TIMx CCMR1 and CCER registers */ - TIMx->CCMR1 = tmpccmr1; - TIMx->CCER = tmpccer; -} - -/** - * @brief Configure the TI2 as Input. - * @param TIMx: where x can be 1, 2, 3, 4, 5, 8, 9, 12 or 15 to select the TIM peripheral. - * @param TIM_ICPolarity : The Input Polarity. - * This parameter can be one of the following values: - * @arg TIM_ICPolarity_Rising - * @arg TIM_ICPolarity_Falling - * @param TIM_ICSelection: specifies the input to be used. - * This parameter can be one of the following values: - * @arg TIM_ICSelection_DirectTI: TIM Input 2 is selected to be connected to IC2. - * @arg TIM_ICSelection_IndirectTI: TIM Input 2 is selected to be connected to IC1. - * @arg TIM_ICSelection_TRC: TIM Input 2 is selected to be connected to TRC. - * @param TIM_ICFilter: Specifies the Input Capture Filter. - * This parameter must be a value between 0x00 and 0x0F. - * @retval None - */ -static void TI2_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, - uint16_t TIM_ICFilter) -{ - uint16_t tmpccmr1 = 0, tmpccer = 0, tmp = 0; - /* Disable the Channel 2: Reset the CC2E Bit */ - TIMx->CCER &= (uint16_t)~((uint16_t)TIM_CCER_CC2E); - tmpccmr1 = TIMx->CCMR1; - tmpccer = TIMx->CCER; - tmp = (uint16_t)(TIM_ICPolarity << 4); - /* Select the Input and set the filter */ - tmpccmr1 &= (uint16_t)(((uint16_t)~((uint16_t)TIM_CCMR1_CC2S)) & ((uint16_t)~((uint16_t)TIM_CCMR1_IC2F))); - tmpccmr1 |= (uint16_t)(TIM_ICFilter << 12); - tmpccmr1 |= (uint16_t)(TIM_ICSelection << 8); - - if((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM2) || (TIMx == TIM3) || - (TIMx == TIM4) ||(TIMx == TIM5)) - { - /* Select the Polarity and set the CC2E Bit */ - tmpccer &= (uint16_t)~((uint16_t)(TIM_CCER_CC2P)); - tmpccer |= (uint16_t)(tmp | (uint16_t)TIM_CCER_CC2E); - } - else - { - /* Select the Polarity and set the CC2E Bit */ - tmpccer &= (uint16_t)~((uint16_t)(TIM_CCER_CC2P | TIM_CCER_CC2NP)); - tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CCER_CC2E); - } - - /* Write to TIMx CCMR1 and CCER registers */ - TIMx->CCMR1 = tmpccmr1 ; - TIMx->CCER = tmpccer; -} - -/** - * @brief Configure the TI3 as Input. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_ICPolarity : The Input Polarity. - * This parameter can be one of the following values: - * @arg TIM_ICPolarity_Rising - * @arg TIM_ICPolarity_Falling - * @param TIM_ICSelection: specifies the input to be used. - * This parameter can be one of the following values: - * @arg TIM_ICSelection_DirectTI: TIM Input 3 is selected to be connected to IC3. - * @arg TIM_ICSelection_IndirectTI: TIM Input 3 is selected to be connected to IC4. - * @arg TIM_ICSelection_TRC: TIM Input 3 is selected to be connected to TRC. - * @param TIM_ICFilter: Specifies the Input Capture Filter. - * This parameter must be a value between 0x00 and 0x0F. - * @retval None - */ -static void TI3_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, - uint16_t TIM_ICFilter) -{ - uint16_t tmpccmr2 = 0, tmpccer = 0, tmp = 0; - /* Disable the Channel 3: Reset the CC3E Bit */ - TIMx->CCER &= (uint16_t)~((uint16_t)TIM_CCER_CC3E); - tmpccmr2 = TIMx->CCMR2; - tmpccer = TIMx->CCER; - tmp = (uint16_t)(TIM_ICPolarity << 8); - /* Select the Input and set the filter */ - tmpccmr2 &= (uint16_t)(((uint16_t)~((uint16_t)TIM_CCMR2_CC3S)) & ((uint16_t)~((uint16_t)TIM_CCMR2_IC3F))); - tmpccmr2 |= (uint16_t)(TIM_ICSelection | (uint16_t)(TIM_ICFilter << (uint16_t)4)); - - if((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM2) || (TIMx == TIM3) || - (TIMx == TIM4) ||(TIMx == TIM5)) - { - /* Select the Polarity and set the CC3E Bit */ - tmpccer &= (uint16_t)~((uint16_t)(TIM_CCER_CC3P)); - tmpccer |= (uint16_t)(tmp | (uint16_t)TIM_CCER_CC3E); - } - else - { - /* Select the Polarity and set the CC3E Bit */ - tmpccer &= (uint16_t)~((uint16_t)(TIM_CCER_CC3P | TIM_CCER_CC3NP)); - tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CCER_CC3E); - } - - /* Write to TIMx CCMR2 and CCER registers */ - TIMx->CCMR2 = tmpccmr2; - TIMx->CCER = tmpccer; -} - -/** - * @brief Configure the TI4 as Input. - * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. - * @param TIM_ICPolarity : The Input Polarity. - * This parameter can be one of the following values: - * @arg TIM_ICPolarity_Rising - * @arg TIM_ICPolarity_Falling - * @param TIM_ICSelection: specifies the input to be used. - * This parameter can be one of the following values: - * @arg TIM_ICSelection_DirectTI: TIM Input 4 is selected to be connected to IC4. - * @arg TIM_ICSelection_IndirectTI: TIM Input 4 is selected to be connected to IC3. - * @arg TIM_ICSelection_TRC: TIM Input 4 is selected to be connected to TRC. - * @param TIM_ICFilter: Specifies the Input Capture Filter. - * This parameter must be a value between 0x00 and 0x0F. - * @retval None - */ -static void TI4_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, - uint16_t TIM_ICFilter) -{ - uint16_t tmpccmr2 = 0, tmpccer = 0, tmp = 0; - - /* Disable the Channel 4: Reset the CC4E Bit */ - TIMx->CCER &= (uint16_t)~((uint16_t)TIM_CCER_CC4E); - tmpccmr2 = TIMx->CCMR2; - tmpccer = TIMx->CCER; - tmp = (uint16_t)(TIM_ICPolarity << 12); - /* Select the Input and set the filter */ - tmpccmr2 &= (uint16_t)((uint16_t)(~(uint16_t)TIM_CCMR2_CC4S) & ((uint16_t)~((uint16_t)TIM_CCMR2_IC4F))); - tmpccmr2 |= (uint16_t)(TIM_ICSelection << 8); - tmpccmr2 |= (uint16_t)(TIM_ICFilter << 12); - - if((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM2) || (TIMx == TIM3) || - (TIMx == TIM4) ||(TIMx == TIM5)) - { - /* Select the Polarity and set the CC4E Bit */ - tmpccer &= (uint16_t)~((uint16_t)(TIM_CCER_CC4P)); - tmpccer |= (uint16_t)(tmp | (uint16_t)TIM_CCER_CC4E); - } - else - { - /* Select the Polarity and set the CC4E Bit */ - tmpccer &= (uint16_t)~((uint16_t)(TIM_CCER_CC3P | TIM_CCER_CC4NP)); - tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CCER_CC4E); - } - /* Write to TIMx CCMR2 and CCER registers */ - TIMx->CCMR2 = tmpccmr2; - TIMx->CCER = tmpccer; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c deleted file mode 100644 index a3f16f15..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c +++ /dev/null @@ -1,1058 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_usart.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the USART firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_usart.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup USART - * @brief USART driver modules - * @{ - */ - -/** @defgroup USART_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup USART_Private_Defines - * @{ - */ - -#define CR1_UE_Set ((uint16_t)0x2000) /*!< USART Enable Mask */ -#define CR1_UE_Reset ((uint16_t)0xDFFF) /*!< USART Disable Mask */ - -#define CR1_WAKE_Mask ((uint16_t)0xF7FF) /*!< USART WakeUp Method Mask */ - -#define CR1_RWU_Set ((uint16_t)0x0002) /*!< USART mute mode Enable Mask */ -#define CR1_RWU_Reset ((uint16_t)0xFFFD) /*!< USART mute mode Enable Mask */ -#define CR1_SBK_Set ((uint16_t)0x0001) /*!< USART Break Character send Mask */ -#define CR1_CLEAR_Mask ((uint16_t)0xE9F3) /*!< USART CR1 Mask */ -#define CR2_Address_Mask ((uint16_t)0xFFF0) /*!< USART address Mask */ - -#define CR2_LINEN_Set ((uint16_t)0x4000) /*!< USART LIN Enable Mask */ -#define CR2_LINEN_Reset ((uint16_t)0xBFFF) /*!< USART LIN Disable Mask */ - -#define CR2_LBDL_Mask ((uint16_t)0xFFDF) /*!< USART LIN Break detection Mask */ -#define CR2_STOP_CLEAR_Mask ((uint16_t)0xCFFF) /*!< USART CR2 STOP Bits Mask */ -#define CR2_CLOCK_CLEAR_Mask ((uint16_t)0xF0FF) /*!< USART CR2 Clock Mask */ - -#define CR3_SCEN_Set ((uint16_t)0x0020) /*!< USART SC Enable Mask */ -#define CR3_SCEN_Reset ((uint16_t)0xFFDF) /*!< USART SC Disable Mask */ - -#define CR3_NACK_Set ((uint16_t)0x0010) /*!< USART SC NACK Enable Mask */ -#define CR3_NACK_Reset ((uint16_t)0xFFEF) /*!< USART SC NACK Disable Mask */ - -#define CR3_HDSEL_Set ((uint16_t)0x0008) /*!< USART Half-Duplex Enable Mask */ -#define CR3_HDSEL_Reset ((uint16_t)0xFFF7) /*!< USART Half-Duplex Disable Mask */ - -#define CR3_IRLP_Mask ((uint16_t)0xFFFB) /*!< USART IrDA LowPower mode Mask */ -#define CR3_CLEAR_Mask ((uint16_t)0xFCFF) /*!< USART CR3 Mask */ - -#define CR3_IREN_Set ((uint16_t)0x0002) /*!< USART IrDA Enable Mask */ -#define CR3_IREN_Reset ((uint16_t)0xFFFD) /*!< USART IrDA Disable Mask */ -#define GTPR_LSB_Mask ((uint16_t)0x00FF) /*!< Guard Time Register LSB Mask */ -#define GTPR_MSB_Mask ((uint16_t)0xFF00) /*!< Guard Time Register MSB Mask */ -#define IT_Mask ((uint16_t)0x001F) /*!< USART Interrupt Mask */ - -/* USART OverSampling-8 Mask */ -#define CR1_OVER8_Set ((u16)0x8000) /* USART OVER8 mode Enable Mask */ -#define CR1_OVER8_Reset ((u16)0x7FFF) /* USART OVER8 mode Disable Mask */ - -/* USART One Bit Sampling Mask */ -#define CR3_ONEBITE_Set ((u16)0x0800) /* USART ONEBITE mode Enable Mask */ -#define CR3_ONEBITE_Reset ((u16)0xF7FF) /* USART ONEBITE mode Disable Mask */ - -/** - * @} - */ - -/** @defgroup USART_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup USART_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup USART_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup USART_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the USARTx peripheral registers to their default reset values. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @retval None - */ -void USART_DeInit(USART_TypeDef* USARTx) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - - if (USARTx == USART1) - { - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); - } - else if (USARTx == USART2) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, DISABLE); - } - else if (USARTx == USART3) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, DISABLE); - } - else if (USARTx == UART4) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART4, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART4, DISABLE); - } - else - { - if (USARTx == UART5) - { - RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART5, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART5, DISABLE); - } - } -} - -/** - * @brief Initializes the USARTx peripheral according to the specified - * parameters in the USART_InitStruct . - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_InitStruct: pointer to a USART_InitTypeDef structure - * that contains the configuration information for the specified USART - * peripheral. - * @retval None - */ -void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct) -{ - uint32_t tmpreg = 0x00, apbclock = 0x00; - uint32_t integerdivider = 0x00; - uint32_t fractionaldivider = 0x00; - uint32_t usartxbase = 0; - RCC_ClocksTypeDef RCC_ClocksStatus; - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_BAUDRATE(USART_InitStruct->USART_BaudRate)); - assert_param(IS_USART_WORD_LENGTH(USART_InitStruct->USART_WordLength)); - assert_param(IS_USART_STOPBITS(USART_InitStruct->USART_StopBits)); - assert_param(IS_USART_PARITY(USART_InitStruct->USART_Parity)); - assert_param(IS_USART_MODE(USART_InitStruct->USART_Mode)); - assert_param(IS_USART_HARDWARE_FLOW_CONTROL(USART_InitStruct->USART_HardwareFlowControl)); - /* The hardware flow control is available only for USART1, USART2 and USART3 */ - if (USART_InitStruct->USART_HardwareFlowControl != USART_HardwareFlowControl_None) - { - assert_param(IS_USART_123_PERIPH(USARTx)); - } - - usartxbase = (uint32_t)USARTx; - -/*---------------------------- USART CR2 Configuration -----------------------*/ - tmpreg = USARTx->CR2; - /* Clear STOP[13:12] bits */ - tmpreg &= CR2_STOP_CLEAR_Mask; - /* Configure the USART Stop Bits, Clock, CPOL, CPHA and LastBit ------------*/ - /* Set STOP[13:12] bits according to USART_StopBits value */ - tmpreg |= (uint32_t)USART_InitStruct->USART_StopBits; - - /* Write to USART CR2 */ - USARTx->CR2 = (uint16_t)tmpreg; - -/*---------------------------- USART CR1 Configuration -----------------------*/ - tmpreg = USARTx->CR1; - /* Clear M, PCE, PS, TE and RE bits */ - tmpreg &= CR1_CLEAR_Mask; - /* Configure the USART Word Length, Parity and mode ----------------------- */ - /* Set the M bits according to USART_WordLength value */ - /* Set PCE and PS bits according to USART_Parity value */ - /* Set TE and RE bits according to USART_Mode value */ - tmpreg |= (uint32_t)USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity | - USART_InitStruct->USART_Mode; - /* Write to USART CR1 */ - USARTx->CR1 = (uint16_t)tmpreg; - -/*---------------------------- USART CR3 Configuration -----------------------*/ - tmpreg = USARTx->CR3; - /* Clear CTSE and RTSE bits */ - tmpreg &= CR3_CLEAR_Mask; - /* Configure the USART HFC -------------------------------------------------*/ - /* Set CTSE and RTSE bits according to USART_HardwareFlowControl value */ - tmpreg |= USART_InitStruct->USART_HardwareFlowControl; - /* Write to USART CR3 */ - USARTx->CR3 = (uint16_t)tmpreg; - -/*---------------------------- USART BRR Configuration -----------------------*/ - /* Configure the USART Baud Rate -------------------------------------------*/ - RCC_GetClocksFreq(&RCC_ClocksStatus); - if (usartxbase == USART1_BASE) - { - apbclock = RCC_ClocksStatus.PCLK2_Frequency; - } - else - { - apbclock = RCC_ClocksStatus.PCLK1_Frequency; - } - - /* Determine the integer part */ - if ((USARTx->CR1 & CR1_OVER8_Set) != 0) - { - /* Integer part computing in case Oversampling mode is 8 Samples */ - integerdivider = ((25 * apbclock) / (2 * (USART_InitStruct->USART_BaudRate))); - } - else /* if ((USARTx->CR1 & CR1_OVER8_Set) == 0) */ - { - /* Integer part computing in case Oversampling mode is 16 Samples */ - integerdivider = ((25 * apbclock) / (4 * (USART_InitStruct->USART_BaudRate))); - } - tmpreg = (integerdivider / 100) << 4; - - /* Determine the fractional part */ - fractionaldivider = integerdivider - (100 * (tmpreg >> 4)); - - /* Implement the fractional part in the register */ - if ((USARTx->CR1 & CR1_OVER8_Set) != 0) - { - tmpreg |= ((((fractionaldivider * 8) + 50) / 100)) & ((uint8_t)0x07); - } - else /* if ((USARTx->CR1 & CR1_OVER8_Set) == 0) */ - { - tmpreg |= ((((fractionaldivider * 16) + 50) / 100)) & ((uint8_t)0x0F); - } - - /* Write to USART BRR */ - USARTx->BRR = (uint16_t)tmpreg; -} - -/** - * @brief Fills each USART_InitStruct member with its default value. - * @param USART_InitStruct: pointer to a USART_InitTypeDef structure - * which will be initialized. - * @retval None - */ -void USART_StructInit(USART_InitTypeDef* USART_InitStruct) -{ - /* USART_InitStruct members default value */ - USART_InitStruct->USART_BaudRate = 9600; - USART_InitStruct->USART_WordLength = USART_WordLength_8b; - USART_InitStruct->USART_StopBits = USART_StopBits_1; - USART_InitStruct->USART_Parity = USART_Parity_No ; - USART_InitStruct->USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_InitStruct->USART_HardwareFlowControl = USART_HardwareFlowControl_None; -} - -/** - * @brief Initializes the USARTx peripheral Clock according to the - * specified parameters in the USART_ClockInitStruct . - * @param USARTx: where x can be 1, 2, 3 to select the USART peripheral. - * @param USART_ClockInitStruct: pointer to a USART_ClockInitTypeDef - * structure that contains the configuration information for the specified - * USART peripheral. - * @note The Smart Card and Synchronous modes are not available for UART4 and UART5. - * @retval None - */ -void USART_ClockInit(USART_TypeDef* USARTx, USART_ClockInitTypeDef* USART_ClockInitStruct) -{ - uint32_t tmpreg = 0x00; - /* Check the parameters */ - assert_param(IS_USART_123_PERIPH(USARTx)); - assert_param(IS_USART_CLOCK(USART_ClockInitStruct->USART_Clock)); - assert_param(IS_USART_CPOL(USART_ClockInitStruct->USART_CPOL)); - assert_param(IS_USART_CPHA(USART_ClockInitStruct->USART_CPHA)); - assert_param(IS_USART_LASTBIT(USART_ClockInitStruct->USART_LastBit)); - -/*---------------------------- USART CR2 Configuration -----------------------*/ - tmpreg = USARTx->CR2; - /* Clear CLKEN, CPOL, CPHA and LBCL bits */ - tmpreg &= CR2_CLOCK_CLEAR_Mask; - /* Configure the USART Clock, CPOL, CPHA and LastBit ------------*/ - /* Set CLKEN bit according to USART_Clock value */ - /* Set CPOL bit according to USART_CPOL value */ - /* Set CPHA bit according to USART_CPHA value */ - /* Set LBCL bit according to USART_LastBit value */ - tmpreg |= (uint32_t)USART_ClockInitStruct->USART_Clock | USART_ClockInitStruct->USART_CPOL | - USART_ClockInitStruct->USART_CPHA | USART_ClockInitStruct->USART_LastBit; - /* Write to USART CR2 */ - USARTx->CR2 = (uint16_t)tmpreg; -} - -/** - * @brief Fills each USART_ClockInitStruct member with its default value. - * @param USART_ClockInitStruct: pointer to a USART_ClockInitTypeDef - * structure which will be initialized. - * @retval None - */ -void USART_ClockStructInit(USART_ClockInitTypeDef* USART_ClockInitStruct) -{ - /* USART_ClockInitStruct members default value */ - USART_ClockInitStruct->USART_Clock = USART_Clock_Disable; - USART_ClockInitStruct->USART_CPOL = USART_CPOL_Low; - USART_ClockInitStruct->USART_CPHA = USART_CPHA_1Edge; - USART_ClockInitStruct->USART_LastBit = USART_LastBit_Disable; -} - -/** - * @brief Enables or disables the specified USART peripheral. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param NewState: new state of the USARTx peripheral. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the selected USART by setting the UE bit in the CR1 register */ - USARTx->CR1 |= CR1_UE_Set; - } - else - { - /* Disable the selected USART by clearing the UE bit in the CR1 register */ - USARTx->CR1 &= CR1_UE_Reset; - } -} - -/** - * @brief Enables or disables the specified USART interrupts. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_IT: specifies the USART interrupt sources to be enabled or disabled. - * This parameter can be one of the following values: - * @arg USART_IT_CTS: CTS change interrupt (not available for UART4 and UART5) - * @arg USART_IT_LBD: LIN Break detection interrupt - * @arg USART_IT_TXE: Transmit Data Register empty interrupt - * @arg USART_IT_TC: Transmission complete interrupt - * @arg USART_IT_RXNE: Receive Data register not empty interrupt - * @arg USART_IT_IDLE: Idle line detection interrupt - * @arg USART_IT_PE: Parity Error interrupt - * @arg USART_IT_ERR: Error interrupt(Frame error, noise error, overrun error) - * @param NewState: new state of the specified USARTx interrupts. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void USART_ITConfig(USART_TypeDef* USARTx, uint16_t USART_IT, FunctionalState NewState) -{ - uint32_t usartreg = 0x00, itpos = 0x00, itmask = 0x00; - uint32_t usartxbase = 0x00; - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_CONFIG_IT(USART_IT)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - /* The CTS interrupt is not available for UART4 and UART5 */ - if (USART_IT == USART_IT_CTS) - { - assert_param(IS_USART_123_PERIPH(USARTx)); - } - - usartxbase = (uint32_t)USARTx; - - /* Get the USART register index */ - usartreg = (((uint8_t)USART_IT) >> 0x05); - - /* Get the interrupt position */ - itpos = USART_IT & IT_Mask; - itmask = (((uint32_t)0x01) << itpos); - - if (usartreg == 0x01) /* The IT is in CR1 register */ - { - usartxbase += 0x0C; - } - else if (usartreg == 0x02) /* The IT is in CR2 register */ - { - usartxbase += 0x10; - } - else /* The IT is in CR3 register */ - { - usartxbase += 0x14; - } - if (NewState != DISABLE) - { - *(__IO uint32_t*)usartxbase |= itmask; - } - else - { - *(__IO uint32_t*)usartxbase &= ~itmask; - } -} - -/** - * @brief Enables or disables the USART’s DMA interface. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_DMAReq: specifies the DMA request. - * This parameter can be any combination of the following values: - * @arg USART_DMAReq_Tx: USART DMA transmit request - * @arg USART_DMAReq_Rx: USART DMA receive request - * @param NewState: new state of the DMA Request sources. - * This parameter can be: ENABLE or DISABLE. - * @note The DMA mode is not available for UART5 except in the STM32 - * High density value line devices(STM32F10X_HD_VL). - * @retval None - */ -void USART_DMACmd(USART_TypeDef* USARTx, uint16_t USART_DMAReq, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_DMAREQ(USART_DMAReq)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the DMA transfer for selected requests by setting the DMAT and/or - DMAR bits in the USART CR3 register */ - USARTx->CR3 |= USART_DMAReq; - } - else - { - /* Disable the DMA transfer for selected requests by clearing the DMAT and/or - DMAR bits in the USART CR3 register */ - USARTx->CR3 &= (uint16_t)~USART_DMAReq; - } -} - -/** - * @brief Sets the address of the USART node. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_Address: Indicates the address of the USART node. - * @retval None - */ -void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_ADDRESS(USART_Address)); - - /* Clear the USART address */ - USARTx->CR2 &= CR2_Address_Mask; - /* Set the USART address node */ - USARTx->CR2 |= USART_Address; -} - -/** - * @brief Selects the USART WakeUp method. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_WakeUp: specifies the USART wakeup method. - * This parameter can be one of the following values: - * @arg USART_WakeUp_IdleLine: WakeUp by an idle line detection - * @arg USART_WakeUp_AddressMark: WakeUp by an address mark - * @retval None - */ -void USART_WakeUpConfig(USART_TypeDef* USARTx, uint16_t USART_WakeUp) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_WAKEUP(USART_WakeUp)); - - USARTx->CR1 &= CR1_WAKE_Mask; - USARTx->CR1 |= USART_WakeUp; -} - -/** - * @brief Determines if the USART is in mute mode or not. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param NewState: new state of the USART mute mode. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void USART_ReceiverWakeUpCmd(USART_TypeDef* USARTx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the USART mute mode by setting the RWU bit in the CR1 register */ - USARTx->CR1 |= CR1_RWU_Set; - } - else - { - /* Disable the USART mute mode by clearing the RWU bit in the CR1 register */ - USARTx->CR1 &= CR1_RWU_Reset; - } -} - -/** - * @brief Sets the USART LIN Break detection length. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_LINBreakDetectLength: specifies the LIN break detection length. - * This parameter can be one of the following values: - * @arg USART_LINBreakDetectLength_10b: 10-bit break detection - * @arg USART_LINBreakDetectLength_11b: 11-bit break detection - * @retval None - */ -void USART_LINBreakDetectLengthConfig(USART_TypeDef* USARTx, uint16_t USART_LINBreakDetectLength) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_LIN_BREAK_DETECT_LENGTH(USART_LINBreakDetectLength)); - - USARTx->CR2 &= CR2_LBDL_Mask; - USARTx->CR2 |= USART_LINBreakDetectLength; -} - -/** - * @brief Enables or disables the USART’s LIN mode. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param NewState: new state of the USART LIN mode. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void USART_LINCmd(USART_TypeDef* USARTx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the LIN mode by setting the LINEN bit in the CR2 register */ - USARTx->CR2 |= CR2_LINEN_Set; - } - else - { - /* Disable the LIN mode by clearing the LINEN bit in the CR2 register */ - USARTx->CR2 &= CR2_LINEN_Reset; - } -} - -/** - * @brief Transmits single data through the USARTx peripheral. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param Data: the data to transmit. - * @retval None - */ -void USART_SendData(USART_TypeDef* USARTx, uint16_t Data) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_DATA(Data)); - - /* Transmit Data */ - USARTx->DR = (Data & (uint16_t)0x01FF); -} - -/** - * @brief Returns the most recent received data by the USARTx peripheral. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @retval The received data. - */ -uint16_t USART_ReceiveData(USART_TypeDef* USARTx) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - - /* Receive Data */ - return (uint16_t)(USARTx->DR & (uint16_t)0x01FF); -} - -/** - * @brief Transmits break characters. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @retval None - */ -void USART_SendBreak(USART_TypeDef* USARTx) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - - /* Send break characters */ - USARTx->CR1 |= CR1_SBK_Set; -} - -/** - * @brief Sets the specified USART guard time. - * @param USARTx: where x can be 1, 2 or 3 to select the USART peripheral. - * @param USART_GuardTime: specifies the guard time. - * @note The guard time bits are not available for UART4 and UART5. - * @retval None - */ -void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime) -{ - /* Check the parameters */ - assert_param(IS_USART_123_PERIPH(USARTx)); - - /* Clear the USART Guard time */ - USARTx->GTPR &= GTPR_LSB_Mask; - /* Set the USART guard time */ - USARTx->GTPR |= (uint16_t)((uint16_t)USART_GuardTime << 0x08); -} - -/** - * @brief Sets the system clock prescaler. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_Prescaler: specifies the prescaler clock. - * @note The function is used for IrDA mode with UART4 and UART5. - * @retval None - */ -void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - - /* Clear the USART prescaler */ - USARTx->GTPR &= GTPR_MSB_Mask; - /* Set the USART prescaler */ - USARTx->GTPR |= USART_Prescaler; -} - -/** - * @brief Enables or disables the USART’s Smart Card mode. - * @param USARTx: where x can be 1, 2 or 3 to select the USART peripheral. - * @param NewState: new state of the Smart Card mode. - * This parameter can be: ENABLE or DISABLE. - * @note The Smart Card mode is not available for UART4 and UART5. - * @retval None - */ -void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_123_PERIPH(USARTx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the SC mode by setting the SCEN bit in the CR3 register */ - USARTx->CR3 |= CR3_SCEN_Set; - } - else - { - /* Disable the SC mode by clearing the SCEN bit in the CR3 register */ - USARTx->CR3 &= CR3_SCEN_Reset; - } -} - -/** - * @brief Enables or disables NACK transmission. - * @param USARTx: where x can be 1, 2 or 3 to select the USART peripheral. - * @param NewState: new state of the NACK transmission. - * This parameter can be: ENABLE or DISABLE. - * @note The Smart Card mode is not available for UART4 and UART5. - * @retval None - */ -void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_123_PERIPH(USARTx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - if (NewState != DISABLE) - { - /* Enable the NACK transmission by setting the NACK bit in the CR3 register */ - USARTx->CR3 |= CR3_NACK_Set; - } - else - { - /* Disable the NACK transmission by clearing the NACK bit in the CR3 register */ - USARTx->CR3 &= CR3_NACK_Reset; - } -} - -/** - * @brief Enables or disables the USART’s Half Duplex communication. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param NewState: new state of the USART Communication. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */ - USARTx->CR3 |= CR3_HDSEL_Set; - } - else - { - /* Disable the Half-Duplex mode by clearing the HDSEL bit in the CR3 register */ - USARTx->CR3 &= CR3_HDSEL_Reset; - } -} - - -/** - * @brief Enables or disables the USART's 8x oversampling mode. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param NewState: new state of the USART one bit sampling method. - * This parameter can be: ENABLE or DISABLE. - * @note - * This function has to be called before calling USART_Init() - * function in order to have correct baudrate Divider value. - * @retval None - */ -void USART_OverSampling8Cmd(USART_TypeDef* USARTx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the 8x Oversampling mode by setting the OVER8 bit in the CR1 register */ - USARTx->CR1 |= CR1_OVER8_Set; - } - else - { - /* Disable the 8x Oversampling mode by clearing the OVER8 bit in the CR1 register */ - USARTx->CR1 &= CR1_OVER8_Reset; - } -} - -/** - * @brief Enables or disables the USART's one bit sampling method. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param NewState: new state of the USART one bit sampling method. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void USART_OneBitMethodCmd(USART_TypeDef* USARTx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the one bit method by setting the ONEBITE bit in the CR3 register */ - USARTx->CR3 |= CR3_ONEBITE_Set; - } - else - { - /* Disable tthe one bit method by clearing the ONEBITE bit in the CR3 register */ - USARTx->CR3 &= CR3_ONEBITE_Reset; - } -} - -/** - * @brief Configures the USART's IrDA interface. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_IrDAMode: specifies the IrDA mode. - * This parameter can be one of the following values: - * @arg USART_IrDAMode_LowPower - * @arg USART_IrDAMode_Normal - * @retval None - */ -void USART_IrDAConfig(USART_TypeDef* USARTx, uint16_t USART_IrDAMode) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_IRDA_MODE(USART_IrDAMode)); - - USARTx->CR3 &= CR3_IRLP_Mask; - USARTx->CR3 |= USART_IrDAMode; -} - -/** - * @brief Enables or disables the USART's IrDA interface. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param NewState: new state of the IrDA mode. - * This parameter can be: ENABLE or DISABLE. - * @retval None - */ -void USART_IrDACmd(USART_TypeDef* USARTx, FunctionalState NewState) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_FUNCTIONAL_STATE(NewState)); - - if (NewState != DISABLE) - { - /* Enable the IrDA mode by setting the IREN bit in the CR3 register */ - USARTx->CR3 |= CR3_IREN_Set; - } - else - { - /* Disable the IrDA mode by clearing the IREN bit in the CR3 register */ - USARTx->CR3 &= CR3_IREN_Reset; - } -} - -/** - * @brief Checks whether the specified USART flag is set or not. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_FLAG: specifies the flag to check. - * This parameter can be one of the following values: - * @arg USART_FLAG_CTS: CTS Change flag (not available for UART4 and UART5) - * @arg USART_FLAG_LBD: LIN Break detection flag - * @arg USART_FLAG_TXE: Transmit data register empty flag - * @arg USART_FLAG_TC: Transmission Complete flag - * @arg USART_FLAG_RXNE: Receive data register not empty flag - * @arg USART_FLAG_IDLE: Idle Line detection flag - * @arg USART_FLAG_ORE: OverRun Error flag - * @arg USART_FLAG_NE: Noise Error flag - * @arg USART_FLAG_FE: Framing Error flag - * @arg USART_FLAG_PE: Parity Error flag - * @retval The new state of USART_FLAG (SET or RESET). - */ -FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG) -{ - FlagStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_FLAG(USART_FLAG)); - /* The CTS flag is not available for UART4 and UART5 */ - if (USART_FLAG == USART_FLAG_CTS) - { - assert_param(IS_USART_123_PERIPH(USARTx)); - } - - if ((USARTx->SR & USART_FLAG) != (uint16_t)RESET) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - return bitstatus; -} - -/** - * @brief Clears the USARTx's pending flags. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_FLAG: specifies the flag to clear. - * This parameter can be any combination of the following values: - * @arg USART_FLAG_CTS: CTS Change flag (not available for UART4 and UART5). - * @arg USART_FLAG_LBD: LIN Break detection flag. - * @arg USART_FLAG_TC: Transmission Complete flag. - * @arg USART_FLAG_RXNE: Receive data register not empty flag. - * - * @note - * - PE (Parity error), FE (Framing error), NE (Noise error), ORE (OverRun - * error) and IDLE (Idle line detected) flags are cleared by software - * sequence: a read operation to USART_SR register (USART_GetFlagStatus()) - * followed by a read operation to USART_DR register (USART_ReceiveData()). - * - RXNE flag can be also cleared by a read to the USART_DR register - * (USART_ReceiveData()). - * - TC flag can be also cleared by software sequence: a read operation to - * USART_SR register (USART_GetFlagStatus()) followed by a write operation - * to USART_DR register (USART_SendData()). - * - TXE flag is cleared only by a write to the USART_DR register - * (USART_SendData()). - * @retval None - */ -void USART_ClearFlag(USART_TypeDef* USARTx, uint16_t USART_FLAG) -{ - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_CLEAR_FLAG(USART_FLAG)); - /* The CTS flag is not available for UART4 and UART5 */ - if ((USART_FLAG & USART_FLAG_CTS) == USART_FLAG_CTS) - { - assert_param(IS_USART_123_PERIPH(USARTx)); - } - - USARTx->SR = (uint16_t)~USART_FLAG; -} - -/** - * @brief Checks whether the specified USART interrupt has occurred or not. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_IT: specifies the USART interrupt source to check. - * This parameter can be one of the following values: - * @arg USART_IT_CTS: CTS change interrupt (not available for UART4 and UART5) - * @arg USART_IT_LBD: LIN Break detection interrupt - * @arg USART_IT_TXE: Tansmit Data Register empty interrupt - * @arg USART_IT_TC: Transmission complete interrupt - * @arg USART_IT_RXNE: Receive Data register not empty interrupt - * @arg USART_IT_IDLE: Idle line detection interrupt - * @arg USART_IT_ORE: OverRun Error interrupt - * @arg USART_IT_NE: Noise Error interrupt - * @arg USART_IT_FE: Framing Error interrupt - * @arg USART_IT_PE: Parity Error interrupt - * @retval The new state of USART_IT (SET or RESET). - */ -ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT) -{ - uint32_t bitpos = 0x00, itmask = 0x00, usartreg = 0x00; - ITStatus bitstatus = RESET; - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_GET_IT(USART_IT)); - /* The CTS interrupt is not available for UART4 and UART5 */ - if (USART_IT == USART_IT_CTS) - { - assert_param(IS_USART_123_PERIPH(USARTx)); - } - - /* Get the USART register index */ - usartreg = (((uint8_t)USART_IT) >> 0x05); - /* Get the interrupt position */ - itmask = USART_IT & IT_Mask; - itmask = (uint32_t)0x01 << itmask; - - if (usartreg == 0x01) /* The IT is in CR1 register */ - { - itmask &= USARTx->CR1; - } - else if (usartreg == 0x02) /* The IT is in CR2 register */ - { - itmask &= USARTx->CR2; - } - else /* The IT is in CR3 register */ - { - itmask &= USARTx->CR3; - } - - bitpos = USART_IT >> 0x08; - bitpos = (uint32_t)0x01 << bitpos; - bitpos &= USARTx->SR; - if ((itmask != (uint16_t)RESET)&&(bitpos != (uint16_t)RESET)) - { - bitstatus = SET; - } - else - { - bitstatus = RESET; - } - - return bitstatus; -} - -/** - * @brief Clears the USARTx's interrupt pending bits. - * @param USARTx: Select the USART or the UART peripheral. - * This parameter can be one of the following values: - * USART1, USART2, USART3, UART4 or UART5. - * @param USART_IT: specifies the interrupt pending bit to clear. - * This parameter can be one of the following values: - * @arg USART_IT_CTS: CTS change interrupt (not available for UART4 and UART5) - * @arg USART_IT_LBD: LIN Break detection interrupt - * @arg USART_IT_TC: Transmission complete interrupt. - * @arg USART_IT_RXNE: Receive Data register not empty interrupt. - * - * @note - * - PE (Parity error), FE (Framing error), NE (Noise error), ORE (OverRun - * error) and IDLE (Idle line detected) pending bits are cleared by - * software sequence: a read operation to USART_SR register - * (USART_GetITStatus()) followed by a read operation to USART_DR register - * (USART_ReceiveData()). - * - RXNE pending bit can be also cleared by a read to the USART_DR register - * (USART_ReceiveData()). - * - TC pending bit can be also cleared by software sequence: a read - * operation to USART_SR register (USART_GetITStatus()) followed by a write - * operation to USART_DR register (USART_SendData()). - * - TXE pending bit is cleared only by a write to the USART_DR register - * (USART_SendData()). - * @retval None - */ -void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT) -{ - uint16_t bitpos = 0x00, itmask = 0x00; - /* Check the parameters */ - assert_param(IS_USART_ALL_PERIPH(USARTx)); - assert_param(IS_USART_CLEAR_IT(USART_IT)); - /* The CTS interrupt is not available for UART4 and UART5 */ - if (USART_IT == USART_IT_CTS) - { - assert_param(IS_USART_123_PERIPH(USARTx)); - } - - bitpos = USART_IT >> 0x08; - itmask = ((uint16_t)0x01 << (uint16_t)bitpos); - USARTx->SR = (uint16_t)~itmask; -} -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c deleted file mode 100644 index 77a7ce51..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c +++ /dev/null @@ -1,224 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f10x_wwdg.c - * @author MCD Application Team - * @version V3.5.0 - * @date 11-March-2011 - * @brief This file provides all the WWDG firmware functions. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x_wwdg.h" -#include "stm32f10x_rcc.h" - -/** @addtogroup STM32F10x_StdPeriph_Driver - * @{ - */ - -/** @defgroup WWDG - * @brief WWDG driver modules - * @{ - */ - -/** @defgroup WWDG_Private_TypesDefinitions - * @{ - */ - -/** - * @} - */ - -/** @defgroup WWDG_Private_Defines - * @{ - */ - -/* ----------- WWDG registers bit address in the alias region ----------- */ -#define WWDG_OFFSET (WWDG_BASE - PERIPH_BASE) - -/* Alias word address of EWI bit */ -#define CFR_OFFSET (WWDG_OFFSET + 0x04) -#define EWI_BitNumber 0x09 -#define CFR_EWI_BB (PERIPH_BB_BASE + (CFR_OFFSET * 32) + (EWI_BitNumber * 4)) - -/* --------------------- WWDG registers bit mask ------------------------ */ - -/* CR register bit mask */ -#define CR_WDGA_Set ((uint32_t)0x00000080) - -/* CFR register bit mask */ -#define CFR_WDGTB_Mask ((uint32_t)0xFFFFFE7F) -#define CFR_W_Mask ((uint32_t)0xFFFFFF80) -#define BIT_Mask ((uint8_t)0x7F) - -/** - * @} - */ - -/** @defgroup WWDG_Private_Macros - * @{ - */ - -/** - * @} - */ - -/** @defgroup WWDG_Private_Variables - * @{ - */ - -/** - * @} - */ - -/** @defgroup WWDG_Private_FunctionPrototypes - * @{ - */ - -/** - * @} - */ - -/** @defgroup WWDG_Private_Functions - * @{ - */ - -/** - * @brief Deinitializes the WWDG peripheral registers to their default reset values. - * @param None - * @retval None - */ -void WWDG_DeInit(void) -{ - RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, DISABLE); -} - -/** - * @brief Sets the WWDG Prescaler. - * @param WWDG_Prescaler: specifies the WWDG Prescaler. - * This parameter can be one of the following values: - * @arg WWDG_Prescaler_1: WWDG counter clock = (PCLK1/4096)/1 - * @arg WWDG_Prescaler_2: WWDG counter clock = (PCLK1/4096)/2 - * @arg WWDG_Prescaler_4: WWDG counter clock = (PCLK1/4096)/4 - * @arg WWDG_Prescaler_8: WWDG counter clock = (PCLK1/4096)/8 - * @retval None - */ -void WWDG_SetPrescaler(uint32_t WWDG_Prescaler) -{ - uint32_t tmpreg = 0; - /* Check the parameters */ - assert_param(IS_WWDG_PRESCALER(WWDG_Prescaler)); - /* Clear WDGTB[1:0] bits */ - tmpreg = WWDG->CFR & CFR_WDGTB_Mask; - /* Set WDGTB[1:0] bits according to WWDG_Prescaler value */ - tmpreg |= WWDG_Prescaler; - /* Store the new value */ - WWDG->CFR = tmpreg; -} - -/** - * @brief Sets the WWDG window value. - * @param WindowValue: specifies the window value to be compared to the downcounter. - * This parameter value must be lower than 0x80. - * @retval None - */ -void WWDG_SetWindowValue(uint8_t WindowValue) -{ - __IO uint32_t tmpreg = 0; - - /* Check the parameters */ - assert_param(IS_WWDG_WINDOW_VALUE(WindowValue)); - /* Clear W[6:0] bits */ - - tmpreg = WWDG->CFR & CFR_W_Mask; - - /* Set W[6:0] bits according to WindowValue value */ - tmpreg |= WindowValue & (uint32_t) BIT_Mask; - - /* Store the new value */ - WWDG->CFR = tmpreg; -} - -/** - * @brief Enables the WWDG Early Wakeup interrupt(EWI). - * @param None - * @retval None - */ -void WWDG_EnableIT(void) -{ - *(__IO uint32_t *) CFR_EWI_BB = (uint32_t)ENABLE; -} - -/** - * @brief Sets the WWDG counter value. - * @param Counter: specifies the watchdog counter value. - * This parameter must be a number between 0x40 and 0x7F. - * @retval None - */ -void WWDG_SetCounter(uint8_t Counter) -{ - /* Check the parameters */ - assert_param(IS_WWDG_COUNTER(Counter)); - /* Write to T[6:0] bits to configure the counter value, no need to do - a read-modify-write; writing a 0 to WDGA bit does nothing */ - WWDG->CR = Counter & BIT_Mask; -} - -/** - * @brief Enables WWDG and load the counter value. - * @param Counter: specifies the watchdog counter value. - * This parameter must be a number between 0x40 and 0x7F. - * @retval None - */ -void WWDG_Enable(uint8_t Counter) -{ - /* Check the parameters */ - assert_param(IS_WWDG_COUNTER(Counter)); - WWDG->CR = CR_WDGA_Set | Counter; -} - -/** - * @brief Checks whether the Early Wakeup interrupt flag is set or not. - * @param None - * @retval The new state of the Early Wakeup interrupt flag (SET or RESET) - */ -FlagStatus WWDG_GetFlagStatus(void) -{ - return (FlagStatus)(WWDG->SR); -} - -/** - * @brief Clears Early Wakeup interrupt flag. - * @param None - * @retval None - */ -void WWDG_ClearFlag(void) -{ - WWDG->SR = (uint32_t)RESET; -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/stm32f10x_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/stm32f10x_conf.h deleted file mode 100644 index 59549e3b..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/lib/stdperiphlib/stm32f10x_conf.h +++ /dev/null @@ -1,77 +0,0 @@ -/** - ****************************************************************************** - * @file Project/STM32F10x_StdPeriph_Template/stm32f10x_conf.h - * @author MCD Application Team - * @version V3.5.0 - * @date 08-April-2011 - * @brief Library configuration file. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32F10x_CONF_H -#define __STM32F10x_CONF_H - -/* Includes ------------------------------------------------------------------*/ -/* Uncomment/Comment the line below to enable/disable peripheral header file inclusion */ -#include "stm32f10x_adc.h" -#include "stm32f10x_bkp.h" -#include "stm32f10x_can.h" -#include "stm32f10x_cec.h" -#include "stm32f10x_crc.h" -#include "stm32f10x_dac.h" -#include "stm32f10x_dbgmcu.h" -#include "stm32f10x_dma.h" -#include "stm32f10x_exti.h" -#include "stm32f10x_flash.h" -#include "stm32f10x_fsmc.h" -#include "stm32f10x_gpio.h" -#include "stm32f10x_i2c.h" -#include "stm32f10x_iwdg.h" -#include "stm32f10x_pwr.h" -#include "stm32f10x_rcc.h" -#include "stm32f10x_rtc.h" -#include "stm32f10x_sdio.h" -#include "stm32f10x_spi.h" -#include "stm32f10x_tim.h" -#include "stm32f10x_usart.h" -#include "stm32f10x_wwdg.h" -#include "misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */ - -/* Exported types ------------------------------------------------------------*/ -/* Exported constants --------------------------------------------------------*/ -/* Uncomment the line below to expanse the "assert_param" macro in the - Standard Peripheral Library drivers code */ -/* #define USE_FULL_ASSERT 1 */ - -/* Exported macro ------------------------------------------------------------*/ -#ifdef USE_FULL_ASSERT - -/** - * @brief The assert_param macro is used for function's parameters check. - * @param expr: If expr is false, it calls assert_failed function which reports - * the name of the source file and the source line number of the call - * that failed. If expr is true, it returns no value. - * @retval None - */ - #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__)) -/* Exported functions ------------------------------------------------------- */ - void assert_failed(uint8_t* file, uint32_t line); -#else - #define assert_param(expr) ((void)0) -#endif /* USE_FULL_ASSERT */ - -#endif /* __STM32F10x_CONF_H */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/main.c deleted file mode 100644 index 5d39655d..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/main.c +++ /dev/null @@ -1,214 +0,0 @@ -/**************************************************************************************** -| Description: demo program application source file -| File Name: main.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ -#include /* standard IO library */ - - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -static void DisplayUptime(void); -static void Init(void); - - -/**************************************************************************************** -** NAME: main -** PARAMETER: none -** RETURN VALUE: program return code -** DESCRIPTION: This is the entry point for the bootloader application and is called -** by the reset interrupt vector after the C-startup routines executed. -** -****************************************************************************************/ -int main(void) -{ - /* initialize the microcontroller */ - Init(); - /* initialize the bootloader interface */ - BootComInit(); - - /* start the infinite program loop */ - while (1) - { - /* toggle LED with a fixed frequency */ - LedToggle(); - /* Output uptime on terminal */ - DisplayUptime(); - /* check for bootloader activation request */ - BootComCheckActivationRequest(); - } - - /* program should never get here */ - return 0; -} /*** end of main ***/ - - -/**************************************************************************************** -** NAME: DisplayUptime -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Outputs the program's runtime on the terminal every second. -** -****************************************************************************************/ -static void DisplayUptime(void) -{ - static unsigned long uptime_ms_last = 0; - unsigned long uptime_ms_now; - static unsigned char hr=0, min=0, sec=0; - - uptime_ms_now = TimerGet(); - - /* output info on terminal just once a second */ - if ( (uptime_ms_now - uptime_ms_last) < 1000) - { - /* not yet time to toggle */ - return; - } - /* calculate uptime */ - if (++sec >= 60) - { - sec = 0; - if (++min >= 60) - { - min = 0; - if (++hr >= 24) - { - hr = 0; - } - } - } - - /* output time on terminal */ - printf("Program uptime: %02d:%02d:%02d\r", hr, min, sec); - - /* store for next comparison */ - uptime_ms_last = uptime_ms_now; -} /*** end of DisplayUptime ***/ - - -/**************************************************************************************** -** NAME: Init -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the microcontroller. -** -****************************************************************************************/ -static void Init(void) -{ - volatile unsigned long StartUpCounter = 0, HSEStatus = 0; - unsigned long pll_multiplier; - - /* reset the RCC clock configuration to the default reset state (for debug purpose) */ - /* set HSION bit */ - RCC->CR |= (unsigned long)0x00000001; - /* reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ - RCC->CFGR &= (unsigned long)0xF8FF0000; - /* reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (unsigned long)0xFEF6FFFF; - /* reset HSEBYP bit */ - RCC->CR &= (unsigned long)0xFFFBFFFF; - /* reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ - RCC->CFGR &= (unsigned long)0xFF80FFFF; - /* disable all interrupts and clear pending bits */ - RCC->CIR = 0x009F0000; - /* enable HSE */ - RCC->CR |= ((unsigned long)RCC_CR_HSEON); - /* wait till HSE is ready and if Time out is reached exit */ - do - { - HSEStatus = RCC->CR & RCC_CR_HSERDY; - StartUpCounter++; - } - while((HSEStatus == 0) && (StartUpCounter != 1500)); - /* check if time out was reached */ - if ((RCC->CR & RCC_CR_HSERDY) == RESET) - { - /* cannot continue when HSE is not ready */ - while (1) { ; } - } - /* enable flash prefetch buffer */ - FLASH->ACR |= FLASH_ACR_PRFTBE; - /* reset flash wait state configuration to default 0 wait states */ - FLASH->ACR &= (unsigned long)((unsigned long)~FLASH_ACR_LATENCY); -#if (BOOT_CPU_SYSTEM_SPEED_KHZ > 48000) - /* configure 2 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_2; -#elif (BOOT_CPU_SYSTEM_SPEED_KHZ > 24000) - /* configure 1 flash wait states */ - FLASH->ACR |= (unsigned long)FLASH_ACR_LATENCY_1; -#endif - /* HCLK = SYSCLK */ - RCC->CFGR |= (unsigned long)RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK/2 */ - RCC->CFGR |= (unsigned long)RCC_CFGR_PPRE1_DIV2; - /* reset PLL configuration */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | \ - RCC_CFGR_PLLMULL)); - /* calculate multiplier value */ - pll_multiplier = BOOT_CPU_SYSTEM_SPEED_KHZ/BOOT_CPU_XTAL_SPEED_KHZ; - /* convert to register value */ - pll_multiplier = (unsigned long)((pll_multiplier - 2) << 18); - /* set the PLL multiplier and clock source */ - RCC->CFGR |= (unsigned long)(RCC_CFGR_PLLSRC_HSE | pll_multiplier); - /* enable PLL */ - RCC->CR |= RCC_CR_PLLON; - /* wait till PLL is ready */ - while((RCC->CR & RCC_CR_PLLRDY) == 0) - { - } - /* select PLL as system clock source */ - RCC->CFGR &= (unsigned long)((unsigned long)~(RCC_CFGR_SW)); - RCC->CFGR |= (unsigned long)RCC_CFGR_SW_PLL; - /* wait till PLL is used as system clock source */ - while ((RCC->CFGR & (unsigned long)RCC_CFGR_SWS) != (unsigned long)0x08) - { - } -#if (BOOT_COM_UART_ENABLE == 0) - /* initialize the UART interface if this is not the interface used to - * reactivate OpenBLT, because stdio_mini needs it for printf/scanf. - */ - UartInit(BOOT_COM_UART_BAUDRATE); -#endif - /* init the led driver */ - LedInit(); - /* init the timer driver */ - TimerInit(); - /* enable IRQ's, because they were initially disabled by the bootloader */ - IrqInterruptEnable(); -} /*** end of Init ***/ - - -/*********************************** end of main.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/memory.x b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/memory.x deleted file mode 100644 index 32ba23df..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/memory.x +++ /dev/null @@ -1,38 +0,0 @@ -MEMORY -{ - FLASH (rx) : ORIGIN = 0x08002000, LENGTH = 120K - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K -} - -SECTIONS -{ - __STACKSIZE__ = 1024; - - .text : - { - KEEP(*(.isr_vector)) - *(.text*) - *(.rodata*) - _etext = .; - } > FLASH - - - .data : AT (ADDR(.text) + SIZEOF(.text)) - { - _data = .; - *(vtable) - *(.data*) - _edata = .; - } > SRAM - - .bss : - { - _bss = .; - *(.bss*) - *(COMMON) - _ebss = .; - _stack = .; - . = ALIGN(MAX(_stack + __STACKSIZE__ , .), 4); - _estack = .; - } > SRAM -} diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/timer.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/timer.c deleted file mode 100644 index 282215a8..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/timer.c +++ /dev/null @@ -1,115 +0,0 @@ -/**************************************************************************************** -| Description: Timer driver source file -| File Name: timer.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* Local data declarations -****************************************************************************************/ -static unsigned long millisecond_counter; - - -/**************************************************************************************** -** NAME: TimerInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the timer. -** -****************************************************************************************/ -void TimerInit(void) -{ - /* configure the SysTick timer for 1 ms period */ - SysTick_Config(BOOT_CPU_SYSTEM_SPEED_KHZ); - /* reset the millisecond counter */ - TimerSet(0); -} /*** end of TimerInit ***/ - - -/**************************************************************************************** -** NAME: TimerDeinit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Stops the timer. -** -****************************************************************************************/ -void TimerDeinit(void) -{ - SysTick->CTRL = 0; -} /*** end of TimerDeinit ***/ - - -/**************************************************************************************** -** NAME: TimerSet -** PARAMETER: timer_value initialize value of the millisecond timer. -** RETURN VALUE: none -** DESCRIPTION: Sets the initial counter value of the millisecond timer. -** -****************************************************************************************/ -void TimerSet(unsigned long timer_value) -{ - /* set the millisecond counter */ - millisecond_counter = timer_value; -} /*** end of TimerSet ***/ - - -/**************************************************************************************** -** NAME: TimerGet -** PARAMETER: none -** RETURN VALUE: current value of the millisecond timer -** DESCRIPTION: Obtains the counter value of the millisecond timer. -** -****************************************************************************************/ -unsigned long TimerGet(void) -{ - /* read and return the millisecond counter value */ - return millisecond_counter; -} /*** end of TimerGet ***/ - - -/**************************************************************************************** -** NAME: TimerISRHandler -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Interrupt service routine of the timer. -** -****************************************************************************************/ -void TimerISRHandler(void) -{ - /* increment the millisecond counter */ - millisecond_counter++; -} /*** end of TimerISRHandler ***/ - - -/*********************************** end of timer.c ************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/timer.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/timer.h deleted file mode 100644 index b3da70d4..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/timer.h +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************************** -| Description: Timer driver header file -| File Name: timer.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ -#ifndef TIMER_H -#define TIMER_H - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -void TimerInit(void); -void TimerDeinit(void); -void TimerSet(unsigned long timer_value); -unsigned long TimerGet(void); -void TimerISRHandler(void); - -#endif /* TIMER_H */ -/*********************************** end of timer.h ************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/uart.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/uart.c deleted file mode 100644 index 69d5f1f3..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/uart.c +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************************** -| Description: UART driver source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: baudrate communication speed in bits/sec -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART interface for the selected communication speed. -** -****************************************************************************************/ -void UartInit(unsigned long baudrate) -{ - GPIO_InitTypeDef GPIO_InitStruct; - USART_InitTypeDef USART_InitStruct; - - /* enable UART peripheral clock */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); - /* enable GPIO peripheral clock for transmitter and receiver pins */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); - /* configure USART Tx as alternate function push-pull */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* Configure USART Rx as alternate function input floating */ - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; - GPIO_Init(GPIOA, &GPIO_InitStruct); - /* configure UART communcation parameters */ - USART_InitStruct.USART_BaudRate = baudrate; - USART_InitStruct.USART_WordLength = USART_WordLength_8b; - USART_InitStruct.USART_StopBits = USART_StopBits_1; - USART_InitStruct.USART_Parity = USART_Parity_No; - USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_Init(USART2, &USART_InitStruct); - /* enable UART */ - USART_Cmd(USART2, ENABLE); -} /*** end of UartInit ***/ - - -/**************************************************************************************** -** NAME: UartTxChar -** PARAMETER: ch character to transmit -** RETURN VALUE: the transmitted character. -** DESCRIPTION: Transmits a character through the UART interface. -** -****************************************************************************************/ -int UartTxChar(int ch) -{ - /* wait for transmit completion of the previous character, if any */ - while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET) { ; } - /* transmit the character */ - USART_SendData(USART2, (unsigned char)ch); - /* for stdio compatibility */ - return ch; -} /*** end of UartTxChar ***/ - - -/**************************************************************************************** -** NAME: UartRxChar -** PARAMETER: blocking 1 to block until a character was received, 0 otherwise. -** RETURN VALUE: the value of the received character or -1. -** DESCRIPTION: Receives a character from the UART interface. -** -****************************************************************************************/ -int UartRxChar(unsigned char blocking) -{ - if (!blocking) - { - /* check flag to see if a byte was received */ - if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) - { - return -1; - } - } - else - { - /* wait for reception of byte */ - while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) { ; } - } - /* retrieve and return the newly received byte */ - return USART_ReceiveData(USART2); -} /*** end of UartRxChar ***/ - - -/*********************************** end of uart.c *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/uart.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/uart.h deleted file mode 100644 index d92e6906..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/uart.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************************** -| Description: UART driver header file -| File Name: uart.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ -#ifndef UART_H -#define UART_H - -/**************************************************************************************** -* Function prototypes -****************************************************************************************/ -void UartInit(unsigned long baudrate); -int UartTxChar(int ch); -int UartRxChar(unsigned char blocking); - - -#endif /* UART_H */ -/*********************************** end of uart.h *************************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/vectors.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/vectors.c deleted file mode 100644 index 9f671c56..00000000 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC_Eclipse/Prog/vectors.c +++ /dev/null @@ -1,166 +0,0 @@ -/**************************************************************************************** -| Description: bootloader interrupt vector table source file -| File Name: vectors.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT without being obliged to provide the source code for any -| proprietary components. The exception text is included at the bottom of the license -| file . -| -****************************************************************************************/ - -/**************************************************************************************** -* Include files -****************************************************************************************/ -#include "header.h" /* generic header */ - - -/**************************************************************************************** -* External functions -****************************************************************************************/ -extern void reset_handler(void); /* implemented in cstart.c */ - - -/**************************************************************************************** -* External data declarations -****************************************************************************************/ -extern unsigned long _estack; /* stack end address (memory.x) */ - - -/**************************************************************************************** -** NAME: UnusedISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Catch-all for unused interrrupt service routines. -** -****************************************************************************************/ -void UnusedISR(void) -{ - /* unexpected interrupt occured, so halt the system */ - while (1) { ; } -} /*** end of UnusedISR ***/ - - -/**************************************************************************************** -* I N T E R R U P T V E C T O R T A B L E -****************************************************************************************/ -typedef union -{ - void (*func)(void); /* for ISR function pointers */ - unsigned long ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ - -__attribute__ ((section(".isr_vector"))) -const tIsrFunc _vectab[] = -{ - { .ptr = (unsigned long)&_estack }, /* the initial stack pointer */ - { reset_handler }, /* the reset handler */ - { UnusedISR }, /* NMI Handler */ - { UnusedISR }, /* Hard Fault Handler */ - { UnusedISR }, /* MPU Fault Handler */ - { UnusedISR }, /* Bus Fault Handler */ - { UnusedISR }, /* Usage Fault Handler */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* SVCall Handler */ - { UnusedISR }, /* Debug Monitor Handler */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* PendSV Handler */ - { TimerISRHandler }, /* SysTick Handler */ - { UnusedISR }, /* Window Watchdog */ - { UnusedISR }, /* PVD through EXTI Line detect */ - { UnusedISR }, /* Tamper */ - { UnusedISR }, /* RTC */ - { UnusedISR }, /* Flash */ - { UnusedISR }, /* RCC */ - { UnusedISR }, /* EXTI Line 0 */ - { UnusedISR }, /* EXTI Line 1 */ - { UnusedISR }, /* EXTI Line 2 */ - { UnusedISR }, /* EXTI Line 3 */ - { UnusedISR }, /* EXTI Line 4 */ - { UnusedISR }, /* DMA1 Channel 1 */ - { UnusedISR }, /* DMA1 Channel 2 */ - { UnusedISR }, /* DMA1 Channel 3 */ - { UnusedISR }, /* DMA1 Channel 4 */ - { UnusedISR }, /* DMA1 Channel 5 */ - { UnusedISR }, /* DMA1 Channel 6 */ - { UnusedISR }, /* DMA1 Channel 7 */ - { UnusedISR }, /* ADC1 and ADC2 */ - { UnusedISR }, /* CAN1 TX */ - { UnusedISR }, /* CAN1 RX0 */ - { UnusedISR }, /* CAN1 RX1 */ - { UnusedISR }, /* CAN1 SCE */ - { UnusedISR }, /* EXTI Line 9..5 */ - { UnusedISR }, /* TIM1 Break */ - { UnusedISR }, /* TIM1 Update */ - { UnusedISR }, /* TIM1 Trigger and Commutation */ - { UnusedISR }, /* TIM1 Capture Compare */ - { UnusedISR }, /* TIM2 */ - { UnusedISR }, /* TIM3 */ - { UnusedISR }, /* TIM4 */ - { UnusedISR }, /* I2C1 Event */ - { UnusedISR }, /* I2C1 Error */ - { UnusedISR }, /* I2C2 Event */ - { UnusedISR }, /* I2C1 Error */ - { UnusedISR }, /* SPI1 */ - { UnusedISR }, /* SPI2 */ - { UnusedISR }, /* USART1 */ - { UnusedISR }, /* USART2 */ - { UnusedISR }, /* USART3 */ - { UnusedISR }, /* EXTI Line 15..10 */ - { UnusedISR }, /* RTC alarm through EXTI line */ - { UnusedISR }, /* USB OTG FS Wakeup */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* Reserved */ - { UnusedISR }, /* TIM5 */ - { UnusedISR }, /* SPI3 */ - { UnusedISR }, /* UART4 */ - { UnusedISR }, /* UART5 */ - { UnusedISR }, /* TIM6 */ - { UnusedISR }, /* TIM7 */ - { UnusedISR }, /* DMA2 Channel1 */ - { UnusedISR }, /* DMA2 Channel2 */ - { UnusedISR }, /* DMA2 Channel3 */ - { UnusedISR }, /* DMA2 Channel4 */ - { UnusedISR }, /* DMA2 Channel5 */ - { UnusedISR }, /* Ethernet */ - { UnusedISR }, /* Ethernet Wakeup */ - { UnusedISR }, /* CAN2 TX */ - { UnusedISR }, /* CAN2 RX0 */ - { UnusedISR }, /* CAN2 RX1 */ - { UnusedISR }, /* CAN2 SCE */ - { UnusedISR }, /* USB OTG FS */ - { (void*)0x55AA11EE }, /* Reserved for OpenBLT checksum */ -}; - - -/************************************ end of hw.c **************************************/ - -

Copyright © KEIL - An ARM Company.
-All rights reserved.
-Visit our web site at
www.keil.com. -