embedded - ARM Development on Linux -


i have purchased tiva c series launchpad tm4c123g evaluation kit texas instruments. kit contains small pcb arm cortex m4f microcontroller. want start writing software microcontroller. used program avr 8-bit microcontrollers using avr studio on windows. heard shoud easy program arm-based microcontrollers on linux, , since linux main platform, simple ide work more or less used avr.

for several days have been searching ide , tools job. surprise, few run on linux, , none open source or freeware. can true? not want spend several hundred dollars try out programming cortex m4f. nor want learn 1 ide , later when found out not enough or expensive. used linux , open source way of doing things , shocked nobody seem doing serious embedded arm programming open source tools on linux. please correct me if wrong.

i have no plans running linux on cortex m4f - want program normal microcontroller.

texas instruments recommends 1 of following tool chains on cover of evaluation kit:

  • code composer studio ide: full functional board locked
  • keil: 32kb address limited
  • iar: 32kb address limited
  • mentor embedded sourcery codebench: 30-day full functional

i have been recommended red studio code_red.

neither open source or free , have limitations. seems me code composer studio , red studio linux compatible.

i stumbled upon yet product, rowley crossworks, linux compatible still commercial , expensive.

is true there no open source alternative? of products seem use eclipse , gcc, 1 should able without these commercial packages, right? can't find tutorial or guide explaining how set embedded arm programming. need know how program device after compiling.

i want started soon. advice , ideas appreciated :-)

it's same, no matter eval board have: stm32 discovery, lpcxpresso, ti launchpads. cheap, recommended ides limited: code size limited, windows only, or bound specific linux distribution.

in experience choice depends on long-term goals:

  • do want share code avr 8-bit (or pic32, renesas rx 32, ...)?
  • is mid-term/long-term goal have build system based on make?
  • do need tab-completion and/or integrated debugger?
  • do want try other eval boards in future (without being forced install yet ide)?

or want 1 , running quickly. in case use 1 of recommended ides impression.

on other hand, 32-bit microcontrollers have used (cortex-m0/3/4, pic32, renesas rx) can programmed gcc. far know code red, mentor, , mplabx use gcc (or modified gcc).

so there possibility use eclipse makefile project, , gcc. have tried twice, did not work me, because share libraries between different targets, , found difficult pass around defines in eclipse.

so ide makefile, emacs, , gcc, , have switched using c++: might advantage of using gcc.

both possibilities (eclipse makefile project or editor make) not "off shelf": require time, patience, , favourite internet search engine.

update

i not aware of complete tutorial on how setup gcc + make based environment, describe basic steps did years ago (with changes).

the following steps stm32 specific:

  • get 1 of discovery boards, example stm32 value line discovery.

  • get flash utility: using stlink (git clone https://github.com/texane/stlink.git). includes gdb backend well.

  • there various examples available, search "stm32vl discovery blink" (i cannot recommend 1 here, 1 used has vanished)

as alternative (or follow-up): peripheral firmware examples

  • you find gnu ld compatible linker script in project/examples/gpiotoggle/truestudio/stm32_flash.ld

  • you find gnu compatible startup in libraries/cmsis/cm3/devicesupport/st/stm32f10x/startup/truestudio/startup_stm32f10x_ld_vl.s

  • you find other required library include files , sources in .zip archive well

  • look @ gpiotoggle project (project/examples/gpiotoggle)

  • write makefile compile, link, , flash


Comments

Popular posts from this blog

html5 - What is breaking my page when printing? -

c# - must be a non-abstract type with a public parameterless constructor in redis -

ajax - PHP/JSON Login script (Twitter style) not setting sessions -