32bit PICs announced

It's hard to write software that doesn't run under Vista if you are programming properly for XP and 2000.

Some things that might interfere are:

- Forgetting that Windows is multiuser, and making the program write, at runtime, in C:\Program Files or other places that don't belong to the currently logged-in user. (Actually, Vista handles this better than XP does; Vista will actually intercept and redirect.)

- Device drivers. That's the big change.

If it's their USB device driver, then that's forgivable. But in this day and age MPLAB (for lower PICs) still isn't compatible with file paths > 61 characters unless you add a linker script. That's an old DOS limitation of some kind. In that sense MPLAB, even the latest version, isn't fully compatible with Windows 95, let alone anything later.

I know I'm being ornery about this, but one of my pet peeves about the whole embedded systems industry is its penchant for designing embedded tools to only run on PCs that are out of date. Plan for the future, not the past!

Reply to
mc
Loading thread data ...

The C compiler cost is equally impressive at US$1,195.00. (Student edition noted.) I expect someone will set up an easier gcc route, soon.

Jon

Reply to
Jonathan Kirwan

Finally, gcc can target a PIC!

(Isn't there already a MIPS port?)

--

John Devereux
Reply to
John Devereux

MIPS has been supported since the beginning of GCC so there will be no work at all to use it for this new PIC (assuming they haven't messed with the CPU architecture). Maybe that's what they expect- $1200 for the compiler may not be so bad if it's the high-end "MIPS Pro" compiler found on SGI's IRIX OS. The "pro" version of the Keil C compiler for 8051 is $2600.

Instead of buying this compiler, sign up at my ISP: it's a shell account on an old high-end SGI machine... it will be strange to be able to use a "supercomputer" compiler for a $3 microcontroller :-)

Here is the what the MIPS Pro UNIX "man" page looks like. The machine will run either 32 or 64-bit code, so the compiler can generate either based on a switch:

"cc(1) Last changed: 4-15-99

NAME cc, c89, CC - Invokes the MIPS C, MIPSpro C, or MIPSpro C++ compiler

SYNOPSIS cc, c89 [-o32 | -n32 | -64] [-all] [-ansi] [-ansiE] [-ansiW] [-apo] [-apokeep] [-apolist] [-ar] [-bigp_on] [-bigp_off] [-c] [-cckr] [-CLIST:...] [-common] [-D name=def] [-D name] [-DEBUG:...] [-diag_error numberlist] [-diag_remark numberlist] [-diag_suppress numberlist] [-diag_warning numberlist] [-dollar] [-E] [-fb] [-fb_create ] [-fb_opt ] [-fbgen] [-fbuse] [-float] [-float_const] [-fullwarn] [-G num] [-gn] [-help] [-I] [-I dir] [-ignore_suffix] [-INLINE:...] [-IPA:...] [-KPIC] [-L directory] [-l library] [-LANG:...] [-LIST:...] [-LNO:...] [-M] [-MDupdate filename] [-mipsn [-MP] [-mp] [-mplist] [-nocpp] [-non_shared] [-nostdinc] [-o output] [-On] [-OPT:...] [-P] [-pca] [-pcakeep] [-pcalist] [-pedantic] [-r] [-rprocessor] [-S] [-show] [-signed] [-TARG:...] [-TENV:...] [-trapuv] [-U name] [-use_readonly_const] [-use_readwrite_const] [-v] [-version] [-W c,arg1[,arg2...]] [-w] [-w2] [-woff all] [-woff numberlist] [-xansi] [-Xcpluscomm] [-Y c,path]

CC [-64] [-all] [-anach] [-ansiE] [-ansiW] [-apo] [-apokeep] [-apolist] [-ar] [-auto_include] [-bigp_on] [-bigp_off] [-brief_diagnostics] [-c] [-cfront] [-CLIST:...] [-common] [-D name=def] [-D name] [-DEBUG:...] [-diag_error numberlist] [-diag_remark numberlist] [-diag_suppress numberlist] [-diag_warning numberlist] [-dollar] [-E] [-fb] [-fb_create ] [-fb_opt ] [-fbgen] [-fbuse] [-FE:eliminate_duplicate_inline_copies] [-FE:template_in_elf_section] [-float] [-float_const] [-fullwarn] [-G num] [-gn] [-gslim] [-help] [-I] [-I dir] [-ignore_suffix] [-INLINE:...] [-IPA:...] [-J #] [-KPIC] [-L directory] [-l library] [-LANG:...] [-LIST:...] [-LNO:...] [-M] [-MDupdate filename] [-mipsn [-MP] [-mp] [-no_auto_include] [-no_prelink] [-nocpp] [-non_shared] [-nostdinc] [-o output] [-On] [-OPT:...] [-P] [-pca] [-pcakeep] [-pcalist] [-pch] [-pedantic] [-prelink] [-pta] [-ptall] [-ptnone] [-ptused] [-ptv] [-r] [-rprocessor] [-S] [-show] [-signed] [-TARG:...] [-TENV:...] [-trapuv] [-U name] [-use_readonly_const] [-use_readwrite_const] [-v] [-version] [-W c,arg1[,arg2...]] [-w] [-w2] [-woff all] [-woff numberlist] [-Xcpluscomm] [-Y c,path]

IMPLEMENTATION IRIX systems

DESCRIPTION This man page describes the cc(1), c89(1), and CC(1) commands.

The cc command invokes the MIPS and MIPSpro C compiler and the source preprocessor on source files that contain C code.

The CC command invokes the MIPSpro C++ compiler.

The c89 command is used to invoke the C compiler when the environment variable _XPG is defined. The command then operates in conformance with the X/Open XPG4 standard. Option or command-line differences that may occur due to conformance to this standard are noted in the option descriptions.

Throughout this man page, the differences between the C and C++ compilers are noted when appropriate. When there is no difference, the phrases, the compiler or the C/C++ compiler, refer to both compilers.

By default, the compiler creates an executable file named a.out. Other files used and created by the compiler are discussed under the FILES section of this man page. See the ld(1) man page for load-time options.

If conflicting options are specified, the option specified last on the command line overrides the previously specified option. Exceptions to this rule are noted in the individual option descriptions.

Most #pragma directives override corresponding command-line options. Exceptions to this rule are noted in the option descriptions on this man page or in the #pragma directive descriptions in the MIPSpro C and C++ Pragmas manuals.

Some command options, for example, -LIST, -LNO, -MP, -OPT, -TARG, and -TENV, accept several arguments and allow you to specify a setting for each argument. To specify multiple arguments, either use colons to separate each argument or specify multiple options on the command line. For example, the following command lines are equivalent:

cc -LIST:notes=ON:options=OFF b.f cc -LIST:notes=ON -LIST:options=OFF b.f

The SGI compilers support three different Application Binary Interfaces, which are controlled by the following options (see the abi(5) man page for more information about these interfaces):

Option Action

-o32 or -32 Generates an (old) 32-bit object. (See the o32(5) man page for option descriptions and details.) This defaults to -mips2 if -mips1 has not been specified. See the pe_environ(5) man page for information on the COMPILER_DEFAULTS_PATH environment variable.

-n32 Generates a (new) 32-bit object. This defaults to -mips3 if -mips4 has not been specified.

-64 Generates a 64-bit object. This defaults to -mips4 if -mips3 has not been specified. See the pe_environ(5) man page for information on the COMPILER_DEFAULTS_PATH environment variable.

The following alphabetized list of options are valid in the N32 and 64 ABIs. See the o32(5) man page for options that are specific to the O32 ABI. Unless otherwise specified in the option description, the following options apply to the cc, c89, and CC commands. . . . ."

--
/*  jhallen@world.std.com AB1GO */                        /* Joseph H. Allen */
int a[1817];main(z,p,q,r){for(p=80;q+p-80;p-=2*a[p])for(z=9;z--;)q=3&(r=time(0)
+r*57)/7,q=q?q-1?q-2?1-p%79?-1:0:p%79-77?1:0:p158?-79:0,q?!a[p+q*2
]?a[p+=a[p+=q]=q]=q:0:0;for(;q++-1817;)printf(q%79?"%c":"%c\n"," #"[!a[q-1]]);}
Reply to
Joseph H Allen

The dsPIC compiler is gcc, eh. IIRC, the (similar) license fee covers the optimization and debugger or something of that ilk.

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
Reply to
Spehro Pefhany

I got my Starter Kit this morning. I installed the software and built one of the sample programs, it loaded and ran OK under the debugger, flashing the LEDs in sequence. The same program is pre-installed on the board, so you see something happening as soon as it is connected to the USB cable.

Leon

Reply to
Leon

Can you use the starter kit to program a part in your own design (using the ISP interface)? It looks like you can't do this, but maybe the board can be modified to bring the jtag pins from the PIC18 to a connector.

--
/*  jhallen@world.std.com AB1GO */                        /* Joseph H. Allen */
int a[1817];main(z,p,q,r){for(p=80;q+p-80;p-=2*a[p])for(z=9;z--;)q=3&(r=time(0)
+r*57)/7,q=q?q-1?q-2?1-p%79?-1:0:p%79-77?1:0:p158?-79:0,q?!a[p+q*2
]?a[p+=a[p+=q]=q]=q:0:0;for(;q++-1817;)printf(q%79?"%c":"%c\n"," #"[!a[q-1]]);}
Reply to
Joseph H Allen

Hi,

I wonder whether there is a good JTAG emulator? For the ARM devices I really like the J-Link and I saw that Segger has a press release that they support the PIC32 architecture with their OS embOS as well as with their graphics utility emWin.

formatting link
What I did not find (yet?) was an announcement that J-Link would also support the PIC32. Anybody knows what the best existing USB -> JTAG download / emulator for the PIC32 is?

On another note, this chip is a nice little micro with basic standard features but the more interesting communication components such as Ethernet, USB ... are missing yet and I would also like to see some 32- bit timers on a 32-bit micro. For ARM7, which I would consider a direct competitor, it is easy to buy a SAM7x, an LPC23xx or an STR9xx. I know that the STR9 is an ARM9 but with the existing FA silicon it just managed to exceed the performance of fast ARM7s by a small margin in tests that our company did.

An Schwob

Reply to
An Schwob in the USA

We can guess those will be on the road map :) Microchip have USB and Ethernet blocks, but maybe not in this fondry process yet.

They may even be there, but in stealth mode.

I found the PIC32 does have cascade modes, so two pairs of 16 bit blocks can function as 32 bits. You cannot capture from one timer, using the other timer's output (without looping pins), and there is no 'clear on capture' mode.

There is also no Quadrature, or Up/Down counting capability (?!) and a 12 bit ADC would have been more logical, surely ? [They DO have that block]

Shows how much memory bandwidth & bottlenecks matters in the real world :)

-jg

Reply to
Jim Granville

Can the internal PC point to external memory?

-Chris

-- | Christopher Cole, Cole Design and Development snipped-for-privacy@coledd.com | | Embedded Software Development and Electronic Design

formatting link
| | Akron, Ohio, USA 800-518-2154 |

Reply to
Christopher Cole

There is a 32bit core timer - that is, part of the core itself, not a peripheral. It is somewhat limited in its operational modes though.

--
Regards,
Richard.

+ http://www.FreeRTOS.org
14 official architecture ports, 1000 downloads per week.

+ http://www.SafeRTOS.com
Certified by TÜV as meeting the requirements for safety related systems.
Reply to
FreeRTOS.org

I don't think there is any off-chip code in the first releases (so it's like the AVR in that respect)

It does have this :

Parallel Master and Slave Port (PMP/PSP) with

8-Bit and 16-Bit Data and Up to 16 Address Lines

Which would give high bandwidth interface to CPLD/FPGA slaves, and SRAM expansion.

-jg

Reply to
Jim Granville

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.