mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2024-12-25 22:32:29 +03:00
Blink f1 (#50)
* Fix target_f1 build * restore build for F1 target * change default LED pin state * add real hw gif Co-authored-by: Vadim Kaushan <admin@disasm.info>
This commit is contained in:
parent
e7aa6caf0e
commit
ab07bfb104
20
core/furi.c
20
core/furi.c
@ -2,9 +2,9 @@
|
|||||||
#include "cmsis_os.h"
|
#include "cmsis_os.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#define DEBUG
|
// TODO: this file contains printf, that not implemented on uC target
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -28,13 +28,13 @@ static FuriRecord* find_record(const char* name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool furi_create(const char* name, void* value, size_t size) {
|
bool furi_create(const char* name, void* value, size_t size) {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] creating %s record\n", name);
|
printf("[FURI] creating %s record\n", name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(current_buffer_idx >= MAX_RECORD_COUNT) {
|
if(current_buffer_idx >= MAX_RECORD_COUNT) {
|
||||||
// max record count exceed
|
// max record count exceed
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] max record count exceed\n");
|
printf("[FURI] max record count exceed\n");
|
||||||
#endif
|
#endif
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -62,7 +62,7 @@ FuriRecordHandler furi_open(
|
|||||||
FlipperRecordCallback value_callback,
|
FlipperRecordCallback value_callback,
|
||||||
FlipperRecordStateCallback state_callback
|
FlipperRecordStateCallback state_callback
|
||||||
) {
|
) {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] opening %s record\n", name);
|
printf("[FURI] opening %s record\n", name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ FuriRecordHandler furi_open(
|
|||||||
|
|
||||||
if(record == NULL) {
|
if(record == NULL) {
|
||||||
// cannot find record
|
// cannot find record
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] cannot find record %s\n", name);
|
printf("[FURI] cannot find record %s\n", name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ FuriRecordHandler furi_open(
|
|||||||
|
|
||||||
if(subscriber == NULL) {
|
if(subscriber == NULL) {
|
||||||
// cannot add subscriber (full)
|
// cannot add subscriber (full)
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] cannot add subscriber (full)\n");
|
printf("[FURI] cannot add subscriber (full)\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -123,7 +123,7 @@ FuriRecordHandler furi_open(
|
|||||||
|
|
||||||
|
|
||||||
void furi_close(FuriRecordHandler* handler) {
|
void furi_close(FuriRecordHandler* handler) {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] closing %s record\n", handler->record->name);
|
printf("[FURI] closing %s record\n", handler->record->name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ void furi_give(FuriRecordHandler* handler) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool furi_read(FuriRecordHandler* handler, void* value, size_t size) {
|
bool furi_read(FuriRecordHandler* handler, void* value, size_t size) {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] read from %s\n", handler->record->name);
|
printf("[FURI] read from %s\n", handler->record->name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ bool furi_read(FuriRecordHandler* handler, void* value, size_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool furi_write(FuriRecordHandler* handler, const void* value, size_t size) {
|
bool furi_write(FuriRecordHandler* handler, const void* value, size_t size) {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] write to %s\n", handler->record->name);
|
printf("[FURI] write to %s\n", handler->record->name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include "furi.h"
|
#include "furi.h"
|
||||||
#include "cmsis_os.h"
|
#include "cmsis_os.h"
|
||||||
|
|
||||||
#define DEBUG
|
// TODO: this file contains printf, that not implemented on uC target
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ FuriApp* find_task(TaskHandle_t handler) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
FuriApp* furiac_start(FlipperApplication app, const char* name, void* param) {
|
FuriApp* furiac_start(FlipperApplication app, const char* name, void* param) {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURIAC] start %s\n", name);
|
printf("[FURIAC] start %s\n", name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ FuriApp* furiac_start(FlipperApplication app, const char* name, void* param) {
|
|||||||
|
|
||||||
if(current_buffer_idx >= MAX_TASK_COUNT) {
|
if(current_buffer_idx >= MAX_TASK_COUNT) {
|
||||||
// max task count exceed
|
// max task count exceed
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURIAC] max task count exceed\n");
|
printf("[FURIAC] max task count exceed\n");
|
||||||
#endif
|
#endif
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -67,7 +67,7 @@ FuriApp* furiac_start(FlipperApplication app, const char* name, void* param) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool furiac_kill(FuriApp* app) {
|
bool furiac_kill(FuriApp* app) {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURIAC] kill %s\n", app->name);
|
printf("[FURIAC] kill %s\n", app->name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -90,14 +90,14 @@ void furiac_exit(void* param) {
|
|||||||
|
|
||||||
// run prev
|
// run prev
|
||||||
if(current_task != NULL) {
|
if(current_task != NULL) {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURIAC] exit %s\n", current_task->name);
|
printf("[FURIAC] exit %s\n", current_task->name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(current_task->prev != NULL) {
|
if(current_task->prev != NULL) {
|
||||||
furiac_start(current_task->prev, current_task->prev_name, param);
|
furiac_start(current_task->prev, current_task->prev_name, param);
|
||||||
} else {
|
} else {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURIAC] no prev\n");
|
printf("[FURIAC] no prev\n");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -116,12 +116,12 @@ void furiac_switch(FlipperApplication app, char* name, void* param) {
|
|||||||
FuriApp* current_task = find_task(xTaskGetCurrentTaskHandle());
|
FuriApp* current_task = find_task(xTaskGetCurrentTaskHandle());
|
||||||
|
|
||||||
if(current_task == NULL) {
|
if(current_task == NULL) {
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURIAC] no current task found\n");
|
printf("[FURIAC] no current task found\n");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURIAC] switch %s to %s\n", current_task->name, name);
|
printf("[FURIAC] switch %s to %s\n", current_task->name, name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[PreviousGenFiles]
|
[PreviousGenFiles]
|
||||||
HeaderPath=/home/aanper/project/flipperzero/fw/target_prod/Inc
|
HeaderPath=/home/aanper/project/flipperzero/flipperzero-firmware-community/target_f1/Inc
|
||||||
HeaderFiles=FreeRTOSConfig.h;stm32l4xx_it.h;stm32l4xx_hal_conf.h;main.h;usb_device.h;usbd_conf.h;usbd_desc.h;usbd_cdc_if.h;
|
HeaderFiles=FreeRTOSConfig.h;stm32l4xx_it.h;stm32l4xx_hal_conf.h;main.h;usb_device.h;usbd_conf.h;usbd_desc.h;usbd_cdc_if.h;
|
||||||
SourcePath=/home/aanper/project/flipperzero/fw/target_prod/Src
|
SourcePath=/home/aanper/project/flipperzero/flipperzero-firmware-community/target_f1/Src
|
||||||
SourceFiles=freertos.c;stm32l4xx_it.c;stm32l4xx_hal_msp.c;main.c;usb_device.c;usbd_conf.c;usbd_desc.c;usbd_cdc_if.c;
|
SourceFiles=freertos.c;stm32l4xx_it.c;stm32l4xx_hal_msp.c;main.c;usb_device.c;usbd_conf.c;usbd_desc.c;usbd_cdc_if.c;
|
||||||
|
|
||||||
[PreviousLibFiles]
|
[PreviousLibFiles]
|
||||||
|
@ -34,8 +34,14 @@ BUILD_DIR = build
|
|||||||
######################################
|
######################################
|
||||||
# source
|
# source
|
||||||
######################################
|
######################################
|
||||||
# C sources
|
C_SOURCES =
|
||||||
C_SOURCES = \
|
CPP_SOURCES =
|
||||||
|
ASM_SOURCES =
|
||||||
|
C_DEFS =
|
||||||
|
|
||||||
|
# Target
|
||||||
|
|
||||||
|
C_SOURCES += \
|
||||||
Src/main.c \
|
Src/main.c \
|
||||||
Src/freertos.c \
|
Src/freertos.c \
|
||||||
Src/stm32l4xx_it.c \
|
Src/stm32l4xx_it.c \
|
||||||
@ -89,14 +95,44 @@ Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c \
|
|||||||
Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c \
|
Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c \
|
||||||
Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c
|
Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c
|
||||||
|
|
||||||
# ASM sources
|
C_SOURCES += Src/flipper_hal.c
|
||||||
ASM_SOURCES = \
|
|
||||||
|
C_DEFS += \
|
||||||
|
-DUSE_HAL_DRIVER \
|
||||||
|
-DSTM32L476xx \
|
||||||
|
-DBUTON_INVERT=false \
|
||||||
|
-DDEBUG_UART=huart1
|
||||||
|
|
||||||
|
ASM_SOURCES += \
|
||||||
startup_stm32l476xx.s
|
startup_stm32l476xx.s
|
||||||
|
|
||||||
CPP_SOURCES = ../app/app.cpp
|
# Core
|
||||||
|
|
||||||
C_SOURCES += ../app/write.c
|
CPP_SOURCES += ../core/app.cpp
|
||||||
C_SOURCES += Src/flipper_hal.c
|
|
||||||
|
C_SOURCES += ../core/debug.c
|
||||||
|
C_SOURCES += ../core/furi.c
|
||||||
|
C_SOURCES += ../core/furi_ac.c
|
||||||
|
|
||||||
|
# System applications
|
||||||
|
|
||||||
|
ifeq ($(TEST), 1)
|
||||||
|
C_SOURCES += ../applications/tests/furiac_test.c
|
||||||
|
C_SOURCES += ../applications/tests/furi_record_test.c
|
||||||
|
C_SOURCES += ../applications/tests/test_index.c
|
||||||
|
C_DEFS += -DTEST
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Examples
|
||||||
|
|
||||||
|
ifeq ($(EXAMPLE_BLINK), 1)
|
||||||
|
C_SOURCES += ../applications/examples/blink.c
|
||||||
|
C_DEFS += -DEXAMPLE_BLINK
|
||||||
|
endif
|
||||||
|
|
||||||
|
# User application
|
||||||
|
|
||||||
|
# Add C_SOURCES +=, C_DEFS += or CPP_SOURCES += here
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# binaries
|
# binaries
|
||||||
@ -139,13 +175,6 @@ MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)
|
|||||||
# AS defines
|
# AS defines
|
||||||
AS_DEFS =
|
AS_DEFS =
|
||||||
|
|
||||||
# C defines
|
|
||||||
C_DEFS = \
|
|
||||||
-DUSE_HAL_DRIVER \
|
|
||||||
-DSTM32L476xx \
|
|
||||||
-DBUTON_INVERT=false \
|
|
||||||
-DDEBUG_UART=huart1
|
|
||||||
|
|
||||||
|
|
||||||
# AS includes
|
# AS includes
|
||||||
AS_INCLUDES = \
|
AS_INCLUDES = \
|
||||||
@ -196,6 +225,11 @@ LDFLAGS = $(MCU) -specs=nano.specs -specs=nosys.specs -T$(LDSCRIPT) $(LIBDIR) $(
|
|||||||
# default action: build all
|
# default action: build all
|
||||||
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
|
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
|
||||||
|
|
||||||
|
example_blink:
|
||||||
|
EXAMPLE_BLINK=1 make
|
||||||
|
|
||||||
|
test:
|
||||||
|
TEST=1 make
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# build the application
|
# build the application
|
||||||
|
@ -53,6 +53,8 @@
|
|||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "timers.h"
|
#include "timers.h"
|
||||||
@ -1019,6 +1021,9 @@ osStatus osRecursiveMutexWait (osMutexId mutex_id, uint32_t millisec);
|
|||||||
*/
|
*/
|
||||||
uint32_t osSemaphoreGetCount(osSemaphoreId semaphore_id);
|
uint32_t osSemaphoreGetCount(osSemaphoreId semaphore_id);
|
||||||
|
|
||||||
|
// FreeRTOS add-on
|
||||||
|
bool task_equal(TaskHandle_t a, TaskHandle_t b);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
/* Private includes ----------------------------------------------------------*/
|
/* Private includes ----------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
@ -105,6 +106,11 @@ void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, Stack
|
|||||||
|
|
||||||
/* Private application code --------------------------------------------------*/
|
/* Private application code --------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Application */
|
/* USER CODE BEGIN Application */
|
||||||
|
bool task_equal(TaskHandle_t a, TaskHandle_t b) {
|
||||||
|
if(a == NULL || b == NULL) return false;
|
||||||
|
|
||||||
|
return a == b;
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE END Application */
|
/* USER CODE END Application */
|
||||||
|
|
||||||
|
@ -680,15 +680,20 @@ static void MX_GPIO_Init(void)
|
|||||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOA, DISPLAY_DI_Pin|LED_RED_Pin|CC1101_CS_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOA, DISPLAY_DI_Pin|CC1101_CS_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOB, LED_BLUE_Pin|DISPLAY_RST_Pin|IR_TX_Pin|LED_GREEN_Pin
|
HAL_GPIO_WritePin(GPIOB, LED_BLUE_Pin|LED_GREEN_Pin, GPIO_PIN_SET);
|
||||||
|DISPLAY_BACKLIGHT_Pin, GPIO_PIN_RESET);
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(GPIOB, DISPLAY_RST_Pin|IR_TX_Pin|DISPLAY_BACKLIGHT_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOC, VIBRO_Pin|DISPLAY_CS_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOC, VIBRO_Pin|DISPLAY_CS_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(LED_RED_GPIO_Port, LED_RED_Pin, GPIO_PIN_SET);
|
||||||
|
|
||||||
/*Configure GPIO pins : PC13 PC0 PC1 PC9 */
|
/*Configure GPIO pins : PC13 PC0 PC1 PC9 */
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_9;
|
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_9;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||||
@ -757,7 +762,7 @@ static void MX_GPIO_Init(void)
|
|||||||
GPIO_InitStruct.Pin = LED_RED_Pin;
|
GPIO_InitStruct.Pin = LED_RED_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
|
||||||
HAL_GPIO_Init(LED_RED_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(LED_RED_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PD2 */
|
/*Configure GPIO pin : PD2 */
|
||||||
|
@ -170,11 +170,12 @@ PA6.Locked=true
|
|||||||
PA6.Signal=GPXTI6
|
PA6.Signal=GPXTI6
|
||||||
PA7.Locked=true
|
PA7.Locked=true
|
||||||
PA7.Signal=GPIO_Analog
|
PA7.Signal=GPIO_Analog
|
||||||
PA8.GPIOParameters=GPIO_Speed,GPIO_Label,GPIO_ModeDefaultOutputPP
|
PA8.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
|
||||||
PA8.GPIO_Label=LED_RED
|
PA8.GPIO_Label=LED_RED
|
||||||
PA8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
|
PA8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
|
||||||
PA8.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
|
PA8.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||||
PA8.Locked=true
|
PA8.Locked=true
|
||||||
|
PA8.PinState=GPIO_PIN_SET
|
||||||
PA8.Signal=GPIO_Output
|
PA8.Signal=GPIO_Output
|
||||||
PA9.Locked=true
|
PA9.Locked=true
|
||||||
PA9.Mode=Asynchronous
|
PA9.Mode=Asynchronous
|
||||||
@ -185,11 +186,12 @@ PB0.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
|
|||||||
PB0.GPIO_PuPd=GPIO_PULLDOWN
|
PB0.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
PB0.Locked=true
|
PB0.Locked=true
|
||||||
PB0.Signal=GPXTI0
|
PB0.Signal=GPXTI0
|
||||||
PB1.GPIOParameters=GPIO_Speed,GPIO_Label,GPIO_ModeDefaultOutputPP
|
PB1.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
|
||||||
PB1.GPIO_Label=LED_BLUE
|
PB1.GPIO_Label=LED_BLUE
|
||||||
PB1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
|
PB1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
|
||||||
PB1.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
PB1.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||||
PB1.Locked=true
|
PB1.Locked=true
|
||||||
|
PB1.PinState=GPIO_PIN_SET
|
||||||
PB1.Signal=GPIO_Output
|
PB1.Signal=GPIO_Output
|
||||||
PB10.GPIOParameters=GPIO_Label
|
PB10.GPIOParameters=GPIO_Label
|
||||||
PB10.GPIO_Label=DISPLAY_RST
|
PB10.GPIO_Label=DISPLAY_RST
|
||||||
@ -206,11 +208,12 @@ PB13.GPIO_Label=RFID_OUT
|
|||||||
PB13.Locked=true
|
PB13.Locked=true
|
||||||
PB13.Mode=Output Compare1 CH1N
|
PB13.Mode=Output Compare1 CH1N
|
||||||
PB13.Signal=TIM15_CH1N
|
PB13.Signal=TIM15_CH1N
|
||||||
PB14.GPIOParameters=GPIO_Speed,GPIO_Label,GPIO_ModeDefaultOutputPP
|
PB14.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
|
||||||
PB14.GPIO_Label=LED_GREEN
|
PB14.GPIO_Label=LED_GREEN
|
||||||
PB14.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
|
PB14.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
|
||||||
PB14.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
PB14.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||||
PB14.Locked=true
|
PB14.Locked=true
|
||||||
|
PB14.PinState=GPIO_PIN_SET
|
||||||
PB14.Signal=GPIO_Output
|
PB14.Signal=GPIO_Output
|
||||||
PB15.GPIOParameters=GPIO_Label
|
PB15.GPIOParameters=GPIO_Label
|
||||||
PB15.GPIO_Label=RFID_PULL
|
PB15.GPIO_Label=RFID_PULL
|
||||||
@ -339,8 +342,8 @@ ProjectManager.MainLocation=Src
|
|||||||
ProjectManager.NoMain=false
|
ProjectManager.NoMain=false
|
||||||
ProjectManager.PreviousToolchain=
|
ProjectManager.PreviousToolchain=
|
||||||
ProjectManager.ProjectBuild=false
|
ProjectManager.ProjectBuild=false
|
||||||
ProjectManager.ProjectFileName=flipperzero_l476.ioc
|
ProjectManager.ProjectFileName=flipperzero_f1.ioc
|
||||||
ProjectManager.ProjectName=flipperzero_l476
|
ProjectManager.ProjectName=flipperzero_f1
|
||||||
ProjectManager.StackSize=0x400
|
ProjectManager.StackSize=0x400
|
||||||
ProjectManager.TargetToolchain=Makefile
|
ProjectManager.TargetToolchain=Makefile
|
||||||
ProjectManager.ToolChainLocation=
|
ProjectManager.ToolChainLocation=
|
||||||
|
@ -19,27 +19,25 @@ BUILD_DIR = build
|
|||||||
######################################
|
######################################
|
||||||
# source
|
# source
|
||||||
######################################
|
######################################
|
||||||
# C sources
|
C_SOURCES =
|
||||||
C_SOURCES = \
|
CPP_SOURCES =
|
||||||
Src/main.c
|
C_DEFS =
|
||||||
|
|
||||||
CPP_SOURCES = ../core/app.cpp
|
# Target
|
||||||
|
|
||||||
# Core
|
C_SOURCES += Src/main.c
|
||||||
|
|
||||||
C_SOURCES += ../core/debug.c
|
|
||||||
C_SOURCES += ../core/furi.c
|
|
||||||
C_SOURCES += ../core/furi_ac.c
|
|
||||||
C_SOURCES += Src/flipper_hal.c
|
C_SOURCES += Src/flipper_hal.c
|
||||||
C_SOURCES += Src/lo_os.c
|
C_SOURCES += Src/lo_os.c
|
||||||
C_SOURCES += Src/lo_hal.c
|
C_SOURCES += Src/lo_hal.c
|
||||||
|
|
||||||
# C defines
|
C_DEFS += -DFURI_DEBUG
|
||||||
C_DEFS = \
|
# Core
|
||||||
-DUSE_HAL_DRIVER \
|
|
||||||
-DSTM32L476xx \
|
CPP_SOURCES += ../core/app.cpp
|
||||||
-DBUTON_INVERT=false \
|
|
||||||
-DDEBUG_UART=huart1
|
C_SOURCES += ../core/debug.c
|
||||||
|
C_SOURCES += ../core/furi.c
|
||||||
|
C_SOURCES += ../core/furi_ac.c
|
||||||
|
|
||||||
# System applications
|
# System applications
|
||||||
|
|
||||||
@ -50,13 +48,17 @@ C_SOURCES += ../applications/tests/test_index.c
|
|||||||
C_DEFS += -DTEST
|
C_DEFS += -DTEST
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# User application
|
# Examples
|
||||||
|
|
||||||
ifeq ($(EXAMPLE_BLINK), 1)
|
ifeq ($(EXAMPLE_BLINK), 1)
|
||||||
C_SOURCES += ../applications/examples/blink.c
|
C_SOURCES += ../applications/examples/blink.c
|
||||||
C_DEFS += -DEXAMPLE_BLINK
|
C_DEFS += -DEXAMPLE_BLINK
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# User application
|
||||||
|
|
||||||
|
# Add C_SOURCES +=, C_DEFS += or CPP_SOURCES += here
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# binaries
|
# binaries
|
||||||
#######################################
|
#######################################
|
||||||
|
@ -82,3 +82,17 @@ Linux version has no LED or GPIO, but we can see debug messages how state of GPI
|
|||||||
![](https://github.com/Flipper-Zero/flipperzero-firmware-community/raw/master/wiki_static/application_examples/example_blink.gif)
|
![](https://github.com/Flipper-Zero/flipperzero-firmware-community/raw/master/wiki_static/application_examples/example_blink.gif)
|
||||||
|
|
||||||
_You also run found source of this example in `applications/examples/blink.c` and run by `docker-compose exec dev make -C target_lo example_blink`_
|
_You also run found source of this example in `applications/examples/blink.c` and run by `docker-compose exec dev make -C target_lo example_blink`_
|
||||||
|
|
||||||
|
Build for Flipper (board F1):
|
||||||
|
|
||||||
|
`docker-compose exec dev make -C target_f1`
|
||||||
|
|
||||||
|
Upload to microcontroller:
|
||||||
|
|
||||||
|
`./target_f1/deploy.sh`
|
||||||
|
|
||||||
|
Blink!
|
||||||
|
|
||||||
|
![](https://github.com/Flipper-Zero/flipperzero-firmware-community/raw/master/wiki_static/application_examples/example_blink_hw.gif)
|
||||||
|
|
||||||
|
_You also compile by `docker-compose exec dev make -C target_f1 example_blink`_
|
||||||
|
3
wiki_static/application_examples/example_blink_hw.gif
Normal file
3
wiki_static/application_examples/example_blink_hw.gif
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:0901a507ea047af9945c27549dc1460d5552cfafcff27f646453d129030f23da
|
||||||
|
size 623188
|
Loading…
Reference in New Issue
Block a user