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

Reply via email to