Sonsivri
 
*
Welcome, Guest. Please login or register.
Did you miss your activation email?
December 04, 2016, 09:12:32 09:12


Login with username, password and session length


Pages: [1] 2 3  All
Print
Author Topic: cc5x  (Read 20920 times)
0 Members and 1 Guest are viewing this topic.
mark1st
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 3


« on: October 23, 2007, 01:55:57 13:55 »

Does anyone use cc5x (http://www.bknd.com/cc5x/index.shtml)? How it works?
I've heard it's the best compiler for PICmicro (code savings of 20-30% compared to other C compilers)
 Undecided
regards,
mark
« Last Edit: October 23, 2007, 01:57:48 13:57 by mark1st » Logged
programmer_100
V.I.P
Junior Member
*****
Offline Offline

Posts: 58

Thank You
-Given: 93
-Receive: 94


« Reply #1 on: October 24, 2007, 12:37:15 00:37 »

a very good compiler...

I agree, very good compiler, don't know about the code savings though, 30% might be a bit optimistic.
Logged
phamthaihoa
Newbie
*
Offline Offline

Posts: 8

Thank You
-Given: 8
-Receive: 2


« Reply #2 on: October 28, 2007, 03:32:40 03:32 »

a very good compiler...

I don't think so, it can't process number bigger than 16bit.
Logged
sonsivritwchen
Junior Member
**
Offline Offline

Posts: 37

Thank You
-Given: 18
-Receive: 15


« Reply #3 on: October 28, 2007, 01:00:57 13:00 »

From the website of cc5x. It support integer size from 8 to 32 bits. There could be some misunderstandings in the previous post.
Logged
robban
Senior Member
****
Offline Offline

Posts: 265

Thank You
-Given: 34
-Receive: 38


Warrior


WWW
« Reply #4 on: October 29, 2007, 02:38:34 14:38 »

Without licence the cc5x can output 1 k of hexcode but it's always possible to split the code...
If You integrate it with MPLAB, You can see the optimization level and how much code it saves.
Otherwise just put it in the %root% and You have all You need in just one folder.
« Last Edit: November 01, 2007, 11:07:08 23:07 by robban » Logged

Code Warrior
sam_des
Active Member
***
Offline Offline

Posts: 221

Thank You
-Given: 47
-Receive: 111


« Reply #5 on: October 30, 2007, 06:01:51 18:01 »

Hi,

Yes,a very good compiler & largly under-estimated due to lack of IDE & other flashy stuff.
It's just the command-line tool. Just have a look at all the help files it provides, you can see that whoever wrote this compiler has done great job. I've found no other C compiler which provides so much support for weird PIC architecture. Though it lacks some stuff which all C-programmers take for granted, it does generate compact code & with least RAM.

BTW,it does support 8,16,32 bit integers, 24,32-bit floats, 16,24 bit fixed points numbers.

I have been looking for crack of this for long time(Have tried some things myself, but.. Sad ).
It does allow many 1k modules linked by MPLAB linker, though at reduced optimization, so why bother.
Still, It will be nice to see this one cracked !!

sam_des


Logged

Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
recan
Guest
« Reply #6 on: November 02, 2007, 11:41:01 23:41 »

test-it... a red edition?
« Last Edit: November 02, 2007, 11:51:34 23:51 by recan » Logged
Bart
Guest
« Reply #7 on: November 03, 2007, 02:38:46 02:38 »

CC8e is the pic18 version... with same demo limits.... there is also a cc8etest version
which checks your code past the 1k limit ,, but wont generate any output and makes all assembly tags M000
Logged
sam_des
Active Member
***
Offline Offline

Posts: 221

Thank You
-Given: 47
-Receive: 111


« Reply #8 on: November 03, 2007, 08:00:02 20:00 »

Hello,

Thanks recan for RED Edition of cc5x.
Well, it differs from STANDARD & EXTENDED editions of cc5x in following areas...
1] No multitaksing
2] No 24/32-bit integers, 16/32-bit floating, 8/24/32-bit fixed point nos.
IT does support all the other features completely.

Your archive does not contain the license as said on cc5x home-page,but I was able to generate more than 1k code which is limit for FREE edition. Also all the optimizations are fully working. Though I have not tested on real h/w, it seems working nicely.

If anyone find other limitations, I'll be greatful to hear.

sam_des
Logged

Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
sam_des
Active Member
***
Offline Offline

Posts: 221

Thank You
-Given: 47
-Receive: 111


« Reply #9 on: November 04, 2007, 06:13:32 18:13 »

Hi,

I ported one of my PIC-14 projects to few C Compilers & here are the results--

PICC(3.249)       - ROM: 2492 Words, RAM: 91-114, Stack 7+1
WIZ-C(14)         - ROM: 2444 Words, RAM: 123,     Stack 6+1
HT-PIC(9.50 PL2)- ROM: 1959 Words, RAM: 113,     Stack 5+2
CC5X(3.2N RED)  - ROM: 1593 Words, RAM:  94,      Stack 4+2

All the compilers were configured for maximum optimization level.
Though CC5X has some limitations like single dim array, simplified math expressions etc, it seems
that when all other things are equal, CC5X is clearly a winner.

Can anyone share STANDARD or EXTENDED edition of cc5x ?

regards,

sam_des

Logged

Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
bugmike25
Junior Member
**
Offline Offline

Posts: 84

Thank You
-Given: 15
-Receive: 13


« Reply #10 on: November 04, 2007, 07:20:24 19:20 »

Does anyone have a cracked version for this program?
Logged
robban
Senior Member
****
Offline Offline

Posts: 265

Thank You
-Given: 34
-Receive: 38


Warrior


WWW
« Reply #11 on: November 05, 2007, 12:53:15 12:53 »

CC5x red: I've been fiddling around with this compiler and it is able(for some reasons) to output hex-files. But - sorry to say - it is full of bugs. I tried to compile the following code(among others) in the MPLAB environment(though my favourite is TextPad):

/* Crypto program. Let for instance putchar(c/c*2); and everything echoes back as garbage)
   echo characters, serial input/output for 16F84

   Serial communication (RS232) Note that PIC16F84 doesn't even have an UART module!
   
   one start bit, one stop bit, 8 data bits, no parity = 10 bits
   Baudrate: 9600 baud
   ser_in RB1, ser_out RB0 */
   
   #pragma config |= 0x3ff1 //(Fosc=XT, WDTE=off, PWRT=on, CP=off)

 
    bit putchar(char); //function prototype
    char getchar(void); //function prototype

   void main(void)
   {
      char c;
      PORTB = 0b00000001;
      TRISB = 0b01111110;
      while(1)
         {
            c = getchar();   //input one character
            if(c == '\r')
               {
                  putchar('\r');   //line feed
                  putchar('\n');   //carriage return
               }
            else putchar(c);      //echo the character
   
            
      /*Functions*/
      
      bit putchar(char d_out)   //sends one character. Baudrate = 9600 = 104.167 usec/bit
      {
         char bitCount, ti;
         if (d_out == '\0') return 0;   //refuse to send "end of string"
         PORTB.0 = 0 //set startbit
         for(bitCount = 10; bitCount 0; bitCount--)
            {
            //delay one bit 104 usec at 4 MHz (5+30*3-1+1+9=104)
            ti = 30;do;while(--ti 0); nop()
            Carry = 1;            //stop bit
            d_out = rr(d_out);            //rotate right trhough carry
            PORTB.0 = Carry;
            }
      return 1 // all done
      }
      
      char getchar(void)      //receives one character
      {

      //here we use a delay of 1.5 bit = 156 usec
      char d_in, bitCount, ti;
   while(PORTB.1 ==1)   //wait for startbit
      
         //delay 1.5 bit 156 usec @ 4 MHz (5+47*3-1+2+9=156)
         ti = 47; do; while(ti 0); bitCount--)
            {
            Carry = PORTB.1;
            d_in = rr(d_in);   // rotate carry right
               ti = 30; do; while(--ti 0); nop();
            }
         return d_in;
      }
***********************************************************************

Here's what the compiler tells me:

Executing: "C:\CC5X\CC5X.EXE" echo84.c -CC -fINHX8M -p16F84 -a -L -Q -V -FM
CC5X Version 3.2N, Copyright (c) B Knudsen Data, Norway 1992-2006, No. 1705
 --> RED edition, 8-16 bit int, 24 bit float, 8k code
echo84.c:

      
      bit putchar(char d_out)   //sends one character. Baudrate = 9600 = 104.167 usec/bit
                           ^------
Error[1] C:\CC5X\echo84\echo84.c 34 : Syntax error
 (The expression must be corrected. The marker ^------ shows
 the approximate position where CC5X gives up. The documentation
 should be checked if the cause is not obvious)

Error options: -ew: no warning details  -ed: no error details  -eL: list details
BUILD FAILED: Mon Nov 05 12:48:39 2007

Any clever remarks? All the example code is working OK. I don't have the energy to inform Knudsen, all they do is to give me a "Thank You" and forget me


//Cheers Robban
      
            
               
   
« Last Edit: November 05, 2007, 01:00:25 13:00 by robban » Logged

Code Warrior
recan
Guest
« Reply #12 on: November 05, 2007, 01:44:25 13:44 »

try this correction...

{
      char c;
      PORTB = 0b00000001;
      TRISB = 0b01111110;
      while(1)
         {
            c = getchar();   //input one character
            if(c == '\r')
               {
                  putchar('\r');   //line feed
                  putchar('\n');   //carriage return
               }
            else putchar(c);      //echo the character
////////////////////
         {   
{
//////////////////
 
           
      /*Functions*/
     
      bit putchar(char d_out)   //sends one character. Baudrate = 9600 = 104.167 usec/bit
Logged
ipek
Junior Member
**
 Muted
Offline Offline

Posts: 95

Thank You
-Given: 54
-Receive: 79


« Reply #13 on: November 05, 2007, 02:32:46 14:32 »

hello avaible old version cracked unlimit & editor only by path change very easy
v3.2g only 12xx and 16xx compiled 18xx not enought

http://rapidshare.com/files/67595827/ccccccc5x.rar.html
Logged
sam_des
Active Member
***
Offline Offline

Posts: 221

Thank You
-Given: 47
-Receive: 111


« Reply #14 on: November 06, 2007, 05:44:44 17:44 »

Hi robban,

Which C compiler accepted your program ?  Huh
Just tell me & I will stay away from it for rest of my life.  Grin

Here are some of the errors in your program, all marked "// ERROR //"
I got these just by reading your program & I haven't bothered to lint/compile. There may be more of them.  Roll Eyes

1]
        else putchar(c);        //echo the character
    //ERROR// missing closing bracket
}

2]
    PORTB.0 = 0 //ERROR// missing semicolon                     //set startbit
3]
    for(bitCount = 10; bitCount 0; bitCount--)//ERROR//missing condition in for()
4]
         ti = 30;do;while(--ti 0); nop() //ERROR// missing condition in while
                                                  //ERROR// missing semicolon at the after nop()
                                                  //ERROR// Syntax of do-while() loop.
5]
    return 1 //ERROR// missing semicolon                        // all done
6]
    while(PORTB.1 ==1) //ERROR//missing semicolon           //wait for startbit
7]
    ti = 47; do; while(ti 0); bitCount--; //ERROR//missing condition in while()
8]
        ti = 30; do; while(--ti 0); nop(); //ERROR// missing condition in while()
                                                    //ERROR// Syntax of do-while() loop

No wonder Knudsen guys said Thank You & forgot to reply.
They are not there to teach you C.  Embarrassed

I hope you will start using tools like "lint".

& don't forget to tell me which C compiler did accepted this. You will do me a great favour.  Wink

BTW thanks ipek for your post. It seems to generate code for more than 1k,but does bot generate other files such as listing/asm/fcs etc. Also all other demo restrications remain. Sad

regards,
sam_des
« Last Edit: November 06, 2007, 06:00:46 18:00 by sam_des » Logged

Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
robban
Senior Member
****
Offline Offline

Posts: 265

Thank You
-Given: 34
-Receive: 38


Warrior


WWW
« Reply #15 on: November 06, 2007, 07:30:50 19:30 »

Thanx for Yr. effort.
I got this code snippet from a web-based university in a course in Mechatronics. This snippet is solely intended for the CC5X. I have not tried it on another compiler, and I think I never will. CC5X is not ANSI and is known for it's ability to integrate asm-code and C. In my opinion, it's better to use MPASM(35 instructions) with tons of example code.
If You manage to compile properly, let me know...
Logged

Code Warrior
sam_des
Active Member
***
Offline Offline

Posts: 221

Thank You
-Given: 47
-Receive: 111


« Reply #16 on: November 06, 2007, 08:38:54 20:38 »

Hello robban,

Here is your code which can now be compiled using cc5x RED 3.2N. I've changed it somwhat, but still it is quite original code you posted.

Code:
/*
   Crypto program. Let for instance putchar(c/c*2); and everything echoes back as garbage)
   echo characters, serial input/output for 16F84

   Serial communication (RS232) Note that PIC16F84 doesn't even have an UART module!
   
   one start bit, one stop bit, 8 data bits, no parity = 10 bits
   Baudrate: 9600 baud
   ser_in RB1, ser_out RB0
*/
   
#pragma config |= 0x3ff1        //(Fosc=XT, WDTE=off, PWRT=on, CP=off)

 
bit putchar(char);              //function prototype
char getchar(void);             //function prototype

void main(void)
{
    char c;
    PORTB = 0b00000001;
    TRISB = 0b01111110;
    while(1)
    {
        c = getchar();          //input one character
        if('r' == c)
        {
            putchar('\r');      //line feed
            putchar('\n');      //carriage return
        }
        else putchar(c);        //echo the character  ??? Return value not checked ???
    }
}
   
           
/*Functions*/
     
bit putchar(char d_out)              //sends one character. Baudrate = 9600 = 104.167 usec/bit
{
    char bitCount, ti;

    if ('\0' == d_out ){ return 0; }    //refuse to send "end of string"

    PORTB.0 = 0;                      //set startbit
    for(bitCount = 10; bitCount!=0; bitCount--)
    {
        //delay one bit 104 usec at 4 MHz (5+30*3-1+1+9=104)

// sam_des -- ??? Check this delay whether this is indeed 104uS @ 4MHz ???
        ti = 30;
do {
  nop();
}while(--ti);

        Carry = 1;                  //stop bit
        d_out = rr(d_out);          //rotate right trhough carry
        PORTB.0 = Carry;
    }

    //??? sam_des -- Stop Bit ???
    return 1; // all done
}


     
char getchar(void)                  //receives one character
{

    //here we use a delay of 1.5 bit = 156 usec
    char d_in, bitCount, ti;

    while(PORTB.1);            //wait for startbit
     
 
    // sam_des -- ??? Added check for 10 bits in recved char ???
    for( bitCount=10; bitCount!=0; bitCount-- )
    {
    //delay 1.5 bit 156 usec @ 4 MHz (5+47*3-1+2+9=156)

// sam_des -- ??? Check if this delay is indeed 156uS @ 4MHz ???
    ti = 47;
do {
}while(--ti);

        Carry = PORTB.1;
        d_in = rr(d_in);            // rotate carry right

        ti = 30;
do
        {
   nop();
        }while(--ti);
    }
    return d_in;
}

But I've no doubts that this code will NOT work.
Whoever wrote this code, must have forgot half-way what he/she intended to do  Shocked

Some suggestions, Few of them, I've added into the code above. Others..
1] putchar() - for() must do the delay for stop-bit also after 8 char bits.
                  - Check the return value of putchar().
2] getchar() - We must check each bit atleast 3-times during each bit-period & take it as 1 or 0
                   depending max. no. of 0s or 1s deteced.
                 - Since Tx & Rx bauds are same(9600), bit period is same(104uS) in both cases.

regards,
sam_des
Logged

Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
robban
Senior Member
****
Offline Offline

Posts: 265

Thank You
-Given: 34
-Receive: 38


Warrior


WWW
« Reply #17 on: November 06, 2007, 10:17:01 22:17 »

Thanx sam_des!
I've must have been tired yesterday, I always sit too long without break, but here's the corrected code:

/* echo84.c echo charcters, serial input/output ( for 16F84 without UART) */
/*
SERIAL COMMUNICATION (RS232)
============================
One start bit, one stop bit, 8 data bit, no parity = 10 bit.
Baudrate:
9600 baud = 104.167 usec. per bit. //could be increased to 115000 Kbaud
ser_in RB1 ser_out RB0
*/
/* Circuitprogrammer Configuration: FOSC=XT, WDTE=off, PWRT=on,
CP=off
*/
#pragma config |= 0x3ff1
bit putchar( char ); /* function prototype */
char getchar( void ); /* function prototype */
void main( void)
{
char c;
PORTB = 0b00000001;
TRISB = 0b11111110;
while( 1)
{
c = getchar( ); /* input 1 character */
if( c == '\r')
{
putchar('\r');
putchar('\n');
} /* "Line Feed" and "Carrige Return" */
else putchar(c); /* echo the character */
}
}

/*
Functions
=========
*/
bit putchar( char d_out ) /* sends one char */
{
char bitCount, ti;
/* One start bit, one stop bit, 8 data bit, no parity = 10 bit. */
/* Baudrate: 9600 baud = 104.167 usec. per bit. */
if(d_out == '\0') return 0; /* refuse to send "end of string" */
PORTB.0 = 0; /* set startbit */
for ( bitCount = 10; bitCount>0 ; bitCount-- )
{
/* delay one bit 104 usec at 4 MHz (5+30*3-1+1+9=104) */
ti = 30; do ; while( --ti > 0); nop();
Carry = 1; /* stopbit */
d_out = rr( d_out ); /* Rotate Right through Carry */
PORTB.0 = Carry;
}
return 1; /* all done */
}
char getchar( void ) /* recieves one char */
{
/* One start bit, one stop bit, 8 data bit, no parity = 10 bit. */
/* Baudrate: 9600 baud = 104.167 usec. per bit. */
char d_in, bitCount, ti;
while( PORTB.1 == 1 ) /* wait for startbit */ ;
/* delay 1,5 bit 156 usec at 4 MHz ( 5+47*3-1+2+9=156) */
ti = 47; do ; while( --ti > 0); nop2();
for( bitCount = 8; bitCount > 0 ; bitCount--)
{
Carry = PORTB.1;
d_in = rr( d_in); /* rotate carry */
/* delay one bit 104 usec at 4 MHz (5+30*3-1+1+9=104) */
ti = 30; do ; while( --ti > 0); nop();
}
return d_in;
}

//Compiles alright. As You can see, the CC5X syntax is a bit unusual
« Last Edit: November 14, 2007, 07:20:06 07:20 by robban » Logged

Code Warrior
sam_des
Active Member
***
Offline Offline

Posts: 221

Thank You
-Given: 47
-Receive: 111


« Reply #18 on: November 07, 2007, 12:26:59 12:26 »

Hi robban,

Glad you get that working Smiley

But I don't understand why you say that cc5x has unusual syntax ?? I think any ANSI C compiler will accept this as valid program.( with some mods which are PIC dependent)

No doubt cc5x has limitations regarding array dims & complex expression evaluation,but I guess they are rather design decisions due to lack of stack in PIC-14.

I would like to add that whoever wrote your code has very bad taste of indentation & other c-style issues. That's what make it look rather strange.
e.g. do; while(--ti > 0);
Though this is a valid C-statement, but it is better to have it like do{ }while(--ti>0); or simply as while(--ti>0) without do.

reagrds,
sam_des
Logged

Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
robban
Senior Member
****
Offline Offline

Posts: 265

Thank You
-Given: 34
-Receive: 38


Warrior


WWW
« Reply #19 on: November 07, 2007, 01:56:57 13:56 »

Hi sam_des!
Well, I admit the syntax isn't quite unusual in the above example, and the indentation is solely my responisibility.
However, here's another code snippet(Hello World!) which shows that the CC5X can't handle string constants in the usual way, but there is a built -in workaround with skip(x) and #pragma return[]
Ex: ANSI_C allows: text1[] = "Hello World!\r\n";

In Assembler it will look like this:

text1   addwf   PCL,F   ;jump indirect W(working register
          retlw    0x48     ; 'H'
          retlw    0x65     ; 'e'
          retlw    0x6c     ; 'l'
          retlw    0x6c     ; 'l'
          retlw    0x6f      ;'o'

There's no obvious way to do this in C, so the CC5X has this skip(x)-function. The above ANSI-C code in CC5X is:

char text1(char x)
{
   skip(x);
   #pragma return[] = "Hello World!" '\r' '\n' '\0'
The skip function just skip x instructions and the #pragma return[] gives You the opportunity to write a whole string.

Here's the code:
/* hello62x.c "Hello World!" program for 16F628    */
/* 9600 baud  */

#include "16f628.h"
#pragma config |= 0x3f90
/*  function prototypes  */
void initserial( void );        /* from seriF62x.c */
bit putchar( char );            /* from seriF62x.c */
void delay( char );             /* from delays.c   */
char text1( char );

#include "seriF62x.c"
#include "delays.c"

void main(void)
{
  char i;
/* Initialise serial port                          */
  initserial();
  putchar('\r'); putchar('\n');

/* print textstring text1                          */
  for(i = 0; putchar( text1(i))  ; i++) ;
  delay(10);
}


/* String to write. Note the special syntax with skip(x) and #pragma return[], it's like a loop.
char text1( char x)
{
   skip(x);
   #pragma return[] = "Hello World!" '\0'
}
//Cheers Robban
Logged

Code Warrior
sam_des
Active Member
***
Offline Offline

Posts: 221

Thank You
-Given: 47
-Receive: 111


« Reply #20 on: November 07, 2007, 07:52:53 19:52 »

Hello rabban,

cc5x does accepts tranditional C-string notation- const char Hello[] = "Hello World\n\r";
Your example just shows one of the ways by which string can be added to cc5x program.

It is worth noting that cc5x also --

1] Allows to store ASCII strings as Packed ASCII(2 char/14-bit word) for CPUs which can read their code-memory. Compiler even detects whether 'retlw' or code-read will be more efficient for a particular string. For large string data this reduces the code-size nearly to half. As far as I know no other C-compiler for PIC-14 allows such packed ASCII.

3] cc5x does intelligent literal-folding, i.e. It merges 2 similar strings into 1. See cc5x manual.
This feature is also unknown in other PIC compilers.

3] For arrays of strings you can do like-
    struct {
       const char *s;         // In ROM
    }StrArray[] = {
        "str1", "str2", "str3" // In ROM
    };

   Now you can access any of string as "StrArray[index].s"

reagrds,
sam_des

Logged

Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
robban
Senior Member
****
Offline Offline

Posts: 265

Thank You
-Given: 34
-Receive: 38


Warrior


WWW
« Reply #21 on: November 08, 2007, 04:56:04 04:56 »

Thanx sam_des for taking the effort to thoroughly read the CC5X manual Smiley
Ambitious guy You are!
Have You tried to exceed the 8 k hex-file yet? There are some limitation when You do that. In MPLAB they always ask me for a linker-script when splitting several C-files into two or more. The manual also warn agaisnt it, due to reduced optimization among other things.

On the other hand, when I use TextPad(or whatever Yr.choice is) it always comilpe correct(provided You put all the necessasry files in one folder and put .c-files and headers in the right context).
OK, I miss the MPLAB SIM, but I have other means to debug my projects(LED:S and output of data when it comes to sensors and similar.

I also have a function that let's You output a reult to another file. Useful for all sorts of math and other appliances. Use bloodshed devcpp. May we can port it to CC5X.

Cheers robban
« Last Edit: November 08, 2007, 05:00:31 05:00 by robban » Logged

Code Warrior
sam_des
Active Member
***
Offline Offline

Posts: 221

Thank You
-Given: 47
-Receive: 111


« Reply #22 on: November 08, 2007, 11:28:32 11:28 »

Hello robabn,

I like to know my tools well. So I always spend some time reading manuals & experimenting with tool,to see if tool really does what manual says. Well, experience is the best teacher & i had plenty of it in the past.  Wink

8k hex ? 8kWords or 8kBytes ?
Till now I haven't experience any problems when my hex-size reached 7700 kwords.
What limitations you got ? May be I have overlooked something !
And cc5x supports only PIC with 14-BIT Program Counter & thus don't need to support code excess of 8kWords(2^14 = 16384 bytes or 8192 words).

As to your MPLAB problem - use only your file containing main() & other C/H includes as source file & don't include other "C" files in MPLAB project. It will now compile correctly without asking for Linker scripts. You will able to simulate C or ASM level code. Mind that cc5x generates only COD file & not COFF. Hence there is no type information for C-variables in COD !

& my choice for editor is JFE & Programmer's Notepad, both support C & work very well with makefiles - my normal method of compile.

regards,
sam_des
Logged

Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
robban
Senior Member
****
Offline Offline

Posts: 265

Thank You
-Given: 34
-Receive: 38


Warrior


WWW
« Reply #23 on: November 08, 2007, 02:31:12 14:31 »

Thanx sam_des!
According to Knudsen, the red-edition of CC5X is capable of 8 K hex-code.
I dubt I'll will use more(at least in one module). Do Yo have a huge -code just for testing. There are not many around, since people tend to use(or crack) expensive stuff.

I used to use Jen's file editor(when CC5x was a novelty) earlier, but as I said - for me - TexPad works better(old habit dies slowly). I am glad You really take the time to study the CC5X manual. Myself I work with accelerometer's and found I got most control using assembly. The MPLAB does have a SIM, but it's too tedious to arrange stimulus for different circumstances.

By the way, www.eleccenter.com is selling a USB-ICD2 clone for 72 $ incl. freight. It is possible to debug both in C and asm(unless You mix them two).
I bought one a year ago, no problem.

There is also a serial programmer (abt. 36 bucks)which could be used as a test gadget:
PIC-PG1 - ICSP SERIAL PORT DONGLE PROGRAMMER



FEATURES:

PIC-PG1 is programmer based on JDM design which takes all necessary signals and power supply from RS232 serial port. It uses 6 pin 0.1" step ICSP connector to connect to target board with the PIC microcontroller.
The supported devices depend on the current version of ICPROG software.
Dimensions 50x30 mm (1.95x1.2") + 30 cm (12") cable
DOCUMENTS:

PIC-PG1.pdf - Users manual
PIC-PG1 tutorial
NOTE: The programmer may not work with low power serial interfaces - i.e. laptop or notebook serial ports. USB to serial cables have also not been proven to work.
HARDWARE:

PIC-PG1 schematic
PIC ICSP connector
SOFTWARE:
ICPROG from Bonny Gijzen is the best software for serial ports programmers we ever know. And it's FREE!
WinPIC - Great new software by Wolfgang "Wolf" Bnscher. Supports all the popular flash PICs, as well as many of the newly released PICs! Use this software for support for the 16F628A, 16F87, and 16F88.
WinPIC in Japanese version.

Peronally I prefer the WinPIC, because You are able to define Yr. own PIC:s in a device.INI instead of defined in PIC hardware. And it's also free.

Cheers robban
Logged

Code Warrior
robban
Senior Member
****
Offline Offline

Posts: 265

Thank You
-Given: 34
-Receive: 38


Warrior


WWW
« Reply #24 on: November 09, 2007, 01:44:21 13:44 »

http://www.bknd.com/cc5x/downl-prof.shtml
Logged

Code Warrior
Pages: [1] 2 3  All
Print
Jump to:  


DISCLAIMER
WE DONT HOST ANY ILLEGAL FILES ON THE SERVER
USE CONTACT US TO REPORT ILLEGAL FILES
ADMINISTRATORS CANNOT BE HELD RESPONSIBLE FOR USERS POSTS AND LINKS

... Copyright 2003-2999 Sonsivri.to ...
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines LLC | HarzeM Dilber MC