Nathan Yonkee / Mbed 2 deprecated Nucleo_sinewave_output_copy

Dependencies:   mbed

Committer:
Nathan Yonkee
Date:
Fri Mar 02 07:12:37 2018 -0700
Revision:
9:d58e77ebd769
add mbed-os library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nathan Yonkee 9:d58e77ebd769 1 /* mbed Microcontroller Library
Nathan Yonkee 9:d58e77ebd769 2 * Copyright (c) 2017 ARM Limited
Nathan Yonkee 9:d58e77ebd769 3 *
Nathan Yonkee 9:d58e77ebd769 4 * Licensed under the Apache License, Version 2.0 (the "License");
Nathan Yonkee 9:d58e77ebd769 5 * you may not use this file except in compliance with the License.
Nathan Yonkee 9:d58e77ebd769 6 * You may obtain a copy of the License at
Nathan Yonkee 9:d58e77ebd769 7 *
Nathan Yonkee 9:d58e77ebd769 8 * http://www.apache.org/licenses/LICENSE-2.0
Nathan Yonkee 9:d58e77ebd769 9 *
Nathan Yonkee 9:d58e77ebd769 10 * Unless required by applicable law or agreed to in writing, software
Nathan Yonkee 9:d58e77ebd769 11 * distributed under the License is distributed on an "AS IS" BASIS,
Nathan Yonkee 9:d58e77ebd769 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Nathan Yonkee 9:d58e77ebd769 13 * See the License for the specific language governing permissions and
Nathan Yonkee 9:d58e77ebd769 14 * limitations under the License.
Nathan Yonkee 9:d58e77ebd769 15 */
Nathan Yonkee 9:d58e77ebd769 16 #include "greentea-client/test_env.h"
Nathan Yonkee 9:d58e77ebd769 17
Nathan Yonkee 9:d58e77ebd769 18 #define PATTERN_CHECK_VALUE 0xF0F0ADAD
Nathan Yonkee 9:d58e77ebd769 19
Nathan Yonkee 9:d58e77ebd769 20 class Test {
Nathan Yonkee 9:d58e77ebd769 21
Nathan Yonkee 9:d58e77ebd769 22 private:
Nathan Yonkee 9:d58e77ebd769 23 const char* name;
Nathan Yonkee 9:d58e77ebd769 24 const int pattern;
Nathan Yonkee 9:d58e77ebd769 25
Nathan Yonkee 9:d58e77ebd769 26 public:
Nathan Yonkee 9:d58e77ebd769 27 Test(const char* _name, bool print_message=true) : name(_name), pattern(PATTERN_CHECK_VALUE) {
Nathan Yonkee 9:d58e77ebd769 28 if (print_message) {
Nathan Yonkee 9:d58e77ebd769 29 print("init");
Nathan Yonkee 9:d58e77ebd769 30 }
Nathan Yonkee 9:d58e77ebd769 31 }
Nathan Yonkee 9:d58e77ebd769 32
Nathan Yonkee 9:d58e77ebd769 33 void print(const char *message) {
Nathan Yonkee 9:d58e77ebd769 34 printf("%s::%s\n", name, message);
Nathan Yonkee 9:d58e77ebd769 35 }
Nathan Yonkee 9:d58e77ebd769 36
Nathan Yonkee 9:d58e77ebd769 37 bool check_init(void) {
Nathan Yonkee 9:d58e77ebd769 38 bool result = (pattern == PATTERN_CHECK_VALUE);
Nathan Yonkee 9:d58e77ebd769 39 print(result ? "check_init: OK" : "check_init: ERROR");
Nathan Yonkee 9:d58e77ebd769 40 return result;
Nathan Yonkee 9:d58e77ebd769 41 }
Nathan Yonkee 9:d58e77ebd769 42
Nathan Yonkee 9:d58e77ebd769 43 void stack_test(void) {
Nathan Yonkee 9:d58e77ebd769 44 print("stack_test");
Nathan Yonkee 9:d58e77ebd769 45 Test t("Stack");
Nathan Yonkee 9:d58e77ebd769 46 t.hello();
Nathan Yonkee 9:d58e77ebd769 47 }
Nathan Yonkee 9:d58e77ebd769 48
Nathan Yonkee 9:d58e77ebd769 49 void hello(void) {
Nathan Yonkee 9:d58e77ebd769 50 print("hello");
Nathan Yonkee 9:d58e77ebd769 51 }
Nathan Yonkee 9:d58e77ebd769 52
Nathan Yonkee 9:d58e77ebd769 53 ~Test() {
Nathan Yonkee 9:d58e77ebd769 54 print("destroy");
Nathan Yonkee 9:d58e77ebd769 55 }
Nathan Yonkee 9:d58e77ebd769 56 };
Nathan Yonkee 9:d58e77ebd769 57
Nathan Yonkee 9:d58e77ebd769 58 /* Check C++ startup initialisation */
Nathan Yonkee 9:d58e77ebd769 59 Test s("Static", false);
Nathan Yonkee 9:d58e77ebd769 60
Nathan Yonkee 9:d58e77ebd769 61 /* EXPECTED OUTPUT:
Nathan Yonkee 9:d58e77ebd769 62 *******************
Nathan Yonkee 9:d58e77ebd769 63 Static::init
Nathan Yonkee 9:d58e77ebd769 64 Static::stack_test
Nathan Yonkee 9:d58e77ebd769 65 Stack::init
Nathan Yonkee 9:d58e77ebd769 66 Stack::hello
Nathan Yonkee 9:d58e77ebd769 67 Stack::destroy
Nathan Yonkee 9:d58e77ebd769 68 Static::check_init: OK
Nathan Yonkee 9:d58e77ebd769 69 Heap::init
Nathan Yonkee 9:d58e77ebd769 70 Heap::hello
Nathan Yonkee 9:d58e77ebd769 71 Heap::destroy
Nathan Yonkee 9:d58e77ebd769 72 *******************/
Nathan Yonkee 9:d58e77ebd769 73 int main (void) {
Nathan Yonkee 9:d58e77ebd769 74 GREENTEA_SETUP(10, "default_auto");
Nathan Yonkee 9:d58e77ebd769 75
Nathan Yonkee 9:d58e77ebd769 76 bool result = true;
Nathan Yonkee 9:d58e77ebd769 77 for (;;)
Nathan Yonkee 9:d58e77ebd769 78 {
Nathan Yonkee 9:d58e77ebd769 79 s.print("init");
Nathan Yonkee 9:d58e77ebd769 80 // Global stack object simple test
Nathan Yonkee 9:d58e77ebd769 81 s.stack_test();
Nathan Yonkee 9:d58e77ebd769 82 if (s.check_init() == false)
Nathan Yonkee 9:d58e77ebd769 83 {
Nathan Yonkee 9:d58e77ebd769 84 result = false;
Nathan Yonkee 9:d58e77ebd769 85 break;
Nathan Yonkee 9:d58e77ebd769 86 }
Nathan Yonkee 9:d58e77ebd769 87
Nathan Yonkee 9:d58e77ebd769 88 // Heap test object simple test
Nathan Yonkee 9:d58e77ebd769 89 Test *m = new Test("Heap");
Nathan Yonkee 9:d58e77ebd769 90 m->hello();
Nathan Yonkee 9:d58e77ebd769 91
Nathan Yonkee 9:d58e77ebd769 92 if (m->check_init() == false)
Nathan Yonkee 9:d58e77ebd769 93 {
Nathan Yonkee 9:d58e77ebd769 94 result = false;
Nathan Yonkee 9:d58e77ebd769 95 }
Nathan Yonkee 9:d58e77ebd769 96 delete m;
Nathan Yonkee 9:d58e77ebd769 97 break;
Nathan Yonkee 9:d58e77ebd769 98 }
Nathan Yonkee 9:d58e77ebd769 99
Nathan Yonkee 9:d58e77ebd769 100 GREENTEA_TESTSUITE_RESULT(result);
Nathan Yonkee 9:d58e77ebd769 101 }