We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi there, some of your qustions are not exactly clear. Hope my answers/suggestions would help.1- how can I show the importance of latency and jitter in C coding (systick with GPIO?!) (refering to this document: rtos-comparison-EN.pdf ).The minimum latency and jitter depends on the waitstate of the system as well as interrupt latency of the processor. For best testing result you should try to run the system with a clock configuration with minimum wait state. I think for STM32 it is 24MHz for zero wait state on flash. The Cortex-M3 can give you 12 cycle interrupt latency for zero wait state. But access to peripherals via bus bridge might result in waitstate and hence increase the interrupt latency slight.The idea of measuring interrupt latency using GPIO is possible, but don't forget that your access to the GPIO inside the interrupt handler will result in extra clock cycles. For a fair comparison you should try to carry out a measurement of I/O access time. The I/O access latency is dependent on the microcontroller product design, C compiler, and clocksstem settings in the microcontroller.The importance of latency and jitter depends on your applications. For simple applications a bit of interrupt latency and jitter does not matter. But in some non-linear control applications a large jitter can result in failure in the control algorithm. That is why Cortex-M3 is good for control applications: Exclusing the cases where interrupt is blocked by a higher priority interrupts or interrupt masking register, the interrupt latency is 12 cycles plus extra cycles results from wait states, which is usually a very small number. Cortex-M0 even have a zero jitter feature - not sure if NXP LPC111x include this feature.Most other archtectures usually have non-deterministic interrupt latency.2- hwo can show me, a code in C that details a cotext switch.Context switching is unlikely to be implemented in C. In context switching you would want to have total control on individual register read/write. This need to be done in assembly.There are a number of open source OS available for Cortex-M3, please look at their code to try to understand the implementation.3- DMA multilayering communication between interfaces and memories is the default configuration in cortex-M3; how can i show the importance of this feature, in benchmarking.The Cortex-M3 itself does not have DMA feature. The DMA feature is added by individual microcontroller vendor in their design. There are various performance points you can focus on, depending on your applications, for example:- maximum bandwidth of the DMA operation,- maximum performance penalty of the procesor while DMA is running at a fixed rate in the background,- impact to interrupt latency jitter when DMA is running at a fixed rate in the back ground,- improvement of application peformance by using DMA,- comparison of DMA features between different Cortex-M3 microcontrollers, etc.Depending the target of your benchmark report, you might want to look at one or more of these areas.Is it an academic research paper you are preparing?