I want to read out RS232 data periodically. I have created an interrupt for this purpose. However, my RS232 functions need semaphores. I found out that I cannot execute a TX(Thread X) function in the interrupt. What do I have to do to make my TX function work inside the interrupt?
2
There are 2 best solutions below
0
ScottAzureRTOS
On
First, make sure you are calling _tx_thread_context_save and _tx_thread_context_restore at the beginning and end of your ISR, respectively. See here for more information: https://learn.microsoft.com/en-us/azure/rtos/threadx/chapter3#isr-template Second, you cannot create a semaphore in an interrupt, so make sure you create it elsewhere.
Related Questions in C
- Passing arguments to main in C using Eclipse
- kernel module does not print packet info
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Drawing with ncurses, sockets and fork
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- Configured TTL for A record(s) backing CNAME records
- Allocating memory for pointers inside structures in functions
- Finding articulation point of undirected graph by DFS
- C first fgets() is being skipped while the second runs
- C std library don't appear to be linked in object file
- gcc static library compilation
- How to do a case-insensitive string comparison?
- C programming: Create and write 2D array of files as function
- How to read a file then store to array and then print?
- Function timeouts in C and thread
Related Questions in EMBEDDED
- PHP don't use temp file for upload
- Sparkfun SC16IS750 does not work on Raspberry Pi
- Reserve memory space in m_text memory region of FLASH on embedded target
- SAE J1939 Standards Collection -- How much is necessary?
- How to call multiple slaves for Spi data transmission?
- Deployment over GPRS to embedded devices
- Changing just one byte in SD card sector
- Comparion of values won't work without delay
- Better to pass struct, or pointer to struct?
- STM32F4 Handling peripheral error while making a DMA Transfer (RX)
- USB programming, transfer file from iOS device to Embedded os device?
- using Diab, dcc 5.9.4 to compile a windows executable
- does b64_pton() work if input contains special characters? I am using it in C code
- u-boot select boot partition based on GPIO state
- Why is a write to a memory-mapped peripheral register not actioned (LPC43xx)?
Related Questions in STM32
- STM32F303VC : device not found
- Very few write cycles in stm32f4
- Put a bootloader program at the bottom of the FLASH memory
- STM32 USB HID reports
- STM32 flashing disabled after flashing a code without R/W protection
- How can I align stack to the end of SRAM?
- STM32 I-CODE and D-CODE buses
- how to use arm-none-eabi-gcc compile STM32 program
- Write a custom bootloader with the STM32L1 series in C
- What are the steps to setup an RTOS application on STM32 using Linux and Makefiles instead of using Windows based IDEs?
- Loosing some bytes on USART transmission with STM32L1XX
- my bootloader doesn't boot my new program on stm32
- Using printf causes error
- Estimating available RAM left with safety margin in C (STM32F4)
- Flashing image to STM3220g-EVAL board using Trace 32
Related Questions in THREADX
- threadx module allocating module data section in run time
- How to use NetX / NetXDuo in Azure RTOS (ThreadX) in conjunction with the ThreadX Modules feature
- How can I exit a function as soon as a certain condition is met (without checking it at every line)?
- Correct usage of Thread counting semaphores in a Producer and Consumer example
- how to port the threadX RTOS on the cortex R5?
- ThreadX module size
- Azure RTOS how to signal multiples thread with single event?
- How to determine optimal fault tolerant memory for filex?
- What is the usage of the backtrace at the top of threadx stacks and why it size varies?
- GUI library for ThreadX
- Is there a bug in Azure RTOS ThreadX's tx_event_flags_get function?
- tx_semaphore inside a Interrupt
- How to simulate ThreadX application on Windows OS
- How much stack does the ThreadX System Timer Thread requires?
- What ThreadX uses to do its testing?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
If your RTOS provides a way to do it, then use that. If not, then here's some other options:
There's also a very bad idea/last resort, and that is to toggle the global interrupt mask.