summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2019-12-06 19:46:21 (GMT)
committerJF <jf@codingfield.com>2019-12-06 19:46:21 (GMT)
commit0db16bd8279826878e9d2d5ba63e21c4e15c35bf (patch)
tree1788d54e6b191deefc4f9809838ed67a661a7342
parent5225706cc83a60647eea52d9ee28e7a4ee164aa4 (diff)
Add missing return statements which fix crashes in release mode.
Add flag to compiler so that it generates an error when a returning function does not return something...
-rwxr-xr-xcmake-nRF5x/CMake_nRF5x.cmake2
-rw-r--r--src/DisplayApp/DisplayApp.cpp6
-rw-r--r--src/DisplayApp/DisplayApp.h2
-rw-r--r--src/drivers/spi_master_fast.h4
-rw-r--r--src/drivers/st7789.cpp2
5 files changed, 8 insertions, 8 deletions
diff --git a/cmake-nRF5x/CMake_nRF5x.cmake b/cmake-nRF5x/CMake_nRF5x.cmake
index e2b3c06..29273e6 100755
--- a/cmake-nRF5x/CMake_nRF5x.cmake
+++ b/cmake-nRF5x/CMake_nRF5x.cmake
@@ -88,7 +88,7 @@ macro(nRF5x_setup)
set(SOFTDEVICE_PATH "${NRF5_SDK_PATH}/components/softdevice/s132/hex/s132_nrf52_6.1.1_softdevice.hex")
endif ()
- set(COMMON_FLAGS "-MP -MD -mthumb -mabi=aapcs -Wall -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums ${CPU_FLAGS}")
+ set(COMMON_FLAGS "-MP -MD -mthumb -mabi=aapcs -Wall -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums ${CPU_FLAGS} -Wreturn-type -Werror=return-type")
# compiler/assambler/linker flags
set(CMAKE_C_FLAGS "${COMMON_FLAGS}")
diff --git a/src/DisplayApp/DisplayApp.cpp b/src/DisplayApp/DisplayApp.cpp
index 9da2d7e..36302a2 100644
--- a/src/DisplayApp/DisplayApp.cpp
+++ b/src/DisplayApp/DisplayApp.cpp
@@ -9,7 +9,7 @@ using namespace Pinetime::Applications;
Pinetime::Drivers::st7789 lcd;
ret_code_t lcd_init() {
- lcd.Init();
+ return lcd.Init();
}
void lcd_dummy() {
@@ -38,7 +38,7 @@ static lcd_cb_t st7789_cb = {
.width = 240
};
-const nrf_lcd_t nrf_lcd_st7789 = {
+static const nrf_lcd_t nrf_lcd_st7789 = {
.lcd_init = lcd_init,
.lcd_uninit = lcd_dummy,
.lcd_pixel_draw = lcd_pixel_draw,
@@ -64,7 +64,7 @@ void DisplayApp::Process(void *instance) {
auto* app = static_cast<DisplayApp*>(instance);
NRF_LOG_INFO("DisplayApp task started!");
- gfx_initialization();
+ app->gfx_initialization();
uint8_t hour = 0;
uint8_t minute = 1;
while (1) {
diff --git a/src/DisplayApp/DisplayApp.h b/src/DisplayApp/DisplayApp.h
index 97d4d18..08ecede 100644
--- a/src/DisplayApp/DisplayApp.h
+++ b/src/DisplayApp/DisplayApp.h
@@ -11,7 +11,7 @@ namespace Pinetime {
private:
TaskHandle_t taskHandle;
static void Process(void* instance);
- static void gfx_initialization();
+ void gfx_initialization();
};
}
diff --git a/src/drivers/spi_master_fast.h b/src/drivers/spi_master_fast.h
index 5cd4d7a..3cda6ea 100644
--- a/src/drivers/spi_master_fast.h
+++ b/src/drivers/spi_master_fast.h
@@ -78,7 +78,7 @@ typedef struct
uint8_t mode : 2; /*!< SPI master mode */
uint8_t : 5; /*!< Padding */
}fields;
- }config;
+ }config;
uint8_t frequency; /*!< SPI master frequency */
uint8_t pin_SCK; /*!< SPI master SCK pin */
uint8_t pin_MOSI; /*!< SPI master MOSI pin */
@@ -143,5 +143,5 @@ bool spi_master_tx(SPI_module_number_t spi_num, uint16_t transfer_size, const ui
* @retval false if transmit/reveive of transfer_size were not complete and tx_data/rx_data points to invalid data.
*/
bool spi_master_rx(SPI_module_number_t spi_num, uint16_t transfer_size, uint8_t *rx_data);
-
+
#endif
diff --git a/src/drivers/st7789.cpp b/src/drivers/st7789.cpp
index a4d0626..e88f110 100644
--- a/src/drivers/st7789.cpp
+++ b/src/drivers/st7789.cpp
@@ -8,7 +8,7 @@ using namespace Pinetime::Drivers;
ret_code_t st7789::Init() {
InitHw();
InitCommands();
-
+ return 0;
}
ret_code_t st7789::InitHw() const {