mirror of https://github.com/ARMmbed/mbed-os.git
[NUCLEO_F303K8] add rtos support
parent
1f04d34700
commit
0fb5d52a8c
|
@ -16,7 +16,7 @@
|
|||
#ifndef MBED_H
|
||||
#define MBED_H
|
||||
|
||||
#define MBED_LIBRARY_VERSION 107
|
||||
#define MBED_LIBRARY_VERSION 106
|
||||
|
||||
#include "platform.h"
|
||||
|
||||
|
|
|
@ -304,6 +304,9 @@ osThreadDef_t os_thread_def_main = {(os_pthread)main, osPriorityNormal, 0, NULL}
|
|||
#elif defined(TARGET_STM32F303RE)
|
||||
#define INITIAL_SP (0x20010000UL)
|
||||
|
||||
#elif defined(TARGET_STM32F303K8)
|
||||
#define INITIAL_SP (0x20003000UL)
|
||||
|
||||
#elif defined(TARGET_MAX32610) || defined(TARGET_MAX32600)
|
||||
#define INITIAL_SP (0x20008000UL)
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
|| defined(TARGET_STM32F411RE) || defined(TARGET_STM32F405RG) || defined(TARGET_K22F) || defined(TARGET_STM32F429ZI) || defined(TARGET_STM32F401VC) || defined(TARGET_MAX32610) || defined(TARGET_MAX32600) || defined(TARGET_TEENSY3_1) \
|
||||
|| defined(TARGET_STM32L152RE) || defined(TARGET_STM32F446RE) || defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG)
|
||||
# define OS_TASKCNT 14
|
||||
# elif defined(TARGET_LPC11U24) || defined(TARGET_STM32F303RE) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) \
|
||||
# elif defined(TARGET_LPC11U24) || defined(TARGET_STM32F303RE) || defined(TARGET_STM32F303K8) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) \
|
||||
|| defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_KL26Z) || defined(TARGET_KL05Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8) \
|
||||
|| defined(TARGET_STM32F103RB) || defined(TARGET_LPC824) || defined(TARGET_STM32F302R8) || defined(TARGET_STM32F334R8) || defined(TARGET_STM32F334C8) \
|
||||
|| defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC) || defined(TARGET_NZ32SC151) \
|
||||
|
@ -77,7 +77,7 @@
|
|||
|| defined(TARGET_STM32F103RB) || defined(TARGET_LPC824) || defined(TARGET_STM32F302R8) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC) || defined(TARGET_NZ32SC151) \
|
||||
|| defined(TARGET_SSCI824) || defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB)
|
||||
# define OS_SCHEDULERSTKSIZE 128
|
||||
# elif defined(TARGET_STM32F334R8) || defined(TARGET_STM32F303RE) || defined(TARGET_STM32F334C8) || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)
|
||||
# elif defined(TARGET_STM32F334R8) || defined(TARGET_STM32F303RE) || defined(TARGET_STM32F303K8) || defined(TARGET_STM32F334C8) || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)
|
||||
# define OS_SCHEDULERSTKSIZE 112
|
||||
# else
|
||||
# error "no target defined"
|
||||
|
@ -126,6 +126,9 @@
|
|||
# elif defined(TARGET_LPC1347) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_STM32F334R8) || defined(TARGET_STM32F334C8) || defined(TARGET_STM32F303RE) || defined(TARGET_TEENSY3_1)
|
||||
# define OS_CLOCK 72000000
|
||||
|
||||
# elif defined(TARGET_STM32F303K8)
|
||||
# define OS_CLOCK 64000000
|
||||
|
||||
# elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) || defined(TARGET_KL25Z) \
|
||||
|| defined(TARGET_KL26Z) || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F051R8) || defined(TARGET_LPC11U68) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC)
|
||||
# define OS_CLOCK 48000000
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
#define STACK_SIZE DEFAULT_STACK_SIZE/2
|
||||
#elif defined(TARGET_STM32F302R8) && defined(TOOLCHAIN_IAR)
|
||||
#define STACK_SIZE DEFAULT_STACK_SIZE/2
|
||||
#elif defined(TARGET_STM32F303K8) && defined(TOOLCHAIN_IAR)
|
||||
#define STACK_SIZE DEFAULT_STACK_SIZE/2
|
||||
#else
|
||||
#define STACK_SIZE DEFAULT_STACK_SIZE
|
||||
#endif
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
#define STACK_SIZE DEFAULT_STACK_SIZE/2
|
||||
#elif defined(TARGET_STM32F302R8) && defined(TOOLCHAIN_IAR)
|
||||
#define STACK_SIZE DEFAULT_STACK_SIZE/2
|
||||
#elif defined(TARGET_STM32F303K8) && defined(TOOLCHAIN_IAR)
|
||||
#define STACK_SIZE DEFAULT_STACK_SIZE/4
|
||||
#else
|
||||
#define STACK_SIZE DEFAULT_STACK_SIZE
|
||||
#endif
|
||||
|
|
|
@ -77,7 +77,7 @@ if __name__ == '__main__':
|
|||
action="store_true",
|
||||
dest="fat",
|
||||
default=False,
|
||||
help="Compile FS and SD card file system library")
|
||||
help="Compile FS ad SD card file system library")
|
||||
|
||||
parser.add_option("-b", "--ublox",
|
||||
action="store_true",
|
||||
|
|
|
@ -79,9 +79,7 @@ OFFICIAL_MBED_LIBRARY_BUILD = (
|
|||
('MTS_DRAGONFLY_F411RE', ('ARM', 'uARM', 'IAR', 'GCC_ARM')),
|
||||
('DISCO_L053C8', ('ARM', 'uARM', 'IAR', 'GCC_ARM')),
|
||||
('DISCO_F334C8', ('ARM', 'uARM', 'IAR', 'GCC_ARM')),
|
||||
('DISCO_F746NG', ('ARM', 'uARM')),
|
||||
('DISCO_L476VG', ('ARM', 'uARM', 'IAR', 'GCC_ARM')),
|
||||
('NUCLEO_L476RG', ('ARM', 'uARM', 'IAR', 'GCC_ARM')),
|
||||
# ('DISCO_F746NG', ('ARM', 'uARM', 'IAR')),
|
||||
|
||||
('ARCH_MAX', ('ARM', 'GCC_ARM')),
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ build_list = (
|
|||
{ "target": "NUCLEO_F091RC", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
|
||||
{ "target": "NUCLEO_F103RB", "toolchains": "GCC_ARM", "libs": ["rtos", "fat"] },
|
||||
{ "target": "NUCLEO_F302R8", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
|
||||
{ "target": "NUCLEO_F303K8", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
|
||||
{ "target": "NUCLEO_F303K8", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
|
||||
{ "target": "NUCLEO_F303RE", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
|
||||
{ "target": "NUCLEO_F334R8", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
|
||||
{ "target": "NUCLEO_F401RE", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
|
||||
|
|
|
@ -243,6 +243,7 @@ class Mbed:
|
|||
copy_method = copy_method if copy_method is not None else self.copy_method
|
||||
# Call proper copy method
|
||||
result = self.copy_image_raw(image_path, disk, copy_method)
|
||||
sleep(self.program_cycle_s)
|
||||
return result
|
||||
|
||||
def copy_image_raw(self, image_path=None, disk=None, copy_method=None):
|
||||
|
@ -257,7 +258,7 @@ class Mbed:
|
|||
else:
|
||||
copy_method = 'shell'
|
||||
|
||||
result = host_tests_plugins.call_plugin('CopyMethod', copy_method, image_path=image_path, destination_disk=disk, program_cycle_s=self.program_cycle_s)
|
||||
result = host_tests_plugins.call_plugin('CopyMethod', copy_method, image_path=image_path, destination_disk=disk)
|
||||
return result;
|
||||
|
||||
def flush(self):
|
||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
|||
|
||||
from shutil import copy
|
||||
from host_test_plugins import HostTestPluginBase
|
||||
from time import sleep
|
||||
|
||||
|
||||
class HostTestPluginCopyMethod_Mbed(HostTestPluginBase):
|
||||
|
@ -43,7 +42,7 @@ class HostTestPluginCopyMethod_Mbed(HostTestPluginBase):
|
|||
type = 'CopyMethod'
|
||||
stable = True
|
||||
capabilities = ['shutil', 'default']
|
||||
required_parameters = ['image_path', 'destination_disk', 'program_cycle_s']
|
||||
required_parameters = ['image_path', 'destination_disk']
|
||||
|
||||
def setup(self, *args, **kwargs):
|
||||
""" Configure plugin, this function should be called before plugin execute() method is used.
|
||||
|
@ -61,14 +60,9 @@ class HostTestPluginCopyMethod_Mbed(HostTestPluginBase):
|
|||
if capability == 'shutil':
|
||||
image_path = kwargs['image_path']
|
||||
destination_disk = kwargs['destination_disk']
|
||||
program_cycle_s = kwargs['program_cycle_s']
|
||||
# Wait for mount point to be ready
|
||||
self.check_mount_point_ready(destination_disk) # Blocking
|
||||
result = self.generic_mbed_copy(image_path, destination_disk)
|
||||
|
||||
# Allow mbed to cycle
|
||||
sleep(program_cycle_s)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@ limitations under the License.
|
|||
import os
|
||||
from os.path import join, basename
|
||||
from host_test_plugins import HostTestPluginBase
|
||||
from time import sleep
|
||||
|
||||
|
||||
class HostTestPluginCopyMethod_Shell(HostTestPluginBase):
|
||||
|
@ -28,7 +27,7 @@ class HostTestPluginCopyMethod_Shell(HostTestPluginBase):
|
|||
type = 'CopyMethod'
|
||||
stable = True
|
||||
capabilities = ['shell', 'cp', 'copy', 'xcopy']
|
||||
required_parameters = ['image_path', 'destination_disk', 'program_cycle_s']
|
||||
required_parameters = ['image_path', 'destination_disk']
|
||||
|
||||
def setup(self, *args, **kwargs):
|
||||
""" Configure plugin, this function should be called before plugin execute() method is used.
|
||||
|
@ -44,7 +43,6 @@ class HostTestPluginCopyMethod_Shell(HostTestPluginBase):
|
|||
if self.check_parameters(capability, *args, **kwargs) is True:
|
||||
image_path = kwargs['image_path']
|
||||
destination_disk = kwargs['destination_disk']
|
||||
program_cycle_s = kwargs['program_cycle_s']
|
||||
# Wait for mount point to be ready
|
||||
self.check_mount_point_ready(destination_disk) # Blocking
|
||||
# Prepare correct command line parameter values
|
||||
|
@ -61,10 +59,6 @@ class HostTestPluginCopyMethod_Shell(HostTestPluginBase):
|
|||
result = self.run_command(["sync"])
|
||||
else:
|
||||
result = self.run_command(cmd)
|
||||
|
||||
# Allow mbed to cycle
|
||||
sleep(program_cycle_s)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@ limitations under the License.
|
|||
"""
|
||||
|
||||
from host_test_plugins import HostTestPluginBase
|
||||
from time import sleep
|
||||
|
||||
|
||||
class HostTestPluginCopyMethod_Silabs(HostTestPluginBase):
|
||||
|
@ -25,7 +24,7 @@ class HostTestPluginCopyMethod_Silabs(HostTestPluginBase):
|
|||
name = 'HostTestPluginCopyMethod_Silabs'
|
||||
type = 'CopyMethod'
|
||||
capabilities = ['eACommander', 'eACommander-usb']
|
||||
required_parameters = ['image_path', 'destination_disk', 'program_cycle_s']
|
||||
required_parameters = ['image_path', 'destination_disk']
|
||||
|
||||
def setup(self, *args, **kwargs):
|
||||
""" Configure plugin, this function should be called before plugin execute() method is used.
|
||||
|
@ -42,7 +41,6 @@ class HostTestPluginCopyMethod_Silabs(HostTestPluginBase):
|
|||
if self.check_parameters(capabilitity, *args, **kwargs) is True:
|
||||
image_path = kwargs['image_path']
|
||||
destination_disk = kwargs['destination_disk']
|
||||
program_cycle_s = kwargs['program_cycle_s']
|
||||
if capabilitity == 'eACommander':
|
||||
cmd = [self.EACOMMANDER_CMD,
|
||||
'--serialno', destination_disk,
|
||||
|
@ -54,10 +52,6 @@ class HostTestPluginCopyMethod_Silabs(HostTestPluginBase):
|
|||
'--usb', destination_disk,
|
||||
'--flash', image_path]
|
||||
result = self.run_command(cmd)
|
||||
|
||||
# Allow mbed to cycle
|
||||
sleep(program_cycle_s)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
|
|
|
@ -657,7 +657,7 @@ TESTS = [
|
|||
"RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE",
|
||||
"NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F030R8", "NUCLEO_F070RB",
|
||||
"NUCLEO_L053R8", "DISCO_L053C8", "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "DISCO_L476VG", "NUCLEO_L476RG",
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
},
|
||||
{
|
||||
"id": "RTOS_2", "description": "Mutex resource lock",
|
||||
|
@ -670,7 +670,7 @@ TESTS = [
|
|||
"RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE",
|
||||
"NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F030R8", "NUCLEO_F070RB",
|
||||
"NUCLEO_L053R8", "DISCO_L053C8", "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "DISCO_L476VG", "NUCLEO_L476RG",
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
},
|
||||
{
|
||||
"id": "RTOS_3", "description": "Semaphore resource lock",
|
||||
|
@ -683,7 +683,7 @@ TESTS = [
|
|||
"RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE",
|
||||
"NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F030R8", "NUCLEO_F070RB",
|
||||
"NUCLEO_L053R8", "DISCO_L053C8", "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "DISCO_L476VG", "NUCLEO_L476RG",
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
},
|
||||
{
|
||||
"id": "RTOS_4", "description": "Signals messaging",
|
||||
|
@ -695,7 +695,7 @@ TESTS = [
|
|||
"RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE",
|
||||
"NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F030R8", "NUCLEO_F070RB",
|
||||
"NUCLEO_L053R8", "DISCO_L053C8", "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "DISCO_L476VG", "NUCLEO_L476RG",
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
},
|
||||
{
|
||||
"id": "RTOS_5", "description": "Queue messaging",
|
||||
|
@ -707,7 +707,7 @@ TESTS = [
|
|||
"RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE",
|
||||
"NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F030R8", "NUCLEO_F070RB",
|
||||
"NUCLEO_L053R8", "DISCO_L053C8", "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "DISCO_L476VG", "NUCLEO_L476RG",
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
},
|
||||
{
|
||||
"id": "RTOS_6", "description": "Mail messaging",
|
||||
|
@ -719,7 +719,7 @@ TESTS = [
|
|||
"RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE",
|
||||
"NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F030R8", "NUCLEO_F070RB",
|
||||
"NUCLEO_L053R8", "DISCO_L053C8", "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "DISCO_L476VG", "NUCLEO_L476RG",
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
},
|
||||
{
|
||||
"id": "RTOS_7", "description": "Timer",
|
||||
|
@ -733,7 +733,7 @@ TESTS = [
|
|||
"RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE",
|
||||
"NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F030R8", "NUCLEO_F070RB",
|
||||
"NUCLEO_L053R8", "DISCO_L053C8", "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "DISCO_L476VG", "NUCLEO_L476RG",
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
},
|
||||
{
|
||||
"id": "RTOS_8", "description": "ISR (Queue)",
|
||||
|
@ -745,7 +745,7 @@ TESTS = [
|
|||
"RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE",
|
||||
"NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F030R8", "NUCLEO_F070RB",
|
||||
"NUCLEO_L053R8", "DISCO_L053C8", "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "DISCO_L476VG", "NUCLEO_L476RG",
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
"DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG"],
|
||||
},
|
||||
{
|
||||
"id": "RTOS_9", "description": "SD File write-read",
|
||||
|
|
Loading…
Reference in New Issue