User Tools

Site Tools


tools

http://kaiwantech.wordpress.com/2013/12/28/linux-tools-for-the-serious-systems-programmer/

Linker scripts

  • kernel: arch/$(ARCH)/kernel/vmlinux.lds
  • userland, embedded in the toolchain, see strace ld –verbose

Memory

Real-time

Debugging

OpenOCD

Profiling

http://elinux.org/Kernel_Trace_Systems

http://rostedt.homelinux.com/kernelshark/

Measuring execution time in ARM Cortex A8

Profiling code on ARM7

from stackoverflow:

  valgrind (only supported on cortex ARM processors.. boo)
  mprof (not so hot with threads?)
  gprof (not so hot with threads?)
  oprofile (requires kernel mods, but most modern kernels have it. I've used this under ARM.
  systemtap (recently ported to arm, looks awesome - like dtrace for Linux)
  strace and ltrace can actually be useful sometimes, although very high-level
  iostat et all as well if you want to kick it old school.
  Fair amount of information in /proc/ and /sys if you dig
  ioapps - IO tracing
  lsof is useful for tracking stuck sockets and file handles
  systat
  pmap
  iptraf
  tcpdump
  perftools - CPU and memory profiling
  bootchart
  QEMU can host ARM kernels / binaries, and can be instrumented from outside. It's proven useful to me a couple times.
  Manual instrumentation using the gcc hooks
  void __cyg_profile_func_enter (void *, void *) __attribute__((no_instrument_function)); void __cyg_profile_func_exit (void *, void *) __attribute__((no_instrument_function));

http://dtrace.org/blogs/brendan/2011/12/16/flame-graphs/

In Linux, ARM MPU counters profile information are normally accessed through the kernel via the OProfile tool or the Linux perf events framework.

latency plots

Static analysis

Compiling the kernel

Useful in embedded systems, as only the strongly recommended options are set to Y:

make allnoconfig   # useful in embedded systems, setting the strongly recommended options to Y
make clean         # remove most generated files but keep config
make mrproper      # remove all generated files
make distclean     # also remove the editor backup and patch reject files

make oldcondif
make
make LOADADDR=0x80008000 uImage
make dtbs

Patches

  • quilt, tools to manage a stack of patches
  • git
tools.txt · Last modified: by admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki