Re: Asm source code page?

"David Brown [email protected] [msp430]" <[email protected]> Tue, 12 Jan 2016 10:04:54 +0100
Newsgroups gmane.comp.hardware.texas-instruments.msp430.discuss
Message-ID <[email protected]>
It's a long time since I have posted in this group, and I know I am at
odds with other opinions here - but it is perhaps good to have a balance
to the endless praise of IAR.

When I started using msp430's, IAR was the only option.  Other tool
vendors (free, cheap or expense) had to fight with TI to get any
information or support.  So like everyone else who didn't want to pay
huge prices for IAR's C compiler, I used IAR's assembler and IDE.

It is perhaps a decade since I have used this combination, so things may
have changed - but I doubt if they have changed significantly for a free
tool from IAR that is little used, and where the market for the paid
version (their C compiler) of this target is very much on the decline.


The assembler is okay.  It is not "excellent", it's just okay.  It is
fairly simple, and does not have particularly advanced features - it is
simply a straightforward assembler.  Often that is all you want from an
assembler - it was certainly enough for me to write my code.  But it is
nothing special, and has no outstanding or exciting additional features.
 I have used worse, and used better, but usually assembly code has a
simple structure and the IAR assembler handled that fine.

I did not like the IDE (note again that it is something around a decade
since I used it - the IDE may have changed since then).  I used my own
makefiles, and a different editor.  I used the debugger sometimes, but
always felt it was awkward and that assembly was very much a
second-class citizen to the debugger.  In fact, I felt that some aspects
of the debugger (especially trying to view registers and expressions)
were intentionally bad - almost to the point of trying to persuade
people to buy the C compiler just to get decent debugging.  In practice,
most of my work was done without using the IDE or debugger at all.


When the early gcc port for msp430 stabilised, I moved to using it, and
have used a few generations of that compiler over the years.  I used
eclipse as the editor, and gdb (with eclipse's gui) for debugging - it
is a joy in comparison to IAR's tools.  The compiler has way more
features, generates good code, and you don't have to fight anyone (IAR,
company purchasing, etc.) about licenses, upgrades, etc. - install the
tools on as many systems as you want, regardless of OS, archive them
(when you have to resurrect a 10-year old project and re-compile with
the original tools, you will seriously regret ever buying locked
commercial tools).

For doing a new msp430 project (I rarely use them now), there would be
no doubt in my mind as to the tools.  It would be TI's eclipse IDE,
combined with the new gcc port that is fully supported by TI and Red
Hat.  I can't imagine why someone would want to work on an assembly-only
project these days, except perhaps for fun.  gcc will generate better
code than most assembler programmers in many circumstances - assuming
the code has to be written in a clear, understandable, safe,
maintainable manner.  There can be occasions when a particular small
snippet is best written in assembly - the inline assembler is usually
the best answer, but of course it is possible to write external assembly
functions if you really must.


David



On 12/01/16 03:24, 'Peter Grey' [email protected] [msp430] wrote:
>  
> 
> Hi Jon, Al
> 
> I may be a little off topic here. Like yourselves I have used IAR and
> assembler for many years. I like the thought of using both assembler and C
> so I can use existing software and also use some of the advantages of C. I
> started to have a look at CCS6 as I thought I would have to buy a copy of
> IAR for the use of C. I only see one document on the TI website that refers
> to mixing C and assembler and it is quite old. Do you have any references to
> any other documentation on mixing the 2 and using IAR?
> 
> Thanks
> 
> Peter
> 
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> Sent: Tuesday, 12 January 2016 5:29 AM
> To: MSP430 List
> Subject: Re: [msp430] Asm source code page?
> 
> On Mon, 11 Jan 2016 19:33:47 +1030, Al wrote:
> 
>>I Totally agree with Jon.
> 
> :)
> 
>>IAR's assembler is excellent, does everything I want, is unlimited, is
>>free, and since I don't use any libraries from third parties there are
>>no royalty issues.
> 
> That assembler and linker tool-pair is good. I've used a LOT of assemblers
> in my life and have written a few, as well.
> This one from IAR is about as good as assemblers for micros usually get. The
> abstract segmentation model is great. The macro facility could be better,
> but I consider it "good enough for most things." (I can also use M4 or some
> other tool on the source where I feel there are some limitations.
> Such tools won't be fluent with the semantics but they may be fruitfully
> used. I just haven't felt enough of a need yet, since IAR's capabilities are
> good enough for now.)
> 
>>The IDE is straightforward, and quite good.
> 
> It's remarkably easy to get started using and remains very capable as you
> advance further over time. It just wears well over time. They've done a very
> good job on its design. And, fortunately for some of us, have decided to
> offer a fully functional toolset for assembler programmers at no charge.
> I'm in debt to them for this fact.
> 
> (I'm also in debt for another reason -- I've never needed more than an
> additional 4k of C generated code for an MSP430 project, so the KickStart
> has been "good enough" for all my project uses so far.)
> 
>>It used to do some strange things, but they seem to have been cleaned
>>up over the years, either that or I subconsciously avoid them!
> 
> I haven't found anything that was "strange." I have found things that took a
> moment to consider before I fully understood them. But once I gathered up
> the conceptual model they made good sense to me.
> 
> The only "strange" things are things I've done myself with their toolset.
> For example, I needed a way to find the largest common divisor for a pair of
> configuration parameters to help me set up a clocking system that would
> serve two purposes at once with only integer multiplier differences in their
> operation. I hacked up a MACRO tool to do exactly that, too. Worked
> perfectly. Now, someone looking at it would see "strange" there, I suppose.
> But that's my fault, not IARs!
> 
>>I find the syntax is more in line with the vast majority of assemblers
>>I've used over the last too many years, no strange things.
> 
> That's pretty much my feeling, too.
> 
>>Their header files for each processor are also quite good, but large
>>because they are general use for C, c++ and assembler, so I personally
>>always clean out all the stuff I am unlikely to use, add some stuff
>>that I personally like to use, and rename the file, so I have an
>>original version incase I ever decide to mix assembly and C for example.
> 
> Hmm. So far, I've not bothered with that. In part, perhaps, because I
> haven't done as much as you have and haven't reached a situation where the
> trouble would have been worth it. In part, perhaps, because I tend not to
> change standard facilities unless I can clearly justify the change. I'd
> rather use an additional file I create and add it to the inclusion list. But
> again, you probably have a wider array of usages than I do and I may very
> well have made similar choices if I had faced similar situations, too.
> 
> Jon
> 
>>Cheers
>>
>>Al
>>
>>On 11/01/2016 6:15 AM, Jon Kirwan [email protected] [msp430] wrote:
>>> On Sat, 9 Jan 2016 22:47:23 -0800, Craig Carmichael wrote:
>>>
>>>> ... ideas for web pages of sample code in Asm?
>>> Just as an additional note...
>>>
>>> If you are interested in writing assembly-only projects for the
>>> MSP430 and MSP430X families, I'd recommend using IAR's Kickstart
>>> tools. Their assembler is quite general-purpose and does NOT have any
>>> code size limitations at all. See:
>>>
>>> http://supp.iar.com/FilesPublic/UPDINFO/004578/infocenter/product_pac
>>> kages.html
>>>
>>> where the 2nd bullet under the Kickstart heading says, "The IAR
>>> Assembler delivered is the full version without any restrictions" and
>>> the 3rd bullet expands, "The IAR XLINK Linker will link ... an
>>> unlimited amount of code originating from assembly code." (The 4th
>>> bullet adds, "The IAR KickStart C-SPY Simulator ... is unlimited in
>>> the amount of assembly code read.") This pretty much means you get an
>>> excellent assembler/linker toolset, plus a very nice IDE and debugger
>>> for coding purposes and ZERO cost to you. I've used IAR for assembly
>>> coding development and I really like the tools a lot, as they present
>>> a very clean, orthogonal design with all the features you need. Other
>>> assembler tools I've used, off and on, tend to have odd "limitations"
>>> which are frustrating at times. IAR's tools "just work well." Never
>>> wished for a feature that I couldn't already find in IAR's assembler
>>> + linker toolset.
>>>
>>> You can also explore C/C++ with IAR's tools, but the free Kickstart
>>> version does limit your final application size.
>>> IAR asks a "fairly high price" for unlimited C/C++ code sizes. If you
>>> do plan on mixing C and assembly and plan on developing larger
>>> applications then you should consider other tools for a cost/benefit
>>> analysis. A starting point might be TI's page here:
>>>
>>> http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/tools_so
>>> ftware.page
>>>
>>> However, be aware that this page in no way provides all your options.
>>> Rowley and ImageCraft are just two such examples that you don't see
>>> there:
>>>
>>> http://www.rowley.co.uk/msp430/
>>> https://www.imagecraft.com/devtools_MSP430.html
>>>
>>> I'm sure there are others, as well, that aren't included in the TI
>>> page.
>>>
>>> If you are doing this all as a hobby, then you are free to make your
>>> own choices about assembly-only or mixed coding styles. Whatever
>>> makes you happy works just fine.
>>>
>>> If you have your own product/product-line in mind, then you need to
>>> be aware of licensing issues (libraries used, as well as compiler
>>> generated output) for the tools you apply. I believe you can use the
>>> IAR assembler/linker toolchain for commercial products without paying
>>> them a fee, so long as you are careful about library use (not using
>>> any library other than public domain would be safer.) It sounds like
>>> you might be in this frame of mind, but it is hard to tell.
>>>
>>> For professional contract work, you will want to be able to support
>>> mixed assembly and C/C++. Clients deserve to have the widest range of
>>> options available for their project development so that the overall
>>> development process can be optimized for them, weighing all
>>> conditions appropriate to their circumstances. You should then
>>> carefully study the various commercial options. But you should ALSO
>>> contact the vendors, too, and speak or write to a human there and get
>>> a feel for what contact and support will be like after you buy their
>>> tools. Most MSP430 vendors should be pretty good, I think. But it
>>> helps to make contact and see how things play out before making a
>>> final decision and spending your money.
>>>
>>> As an employee in an organization with more than one programmer,
>>> which does NOT sound like your situation, you do what has been
>>> established by careful consideration of your team members. If you are
>>> a sole employee, then I suppose you get to make your own choices but
>>> you need to make them well for those depending on you.
>>>
>>> Jon
> 


------------------------------------
Posted by: David Brown <[email protected]>
------------------------------------

To unsubscribe from the msp430 group, send an email to:
[email protected]