Fixed bug #1076.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@13457 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
af46d8847e
commit
1a2da63568
|
@ -487,27 +487,31 @@ void chMtxUnlockS(mutex_t *mp) {
|
|||
void chMtxUnlockAllS(void) {
|
||||
thread_t *ctp = currp;
|
||||
|
||||
while (ctp->mtxlist != NULL) {
|
||||
mutex_t *mp = ctp->mtxlist;
|
||||
ctp->mtxlist = mp->next;
|
||||
if (chMtxQueueNotEmptyS(mp)) {
|
||||
if (ctp->mtxlist != NULL) {
|
||||
do {
|
||||
mutex_t *mp = ctp->mtxlist;
|
||||
ctp->mtxlist = mp->next;
|
||||
if (chMtxQueueNotEmptyS(mp)) {
|
||||
thread_t *tp;
|
||||
#if CH_CFG_USE_MUTEXES_RECURSIVE == TRUE
|
||||
mp->cnt = (cnt_t)1;
|
||||
mp->cnt = (cnt_t)1;
|
||||
#endif
|
||||
thread_t *tp = queue_fifo_remove(&mp->queue);
|
||||
mp->owner = tp;
|
||||
mp->next = tp->mtxlist;
|
||||
tp->mtxlist = mp;
|
||||
(void) chSchReadyI(tp);
|
||||
}
|
||||
else {
|
||||
tp = queue_fifo_remove(&mp->queue);
|
||||
mp->owner = tp;
|
||||
mp->next = tp->mtxlist;
|
||||
tp->mtxlist = mp;
|
||||
(void) chSchReadyI(tp);
|
||||
}
|
||||
else {
|
||||
#if CH_CFG_USE_MUTEXES_RECURSIVE == TRUE
|
||||
mp->cnt = (cnt_t)0;
|
||||
mp->cnt = (cnt_t)0;
|
||||
#endif
|
||||
mp->owner = NULL;
|
||||
}
|
||||
mp->owner = NULL;
|
||||
}
|
||||
} while (ctp->mtxlist != NULL);
|
||||
ctp->prio = ctp->realprio;
|
||||
chSchRescheduleS();
|
||||
}
|
||||
ctp->prio = ctp->realprio;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -522,33 +526,9 @@ void chMtxUnlockAllS(void) {
|
|||
* @api
|
||||
*/
|
||||
void chMtxUnlockAll(void) {
|
||||
thread_t *ctp = currp;
|
||||
|
||||
chSysLock();
|
||||
if (ctp->mtxlist != NULL) {
|
||||
do {
|
||||
mutex_t *mp = ctp->mtxlist;
|
||||
ctp->mtxlist = mp->next;
|
||||
if (chMtxQueueNotEmptyS(mp)) {
|
||||
#if CH_CFG_USE_MUTEXES_RECURSIVE == TRUE
|
||||
mp->cnt = (cnt_t)1;
|
||||
#endif
|
||||
thread_t *tp = queue_fifo_remove(&mp->queue);
|
||||
mp->owner = tp;
|
||||
mp->next = tp->mtxlist;
|
||||
tp->mtxlist = mp;
|
||||
(void) chSchReadyI(tp);
|
||||
}
|
||||
else {
|
||||
#if CH_CFG_USE_MUTEXES_RECURSIVE == TRUE
|
||||
mp->cnt = (cnt_t)0;
|
||||
#endif
|
||||
mp->owner = NULL;
|
||||
}
|
||||
} while (ctp->mtxlist != NULL);
|
||||
ctp->prio = ctp->realprio;
|
||||
chSchRescheduleS();
|
||||
}
|
||||
chMtxUnlockAllS();
|
||||
chSysUnlock();
|
||||
}
|
||||
|
||||
|
|
213
readme.txt
213
readme.txt
|
@ -74,213 +74,6 @@
|
|||
*****************************************************************************
|
||||
|
||||
*** Next ***
|
||||
- EXT: Updated lwIP to version 2.1.2.
|
||||
- HAL: Added support for timers 9..17, 20..22 to STM32 PWM driver.
|
||||
- HAL: Added support for timers 9..17, 20..22 to STM32 ICU driver.
|
||||
- HAL: Added support for timers 10 and 13 to STM32 GPT driver.
|
||||
- HAL: Added support for timers 9..14 to STM32 ST driver.
|
||||
- HAL: STM32 ST driver is now integrated with new IRQ infrastructure and
|
||||
performs cross-checks with GPT, ICU and PWM drivers on timers usage.
|
||||
- HAL: Improved support for shared handlers. Now there are centralized
|
||||
inclusion modules (.inc) containing shared handlers. The new modules
|
||||
can be included by the various STM32 platforms. So far the new system
|
||||
has been implemented for STM32G0, STM32G4, STM32L0, STM32L4, STM32L4+,
|
||||
STM32F7, STM3277. It shall be gradually introduced for all the others.
|
||||
- HAL: Idle callback support for STM32 USARTv1 UART driver.
|
||||
- LIB: Added support for asynchronous jobs queues to OSLIB.
|
||||
- LIB: Added support for delegate threads to OSLIB.
|
||||
- NIL: Improvements to messages, new functions chMsgWaitS(),
|
||||
chMsgWaitTimeoutS(), chMsgWaitTimeout().
|
||||
- RT: Improvements to messages, new functions chMsgWaitS(),
|
||||
chMsgWaitTimeoutS(), chMsgWaitTimeout(), chMsgPollS(),
|
||||
chMsgPoll().
|
||||
- HAL: TRNG support added to STM32F7xx, STM32G0xx, STM32G4xx,
|
||||
STM32H7xx and STM32L0xx.
|
||||
- NEW: Added support for .cc files extensions in makefiles.
|
||||
- HAL: New RTCv3 driver for STM32G0xx and STM32G4xx.
|
||||
- HAL: Added support for DAC3 and DAC4 in STM32 DACv1 driver.
|
||||
- NIL: New functions: chSemResetWithMessageI() and chSemResetWithMessage().
|
||||
- RT: New functions: chSemResetWithMessageI() and chSemResetWithMessage().
|
||||
- HAL: Added canTryAbortX() function to CAN driver, implemented
|
||||
for STM32 CANv1.
|
||||
- HAL: Added error handling to WSPI driver, now LLDs can report error
|
||||
conditions to upper layers.
|
||||
- NEW: Added mcuconf.h generator for STM32G4x1, STM32G4x3 and STM32G4x4.
|
||||
- HAL: STM32 DMAv1 driver improvements and generalization, added support
|
||||
for 8 channels.
|
||||
- HAL: Initial STM32G4xx support in HAL.
|
||||
- HAL: Added script to generate board files from command line, just
|
||||
run ./os/hal/boards/genboard.sh with the board directory name
|
||||
as parameter.
|
||||
- HAL: Modified the ST driver to support, optionally, multiple additional
|
||||
callback-capable channels.
|
||||
- RT: Removed regarm_t type from port layer and replaced with uint32_t, this
|
||||
avoids a lot of casts in the code.
|
||||
- NIL: Removed regarm_t type from port layer and replaced with uint32_t, this
|
||||
avoids a lot of casts in the code.
|
||||
- NEW: ARM SandBox subsystem added.
|
||||
- LIB: Added a cache class to OSLIB.
|
||||
- NEW: Added an option to change the shell thread name.
|
||||
- HAL: Made bus acquire/release functions in SNOR driver public.
|
||||
- NEW: Added mcuconf.h generator for STM32L052/L053/L062/L063.
|
||||
- NEW: Added mcuconf.h generator for STM32L072/L073.
|
||||
- HAL: Initial STM32G0xx support in HAL.
|
||||
- HAL: Added STM32L452 support in HAL.
|
||||
- HAL: Implemented TIMPRE setting for STM32F7xx HAL.
|
||||
- NEW: Merged FatFS 0.13c.
|
||||
- NEW: Added a "library generator" project for RT, it allows to
|
||||
generate a library with a pre-configured RT. It also includes
|
||||
an "header generator" able to generate an unified "ch.h" with
|
||||
all options resolved.
|
||||
- LIB: Improved OSLIB initialization.
|
||||
- NEW: Lots of style fixes thanks to the new tool.
|
||||
- NEW: Code style checker tool added.
|
||||
- NEW: Added and embedded flash driver model in HAL. Added an implementation
|
||||
for STM32F1xx, STM32L4xx, STM32L4xx+.
|
||||
- HAL: Modified AES GCM function signatures.
|
||||
- HAL: Added H753 to all H7 mcuconf.h files.
|
||||
- HAL: Added transactional updates to MFS. Doubled data headers magic numbers
|
||||
for improved safety and to keep the final write aligned to 64 bits, it
|
||||
is required for STM32 ECC flash.
|
||||
- VAR: Modified syscalls.c to allocate memory from bottom upward, ChibiOS
|
||||
allocators take memory from top downward. This way the memory taken
|
||||
using _sbrk_r() does not contain "holes" caused by other allocators.
|
||||
- LIB: Re-introduced missing chGuardedPoolGetCounterI() function to guarded
|
||||
pools allocator.
|
||||
- LIB: Modified core allocator to be able to get blocks starting from bottom
|
||||
or top of the available memory range.
|
||||
Removed alignment enforcement for requested block size. Alignment is
|
||||
only ensured on the returned pointer, this should reduce memory usage
|
||||
is some cases.
|
||||
- HAL: Added a new interface for range-finder devices (used by EX).
|
||||
- HAL: Added mcuconf.h updater tool for STM32F407 (backported to 19.1.1).
|
||||
- NIL: Integrated NIL 4.0.
|
||||
- FIX: Fixed state check in CMSIS osKernelInitialize() wrapper (bug #1075)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed missing IRQ disabling in ADCv1 and ADCv3 STM32 drivers (bug #1073)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed missing parenthesis in ADC _adc_isr_error_code macro (bug #1072)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed invalid macro check in test library (bug #1071)
|
||||
(backported to 19.1.4).
|
||||
- FIX: Fixed non-standard declaration in STM32 ADCv3 driver (bug #1070)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed problem in the I2C fallback driver (bug #1069)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed TIM8 missing on STM32H7xx (bug #1068)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed Sharing issues with GPT TIMv1 driver (bug #1067)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed incorrect pointer type in lwipthread.c low_level_input causes
|
||||
panic on packet reception (bug #1009)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed wrong check on STM32_DAC_DUAL_MODE in DACv1 STM32 driver
|
||||
(bug #1065)(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed I2Cv1 extra interrupts (bug #1064)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed I2C4 broken on STM32H7xx (bug #1063)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed I2C fallback driver broken (bug #1061)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed STM32 ADC1 sample time macros (bug #1059)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed STM32 ADCv1 error callback disabled on some devices (bug #1058)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed error in uartSendFullTimeout() HAL function (bug #1057)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed OS-less Cortex-M OSAL problem with critical zones (bug #1056)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed missing RTCv1 definitions in STM32F37x registry (bug #1054)
|
||||
(backported to 19.1.4).
|
||||
- FIX: Fixed assertion triggered in STM32 OTGv1 driver (bug #1053)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed STM32 CANv1 compile fails if CAN3 is used alone (bug #1052)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed palIsLineEventEnabledX() compile fail on STM32L4 (bug #1051)
|
||||
(backported to 19.1.4).
|
||||
- FIX: Fixed wrong clock disable check in STM32 DACv1 driver (bug #1050)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed clock tree differences in STM32F4 family (bug #1049)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed wrong debug check in STM32 I2Cv1 driver (bug #1048)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed warning in simulator PAL driver (bug #1047)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed board initialization failure on STM32F030x6 (bug #1046)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed STM32 I2Cv1 BTF event not cleared (bug #1045)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed serial NOR driver wrong macro definition (bug #1044)
|
||||
(backported to 19.1.4).
|
||||
- FIX: Fixed STM32F7 I2C registry dma channel (bug #1043)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed missing dummy cycles in memory map mode on STM32 QSPI driver
|
||||
(bug #1042)(backported to 19.1.4).
|
||||
- FIX: Fixed missing DMA definitions for STM32F412 I2C3 (bug #1041)
|
||||
(backported to 19.1.4)(backported to 18.2.3).
|
||||
- FIX: Fixed misplaced parenthesis in hal_files.h (bug #1040)
|
||||
(backported to 19.1.4).
|
||||
- FIX: Fixed wrong day-of-the-week in STM32 RTCv2 driver (bug #1039).
|
||||
- FIX: Fixed missing bracket in MX25 flash driver (bug #1038)
|
||||
(backported to 19.1.3).
|
||||
- FIX: Fixed some M7 demos compile as M4 (bug #1037)(backported to 19.1.3).
|
||||
- FIX: Fixed missing I2C4 RCC definitions for L4/L4+ (bug #1036)
|
||||
(backported to 19.1.3)(backported to 18.2.3).
|
||||
- FIX: Fixed missing delay after STM32 wait states setup (bug #1035)
|
||||
(backported to 19.1.3)(backported to 18.2.3).
|
||||
- FIX: Fixed reduced time slices in RT (bug #1034)
|
||||
(backported to 19.1.3)(backported to 18.2.3).
|
||||
- FIX: Fixed GCC scatter files alignment problem (bug #1033)
|
||||
(backported to 19.1.3)(backported to 18.2.3).
|
||||
- FIX: Fixed long intervals fail when interval type is larger than time type
|
||||
(bug #1031)(backported to 19.1.3)(backported to 18.2.3).
|
||||
- FIX: Fixed Round Robin check missing when in tick-less mode (bug #1030)
|
||||
(backported to 19.1.3)(backported to 18.2.3).
|
||||
- FIX: Fixed RCC_AHB1ENR_BKPSRAMEN not present in all STMF4xx devices
|
||||
(bug #1029)(backported to 19.1.3)(backported to 18.2.3).
|
||||
- FIX: Fixed MPU fix #1027 broke stack checking on Cortex-M devices without
|
||||
MPU (bug #1028)(backported to 19.1.3)(backported to 18.2.3).
|
||||
- FIX: Fixed MPU setup missing on thread start (bug #1027)
|
||||
(backported to 19.1.2)(backported to 18.2.3).
|
||||
- FIX: Fixed invalid I2C4 DMAs for STM32F76x (bug #1026)
|
||||
(backported to 19.1.2)(backported to 18.2.3).
|
||||
- FIX: Fixed invalid STM32_UART7_RX_DMA_CHN for STM32F469 (bug #1025)
|
||||
(backported to 19.1.2)(backported to 18.2.3).
|
||||
- FIX: Fixed invalid EXTI registry constant for STM32L4+ (bug #1024)
|
||||
(backported to 19.1.2).
|
||||
- FIX: Fixed missing RTC definitions in STM32L1xx registry (bug #1023)
|
||||
(backported to 19.1.2).
|
||||
- FIX: Fixed missing EXTI driver integration on some platforms (bug #1022)
|
||||
(backported to 19.1.2).
|
||||
- FIX: Fixed various UART clock naming errors in STM32H7 HAL (bug #1021)
|
||||
(backported to 19.1.1)(backported to 18.2.3).
|
||||
- FIX: Fixed missing STM32L4+ check in GPIOv3 driver (bug #1020)
|
||||
(backported to 19.1.1)(backported to 18.2.3).
|
||||
- FIX: Fixed call to obsolete dmaStreamRelease() in STM32 I2Cv3 driver
|
||||
(bug #1019)(backported to 19.1.1).
|
||||
- FIX: Fixed misconfiguration in STM32L4R9I DIscovery board files (bug #1018)
|
||||
(backported to 19.1.1).
|
||||
- FIX: Fixed wrong Debug launch configuration in STM32L4Rx demos (bug #1017)
|
||||
(backported to 19.1.1).
|
||||
- FIX: Fixed wrong ADCSEL definitions in STM32H7 HAL (bug #1016)
|
||||
(backported to 19.1.1)(backported to 18.2.3).
|
||||
- FIX: Fixed chTimeIsInRangeX() failing under some configurations (bug #1015)
|
||||
(backported to 19.1.1)(backported to 18.2.3).
|
||||
- FIX: Fixed invalid AXI errata fix for STM32H7xx (bug #1014)
|
||||
(backported to 19.1.1)(backported to 18.2.3).
|
||||
- FIX: Fixed invalid ADCD3 initialization in STM32 ADCv3 driver (bug #1013)
|
||||
(backported to 19.1.1)(backported to 18.2.3).
|
||||
- FIX: Fixed invalid call to dmaStreamRelease() in STM32 SDIOv1 driver
|
||||
(bug #1012)(backported to 19.1.1).
|
||||
- FIX: Fixed wrong license restriction check in Nil (bug #1011)
|
||||
(backported to 19.1.1)(backported to 18.2.3).
|
||||
- FIX: Fixed uninitialized variables in STM32 DMA drivers (bug #1010)
|
||||
(backported to 19.1.1).
|
||||
- FIX: Fixed wrong mcuconf.h in some testex demos related to STM32F407
|
||||
(bug #1008)(backported to 19.1.1)(backported to 18.2.3).
|
||||
- FIX: Fixed problem in STM32 mcuconf.h template files (bug #1007)
|
||||
(backported to 19.1.1)(backported to 18.2.3).
|
||||
- EX: Fixed I2C Acquire bus called twice in the HTS221 initialization
|
||||
(bug #1006)(backported to 19.1.1)(backported to 18.2.3).
|
||||
- EX: Fixed missing I2C release bus in LPS22HB initialization (bug #1005)
|
||||
(backported to 19.1.1).
|
||||
- NEW: Added latency measurement test application:
|
||||
- FIX: Fixed problem in chMtxUnlockAllS() (bug #1076)
|
||||
(backported to 20.3.1)(backported to 19.1.4)(backported to 18.2.3).
|
||||
|
|
Loading…
Reference in New Issue