Commit Graph

270 Commits

Author SHA1 Message Date
Andrew Tridgell
84bd59a7bb HAL_ChibiOS: support H7 with no crystal 2020-07-10 13:33:51 +10:00
Andrew Tridgell
cfbfb27004 HAL_ChibiOS: support no-crystal F3 setups 2020-07-10 13:33:51 +10:00
Andrew Tridgell
6a1f43d5df HAL_ChibiOS: fixed build with our old compiler
gcc 4.9 doesn't like static_assert() in C code
2020-06-07 14:11:48 +10:00
Andrew Tridgell
69676cd614 HAL_ChibiOS: support 24MHz f3 MCUs 2020-05-10 15:09:28 +10:00
Andrew Tridgell
3ec2ef787d HAL_ChibiOS: fixed build warning 2020-04-29 12:20:19 +10:00
Andrew Tridgell
ce68e0fbb5 HAL_ChibiOS: fixed bootloader build 2020-04-29 07:36:55 +10:00
Andrew Tridgell
18e88e0ea3 HAL_ChibiOS: implement stack overflow hook
this needs C bindings to allow call from low level RTOS thread
switching code
2020-04-29 07:36:55 +10:00
Andrew Tridgell
f0c9f4003e HAL_ChibiOS: implement thread_info() 2020-04-29 07:36:55 +10:00
Andrew Tridgell
d9efac2993 HAL_ChibiOS: only allow PLL override in clock selection part of header 2020-04-28 10:32:23 +10:00
Andrew Tridgell
29f538dec9 HAL_ChibiOS: use common header for STM32 clock config
avoid the need for clock config lines in most hwdef.dat files
2020-04-28 10:32:23 +10:00
Ivannikov Kirill
3ab1b29397 AP_HAL_ChibiOS: error if system clock not 1mhz on 16 CH_CFG_ST_RESOLUTION. prevent variable overflow
if CH_CFG_ST_FREQUENCY not match 1000000U on 16 bit CH_CFG_ST_RESOLUTION
we try to multiply now *= 1000000U/CH_CFG_ST_FREQUENCY; it may overflow 16 bit value.
2020-04-26 19:58:54 +10:00
Andrew Tridgell
db642717be HAL_ChibiOS: fixed clock for FDCAN to be below 80MHz
we were running at 100MHz, which is out of spec
2020-04-24 16:55:03 +10:00
Andrew Tridgell
8e977183fe HAL_ChibiOS: added mRoNexus 2020-04-23 07:28:13 +10:00
Andrew Tridgell
74f33d57c5 HAL_ChibiOS: avoid unnecessary H7 flash writes 2020-04-14 10:02:51 +10:00
Andrew Tridgell
822460ce7d HAL_ChibiOS: fixed strdup() on ChibiOS 2020-03-28 15:28:03 +11:00
bugobliterator
8215537f99 HAL_ChibiOS: deprecate realloc for ChibiOS build, so as to return error when used 2020-03-24 10:32:14 +11:00
Peter Barker
1a123e5f8d AP_HAL_ChibiOS: avoid referencing flash sector/page 22 on 1MB boards 2020-03-03 10:13:53 +11:00
Andrew Tridgell
9e0edba31d HAL_ChibiOS: raised timer clocks to 200MHz
this gives more flexibility in setting up timers for DShot
2020-02-12 18:12:39 +11:00
Andrew Tridgell
982cff0695 AP_HAL_ChibiOS: make all semaphores recursive
the cost is very similar and this prevents an easy coding error which
can occur on less used code paths
2020-01-19 20:19:30 +11:00
Andrew Tridgell
2b7bffa906 HAL_ChibiOS: adjust dma reserve allocation
use larger target and allow for smaller allocation
2020-01-18 07:13:11 +11:00
Andrew Tridgell
56985f8c33 HAL_ChibiOS: added checking on bouncebuffer allocation
fail operations if DMA bouncebuffer alloc fails
2020-01-18 07:13:11 +11:00
Andrew Tridgell
fced7d78fc HAL_ChibiOS: fixed clock src for I2C4 on H7 2020-01-08 05:56:23 +11:00
Andrew Tridgell
8ffd1050eb HAL_ChibiOS: fixed build on STM32F3 2020-01-02 09:52:57 +11:00
Andrew Tridgell
faf34970e1 HAL_ChibiOS: automatically control pullup/pulldown on inverted UARTs
this makes setup of sport telemetry much easier
2020-01-02 09:52:57 +11:00
Andrew Tridgell
f732a482fe HAL_ChibiOS: support wider range of clock frequencies 2019-12-20 16:50:48 +11:00
Andrew Tridgell
4f429e6c5a HAL_ChibiOS: fixed handling of 16bit timer wrap
this fixes #12948
2019-12-09 12:43:39 +11:00
Andrew Tridgell
ef993f380f HAL_ChibiOS: use system_halt_hook() 2019-11-27 14:12:04 +11:00
Andrew Tridgell
c1575654e2 HAL_ChibiOS: added optional debug code for hardfaults and panics
this implements a soft-serial print function that can be used to get
debug out on a GPIO pin in a panic
2019-11-27 14:12:04 +11:00
Andrew Tridgell
a90a2e20dc HAL_ChibiOS: enable CAN callbacks
this allows for much more reliable CAN comms in AP_Periph
2019-11-09 17:11:32 +11:00
Andrew Tridgell
bc1de7a208 HAL_ChibiOS: support STM32F3xx MCUs 2019-11-01 10:53:53 +11:00
Andrew Tridgell
b5af1edf0d HAL_ChibiOS: moved app_descriptor to start of flash
this prevents the bootloader from finding it's own image as a false
posititve in searching for the app_descriptor
2019-10-28 15:53:16 +11:00
Andrew Tridgell
d1bc0f236d HAL_ChibiOS: added pragma once for watchdog header 2019-10-26 15:32:10 +11:00
Andrew Tridgell
fc8d9e8af5 HAL_ChibiOS: added RTC_BOOT_FWOK value for RTC reboot register
this is used in CAN firmware to know if the main app firmware has run
for long enough to be considered good
2019-10-26 15:32:10 +11:00
Andrew Tridgell
e6cb35090c HAL_ChibiOS: fixed page size for STM31F105 flash 2019-10-21 19:12:01 +11:00
Andrew Tridgell
44f895ab16 HAL_ChibiOS: fixed for ZubaxGNSS build 2019-10-21 19:12:01 +11:00
Andrew Tridgell
91e8752c17 HAL_ChibiOS: wrap more libc functions
this saves a few k of flash as it avoids linking libc versions of some
functions
2019-09-09 13:31:30 +10:00
Andrew Tridgell
3166f84954 HAL_ChibiOS: added vsnprintf wrapper
this allows us to use a common snprintf implementation
2019-09-09 13:31:30 +10:00
Andrew Tridgell
0ffe2e75be HAL_ChibiOS: fixed warnings 2019-08-27 15:40:43 +10:00
Andrew Tridgell
9d760a2956 HAL_ChibiOS: disable re-entrancy in FATFS
not needed now we have a semaphore in AP_Filesystem
2019-08-27 15:40:43 +10:00
Andrew Tridgell
bf79b65e07 HAL_ChibiOS: simplify stubs code 2019-08-27 15:40:43 +10:00
Andrew Tridgell
d1565a96c5 HAL_ChibiOS: wrap cacheBuffer functions
needed to avoid problem with end() method in UARTDriver shadowing with
F7 implementation of cache macros
2019-08-27 15:40:43 +10:00
Andrew Tridgell
b867ef35c0 HAL_ChibiOS: use AP_Filesystem API 2019-08-27 15:40:43 +10:00
Andrew Tridgell
63f39c2bd6 HAL_ChibiOS: fixed build of iomcu firmware 2019-08-27 10:29:56 +10:00
Andrew Tridgell
5cbe85ee19 HAL_ChibiOS: allow for ADC and clock overrides 2019-08-27 10:29:56 +10:00
Andrew Tridgell
cbc83d68cd HAL_ChibiOS: allow for CAN enable override on F4 2019-08-27 10:29:56 +10:00
Andrew Tridgell
fb68fa8bc9 HAL_ChibiOS: fixed typo for 512k F4 parts 2019-08-27 10:29:56 +10:00
Andrew Tridgell
16bdaaa1af HAL_ChibiOS: added support for STM31F10x for AP_Periph 2019-08-27 10:29:56 +10:00
Andrew Tridgell
ffe0f338d3 HAL_ChibiOS: enable utime() API 2019-08-26 15:41:44 +10:00
Andrew Tridgell
f8cfbb8062 HAL_ChibiOS: added ISR limit on I2C
this will prevent any possibility of an I2C interrupt storm. This is
designed to address the most likely cause of #11642
2019-08-25 17:12:16 +10:00
Siddharth Purohit
2f0d1336e6 HAL_ChibiOS: add support for dual usd cdc 2019-07-12 17:01:21 +10:00
Andrew Tridgell
dbfe6b8019 HAL_ChibiOS: implement persistent_data for watchdog
this is a much simpler approach to persistent data
2019-05-15 15:33:48 +10:00
Andrew Tridgell
6333494d99 HAL_ChibiOS: disable peripheral power on boot on fmuv3
then enable after 100ms, and let settle for 20ms. This is to fix an
issue with peripheral power on consistency with all fmuv3 boards

Thanks to Philip for the suggestion
2019-05-11 18:45:18 +10:00
Michael du Breuil
a4d9853f1d AP_HAL_ChibiOS: Actually enable the wrapper on remove 2019-04-26 08:07:19 +10:00
Andrew Tridgell
508aae8f2a HAL_ChibiOS: added save/restore of attitude in backup registers 2019-04-22 16:53:35 +10:00
Andrew Tridgell
730982b3c4 HAL_ChibiOS: fixed build with older gcc 2019-04-22 16:53:35 +10:00
Andrew Tridgell
2778a1b01e HAL_ChibiOS: save/restore home position in backup registers
# Conflicts:
#	libraries/AP_HAL_ChibiOS/hwdef/common/stm32_util.c
2019-04-22 16:53:35 +10:00
Andrew Tridgell
f0f36c6237 HAL_ChibiOS: fixed watchdog timeout setting 2019-04-22 16:53:35 +10:00
Andrew Tridgell
9ca67dc811 HAL_ChibiOS: implement was_watchdog_armed() 2019-04-22 16:53:35 +10:00
Andrew Tridgell
1acb7e977f HAL_ChibiOS: added ability to restore safety state on watchdog reset 2019-04-22 16:53:35 +10:00
Andrew Tridgell
54cbf8ea9e HAL_ChibiOS: change to 2s timeout on watchdog
a bit more of a safety net against false positives for stable release
2019-04-22 16:53:35 +10:00
Andrew Tridgell
58aca561fd HAL_ChibiOS: fixed watchdog on H7 2019-04-22 16:53:35 +10:00
Andrew Tridgell
19526b5826 HAL_ChibiOS: implement scheduler->expect_delay_ms() 2019-04-22 16:53:35 +10:00
Andrew Tridgell
a5309b3afa HAL_ChibiOS: record reason for reset
allows us to tell if reset was due to watchdog
2019-04-22 16:53:35 +10:00
Andrew Tridgell
c09df1ea7b HAL_ChibiOS: added IWDG watchdog support
this resets the MCU if the main loop stops for 1 second
2019-04-22 16:53:35 +10:00
Andrew Tridgell
26d1371d25 HAL_ChibiOS: separate out DMA allocation for sdcard IO
this fixes an issue with DMA to SPI6 on STM32H7. On the H7 SRAM4 can
be used for DMA and BDMA to all devices except for SDMMC which uses
IDMA.

by separating out DMA of sdcard data from other data we can arrange
for DMA to all devices to work
2019-03-09 07:33:47 +11:00
Andrew Tridgell
160de969a5 HAL_ChibiOS: simplify H7 clock tree setup
and push more peripherals to max of 100MHz
2019-03-04 21:42:07 +11:00
Andrew Tridgell
5bcfe41d1f HAL_ChibiOS: push H7 clock to 400MHz 2019-03-04 19:38:06 +11:00
Andrew Tridgell
4c12ba4c2c HAL_ChibiOS: fixed SDMMC IRQ priority 2019-03-01 11:39:27 +11:00
Andrew Tridgell
e192bc6c10 HAL_ChibiOS: adjust H7 clocks, and enabled SDMMC 2019-03-01 11:39:12 +11:00
Andrew Tridgell
64681cb05c HAL_ChibiOS: allocate threads from any heap
this fixes a failure on MatekF405-Wing where it fails to allocate the
SPI thread for the IMU
2019-02-27 11:54:28 +11:00
Andrew Tridgell
26e76e51ed HAL_ChibiOS: fixed H7 build with older compilers 2019-02-26 16:18:26 +11:00
Andrew Tridgell
70930cca29 HAL_ChibiOS: fixed bootloader build with gcc 4.9 2019-02-26 16:18:26 +11:00
Andrew Tridgell
f8aeeb0333 HAL_ChibiOS: adjust clock tree to be more consistent
use 96MHz for all peripheral buses
2019-02-26 16:18:26 +11:00
Andrew Tridgell
5dd82f1d63 HAL_ChibiOS: adjust 16MHz HSE settings for H743 (CubeH7) 2019-02-26 16:18:26 +11:00
Andrew Tridgell
b0f4494c4a HAL_ChibiOS: fixed DMA on SPI for Pixhawk4Pro 2019-02-26 16:18:26 +11:00
Andrew Tridgell
9966fbea0f HAL_ChibiOS: fixed bootloader build error 2019-02-26 16:18:26 +11:00
Andrew Tridgell
e92c66418d HAL_ChibiOS: fixed bouncebuffer code on STM32F7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
a3e69e715d HAL_ChibiOS: avoid doing one-way SPI transfers
these transfers use dummy bytes in the hal driver, which may not be in
DMA safe memory, so best to avoid them
2019-02-26 16:18:26 +11:00
Andrew Tridgell
cda1959629 HAL_ChibiOS: added support for more flexible memory regions
this allows for an arbitrary number of memory regions, with each one
flagged as DMA safe, fast or normal
2019-02-26 16:18:26 +11:00
Andrew Tridgell
5f88340919 HAL_ChibiOS: fixed flash build warning 2019-02-26 16:18:26 +11:00
Andrew Tridgell
8a40ee8132 HAL_ChibiOS: fixed idle wait on H7 flash program 2019-02-26 16:18:26 +11:00
Andrew Tridgell
b07ba37359 HAL_ChibiOS: pass optimization to ChibiOS build 2019-02-26 16:18:26 +11:00
Andrew Tridgell
77d4e1f796 HAL_ChibiOS: removed ID_ANY streams for H7
use generated map instead
2019-02-26 16:18:26 +11:00
Andrew Tridgell
6422068e6b HAL_ChibiOS: fixed analog input on H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
46787fe7d8 HAL_ChibiOS: adjust clocks for H743 2019-02-26 16:18:26 +11:00
Andrew Tridgell
6fb40a9713 HAL_ChibiOS: set FPU=hard if not set elsewhere 2019-02-26 16:18:26 +11:00
Andrew Tridgell
f753669a58 HAL_ChibiOS: improved check for DTCM ram 2019-02-26 16:18:26 +11:00
Andrew Tridgell
37bcd6e7d8 HAL_ChibiOS: default to timer 5 for H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
e581be8df7 HAL_ChibiOS: optionally disable DCache on H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
46cb506a22 HAL_ChibiOS: added cache management for H7 in bouncebuffer code 2019-02-26 16:18:26 +11:00
Andrew Tridgell
ff21508ce8 HAL_ChibiOS: ensure 32 byte alignment for DMA on H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
4b01e2c3b3 HAL_ChibiOS: fixed clock tree for no LSE on H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
3c9ba02ce9 HAL_ChibiOS: fixed H7 flash 2019-02-26 16:18:26 +11:00
Andrew Tridgell
52b47e499b HAL_ChibiOS: fixed H7 clock tree for ADC driver 2019-02-26 16:18:26 +11:00
Andrew Tridgell
de335f14d7 HAL_ChibiOS: fixed GPIO init for H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
1fa0a2eeca HAL_ChibiOS: fixed peripheral enables on H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
ae448a6932 HAL_ChibiOS: enable DMA checking on H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
51b4d54f70 HAL_ChibiOS: disable show_stack_usage in bootloader 2019-02-26 16:18:26 +11:00
Andrew Tridgell
565706cf7e HAL_ChibiOS: fixed H7 flash handling 2019-02-26 16:18:26 +11:00
Andrew Tridgell
c2746ca9f9 HAL_ChibiOS: simplify H7 hwdef.dat 2019-02-26 16:18:26 +11:00