summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPProvost <[email protected]>2020-05-13 11:58:01 -0600
committerPProvost <[email protected]>2020-05-13 11:58:01 -0600
commit6d0acd178287b18857422e8914aebca737d23b3f (patch)
treecc43deaad3120713008cc0a8c9bdf970fa686471
parent9489fb47698101a62ee44ad6dee9886fd1139239 (diff)
New readme and some cleanup
-rwxr-xr-xREADME.md75
-rw-r--r--TODO0
-rw-r--r--cmake/arm-none-eabi.cmake29
-rw-r--r--cmake/cortex_m0.cmake13
-rw-r--r--cmake/cortex_m3.cmake13
-rw-r--r--cmake/cortex_m4.cmake13
-rw-r--r--cmake/cortex_m7.cmake13
-rw-r--r--cmake/utilities.cmake15
-rw-r--r--docs/USBX_Device_Stack_User_Guide.docxbin568349 -> 0 bytes
-rw-r--r--docs/USBX_Host_Stack_UVC_User_Guide.docxbin68907 -> 0 bytes
-rw-r--r--docs/USBX_Host_Stack_User_Guide.docxbin512866 -> 0 bytes
-rwxr-xr-xrebuild.sh20
12 files changed, 170 insertions, 21 deletions
diff --git a/README.md b/README.md
index 379da1b..c15051f 100755
--- a/README.md
+++ b/README.md
@@ -1 +1,74 @@
-# USBX \ No newline at end of file
+# Azure RTOS UsbX
+
+A high-performance USB host, device, and on-the-go (OTG) embedded stack, Azure RTOS USBX is fully integrated with Azure RTOS ThreadX and available for all Azure RTOS ThreadX–supported processors. Like Azure RTOS ThreadX, Azure RTOS USBX is designed to have a small footprint and high performance, making it ideal for deeply embedded applications that require an interface with USB devices.
+
+## Documentation
+
+Documentation for this library can be found here: http://docs.microsoft.com/azure/rtos/usbx
+
+# Building and using the library
+
+## Prerequisites
+
+Install the following tools:
+
+* [CMake](https://cmake.org/download/) version 3.0 or later
+* [GCC compilers for arm-none-eabi](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)
+* [Ninja](https://ninja-build.org/)
+
+## Cloning the repo
+
+```bash
+$ git clone https://github.com/azure-rtos/usbx.git
+```
+
+## Building the threadx static library
+
+Each component of Azure RTOS comes with a composible CMake-based build system that supports many different MCUs and host systems. Integrating any of these components into your device app code is as simple as adding a git submodule and then including it in your build using the CMake command `add_subdirectory()`.
+
+While the typical usage pattern is to include threadx into your device code source tree to be built & linked with your code, you can compile threadx as a standalone static library to confirm your build is set up correctly.
+
+```bash
+$ cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake -GNinja .
+
+$ cmake --build ./build
+```
+
+# Repository Structure and Usage
+
+## Branches & Releases
+
+The master branch has the most recent code with all new features and bug fixes. It does not represent the latest General Availability (GA) release of the library.
+
+## Releases
+
+Each official release (preview or GA) will be tagged to mark the commit and push it into the Github releases tab, e.g. `v6.0-rel`.
+
+## Directory layout
+
+```
+- cmake
+- common
+ - inc
+ - src
+- ports
+ - cortex_m0/gnu
+ - inc
+ - src
+ - cortex_m3/gnu
+ - inc
+ - src
+ - cortex_m4/gnu
+ - inc
+ - src
+ - cortex_m7/gnu
+ - inc
+ - src
+- samples
+```
+
+# Contribution, feedback and issues
+
+If you encounter any bugs, have suggestions for new features or if you would like to become an active contributor to this project please follow the instructions provided in the contribution guideline for the corresponding repo.
+
+For general support, please post a question to [Stack Overflow](http://stackoverflow.com/questions/tagged/azure-rtos+threadx) using the `threadx` and `azure-rtos` tags. \ No newline at end of file
diff --git a/TODO b/TODO
deleted file mode 100644
index e69de29..0000000
--- a/TODO
+++ /dev/null
diff --git a/cmake/arm-none-eabi.cmake b/cmake/arm-none-eabi.cmake
new file mode 100644
index 0000000..147ce7a
--- /dev/null
+++ b/cmake/arm-none-eabi.cmake
@@ -0,0 +1,29 @@
+# Toolchain settings
+set(CMAKE_C_COMPILER arm-none-eabi-gcc)
+set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
+set(AS arm-none-eabi-as)
+set(AR arm-none-eabi-ar)
+set(OBJCOPY arm-none-eabi-objcopy)
+set(OBJDUMP arm-none-eabi-objdump)
+set(SIZE arm-none-eabi-size)
+
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+# this makes the test compiles use static library option so that we don't need to pre-set linker flags and scripts
+set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
+
+set(CMAKE_C_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} ${SPEC_FLAGS} -fdata-sections -ffunction-sections -mlong-calls" CACHE INTERNAL "c compiler flags")
+set(CMAKE_CXX_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -mlong-calls" CACHE INTERNAL "cxx compiler flags")
+set(CMAKE_ASM_FLAGS "${MCPU_FLAGS} -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags")
+set(CMAKE_EXE_LINKER_FLAGS "${MCPU_FLAGS} ${LD_FLAGS} -Wl,--gc-sections" CACHE INTERNAL "exe link flags")
+
+SET(CMAKE_C_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "c debug compiler flags")
+SET(CMAKE_CXX_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "cxx debug compiler flags")
+SET(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug compiler flags")
+
+SET(CMAKE_C_FLAGS_RELEASE "-O3" CACHE INTERNAL "c release compiler flags")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O3" CACHE INTERNAL "cxx release compiler flags")
+SET(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release compiler flags") \ No newline at end of file
diff --git a/cmake/cortex_m0.cmake b/cmake/cortex_m0.cmake
new file mode 100644
index 0000000..c1ecc14
--- /dev/null
+++ b/cmake/cortex_m0.cmake
@@ -0,0 +1,13 @@
+# Name of the target
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMAKE_SYSTEM_PROCESSOR cortex-m4)
+
+set(THREADX_ARCH "cortex_m0")
+set(THREADX_TOOLCHAIN "gnu")
+
+set(MCPU_FLAGS "-mthumb -mcpu=cortex-m0")
+set(VFP_FLAGS "")
+set(SPEC_FLAGS "--specs=nosys.specs")
+# set(LD_FLAGS "-nostartfiles")
+
+include(${CMAKE_CURRENT_LIST_DIR}/arm-none-eabi.cmake) \ No newline at end of file
diff --git a/cmake/cortex_m3.cmake b/cmake/cortex_m3.cmake
new file mode 100644
index 0000000..622c456
--- /dev/null
+++ b/cmake/cortex_m3.cmake
@@ -0,0 +1,13 @@
+# Name of the target
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMAKE_SYSTEM_PROCESSOR cortex-m4)
+
+set(THREADX_ARCH "cortex_m3")
+set(THREADX_TOOLCHAIN "gnu")
+
+set(MCPU_FLAGS "-mthumb -mcpu=cortex-m3")
+set(VFP_FLAGS "")
+set(SPEC_FLAGS "--specs=nosys.specs")
+# set(LD_FLAGS "-nostartfiles")
+
+include(${CMAKE_CURRENT_LIST_DIR}/arm-none-eabi.cmake) \ No newline at end of file
diff --git a/cmake/cortex_m4.cmake b/cmake/cortex_m4.cmake
new file mode 100644
index 0000000..c391735
--- /dev/null
+++ b/cmake/cortex_m4.cmake
@@ -0,0 +1,13 @@
+# Name of the target
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMAKE_SYSTEM_PROCESSOR cortex-m4)
+
+set(THREADX_ARCH "cortex_m4")
+set(THREADX_TOOLCHAIN "gnu")
+
+set(MCPU_FLAGS "-mthumb -mcpu=cortex-m4")
+set(VFP_FLAGS "")
+set(SPEC_FLAGS "--specs=nosys.specs")
+# set(LD_FLAGS "-nostartfiles")
+
+include(${CMAKE_CURRENT_LIST_DIR}/arm-none-eabi.cmake) \ No newline at end of file
diff --git a/cmake/cortex_m7.cmake b/cmake/cortex_m7.cmake
new file mode 100644
index 0000000..c4e48fa
--- /dev/null
+++ b/cmake/cortex_m7.cmake
@@ -0,0 +1,13 @@
+# Name of the target
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMAKE_SYSTEM_PROCESSOR cortex-m7)
+
+set(THREADX_ARCH "cortex_m7")
+set(THREADX_TOOLCHAIN "gnu")
+
+set(MCPU_FLAGS "-mthumb -mcpu=cortex-m7")
+set(VFP_FLAGS "")
+set(SPEC_FLAGS "--specs=nosys.specs")
+# set(LD_FLAGS "-nostartfiles")
+
+include(${CMAKE_CURRENT_LIST_DIR}/arm-none-eabi.cmake) \ No newline at end of file
diff --git a/cmake/utilities.cmake b/cmake/utilities.cmake
new file mode 100644
index 0000000..801d87e
--- /dev/null
+++ b/cmake/utilities.cmake
@@ -0,0 +1,15 @@
+# Add the required subdirectory and register it for linkage
+function(add_azrtos_component_dir dirname)
+ # Store the current list in a temp
+ set(tmp ${azrtos_targets})
+ # Add the subdir
+ add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/lib/${dirname})
+ # If there is a linker script defined, use it
+ if(EXISTS ${LINKER_SCRIPT})
+ target_link_options(${dirname} INTERFACE -T ${LINKER_SCRIPT})
+ endif()
+ # Add this target into the temp
+ list(APPEND tmp "azrtos::${dirname}")
+ # Copy the temp back up to the parent list
+ set(azrtos_targets ${tmp} PARENT_SCOPE)
+endfunction() \ No newline at end of file
diff --git a/docs/USBX_Device_Stack_User_Guide.docx b/docs/USBX_Device_Stack_User_Guide.docx
deleted file mode 100644
index 6d9f66a..0000000
--- a/docs/USBX_Device_Stack_User_Guide.docx
+++ /dev/null
Binary files differ
diff --git a/docs/USBX_Host_Stack_UVC_User_Guide.docx b/docs/USBX_Host_Stack_UVC_User_Guide.docx
deleted file mode 100644
index d942d89..0000000
--- a/docs/USBX_Host_Stack_UVC_User_Guide.docx
+++ /dev/null
Binary files differ
diff --git a/docs/USBX_Host_Stack_User_Guide.docx b/docs/USBX_Host_Stack_User_Guide.docx
deleted file mode 100644
index 8374609..0000000
--- a/docs/USBX_Host_Stack_User_Guide.docx
+++ /dev/null
Binary files differ
diff --git a/rebuild.sh b/rebuild.sh
deleted file mode 100755
index 539f3dd..0000000
--- a/rebuild.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-# Use paths relative to this script's location
-SCRIPT=$(readlink -f "$0")
-BASEDIR=$(dirname "$SCRIPT")
-
-# If you want to build into a different directory, change this variable
-BUILDDIR="$BASEDIR/build"
-
-# Create our build folder if required and clear it
-mkdir -p $BUILDDIR
-rm -rf $BUILDDIR/*
-
-# Generate the build system using Ninja
-cmake -B"$BUILDDIR" -GNinja -DCMAKE_TOOLCHAIN_FILE=$BASEDIR/cmake/arm-gcc-toolchain.cmake $BASEDIR
-# Generate the build system using the system default
-# cmake -B"$BUILDDIR" -DCMAKE_TOOLCHAIN_FILE=$BASEDIR/cmake/arm-gcc-toolchain.cmake $BASEDIR
-
-# And then do the build
-cmake --build $BUILDDIR