Hi,
Just for the kicks I decided to try cross-building for arm-none-eabi
with newlib.
Basically, LIBS="-lc -lnosys" ./configure --host=arm-none-eabi,
disabling eventloop and file jimtcl modules (and making its final
linking step manually since it doesn't honour LIBS), adding few stubs,
I got it built and linking. Neither TCP/IP stack nor USB ACM are
included but adding lwIP for ethernet version or libopencm3 usb
library for a USB variant wouldn't be too hard.
The conclusion so far: full OpenOCD seems to be too big to fit
embedded flash of current commonly used microcontrollers but it also
provides unmatched functionality. Sacrificing some features it can
probably be made to work on 1M devices such as STM32F40[57]; an
STM32F427 (2M) board might be able to run it all.
$ arm-none-eabi-size openocd
text data bss dec hex filename
1406588 16384 100480 1523452 173efc openocd
$ arm-none-eabi-size .libs/libopenocd.a
text data bss dec hex filename
1068 0 1 1069 42d libopenocd_la-hello.o (ex
.libs/libopenocd.a)
2592 1 4 2597 a25 libopenocd_la-openocd.o (ex
.libs/libopenocd.a)
12576 0 0 12576 3120 libopenocd_la-startup_tcl.o (ex
.libs/libopenocd.a)
7940 8 4 7952 1f10 xsvf.o (ex .libs/libopenocd.a)
13280 80 228 13588 3514 svf.o (ex .libs/libopenocd.a)
1224 0 0 1224 4c8 xilinx_bit.o (ex .libs/libopenocd.a)
2084 0 8 2092 82c pld.o (ex .libs/libopenocd.a)
1692 16 0 1708 6ac virtex2.o (ex .libs/libopenocd.a)
1708 8 0 1716 6b4 interface.o (ex .libs/libopenocd.a)
15064 16 1 15081 3ae9 tcl.o (ex .libs/libopenocd.a)
4 8 0 12 c interfaces.o (ex .libs/libopenocd.a)
2252 0 0 2252 8cc libocdjtagdrivers_la-bitbang.o (ex
.libs/libopenocd.a)
3044 0 12 3056 bf0 libocdjtagdrivers_la-driver.o (ex
.libs/libopenocd.a)
16700 40 64 16804 41a4 core.o (ex .libs/libopenocd.a)
1044 4 4 1052 41c commands.o (ex .libs/libopenocd.a)
5384 8 0 5392 1510 adapter.o (ex .libs/libopenocd.a)
4472 100 36 4608 1200 libocdjtagdrivers_la-bcm2835gpio.o (ex
.libs/libopenocd.a)
2876 0 12 2888 b48 transport.o (ex .libs/libopenocd.a)
7632 1816 0 9448 24e8 lt2-core.o (ex .libs/libopenocd.a)
12104 24 8 12136 2f68 mflash.o (ex .libs/libopenocd.a)
28612 52 0 28664 6ff8 cfi.o (ex .libs/libopenocd.a)
804 0 0 804 324 ecc.o (ex .libs/libopenocd.a)
6584 52 0 6636 19ec fm3.o (ex .libs/libopenocd.a)
4532 52 0 4584 11e8 mdr.o (ex .libs/libopenocd.a)
5464 60 8 5532 159c mx3.o (ex .libs/libopenocd.a)
8608 60 8 8676 21e4 mxc.o (ex .libs/libopenocd.a)
2560 52 0 2612 a34 ocl.o (ex .libs/libopenocd.a)
11128 0 1 11129 2b79 lt1-tcl.o (ex .libs/libopenocd.a)
452 864 0 1316 524 spi.o (ex .libs/libopenocd.a)
200 0 0 200 c8 drivers.o (ex .libs/libopenocd.a)
10008 52 0 10060 274c kinetis.o (ex .libs/libopenocd.a)
8016 52 0 8068 1f84 efm32.o (ex .libs/libopenocd.a)
6964 52 0 7016 1b68 em357.o (ex .libs/libopenocd.a)
1092 52 0 1144 478 virtual.o (ex .libs/libopenocd.a)
25464 52 8 25524 63b4 at91sam3.o (ex .libs/libopenocd.a)
20992 52 8 21052 523c at91sam4.o (ex .libs/libopenocd.a)
10288 52 0 10340 2864 at91sam7.o (ex .libs/libopenocd.a)
5400 60 0 5460 1554 at91sam9.o (ex .libs/libopenocd.a)
1880 560 0 2440 988 fileio.o (ex .libs/libopenocd.a)
604 1440 0 2044 7fc non_cfi.o (ex .libs/libopenocd.a)
13360 56 65560 78976 13480 tms470.o (ex .libs/libopenocd.a)
3788 304 0 4092 ffc avrf.o (ex .libs/libopenocd.a)
5780 52 0 5832 16c8 str7x.o (ex .libs/libopenocd.a)
5248 56 0 5304 14b8 str9x.o (ex .libs/libopenocd.a)
6264 0 4 6268 187c lt3-core.o (ex .libs/libopenocd.a)
208 0 0 208 d0 driver.o (ex .libs/libopenocd.a)
14244 52 0 14296 37d8 stellaris.o (ex .libs/libopenocd.a)
160 0 0 160 a0 common.o (ex .libs/libopenocd.a)
824 52 0 876 36c faux.o (ex .libs/libopenocd.a)
8932 52 0 8984 2318 str9xpec.o (ex .libs/libopenocd.a)
2708 52 0 2760 ac8 mini51.o (ex .libs/libopenocd.a)
7188 52 0 7240 1c48 stm32lx.o (ex .libs/libopenocd.a)
72 60 0 132 84 nonce.o (ex .libs/libopenocd.a)
5284 60 0 5344 14e0 davinci.o (ex .libs/libopenocd.a)
12596 52 0 12648 3168 stm32f1x.o (ex .libs/libopenocd.a)
8196 52 0 8248 2038 stm32f2x.o (ex .libs/libopenocd.a)
8676 52 0 8728 2218 lpc2000.o (ex .libs/libopenocd.a)
11448 52 0 11500 2cec lpc2900.o (ex .libs/libopenocd.a)
2780 52 0 2832 b10 lpc288x.o (ex .libs/libopenocd.a)
12620 60 0 12680 3188 lpc3180.o (ex .libs/libopenocd.a)
18312 180 5216 23708 5c9c lpc32xx.o (ex .libs/libopenocd.a)
5972 52 0 6024 1788 nuc1x.o (ex .libs/libopenocd.a)
1668 0 0 1668 684 arm_io.o (ex .libs/libopenocd.a)
1344 52 0 1396 574 dsp5680xx_flash.o (ex
.libs/libopenocd.a)
1200 60 0 1260 4ec nuc910.o (ex .libs/libopenocd.a)
8600 100 0 8700 21fc lpcspifi.o (ex .libs/libopenocd.a)
560 0 6144 6704 1a30 ecc_kw.o (ex .libs/libopenocd.a)
8144 268 0 8412 20dc pic32mx.o (ex .libs/libopenocd.a)
3444 52 0 3496 da8 aduc702x.o (ex .libs/libopenocd.a)
7200 0 1 7201 1c21 lt4-lt1-tcl.o (ex .libs/libopenocd.a)
1036 60 0 1096 448 orion.o (ex .libs/libopenocd.a)
4844 100 0 4944 1350 stmsmi.o (ex .libs/libopenocd.a)
640 60 0 700 2bc s3c2410.o (ex .libs/libopenocd.a)
152 60 0 212 d4 s3c2412.o (ex .libs/libopenocd.a)
1032 60 0 1092 444 s3c2440.o (ex .libs/libopenocd.a)
152 60 0 212 d4 s3c2443.o (ex .libs/libopenocd.a)
888 0 0 888 378 s3c24xx.o (ex .libs/libopenocd.a)
156 60 0 216 d8 s3c6400.o (ex .libs/libopenocd.a)
15120 168 4 15292 3bbc dsp5680xx.o (ex .libs/libopenocd.a)
684 28 0 712 2c8 etm_dummy.o (ex .libs/libopenocd.a)
11832 0 0 11832 2e38 nds32_cmd.o (ex .libs/libopenocd.a)
4540 192 0 4732 127c nds32_v3m.o (ex .libs/libopenocd.a)
12948 176 4100 17224 4348 nds32_reg.o (ex .libs/libopenocd.a)
7768 168 1 7937 1f01 hla_target.o (ex .libs/libopenocd.a)
316 64 0 380 17c nds32_tlb.o (ex .libs/libopenocd.a)
568 0 0 568 238 arm_jtag.o (ex .libs/libopenocd.a)
4252 168 0 4420 1144 arm720t.o (ex .libs/libopenocd.a)
6320 28 0 6348 18cc etb.o (ex .libs/libopenocd.a)
21696 0 0 21696 54c0 etm.o (ex .libs/libopenocd.a)
6072 0 0 6072 17b8 arm11_dbgtap.o (ex .libs/libopenocd.a)
332 0 0 332 14c smp.o (ex .libs/libopenocd.a)
12076 168 0 12244 2fd4 arm920t.o (ex .libs/libopenocd.a)
5796 168 1 5965 174d arm946e.o (ex .libs/libopenocd.a)
1748 168 0 1916 77c arm966e.o (ex .libs/libopenocd.a)
148 0 0 148 94 algorithm.o (ex .libs/libopenocd.a)
7436 336 0 7772 1e5c feroceon.o (ex .libs/libopenocd.a)
2924 168 0 3092 c14 fa526.o (ex .libs/libopenocd.a)
1180 0 0 1180 49c armv4_5_mmu.o (ex .libs/libopenocd.a)
3320 0 0 3320 cf8 adi_v5_jtag.o (ex .libs/libopenocd.a)
33068 0 0 33068 812c nds32_disassembler.o (ex
.libs/libopenocd.a)
4864 168 0 5032 13a8 avr32_ap7k.o (ex .libs/libopenocd.a)
136 168 0 304 130 testee.o (ex .libs/libopenocd.a)
4652 0 0 4652 122c arm_simulator.o (ex .libs/libopenocd.a)
25028 168 0 25196 626c arm7tdmi.o (ex .libs/libopenocd.a)
1312 168 0 1480 5c8 avrt.o (ex .libs/libopenocd.a)
5396 0 40 5436 153c nds32_v3_common.o (ex
.libs/libopenocd.a)
16312 0 0 16312 3fb8 arm_adi_v5.o (ex .libs/libopenocd.a)
15752 468 0 16220 3f5c dsp563xx.o (ex .libs/libopenocd.a)
2616 0 0 2616 a38 avr32_jtag.o (ex .libs/libopenocd.a)
5152 0 0 5152 1420 embeddedice.o (ex .libs/libopenocd.a)
22316 44 0 22360 5758 nds32.o (ex .libs/libopenocd.a)
1856 0 0 1856 740 avr32_mem.o (ex .libs/libopenocd.a)
1660 0 0 1660 67c trace.o (ex .libs/libopenocd.a)
432 0 0 432 1b0 avr32_regs.o (ex .libs/libopenocd.a)
35088 168 0 35256 89b8 xscale.o (ex .libs/libopenocd.a)
12160 168 0 12328 3028 mips_m4k.o (ex .libs/libopenocd.a)
4388 0 0 4388 1124 mips_ejtag.o (ex .libs/libopenocd.a)
2348 0 8 2356 934 target_request.o (ex .libs/libopenocd.a)
7508 168 0 7676 1dfc arm926ejs.o (ex .libs/libopenocd.a)
7376 44 4 7424 1d00 mips32.o (ex .libs/libopenocd.a)
9688 0 0 9688 25d8 mips32_pracc.o (ex .libs/libopenocd.a)
736 0 0 736 2e0 armv4_5_cache.o (ex .libs/libopenocd.a)
7700 168 0 7868 1ebc arm9tdmi.o (ex .libs/libopenocd.a)
7064 0 0 7064 1b98 armv7a.o (ex .libs/libopenocd.a)
7376 0 32 7408 1cf0 armv7m.o (ex .libs/libopenocd.a)
6288 0 0 6288 1890 arm_dpm.o (ex .libs/libopenocd.a)
5108 0 4 5112 13f8 breakpoints.o (ex .libs/libopenocd.a)
55408 108 80 55596 d92c target.o (ex .libs/libopenocd.a)
29120 0 0 29120 71c0 arm_disassembler.o (ex
.libs/libopenocd.a)
13412 168 0 13580 350c arm11.o (ex .libs/libopenocd.a)
7308 168 32 7508 1d54 nds32_v2.o (ex .libs/libopenocd.a)
4344 192 0 4536 11b8 nds32_v3.o (ex .libs/libopenocd.a)
9744 0 1028 10772 2a14 image.o (ex .libs/libopenocd.a)
2068 0 0 2068 814 mips32_dmaacc.o (ex .libs/libopenocd.a)
1524 0 0 1524 5f4 dsp563xx_once.o (ex .libs/libopenocd.a)
20644 336 0 20980 51f4 cortex_a.o (ex .libs/libopenocd.a)
19316 336 0 19652 4cc4 cortex_m.o (ex .libs/libopenocd.a)
1644 0 0 1644 66c nds32_aice.o (ex .libs/libopenocd.a)
2364 20 0 2384 950 adi_v5_swd.o (ex .libs/libopenocd.a)
268 0 0 268 10c register.o (ex .libs/libopenocd.a)
14664 92 16 14772 39b4 armv4_5.o (ex .libs/libopenocd.a)
26156 0 20 26176 6640 arm7_9_common.o (ex .libs/libopenocd.a)
4252 0 0 4252 109c arm_semihosting.o (ex
.libs/libopenocd.a)
26064 12 16416 42492 a5fc libserver_la-gdb_server.o (ex
.libs/libopenocd.a)
4916 0 4 4920 1338 libserver_la-telnet_server.o (ex
.libs/libopenocd.a)
8 0 0 8 8 libserver_la-server_stubs.o (ex
.libs/libopenocd.a)
1384 0 4 1388 56c libserver_la-tcl_server.o (ex
.libs/libopenocd.a)
1012 0 8 1020 3fc libserver_la-server.o (ex
.libs/libopenocd.a)
3852 36 0 3888 f30 librtos_la-FreeRTOS.o (ex
.libs/libopenocd.a)
2996 112 0 3108 c24 librtos_la-ThreadX.o (ex
.libs/libopenocd.a)
112 0 0 112 70 librtos_la-rtos_ecos_stackings.o (ex
.libs/libopenocd.a)
112 0 0 112 70 librtos_la-rtos_embkernel_stackings.o
(ex .libs/libopenocd.a)
11736 0 0 11736 2dd8 librtos_la-linux.o (ex
.libs/libopenocd.a)
112 0 0 112 70 librtos_la-rtos_chibios_stackings.o (ex
.libs/libopenocd.a)
3080 76 0 3156 c54 librtos_la-embKernel.o (ex
.libs/libopenocd.a)
2808 48 0 2856 b28 librtos_la-eCos.o (ex
.libs/libopenocd.a)
4800 28 0 4828 12dc librtos_la-rtos.o (ex
.libs/libopenocd.a)
376 0 0 376 178 librtos_la-rtos_standard_stackings.o
(ex .libs/libopenocd.a)
4548 120 0 4668 123c librtos_la-ChibiOS.o (ex
.libs/libopenocd.a)
13852 0 4 13856 3620 libhelper_la-command.o (ex
.libs/libopenocd.a)
628 0 0 628 274 libhelper_la-time_support.o (ex
.libs/libopenocd.a)
2768 100 40 2908 b5c libhelper_la-log.o (ex
.libs/libopenocd.a)
320 0 0 320 140 libhelper_la-util.o (ex
.libs/libopenocd.a)
1904 0 8 1912 778 libhelper_la-options.o (ex
.libs/libopenocd.a)
1976 0 4 1980 7bc libhelper_la-jim-nvp.o (ex
.libs/libopenocd.a)
2456 0 0 2456 998 libhelper_la-binarybuffer.o (ex
.libs/libopenocd.a)
164 0 0 164 a4 libhelper_la-ioutil_stubs.o (ex
.libs/libopenocd.a)
1556 0 0 1556 614 libhelper_la-fileio.o (ex
.libs/libopenocd.a)
92 0 0 92 5c libhelper_la-time_support_common.o (ex
.libs/libopenocd.a)
872 0 16 888 378 libhelper_la-configuration.o (ex
.libs/libopenocd.a)
80 0 0 80 50 libhelper_la-replacements.o (ex
.libs/libopenocd.a)
$ arm-none-eabi-size ../jimtcl/libjim.a
text data bss dec hex filename
136 0 0 136 88 _load-static-exts.o (ex
../jimtcl/libjim.a)
2136 0 0 2136 858 jim-subcmd.o (ex ../jimtcl/libjim.a)
768 0 0 768 300 jim-interactive.o (ex
../jimtcl/libjim.a)
2668 0 0 2668 a6c jim-format.o (ex ../jimtcl/libjim.a)
107172 0 40 107212 1a2cc jim.o (ex ../jimtcl/libjim.a)
192 0 0 192 c0 utf8.o (ex ../jimtcl/libjim.a)
9272 0 0 9272 2438 jimregexp.o (ex ../jimtcl/libjim.a)
4800 0 0 4800 12c0 jim-aio.o (ex ../jimtcl/libjim.a)
1528 0 0 1528 5f8 jim-array.o (ex ../jimtcl/libjim.a)
968 0 0 968 3c8 jim-clock.o (ex ../jimtcl/libjim.a)
744 0 0 744 2e8 jim-history.o (ex ../jimtcl/libjim.a)
2432 0 0 2432 980 jim-namespace.o (ex ../jimtcl/libjim.a)
3344 0 0 3344 d10 jim-pack.o (ex ../jimtcl/libjim.a)
1656 0 0 1656 678 jim-package.o (ex ../jimtcl/libjim.a)
3684 0 0 3684 e64 jim-regexp.o (ex ../jimtcl/libjim.a)
1920 0 0 1920 780 jim-tclprefix.o (ex ../jimtcl/libjim.a)
5292 0 0 5292 14ac binary.o (ex ../jimtcl/libjim.a)
2780 0 0 2780 adc nshelper.o (ex ../jimtcl/libjim.a)
2252 0 0 2252 8cc oo.o (ex ../jimtcl/libjim.a)
2136 0 0 2136 858 stdlib.o (ex ../jimtcl/libjim.a)
4648 0 0 4648 1228 tclcompat.o (ex ../jimtcl/libjim.a)
2384 0 0 2384 950 tree.o (ex ../jimtcl/libjim.a)
--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:[email protected]
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel