Skip to content

spresense: update SDK to 2.3.0 #5336

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions ports/cxd56/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
# option to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk
CFLAGS += $(OPTIMIZATION_FLAGS)


LIBM = "${shell "$(CC)" $(CFLAGS) -print-file-name=libm.a}"

LIBGCC = "${shell "$(CC)" $(CFLAGS) -print-libgcc-file-name}"
Expand All @@ -146,7 +145,15 @@ LDFLAGS = \
-u board_timerhook \
$(BUILD)/libmpy.a \
$(SPRESENSE_SDK)/nuttx/libs/libapps.a \
$(SPRESENSE_SDK)/nuttx/libs/libnuttx.a \
$(SPRESENSE_SDK)/nuttx/libs/libarch.a \
$(SPRESENSE_SDK)/nuttx/libs/libbinfmt.a \
$(SPRESENSE_SDK)/nuttx/libs/libboard.a \
$(SPRESENSE_SDK)/nuttx/libs/libboards.a \
$(SPRESENSE_SDK)/nuttx/libs/libc.a \
$(SPRESENSE_SDK)/nuttx/libs/libdrivers.a \
$(SPRESENSE_SDK)/nuttx/libs/libfs.a \
$(SPRESENSE_SDK)/nuttx/libs/libmm.a \
$(SPRESENSE_SDK)/nuttx/libs/libsched.a \
$(LIBM) \
$(LIBGCC) \
--end-group \
Expand Down
2 changes: 1 addition & 1 deletion ports/cxd56/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ Bootloader information:

* You have to accept the End User License Agreement to be able to download and use the Spresense bootloader binary.

Download the spresense binaries zip archive from: [Spresense firmware v2-0-002](https://developer.sony.com/file/download/download-spresense-firmware-v2-0-002)
Download the spresense binaries zip archive from: [Spresense firmware v2-3-000](https://developer.sony.com/file/download/download-spresense-firmware-v2-3-000)

Extract spresense binaries in your PC to ports/spresense/spresense-exported-sdk/firmware/

Expand Down
2 changes: 2 additions & 0 deletions ports/cxd56/common-hal/busio/SPI.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
* THE SOFTWARE.
*/

#include <string.h>

#include <arch/chip/pin.h>
#include <cxd56_spi.h>
#include <cxd56_pinconfig.h>
Expand Down
6 changes: 3 additions & 3 deletions ports/cxd56/common-hal/pulseio/PulseOut.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ static uint16_t pulse_index = 0;
static uint16_t pulse_length;
static int pulse_fd = -1;

static bool pulseout_timer_handler(unsigned int *next_interval_us, void *arg) {
static bool pulseout_timer_handler(uint32_t *next_interval_us, void *arg) {
uint8_t pwm_num = (uint8_t)(int)arg;
pulse_index++;

if (pulse_index >= pulse_length) {
return false;
}

*next_interval_us = pulse_buffer[pulse_index] * 1000;
*next_interval_us = pulse_buffer[pulse_index];

if (pulse_index % 2 == 0) {
pwmout_start(pwm_num);
Expand Down Expand Up @@ -108,7 +108,7 @@ void common_hal_pulseio_pulseout_send(pulseio_pulseout_obj_t *self, uint16_t *pu
pulse_index = 0;
pulse_length = len;

unsigned long timeout = pulse_buffer[0] * 1000;
unsigned long timeout = pulse_buffer[0];

ioctl(pulse_fd, TCIOC_SETTIMEOUT, timeout);

Expand Down
1 change: 0 additions & 1 deletion ports/cxd56/common-hal/sdioio/SDCard.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@ int common_hal_sdioio_sdcard_writeblocks(sdioio_sdcard_obj_t *self, uint32_t sta
check_whole_block(bufinfo);

return self->inode->u.i_bops->write(self->inode, bufinfo->buf, start_block, bufinfo->len / 512);
;
}

void common_hal_sdioio_sdcard_never_reset(sdioio_sdcard_obj_t *self) {
Expand Down
63 changes: 4 additions & 59 deletions ports/cxd56/configs/circuitpython/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,17 @@
# CONFIG_MMCSD_MMCSUPPORT is not set
# CONFIG_MMCSD_SPI is not set
# CONFIG_MTD_SMART_WEAR_LEVEL is not set
# CONFIG_NET_IPv4 is not set
# CONFIG_NXFONTS_PACKEDMSFIRST is not set
# CONFIG_READLINE_ECHO is not set
# CONFIG_STANDARD_SERIAL is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="spresense"
CONFIG_ARCH_BOARD_SPRESENSE=y
CONFIG_ARCH_CHIP="cxd56xx"
CONFIG_ARCH_CHIP_CXD56XX=y
CONFIG_ARCH_INTERRUPTSTACK=2048
CONFIG_ARCH_MATH_H=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARMV7M_USEBASEPRI=y
CONFIG_ASMP=y
CONFIG_AUDIO=y
CONFIG_AUDIOUTILS_DSP_MOUNTPT="/mnt/sd0/BIN"
CONFIG_AUDIOUTILS_MANAGER=y
CONFIG_AUDIOUTILS_PLAYER=y
CONFIG_AUDIOUTILS_PLAYLIST=y
CONFIG_AUDIOUTILS_RECORDER=y
CONFIG_BOARDCTL_IOCTL=y
CONFIG_BOARDCTL_POWEROFF=y
CONFIG_BOARDCTL_RESET=y
Expand All @@ -41,13 +33,13 @@ CONFIG_BOARD_CRASHDUMP=y
CONFIG_BOARD_LATE_INITIALIZE=y
CONFIG_BOARD_LOOPSPERMSEC=5434
CONFIG_BOOT_RUNFROMISRAM=y
CONFIG_BUILTIN=y
CONFIG_CLOCK_MONOTONIC=y
CONFIG_CXD56_ADC=y
CONFIG_CXD56_AUDIO=y
CONFIG_CXD56_BINARY=y
CONFIG_CXD56_CHARGER=y
CONFIG_CXD56_CISIF=y
CONFIG_CXD56_DMAC_SPI4_RX=y
CONFIG_CXD56_DMAC_SPI4_TX=y
CONFIG_CXD56_GAUGE=y
CONFIG_CXD56_GNSS=y
CONFIG_CXD56_HPADC0=y
Expand All @@ -65,33 +57,13 @@ CONFIG_CXD56_PWM3=y
CONFIG_CXD56_PWM=y
CONFIG_CXD56_SDIO=y
CONFIG_CXD56_SPI3=y
CONFIG_CXD56_SPI4=y
CONFIG_CXD56_SPI5=y
CONFIG_CXD56_SPI=y
CONFIG_CXD56_UART2=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DNN_RT=y
CONFIG_DNN_RT_MP=y
CONFIG_DRIVERS_VIDEO=y
CONFIG_EXTERNALS_CMSIS=y
CONFIG_FAT_LCNAMES=y
CONFIG_FAT_LFN=y
CONFIG_FAT_MAXFNAME=64
CONFIG_FS_FAT=y
CONFIG_FS_PROCFS=y
CONFIG_FS_PROCFS_REGISTER=y
CONFIG_FS_ROMFS=y
CONFIG_FS_SMARTFS=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_LCD=y
CONFIG_LCD_NOGETRUN=y
CONFIG_LIBC_FLOATINGPOINT=y
CONFIG_LIBC_IPv4_ADDRCONV=y
CONFIG_LIBC_IPv6_ADDRCONV=y
CONFIG_LIB_KBDCODEC=y
CONFIG_MAX_WDOGPARMS=2
CONFIG_MEMUTILS=y
CONFIG_MMCSD=y
CONFIG_MMCSD_SDIO=y
CONFIG_MTD=y
Expand All @@ -101,32 +73,12 @@ CONFIG_MTD_SMART_ENABLE_CRC=y
CONFIG_MTD_SMART_FSCK=y
CONFIG_MTD_SMART_SECTOR_SIZE=4096
CONFIG_NAME_MAX=64
CONFIG_NET=y
CONFIG_NETDEVICES=y
CONFIG_NETDEV_LATEINIT=y
CONFIG_NET_SOCKOPTS=y
CONFIG_NET_TCP_NO_STACK=y
CONFIG_NET_UDP_NO_STACK=y
CONFIG_NET_USRSOCK=y
CONFIG_NET_USRSOCK_TCP=y
CONFIG_NET_USRSOCK_UDP=y
CONFIG_NFILE_STREAMS=8
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_LOSMART=y
CONFIG_NSH_LINELEN=160
CONFIG_NSH_MAXARGUMENTS=14
CONFIG_NSH_READLINE=y
CONFIG_PIPES=y
CONFIG_PREALLOC_MQ_MSGS=4
CONFIG_PREALLOC_TIMERS=4
CONFIG_PREALLOC_WDOGS=16
CONFIG_PWM=y
CONFIG_RAM_SIZE=1572864
CONFIG_RAM_START=0x0d000000
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_READLINE_CMD_HISTORY_LINELEN=160
CONFIG_READLINE_TABCOMPLETION=y
CONFIG_RR_INTERVAL=200
CONFIG_RTC=y
CONFIG_RTC_ALARM=y
Expand All @@ -141,21 +93,14 @@ CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_WAITPID=y
CONFIG_SDCLONE_DISABLE=y
CONFIG_SDIO_MUXBUS=y
CONFIG_SDK_AUDIO=y
CONFIG_SERIAL_TERMIOS=y
CONFIG_SMARTFS_ALIGNED_ACCESS=y
CONFIG_SMARTFS_MAXNAMLEN=30
CONFIG_SMARTFS_MULTI_ROOT_DIRS=y
CONFIG_SPECIFIC_DRIVERS=y
CONFIG_SPI=y
CONFIG_SPRESENSE_EXTENSION=y
CONFIG_START_DAY=6
CONFIG_START_MONTH=12
CONFIG_START_YEAR=2011
CONFIG_SYSTEMTICK_HOOK=y
CONFIG_SYSTEM_CLE=y
CONFIG_SYSTEM_NSH=y
CONFIG_SYSTEM_NSH_CXXINITIALIZE=y
CONFIG_UART1_RXBUFSIZE=1024
CONFIG_UART1_SERIAL_CONSOLE=y
CONFIG_UART1_TXBUFSIZE=1024
Expand Down
2 changes: 1 addition & 1 deletion ports/cxd56/spresense-exported-sdk
46 changes: 23 additions & 23 deletions ports/cxd56/tools/flash_writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,23 +30,20 @@
# POSSIBILITY OF SUCH DAMAGE.
#

import time
import sys
import os
import struct
import glob
import fnmatch
import errno
import telnetlib
import argparse
import shutil
import subprocess
import errno
import os
import re
import subprocess
import sys
import telnetlib
import time

import xmodem

import_serial_module = True

# When SDK release, plase set SDK_RELEASE as True.
# When SDK release, please set SDK_RELEASE as True.
SDK_RELEASE = False

if SDK_RELEASE:
Expand All @@ -58,7 +55,7 @@

try:
import serial
except:
except ImportError:
import_serial_module = False

# supported environment various
Expand All @@ -71,6 +68,7 @@

MAX_DOT_COUNT = 70


# configure parameters and default value
class ConfigArgs:
PROTOCOL_TYPE = None
Expand Down Expand Up @@ -173,7 +171,10 @@ def __init__(self):
group = self.parser.add_argument_group()
group.add_argument("-c", "--serial-port", dest="serial_port", help="the serial port")
group.add_argument(
"-b", "--xmodem-baudrate", dest="xmodem_baud", help="Use the faster baudrate in xmodem"
"-b",
"--xmodem-baudrate",
dest="xmodem_baud",
help="Use the faster baudrate in xmodem",
)

mutually_group = self.parser.add_mutually_exclusive_group()
Expand Down Expand Up @@ -223,20 +224,20 @@ def update_config(self):
ConfigArgs.PKGUPD_NAME = args.pkgupd_name

# Get serial port or telnet server ip etc
if args.serial_protocol == True:
if args.serial_protocol is True:
ConfigArgs.PROTOCOL_TYPE = PROTOCOL_SERIAL
elif args.telnet_protocol == True:
elif args.telnet_protocol is True:
ConfigArgs.PROTOCOL_TYPE = PROTOCOL_TELNET

if ConfigArgs.PROTOCOL_TYPE == None:
if ConfigArgs.PROTOCOL_TYPE is None:
proto = os.environ.get("CXD56_PROTOCOL")
if proto is not None:
if "s" in proto:
ConfigArgs.PROTOCOL_TYPE = PROTOCOL_SERIAL
elif "t" in proto:
ConfigArgs.PROTOCOL_TYPE = PROTOCOL_TELNET

if ConfigArgs.PROTOCOL_TYPE == None:
if ConfigArgs.PROTOCOL_TYPE is None:
ConfigArgs.PROTOCOL_TYPE = PROTOCOL_SERIAL

if ConfigArgs.PROTOCOL_TYPE == PROTOCOL_SERIAL:
Expand Down Expand Up @@ -358,8 +359,7 @@ def show_progress(self, sendsize):
if MAX_DOT_COUNT < cur_count:
cur_count = MAX_DOT_COUNT
for idx in range(cur_count - self.count):
print("#", end="")
sys.stdout.flush()
print("#", end="", flush=True)
self.count = cur_count
if self.count == MAX_DOT_COUNT:
print("\n")
Expand Down Expand Up @@ -584,7 +584,7 @@ def main():
try:
config_loader = ConfigArgsLoader()
config_loader.update_config()
except:
except Exception:
return errno.EINVAL

# Wait to reset the board
Expand All @@ -593,15 +593,15 @@ def main():
do_wait_reset = True
if ConfigArgs.AUTO_RESET:
if subprocess.call("cd " + sys.path[0] + "; ./reset_board.sh", shell=True) == 0:
print("auto reset board sucess!!")
print("auto reset board success!!")
do_wait_reset = False
bootrom_msg = writer.cancel_autoboot()

if ConfigArgs.DTR_RESET:
do_wait_reset = False
bootrom_msg = writer.cancel_autoboot()

if ConfigArgs.WAIT_RESET == False and do_wait_reset == True:
if ConfigArgs.WAIT_RESET is False and do_wait_reset is True:
rx = writer.recv()
time.sleep(1)
for i in range(3):
Expand All @@ -621,7 +621,7 @@ def main():

# Remove files
if ConfigArgs.ERASE_NAME:
print(">>> Remove exisiting files ...")
print(">>> Remove existing files ...")
writer.delete_files(ConfigArgs.ERASE_NAME)

# Install files
Expand Down
2 changes: 2 additions & 0 deletions ports/cxd56/tools/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pyserial>=2.7
xmodem>=0.3.2
Loading