Author Topic: ARM controller  (Read 12707 times)

0 Members and 1 Guest are viewing this topic.

Offline remixed123

  • Regular Contributor
  • *
  • Posts: 59
  • Country: au
    • Github
Re: ARM controller
« Reply #25 on: September 10, 2014, 07:04:57 am »
If you are looking at ARM and also want Wi-Fi easily working together, then check out TI's CC3200 LaunchPad - and http://www.ti.com/ww/en/launchpad/launchpads-connected-cc3200-launchxl.html?DCMP=univ-en&HQS=univ-energiaccs6-univblog-20140902-lpcc3200-en#tabs

Great for IoT, Home Automation or any device that requires Wi-Fi connectivity, and the MCU and Wi-Fi are all on a single chip.
LightServer - Mobile App controlled, Wi-Fi enabled RGB lighting with music synchronized effects and much more -  https://www.hackster.io/remixed123/lightserver/
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26878
  • Country: nl
    • NCT Developments
Re: ARM controller
« Reply #26 on: September 10, 2014, 07:27:24 am »
Now that looks very neat! I'm wondering how mature the example code is though.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Brutte

  • Frequent Contributor
  • **
  • Posts: 614
Re: ARM controller
« Reply #27 on: September 10, 2014, 11:19:07 am »
Quote
What I do find strange however is (..) with an expensive ARM STM32F I can only use 8
On ARMs you can use as many software program breakpoints as you like. No problem to fill all the flash and/or ram with asm("bkpt 00");.
In the default ARMv7M configuration there are 6 program breakpoints (these catch on address of instruction, fetch), 2 data bus ~patches (these catch on some specific literal, 0xDEADBEEF for example) and 4 watchpoints (these are configurable, can catch on instruction fetch, data r,w,rw, from some range, masked values etc,). The ARMv6M are stripped versions (w.r.t. mentioned resources) and offer reduced functionality and of about half of that.

Your debugger/dongle can be a dumb one or it can be a smartass. Do not blame the uC for that.
 

Offline mikerj

  • Super Contributor
  • ***
  • Posts: 3237
  • Country: gb
Re: ARM controller
« Reply #28 on: September 10, 2014, 12:11:48 pm »
I guess every programmer has its own preferred way of working.
My viewpoint is that PC debugging is very usefull for utils/algos/services that are higher up in the architecture,

Definitely.  If I'm developing a complex algorithm/state machine etc. then I tend to do it on a PC before running it on the micro.  I have even managed to run nearly a whole embedded application on a PC by simply running some very basic firmware on the target to read/write peripherals via a COM port.  Not suitable for timing critical stuff, though I was running multiple PID loops running at 100Hz with no problem.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26878
  • Country: nl
    • NCT Developments
Re: ARM controller
« Reply #29 on: September 10, 2014, 03:17:46 pm »
Quote
What I do find strange however is (..) with an expensive ARM STM32F I can only use 8
On ARMs you can use as many software program breakpoints as you like. No problem to fill all the flash and/or ram with asm("bkpt 00");.
It is not that straightforward. In order to insert a software breakpoint in flash you'll need to erase & reprogram the flash. A lot of debuggers can run code from SRAM but the problem is that there usually is only a little bit of SRAM compared to the amount of flash.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Brutte

  • Frequent Contributor
  • **
  • Posts: 614
Re: ARM controller
« Reply #30 on: September 10, 2014, 03:47:07 pm »
Quote
It is not that straightforward.
I didn't say it is straightforward. It is just that inserting software breakpoints is possible and there are no internal uC limitations for the count or location of those. With STM8, AVR8 and AFAIK even (some) PIC8 can do that. Also ARMv7M can (in both flash and sram). I am pretty sure some companies (keil? lauterbach?) offer debuggers that can insert software breakpoints in flash. Doesn't OpenOCD or texane-stlink already support that?

If you do not like the idea of constant reprogramming of flash during development then you can try SplitCode.
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 16604
  • Country: us
  • DavidH
Re: ARM controller
« Reply #31 on: September 10, 2014, 04:47:24 pm »
Interrupts -> oscilloscope & pin
USB stack (or any protocol stack for that matter) -> test bench on a PC (*)

(*) You can test all the nasty error conditions which may occur as well this way.

These are my favorite methods.  Dedicating a couple of output pins to drive oscilloscope vertical inputs is great for precise timing and using a simple interface, I prefer RS-232, to send real time diagnostic data to a terminal is extremely useful.

Another alternative is to use an SPI connection to a custom but simple display and keypad run from either the main program loop or an interrupt service routine.
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: ARM controller
« Reply #32 on: September 10, 2014, 10:22:53 pm »
The latest debugging mechanism on the cortex chips is RTT. Much faster than SWO, and requires no additional connection. So two lines on most chips and a single wire on some chips, plus ground, is all that's needed.

================================
https://dannyelectronics.wordpress.com/
 

Offline enggricha

  • Newbie
  • Posts: 5
  • Country: in
  • Just my suggestions...
    • Ingens Tech, Chennai
Re: ARM controller
« Reply #33 on: September 22, 2014, 07:19:24 pm »
Not sure what has transpired here, but I recently wrote a article for starters with ARM controllers for my students. This was oriented towards students looking to start projects with ARM, but you might find this useful

http://www.ingenstech.com/arm-based-projects/
 

Online Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: ARM controller
« Reply #34 on: September 26, 2014, 12:22:32 am »
Take a look at the NXP line of Cortex-M3 and M4 parts. For a development environment, LPCXpresso is free and allows up to 256K of code. For JTAG, the LPC-Link 2 works very well and is only USD$20.
Complexity is the number-one enemy of high-quality code.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf