New AVR Assembler IDE with unique features

Go To Last Post
42 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello All,

I've been working a new, and in some ways very unique editor/assembler Interactive Development Environment for AVR's. It's called "IntAsm-AVR" and was born both of frustration with AVRStudio's many bugs, and a desire to create an IDE with some wonderful new features.

It's about 90-95% done, though there are a number of areas that still need to be fleshed out. And of course there will be bugs, and the cosmetics need attention too. I have plans for many more features in future versions.

Although not yet complete, I'd like to get some feedback on what I've done so far to gauge how much effort I should continue to put towards it.

Please check it out at:-
http://members.optushome.com.au/...
And let me know what you think...

Cheers,
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What bugs are you frustrated with in AVR Studio?
Have you contacted Atmel about these bugs?
Did they say they were going to correct them?
Is there any particular reason for reinventing the wheel?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Did you read to the end of the sentence?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

intabits wrote:
It's called "IntAsm-AVR" and was born both of frustration with AVRStudio's many bugs, and a desire to create an IDE with some wonderful new features.

That's why I asked if you contacted Atmel about the "many bugs" to see if they are being fixed.

Also, what are the "wonderful new features" about this IDE?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

When I first began using AVRStudio, I noticed a few issues, and wanting to be helpful to the developers for providing this tool for free, decided to note down the problems I found.
But in not too long, I had over 20 defects on my list, and was becoming quite annoyed by the problems I was experiencing. I decided that it had got beyond a joke - that version three point something of a production application should still have so many defects. Many were obvious, and the developers must have been aware of most of them. In any case, I was no longer feeling kindly disposed towards AVRStudio, and discarded my list.
In subsequent use, I continued to find new problems with AVRStudio - for a while, almost every time I used it. I had long before decided that I could do better, and would. Hence IntAsm.

Despite the above comments which may seem negative towards Atmel and AVRStudio, I'm not trying to denigrate them. After all, it does do the job, and it is free. Just not something I was happy with. But I was inspired to try producing something closer to my ideal assembler development system.

Which brings us to the "wonderful new features".
Once again, did you look?
* Easily display information about program symbols at design time:-
- Type, Description, Reference count, Register numbers, Location.
* Easily navigate to where symbols are defined and referenced.
* Display macro expansions at design time.
* Identification and display of all subroutines, again with navigation to definition and call references.
* Greater speed and better error messages than AVRASM.
* One click assemble and download to target.
* No need for *def.inc files, XML files, or Windows registry entries.

I'm just getting started. Much more is planned for the future:-
* Built-in macros/pseudo instructions, with capabilities not possible with normal macros.
- EG: Set/Clear I/O port bit, without needing to remember which port it's on.
* Facilities to make definitions of interrupt vectors and I/O ports clear and simple.
* Similar facilities for setting up timers, uarts, adc etc.
* Program flow analysis to detect obscure errors and unreachable code and to provide other useful information.
- EG: Click on a subroutine name in the source and see all the registers that it (and everything it calls) uses and alters.
* Stack size estimation.
* Nested macro calls.
* Conditional assembly, including conditions based on macro parameters.
* Introduction of some high level language constructs.
* Object code optimization.
* Local procedure variables and automatic register allocation.

In summary, assembly language development requires the programmer to keep track of a myriad of obscure details. My aim is to eliminate the need to do so whenever possible, and where not, at least make all required information easily available without losing the context of the task at hand. A further aim is to make programming easier by improving on some language constructs that are more clumsy than they need to be.

The version available now is very much beta, and no doubt has many bugs. At the moment I'm just trying to see if others also see value in such features as descibed above.
And I'm hoping responses such as yours will be atypical.

Cheers,
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Rob,

I never use the AVRStudio Assembler, as the GCC one is much nicer, and it is much easier to interface to C (and the other way) when needed.
I know AVRStudio sucks, but I think you've been either very unlucky or is very sensitive.

It looks like a great tool you've made, it's just a shame you went your own way.
We now have about 5 different IDE's for AVR made by various freaks. All is totally different and incompatible, so we will soon have 5 tools that will silently but surely fall away and be forgotten, as has happened many times before.
Wouldn't it have been great if you could have worked together and made a tool that would smacked the world with awe ?

/Jesper
http://www.yampp.com
The quick black AVR jumped over the lazy PIC.
What boots up, must come down.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Jesper,
IntAsm is compatible with AVRASM Version 1, with some minor restrictions, though future extensions will obviously reduce backwards compatibility.
But incompaibilty (with existing versions) is inevtiable as things progress, and even more so among multiple tools. I certainly don't agree that creating my idea of the best tool is a shame, and collaboration with others was never my aim. If others like my choices, they can benefit, otherwise they ignore it.
A choice of tools isn't a bad thing - you yourself have benefitted from it...
Even if no-one else is interested, I'll continue using and devloping IntAsm to get the tool that does all that I want. At least I'll be awed ;-)
Cheers,
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm wondering why are all WinAVR IDEs necessary? Every one has a favorite editor - all you need is makefile wizard. Like MFile, but much more flexible and powerful.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hey, Your IDE is really cool!!
Its got all the pump I ever will require. I have used KamAVR. Kindly if possible do implement the GUI features like that.
I too am a VC++ programmer. But the IDE u have created is going to take a hell lot of programming. I too want to do something like that
for my universal programmer project. I just want to know how you managed those callout boxes showing all the info and that too in color.
Also I am intested in the custom control for the Tab Panel that u use.
I am currently using Atmel Assembler 2 which is also good but not like avra.
Is that complatible to your prog?

AVR Rulez...;-)

Warm Regards,
Boseji
http://m8051.blogspot.com/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm all with you on that, brberie. I use Visual Studio for all my programming projects, no matter what language or target system.
I rarely use assembler, but if I do, it is also written within the VS tool and take advantage of all it's bebefits, version control e.t.c.
Works like a dream, no reason to invent the wheel for the umpteenth time. I'd rather get some work done. ;-)

/Jesper
http://www.yampp.com
The quick black AVR jumped over the lazy PIC.
What boots up, must come down.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Guys,

boseji:

>>Hey, Your IDE is really cool!!
>>Its got all the pump I ever will require. I have used KamAVR. Kindly if possible do implement the GUI features like that.

Thanks, I don't know KamAVR, but I'll take a look.

>>I too am a VC++ programmer. But the IDE u have created is going to take a hell lot of >>programming.

It's written in Delphi.

>>I too want to do something like that
>>for my universal programmer project. I just want to know how you managed those callout
>>boxes showing all the info and that too in color.

If you mean the "cartoon balloon" that appears when a symbol is clicked, it's just a component that shows an odd shaped window. It can hold anything, in this case, a few labels and a memo box.

>>Also I am intested in the custom control for the Tab Panel that u use.

It's just a normal TPageControl component. I just set the tab fonts based on file type (MAIN, DefInc, Include, Macro, None of the above)

>>I am currently using Atmel Assembler 2 which is also good but not like avra. Is that complatible to your prog?

No, IntAsm is not intended to be compatible with AVRASM. I've done just enough so that existing code will assemble with little or no modification. And of course, future extensions to IntAsm will not be compatible with AVRASM. Some features of AVRASM 2 and beyond may be included, but only if they fit in with the direction that IntAsm is taking.

brberie & jesper:

>>I'm wondering why are all WinAVR IDEs necessary? Every one has a favorite editor - all you need is makefile wizard. Like MFile, but much more flexible and powerful.

Sure, that makes good sense if you're happy with what can be done in the loosely connected editor and translator scenario. I'm trying to make something that does more than that.
The navigation and information display facilities, plus others, in what I'm doing require a much more initmate connection between the development interface and the language translator. They also require display and edit facilities other than just standard text.

>>Works like a dream, no reason to invent the wheel for the umpteenth time. I'd rather get some work done.

Then IntAsm isn't for you, but maybe it will be for others...
I'd rather this was my work!

Cheers,
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

PS. I forgot to mention, an updated version is available.
A number of small bugs fixed and some enhancements made.
A major bug that caused access violations is also fixed, the program is now much more robust.
http://members.optushome.com.au/...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The question is what is more useful/important. My bet is a makewizard.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well then Delphi controls are really cool.
I too now some Pascal programming and some one told me that Delphi is like that just being OOP.
Do see the KamAVR I think it too has been designed in Delphi since its controls are so good.
To my wish list for IntAsm is that it must have some good wizards and a decent startup. Actually when ever I run the program my winamp just squikes the music. I dont know whats the problem. Kindly try it out.

AVR Rulez...;-)

Warm Regards,
Boseji
http://m8051.blogspot.com/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I just had a look at KamAVR. Very pretty, though I could not get anything to show in the editor!?
IntAsm will get prettier too, but I want to concentrate more on functionality at the moment, cosmetics will come later.
I see the the KamAVR developer and I both had the same idea for the functionality, icon and placement of the button to show control characters. (No, I didn't pinch his idea, pure coincidence!)

>>To my wish list for IntAsm is that it must have some good wizards and a decent startup.
Please elaborate:-
Wizards for what?
What do you mean "decent startup"?

>>Actually when ever I run the program my winamp just squikes the music. I dont know whats >>the problem. Kindly try it out.
"winamp just squikes the music"? What does that mean?

Should this discussion be taken off-list? Anyone else interested?
In case you want: intabits@optushome.com.au (please put "intasm" in the subject line)
Cheers,
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well yes I do agree that the cosmettics ar the later part of the developments.
By the wizards I mean that if some bosy wants to control the SPI or TWI or ADC then your program will automatically generate the required initialization and API for getting the results directly.

AVR Rulez...;-)

Warm Regards,
Boseji
http://m8051.blogspot.com/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

OK. Yes, they are part of future plans, but a long way off yet. They're complex and heavily device dependant, so a lot of work to implement. But something similar (built-in macro, not a wizard) will be added soon to simplify I/O port initialization.
What about "decent startup" and the Winamp thing you mentioned?
Cheers,
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

By decent start up means show up a cool splash screen while opening. And the Winamp problem is that wen you prog is running and I hit the assemble it causes my winamp to stop for a few moments and then paly up again.

AVR Rulez...;-)

Warm Regards,
Boseji
http://m8051.blogspot.com/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

By decent start up means show up a cool splash screen while opening

Yes, the coolness of the splash screen is definitely one of the prime criteria that should be used to rank a tool that will be used every day in our work.

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I agree with theusch, the splash screen is cool enough as it is.

Re Winamp, a few yields in strategic places may help. I'll do that in the next update.

Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello

I was wondering if you are going to keep the IntASM free when you get all done as you want, I mean when you produce you first stable version, are you going to keep it free, or will make it as commercial stuff.

Thanks

Signature: We need more peripherals in DIP packages. Namely, USB, 12-bit ADC, 16-bit timer, cheaper tool as a programmer/debugger coz STK600 is expensive! Atmel Studio 5/6 sucks! coz it brings MS visual studio crap to AVR world..

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

metal wrote:
Hello

I was wondering if you are going to keep the IntASM free when you get all done as you want, I mean when you produce you first stable version, are you going to keep it free, or will make it as commercial stuff.

Thanks

Yes, I intend to make a free version of IntAsm always available.
*BUT*
I am struggling financially, so although I would make IntAsm anyway, I should be seriously attempting to gain some income from the hundreds of hours that are going into this project.

My business plan therefore goes something like:-

1/ Make a fully functional free version of the program that aims to be superior to other available tools (within areas of common functionality).

2/ Make a registered version for payment with further extended and advanced features.

3/ Accept voluntary donations from users who find the free version useful to them, and strongly insinuate that commercial users of the free version should feel obliged to donate.


Cheers,
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Updated beta version 1.0C is now available at:-

http://members.optushome.com.au/...

More bugs fixed.
Some enhancements.
Syntax extensions to: SBI CBI SBR CBR SBRS SBRC SBIS SBIC
Directives added: BIT
Pseudo instructions added: SETB CLRB
Built-in macros added: PUSHM POPM JBS JBC
Functions added: BITS

See help system for more information.

Examples of some new features:-

BIT directive and Instruction extensions.
The following code sequence:-

RdyBtn	BIT	PinB.4
RdyLED	BIT	PortB.6
;
Loop:        
                SBIS 	RdyBtn       	  ;Reflect button state to led
                CBI  	RdyLED
                SBIC 	RdyBtn
                SBI  	RdyLED	
                RJMP 	Loop

Is equivalent to, but simpler than:-

.EQU        RdyBtn=4  	
.EQU        RdyLED=6  	
;
Loop:        
                SBIS 	PinB,RdyBtn         ;Reflect button state to led
                CBI  	PortB,RdyLED
                SBIC 	PinB,RdyBtn
                SBI  	PortB,RdyLED	
                RJMP 	Loop		

PUSHM and POPM:-

               PUSHM	 R0,Temp,Status	;Push register group
;		
               POPM	 R0,Temp,Status	;Restore register group

Generates the sequence:-

                PUSH  R00              
                PUSH  Temp             
                PUSH  Status           
;
                POP   Status           
                POP   Temp             
                POP   R00
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

Well the new version is working fine.
Just for sake of knowledge whcih is the synaxing engine that you use.

Continue the good work!!

AVR Rulez...;-)

Warm Regards,
Boseji
http://m8051.blogspot.com/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

boseji wrote:

Just for sake of knowledge whcih is the synaxing engine that you use.
Hi,
Sorry for the delay in replying, I wanted to have an updated version ready first.

If you mean am I using some language processing software by a third party?
No, the source text processing and analysis, and the object code generation is entirely my own code. The only third party parts of IntAsm are 3 components: the SynEdit editor, the rounded buttons, and the serial comms.

An updated version is available now.

17/07/2005 Update to beta version 1.0D
Substantial internal rework done.
More bugs fixed.
Some minor enhancements.
Listing output improved.
Built-in macros added: $INITSTACK $INITPORTS

http://members.optushome.com.au/...

Cheers
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well thats cool!!
Might be you can write a new language of you own.;-)
If the syntaxing engine is so strong then you might have a chance to make the user code optimization which will be a very advanced feature that is not available in all the tools out currently.

AVR Rulez...;-)

Warm Regards,
Boseji
http://m8051.blogspot.com/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

boseji wrote:
Well thats cool!!
Might be you can write a new language of you own.;-)
If the syntaxing engine is so strong then you might have a chance to make the user code optimization which will be a very advanced feature that is not available in all the tools out currently.
Well, I've actually done that, for a Pascal-like language to run on an NEC V25 (like an 80188), though it generated an intermediate object for a simple virtual CPU, which the V25 then emulated. But in the same application, I added an AVR compiler for the same language, that generated true AVR object code. Optimization was a necessarily a large part of that, since recursive descent parsing unwinds into extremely inefficient and redundant code. The final optimized code was quite good, and it was fairly clever at register allocation, but it was only for the AT90S1200. I never got around to the more complex chips, and in the meantime started using assembler a lot, hence IntAsm now.
But there is no reason I couldn't revisit that project, and I probably will. It could also be easily be incorporated into IntAsm, allowing a clean mixture of Assembler and a High-Level language in one program. It could then optimize even pure assembler programs, though unless the coding was pretty bad, I doubt the gains would very large.

Cheers,
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hey, Thats really good. I too want to do some thing like that. I am develop something like that. Can you help me in this regard?

And can we take this conversation on mail if you dont mind.

AVR Rulez...;-)

Warm Regards,
Boseji
http://m8051.blogspot.com/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi :)

Your program looks very promising...
Glad to see you used delphi..I just love delphi!

You can see my rather lame delphi page here
http://www.geocities.com/gacarpe...

If I ever figure out these AVR chips I will put up
a lame AVR page too...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

[quoteYour program looks very promising...
Glad to see you used delphi..I just love delphi!

You can see my rather lame delphi page here
http://www.geocities.com/gacarpe...


Thanks. I'll make a new update available sometime in the next week. It still has many bugs and quirks, but is very usable, even now.
I'm working on three interrelated projects at the moment (mega8, tiny26 and tiny12) that talk to each other over a serial bus. Together with a two way switcher on my programming cable, jumping between projects in IntAsm with single-click downloading to each device as required, it's a joy to use.

I agree, Delphi is a fantastic development system. I use it for anything and everything on the PC, and it never disappoints. Those poor C-heads just don't know what they're missing!
Cheers,
Rob Storey

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Those poor C-heads just don't know what they're missing!

No words! Just letters...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm shocked at you!
I expected the patrons of this forum would be far too decent to see that interpretation...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello!

 

Your IDE seems to be really good for developing avr projects, but I 've a question, I 've never worked with an AVR just Pic, but I want to start using avr's, do you think your IDE is good for start working with avr's? otherwise what IDE do you recommend for starting programming avr's? I have read that you developed  this project because of the bugs from AVRstudio but it seems that you have experience programming microcontrollers

 

By the way I'm more interested on programming with assembler do you recommend an IDE?

 

*Do you honestly believe that the original poster will still be here after 10 years? Moderator*

 

Last Edited: Fri. Mar 13, 2015 - 12:06 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You're about 10 years too late to the party. Things have changed a bit in the meantime.
Avrstudio is now atmelstudio. You might want to give it a try.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What you've created looks great and would be a wonderful addition to the toolbox but as others have said there's already Atmel Studio.

 

I know you have put a lot of work into this and I'm just afraid no one will use it so my recommendation would be to create and extension for Atmel Studio that way you would have the best of both worlds.

I think it would make an awesome extension.

 

Just a thougt.

Happy Trails,

Mike

JaxCoder.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

WOW some OLD faces from the past!!!

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

js wrote:

WOW some OLD faces from the past!!!

Hey John... speak for yourself!  Me, I'm chronologically 63 years old, with the maturity of a 13 year old.  And... I plan on NEVER growing up and getting old!!!

You can avoid reality, for a while.  But you can't avoid the consequences of reality! - C.W. Livingston

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi All, I'm back!

 

Haven't been here in about 10 years, and only posting in this thread because of some (relatively) recent activity a year ago.

 

I haven't done much electronics in the last decade, or AVR programming. But I'd like to get back into it, and maybe update Intasm to make it better and fix some bugs.

The interest in it back then seemed only luke-warm, so I didn't bother too much much with it, and since my use was only occasional, decided to just live with its issues.

 

I also have a couple of very interesting and extremely useful assembler system projects from back then that I've never distributed, and I'm thinking that maybe I should.

For all the effort gone into it, I'd like to have made some money out of this stuff, but it's all a bit too hard to bother. Though I'm heartily sick of being poor all the time!

 

Might be a few weeks or more before anything appears, but something will.

 

Right now, I'm just starting to play with a small Arduino (Funduino mini), but having some trouble. Hence my return visit.

 

 

 

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Intabits,

 

We have a "Marketplace" forum now for commercial offerings.

 

Ross McKenzie ValuSoft Melbourne Australia

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For too many years (till these days) I use writing the firmware of the ATMEL C51 MCUs in assembly language for my controller boards I design (compiled by an old DOS assembler, TASM, since I can't get one for Windows; like the one of AS6 and now AS7 are for the AVR family).

 

So, the first step I did after installing AS6 was writing a set of macros that look much like the C51 instructions to ease my work. Naturally, I added more basic instructions (as macros) because the AVR family (though I have ATmega8 only) has more functions (hardware and software) than of the C51 one.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

valusoft wrote:

Intabits,

 

We have a "Marketplace" forum now for commercial offerings.

 

 

Thanks for that Ross, will have a look.

I'm in East Malvern, maybe we should have a chat (once I get myself back up to speed)

 

Rob

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I grew up in Malvern... Raleigh Street and then Ewart Street. Small world. But now in Blackburn.

 

Several of us get together every 6 months or so and share a few drinks, war stories, etc. You are welcome to join us next time.

 

Cheers,

 

Ross

 

Ross McKenzie ValuSoft Melbourne Australia