summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore30
-rw-r--r--code/main/how_to_build_zephr.txt25
-rw-r--r--code/main/teensy_goalie/.vscode/extensions.json10
-rw-r--r--code/main/teensy_goalie/include/README37
-rw-r--r--code/main/teensy_goalie/lib/README46
-rw-r--r--code/main/teensy_goalie/platformio.ini14
-rw-r--r--code/main/teensy_goalie/src/main.c48
-rw-r--r--code/main/teensy_goalie/src/main.cpp18
-rw-r--r--code/main/teensy_goalie/test/README11
-rw-r--r--code/main/teensy_player/.vscode/extensions.json10
-rw-r--r--code/main/teensy_player/CMakeLists.txt7
-rw-r--r--code/main/teensy_player/include/README37
-rw-r--r--code/main/teensy_player/lib/README46
-rw-r--r--code/main/teensy_player/platformio.ini14
-rw-r--r--code/main/teensy_player/player.yaml12
-rw-r--r--code/main/teensy_player/prj.conf2
-rw-r--r--code/main/teensy_player/src/main.c48
-rw-r--r--code/main/teensy_player/src/main.cpp1
-rw-r--r--code/main/teensy_player/test/README11
19 files changed, 170 insertions, 257 deletions
diff --git a/.gitignore b/.gitignore
index 77819c5..1548ee6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -138,5 +138,31 @@ artifacts/
.vscode/ipch
-# more
-
+# zephyr
+.temp/
+.libs/
+*.lo
+*.la
+*.o
+*.loT
+ext/build/
+ext/modules/
+ext/Makefile*
+ext/config*
+ext/acinclude.m4
+ext/aclocal.m4
+ext/autom4te*
+ext/install-sh
+ext/ltmain.sh
+ext/missing
+ext/mkinstalldirs
+ext/run-tests.php
+ext/.deps
+ext/libtool
+venv/
+zephyr/
+.west/
+modules/
+bootloader/
+tools/
+build/
diff --git a/code/main/how_to_build_zephr.txt b/code/main/how_to_build_zephr.txt
new file mode 100644
index 0000000..d971097
--- /dev/null
+++ b/code/main/how_to_build_zephr.txt
@@ -0,0 +1,25 @@
+https://docs.zephyrproject.org/latest/boards/pjrc/teensy4/doc/index.html
+https://docs.zephyrproject.org/latest/develop/getting_started/index.html
+
+replace /path/to/project/ with the actual path to you project
+
+Create, configure and enter virtual enviorment
+ python3 -m venv /path/to/project/.venv
+ source /path/to/project/.venv/bin/activate
+ pip install west
+ west init /path/to/project/
+ cd /path/to/project/
+ west update
+ west zephyr-export
+ west packages pip --install
+
+Install zephyr SDK
+ cd /path/to/project/zephyr
+ west sdk install
+
+build project for teensy 4.1:
+ west build -b teensy41 /path/to/project/
+
+flash project onto the device:
+ cd /path/to/project/
+ west flash
diff --git a/code/main/teensy_goalie/.vscode/extensions.json b/code/main/teensy_goalie/.vscode/extensions.json
deleted file mode 100644
index 080e70d..0000000
--- a/code/main/teensy_goalie/.vscode/extensions.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- // See http://go.microsoft.com/fwlink/?LinkId=827846
- // for the documentation about the extensions.json format
- "recommendations": [
- "platformio.platformio-ide"
- ],
- "unwantedRecommendations": [
- "ms-vscode.cpptools-extension-pack"
- ]
-}
diff --git a/code/main/teensy_goalie/include/README b/code/main/teensy_goalie/include/README
deleted file mode 100644
index 49819c0..0000000
--- a/code/main/teensy_goalie/include/README
+++ /dev/null
@@ -1,37 +0,0 @@
-
-This directory is intended for project header files.
-
-A header file is a file containing C declarations and macro definitions
-to be shared between several project source files. You request the use of a
-header file in your project source file (C, C++, etc) located in `src` folder
-by including it, with the C preprocessing directive `#include'.
-
-```src/main.c
-
-#include "header.h"
-
-int main (void)
-{
- ...
-}
-```
-
-Including a header file produces the same results as copying the header file
-into each source file that needs it. Such copying would be time-consuming
-and error-prone. With a header file, the related declarations appear
-in only one place. If they need to be changed, they can be changed in one
-place, and programs that include the header file will automatically use the
-new version when next recompiled. The header file eliminates the labor of
-finding and changing all the copies as well as the risk that a failure to
-find one copy will result in inconsistencies within a program.
-
-In C, the convention is to give header files names that end with `.h'.
-
-Read more about using header files in official GCC documentation:
-
-* Include Syntax
-* Include Operation
-* Once-Only Headers
-* Computed Includes
-
-https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
diff --git a/code/main/teensy_goalie/lib/README b/code/main/teensy_goalie/lib/README
deleted file mode 100644
index 9379397..0000000
--- a/code/main/teensy_goalie/lib/README
+++ /dev/null
@@ -1,46 +0,0 @@
-
-This directory is intended for project specific (private) libraries.
-PlatformIO will compile them to static libraries and link into the executable file.
-
-The source code of each library should be placed in a separate directory
-("lib/your_library_name/[Code]").
-
-For example, see the structure of the following example libraries `Foo` and `Bar`:
-
-|--lib
-| |
-| |--Bar
-| | |--docs
-| | |--examples
-| | |--src
-| | |- Bar.c
-| | |- Bar.h
-| | |- library.json (optional. for custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
-| |
-| |--Foo
-| | |- Foo.c
-| | |- Foo.h
-| |
-| |- README --> THIS FILE
-|
-|- platformio.ini
-|--src
- |- main.c
-
-Example contents of `src/main.c` using Foo and Bar:
-```
-#include <Foo.h>
-#include <Bar.h>
-
-int main (void)
-{
- ...
-}
-
-```
-
-The PlatformIO Library Dependency Finder will find automatically dependent
-libraries by scanning project source files.
-
-More information about PlatformIO Library Dependency Finder
-- https://docs.platformio.org/page/librarymanager/ldf.html
diff --git a/code/main/teensy_goalie/platformio.ini b/code/main/teensy_goalie/platformio.ini
deleted file mode 100644
index a13d034..0000000
--- a/code/main/teensy_goalie/platformio.ini
+++ /dev/null
@@ -1,14 +0,0 @@
-; PlatformIO Project Configuration File
-;
-; Build options: build flags, source filter
-; Upload options: custom upload port, speed and extra flags
-; Library options: dependencies, extra library storages
-; Advanced options: extra scripting
-;
-; Please visit documentation for the other options and examples
-; https://docs.platformio.org/page/projectconf.html
-
-[env:teensy41]
-platform = teensy
-board = teensy41
-framework = arduino
diff --git a/code/main/teensy_goalie/src/main.c b/code/main/teensy_goalie/src/main.c
new file mode 100644
index 0000000..f8aff35
--- /dev/null
+++ b/code/main/teensy_goalie/src/main.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2016 Intel Corporation
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <stdio.h>
+#include <zephyr/kernel.h>
+#include <zephyr/drivers/gpio.h>
+
+/* 1000 msec = 1 sec */
+#define SLEEP_TIME_MS 1000
+
+/* The devicetree node identifier for the "led0" alias. */
+#define LED0_NODE DT_ALIAS(led0)
+
+/*
+ * A build error on this line means your board is unsupported.
+ * See the sample documentation for information on how to fix this.
+ */
+static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
+
+int main(void)
+{
+ int ret;
+ bool led_state = true;
+
+ if (!gpio_is_ready_dt(&led)) {
+ return 0;
+ }
+
+ ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
+ if (ret < 0) {
+ return 0;
+ }
+
+ while (1) {
+ ret = gpio_pin_toggle_dt(&led);
+ if (ret < 0) {
+ return 0;
+ }
+
+ led_state = !led_state;
+ printf("LED state: %s\n", led_state ? "ON" : "OFF");
+ k_msleep(SLEEP_TIME_MS);
+ }
+ return 0;
+}
diff --git a/code/main/teensy_goalie/src/main.cpp b/code/main/teensy_goalie/src/main.cpp
deleted file mode 100644
index cb9fbba..0000000
--- a/code/main/teensy_goalie/src/main.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <Arduino.h>
-
-// put function declarations here:
-int myFunction(int, int);
-
-void setup() {
- // put your setup code here, to run once:
- int result = myFunction(2, 3);
-}
-
-void loop() {
- // put your main code here, to run repeatedly:
-}
-
-// put function definitions here:
-int myFunction(int x, int y) {
- return x + y;
-} \ No newline at end of file
diff --git a/code/main/teensy_goalie/test/README b/code/main/teensy_goalie/test/README
deleted file mode 100644
index 9b1e87b..0000000
--- a/code/main/teensy_goalie/test/README
+++ /dev/null
@@ -1,11 +0,0 @@
-
-This directory is intended for PlatformIO Test Runner and project tests.
-
-Unit Testing is a software testing method by which individual units of
-source code, sets of one or more MCU program modules together with associated
-control data, usage procedures, and operating procedures, are tested to
-determine whether they are fit for use. Unit testing finds problems early
-in the development cycle.
-
-More information about PlatformIO Unit Testing:
-- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html
diff --git a/code/main/teensy_player/.vscode/extensions.json b/code/main/teensy_player/.vscode/extensions.json
deleted file mode 100644
index 080e70d..0000000
--- a/code/main/teensy_player/.vscode/extensions.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- // See http://go.microsoft.com/fwlink/?LinkId=827846
- // for the documentation about the extensions.json format
- "recommendations": [
- "platformio.platformio-ide"
- ],
- "unwantedRecommendations": [
- "ms-vscode.cpptools-extension-pack"
- ]
-}
diff --git a/code/main/teensy_player/CMakeLists.txt b/code/main/teensy_player/CMakeLists.txt
new file mode 100644
index 0000000..4de34fb
--- /dev/null
+++ b/code/main/teensy_player/CMakeLists.txt
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: Apache-2.0
+
+cmake_minimum_required(VERSION 3.20.0)
+find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
+project(blinky)
+
+target_sources(app PRIVATE src/main.c)
diff --git a/code/main/teensy_player/include/README b/code/main/teensy_player/include/README
deleted file mode 100644
index 49819c0..0000000
--- a/code/main/teensy_player/include/README
+++ /dev/null
@@ -1,37 +0,0 @@
-
-This directory is intended for project header files.
-
-A header file is a file containing C declarations and macro definitions
-to be shared between several project source files. You request the use of a
-header file in your project source file (C, C++, etc) located in `src` folder
-by including it, with the C preprocessing directive `#include'.
-
-```src/main.c
-
-#include "header.h"
-
-int main (void)
-{
- ...
-}
-```
-
-Including a header file produces the same results as copying the header file
-into each source file that needs it. Such copying would be time-consuming
-and error-prone. With a header file, the related declarations appear
-in only one place. If they need to be changed, they can be changed in one
-place, and programs that include the header file will automatically use the
-new version when next recompiled. The header file eliminates the labor of
-finding and changing all the copies as well as the risk that a failure to
-find one copy will result in inconsistencies within a program.
-
-In C, the convention is to give header files names that end with `.h'.
-
-Read more about using header files in official GCC documentation:
-
-* Include Syntax
-* Include Operation
-* Once-Only Headers
-* Computed Includes
-
-https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
diff --git a/code/main/teensy_player/lib/README b/code/main/teensy_player/lib/README
deleted file mode 100644
index 9379397..0000000
--- a/code/main/teensy_player/lib/README
+++ /dev/null
@@ -1,46 +0,0 @@
-
-This directory is intended for project specific (private) libraries.
-PlatformIO will compile them to static libraries and link into the executable file.
-
-The source code of each library should be placed in a separate directory
-("lib/your_library_name/[Code]").
-
-For example, see the structure of the following example libraries `Foo` and `Bar`:
-
-|--lib
-| |
-| |--Bar
-| | |--docs
-| | |--examples
-| | |--src
-| | |- Bar.c
-| | |- Bar.h
-| | |- library.json (optional. for custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
-| |
-| |--Foo
-| | |- Foo.c
-| | |- Foo.h
-| |
-| |- README --> THIS FILE
-|
-|- platformio.ini
-|--src
- |- main.c
-
-Example contents of `src/main.c` using Foo and Bar:
-```
-#include <Foo.h>
-#include <Bar.h>
-
-int main (void)
-{
- ...
-}
-
-```
-
-The PlatformIO Library Dependency Finder will find automatically dependent
-libraries by scanning project source files.
-
-More information about PlatformIO Library Dependency Finder
-- https://docs.platformio.org/page/librarymanager/ldf.html
diff --git a/code/main/teensy_player/platformio.ini b/code/main/teensy_player/platformio.ini
deleted file mode 100644
index a13d034..0000000
--- a/code/main/teensy_player/platformio.ini
+++ /dev/null
@@ -1,14 +0,0 @@
-; PlatformIO Project Configuration File
-;
-; Build options: build flags, source filter
-; Upload options: custom upload port, speed and extra flags
-; Library options: dependencies, extra library storages
-; Advanced options: extra scripting
-;
-; Please visit documentation for the other options and examples
-; https://docs.platformio.org/page/projectconf.html
-
-[env:teensy41]
-platform = teensy
-board = teensy41
-framework = arduino
diff --git a/code/main/teensy_player/player.yaml b/code/main/teensy_player/player.yaml
new file mode 100644
index 0000000..de71191
--- /dev/null
+++ b/code/main/teensy_player/player.yaml
@@ -0,0 +1,12 @@
+sample:
+ name: Blinky Sample
+tests:
+ sample.basic.blinky:
+ tags:
+ - LED
+ - gpio
+ filter: dt_enabled_alias_with_parent_compat("led0", "gpio-leds")
+ depends_on: gpio
+ harness: led
+ integration_platforms:
+ - frdm_k64f
diff --git a/code/main/teensy_player/prj.conf b/code/main/teensy_player/prj.conf
new file mode 100644
index 0000000..75bb3d2
--- /dev/null
+++ b/code/main/teensy_player/prj.conf
@@ -0,0 +1,2 @@
+CONFIG_GPIO=y
+CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=y
diff --git a/code/main/teensy_player/src/main.c b/code/main/teensy_player/src/main.c
new file mode 100644
index 0000000..f8aff35
--- /dev/null
+++ b/code/main/teensy_player/src/main.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2016 Intel Corporation
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <stdio.h>
+#include <zephyr/kernel.h>
+#include <zephyr/drivers/gpio.h>
+
+/* 1000 msec = 1 sec */
+#define SLEEP_TIME_MS 1000
+
+/* The devicetree node identifier for the "led0" alias. */
+#define LED0_NODE DT_ALIAS(led0)
+
+/*
+ * A build error on this line means your board is unsupported.
+ * See the sample documentation for information on how to fix this.
+ */
+static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
+
+int main(void)
+{
+ int ret;
+ bool led_state = true;
+
+ if (!gpio_is_ready_dt(&led)) {
+ return 0;
+ }
+
+ ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
+ if (ret < 0) {
+ return 0;
+ }
+
+ while (1) {
+ ret = gpio_pin_toggle_dt(&led);
+ if (ret < 0) {
+ return 0;
+ }
+
+ led_state = !led_state;
+ printf("LED state: %s\n", led_state ? "ON" : "OFF");
+ k_msleep(SLEEP_TIME_MS);
+ }
+ return 0;
+}
diff --git a/code/main/teensy_player/src/main.cpp b/code/main/teensy_player/src/main.cpp
deleted file mode 100644
index dca27d8..0000000
--- a/code/main/teensy_player/src/main.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <Arduino.h>
diff --git a/code/main/teensy_player/test/README b/code/main/teensy_player/test/README
deleted file mode 100644
index 9b1e87b..0000000
--- a/code/main/teensy_player/test/README
+++ /dev/null
@@ -1,11 +0,0 @@
-
-This directory is intended for PlatformIO Test Runner and project tests.
-
-Unit Testing is a software testing method by which individual units of
-source code, sets of one or more MCU program modules together with associated
-control data, usage procedures, and operating procedures, are tested to
-determine whether they are fit for use. Unit testing finds problems early
-in the development cycle.
-
-More information about PlatformIO Unit Testing:
-- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html