Search Results

Search results 1-20 of 301.

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

  • Dualcore Embos Messaging

    SEGGER - Til - - embOS related

    Post

    Please be aware this is not a technical question only but also a license/sales decision. I can't share any details about that now (since it's simply not yet decided) but I am pretty sure we'll find a solution which will work for you. Best regards, Til

  • Dualcore Embos Messaging

    SEGGER - Til - - embOS related

    Post

    Hello Jim, yes, you can use embOS spinlocks to synchronize data messaging between two or more cores. If you have an embOS instances running on each core you usually have a shared memory in which you can pass data from one core to the other. This shared memory must be secured with a spinlock. That's a generic way which works with every core. But most devices have device specific mechanism to communicate between the cores like triggering an interrupt on the other core. It depends on you applicatio…

  • Quote from westloser86: “This is correct, BLE is time sensitive and modifying the priorities of the ISR might cause instability in connections, advertisements, etc. I would not recommend to change this priorities. ” With Cortex-M the absolute interrupt priority value is not crucial but the comparison of two priorities. For example it makes no difference whether the interrupt priority is 0x00 or 0x80 if this is the only interrupt. Let's say the BLE stack initializes a BLE interrupt at priority 0x…

  • I guess the interrupt is initialized in the BLE library and you don't have the source code, correct? Anyway you can change the interrupt priority at any time later before your application starts. You just need to know which interrupt is used (I think it's the RTCC interrupt) and change the according interrupt priority. But I cannot know whether the interrupt priority has an influence on the BLE stack. Best regards, Til

  • Quote: “As far as I understand, this means that I cannot call the OS_EVENT_SetMask function because my program is in an ISR with higher priority. I have no clue how I can resolve this issue. ” That's correct. embOS API must be called only from embOS interrupts with an according interrupt priority. That means you have to change the interrupt priority to a valid value. Please have a look here and in the embOS manuals: wiki.segger.com/Interrupt_prioritization Best regards, Til

  • Dear Giacomo, Quote from j000: “Since in the method interrupt_handler() I make some calls to OS functions (like OS_PutMail used for mailboxes) If I'm not mistaken I have to tell the OS that I'm within an interrupt, with the methods OS_EnterInterrupt() and OS_LeaveInterrupt(). ” Yes, that's correct. Which error code do you get? Most likely you are using an invalid interrupt priority. The iMXRT1062 has four interrupt priority bits implemented, thus NVIC_SetPriority() expects values from 0 to 15 an…

  • Hi Thomas, that's more a question for IAR. Please have a look in the IAR EWRX compiler/linker manual on how to suppress warnings. Basically you can do it in the source code and in the project options. Best regards, Til

  • Hello Alexander, IAR changes the runtime model from time to time. This messages says that the embOS libraries were built with an older runtime model. Unfortunately there is no easy fix. The embOS libraries needs to be rebuilt with your IAR version. And we must check whether there is something we need to modify in our code. Please contact us directly per email or our ticket system and we'll help you with the evaluation. You can also give me a call to discuss further details. Best regards, Til

  • Hello, is it possible to share your complete project with us? With the project it should be possible to solve your issue within a few minutes. If not could you please show how StackFS and StackNOR are defined? What else did you change in the project? Regarding hard fault, please have a look here in the application note: Analyzing HardFaults on Cortex-M CPUs (AN00016) Best regards, Til

  • Wenn du das embOS Cortex-M ES V5.06 schon hast schaue doch bitte mal in die BSP_UART.c in Start\BoardSupport\ST\STM32F103_STM3210B_Eval\Setup\. Evtl. kannst du einfach bei uns abschauen oder das Modul direkt nutzen. Viele Grüße, Til

  • Hallo Philipp, üblicherweise passiert das wenn das Interrupt Pending Flag nicht gelöscht wurde. Du müsstest mal schauen, ob es das bei deinem Device gibt und es dann in der Interrupt Routine als erstes löschen. Ansonsten sieht der Interrupt Controller das ein Pending Flag gesetzt ist und führt die ISR sofort wieder aus. Das sollte aber ohne embOS genauso passieren. Löst das dein Problem? Btw. Ein OS_INT_Call() brauchst du nicht. Das wird nur bei manchen speziellen CPUs gebraucht. Eine embOS Inte…

  • Freut mich das es jetzt funktioniert. Melde dich einfach wenn du noch Hilfe brauchst. Viele Grüße, Til

  • Korrekt, der embOS Timer wird in der OS_InitHW() in der RTOSInit.c initialisiert. Dazu passend müssen dann einige Sachen in der RTOSInit.c angepasst werden damit alle embOS Timing Funktionen über den neuen Timer informiert sind. Das ist aber fast selbsterklärend (z.B. OS_TIMER_FREQ auf die richtige Frequenz des genutzten Timers setzen). Ich würde aber empfehlen den anderen Weg zu versuchen. Das ist eigentlich einfacher. Im Zweifelsfall kannst du uns auch dein Projekt schicken und wir schauen mal…

  • Hallo Philipp, wenn ich das richtig im Kopf habe wird der SysTick in der STM32F10x_StdPeriph_Driver nur für Timeouts benutzt. D.h. dort wird wahrscheinlich nur irgendein Zähler inkrementiert. Das einfachste wäre also den SysTick in der STM32F10x_StdPeriph_Driver nicht zu initialisieren und das Inkrementieren in unserem SysTick Interrupt Handler auszuführen. Alternativ könnte man natürlich auch für das embOS einfach einen anderen Hardware Timer benutzen. embOS ist nicht auf den SysTick angewiesen…

  • Hi Marco, no need to apologize. That's what I assumed since I did the same mistake in the past . Please let us know if we can be of any further help. Best regards, Til

  • Dear Mr. Seitter, most likely the "Printf Integer Support = Long Long" option is not set correctly in your project. Could you please double check that? You could also contact the embOS support directly via our support email address (which you can find in the embOS manual in chapter "Support"). If you like you can send us your project and we'll check it. Best regards, Til

  • Hello, thanks for your inquiry. Quote from bar: “1. Where can I found information about the OS_Init() function? ” Please have a look in the embOS manual which comes with your embOS shipment. It is also available online at: segger.com/downloads/embos/UM01001 Quote from bar: “2. Can I take the embOS example as init structure only use for the RTOS, so Is it right to use all the clock setting and power by the serial example as is or I need to understand what HW setting the embOS example all ready do…

  • Dear Audrey, in my understanding you are using the embOS RX CCRX sources with the IAR EWRX compiler and implement the necessary changes by yourself instead of licensing embOS RX IAR, right? Most likely there is no bug in embOS but in your implementation. What you are currently using is no embOS provided and tested by SEGGER! embOS RX IAR is used in a lot of products without any issues. > This bug appears when two interrupts (nested or with different priorities) run at same time (one interrupts t…

  • [SOLVED] Critical region

    SEGGER - Til - - embOS related

    Post

    Hi Ran, OS_TASK_EnterRegion()/OS_TASK_LeaveRegion() disables preemptive task switches. Whether this has any effect on the BLE stack depends on your application and the BLE stack itself with which I am not that familiar with. Is the BLE communication handled in a task or in interrupts? Best regards, Til

  • Dear Ran, __stack_start_ and __stack_end_ are linker symbols which are used by embOS. Which linker file are you using? With Embedded Studio the GCC linker file is generated from the flash_placement.xml and nRF52840_xxAA_MemoryMap.xml when you build the project. You might want to copy the Start_nRF52840.ld from the \Output folder to e.g. the \Setup folder and use it from there. Does that solve your issue? Best regards, Til