Added STM32L073RZ-Nucleo64 to USB-CDC "multi" demo. Removed old demo.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15059 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
e3b5a38b85
commit
f7c2186097
|
@ -74,6 +74,7 @@
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
|
|
||||||
*** Next ***
|
*** Next ***
|
||||||
|
- NEW: Added STM32L073RZ-Nucleo64 to USB-CDC "multi" demo. Removed old demo.
|
||||||
- NEW: Added an STM32 WDG "multi" demo. Removed all old WDG demos.
|
- NEW: Added an STM32 WDG "multi" demo. Removed all old WDG demos.
|
||||||
- NEW: Added option to copy vectors in RAM on GCC startup for ARMv6-M,
|
- NEW: Added option to copy vectors in RAM on GCC startup for ARMv6-M,
|
||||||
ARMv7-M and ARMv8-M-ML.
|
ARMv7-M and ARMv8-M-ML.
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<?fileVersion 4.0.0?>
|
|
||||||
|
|
||||||
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
|
||||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
|
||||||
<cconfiguration id="0.1778476092">
|
|
||||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.1778476092" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
|
||||||
<externalSettings/>
|
|
||||||
<extensions>
|
|
||||||
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
|
||||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
|
||||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
|
||||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
|
||||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
|
||||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
|
||||||
</extensions>
|
|
||||||
</storageModule>
|
|
||||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
|
||||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="0.1778476092" name="Default" parent="org.eclipse.cdt.build.core.prefbase.cfg">
|
|
||||||
<folderInfo id="0.1778476092." name="/" resourcePath="">
|
|
||||||
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.285665892" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
|
|
||||||
<targetPlatform id="org.eclipse.cdt.build.core.prefbase.toolchain.285665892.893028886" name=""/>
|
|
||||||
<builder autoBuildTarget="all" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="org.eclipse.cdt.build.core.settings.default.builder.823013526" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
|
|
||||||
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1768756444" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
|
|
||||||
<tool id="org.eclipse.cdt.build.core.settings.holder.49486920" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
|
|
||||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1013907283" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
|
||||||
</tool>
|
|
||||||
<tool id="org.eclipse.cdt.build.core.settings.holder.697417823" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
|
|
||||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.2140365311" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
|
||||||
</tool>
|
|
||||||
<tool id="org.eclipse.cdt.build.core.settings.holder.151428701" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
|
|
||||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1342039645" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
|
||||||
</tool>
|
|
||||||
</toolChain>
|
|
||||||
</folderInfo>
|
|
||||||
</configuration>
|
|
||||||
</storageModule>
|
|
||||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
|
||||||
</cconfiguration>
|
|
||||||
</storageModule>
|
|
||||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
|
||||||
<project id="STM32L0xx-USB_CDC.null.1378892026" name="STM32L0xx-USB_CDC"/>
|
|
||||||
</storageModule>
|
|
||||||
<storageModule moduleId="scannerConfiguration">
|
|
||||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
|
||||||
<scannerConfigBuildInfo instanceId="0.1778476092">
|
|
||||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
|
||||||
</scannerConfigBuildInfo>
|
|
||||||
</storageModule>
|
|
||||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
|
||||||
<storageModule moduleId="refreshScope"/>
|
|
||||||
</cproject>
|
|
|
@ -1,43 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>STM32L0xx-USB_CDC</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
|
||||||
<triggers>clean,full,incremental,</triggers>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
|
||||||
<triggers>full,incremental,</triggers>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
|
||||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
|
||||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
|
||||||
</natures>
|
|
||||||
<linkedResources>
|
|
||||||
<link>
|
|
||||||
<name>board</name>
|
|
||||||
<type>2</type>
|
|
||||||
<locationURI>CHIBIOS/os/hal/boards/ST_NUCLEO64_L073RZ</locationURI>
|
|
||||||
</link>
|
|
||||||
<link>
|
|
||||||
<name>os</name>
|
|
||||||
<type>2</type>
|
|
||||||
<locationURI>CHIBIOS/os</locationURI>
|
|
||||||
</link>
|
|
||||||
<link>
|
|
||||||
<name>test</name>
|
|
||||||
<type>2</type>
|
|
||||||
<locationURI>CHIBIOS/test</locationURI>
|
|
||||||
</link>
|
|
||||||
</linkedResources>
|
|
||||||
</projectDescription>
|
|
|
@ -1,166 +0,0 @@
|
||||||
/*
|
|
||||||
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "ch.h"
|
|
||||||
#include "hal.h"
|
|
||||||
|
|
||||||
#include "shell.h"
|
|
||||||
#include "chprintf.h"
|
|
||||||
|
|
||||||
#include "usbcfg.h"
|
|
||||||
|
|
||||||
/*===========================================================================*/
|
|
||||||
/* Command line related. */
|
|
||||||
/*===========================================================================*/
|
|
||||||
|
|
||||||
#define SHELL_WA_SIZE THD_WORKING_AREA_SIZE(2048)
|
|
||||||
|
|
||||||
/* Can be measured using dd if=/dev/xxxx of=/dev/null bs=512 count=10000.*/
|
|
||||||
static void cmd_write(BaseSequentialStream *chp, int argc, char *argv[]) {
|
|
||||||
static uint8_t buf[] =
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
||||||
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef";
|
|
||||||
|
|
||||||
(void)argv;
|
|
||||||
if (argc > 0) {
|
|
||||||
chprintf(chp, "Usage: write\r\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (chnGetTimeout((BaseChannel *)chp, TIME_IMMEDIATE) == Q_TIMEOUT) {
|
|
||||||
#if 1
|
|
||||||
/* Writing in channel mode.*/
|
|
||||||
chnWrite(&SDU1, buf, sizeof buf - 1);
|
|
||||||
#else
|
|
||||||
/* Writing in buffer mode.*/
|
|
||||||
(void) obqGetEmptyBufferTimeout(&SDU1.obqueue, TIME_INFINITE);
|
|
||||||
memcpy(SDU1.obqueue.ptr, buf, SERIAL_USB_BUFFERS_SIZE);
|
|
||||||
obqPostFullBuffer(&SDU1.obqueue, SERIAL_USB_BUFFERS_SIZE);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
chprintf(chp, "\r\n\nstopped\r\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static const ShellCommand commands[] = {
|
|
||||||
{"write", cmd_write},
|
|
||||||
{NULL, NULL}
|
|
||||||
};
|
|
||||||
|
|
||||||
static const ShellConfig shell_cfg1 = {
|
|
||||||
(BaseSequentialStream *)&SDU1,
|
|
||||||
commands
|
|
||||||
};
|
|
||||||
|
|
||||||
/*===========================================================================*/
|
|
||||||
/* Generic code. */
|
|
||||||
/*===========================================================================*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Red LED blinker thread, times are in milliseconds.
|
|
||||||
*/
|
|
||||||
static THD_WORKING_AREA(waThread1, 128);
|
|
||||||
static THD_FUNCTION(Thread1, arg) {
|
|
||||||
|
|
||||||
(void)arg;
|
|
||||||
chRegSetThreadName("blinker");
|
|
||||||
while (true) {
|
|
||||||
systime_t time;
|
|
||||||
|
|
||||||
time = serusbcfg.usbp->state == USB_ACTIVE ? 250 : 500;
|
|
||||||
palClearLine(LINE_LED_GREEN);
|
|
||||||
chThdSleepMilliseconds(time);
|
|
||||||
palSetLine(LINE_LED_GREEN);
|
|
||||||
chThdSleepMilliseconds(time);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Application entry point.
|
|
||||||
*/
|
|
||||||
int main(void) {
|
|
||||||
|
|
||||||
/*
|
|
||||||
* System initializations.
|
|
||||||
* - HAL initialization, this also initializes the configured device drivers
|
|
||||||
* and performs the board-specific initializations.
|
|
||||||
* - Kernel initialization, the main() function becomes a thread and the
|
|
||||||
* RTOS is active.
|
|
||||||
*/
|
|
||||||
halInit();
|
|
||||||
chSysInit();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initializes a serial-over-USB CDC driver.
|
|
||||||
*/
|
|
||||||
sduObjectInit(&SDU1);
|
|
||||||
sduStart(&SDU1, &serusbcfg);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Configuring USB DP and DM PINs.
|
|
||||||
*/
|
|
||||||
palSetPadMode(GPIOA, GPIOA_PIN11, PAL_MODE_INPUT);
|
|
||||||
palSetPadMode(GPIOA, GPIOA_PIN12, PAL_MODE_INPUT);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Activates the USB driver and then the USB bus pull-up on D+.
|
|
||||||
* Note, a delay is inserted in order to not have to disconnect the cable
|
|
||||||
* after a reset.
|
|
||||||
*/
|
|
||||||
usbDisconnectBus(serusbcfg.usbp);
|
|
||||||
chThdSleepMilliseconds(1500);
|
|
||||||
usbStart(serusbcfg.usbp, &usbcfg);
|
|
||||||
usbConnectBus(serusbcfg.usbp);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Shell manager initialization.
|
|
||||||
*/
|
|
||||||
shellInit();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Creates the blinker thread.
|
|
||||||
*/
|
|
||||||
chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Normal main() thread activity, spawning shells.
|
|
||||||
*/
|
|
||||||
while (true) {
|
|
||||||
if (SDU1.config->usbp->state == USB_ACTIVE) {
|
|
||||||
thread_t *shelltp = chThdCreateFromHeap(NULL, SHELL_WA_SIZE,
|
|
||||||
"shell", NORMALPRIO + 1,
|
|
||||||
shellThread, (void *)&shell_cfg1);
|
|
||||||
chThdWait(shelltp); /* Waiting termination. */
|
|
||||||
}
|
|
||||||
chThdSleepMilliseconds(1000);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
*****************************************************************************
|
|
||||||
** ChibiOS/HAL - USB-CDC driver demo for STM32F072. **
|
|
||||||
*****************************************************************************
|
|
||||||
|
|
||||||
** TARGET **
|
|
||||||
|
|
||||||
The demo runs on an ST STM32 Nycleo-64 L073RZ board and requires a USB
|
|
||||||
break-out board having PA11 connected to USB_DM and PA12 connected to USB_DP.
|
|
||||||
|
|
||||||
** The Demo **
|
|
||||||
|
|
||||||
The application demonstrates the use of the STM32L073 USB driver.
|
|
||||||
|
|
||||||
** Build Procedure **
|
|
||||||
|
|
||||||
The demo has been tested using the free Codesourcery GCC-based toolchain
|
|
||||||
and YAGARTO.
|
|
||||||
Just modify the TRGT line in the makefile in order to use different GCC ports.
|
|
||||||
|
|
||||||
** Notes **
|
|
||||||
|
|
||||||
Some files used by the demo are not part of ChibiOS/RT but are copyright of
|
|
||||||
ST Microelectronics and are licensed under a different license.
|
|
||||||
Also note that not all the files present in the ST library are distributed
|
|
||||||
with ChibiOS/RT, you can find the whole library on the ST web site:
|
|
||||||
|
|
||||||
http://www.st.com
|
|
|
@ -1,342 +0,0 @@
|
||||||
/*
|
|
||||||
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "hal.h"
|
|
||||||
|
|
||||||
/* Virtual serial port over USB.*/
|
|
||||||
SerialUSBDriver SDU1;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Endpoints to be used for USBD1.
|
|
||||||
*/
|
|
||||||
#define USBD1_DATA_REQUEST_EP 1
|
|
||||||
#define USBD1_DATA_AVAILABLE_EP 1
|
|
||||||
#define USBD1_INTERRUPT_REQUEST_EP 2
|
|
||||||
|
|
||||||
/*
|
|
||||||
* USB Device Descriptor.
|
|
||||||
*/
|
|
||||||
static const uint8_t vcom_device_descriptor_data[18] = {
|
|
||||||
USB_DESC_DEVICE (0x0110, /* bcdUSB (1.1). */
|
|
||||||
0x02, /* bDeviceClass (CDC). */
|
|
||||||
0x00, /* bDeviceSubClass. */
|
|
||||||
0x00, /* bDeviceProtocol. */
|
|
||||||
0x40, /* bMaxPacketSize. */
|
|
||||||
0x0483, /* idVendor (ST). */
|
|
||||||
0x5740, /* idProduct. */
|
|
||||||
0x0200, /* bcdDevice. */
|
|
||||||
1, /* iManufacturer. */
|
|
||||||
2, /* iProduct. */
|
|
||||||
3, /* iSerialNumber. */
|
|
||||||
1) /* bNumConfigurations. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Device Descriptor wrapper.
|
|
||||||
*/
|
|
||||||
static const USBDescriptor vcom_device_descriptor = {
|
|
||||||
sizeof vcom_device_descriptor_data,
|
|
||||||
vcom_device_descriptor_data
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Configuration Descriptor tree for a CDC.*/
|
|
||||||
static const uint8_t vcom_configuration_descriptor_data[67] = {
|
|
||||||
/* Configuration Descriptor.*/
|
|
||||||
USB_DESC_CONFIGURATION(67, /* wTotalLength. */
|
|
||||||
0x02, /* bNumInterfaces. */
|
|
||||||
0x01, /* bConfigurationValue. */
|
|
||||||
0, /* iConfiguration. */
|
|
||||||
0xC0, /* bmAttributes (self powered). */
|
|
||||||
50), /* bMaxPower (100mA). */
|
|
||||||
/* Interface Descriptor.*/
|
|
||||||
USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */
|
|
||||||
0x00, /* bAlternateSetting. */
|
|
||||||
0x01, /* bNumEndpoints. */
|
|
||||||
0x02, /* bInterfaceClass (Communications
|
|
||||||
Interface Class, CDC section
|
|
||||||
4.2). */
|
|
||||||
0x02, /* bInterfaceSubClass (Abstract
|
|
||||||
Control Model, CDC section 4.3). */
|
|
||||||
0x01, /* bInterfaceProtocol (AT commands,
|
|
||||||
CDC section 4.4). */
|
|
||||||
0), /* iInterface. */
|
|
||||||
/* Header Functional Descriptor (CDC section 5.2.3).*/
|
|
||||||
USB_DESC_BYTE (5), /* bLength. */
|
|
||||||
USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */
|
|
||||||
USB_DESC_BYTE (0x00), /* bDescriptorSubtype (Header
|
|
||||||
Functional Descriptor. */
|
|
||||||
USB_DESC_BCD (0x0110), /* bcdCDC. */
|
|
||||||
/* Call Management Functional Descriptor. */
|
|
||||||
USB_DESC_BYTE (5), /* bFunctionLength. */
|
|
||||||
USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */
|
|
||||||
USB_DESC_BYTE (0x01), /* bDescriptorSubtype (Call Management
|
|
||||||
Functional Descriptor). */
|
|
||||||
USB_DESC_BYTE (0x00), /* bmCapabilities (D0+D1). */
|
|
||||||
USB_DESC_BYTE (0x01), /* bDataInterface. */
|
|
||||||
/* ACM Functional Descriptor.*/
|
|
||||||
USB_DESC_BYTE (4), /* bFunctionLength. */
|
|
||||||
USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */
|
|
||||||
USB_DESC_BYTE (0x02), /* bDescriptorSubtype (Abstract
|
|
||||||
Control Management Descriptor). */
|
|
||||||
USB_DESC_BYTE (0x02), /* bmCapabilities. */
|
|
||||||
/* Union Functional Descriptor.*/
|
|
||||||
USB_DESC_BYTE (5), /* bFunctionLength. */
|
|
||||||
USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */
|
|
||||||
USB_DESC_BYTE (0x06), /* bDescriptorSubtype (Union
|
|
||||||
Functional Descriptor). */
|
|
||||||
USB_DESC_BYTE (0x00), /* bMasterInterface (Communication
|
|
||||||
Class Interface). */
|
|
||||||
USB_DESC_BYTE (0x01), /* bSlaveInterface0 (Data Class
|
|
||||||
Interface). */
|
|
||||||
/* Endpoint 2 Descriptor.*/
|
|
||||||
USB_DESC_ENDPOINT (USBD1_INTERRUPT_REQUEST_EP|0x80,
|
|
||||||
0x03, /* bmAttributes (Interrupt). */
|
|
||||||
0x0008, /* wMaxPacketSize. */
|
|
||||||
0xFF), /* bInterval. */
|
|
||||||
/* Interface Descriptor.*/
|
|
||||||
USB_DESC_INTERFACE (0x01, /* bInterfaceNumber. */
|
|
||||||
0x00, /* bAlternateSetting. */
|
|
||||||
0x02, /* bNumEndpoints. */
|
|
||||||
0x0A, /* bInterfaceClass (Data Class
|
|
||||||
Interface, CDC section 4.5). */
|
|
||||||
0x00, /* bInterfaceSubClass (CDC section
|
|
||||||
4.6). */
|
|
||||||
0x00, /* bInterfaceProtocol (CDC section
|
|
||||||
4.7). */
|
|
||||||
0x00), /* iInterface. */
|
|
||||||
/* Endpoint 3 Descriptor.*/
|
|
||||||
USB_DESC_ENDPOINT (USBD1_DATA_AVAILABLE_EP, /* bEndpointAddress.*/
|
|
||||||
0x02, /* bmAttributes (Bulk). */
|
|
||||||
0x0040, /* wMaxPacketSize. */
|
|
||||||
0x00), /* bInterval. */
|
|
||||||
/* Endpoint 1 Descriptor.*/
|
|
||||||
USB_DESC_ENDPOINT (USBD1_DATA_REQUEST_EP|0x80, /* bEndpointAddress.*/
|
|
||||||
0x02, /* bmAttributes (Bulk). */
|
|
||||||
0x0040, /* wMaxPacketSize. */
|
|
||||||
0x00) /* bInterval. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Configuration Descriptor wrapper.
|
|
||||||
*/
|
|
||||||
static const USBDescriptor vcom_configuration_descriptor = {
|
|
||||||
sizeof vcom_configuration_descriptor_data,
|
|
||||||
vcom_configuration_descriptor_data
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* U.S. English language identifier.
|
|
||||||
*/
|
|
||||||
static const uint8_t vcom_string0[] = {
|
|
||||||
USB_DESC_BYTE(4), /* bLength. */
|
|
||||||
USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */
|
|
||||||
USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Vendor string.
|
|
||||||
*/
|
|
||||||
static const uint8_t vcom_string1[] = {
|
|
||||||
USB_DESC_BYTE(38), /* bLength. */
|
|
||||||
USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */
|
|
||||||
'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0,
|
|
||||||
'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0,
|
|
||||||
'c', 0, 's', 0
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Device Description string.
|
|
||||||
*/
|
|
||||||
static const uint8_t vcom_string2[] = {
|
|
||||||
USB_DESC_BYTE(56), /* bLength. */
|
|
||||||
USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */
|
|
||||||
'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0,
|
|
||||||
'R', 0, 'T', 0, ' ', 0, 'V', 0, 'i', 0, 'r', 0, 't', 0, 'u', 0,
|
|
||||||
'a', 0, 'l', 0, ' ', 0, 'C', 0, 'O', 0, 'M', 0, ' ', 0, 'P', 0,
|
|
||||||
'o', 0, 'r', 0, 't', 0
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Serial Number string.
|
|
||||||
*/
|
|
||||||
static const uint8_t vcom_string3[] = {
|
|
||||||
USB_DESC_BYTE(8), /* bLength. */
|
|
||||||
USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */
|
|
||||||
'0' + CH_KERNEL_MAJOR, 0,
|
|
||||||
'0' + CH_KERNEL_MINOR, 0,
|
|
||||||
'0' + CH_KERNEL_PATCH, 0
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Strings wrappers array.
|
|
||||||
*/
|
|
||||||
static const USBDescriptor vcom_strings[] = {
|
|
||||||
{sizeof vcom_string0, vcom_string0},
|
|
||||||
{sizeof vcom_string1, vcom_string1},
|
|
||||||
{sizeof vcom_string2, vcom_string2},
|
|
||||||
{sizeof vcom_string3, vcom_string3}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Handles the GET_DESCRIPTOR callback. All required descriptors must be
|
|
||||||
* handled here.
|
|
||||||
*/
|
|
||||||
static const USBDescriptor *get_descriptor(USBDriver *usbp,
|
|
||||||
uint8_t dtype,
|
|
||||||
uint8_t dindex,
|
|
||||||
uint16_t lang) {
|
|
||||||
|
|
||||||
(void)usbp;
|
|
||||||
(void)lang;
|
|
||||||
switch (dtype) {
|
|
||||||
case USB_DESCRIPTOR_DEVICE:
|
|
||||||
return &vcom_device_descriptor;
|
|
||||||
case USB_DESCRIPTOR_CONFIGURATION:
|
|
||||||
return &vcom_configuration_descriptor;
|
|
||||||
case USB_DESCRIPTOR_STRING:
|
|
||||||
if (dindex < 4)
|
|
||||||
return &vcom_strings[dindex];
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief IN EP1 state.
|
|
||||||
*/
|
|
||||||
static USBInEndpointState ep1instate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief OUT EP1 state.
|
|
||||||
*/
|
|
||||||
static USBOutEndpointState ep1outstate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief EP1 initialization structure (both IN and OUT).
|
|
||||||
*/
|
|
||||||
static const USBEndpointConfig ep1config = {
|
|
||||||
USB_EP_MODE_TYPE_BULK,
|
|
||||||
NULL,
|
|
||||||
sduDataTransmitted,
|
|
||||||
sduDataReceived,
|
|
||||||
0x0040,
|
|
||||||
0x0040,
|
|
||||||
&ep1instate,
|
|
||||||
&ep1outstate,
|
|
||||||
1,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief IN EP2 state.
|
|
||||||
*/
|
|
||||||
static USBInEndpointState ep2instate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief EP2 initialization structure (IN only).
|
|
||||||
*/
|
|
||||||
static const USBEndpointConfig ep2config = {
|
|
||||||
USB_EP_MODE_TYPE_INTR,
|
|
||||||
NULL,
|
|
||||||
sduInterruptTransmitted,
|
|
||||||
NULL,
|
|
||||||
0x0010,
|
|
||||||
0x0000,
|
|
||||||
&ep2instate,
|
|
||||||
NULL,
|
|
||||||
1,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Handles the USB driver global events.
|
|
||||||
*/
|
|
||||||
static void usb_event(USBDriver *usbp, usbevent_t event) {
|
|
||||||
extern SerialUSBDriver SDU1;
|
|
||||||
|
|
||||||
switch (event) {
|
|
||||||
case USB_EVENT_ADDRESS:
|
|
||||||
return;
|
|
||||||
case USB_EVENT_CONFIGURED:
|
|
||||||
chSysLockFromISR();
|
|
||||||
|
|
||||||
/* Enables the endpoints specified into the configuration.
|
|
||||||
Note, this callback is invoked from an ISR so I-Class functions
|
|
||||||
must be used.*/
|
|
||||||
usbInitEndpointI(usbp, USBD1_DATA_REQUEST_EP, &ep1config);
|
|
||||||
usbInitEndpointI(usbp, USBD1_INTERRUPT_REQUEST_EP, &ep2config);
|
|
||||||
|
|
||||||
/* Resetting the state of the CDC subsystem.*/
|
|
||||||
sduConfigureHookI(&SDU1);
|
|
||||||
|
|
||||||
chSysUnlockFromISR();
|
|
||||||
return;
|
|
||||||
case USB_EVENT_RESET:
|
|
||||||
/* Falls into.*/
|
|
||||||
case USB_EVENT_UNCONFIGURED:
|
|
||||||
/* Falls into.*/
|
|
||||||
case USB_EVENT_SUSPEND:
|
|
||||||
chSysLockFromISR();
|
|
||||||
|
|
||||||
/* Disconnection event on suspend.*/
|
|
||||||
sduSuspendHookI(&SDU1);
|
|
||||||
|
|
||||||
chSysUnlockFromISR();
|
|
||||||
return;
|
|
||||||
case USB_EVENT_WAKEUP:
|
|
||||||
chSysLockFromISR();
|
|
||||||
|
|
||||||
/* Connection event on wakeup.*/
|
|
||||||
sduWakeupHookI(&SDU1);
|
|
||||||
|
|
||||||
chSysUnlockFromISR();
|
|
||||||
return;
|
|
||||||
case USB_EVENT_STALLED:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Handles the USB driver global events.
|
|
||||||
*/
|
|
||||||
static void sof_handler(USBDriver *usbp) {
|
|
||||||
|
|
||||||
(void)usbp;
|
|
||||||
|
|
||||||
osalSysLockFromISR();
|
|
||||||
sduSOFHookI(&SDU1);
|
|
||||||
osalSysUnlockFromISR();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* USB driver configuration.
|
|
||||||
*/
|
|
||||||
const USBConfig usbcfg = {
|
|
||||||
usb_event,
|
|
||||||
get_descriptor,
|
|
||||||
sduRequestsHook,
|
|
||||||
sof_handler
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Serial over USB driver configuration.
|
|
||||||
*/
|
|
||||||
const SerialUSBConfig serusbcfg = {
|
|
||||||
&USBD1,
|
|
||||||
USBD1_DATA_REQUEST_EP,
|
|
||||||
USBD1_DATA_AVAILABLE_EP,
|
|
||||||
USBD1_INTERRUPT_REQUEST_EP
|
|
||||||
};
|
|
|
@ -1,26 +0,0 @@
|
||||||
/*
|
|
||||||
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef USBCFG_H
|
|
||||||
#define USBCFG_H
|
|
||||||
|
|
||||||
extern const USBConfig usbcfg;
|
|
||||||
extern SerialUSBConfig serusbcfg;
|
|
||||||
extern SerialUSBDriver SDU1;
|
|
||||||
|
|
||||||
#endif /* USBCFG_H */
|
|
||||||
|
|
||||||
/** @} */
|
|
|
@ -307,12 +307,49 @@
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||||
</cconfiguration>
|
</cconfiguration>
|
||||||
|
<cconfiguration id="0.1093754934.1746620542.1648763414">
|
||||||
|
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.1093754934.1746620542.1648763414" moduleId="org.eclipse.cdt.core.settings" name="Build for STM32L073RZ-Nucleo64">
|
||||||
|
<externalSettings/>
|
||||||
|
<extensions>
|
||||||
|
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
</extensions>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
|
<configuration artifactName="${ProjName}" buildProperties="" description="" id="0.1093754934.1746620542.1648763414" name="Build for STM32L073RZ-Nucleo64" parent="org.eclipse.cdt.build.core.prefbase.cfg">
|
||||||
|
<folderInfo id="0.1093754934.1746620542.1648763414." name="/" resourcePath="">
|
||||||
|
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.473137987" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
|
||||||
|
<targetPlatform id="org.eclipse.cdt.build.core.prefbase.toolchain.473137987.851551634" name=""/>
|
||||||
|
<builder arguments="-f ./make/stm32l073rz_nucleo64.make" command="make" id="org.eclipse.cdt.build.core.settings.default.builder.755352296" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="unlimited" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
|
||||||
|
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1451665453" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
|
||||||
|
<tool id="org.eclipse.cdt.build.core.settings.holder.32722962" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||||
|
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1769928865" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="org.eclipse.cdt.build.core.settings.holder.1591963534" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||||
|
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.137018695" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="org.eclipse.cdt.build.core.settings.holder.372309299" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||||
|
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1189998062" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||||
|
</tool>
|
||||||
|
</toolChain>
|
||||||
|
</folderInfo>
|
||||||
|
</configuration>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||||
|
</cconfiguration>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
<project id="STM32-USB_CDC.null.932840044" name="STM32-USB_CDC"/>
|
<project id="STM32-USB_CDC.null.932840044" name="STM32-USB_CDC"/>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||||
<configuration configurationName="Build for STM32F407-Discovery"/>
|
<configuration configurationName="Build for STM32F407-Discovery"/>
|
||||||
|
<configuration configurationName="Build for STM32L073RZ-Nucleo64">
|
||||||
|
<resource resourceType="PROJECT" workspacePath="/STM32-USB_CDC"/>
|
||||||
|
</configuration>
|
||||||
<configuration configurationName="Build for STM32F303-Discovery"/>
|
<configuration configurationName="Build for STM32F303-Discovery"/>
|
||||||
<configuration configurationName="Build for STM32WB55-Nucleo68">
|
<configuration configurationName="Build for STM32WB55-Nucleo68">
|
||||||
<resource resourceType="PROJECT" workspacePath="/STM32-USB_CDC"/>
|
<resource resourceType="PROJECT" workspacePath="/STM32-USB_CDC"/>
|
||||||
|
@ -363,6 +400,9 @@
|
||||||
<scannerConfigBuildInfo instanceId="0.1093754934.1600162136">
|
<scannerConfigBuildInfo instanceId="0.1093754934.1600162136">
|
||||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
||||||
</scannerConfigBuildInfo>
|
</scannerConfigBuildInfo>
|
||||||
|
<scannerConfigBuildInfo instanceId="0.1093754934.1746620542.1648763414">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
||||||
|
</scannerConfigBuildInfo>
|
||||||
<scannerConfigBuildInfo instanceId="0.1093754934.1600162136.1322052889">
|
<scannerConfigBuildInfo instanceId="0.1093754934.1600162136.1322052889">
|
||||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
||||||
</scannerConfigBuildInfo>
|
</scannerConfigBuildInfo>
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
@echo
|
||||||
|
@echo === Building for STM32L073RZ-Nucleo64 ==============================
|
||||||
|
+@make --no-print-directory -f ./make/stm32l073rz_nucleo64.make all
|
||||||
|
@echo ====================================================================
|
||||||
@echo
|
@echo
|
||||||
@echo === Building for STM32L476-Discovery ===============================
|
@echo === Building for STM32L476-Discovery ===============================
|
||||||
+@make --no-print-directory -f ./make/stm32l476_discovery.make all
|
+@make --no-print-directory -f ./make/stm32l476_discovery.make all
|
||||||
|
@ -28,16 +32,18 @@ all:
|
||||||
+@make --no-print-directory -f ./make/stm32h743_nucleo144.make all
|
+@make --no-print-directory -f ./make/stm32h743_nucleo144.make all
|
||||||
@echo ====================================================================
|
@echo ====================================================================
|
||||||
@echo
|
@echo
|
||||||
@echo === Building for STM32WB55CG_Nucleo48_USB ==========================
|
@echo === Building for STM32WB55CG-Nucleo48_USB ==========================
|
||||||
+@make --no-print-directory -f ./make/stm32wb55cg_nucleo48.make all
|
+@make --no-print-directory -f ./make/stm32wb55cg_nucleo48.make all
|
||||||
@echo ====================================================================
|
@echo ====================================================================
|
||||||
@echo
|
@echo
|
||||||
@echo === Building for STM32WB55RG_Nucleo68 =============================
|
@echo === Building for STM32WB55RG-Nucleo68 ==============================
|
||||||
+@make --no-print-directory -f ./make/stm32wb55rg_nucleo68.make all
|
+@make --no-print-directory -f ./make/stm32wb55rg_nucleo68.make all
|
||||||
@echo ====================================================================
|
@echo ====================================================================
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
@echo
|
||||||
|
+@make --no-print-directory -f ./make/stm32l073rz_nucleo64.make clean
|
||||||
@echo
|
@echo
|
||||||
+@make --no-print-directory -f ./make/stm32l476_discovery.make clean
|
+@make --no-print-directory -f ./make/stm32l476_discovery.make clean
|
||||||
@echo
|
@echo
|
||||||
|
@ -53,7 +59,6 @@ clean:
|
||||||
@echo
|
@echo
|
||||||
+@make --no-print-directory -f ./make/stm32wb55cg_nucleo48.make clean
|
+@make --no-print-directory -f ./make/stm32wb55cg_nucleo48.make clean
|
||||||
@echo
|
@echo
|
||||||
@echo
|
|
||||||
+@make --no-print-directory -f ./make/stm32wb55rg_nucleo68.make clean
|
+@make --no-print-directory -f ./make/stm32wb55rg_nucleo68.make clean
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
|
|
|
@ -564,7 +564,7 @@
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
|
#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
|
||||||
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
|
#define CH_DBG_SYSTEM_STATE_CHECK FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -575,7 +575,7 @@
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_DBG_ENABLE_CHECKS)
|
#if !defined(CH_DBG_ENABLE_CHECKS)
|
||||||
#define CH_DBG_ENABLE_CHECKS TRUE
|
#define CH_DBG_ENABLE_CHECKS FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -587,7 +587,7 @@
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_DBG_ENABLE_ASSERTS)
|
#if !defined(CH_DBG_ENABLE_ASSERTS)
|
||||||
#define CH_DBG_ENABLE_ASSERTS TRUE
|
#define CH_DBG_ENABLE_ASSERTS FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
|
@ -142,7 +142,7 @@
|
||||||
* @brief Enables the SERIAL subsystem.
|
* @brief Enables the SERIAL subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_SERIAL TRUE
|
#define HAL_USE_SERIAL FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
|
@ -171,7 +171,7 @@
|
||||||
* SERIAL driver system settings.
|
* SERIAL driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_SERIAL_USE_USART1 FALSE
|
#define STM32_SERIAL_USE_USART1 FALSE
|
||||||
#define STM32_SERIAL_USE_USART2 TRUE
|
#define STM32_SERIAL_USE_USART2 FALSE
|
||||||
#define STM32_SERIAL_USE_UART4 FALSE
|
#define STM32_SERIAL_USE_UART4 FALSE
|
||||||
#define STM32_SERIAL_USE_UART5 FALSE
|
#define STM32_SERIAL_USE_UART5 FALSE
|
||||||
#define STM32_SERIAL_USE_LPUART1 FALSE
|
#define STM32_SERIAL_USE_LPUART1 FALSE
|
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file portab.c
|
||||||
|
* @brief Application portability module code.
|
||||||
|
*
|
||||||
|
* @addtogroup application_portability
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hal.h"
|
||||||
|
|
||||||
|
#include "portab.h"
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module local definitions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module exported variables. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module local types. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module local variables. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module local functions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module exported functions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
void portab_setup(void) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Configuring USB DP and DM PINs.
|
||||||
|
*/
|
||||||
|
palSetPadMode(GPIOA, GPIOA_PIN11, PAL_MODE_INPUT);
|
||||||
|
palSetPadMode(GPIOA, GPIOA_PIN12, PAL_MODE_INPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @} */
|
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file portab.h
|
||||||
|
* @brief Application portability macros and structures.
|
||||||
|
*
|
||||||
|
* @addtogroup application_portability
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PORTAB_H
|
||||||
|
#define PORTAB_H
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module constants. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
#define PORTAB_USB1 USBD1
|
||||||
|
|
||||||
|
#define PORTAB_SDU1 SDU1
|
||||||
|
|
||||||
|
#define PORTAB_BLINK_LED1 LINE_LED_GREEN
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module pre-compile time settings. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Derived constants and error checks. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module data structures and types. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module macros. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* External declarations. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
void portab_setup(void);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Module inline functions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
#endif /* PORTAB_H */
|
||||||
|
|
||||||
|
/** @} */
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.cdt.debug.gdbjtag.launchConfigurationType">
|
||||||
|
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="3"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20 monitor reset init monitor sleep 50 "/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_ENABLED" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_VALUE" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/stm32f072_discovery/ch.elf"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="STM32-USB_CDC"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/STM32-USB_CDC"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="4"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
|
</listAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><memoryBlockExpressionList context="reserved-for-future-use"/>"/>
|
||||||
|
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
|
||||||
|
</launchConfiguration>
|
|
@ -0,0 +1,48 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.cdt.debug.gdbjtag.launchConfigurationType">
|
||||||
|
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="3"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20 monitor reset init monitor sleep 50 "/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_ENABLED" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_VALUE" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/stm32f072_discovery/ch.elf"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="STM32-USB_CDC"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/STM32-USB_CDC"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="4"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
|
</listAttribute>
|
||||||
|
</launchConfiguration>
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.cdt.debug.gdbjtag.launchConfigurationType">
|
||||||
|
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="3"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20 monitor reset init monitor sleep 50 "/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_ENABLED" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_VALUE" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/stm32l476_discovery/ch.elf"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="STM32-USB_CDC"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/STM32-USB_CDC"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="4"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
|
</listAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList context="reserved-for-future-use"> <gdbmemoryBlockExpression address="536966384" label="0x200174f0"/> </memoryBlockExpressionList> "/>
|
||||||
|
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
|
||||||
|
</launchConfiguration>
|
|
@ -0,0 +1,48 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.cdt.debug.gdbjtag.launchConfigurationType">
|
||||||
|
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="3"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20 monitor reset init monitor sleep 50 "/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_ENABLED" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_VALUE" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/stm32l476_discovery/ch.elf"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="STM32-USB_CDC"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/STM32-USB_CDC"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="4"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
|
</listAttribute>
|
||||||
|
</launchConfiguration>
|
||||||
|
|
|
@ -18,7 +18,7 @@ ifeq ($(USE_CPPOPT),)
|
||||||
USE_CPPOPT = -fno-rtti
|
USE_CPPOPT = -fno-rtti
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Enable this if you want the linker to remove unused code and data
|
# Enable this if you want the linker to remove unused code and data.
|
||||||
ifeq ($(USE_LINK_GC),)
|
ifeq ($(USE_LINK_GC),)
|
||||||
USE_LINK_GC = yes
|
USE_LINK_GC = yes
|
||||||
endif
|
endif
|
||||||
|
@ -28,16 +28,11 @@ ifeq ($(USE_LDOPT),)
|
||||||
USE_LDOPT =
|
USE_LDOPT =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Enable this if you want link time optimizations (LTO)
|
# Enable this if you want link time optimizations (LTO).
|
||||||
ifeq ($(USE_LTO),)
|
ifeq ($(USE_LTO),)
|
||||||
USE_LTO = yes
|
USE_LTO = yes
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# If enabled, this option allows to compile the application in THUMB mode.
|
|
||||||
ifeq ($(USE_THUMB),)
|
|
||||||
USE_THUMB = yes
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Enable this if you want to see the full log while compiling.
|
# Enable this if you want to see the full log while compiling.
|
||||||
ifeq ($(USE_VERBOSE_COMPILE),)
|
ifeq ($(USE_VERBOSE_COMPILE),)
|
||||||
USE_VERBOSE_COMPILE = no
|
USE_VERBOSE_COMPILE = no
|
||||||
|
@ -74,19 +69,30 @@ ifeq ($(USE_FPU),)
|
||||||
USE_FPU = no
|
USE_FPU = no
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# FPU-related options.
|
||||||
|
ifeq ($(USE_FPU_OPT),)
|
||||||
|
USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv4-sp-d16
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Architecture or project specific options
|
# Architecture or project specific options
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# Project, sources and paths
|
# Project, target, sources and paths
|
||||||
#
|
#
|
||||||
|
|
||||||
# Define project name here
|
# Define project name here
|
||||||
PROJECT = ch
|
PROJECT = ch
|
||||||
|
|
||||||
# Imported source files and paths
|
# Target settings.
|
||||||
CHIBIOS = ../../../..
|
MCU = cortex-m0
|
||||||
|
|
||||||
|
# Imported source files and paths.
|
||||||
|
CHIBIOS := ../../../..
|
||||||
|
CONFDIR := ./cfg/stm32l073rz_nucleo64
|
||||||
|
BUILDDIR := ./build/stm32l073rz_nucleo64
|
||||||
|
DEPDIR := ./.dep/stm32l073rz_nucleo64
|
||||||
|
|
||||||
# Licensing files.
|
# Licensing files.
|
||||||
include $(CHIBIOS)/os/license/license.mk
|
include $(CHIBIOS)/os/license/license.mk
|
||||||
|
@ -100,6 +106,8 @@ include $(CHIBIOS)/os/hal/osal/rt-nil/osal.mk
|
||||||
# RTOS files (optional).
|
# RTOS files (optional).
|
||||||
include $(CHIBIOS)/os/rt/rt.mk
|
include $(CHIBIOS)/os/rt/rt.mk
|
||||||
include $(CHIBIOS)/os/common/ports/ARMv6-M/compilers/GCC/mk/port.mk
|
include $(CHIBIOS)/os/common/ports/ARMv6-M/compilers/GCC/mk/port.mk
|
||||||
|
# Auto-build files in ./source recursively.
|
||||||
|
include $(CHIBIOS)/tools/mk/autobuild.mk
|
||||||
# Other files (optional).
|
# Other files (optional).
|
||||||
include $(CHIBIOS)/os/test/test.mk
|
include $(CHIBIOS)/os/test/test.mk
|
||||||
include $(CHIBIOS)/test/rt/rt_test.mk
|
include $(CHIBIOS)/test/rt/rt_test.mk
|
||||||
|
@ -114,79 +122,30 @@ LDSCRIPT= $(STARTUPLD)/STM32L073xZ.ld
|
||||||
# setting.
|
# setting.
|
||||||
CSRC = $(ALLCSRC) \
|
CSRC = $(ALLCSRC) \
|
||||||
$(TESTSRC) \
|
$(TESTSRC) \
|
||||||
usbcfg.c main.c
|
$(CONFDIR)/portab.c \
|
||||||
|
main.c
|
||||||
|
|
||||||
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
|
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
|
||||||
# setting.
|
# setting.
|
||||||
CPPSRC = $(ALLCPPSRC)
|
CPPSRC = $(ALLCPPSRC)
|
||||||
|
|
||||||
# C sources to be compiled in ARM mode regardless of the global setting.
|
# List ASM source files here.
|
||||||
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
||||||
# option that results in lower performance and larger code size.
|
|
||||||
ACSRC =
|
|
||||||
|
|
||||||
# C++ sources to be compiled in ARM mode regardless of the global setting.
|
|
||||||
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
||||||
# option that results in lower performance and larger code size.
|
|
||||||
ACPPSRC =
|
|
||||||
|
|
||||||
# C sources to be compiled in THUMB mode regardless of the global setting.
|
|
||||||
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
||||||
# option that results in lower performance and larger code size.
|
|
||||||
TCSRC =
|
|
||||||
|
|
||||||
# C sources to be compiled in THUMB mode regardless of the global setting.
|
|
||||||
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
||||||
# option that results in lower performance and larger code size.
|
|
||||||
TCPPSRC =
|
|
||||||
|
|
||||||
# List ASM source files here
|
|
||||||
ASMSRC = $(ALLASMSRC)
|
ASMSRC = $(ALLASMSRC)
|
||||||
|
|
||||||
|
# List ASM with preprocessor source files here.
|
||||||
ASMXSRC = $(ALLXASMSRC)
|
ASMXSRC = $(ALLXASMSRC)
|
||||||
|
|
||||||
INCDIR = $(ALLINC) $(TESTINC)
|
# Inclusion directories.
|
||||||
|
INCDIR = $(CONFDIR) $(ALLINC) $(TESTINC)
|
||||||
|
|
||||||
#
|
# Define C warning options here.
|
||||||
# Project, sources and paths
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# Compiler settings
|
|
||||||
#
|
|
||||||
|
|
||||||
MCU = cortex-m0
|
|
||||||
|
|
||||||
#TRGT = arm-elf-
|
|
||||||
TRGT = arm-none-eabi-
|
|
||||||
CC = $(TRGT)gcc
|
|
||||||
CPPC = $(TRGT)g++
|
|
||||||
# Enable loading with g++ only if you need C++ runtime support.
|
|
||||||
# NOTE: You can use C++ even without C++ support if you are careful. C++
|
|
||||||
# runtime support makes code size explode.
|
|
||||||
LD = $(TRGT)gcc
|
|
||||||
#LD = $(TRGT)g++
|
|
||||||
CP = $(TRGT)objcopy
|
|
||||||
AS = $(TRGT)gcc -x assembler-with-cpp
|
|
||||||
AR = $(TRGT)ar
|
|
||||||
OD = $(TRGT)objdump
|
|
||||||
SZ = $(TRGT)size
|
|
||||||
HEX = $(CP) -O ihex
|
|
||||||
BIN = $(CP) -O binary
|
|
||||||
|
|
||||||
# ARM-specific options here
|
|
||||||
AOPT =
|
|
||||||
|
|
||||||
# THUMB-specific options here
|
|
||||||
TOPT = -mthumb -DTHUMB
|
|
||||||
|
|
||||||
# Define C warning options here
|
|
||||||
CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
|
CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
|
||||||
|
|
||||||
# Define C++ warning options here
|
# Define C++ warning options here.
|
||||||
CPPWARN = -Wall -Wextra -Wundef
|
CPPWARN = -Wall -Wextra -Wundef
|
||||||
|
|
||||||
#
|
#
|
||||||
# Compiler settings
|
# Project, target, sources and paths
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
@ -209,8 +168,25 @@ ULIBDIR =
|
||||||
ULIBS =
|
ULIBS =
|
||||||
|
|
||||||
#
|
#
|
||||||
# End of user defines
|
# End of user section
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Common rules
|
||||||
|
#
|
||||||
|
|
||||||
RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk
|
RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk
|
||||||
|
include $(RULESPATH)/arm-none-eabi.mk
|
||||||
include $(RULESPATH)/rules.mk
|
include $(RULESPATH)/rules.mk
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common rules
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Custom rules
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Custom rules
|
||||||
|
##############################################################################
|
Loading…
Reference in New Issue