Search Results

Search results 1-20 of 80.

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Hi Silvio, We're not aware of any issues regarding Taskevents in embOS 5.18.0.3. OS_TASKEVENT_Set() should immediately switch to the signaled task if that has the highest priority in the application, is not suspended and no critical region was established. Since your embOS license should be still in support, please create a Support Ticket and I'm pretty sure we'll be able to solve that issue quickly. Best regards, Martin

  • Hello Ali, Okay, so you're including the STM32Cube HAL directly from within Keil MDK. This combination is not something I have used before and since neither product is supported by SEGGER, I'm afraid I can be of limited help here only. However, I'd assume that combination to work just as well after applying the modifications I had suggested above: - As the project is not generated in STM32CubeMX itself, SEGGER.I-CUBE-embOS_conf.h does not exist in your project and you will need to delete that in…

  • Hello Ali, I'm not quite sure about your set-up in this particular case. SEGGER.I-CUBE-embOS_conf.h should be generated by STM32CubeMX when creating a project that was configured for embOS. However, it seems the *.ioc file included with your project files was not configured for embOS usage. If so, you may simply cut the inclusion of SEGGER.I-CUBE-embOS_conf.h from RTOSInit.c. Please be aware, however, that you will also need to disable the generation of the SysTick_Handler() and PendSV_Handler()…

  • Hi again, Quote: “Also Please note that my keil version is 5.38 and I'm using arm compiler version 6.19 and I have also tried to compile your STM32F103_STM32_SK example, and I would get the compilation error like this (...) Setup/Retarget.c(345): error: conflicting types for '_sys_tmpnam' int _sys_tmpnam(char * pBuffer, int FileNum, unsigned MaxLen) { ” It seems Keil MDK has changed the signature of the _sys_tmpnam() function from int _sys_tmpnam() in uVision v5.36 and earlier to void _sys_tmpna…

  • Dear Ali Asadzadeh, Thanks for your inquiry. I assume you are following our Wiki page on creating CMSIS-based projects with embOS? In that case, adding the EXPORT directives you have mentioned to the start-up file is the correct solution to the observed problem, as mentioned in the Wiki. Please note that modification to OS_InitSysStackInfo.c is not a proper solution, since embOS will use the variables that are initialized therein for debug purposes. By commenting out their initialization, embOS …

  • Hi Dimitri, Can you give more information on what specific embOS port and version you are working with? Quote from Dimitri: “Hi! I think this is not a "normal" value of this variable and that it may somehow have gotten corrupted. ” OS_Global.InInt (or, in previous versions, OS_InInt) is increased once for every call to OS_INT_Enter[Nestable](), but application interrupts typically will not nest each other more than 200 times. I'd therefore agree that this is likely due to a corruption of that va…

  • Hello, Quote from vadymsodolevsky: “In Generic CMSIS project in ReadMe.txt Supported hardware is: "The sample project for CMSIS should run on any Cortex M3 core." Can the project be used with M4? What is limitation or required changes to use it with Cortex M4? ” Are you, by any chance, referring to the Generic CMSIS project contained in embOS for Cortex-M and IAR? In that case, the project may also be used with Cortex-M4, of course. From an RTOS perspective, M3 and M4 don't differ much except fo…

  • Hello, Quote from jrhammel: “I have been able to use SystemView in IAR's debug mode but when in release mode it does not work. Is there a way to get this to work in release mode? Thanks ” I assume you're still working with embOS for Cortex-M and IAR, am I correct? In that case, please be aware that embOS itself does not generate SystemView events in release builds, but in profiling builds only (i.e. "debug & profiling", "debug & trace", or "stack check & profiling"). Furthermore, our BSPs are co…

  • Hi vadymsodolevsky, Quote from vadymsodolevsky: “What is the easiest way to use embOS with NRF soft device? I see 2 options: 1. Use as the base the embOS IAR project (with the 3 changes), remapping the application, add BLE component to work with SoftDevice? 2. Use the NRF SDK, add embOS as SW library and adopt the project to work with it in the same way as FreeRTOS works? (currently chosen) ” Both options would work, of course. However, option 2) probably is more easy to perform, since integrati…

  • Dear vadymsodolevsky, Thank you for your inquiry. Quote from vadymsodolevsky: “1. Does somebody tested the embOS with Ble(SOFT DEVICE) and with System Core Clock? 2. Do you have example or somebody else implemented for "app_timer" for Nordic SDK (API between BLE and OS timers)? 3. Do you have some tips for me about the porting to NRF? May be I didn't found in forum the porting sequence from somebody else? ” After receiving some customer requests on this topic, we've performed several tests some …

  • Hello Enes, Thanks for your inquiry. embOS spinlocks are typically implemented in assembler using atomic instructions specific to the architecture in use. For architectures that do not support appropriate atomic instructions, however, we also offer another implementation that's completely written in "C". For the latter, we've implemented the well-known "Lamport's bakery algorithm" (refer to research.microsoft.com/en-us/u…e/lamport/pubs/bakery.pdf for more information). Of course, both implementa…

  • Hi Bhu, Thank you for your inquiry. Please be aware, however, that interrupt simulation with IAR's Embedded Workbench is not covered by the embOS support, but would need to be discussed with IAR instead. Hence I'm afraid I can be of limited help on this only. Still, please consider the following: embOS 4.24 for RX and IAR (as well as later versions) includes a dedicated IAR simulator project at {ROOT_DIR}\Start\BoardSupport\IAR_Simulator\. That project comes with specific macro file to simulate …

  • Hi Kees, As Nino explained, embOS v3.62 would need to be instrumented for using SystemView on it, which may only be done when having access to the source code. However, if you're interested in CPU load exclusively, there might be an alternative that was available in v3.62 already: embOSView. embOSView displays the CPU load per task and thus could be used as an indicator on whether you're exceeding the devices capacities. For more information on embOSView, please refer to the generic embOS manual…

  • Hi Shinkyu, Quote from shinkyu.park: “Hi Martin, Thank you for your detailed explanation. How can I contact you if there is anything more to discuss about this? Best Regards, Shinkyu Park ” You're welcome! Our official support email address is support_embOS@segger.com. Alternatively, you may also use our ticket system at segger.com/ticket. Best regards, Martin

  • Hi Shinkyu, Thanks for your inquiry! Quote from shinkyu.park: “When I change the period of Timer as 500us, tick interrupt is generated in every 500us.But timer related APIs are not work properly. When I call OS_Delay(1000), it expires after 500ms. ” This actually is expected behavior. OS_Delay() [or OS_TASK_Delay() as it's called in recent versions] doesn't take milliseconds as a parameter, but system ticks. Therefore, by doubling the system tick interrupt's frequency, all delays will expire twi…

  • Glad you're up and running again! We'll consider this thread closed now. Best regards, Martin

  • Hello, While we're not aware of any issues regarding OS_TICK_Handle(), we'd of course like to help you in finding the cause for the observed behavior. Generally speaking, OS_ERR_ILLEGAL_OUT_ISR is indicated whenever embOS assumes that an API function that may only be called from an ISR was called from a context that is not an ISR. This is done by checking the variable OS_Global.InInt, which should have been incremented before by calling either OS_EnterNestableInterrupt() or OS_EnterInterrupt(). …

  • Hi Bar, Quote from Bar: “Do you see why this could happen? ” OS_ERR_INV_TASK indicates that the task was not created before, or else that the task's control block was overwritten by the application after it was created. Hence, could you please double-check that the task was actually created before the event gets signaled? Also, if it was created before, could you check wether the member "Id" of the respective task's control block holds the value "0x0Fu" at all times after creating that task? Quo…

  • Hello bar, Thanks for your inquiry. With embOS, there's several options to perform periodic jobs within your application. The most appropriate typically are the embOS software timers: C Source Code (13 lines) If for some reason timers can't be used for the intended purpose (e.g. when specific API functions can't be used with software timers), another option is to make tasks periodic by calling OS_TASK_DelayUntil(): C Source Code (20 lines)Alternatively, you may of course use a hardware timer as …

  • Hello kkmspb, It seems you're increasing the stack size for one task. However, you'd need to increase the System Stack size instead. This can be done in the project options under "Code -> Runtime Memory Area -> Main Stack Size". Best regards, Martin