Jim Huang
                                            Jim Huang
                                        
                                    The conceptual implementation: ``` #include #include #include #include #define PROFILE_SIZE (3145727) #define INSTRUCTION_SIZE (4) #define BUF_SIZE 128 struct function { struct function *next; char *name; uintptr_t start; uintptr_t length; float...
@arcbbb : To utilize offline profiler, we have to ensure the instrumentation get ready to fetch tracer information in advance.
[nanoprof](https://github.com/fredrikhederstierna/nanoprof) implements minimal instrumentation faclity for embedded profiling or tracing. Record a trace log in RAM on target that can be downloaded to host for post-analyze.
Cc. @rampant1018
@southernbear Did you encounter alignment related issues as @georgekang described? In branch [user-test](https://github.com/southernbear/f9-kernel/tree/user-test), there are already some address spaces manipulation fixes.
@angelooribeiro, the first link is updated as you wish.
Reference: - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56620 - https://sourceware.org/ml/newlib/2013/msg00419.html - http://www.keil.com/forum/22856/ - http://cboard.cprogramming.com/c-programming/154333-fast-memcpy-alternative-32-bit-embedded-processor-posted-just-fyi-fwiw.html
lk implements arm-m optimized memcpy and memset routines in git commit https://github.com/travisg/lk/commit/33b94d9b97ef835d68aca2e5edb54f7267c70625
It looks so weird. Can you explain?
@gapry In order to clarify the performance gain, please compare the optimized memcpy routines with plain byte-oriented C version.