Commit Graph

261 Commits

Author SHA1 Message Date
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
Andrew Tridgell 227ecc53ac HAL_ChibiOS: support mcuconf for STM32H7 MCU 2019-02-26 16:18:26 +11:00
Andrew Tridgell ceb0ec70f9 HAL_ChibiOS: disable pipes API
not used
2019-02-26 16:18:26 +11:00
Andrew Tridgell 908b444a50 HAL_ChibiOS: update halconf for VER_7_0 API 2019-02-26 16:18:26 +11:00
Andrew Tridgell 247bb433ec HAL_ChibiOS: update chconf.h for VER_6_0 API 2019-02-26 16:18:26 +11:00
Andrew Tridgell 27a1fec911 HAL_ChibiOS: TBS-F7 is active low on sd power 2019-02-22 10:27:17 +11:00
Andrew Tridgell 94bace91a4 HAL_ChibiOS: bring up sensors rail after boot on TBS F7
this prevents a reset loop on GPIO config
2019-02-22 10:27:17 +11:00
murata 6bb11b5cc8 HAL_ChibiOS: Get the number of characters in strlen 2019-01-09 10:12:51 +11:00
Michael du Breuil e8373e1fdf AP_HAL_ChibiOS: add scripting heap 2018-12-31 19:25:23 -07:00
Andrew Tridgell 8188b4a039 HAL_ChibiOS: fixed card inserted test for SDC 2018-12-31 08:00:14 +11:00
Siddharth Purohit 8df52aba29 HAL_ChibiOS: move vsnprintf call to redirect Ardupilot's instead of ChibiOS's 2018-11-29 16:36:29 +11:00
Michael du Breuil 8c464572d8 AP_HAL_ChibiOS: Use a less clever version of realloc
The clever version loses access to memory, and is excessively hard coded
2018-11-26 22:32:56 +00:00
Andrew Tridgell a0ed658fcc HAL_ChibiOS: added palReadLineMode() function
used to change and restore line modes
2018-11-16 08:30:40 +11:00
Andrew Tridgell 065dba973b HAL_ChibiOS: fixed build warning on iomcu 2018-11-07 07:35:45 +11:00
Andrew Tridgell 4674a1c68d HAL_ChibiOS: fixed system time for clocks other than 1MHz
needed for IOMCU
2018-10-17 15:11:28 +11:00
Andrew Tridgell bcc1bd9752 HAL_ChibiOS: added realloc implementation
needed for AP_Scripting
2018-10-09 10:08:52 +11:00
Michael du Breuil 8382d377bd AP_HAL_ChibiOS: Add a BUFSIZ value 2018-10-09 10:08:52 +11:00
Michael du Breuil 9a48a0835e AP_HAL_ChibiOS: Don't redefine errno 2018-10-03 08:01:13 +10:00
Michael du Breuil f810b7b9f6 AP_HAL_ChibiOS: Make getcwd() take size_t as per the standard 2018-10-02 06:04:40 +10:00
Siddharth Purohit 8ac38d73f7 HAL_ChibiOS: add option for NO_FASTBOOT build and enable it for iomcu 2018-09-19 12:14:15 +10:00
Siddharth Purohit 6622c9b8fd HAL_ChibiOS: wrap sscanf and snprintf methods 2018-09-19 12:14:15 +10:00
Siddharth Purohit f9149f45b2 HAL_ChibiOS: explicitly mention if RTC not available 2018-09-19 12:14:15 +10:00
Siddharth Purohit 42b4730d88 HAL_ChibiOS: add changes to hwdef to support STM32F1 based controller 2018-09-19 12:14:15 +10:00
Siddharth Purohit e824a9c360 HAL_ChibiOS: add hwdef files to support IOMCU 2018-09-19 12:14:15 +10:00
Andrew Tridgell 33076be585 HAL_ChibiOS: fixed handling of 16 bit timers
when we have a 16 bit timer then systime_t is 16 bit, and we need to
handle wrap of get_systime_us32()
2018-08-26 18:34:26 +10:00
Andrew Tridgell dabdb969f6 HAL_ChibiOS: added support for HAL_Semaphore type 2018-08-16 12:40:10 +10:00
Andrew Tridgell 385f735799 HAL_ChibiOS: avoid 64 bit maths in AP_HAL::micros()
this saves a few cycles
2018-08-08 21:24:49 +10:00
Andrew Tridgell 4e6ac85057 HAL_ChibiOS: use 32 bit time intervals
this makes for smaller and faster code. We really don't need 64 bit
intervals as long sleeps are done with a loop.
2018-08-03 13:44:59 +10:00
Andrew Tridgell 1bd0ea079b HAL_ChibiOS: fixed build on older compilers
allow build with gcc 4.9.x
2018-08-03 13:44:59 +10:00
Andrew Tridgell 7aba99e229 HAL_ChibiOS: fixes for ChibiOS version update 2018-08-03 13:44:59 +10:00
Andrew Tridgell f8e2edbc7f HAL_ChibiOS: fixed cache flush for updated ChibiOS version 2018-08-03 13:44:59 +10:00
Siddharth Purohit 2604b00b43 HAL_ChibiOS: use ch.h header for oslib api 2018-08-03 13:44:59 +10:00
Siddharth Purohit ff65487ab3 HAL_ChibiOS: follow updated gpio pin setup procedure 2018-08-03 13:44:59 +10:00
Siddharth Purohit 5f88163e17 HAL_ChibiOS: update configuration and rtlib headers for ChibiOS 18.x.x 2018-08-03 13:44:59 +10:00
Siddharth Purohit 395c48933c HAL_ChibiOS: move tto using updated time conversion API 2018-08-03 13:44:59 +10:00
Andrew Tridgell 44fd85ff29 HAL_ChibiOS: reduce memory used by serial buffers
this does not appear to affect log download speed. It saves about 27k
of memory
2018-08-01 13:11:16 +10:00
Alexander Malishev 1377943eb3 HAL_ChibiOS: fix DTCM size in stm32f745 mcu 2018-07-26 17:52:37 +10:00
Andrew Tridgell 8a26ca1ddf HAL_ChibiOS: added a DMA reserve heap
this ensures we keep some DMA-capable memory aside for when it is
needed
2018-07-20 15:48:21 +10:00
Andrew Tridgell f2d602690e HAL_ChibiOS: fixed build error with some compilers 2018-07-13 08:50:46 +10:00
Andrew Tridgell 0201893f7c HAL_ChibiOS: fixed peripheral power-up on fmuv5
we need to do the powerup before we initialise the UARTs
2018-07-13 07:34:30 +10:00
Andrew Tridgell 63a0a4979c HAL_ChibiOS: delay peripheral power on for fmuv5
this should prevent SiK radios staying in the bootloader
2018-07-13 07:34:30 +10:00
Andrew Tridgell f083b80700 HAL_ChibiOS: added preallocation of DMA bouncebuffers
we need 512 bytes for microSD
2018-07-12 14:34:04 +10:00
Andrew Tridgell 963675689c HAL_ChibiOS: fixed substitution of %BOARD%-BL 2018-06-28 11:35:13 +10:00
Andrew Tridgell 946d0208e5 HAL_ChibiOS: fixed stm32f7 cache bug in erase flash page 2018-06-28 11:35:13 +10:00
Andrew Tridgell 2b7b499c63 HAL_ChibiOS: added support for RTC sig for fast boot 2018-06-28 11:35:13 +10:00
Andrew Tridgell bf6fb72904 HAL_ChibiOS: fixed 32 bit flash writes 2018-06-25 21:22:31 +10:00
Andrew Tridgell e40457d98f HAL_ChibiOS: avoid malloc in usbcfg
this avoids the need for malloc in the bootloader
2018-06-25 21:22:31 +10:00
Andrew Tridgell 369ac5edd0 HAL_ChibiOS: save more space in the bootloader 2018-06-25 21:22:31 +10:00
Andrew Tridgell e870b5f00a HAL_ChibiOS: use 32 bit flash operations when possible 2018-06-25 21:22:31 +10:00
Andrew Tridgell feefa05b41 HAL_ChibiOS: expose stm32_flash_ispageerased() 2018-06-25 21:22:31 +10:00
Andrew Tridgell dd1bd43a2e HAL_ChibiOS: added stm32_flash_keep_unlocked() 2018-06-25 21:22:31 +10:00
Andrew Tridgell 518d41e0d4 HAL_ChibiOS: added OTP defines 2018-06-22 08:00:31 +10:00
Alexander Malishev 661259de4e HAL_ChibiOS: reduce .text aigment to save flash space 2018-06-22 08:00:31 +10:00
Andrew Tridgell 3fc6824bfb HAL_ChibiOS: setup more bootloader config files 2018-06-22 08:00:31 +10:00
Andrew Tridgell 0cd46c063c HAL_ChibiOS: fixed flash driver for F7
we need a data sync barrier due to the F7 cache
2018-06-22 08:00:31 +10:00
Andrew Tridgell 3ef88e1b8f HAL_ChibiOS: allow flash support for bootloader 2018-06-22 08:00:31 +10:00
Andrew Tridgell 5216870492 HAL_ChibiOS: avoid strstr in usbcfg
saves nearly 2k of flash
2018-06-22 08:00:31 +10:00
Andrew Tridgell c12d14d7a4 HAL_ChibiOS: check for ChibiOS features 2018-06-22 08:00:31 +10:00
Andrew Tridgell 03f67d82c9 HAL_ChibiOS: allow more ChibiOS functionality to be disabled
used by bootloader builds for minimal flash size
2018-06-22 08:00:31 +10:00
Hyungsub 8ae2729022 AP_HAL_ChibiOS: fix memory leaks
Fixes #8644
2018-06-18 10:30:56 +01:00
Andrew Tridgell 1c4bf3d804 HAL_ChibiOS: fixed build warning 2018-06-15 11:26:40 +10:00
Andrew Tridgell 00d919018b HAL_ChibiOS: added RTC clock implementation 2018-06-15 08:01:22 +10:00
Alexander Malishev eac5d13f1c HAL_ChibiOS: use 2 channels in SoftSigReaderInt.cpp 2018-06-06 08:23:51 +10:00
Alexander Malishev fd45b3a69b HAL_ChibiOS: slightly increase EICU interrupt priority 2018-06-06 08:23:51 +10:00
Andrew Tridgell c273b23940 HAL_ChibiOS: moved MCU config to python database
this moves the key MCU config variables related to memory to the
python MCU database, allowing the hwdef.dat to be considerably simpler
2018-06-06 07:15:41 +10:00
Andrew Tridgell 0e09dc75c0 HAL_ChibiOS: flush all memory on chSysHalt()
this makes debugging a lot easier, as gdb can see the values in dcache
2018-06-06 07:15:41 +10:00
Andrew Tridgell 2493cdbcb6 HAL_ChibiOS: switch to new bouncebuffer system
this removes the dma_flush and dma_invalidate methods and uses a
common bouncebuffer system for all CPU types. This enables microSD
support on STM32F7
2018-06-06 07:15:41 +10:00
Andrew Tridgell 0b1e26a470 HAL_ChibiOS: added bouncebuffer system
this makes our bouncebuffers available for ChibiOS system
drivers. This is needed for SDMMCv1 on STM32F7
2018-06-06 07:15:41 +10:00
Andrew Tridgell 018c9ad40b HAL_ChibiOS: fixed build warnings 2018-06-06 07:15:41 +10:00
Andrew Tridgell eec4a12cc2 HAL_ChibiOS: switched to using DTCM memory for DMA
this uses SRAM1 and SRAM2 for main memory, which enables the use of the
data cache for faster operation, and using DTCM for all DMA operations.
2018-06-06 07:15:41 +10:00
Andrew Tridgell bb2e7a189f HAL_ChibiOS: added a debug function for showing stack free
this can be enabled when needed to investigate stack space remaining
2018-06-06 07:15:41 +10:00
Andrew Tridgell 2087354939 HAL_ChibiOS: align buffers to STM32F7 cache lines
this allows for DMA flush and invalidate operations to work on all
dynamically allocated memory
2018-06-06 07:15:41 +10:00
Andrew Tridgell edb831653f HAL_ChibiOS: added dma_flush and dma_invalidate operations
these are needed to manage the data cache on the STM32F7
2018-06-06 07:15:41 +10:00
Andrew Tridgell 721f3cd5d1 HAL_ChibiOS: fixed flash layout for F7
thanks to @alielectric
2018-06-06 07:15:41 +10:00
Andrew Tridgell 1f6ffc48e5 HAL_ChibiOS: allow STM32F7 to build with flash driver 2018-06-06 07:15:41 +10:00
Alexander Malishev 66de6d770a HAL_ChibiOS: Enable reentrancy on FatFS sybsystem 2018-05-27 19:10:24 +10:00
Alexander Malishev 6b15b2f44f HAL_ChibiOS: Enable sdcard on spi bus 2018-05-27 19:10:24 +10:00
Andrew Tridgell 7b720aae46 HAL_ChibiOS: allow printf() to work on systems without debug console
map to hal.console once initialised
2018-05-26 19:06:25 +10:00
Alexander Malishev 1fd52c4e01 HAL_ChibiOS: added input capture filter 2018-04-28 07:31:58 +10:00
Andrew Tridgell 95108a2d2c HAL_ChibiOS: added support for 16 bit timers 2018-04-24 08:03:46 +10:00
Alexander Malishev 79b5719419 ChibiOS: add support for complementry output timer channels 2018-04-14 09:25:15 +10:00
Andrew Tridgell e4ce2f532b HAL_ChibiOS: make smaller builds possible
this allows for much smaller builds when you disable a lot of
options. This is part of an effort to create a bootloader of less than
16k using ChibiOS
2018-04-12 11:50:44 +10:00
Andrew Tridgell 6e5cbc7c3d HAL_ChibiOS: initial support for F745 boards 2018-04-12 11:50:44 +10:00
Andrew Tridgell 551dca63e1 HAL_ChibiOS: added build information for each MCU
this abstracts the build information for each MCU, so that hwdef.dat
can control the build process of ChibiOS
2018-04-12 11:50:44 +10:00
Andrew Tridgell d1e4185817 HAL_ChibiOS: don't build flash.c if not needed 2018-04-12 11:50:44 +10:00
Andrew Tridgell 610a6a6c88 HAL_ChibiOS: optimise USB config driver 2018-04-07 09:10:29 +10:00
Tom Pittenger b864cd6ae6 AP_HAL_ChibiOS: include correct wrappers 2018-04-03 08:27:44 +10:00
Andrew Tridgell 306d35655e HAL_ChibiOS: allow for bare board builds
this allows for a build with no UARTs, no SPI, no I2C, no PWM. Great
for initial board bringup with just USB
2018-03-02 12:52:50 +11:00
Andrew Tridgell 21951243f0 HAL_ChibiOS: default debug checks off
these can be enabled as needed for board bringup, but are too
expensive for general use
2018-03-02 12:52:50 +11:00
Andrew Tridgell 427e00dd41 HAL_ChibiOS: switched to system timer for AP_HAL::micros()
this uses the ChibiOS system timer instead of a separate GPT timer for
the core ChibiOS timer. The advantage is it saves us a timer, plus it
changes ChibiOS to use a 1MHz clock on its timer, which gives us
higher resolution for delays.

This has a remarkable effect on timing jitter, reducing it greatly
2018-02-14 18:27:00 +11:00
Andrew Tridgell b90c0d78f3 HAL_ChibiOS: fixed build warning 2018-02-08 17:36:33 +11:00
Andrew Tridgell 20a008c80a HAL_ChibiOS: disable trace buffers
these were unusued but still allocated
2018-02-08 17:36:33 +11:00
Andrew Tridgell 591e0c2249 HAL_ChibiOS: allow control of interrupt port
F412 has radio IRQ on port B
2018-02-08 17:36:33 +11:00
Andrew Tridgell f3f6972fc0 HAL_ChibiOS: output panics on system console 2018-02-08 17:36:33 +11:00
Andrew Tridgell 86189393a7 HAL_ChibiOS: fixed build warnings 2018-02-07 20:33:45 +11:00
Andrew Tridgell 4886ffbf8a HAL_ChibiOS: fixed build warnings 2018-02-07 20:33:45 +11:00
Andrew Tridgell fa68210210 HAL_ChibiOS: fixed build with older compilers 2018-02-07 20:33:45 +11:00
Andrew Tridgell 5fc12f82fb HAL_ChibiOS: expanded interrupt stack to 256
this is very conservative, and may be trimmed later based on analysis
of stack usage
2018-02-07 20:33:45 +11:00
Andrew Tridgell 4b8bde746e HAL_ChibiOS: improved default USB strings
use board name and serial number to make IDs unique
2018-02-07 20:33:45 +11:00
Andrew Tridgell 29add8a880 HAL_ChibiOS: fixed build without FATFS enabled 2018-02-07 20:33:45 +11:00
Siddharth Purohit 143686f70d HAL_ChibiOS: add placeholder cstdio header 2018-02-07 20:33:45 +11:00
Siddharth Purohit 539d5adc13 hwdef: add more posix methods 2018-02-07 20:33:45 +11:00
Siddharth Purohit 288f6b1fa0 HAL_ChibiOS: add chibios cpp wrapers, libuavcan's stm32 driver uses it 2018-02-07 20:33:45 +11:00
Andrew Tridgell 713006bb1d HAL_ChibiOS: allow more OTG defines to be overridden 2018-02-07 20:33:45 +11:00
Andrew Tridgell 743806116d HAL_ChibiOS: removed unusued ppm driver
now uses AP_RCProtocol
2018-01-20 17:40:07 +11:00
bugobliterator 445ba6ed39 HAL_ChibiOS: update ppm to use Extended ICU driver 2018-01-20 17:40:07 +11:00
Andrew Tridgell f6138e3c91 HAL_ChibiOS: use calloc in preferance to malloc 2018-01-17 11:22:05 +11:00
Andrew Tridgell e2a65c8c60 HAL_ChibiOS: added support for AP_Terrain for ChibiOS 2018-01-15 11:46:02 +11:00
Andrew Tridgell 2929b3dbb1 HAL_ChibiOS: allow builds on systems with no SDIO 2018-01-15 11:46:02 +11:00
Andrew Tridgell 2978649cd4 waf: moved to generated loader script 2018-01-15 11:46:02 +11:00