boards: cc3235sf_launchxl: add support for TI CC3235SF LaunchPad
This commit adds the TI CC3235SF LaunchPad as a new board in Zephyr. Signed-off-by: Vincent Wan <vincent.wan@linaro.org>
This commit is contained in:
parent
466f91a9e3
commit
8afe649144
11 changed files with 637 additions and 0 deletions
8
boards/arm/cc3235sf_launchxl/CMakeLists.txt
Normal file
8
boards/arm/cc3235sf_launchxl/CMakeLists.txt
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
zephyr_library()
|
||||||
|
zephyr_library_sources(
|
||||||
|
pinmux.c
|
||||||
|
dbghdr.c
|
||||||
|
)
|
||||||
|
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
|
10
boards/arm/cc3235sf_launchxl/Kconfig.board
Normal file
10
boards/arm/cc3235sf_launchxl/Kconfig.board
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Copyright (c) 2019, Texas Instruments Incorporated
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
# Kconfig - TI SimpleLink CC3235SF LaunchXL Board
|
||||||
|
#
|
||||||
|
|
||||||
|
config BOARD_CC3235SF_LAUNCHXL
|
||||||
|
bool "TI CC3235SF LAUNCHXL"
|
||||||
|
depends on SOC_CC3235SF
|
20
boards/arm/cc3235sf_launchxl/Kconfig.defconfig
Normal file
20
boards/arm/cc3235sf_launchxl/Kconfig.defconfig
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# Copyright (c) 2019, Texas Instruments Incorporated
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
# Kconfig - TI CC3235SF LaunchXL board configuration
|
||||||
|
#
|
||||||
|
|
||||||
|
if BOARD_CC3235SF_LAUNCHXL
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "cc3235sf_launchxl"
|
||||||
|
|
||||||
|
if I2C
|
||||||
|
|
||||||
|
config I2C_CC32XX
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # I2C
|
||||||
|
|
||||||
|
endif # BOARD_CC3235SF_LAUNCHXL
|
8
boards/arm/cc3235sf_launchxl/board.cmake
Normal file
8
boards/arm/cc3235sf_launchxl/board.cmake
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
# Use the TI OpenOCD (by default in /usr/local/openocd)
|
||||||
|
# See the Zephyr project CC3235SF_LAUNCHXL documentation on
|
||||||
|
# flashing prerequisites.
|
||||||
|
set(OPENOCD "/usr/local/bin/openocd" CACHE FILEPATH "" FORCE)
|
||||||
|
set(OPENOCD_DEFAULT_PATH ${OPENOCD}/scripts)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
73
boards/arm/cc3235sf_launchxl/cc3235sf_launchxl.dts
Normal file
73
boards/arm/cc3235sf_launchxl/cc3235sf_launchxl.dts
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019, Texas Instruments Incorporated
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <ti/cc3235sf.dtsi>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "TI CC3235SF LaunchXL";
|
||||||
|
compatible = "ti,cc3235sf-launchxl", "ti,cc3235sf", "ti,cc32xx";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
uart-0 = &uart0;
|
||||||
|
uart-1 = &uart1;
|
||||||
|
i2c-0 = &i2c0;
|
||||||
|
led0 = &led0;
|
||||||
|
led1 = &led1;
|
||||||
|
led2 = &led2;
|
||||||
|
/* sw0/1 alias defined for compatibility with samples */
|
||||||
|
sw0 = &sw2;
|
||||||
|
sw1 = &sw3;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash1;
|
||||||
|
zephyr,console = &uart0;
|
||||||
|
zephyr,shell-uart = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
led0: led_0 {
|
||||||
|
gpios = <&gpioa1 3 0>;
|
||||||
|
label = "Green LED";
|
||||||
|
};
|
||||||
|
led1: led_1 {
|
||||||
|
gpios = <&gpioa1 2 0>;
|
||||||
|
label = "Yellow LED";
|
||||||
|
};
|
||||||
|
led2: led_2 {
|
||||||
|
gpios = <&gpioa1 1 0>;
|
||||||
|
label = "Red LED";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
buttons {
|
||||||
|
/* Push button 2 */
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
sw2: button_0 {
|
||||||
|
gpios = <&gpioa2 6 GPIO_INT_ACTIVE_LOW>;
|
||||||
|
label = "Push button switch 2";
|
||||||
|
};
|
||||||
|
/* Push button 3 */
|
||||||
|
sw3: button_1 {
|
||||||
|
gpios = <&gpioa1 5 GPIO_INT_ACTIVE_LOW>;
|
||||||
|
label = "Push button switch 3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <I2C_BITRATE_FAST>;
|
||||||
|
};
|
12
boards/arm/cc3235sf_launchxl/cc3235sf_launchxl.yaml
Normal file
12
boards/arm/cc3235sf_launchxl/cc3235sf_launchxl.yaml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
identifier: cc3235sf_launchxl
|
||||||
|
name: SimpleLink Wi-Fi CC3235SF LaunchPad development kit
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- netif:wifi
|
||||||
|
- i2c
|
||||||
|
- gpio
|
25
boards/arm/cc3235sf_launchxl/cc3235sf_launchxl_defconfig
Normal file
25
boards/arm/cc3235sf_launchxl/cc3235sf_launchxl_defconfig
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
CONFIG_ARM=y
|
||||||
|
CONFIG_BOARD_CC3235SF_LAUNCHXL=y
|
||||||
|
CONFIG_SOC_FAMILY_TISIMPLELINK=y
|
||||||
|
CONFIG_SOC_SERIES_CC32XX=y
|
||||||
|
CONFIG_SOC_CC3235SF=y
|
||||||
|
CONFIG_CORTEX_M_SYSTICK=y
|
||||||
|
|
||||||
|
CONFIG_PRINTK=y
|
||||||
|
|
||||||
|
#enable GPIO driver
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
# enable uart driver
|
||||||
|
CONFIG_SERIAL=y
|
||||||
|
CONFIG_SERIAL_HAS_DRIVER=y
|
||||||
|
CONFIG_UART_CC32XX=y
|
||||||
|
|
||||||
|
# enable console
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
||||||
|
|
||||||
|
# Enable SimpleLink CC32XX SDK
|
||||||
|
CONFIG_HAS_CC3220SDK=y
|
24
boards/arm/cc3235sf_launchxl/dbghdr.c
Normal file
24
boards/arm/cc3235sf_launchxl/dbghdr.c
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017, Texas Instruments Incorporated
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This debug header, located at the start of flash, indicates
|
||||||
|
* to the bootloader that this is a debug image, allowing
|
||||||
|
* debuggers and flash-loaders to access the chip over JTAG.
|
||||||
|
* Also, on subsequent reboots, the bootloader skips the integrity
|
||||||
|
* check, preventing the image from being mass erased.
|
||||||
|
*
|
||||||
|
* See section 21.10: "Debugging Flash User Application Using JTAG"
|
||||||
|
* in the CC3220 TRM: http://www.ti.com/lit/ug/swru465/swru465.pdf
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_CC3235SF_DEBUG
|
||||||
|
__attribute__ ((section(".dbghdr")))
|
||||||
|
const unsigned long ulDebugHeader[] = {
|
||||||
|
0x5AA5A55A,
|
||||||
|
0x000FF800,
|
||||||
|
0xEFA3247D
|
||||||
|
};
|
||||||
|
#endif
|
305
boards/arm/cc3235sf_launchxl/doc/index.rst
Normal file
305
boards/arm/cc3235sf_launchxl/doc/index.rst
Normal file
|
@ -0,0 +1,305 @@
|
||||||
|
.. _cc3235sf_launchxl:
|
||||||
|
|
||||||
|
CC3235SF LaunchXL
|
||||||
|
#################
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
The SimpleLink Wi-Fi CC3235SF LaunchPad development kit (CC3235SF-LAUNCHXL)
|
||||||
|
highlights CC3235SF, a single-chip wireless microcontroller (MCU) with
|
||||||
|
1MB internal flash, 4MB external serial flash, 256KB of RAM, and enhanced
|
||||||
|
security features. It supports 802.11 a/b/g/n, both 2.4 GHz and 5 GHz.
|
||||||
|
|
||||||
|
See the `TI CC3235 Product Page`_ for details.
|
||||||
|
|
||||||
|
Features:
|
||||||
|
=========
|
||||||
|
|
||||||
|
* Two separate execution environments: a user application dedicated ARM
|
||||||
|
Cortex-M4 MCU and a network processor MCU to run all Wi-Fi and
|
||||||
|
internet logical layers
|
||||||
|
* 40-pin LaunchPad standard leveraging the BoosterPack ecosystem
|
||||||
|
* On-board accelerometer and temperature sensor
|
||||||
|
* Two buttons and a RGB LED for user interaction
|
||||||
|
* UART through USB to PC
|
||||||
|
* BoosterPack plug-in module for adding graphical displays, audio
|
||||||
|
codecs, antenna selection, environmental sensing, and more
|
||||||
|
* Power from USB for the LaunchPad and optional external BoosterPack
|
||||||
|
* XDS110-based JTAG emulation with serial port for flash programming
|
||||||
|
|
||||||
|
Details on the CC3235SF LaunchXL development board can be found in the
|
||||||
|
`CC3235SF LaunchPad Dev Kit Hardware User's Guide`_.
|
||||||
|
|
||||||
|
Hardware
|
||||||
|
********
|
||||||
|
|
||||||
|
The CC3235SF SoC has two MCUs:
|
||||||
|
|
||||||
|
#. Applications MCU - an ARM |reg| Cortex |reg|-M4 Core at 80 MHz, with 256Kb RAM,
|
||||||
|
and access to external serial 4MB flash with bootloader and peripheral
|
||||||
|
drivers in ROM.
|
||||||
|
|
||||||
|
#. Network Coprocessor (NWP) - a dedicated ARM MCU, which completely
|
||||||
|
offloads Wi-Fi and internet protocols from the application MCU.
|
||||||
|
|
||||||
|
Complete details of the CC3235SF SoC can be found in the `CC3235 TRM`_.
|
||||||
|
|
||||||
|
Supported Features
|
||||||
|
==================
|
||||||
|
|
||||||
|
Zephyr has been ported to the Applications MCU, with basic peripheral
|
||||||
|
driver support.
|
||||||
|
|
||||||
|
+-----------+------------+-----------------------+
|
||||||
|
| Interface | Controller | Driver/Component |
|
||||||
|
+===========+============+=======================+
|
||||||
|
| UART | on-chip | serial port-interrupt |
|
||||||
|
+-----------+------------+-----------------------+
|
||||||
|
| GPIO | on-chip | gpio |
|
||||||
|
+-----------+------------+-----------------------+
|
||||||
|
| I2C | on-chip | i2c |
|
||||||
|
+-----------+------------+-----------------------+
|
||||||
|
| SPI_0 | on-chip | Wi-Fi host driver |
|
||||||
|
+-----------+------------+-----------------------+
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
For consistency with TI SimpleLink SDK and BoosterPack examples,
|
||||||
|
the I2C driver defaults to I2C_BITRATE_FAST mode (400 kHz) bus speed
|
||||||
|
on bootup.
|
||||||
|
|
||||||
|
The accelerometer, temperature sensors, or other peripherals
|
||||||
|
accessible through the BoosterPack, are not currently supported.
|
||||||
|
|
||||||
|
Connections and IOs
|
||||||
|
====================
|
||||||
|
|
||||||
|
Peripherals on the CC3235SF LaunchXL are mapped to the following pins in
|
||||||
|
the file :zephyr_file:`boards/arm/cc3235sf_launchxl/pinmux.c`.
|
||||||
|
|
||||||
|
+------------+-------+-------+
|
||||||
|
| Function | PIN | GPIO |
|
||||||
|
+============+=======+=======+
|
||||||
|
| UART0_TX | 55 | N/A |
|
||||||
|
+------------+-------+-------+
|
||||||
|
| UART0_RX | 57 | N/A |
|
||||||
|
+------------+-------+-------+
|
||||||
|
| LED D7 (R) | 64 | 9 |
|
||||||
|
+------------+-------+-------+
|
||||||
|
| LED D6 (O) | 01 | 10 |
|
||||||
|
+------------+-------+-------+
|
||||||
|
| LED D5 (G) | 02 | 11 |
|
||||||
|
+------------+-------+-------+
|
||||||
|
| Switch SW2 | 15 | 22 |
|
||||||
|
+------------+-------+-------+
|
||||||
|
| Switch SW3 | 04 | 13 |
|
||||||
|
+------------+-------+-------+
|
||||||
|
|
||||||
|
The default configuration can be found in the Kconfig file at
|
||||||
|
:zephyr_file:`boards/arm/cc3235sf_launchxl/cc3235sf_launchxl_defconfig`.
|
||||||
|
|
||||||
|
|
||||||
|
Programming and Debugging
|
||||||
|
*************************
|
||||||
|
|
||||||
|
TI officially supports development on the CC3235SF using the TI
|
||||||
|
`CC32xx SDK`_ on Windows and Linux using TI tools: Code Composer
|
||||||
|
Studio for debugging and `UniFlash`_ for flashing.
|
||||||
|
|
||||||
|
For Windows developers, see the `CC32xx Quick Start Guide`_ for
|
||||||
|
instructions on installation of tools, and how to flash the board using
|
||||||
|
UniFlash.
|
||||||
|
|
||||||
|
Note that ``zephyr.bin`` produced by the Zephyr SDK may not load via
|
||||||
|
UniFlash tool. If encountering difficulties, use the ``zephyr.elf``
|
||||||
|
file and openocd instead (see below).
|
||||||
|
|
||||||
|
The following instructions are geared towards Linux developers who
|
||||||
|
prefer command line tools to an IDE.
|
||||||
|
|
||||||
|
Before flashing and debugging the board, there are a few one-time board
|
||||||
|
setup steps to follow.
|
||||||
|
|
||||||
|
Prerequisites:
|
||||||
|
==============
|
||||||
|
|
||||||
|
#. Download and install the latest version of `UniFlash`_.
|
||||||
|
#. Jumper SOP[2..0] (J15) to [010], and connect the USB cable to the PC.
|
||||||
|
|
||||||
|
This should result in a new device "Texas Instruments XDS110 Embed
|
||||||
|
with CMSIS-DAP" appearing at /dev/ttyACM1 and /dev/ttyACM0.
|
||||||
|
|
||||||
|
#. Update the service pack, and place the board in "Development Mode".
|
||||||
|
|
||||||
|
Setting "Development Mode" enables the JTAG interface, necessary
|
||||||
|
for subsequent use of OpenOCD and updating XDS110 firmware.
|
||||||
|
|
||||||
|
Follow the instructions in Section 2.4 "Download the Application",
|
||||||
|
in the `CC32xx Quick Start Guide`_, except for steps 5 and 6 in
|
||||||
|
Section 2.4.1 which select an MCU image.
|
||||||
|
|
||||||
|
#. Ensure the XDS-110 emulation firmware is updated.
|
||||||
|
|
||||||
|
Download and install the latest `XDS-110 emulation package`_.
|
||||||
|
|
||||||
|
Follow these `xds110 firmware update directions
|
||||||
|
<http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds110.html#updating-the-xds110-firmware>`_
|
||||||
|
|
||||||
|
Note that the emulation package install may place the xdsdfu utility
|
||||||
|
in ``<install_dir>/ccs_base/common/uscif/xds110/``.
|
||||||
|
|
||||||
|
#. Switch Jumper SOP[2..0] (J15) back to [001].
|
||||||
|
|
||||||
|
Remove power from the board (disconnect USB cable) before switching jumpers.
|
||||||
|
|
||||||
|
#. Install TI OpenOCD
|
||||||
|
|
||||||
|
Clone the TI OpenOCD git repository from: http://git.ti.com/sdo-emu/openocd.
|
||||||
|
Follow the instructions in the Release Notes in that repository to build
|
||||||
|
and install.
|
||||||
|
|
||||||
|
Since the default TI OpenOCD installation is ``/usr/local/bin/``,
|
||||||
|
and ``/usr/local/share/``, you may want to backup any current openocd
|
||||||
|
installations there.
|
||||||
|
If you decide to change the default installation location, also update
|
||||||
|
the OPENOCD path variable in :zephyr_file:`boards/arm/cc3235sf_launchxl/board.cmake`.
|
||||||
|
|
||||||
|
#. Ensure CONFIG_XIP=y (default) is set.
|
||||||
|
|
||||||
|
This locates the program into flash, and sets CONFIG_CC3235SF_DEBUG=y,
|
||||||
|
which prepends a debug header enabling the flash to persist over
|
||||||
|
subsequent reboots, bypassing the bootloader flash signature
|
||||||
|
verification.
|
||||||
|
|
||||||
|
See Section 21.10 "Debugging Flash User Application Using JTAG" of the
|
||||||
|
`CC3235 TRM`_ for details on the secure flash boot process.
|
||||||
|
|
||||||
|
|
||||||
|
Once the above prerequisites are met, applications for the ``_cc3235sf_launchxl``
|
||||||
|
board can be built, flashed, and debugged with openocd and gdb per the Zephyr
|
||||||
|
Application Development Primer (see :ref:`build_an_application` and
|
||||||
|
:ref:`application_run`).
|
||||||
|
|
||||||
|
Flashing
|
||||||
|
========
|
||||||
|
|
||||||
|
To build and flash an application, execute the following commands for <my_app>:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: <my_app>
|
||||||
|
:board: cc3235sf_launchxl
|
||||||
|
:goals: flash
|
||||||
|
|
||||||
|
This will load the image into flash.
|
||||||
|
|
||||||
|
To see program output from UART0, connect a separate terminal window:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
% screen /dev/ttyACM0 115200 8N1
|
||||||
|
|
||||||
|
Then press the reset button (SW1) on the board to run the program.
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
=========
|
||||||
|
|
||||||
|
To debug a previously flashed image, after resetting the board, use the 'debug'
|
||||||
|
build target:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: <my_app>
|
||||||
|
:board: cc3235sf_launchxl
|
||||||
|
:maybe-skip-config:
|
||||||
|
:goals: debug
|
||||||
|
|
||||||
|
|
||||||
|
Wi-Fi Support
|
||||||
|
*************
|
||||||
|
|
||||||
|
The SimpleLink Host Driver, imported from the SimpleLink SDK, has been ported
|
||||||
|
to Zephyr, and communicates over a dedicated SPI to the network co-processor.
|
||||||
|
It is available as a Zephyr Wi-Fi device driver in
|
||||||
|
:zephyr_file:`drivers/wifi/simplelink`.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
======
|
||||||
|
|
||||||
|
Set :option:`CONFIG_WIFI_SIMPLELINK` and :option:`CONFIG_WIFI` to ``y``
|
||||||
|
to enable Wi-Fi.
|
||||||
|
See :zephyr_file:`samples/net/wifi/boards/cc3235sf_launchxl.conf`.
|
||||||
|
|
||||||
|
Provisioning:
|
||||||
|
=============
|
||||||
|
|
||||||
|
SimpleLink provides a few rather sophisticated Wi-Fi provisioning methods.
|
||||||
|
To keep it simple for Zephyr development and demos, the SimpleLink
|
||||||
|
"Fast Connect" policy is enabled, with one-shot scanning.
|
||||||
|
This enables the cc3235sf_launchxl to automatically reconnect to the last
|
||||||
|
good known access point (AP), without having to restart a scan, and
|
||||||
|
re-specify the SSID and password.
|
||||||
|
|
||||||
|
To connect to an AP, first run the Zephyr Wi-Fi shell sample application,
|
||||||
|
and connect to a known AP with SSID and password.
|
||||||
|
|
||||||
|
See :ref:`wifi_sample`
|
||||||
|
|
||||||
|
Once the connection succeeds, the network co-processor keeps the AP identity in
|
||||||
|
its persistent memory. Newly loaded Wi-Fi applications then need not explicitly
|
||||||
|
execute any Wi-Fi scan or connect operations, until the need to change to a new AP.
|
||||||
|
|
||||||
|
Secure Socket Offload
|
||||||
|
*********************
|
||||||
|
|
||||||
|
The SimpleLink Wi-Fi driver provides socket operations to the Zephyr socket
|
||||||
|
offload point, enabling Zephyr BSD socket API calls to be directed to the
|
||||||
|
SimpleLink Wi-Fi driver, by setting :option:`CONFIG_NET_SOCKETS_OFFLOAD`
|
||||||
|
to ``y``.
|
||||||
|
|
||||||
|
Secure socket (TLS) communication is handled as part of the socket APIs,
|
||||||
|
and enabled by:
|
||||||
|
|
||||||
|
- setting both :option:`CONFIG_NET_SOCKETS_SOCKOPT_TLS`
|
||||||
|
and :option:`CONFIG_TLS_CREDENTIAL_FILENAMES` to ``y``,
|
||||||
|
- using the TI Uniflash tool to program the required certificates and
|
||||||
|
keys to the secure flash filesystem, and enabling the TI Trusted
|
||||||
|
Root-Certificate Catalog.
|
||||||
|
|
||||||
|
See :ref:`sockets-http-get` and
|
||||||
|
:zephyr_file:`samples/net/sockets/http_get/boards/cc3235sf_launchxl.conf` for an
|
||||||
|
example.
|
||||||
|
|
||||||
|
See the document `Simplelink Wi-Fi Certificates Handling`_ for details on
|
||||||
|
using the TI UniFlash tool for certificate programming.
|
||||||
|
|
||||||
|
References
|
||||||
|
**********
|
||||||
|
|
||||||
|
TI SimpleLink MCUs:
|
||||||
|
http://www.ti.com/microcontrollers/simplelink-mcus/overview.html
|
||||||
|
|
||||||
|
.. _TI CC3235 Product Page:
|
||||||
|
http://www.ti.com/product/cc3235SF
|
||||||
|
|
||||||
|
.. _CC3235 TRM:
|
||||||
|
http://www.ti.com/lit/pdf/swru543
|
||||||
|
|
||||||
|
.. _CC3x20/CC3x35 SimpleLink Wi-Fi and IoT Network Processor Programmer's Guide:
|
||||||
|
http://www.ti.com/lit/pdf/swru455
|
||||||
|
|
||||||
|
.. _CC32xx Quick Start Guide:
|
||||||
|
http://dev.ti.com/tirex/content/simplelink_cc32xx_sdk_2_40_01_01/docs/simplelink_mcu_sdk/Quick_Start_Guide.html
|
||||||
|
|
||||||
|
.. _UniFlash:
|
||||||
|
http://processors.wiki.ti.com/index.php/Category:CCS_UniFlash
|
||||||
|
|
||||||
|
.. _CC32xx SDK:
|
||||||
|
http://www.ti.com/tool/download/SIMPLELINK-CC32xx-SDK/2.40.01.01
|
||||||
|
|
||||||
|
.. _CC3235SF LaunchPad Dev Kit Hardware User's Guide:
|
||||||
|
http://www.ti.com/lit/pdf/swru539
|
||||||
|
|
||||||
|
.. _XDS-110 emulation package:
|
||||||
|
http://processors.wiki.ti.com/index.php/XDS_Emulation_Software_Package#XDS_Emulation_Software_.28emupack.29_Download
|
||||||
|
|
||||||
|
.. _Simplelink Wi-Fi Certificates Handling:
|
||||||
|
http://www.ti.com/lit/pdf/swpu332
|
142
boards/arm/cc3235sf_launchxl/pinmux.c
Normal file
142
boards/arm/cc3235sf_launchxl/pinmux.c
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019, Texas Instruments Incorporated
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* pinmux.c
|
||||||
|
*
|
||||||
|
* configure the device pins for different peripheral signals
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was automatically generated on 7/21/2014 at 3:06:20 PM
|
||||||
|
* by TI PinMux version 3.0.334
|
||||||
|
* (Then modified to meet Zephyr coding style)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TI Recommends use of the PinMux utility to ensure consistent configuration
|
||||||
|
* of pins: http://processors.wiki.ti.com/index.php/TI_PinMux_Tool
|
||||||
|
*
|
||||||
|
* Zephyr GPIO API however allows runtime configuration by applications.
|
||||||
|
*
|
||||||
|
* For the TI CC32XX port we leverage this output file
|
||||||
|
* from the PinMux tool, and guard sections based on Kconfig variables.
|
||||||
|
*
|
||||||
|
* The individual (uart/gpio) driver init/configuration functions
|
||||||
|
* therefore assume pinmux initialization is done here rather in the drivers
|
||||||
|
* at runtime.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <init.h>
|
||||||
|
|
||||||
|
#include "pinmux.h"
|
||||||
|
|
||||||
|
#include <inc/hw_types.h>
|
||||||
|
#include <inc/hw_memmap.h>
|
||||||
|
#include <inc/hw_gpio.h>
|
||||||
|
#include <driverlib/pin.h>
|
||||||
|
#include <driverlib/rom.h>
|
||||||
|
#include <driverlib/rom_map.h>
|
||||||
|
#include <driverlib/gpio.h>
|
||||||
|
#include <driverlib/prcm.h>
|
||||||
|
#include <driverlib/i2c.h>
|
||||||
|
|
||||||
|
/* Defines taken from SimpleLink SDK's I2CCC32XX.h: */
|
||||||
|
/*
|
||||||
|
* Macros defining possible I2C signal pin mux options
|
||||||
|
*
|
||||||
|
* The bits in the pin mode macros are as follows:
|
||||||
|
* The lower 8 bits of the macro refer to the pin, offset by 1, to match
|
||||||
|
* driverlib pin defines. For example, I2C_CC32XX_PIN_01_I2C_SCL & 0xff = 0,
|
||||||
|
* which equals PIN_01 in driverlib pin.h. By matching the PIN_xx defines in
|
||||||
|
* driverlib pin.h, we can pass the pin directly to the driverlib functions.
|
||||||
|
* The upper 8 bits of the macro correspond to the pin mux confg mode
|
||||||
|
* value for the pin to operate in the I2C mode. For example, pin 1 is
|
||||||
|
* configured with mode 1 to operate as I2C_SCL.
|
||||||
|
*/
|
||||||
|
#define I2C_CC32XX_PIN_01_I2C_SCL 0x100 /*!< PIN 1 is used for I2C_SCL */
|
||||||
|
#define I2C_CC32XX_PIN_02_I2C_SDA 0x101 /*!< PIN 2 is used for I2C_SDA */
|
||||||
|
#define I2C_CC32XX_PIN_03_I2C_SCL 0x502 /*!< PIN 3 is used for I2C_SCL */
|
||||||
|
#define I2C_CC32XX_PIN_04_I2C_SDA 0x503 /*!< PIN 4 is used for I2C_SDA */
|
||||||
|
#define I2C_CC32XX_PIN_05_I2C_SCL 0x504 /*!< PIN 5 is used for I2C_SCL */
|
||||||
|
#define I2C_CC32XX_PIN_06_I2C_SDA 0x505 /*!< PIN 6 is used for I2C_SDA */
|
||||||
|
#define I2C_CC32XX_PIN_16_I2C_SCL 0x90F /*!< PIN 16 is used for I2C_SCL */
|
||||||
|
#define I2C_CC32XX_PIN_17_I2C_SDA 0x910 /*!< PIN 17 is used for I2C_SDA */
|
||||||
|
|
||||||
|
int pinmux_initialize(struct device *port)
|
||||||
|
{
|
||||||
|
ARG_UNUSED(port);
|
||||||
|
|
||||||
|
#ifdef CONFIG_UART_CC32XX
|
||||||
|
/* Configure PIN_55 for UART0 UART0_TX */
|
||||||
|
MAP_PinTypeUART(PIN_55, PIN_MODE_3);
|
||||||
|
|
||||||
|
/* Configure PIN_57 for UART0 UART0_RX */
|
||||||
|
MAP_PinTypeUART(PIN_57, PIN_MODE_3);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_GPIO_CC32XX_A1
|
||||||
|
/* Enable Peripheral Clocks */
|
||||||
|
MAP_PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK);
|
||||||
|
|
||||||
|
/* The following enables the 3 LEDs for the blinking samples */
|
||||||
|
|
||||||
|
/* Configure PIN_64 for GPIOOutput */
|
||||||
|
MAP_PinTypeGPIO(PIN_64, PIN_MODE_0, false);
|
||||||
|
MAP_GPIODirModeSet(GPIOA1_BASE, 0x2, GPIO_DIR_MODE_OUT);
|
||||||
|
|
||||||
|
/* Configure PIN_01 for GPIOOutput */
|
||||||
|
MAP_PinTypeGPIO(PIN_01, PIN_MODE_0, false);
|
||||||
|
MAP_GPIODirModeSet(GPIOA1_BASE, 0x4, GPIO_DIR_MODE_OUT);
|
||||||
|
|
||||||
|
/* Configure PIN_02 for GPIOOutput */
|
||||||
|
MAP_PinTypeGPIO(PIN_02, PIN_MODE_0, false);
|
||||||
|
MAP_GPIODirModeSet(GPIOA1_BASE, 0x8, GPIO_DIR_MODE_OUT);
|
||||||
|
|
||||||
|
/* SW3: Configure PIN_04 (GPIO13) for GPIOInput */
|
||||||
|
MAP_PinTypeGPIO(PIN_04, PIN_MODE_0, false);
|
||||||
|
MAP_GPIODirModeSet(GPIOA1_BASE, 0x20, GPIO_DIR_MODE_IN);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_GPIO_CC32XX_A2
|
||||||
|
MAP_PRCMPeripheralClkEnable(PRCM_GPIOA2, PRCM_RUN_MODE_CLK);
|
||||||
|
|
||||||
|
/* SW2: Configure PIN_15 (GPIO22) for GPIOInput */
|
||||||
|
MAP_PinTypeGPIO(PIN_15, PIN_MODE_0, false);
|
||||||
|
MAP_GPIODirModeSet(GPIOA2_BASE, 0x40, GPIO_DIR_MODE_IN);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_GPIO_CC32XX_A3
|
||||||
|
MAP_PRCMPeripheralClkEnable(PRCM_GPIOA3, PRCM_RUN_MODE_CLK);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_I2C_CC32XX
|
||||||
|
{
|
||||||
|
unsigned long pin;
|
||||||
|
unsigned long mode;
|
||||||
|
|
||||||
|
/* Enable the I2C module clocks and wait for completion:*/
|
||||||
|
MAP_PRCMPeripheralClkEnable(PRCM_I2CA0,
|
||||||
|
PRCM_RUN_MODE_CLK |
|
||||||
|
PRCM_SLP_MODE_CLK);
|
||||||
|
while (!MAP_PRCMPeripheralStatusGet(PRCM_I2CA0)) {
|
||||||
|
}
|
||||||
|
|
||||||
|
pin = I2C_CC32XX_PIN_01_I2C_SCL & 0xff;
|
||||||
|
mode = (I2C_CC32XX_PIN_01_I2C_SCL >> 8) & 0xff;
|
||||||
|
MAP_PinTypeI2C(pin, mode);
|
||||||
|
|
||||||
|
pin = I2C_CC32XX_PIN_02_I2C_SDA & 0xff;
|
||||||
|
mode = (I2C_CC32XX_PIN_02_I2C_SDA >> 8) & 0xff;
|
||||||
|
MAP_PinTypeI2C(pin, mode);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SYS_INIT(pinmux_initialize, PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);
|
10
boards/arm/cc3235sf_launchxl/support/openocd.cfg
Normal file
10
boards/arm/cc3235sf_launchxl/support/openocd.cfg
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#
|
||||||
|
# TI CC3235SF-LaunchXL Evaluation Kit
|
||||||
|
#
|
||||||
|
source [find interface/xds110.cfg]
|
||||||
|
transport select swd
|
||||||
|
source [find target/ti_cc3220sf_vr.cfg]
|
||||||
|
if { ![using_hla] } {
|
||||||
|
cortex_m reset_config srst_only
|
||||||
|
}
|
||||||
|
adapter_khz 2500
|
Loading…
Add table
Add a link
Reference in a new issue