Mark Borgerson wrote:> IIRC, the MAC programming conventions dedicated one processor register > to point to a set of global variables---the phrase 'above A5' is"A5 worlds". Among various abominations in earlier versions of the MacOS: use of Pascal strings.
TI MSP430
Started by ●April 3, 2006
Reply by ●April 13, 20062006-04-13
Reply by ●April 13, 20062006-04-13
Mark Borgerson wrote:> In article <443CFE0F.D3B04F8A@yahoo.com>, cbfalconer@yahoo.com says... >> David Brown wrote: >>> >> ... snip ... >>> >>> What is much more relevant is whether the register set and >>> addressing modes of the msp430 really are appropriate for their >>> target applications, or whether they would have been better off >>> with the PDP-11 arrangement. I'm far from convinced - certainly, >>> the example you gave (PC-relative CALL) is obscure indeed, and I >>> think the benefit of more registers well outweighs this missing >>> feature. >> >> Hardly obscure. This, together with PC relative jumps, is what >> makes object code intrinsically relocatable, and I consider it a >> valuable feature. Now it becomes trivial to swap code segments in >> and out as needed. > > Are you mixing up position-independent code and relocatable code?Yes.> When I was writing Macintosh applications in the 1980s, you could > generate position-independent code---where ALL references were PC > relative--or relative to a base address that was derived at > run time. Relocatable code was simply code that used some mechanism > to allow a linker or loader to modify those addresses in the code > that required adjustment depending on where the code was loaded. > IIRC, the MAC programming conventions dedicated one processor register > to point to a set of global variables---the phrase 'above A5' is > floating in the misty sea of memory. ;-) > > IIRC there were limits on the segment size of position-independent > code probably +/- 32767 bytes away from the PC.My p-machine avoided that by using a call table at the end of a segment. All the destinations were relative to the table entry, and thus negative, thus leaving the full range available. So call instructions specified segment and table index value. -- "If you want to post a followup via groups.google.com, don't use the broken "Reply" link at the bottom of the article. Click on "show options" at the top of the article, then click on the "Reply" at the bottom of the article headers." - Keith Thompson More details at: <http://cfaj.freeshell.org/google/> Also see <http://www.safalra.com/special/googlegroupsreply/>
Reply by ●April 15, 20062006-04-15
CBFalconer wrote:> David Brown wrote: > ... snip ... >> What is much more relevant is whether the register set and >> addressing modes of the msp430 really are appropriate for their >> target applications, or whether they would have been better off >> with the PDP-11 arrangement. I'm far from convinced - certainly, >> the example you gave (PC-relative CALL) is obscure indeed, and I >> think the benefit of more registers well outweighs this missing >> feature. > > Hardly obscure. This, together with PC relative jumps, is what > makes object code intrinsically relocatable, and I consider it a > valuable feature. Now it becomes trivial to swap code segments in > and out as needed. >In terms of the PDP-11 (did it count as a mini or a mainframe?), making code position independent and/or relocatable is important, and greatly adds to the flexibility of the architecture. In terms of a small embedded processor, running a single statically linked program with no paging or other virtual memory arrangements, relocatable or position independent code is irrelevant, and any space (in the instruction set space, or die space) used for it is wasted. Similarly, addressing modes involving double indirection might be extremely useful for implementing virtual methods in an object oriented language, but very rarely used in C or assembly, which are the typical languages of choice on the msp430. I'm certainly not going to argue that the msp430 ISA would have worked better for PDP-11 machines, nor that the msp430 is the ideal ISA - just that it might be better for embedded applications than the PDP-11.
Reply by ●April 15, 20062006-04-15
In article <44411f7e$1@news.wineasy.se>, david@westcontrol.removethisbit.com says...> CBFalconer wrote: > > David Brown wrote: > > ... snip ... > >> What is much more relevant is whether the register set and > >> addressing modes of the msp430 really are appropriate for their > >> target applications, or whether they would have been better off > >> with the PDP-11 arrangement. I'm far from convinced - certainly, > >> the example you gave (PC-relative CALL) is obscure indeed, and I > >> think the benefit of more registers well outweighs this missing > >> feature. > > > > Hardly obscure. This, together with PC relative jumps, is what > > makes object code intrinsically relocatable, and I consider it a > > valuable feature. Now it becomes trivial to swap code segments in > > and out as needed. > > > > In terms of the PDP-11 (did it count as a mini or a mainframe?), making > code position independent and/or relocatable is important, and greatly > adds to the flexibility of the architecture. In terms of a small > embedded processor, running a single statically linked program with no > paging or other virtual memory arrangements, relocatable or position > independent code is irrelevant, and any space (in the instruction set > space, or die space) used for it is wasted. Similarly, addressing modes > involving double indirection might be extremely useful for implementing > virtual methods in an object oriented language, but very rarely used in > C or assembly, which are the typical languages of choice on the msp430. > > I'm certainly not going to argue that the msp430 ISA would have worked > better for PDP-11 machines, nor that the msp430 is the ideal ISA - just > that it might be better for embedded applications than the PDP-11. >There may be some empirical evidence to support that. IIRC, no one has implemented a single-chip PDP-11 that runs on 50milliwatts. ;-) (The PDP-11 should be a lot less, without all those ADCs, SPIs, Timers and UARTS!) Mark Borgerson
Reply by ●April 15, 20062006-04-15
On 15 Apr 2006 18:29:50 +0100, David Brown <david@westcontrol.removethisbit.com> wrote:>CBFalconer wrote: >> David Brown wrote: >> ... snip ... >>> What is much more relevant is whether the register set and >>> addressing modes of the msp430 really are appropriate for their >>> target applications, or whether they would have been better off >>> with the PDP-11 arrangement. I'm far from convinced - certainly, >>> the example you gave (PC-relative CALL) is obscure indeed, and I >>> think the benefit of more registers well outweighs this missing >>> feature. >> >> Hardly obscure. This, together with PC relative jumps, is what >> makes object code intrinsically relocatable, and I consider it a >> valuable feature. Now it becomes trivial to swap code segments in >> and out as needed. >> > >In terms of the PDP-11 (did it count as a mini or a mainframe?), making >code position independent and/or relocatable is important, and greatly >adds to the flexibility of the architecture. In terms of a small >embedded processor, running a single statically linked program with no >paging or other virtual memory arrangements, relocatable or position >independent code is irrelevant, ><snip>It shocks me to read this from you. It is patently untrue in the case of the MSP-430. Position independent code is important in this case, as it enables a number of useful options. One of them is being able to download small "programs" into the ram, allowing the downloader to place them as the memory allocator allows, and to execute them. Another is to allow flashable extensions to be downloaded. If you need objective evidence, beyond my own theory about this, you need only note that IAR already supports the production of position independent code to a degree and is involved in broadening out that capability in the case of the MSP-430. That fact speaks for itself. So you have both theory and practice to dispute your comment. Jon
Reply by ●April 17, 20062006-04-17
Jonathan Kirwan wrote:> On 15 Apr 2006 18:29:50 +0100, David Brown > <david@westcontrol.removethisbit.com> wrote: > >> CBFalconer wrote: >>> David Brown wrote: >>> ... snip ... >>>> What is much more relevant is whether the register set and >>>> addressing modes of the msp430 really are appropriate for their >>>> target applications, or whether they would have been better off >>>> with the PDP-11 arrangement. I'm far from convinced - certainly, >>>> the example you gave (PC-relative CALL) is obscure indeed, and I >>>> think the benefit of more registers well outweighs this missing >>>> feature. >>> Hardly obscure. This, together with PC relative jumps, is what >>> makes object code intrinsically relocatable, and I consider it a >>> valuable feature. Now it becomes trivial to swap code segments in >>> and out as needed. >>> >> In terms of the PDP-11 (did it count as a mini or a mainframe?), making >> code position independent and/or relocatable is important, and greatly >> adds to the flexibility of the architecture. In terms of a small >> embedded processor, running a single statically linked program with no >> paging or other virtual memory arrangements, relocatable or position >> independent code is irrelevant, >> <snip> > > It shocks me to read this from you. It is patently untrue in the case > of the MSP-430. Position independent code is important in this case, > as it enables a number of useful options. One of them is being able > to download small "programs" into the ram, allowing the downloader to > place them as the memory allocator allows, and to execute them. > Another is to allow flashable extensions to be downloaded. >Memory allocators that move bits of program code around in ram doesn't sound to me like a typical situation in a small embedded system - few applications on an msp430 would even go as far as having a dynamic memory allocator for data, never mind for swapping bits of code here and there. I have certainly made use of the msp430's ability to run code from ram - but the load address is fixed at link time (by allocating your flash programming functions to specific sections). Even if you are re-using the ram space as data during "run" mode, and code during "update" mode, I'd still have the update code linked to a specific address. There could be times when position independent code is useful (though I still can't think of a case when it might be the best solution on a typical msp430 system), so it is important that it is possible to generate such code. My argument is merely that such code is so rare that it is wrong to add features to the cpu for optimising such code - the space (die space, instruction set space, power, speed, or whatever) is better used for more common functions. Thus I think TI's application note showing suitable code sequences is a perfectly reasonable solution. Remember, most competing micros (typically 8-bit rather than 16-bit) have no support for position independent code, since they have no support for executing code from RAM. (It would be possible to burn the code into different bits of flash, but it's far from a sensible solution in practice.) No one would consider the AVR to be limited by the lack of position independent CALL addressing modes.> If you need objective evidence, beyond my own theory about this, you > need only note that IAR already supports the production of position > independent code to a degree and is involved in broadening out that > capability in the case of the MSP-430. That fact speaks for itself. >Since it is possible to make position independent code for the msp430, and perhaps some people will want it (after all, some people like to use malloc and printf on a micro with 256 bytes ram), then there is absolutely nothing to lose by supporting it. Offhand, I don't know whether gcc supports it or not. But supporting it and wasting hardware to optimise it are two totally different things - relying on software to provide obscure functionality is standard practice in hardware designs.> So you have both theory and practice to dispute your comment. >I still disagree that position independent code has much use in an msp430 system - certainly, it is rare enough that specific hardware support would be wasted when there is a perfectly workable (albeit slightly bigger and slower) software technique. Perhaps I have fallen for the temptation of extrapolating my own experiences and opinions as "general usage" - but perhaps you too have done so. mvh., David> Jon
Reply by ●May 8, 20062006-05-08
i,all,BesTech is a world-class professional supplier of IC and Diode,has more than 10 years history in China and international markets! BesTech is a credible IC and diode sources for your product line, assembly line, and brokers as well. BesTech is specializing obsolete , hard to find, long lead-time parts, military, industry , commercial, medical and transportation electronics components! BesTech offers world famous brand series of electronic components, such as: AD, AMD, Altera, Intersil, Linear Technology, Maxim, Motorola, NS, ST, TI, Ziglog, etc.... BesTech is doing utmost to offer china market, international brokers , manufacturers with first- hand source under the Tenet of Honesty, Sincere cooperation, Customer first , warm-hearted service. BesTech Sincerely welcome customers from various circles to negotiate and develop cooperations with us .Let us jointly create our success!. Following are some of our hot parts: ML2003IQ,ML2003CQ,311-1002-01,311-1011-02,311-1012-02,311-1013-40,311-1013-42,311-1013- 75,74ABT899CQC,74ACT899QC,74ACT899QL,74F899QC,74FCT899AQC,EPM7512AETC144-10,EPM7512AETC144- 12,EPM7512AETC144-7,FSA2509M,FX469LS,HD153119CP,M62301FP,M62320FP,SP301CT,SP302CT,SP303CT, SP304CT,T7275CEL,T7504ML,TC426IJA,TC426MJA,TC427IJA,TC427MJA,TC428IJA,TC429IJA,TC4420IJA,TC4 422MJA,TC4423MJA,TC4424MJA,TC4426MJA,TC4427MJA,TC4429MJA,TC445MJE,TC4469COE,TC4469EJD,TC4469 MJD,TC500AIJE,TC900AIJA,TC900IJA,TC911AIJA,TC913IJA,TC9400EJD,TC9400MJD,TC9401EJD,TC9402EJD, TC962IJA,TDF8704T4, TDF8704T5,TL321CP,TLC320AC02CFN,TLC320AC02IFN,TP1321,TP4780- 02,TP485,TP4866,TSC232EJE,TSC301AL,TSC301AL/CL,TSC301BL,TSC301CJ,TSC301CL,TSC301ML,TSC302AL, TSC302AL/CL,TSC302BL,TSC302CJ,TSC302CL,TSC302ML,TSC303AL,TSC303AL/CL,TSC303BL,TSC303CJ,TSC30 3CL,TSC303ML,TSC304AL,tsC304AL/CL,TSC304BL,TSC304CJ,TSC304CL,TSC304ML,TSC306AL,TSC306AL/CL,T SC306BL,TSC306CJ,TSC306CL,TSC306ML,TSC311AL,TSC311AL/CL,TSC311BL,TSC311CJ,TSC311CL,TSC311ML, TSC312AL,TSC312AL/CL,TSC312BL,TSC312CJ,TSC312CL,TSC312ML,TSC313AL,TSC313AL/CL,TSC313BL,TSC31 3CJ,TSC313CL,TSC313ML,TSC321AL,TSC321AL/CL,TSC321BL,TSC321CJTSC321CL,TSC321ML,TSC322AL,TSC32 2AL/CL,TSC322BL,TSC322CJ,TSC322CL,TSC322ML,TSC323AL,TSC323AL/CL,TSC323BL,TSC323CJ,TSC323CL,T SC323ML,TSC324AL,TSC324AL/CL,TSC324BL,TSC324CJ,TSC324CL,TSC324ML,TSC325AL,TSC325AL/CL,TSC325 BL,TSC325CJ,TSC325CL,TSC325ML,TSC326AL,TSC326AL/CL,TSC326BL,TSC326CJ,TSC326CL,TSC326ML,TSC33 1AL,TSC331AL/CL,TSC331BL,TSC331CJ,TSC331CL,TSC331ML,TSC332AL,TSC332AL/CL,TSC332BL,TSC332CJ,T SC332CL,TSC332ML,TSC333AL,TSC333AL/CL,TSC333BL,TSC333CJ,TSC333CL,TSC333ML,TSC334AL,TSC334AL/ CL,TSC334BL,TSC334CJ,TSC334CL,TSC334ML,TSC335AL,TSC335AL/CL,TSC335BL,TSC335CJ,TSC335CL,TSC33 5ML,TSC341AL,TSC341AL/CL,TSC341BL,TSC341CJ,TSC341CL,TSC341ML,TSC342AL,TSC342AL/CL,TSC342BL,T SC342CJ,TSC342CL,TSC342ML,TSC343AL,TSC343AL/CL,TSC343BL,TSC343CJ,TSC343CL,TSC343ML,TSC344AL, TSC344AL/CL,TSC344BL,TSC344CJ,TSC344CL,TSC344ML,TSC347AL,TSC347AL/CL,TSC347BL,TSC347CJ,TSC34 7CL,TSC347ML,TSC355AL,TSC355AL/CL,TSC355BL,TSC355CJ,TSC355CL,TSC355ML,TSC361AL,TSC361AL/CL,T SC361BL,TSC361CJ,TSC361CL,TSC361ML,TSC362AL,TSC362AL/CL,TSC362BL,TSC362CJ,TSC362CL,TSC362ML, TSC363AL,TSC363AL/CL,TSC363BL,TSC363CJ,TSC363CL,TSC363ML,TSC367AL,TSC367AL/CL,TSC367BL,TSC36 7CJ,TSC367CL,TSC367ML,TSC368AL,TSC368AL/CL,TSC368BL,TSC368CJ,TSC368CL,TSC368ML,TSC370AL,TSC3 70AL/CL,TSC370BL,TSC370CJ,TSC370CL,TSC370ML,TSC371AL,TSC371AL/CL,TSC371BL,TSC371CJ,TSC371CL, TSC371ML,TSC372AL,TSC372AL/CL,TSC372BL,TSC372CJ,TSC372CL,TSC372ML,TSC373AL,TSC373AL/CL,TSC37 3BL,TSC373CJ,TSC373CL,TSC373ML,TSC374AL,TSC374AL/CL,TSC374BL,TSC374CJ,TSC374CL,TSC374ML,TSC3 75AL,TSC375AL/CL,TSC375BL,TSC375CJ,TSC375CL,TSC375ML,TSC380AL,TSC380AL/CL,TSC380BL,TSC380CJ, TSC380CL,TSC380ML,TSC381AL,TSC381AL/CL,TSC381BL,TSC381CJ,TSC381CL,TSC381ML,TSC382AL,TSC382AL /CL,TSC382BL,TSC382CJ,TSC382CL,TSC382ML,TSC383AL,TSC383AL/CL,TSC383BL,TSC383CJ,TSC383CL,TSC3 83ML,TSC390AL,TSC390AL/CL,TSC390BL,TSC390CJ,TSC390CL,TSC390ML,TSC395AL,TSC395AL/CL,TSC395BL, TSC395CJ,TSC395CL,TSC395ML,TSC396AL,TSC396AL/CL,TSC396BL,TSC396CJ,TSC396CL,TSC396ML,TSC426CP A,TSC427CPA,TSC427IJA,TSC427MJA,TSC428CPC,TSC429CPA,TSC445IJE,TSC575BN,TSC709AL,TSC709AL/CL, TSC709BL,TSC709CJ,TSC709CL,TSC709ML,TSC7106IJL,TSC723AL,TSC723AL/CL,TSC723BL,TSC723CJ,TSC723 CL,TSC723ML,TSC741AL,TSC741AL/CL,TSC741BL,TSC741CJ,TSC741CL,TSC741ML,TSC7652IJA,TSC809AL,TSC 809AL/CL,TSC809BL,TSC809CJ,TSC809CL,TSC809ML,TSC844AL,TSC844AL/CL,TSC844BL,TSC844CJ,TSC844CL ,TSC844ML,TSC8701CL,TSC911AIJI,TSC914AIJD,TSC918,TSC9400CL,TSC9401CL,TSS400CFNS1,3820-0019- 00,3820-0001-1A,Access our expansive inventory quickly and easily with the BesTech online search.www.bestechltd.com
Reply by ●May 8, 20062006-05-08
In article <MPG.1ea6245b96c891e398976c@newsgroups.comcast.net>, first.last@comcast.net says...> In article <443bce7c$0$1520$742ec2ed@news.sonic.net>, > scharf.steven@geemail.com says... > > Jonathan Kirwan wrote: > > > On Tue, 11 Apr 2006 22:54:01 +1000, Clifford Heath > > > <no@spam.please.net> wrote: > > > > > >> SMS wrote: > > >>> You can buy the development tool (USB > > >>> stick) for 1/2 price ($10), with the coupon code MS681LXD. > > >> Ok, I give up. Where do I enter the coupon code? > > >> ti-estore is happy to let me order at $20, but $10? > > > > > > (1) Go to: http://www.ti.com/ez430 > > > (2) Click on: "Order Now!", right side of screen. > > > (3) Click on: "Add to basket" after entering a quantity. > > > (4) Click on: "Checkout" near top. > > > (5) You will be asked to log on -- do so. > > > (6) Fill out address, if it isn't already, on the 'ship to' page. > > > (7) Click on "continue" > > > > > > You will be then taken to the page which offers a "COUPON" field near > > > the bottom on the left side and just above the two fields called "SHIP > > > VIA" and "PAY WITH". There is also a button called "REDEEM COUPON" > > > adjacent and just to the right of the field where you can enter the > > > coupon code. > > > > The coupon expires on April 15th, so hurry. > > ..but be aware that it's severely backordered. > I placed my order (full price) on 25-February; I'm still waiting... > > --GeneMine arrived today (8-May)... Blinking happily plugged into my USB hub... --Gene
Reply by ●May 12, 20062006-05-12
Gene S. Berkowitz wrote:> Mine arrived today (8-May)... Blinking happily plugged into my USB > hub... > > --GeneMine arrived today (May 12th).
Reply by ●May 12, 20062006-05-12
On Fri, 12 May 2006 10:28:57 -0700, the renowned SMS <scharf.steven@geemail.com> wrote:>Gene S. Berkowitz wrote: > >> Mine arrived today (8-May)... Blinking happily plugged into my USB >> hub... >> >> --Gene > >Mine arrived today (May 12th).Yesterday (May 11) here in the not-so-frozen north. Best regards, Spehro Pefhany -- "it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com