{"id":19195451,"url":"https://github.com/ardupilot/chibios","last_synced_at":"2025-04-13T02:26:01.171Z","repository":{"id":45229223,"uuid":"112667244","full_name":"ArduPilot/ChibiOS","owner":"ArduPilot","description":"Fork of ChibiOS for ArduPilot","archived":false,"fork":false,"pushed_at":"2025-01-28T01:51:28.000Z","size":117381,"stargazers_count":76,"open_issues_count":8,"forks_count":126,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-04-04T05:05:01.084Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArduPilot.png","metadata":{"files":{"readme":"readme.txt","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-30T22:20:24.000Z","updated_at":"2025-04-04T03:01:07.000Z","dependencies_parsed_at":"2025-03-28T04:21:14.924Z","dependency_job_id":null,"html_url":"https://github.com/ArduPilot/ChibiOS","commit_stats":{"total_commits":11479,"total_committers":29,"mean_commits":"395.82758620689657","dds":"0.20114992595173797","last_synced_commit":"88b84600b59d2f39c9d9137aacdc9f098b374b4a"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2FChibiOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2FChibiOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2FChibiOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2FChibiOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArduPilot","download_url":"https://codeload.github.com/ArduPilot/ChibiOS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248655700,"owners_count":21140550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T12:10:03.139Z","updated_at":"2025-04-13T02:26:01.137Z","avatar_url":"https://github.com/ArduPilot.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"*****************************************************************************\r\n*** Files Organization                                                    ***\r\n*****************************************************************************\r\n\r\n--{root}                        - ChibiOS directory.\r\n  +--readme.txt                 - This file.\r\n  +--documentation.html         - Shortcut to the web documentation page.\r\n  +--license.txt                - GPL license text.\r\n  +--demos/                     - Demo projects, one directory per platform.\r\n  +--docs/                      - Documentation.\r\n  |  +--build/                  - Documentation builders.\r\n  |  +--manual/                 - Manuals directory.\r\n  |  +--quality/                - Reports and metrics.\r\n  |  +--various/                - Various support files.\r\n  +--ext/                       - External libraries, not part of ChibiOS.\r\n  +--os/                        - ChibiOS components.\r\n  |  +--common/                 - Shared OS modules.\r\n  |  |  +--abstractions/        - API emulator wrappers.\r\n  |  |  |  +--cmsis_os/         - CMSIS OS emulation layer for RT.\r\n  |  |  |  +--nasa_osal/        - NASA Operating System Abstraction Layer.\r\n  |  |  +--ext/                 - Vendor files used by the OS.\r\n  |  |  +--ports/               - RTOS ports usable by both RT and NIL.\r\n  |  |  +--startup/             - Startup support.\r\n  |  +--ex/                     - EX component.\r\n  |  |  +--dox/                 - EX documentation resources.\r\n  |  |  +--include/             - EX header files.\r\n  |  |  +--devices /            - EX complex drivers.\r\n  |  +--hal/                    - HAL component.\r\n  |  |  +--boards/              - HAL board support files.\r\n  |  |  +--dox/                 - HAL documentation resources.\r\n  |  |  +--include/             - HAL high level headers.\r\n  |  |  +--lib/                 - HAL libraries.\r\n  |  |  |  +--complex/          - HAL collection of complex drivers.\r\n  |  |  |  |  +--mfs/           - HAL managed flash storage driver.\r\n  |  |  |  |  +--serial_nor/    - HAL managed flash storage driver.\r\n  |  |  |  +--fallback/         - HAL fall back software drivers.\r\n  |  |  |  +--peripherals/      - HAL peripherals interfaces.\r\n  |  |  |  +--streams/          - HAL streams.\r\n  |  |  +--osal/                - HAL OSAL implementations.\r\n  |  |  |  +--lib/              - HAL OSAL common modules.\r\n  |  |  +--src/                 - HAL high level source.\r\n  |  |  +--ports/               - HAL ports.\r\n  |  |  +--templates/           - HAL driver template files.\r\n  |  |     +--osal/             - HAL OSAL templates.\r\n  |  +--oslib/                  - RTOS modules usable by both RT and NIL.\r\n  |  |  +--include/             - OSLIB high level headers.\r\n  |  |  +--src/                 - OSLIB high level source.\r\n  |  |  +--templates/           - OSLIB configuration template files.\r\n  |  +--nil/                    - NIL RTOS component.\r\n  |  |  +--dox/                 - NIL documentation resources.\r\n  |  |  +--include/             - NIL high level headers.\r\n  |  |  +--src/                 - NIL high level source.\r\n  |  |  +--templates/           - NIL configuration template files.\r\n  |  +--rt/                     - RT RTOS component.\r\n  |  |  +--dox/                 - RT documentation resources.\r\n  |  |  +--include/             - RT high level headers.\r\n  |  |  +--src/                 - RT high level source.\r\n  |  |  +--templates/           - RT configuration template files.\r\n  |  +--various/                - Various portable support files.\r\n  +--test/                      - Kernel test suite source code.\r\n  |  +--lib/                    - Portable test engine.\r\n  |  +--hal/                    - HAL test suites.\r\n  |  |  +--testbuild/           - HAL build test and MISRA check.\r\n  |  +--nil/                    - NIL test suites.\r\n  |  |  +--testbuild/           - NIL build test and MISRA check.\r\n  |  +--rt/                     - RT test suites.\r\n  |  |  +--testbuild/           - RT build test and MISRA check.\r\n  |  |  +--coverage/            - RT code coverage project.\r\n  +--testex/                    - EX integration test demos.\r\n  +--testhal/                   - HAL integration test demos.\r\n\r\n*****************************************************************************\r\n*** Releases and Change Log                                               ***\r\n*****************************************************************************\r\n\r\n*** 21.11.4 ***\r\n- NEW: Added settings for STM32 OCTOSPIv1 and OCTOSPIv2 TCR bits SSHIFT and\r\n       DHQC.\r\n- NEW: Reworked STM32 SDMMCv1 and SDMMCv2 drivers, better timeout and clock\r\n       handling, improved speed for aligned buffers.\r\n- FIX: Fixed missing cache management during Cortex-M RAM initializations\r\n       (bug #1261).\r\n- FIX: Fixed syntax errors in STM32H7xx/hal_lld_type2.h (bug #1259).\r\n- FIX: Fixed unwanted reset of cache on STM32H7xx (bug #1258).\r\n- FIX: Fixed invalid HSIDIV in STM32Ggxx clocks initialization (bug #1257).\r\n- FIX: Fixed incorrect RTC initialization on STM32G4/L4/L4+ (bug #1256).\r\n- FIX: Fixed syntax error in RP2040 GPIO driver (bug #1255).\r\n- FIX: Fixed undefined STM32_SDMMC_MAXCLK value for STM32H7 type 1 and 2\r\n       (bug #1254).\r\n- FIX: Fixed invalid checks on PLLP/R/Q dividers on STM32H7 (bug #1253).\r\n- FIX: Fixed remote wakeup failure in STM32 OTGv1 driver (bug #1252).\r\n- FIX: Fixed wrong use of hooks in RT/NIL (bug #1251).\r\n- FIX: Fixed SPI_MMC driver broken in 21.11.3 (bug #1249).\r\n\r\n*** 21.11.3 ***\r\n- NEW: STM32 DMA drivers now export an STM32_DMA_MAX_TRANSFER definition.\r\n- NEW: PAL events for RP2040 added.\r\n- NEW: Removed obsolete sandbox code from ARMv7-M port. Now ARMv7-M-ALT is\r\n       the official port for use with sandboxes.\r\n- NEW: Reworked HAL MAC driver, now with callback support.\r\n- NEW: Fixed setting of SYSCLK when derived from divided HSI16\r\n- NEW: Mass change: Source code convention changed from CRLF to just CR (Unix).\r\n- NEW: Fixed some corner cases in ADC5, added ADC reset on start().\r\n- NEW: Added a \"BufferedSIODriver\" class that implements the behavior of the\r\n       legacy Serial driver on top of a SIO implementation (buffering, events\r\n       and all).\r\n- NEW; Now hal.h includes cc_portab.h by default making it mandatory.\r\n- NEW: Moved HAL serial error flags into asynchronous channels interface\r\n       definitions.\r\n- NEW: Reworked HAL SIO driver.\r\n- NEW: Non-proprietary LLVM build support.\r\n- NEW: Added integration of LittleFS on top of our flash infrastructure.\r\n- NEW: Added a centralized errors handler under /os/common/utils. It will\r\n       replace those in HAL and SB and will be shared among multiple subsystems.\r\n- NEW: Added a new OOP model under /os/common/utils. It will replace the\r\n       one in HAL and will be shared among multiple subsystems.\r\n- NEW: Added EFL driver support for STM32F401/411.\r\n- FIX: Fixed broken support for STM32 UART9 and USART10 (bug #1248).\r\n- FIX: Fixed wrong initialization in STM32L1xx ADC driver (bug #1247).\r\n- FIX: Fixed wrong HSI48 support on STM32L0xx (bug #1246).\r\n- FIX: Fixed wrong DMA definitions for STM32L0xx I2C3 peripheral (bug #1245).\r\n- FIX: Fixed wrong path in STM32L053 ADC demo makefile (bug #1244).\r\n- FIX: Fixed missing semicolon in STM32 OTGv1 driver (bug #1243).\r\n- FIX: Fixed HSI48 not enabled for STM32L496/​4A6 (bug #1242).\r\n- FIX: Fixed problem in STM32 gpt_lld_polled_delay() implementation (bug #1241).\r\n- FIX: Fixed invalid delay loop in STM32G0/WL ADCv5 driver (bug #1240).\r\n- FIX: Fixed STM32_MCOSEL setting problem (bug #1239).\r\n- FIX: Fixed problems with cache in STM32 SDMMC drivers (bug #1238).\r\n- FIX: Fixed missing clock enables for some GPIOS on some STM32L4s (bug #1237).\r\n- FIX: Fixed old bugs in serial driver header (bug #1236).\r\n- FIX: Fixed virtual timers lockup under rare conditions (bug #1235).\r\n- FIX: Fixed STM32 RTCv2 locks for a second (bug #1234).\r\n\r\n*** 21.11.2 ***\r\n- NEW: Added dubby cycles support for SNOR using the normal SPI driver.\r\n- NEW: Disabled priority check on STM32 EXTI interrupts when the default\r\n       ISR is disabled. This allows for fast interrupts.\r\n- NEW: Added support for UART9 and USART10 on STM32H7.\r\n- NEW: Improved MFS to use explicitly non-cacheable buffers for potentially\r\n       DMA-accessible I/O areas.\r\n- NEW: FatFS now functional on STM32H7xx, added a target to the VFS demo.\r\n- NEW: Improved cache settings in STM32H7xx mcuconf.h.\r\n- NEW: Modified SDMMCv2 to allow for uncached buffers, tested on STM32H7xx.\r\n- NEW: Added OCTOSPIv2 driver using MDMA for STM32H7xx.\r\n- NEW: Added demos for STM32H723ZG Nucleo144 and STM32H735ZI Discovery boards.\r\n- NEW: Added support for STM32H723/25/33/35/A3/B3/A3Q/B3Q.\r\n- NEW: Updated ST Cube headers for STM32H7xx.\r\n- NEW: Improved HAL flash interface with mutual exclusion methods, improved\r\n       EFL and SNOR drivers to use it.\r\n- NEW: Added EFL driver implementation for STM32G4xx.\r\n- NEW: STM32G0B1 USBv2 driver.\r\n- NEW: USBv1 driver optimization and removal of a potential race condition\r\n       (not demonstrated).\r\n- NEW: Added elfAcquireBus()/eflReleaseBus() functions to EFL driver.\r\n- NEW: Added option to copy vectors in RAM on GCC startup for ARMv6-M,\r\n       ARMv7-M and ARMv8-M-ML.\r\n- NEW: On STM32WBxx added a check on STM32_LSI_ENABLE required by IWDG.\r\n- NEW: Added SPIv2 support also to STM32WB and STM32WL.\r\n- FIX: Re-opened and fixed bug #1100.\r\n- FIX: Fixed wrong buffers toggling in STM32 USBv1 isochronous mode (bug #1232).\r\n- FIX: Fixed STM32 RTCv2 registers synchronization errata (bug #1231).\r\n- FIX: Fixed STM32 ADCv1 and ADCv5 do not allow prescaler divide value of 1\r\n       (bug #1230).\r\n- FIX: Fixed missing check on STM32 SPIv2 DMA settings for SPI1 (bug #1229).\r\n- FIX: Fixed ARMv6-M port Keil compiler fail (bug #1228).\r\n- FIX: Fixed invalid handling of lwIP NETIF_FLAG_LINK_UP flag (bug #1227).\r\n- FIX: Fixed missing TIM16/17 errata handling for STM32G0xx (bug #1226).\r\n- FIX: Fixed missing ADC errata handling for STM32G0xx (bug #1225).\r\n- FIX: Fixed problem in the HAL I2C fallback driver (bug #1224).\r\n- FIX: Fixed GPIOH clock not enabled on STM32L432 (bug #1223).\r\n- FIX: Fixed invalid cumulative time stat in RT (bug #1222).\r\n- FIX: Fixed incorrect type cast in TIME_I2US() (bug #1221).\r\n- FIX: Fixed missing clock disable for STM32 OCTOSPI2 (bug #1220).\r\n- FIX: Fixed wrong condition in STM32 sio_lld_read() function (bug #1219).\r\n- FIX: Fixed STM32 Ethernet driver causes system hang after 2^31 packets\r\n       sent/received (bug #1218).\r\n- FIX: Fixed clock re-initialization problem in STM32 USARTv2 and USARTv3\r\n       drivers (bug #1217).\r\n- FIX: Fixed assertion on initialization of STM32H7xx (bug #1216).\r\n- FIX: Fixed Virtual Timers failure in a specific condition (bug #1215).\r\n- FIX: Fixed invalid STM32_OTG_STEPPING for STM32F40_41xxx (bug #1214).\r\n- FIX: Fixed SPIv2 driver compile fails when SPI_USE_SYNCHRONIZATION is FALSE\r\n       (bug #1213).\r\n- FIX: Fixed invalid state transition in SNOR flash driver (bug #1212).\r\n- FIX: Fixed missing exit condition in sioSynchronizeRX() and\r\n       sioSynchronizeTX() (bug #1211).\r\n- FIX: Some MISRA-related fixes.\r\n- FIX: Fixed missing check in chobjcaches.h (bug #1210).\r\n- FIX: Fixed misspelled chTraceSuspendI() function name (bug #1209).\r\n- FIX: Fixed RT testbuild application broken (bug #1208).\r\n\r\n*** 21.11.1 ***\r\n- NEW: Added EFL driver implementation for STM32G4xx.\r\n- NEW: STM32G0B1 USBv2 driver.\r\n- NEW: USBv1 driver optimization and removal of a potential race condition\r\n       (not demonstrated).\r\n- NEW: Added elfAcquireBus()/eflReleaseBus() functions to EFL driver.\r\n- NEW: Added STM32L073RZ-Nucleo64 to USB-CDC \"multi\" demo. Removed old demo.\r\n- NEW: Added an STM32 WDG \"multi\" demo. Removed all old WDG demos.\r\n- NEW: Added option to copy vectors in RAM on GCC startup for ARMv6-M,\r\n       ARMv7-M and ARMv8-M-ML.\r\n- NEW: On STM32WBxx added a check on STM32_LSI_ENABLE required by IWDG.\r\n- NEW: Added SPIv2 support also to STM32WB and STM32WL.\r\n- FIX: Fixed PWR_CR2_USV not set in STM32L4+ mcuconf.h file (bug #1207).\r\n- FIX: Fixed USB not enabled on STM32F103x6 (bug #1206).\r\n- FIX: Fixed RT test suite build fails when CH_CFG_USE_TIMESTAMP is FALSE\r\n       (bug #1205).\r\n- FIX: Fixed wrong number of CAN filters for STM32L496/9A6 (bug #1204).\r\n- FIX: Fixed DMA stream not disabled in STM32 QUADSPIv1 driver (bug #1203).\r\n- FIX: Fixed I2C4 DMA streams for STM32L496 (bug #1202).\r\n- FIX: Fixed STM32_SDMMC2_NUMBER on STM32H7 (bug #1201).\r\n- FIX: Fixed STM32G0B1 demo application hangs debuggers (bug #1200).\r\n\r\n*** 21.11.0 ***\r\n- NEW: STM32 ADCv2 now supports return code on start function.\r\n- NEW: Integrated FatFS with lwIP HTTPD, now it is possible to serve files\r\n       using HTTP from a storage device.\r\n- NEW: Updated FatFS to version 0.14b.\r\n- NEW: SPIv2 driver has been implemented on: STM32F0, STM32F1, STM32F3,\r\n       STM32F4, STM32F7, STM32G0, STM32G4, STM32L0, STM32L1, STM32L4,\r\n       STM32L4+, STM32H7.\r\n- NEW: New SPIv2 driver model, it is compatible with the previous SPI driver\r\n       and introduces: better runtime errors handling, slave mode,\r\n       data synchronization function, various other improvements.\r\n- NEW: Added an alternate port for ARMv7-M, it uses less RAM and it is\r\n       faster at interrupt processing, it is slightly slower at\r\n       thread-to-thread context switch so it is not a full replacement.\r\n- NEW: Now all xxxStart() functions in HAL are able to report a driver\r\n       activation error.\r\n- NEW: Support for STM32G031, STM32G041, STM32G0B1, STM32G0C1.\r\n- NEW: Made STM32H7 non-cacheable memory option also shareable.\r\n- NEW: EFL driver and demo for STM32F3xx.\r\n- NEW: New unit test subsystem under /os/test. Now it is officially\r\n       ChibiOS/TEST.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fardupilot%2Fchibios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fardupilot%2Fchibios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fardupilot%2Fchibios/lists"}