Search found 17 matches
- Mon Nov 12, 2018 8:05 pm
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
I tried GCC 6.3.1 (from developer.arm.com) It makes the exact same code with enabled optimizations 08001fe0 <VectorBC>: OSAL_IRQ_HANDLER(STM32_USB1_LP_HANDLER) { 8001fe0: b5f0 push {r4, r5, r6, r7, lr} 8001fe2: 46de mov lr, fp 8001fe4: 4657 mov r7, sl 8001fe6: 464e mov r6, r9 8001fe8: 4645 mov r5, r...
- Mon Nov 12, 2018 7:35 pm
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
I figured it out. on cortex-m0 PORT_IRQ_PROLOGE saves the LR register, which is then supplied to PORT_IRQ_EPILOGUE #define PORT_IRQ_PROLOGUE() \ regarm_t _saved_lr = (regarm_t)__builtin_return_address(0) #define PORT_IRQ_EPILOGUE() _port_irq_epilogue(_saved_lr) when optimization disabled gcc compile...
- Mon Nov 12, 2018 6:57 pm
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
as I expected, the function ST_HANDLER is incorrectly optimized. Unfortunately, gcc does not allow switching the optimization inside the function.
going to deeply learn ARM assembler
going to deeply learn ARM assembler
- Mon Nov 12, 2018 12:50 am
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
disabling of optimization for the os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c seems to have completely solved the problem. hmm... faisal, I don't know where is this strategic location. empty readylist is normal situation, but chSchDoReschedule() call should be blocked by chSchIsPreemptionRequired() in...
- Sun Nov 11, 2018 11:35 pm
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
arm-none-eabi-gcc.exe (GNU Tools for Arm Embedded Processors 7-2018-q2-update) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANT...
- Sun Nov 11, 2018 10:58 pm
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
yes, it seems to USB-related, but the chThdSleepMillisecond() also has an impact for example, this code works fine while (true) { uint8_t rxbyte = streamGet(&SDU1); } moreover, commands are correctly received and sent over USB-serial. more complex code works fine (with SPI and PWM blocks enabled...
- Sun Nov 11, 2018 10:09 pm
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
yes, the USB connected to host.
I just checked, without connection (power only), the system works for a long time
I just checked, without connection (power only), the system works for a long time
- Sun Nov 11, 2018 9:08 pm
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
as I understand, the delay does not affect the problem. the system crashes after a random time, but within 30 seconds. removing the USB code fixes the problem, but in this case there is no any computing at all. To create interrupt load, I connected a pwm module with rate of 10khz, but everything wor...
- Sun Nov 11, 2018 1:24 pm
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
this is the first thing I thought. unfortunately, increasing the size of the stacks does not solve the problem. I have the CH_DBG_FILL_THREADS option enabled for determining the use of the stacks. main and process stacks uses approx 160 bytes, idle thread seems to not use the stack at all. situation...
- Sun Nov 11, 2018 12:06 am
- Forum: Bug Reports
- Topic: strange behavior of the scheduler on STM32F070 Topic is solved
- Replies: 44
- Views: 33460
Re: strange behavior of the scheduler on STM32F070 Topic is solved
the code is the simplest now #include "ch.h" #include "hal.h" #include "usbcfg.h" int main(void) { halInit(); chSysInit(); sduObjectInit(&SDU1); sduStart(&SDU1, &serusbcfg); usbDisconnectBus(serusbcfg.usbp); chThdSleepMilliseconds(1000); usbStart(serusbcfg.u...