Jump to content
43oh

timotet

Members
  • Content Count

    223
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by timotet

  1. Bluehash your the man

     

    One thing you can do is remove any unused variables or optimize. If you dont know how to do that, I'll walk you through.

    Thanks for taking the time to help with this.

     

    the MSP430g2231 has 128bytes of RAM, which is 80h.

    Well now that makes sense!

     

    Do you have a chip with bigger memory.

    yes I do. I think the first post uses the g2211

    I was trying to use a G2201, same specs as G2211 as far as memory goes

     

     

    so how to optimize?

  2. ok changed from 50 to 150 and from 50 to 0x96.

     

    error reads:

     

    run placement fails for object ".stack", size 0x96 (page 0). Available ranges: RAM size: 0x80 unused: 0x12 max hole: 0x12 music line 0 1303938456021 813

     

    now map file reads:

    .stack 0 00000000 00000096 FAILED TO ALLOCATE

     

     

    thanks

  3. as per the instructions in the post you sent me to ,I looked up the stack size for my project and it said 50.

    So I then changed it to 80, didnt work, so I tried 100 and that didnt work either.

    The map file I posted is for my project with the stack set back to 50.

     

    decimal 50 == 0x32

    decimal 80 == 0x50

    decimal 100 == 0x64

     

    Is this what you were looking for?

     

    does mspgcc allocate more stack than ccs?

     

    thanks

  4. here it is :

    ******************************************************************************
          MSP430 Evaluation Linker PC v3.3.3                      
    ******************************************************************************
    >> Linked Wed Apr 27 12:40:40 2011
    
    OUTPUT FILE NAME:   
    ENTRY POINT SYMBOL: "_c_int00"  address: 0000fc80
    
    
    MEMORY CONFIGURATION
    
            name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
     SFR                   00000000   00000010  00000000  00000010  RWIX
     PERIPHERALS_8BIT      00000010   000000f0  00000000  000000f0  RWIX
     PERIPHERALS_16BIT     00000100   00000100  00000000  00000100  RWIX
     RAM                   00000200   00000080  0000006e  00000012  RWIX
     INFOD                 00001000   00000040  00000000  00000040  RWIX
     INFOC                 00001040   00000040  00000000  00000040  RWIX
     INFOB                 00001080   00000040  00000000  00000040  RWIX
     INFOA                 000010c0   00000040  00000000  00000040  RWIX
     FLASH                 0000f800   000007e0  00000676  0000016a  RWIX
     INT00                 0000ffe0   00000002  00000000  00000002  RWIX
     INT01                 0000ffe2   00000002  00000000  00000002  RWIX
     INT02                 0000ffe4   00000002  00000000  00000002  RWIX
     INT03                 0000ffe6   00000002  00000000  00000002  RWIX
     INT04                 0000ffe8   00000002  00000000  00000002  RWIX
     INT05                 0000ffea   00000002  00000000  00000002  RWIX
     INT06                 0000ffec   00000002  00000000  00000002  RWIX
     INT07                 0000ffee   00000002  00000000  00000002  RWIX
     INT08                 0000fff0   00000002  00000000  00000002  RWIX
     INT09                 0000fff2   00000002  00000000  00000002  RWIX
     INT10                 0000fff4   00000002  00000002  00000000  RWIX
     INT11                 0000fff6   00000002  00000000  00000002  RWIX
     INT12                 0000fff8   00000002  00000000  00000002  RWIX
     INT13                 0000fffa   00000002  00000000  00000002  RWIX
     INT14                 0000fffc   00000002  00000000  00000002  RWIX
     RESET                 0000fffe   00000002  00000002  00000000  RWIX
    
    
    SECTION ALLOCATION MAP
    
    output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .stack     0    00000000    00000064     FAILED TO ALLOCATE
    .pinit     0    0000f800    00000000     UNINITIALIZED
    
    .bss       0    00000200    0000006e     UNINITIALIZED
                     00000200    00000066     music.obj (.bss)
                     00000266    00000004     rts430.lib : _lock.obj (.bss)
                     0000026a    00000004                : boot.obj (.bss)
    
    .text      0    0000f800    000004fc     
                     0000f800    00000334     music.obj (.text:main)
                     0000fb34    00000058     rts430.lib : div32u.obj (.text)
                     0000fb8c    00000046                : autoinit.obj (.text:_auto_init)
                     0000fbd2    00000042     music.obj (.text:play)
                     0000fc14    00000040     rts430.lib : div32s.obj (.text)
                     0000fc54    0000002c     music.obj (.text:delay)
                     0000fc80    00000026     rts430.lib : boot.obj (.text:_c_int00_noexit)
                     0000fca6    00000014                : mult16.obj (.text)
                     0000fcba    00000012                : memcpy.obj (.text:memcpy)
                     0000fccc    00000010                : epilog.obj (.text)
                     0000fcdc    0000000c     music.obj (.text:stop)
                     0000fce8    0000000a     music.obj (.text:WDT_ISR)
                     0000fcf2    00000004     rts430.lib : pre_init.obj (.text:_system_pre_init)
                     0000fcf6    00000004                : exit.obj (.text:abort)
                     0000fcfa    00000002                : _lock.obj (.text:_nop)
    
    .const     0    0000fcfc    00000106     
                     0000fcfc    00000106     music.obj (.const:.string)
    
    .cinit     0    0000fe02    00000074     
                     0000fe02    00000072     music.obj (.cinit)
                     0000fe74    00000002     --HOLE-- [fill = 0]
    
    .int10     0    0000fff4    00000002     
                     0000fff4    00000002     music.obj (.int10)
    
    .reset     0    0000fffe    00000002     
                     0000fffe    00000002     rts430.lib : boot.obj (.reset)
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    address    name
    --------   ----
    00000200   .bss
    0000f800   .text
    00000057   BCSCTL1
    00000058   BCSCTL2
    00000053   BCSCTL3
    0000fcf6   C$$EXIT
    000010ff   CALBC1_1MHZ
    000010fe   CALDCO_1MHZ
    00000056   DCOCTL
    00000128   FCTL1
    0000012a   FCTL2
    0000012c   FCTL3
    00000000   IE1
    00000002   IFG1
    00000022   P1DIR
    00000025   P1IE
    00000024   P1IES
    00000023   P1IFG
    00000020   P1IN
    00000021   P1OUT
    00000027   P1REN
    00000026   P1SEL
    0000002a   P2DIR
    0000002d   P2IE
    0000002c   P2IES
    0000002b   P2IFG
    00000028   P2IN
    00000029   P2OUT
    0000002f   P2REN
    0000002e   P2SEL
    00000172   TACCR0
    00000174   TACCR1
    00000162   TACCTL0
    00000164   TACCTL1
    00000160   TACTL
    0000012e   TAIV
    00000170   TAR
    00000120   WDTCTL
    0000fce8   WDT_ISR
    00000064   __STACK_END
    00000064   __STACK_SIZE
    00000001   __TI_args_main
    00000001   __TI_auto_init
    00000001   __TI_exit
    ffffffff   __binit__
    00000200   __bss__
    ffffffff   __c_args__
    0000fe02   __cinit__
    0000fc14   __divli
    0000fb34   __divul
    0000026e   __end__
    0000fcfc   __etext__
    0000fca6   __mpyi
    ffffffff   __pinit__
    0000fc14   __remli
    0000fb34   __remul
    0000f800   __text__
    0000fb8c   _auto_init
    0000fc80   _c_int00
    0000fc80   _c_int00_noexit
    0000026a   _cleanup_ptr
    0000026c   _dtors_ptr
    00000266   _lock
    0000fcfa   _nop
    0000fffe   _reset_vector
    00000000   _stack
    0000fcf2   _system_pre_init
    00000268   _unlock
    0000fcf6   abort
    ffffffff   binit
    0000fe02   cinit
    0000fc54   delay
    0000026e   end
    0000fcfc   etext
    0000fcd8   func_epilog_1
    0000fcd6   func_epilog_2
    0000fcd4   func_epilog_3
    0000fcd2   func_epilog_4
    0000fcd0   func_epilog_5
    0000fcce   func_epilog_6
    0000fccc   func_epilog_7
    0000f800   main
    0000fcba   memcpy
    00000202   notes
    ffffffff   pinit
    0000fbd2   play
    00000264   song
    0000fcdc   stop
    00000200   time
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    address    name
    --------   ----
    00000000   IE1
    00000000   _stack
    00000001   __TI_args_main
    00000001   __TI_auto_init
    00000001   __TI_exit
    00000002   IFG1
    00000020   P1IN
    00000021   P1OUT
    00000022   P1DIR
    00000023   P1IFG
    00000024   P1IES
    00000025   P1IE
    00000026   P1SEL
    00000027   P1REN
    00000028   P2IN
    00000029   P2OUT
    0000002a   P2DIR
    0000002b   P2IFG
    0000002c   P2IES
    0000002d   P2IE
    0000002e   P2SEL
    0000002f   P2REN
    00000053   BCSCTL3
    00000056   DCOCTL
    00000057   BCSCTL1
    00000058   BCSCTL2
    00000064   __STACK_END
    00000064   __STACK_SIZE
    00000120   WDTCTL
    00000128   FCTL1
    0000012a   FCTL2
    0000012c   FCTL3
    0000012e   TAIV
    00000160   TACTL
    00000162   TACCTL0
    00000164   TACCTL1
    00000170   TAR
    00000172   TACCR0
    00000174   TACCR1
    00000200   .bss
    00000200   __bss__
    00000200   time
    00000202   notes
    00000264   song
    00000266   _lock
    00000268   _unlock
    0000026a   _cleanup_ptr
    0000026c   _dtors_ptr
    0000026e   __end__
    0000026e   end
    000010fe   CALDCO_1MHZ
    000010ff   CALBC1_1MHZ
    0000f800   .text
    0000f800   __text__
    0000f800   main
    0000fb34   __divul
    0000fb34   __remul
    0000fb8c   _auto_init
    0000fbd2   play
    0000fc14   __divli
    0000fc14   __remli
    0000fc54   delay
    0000fc80   _c_int00
    0000fc80   _c_int00_noexit
    0000fca6   __mpyi
    0000fcba   memcpy
    0000fccc   func_epilog_7
    0000fcce   func_epilog_6
    0000fcd0   func_epilog_5
    0000fcd2   func_epilog_4
    0000fcd4   func_epilog_3
    0000fcd6   func_epilog_2
    0000fcd8   func_epilog_1
    0000fcdc   stop
    0000fce8   WDT_ISR
    0000fcf2   _system_pre_init
    0000fcf6   C$$EXIT
    0000fcf6   abort
    0000fcfa   _nop
    0000fcfc   __etext__
    0000fcfc   etext
    0000fe02   __cinit__
    0000fe02   cinit
    0000fffe   _reset_vector
    ffffffff   __binit__
    ffffffff   __c_args__
    ffffffff   __pinit__
    ffffffff   binit
    ffffffff   pinit
    
    [89 symbols]
    
    

     

    didnt post it before because its kinda long

    thanks

  5. thanks bluehash

     

    I tried increasing the stack size , to no avail.

    What exactly am I looking for in the map file?

     

    here is what it says for RAM:

     

    name origin length used unused attr fill

    ---------------------- -------- --------- -------- -------- ---- --------

    RAM 00000200 00000080 0000006e 00000012 RWIX

     

    thanks

  6. Ive been trying to get this to compile with CCS, with no luck.

    could someone give some advice on what to change?

     

    this is the error:

    run placement fails for object ".stack", size 0x32 (page 0). Available ranges: RAM size: 0x80 unused: 0x12 max hole: 0x12

     

    sofar Ive changed:

     

    eint(); changed to _BIS_SR(GIE); //enable interrupts

    nop(); changed to return

    dint(); I dont know what this does so I commented it out

     

    thanks

    tim

     

    maybe someday when I feel like I have a small grasp on what Im doing with CCS and coding in general Ill give mspgcc a shot.

  7. So Ive managed to get RobG's code to work on the Wintek 1 x 24 Character LCD Display Module that I got awhile ago from

    Electronic Goldmine for $1.99.

     

    Here's the link: http://www.goldmine-elec-products.com/p ... ber=G15318

     

    There are only 2 cons so far:

    1 It takes 5v to power the display.

    2 It takes 4 wires instead of 3. ( you have to toggle the reset pin on the display.)

     

    logic seems to work fine at the 3.6v the msp430 puts out.

     

     

    here's the code:

     
    
    /*
      hex instructions for display setup
      0x1C == LCD power control         PW
      0x14 == Display on/off            DO
      0x28 == Display Control sets lines ect.   DC
      0x4F == Contrast Set              CN
      0xE0 == DDRAM address set         DA
    
    */  
       #include "msp430g2452.h"
    
       #define sendData(data) send(data, 1)
       #define sendInstruction(data) send(data, 0)
       #define clearDisplay() sendInstruction(0x01); _delay_cycles(2000)
       #define DATAPIN BIT6
       #define CLOCKPIN BIT5
       #define ENABLEPIN BIT4
       #define RESETPIN BIT7
    
       void send(char data, char registerSelect);
       void sendDataArray(char data[], char length);
       //void resetPin(unsigned int bit);
       void initDisplay(void);
    
       char charIndex = 0;
       char bitCounter = 0;
    
       const char message1[8] = {0x34,0x33,0x6F,0x68,0x2E,0x63,0x6F,0x6D};
       char message2[11] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xA4};
       const char message3[16] = {0x34,0x2D,0x70,0x69,0x6E,0x20,0x73,0x65,0x72,0x69,0x61,0x6C,0x20,0x4C,0x43,0x44};
       char message4[12] = {0x54,0x68,0x61,0x6E,0x6B,0x73,0x20,0xAE,0x6F,0x62,0x47,0x21};
       void main(void)
       {
          WDTCTL = WDTPW + WDTHOLD;
    
          _delay_cycles(100000);
          P1DIR |= ENABLEPIN + CLOCKPIN + DATAPIN + RESETPIN; // sets ENABLEPIN,CLOCKPIN,DATAPIN and RESETPIN to outputs
          P1OUT &= ~(CLOCKPIN + DATAPIN + RESETPIN);        // sets CLOCKPIN,RESETPIN and DATAPIN low
          P1OUT |= ENABLEPIN;                               // sets ENABLEPIN high
    
          initDisplay();                              // initiate display
    
          while(1) {
               // send const message using sendDataArray
             clearDisplay();
             sendDataArray((char *)message1, 8);
    
             _delay_cycles(3000000);
    
             // send message using sendDataArray
             clearDisplay();
             sendDataArray(message2, 11);
    
               _delay_cycles(3000000);
    
             // send message one char at the time
               clearDisplay();
               charIndex = 0;
               while(charIndex < 16) {
                  sendData(message3[charIndex]);
                  charIndex++;
               }
    
             _delay_cycles(3000000);
    
               // send message using sendDataArray
             clearDisplay();
             sendDataArray(message4, 12);
    
               _delay_cycles(3000000);
            }
       }
    
       void sendDataArray(char data[], char length) {
          charIndex = 0;
            while(charIndex < length) {
               sendData(data[charIndex]);
               charIndex++;
            }
       }
    
       void send(char data, char registerSelect) {
          bitCounter = 0;
          while(bitCounter < 8) {
               (data & BIT7) ? (P1OUT |= DATAPIN) : (P1OUT &= ~DATAPIN);
               data <<= 1;
               P1OUT |= CLOCKPIN;
               P1OUT &= ~CLOCKPIN;
               bitCounter++;
            }
            registerSelect ? (P1OUT |= DATAPIN) : (P1OUT &= ~DATAPIN);
            P1OUT &= ~ENABLEPIN;
            _delay_cycles(3000);
            P1OUT |= ENABLEPIN;
            _delay_cycles(10000);
            P1OUT &= ~ENABLEPIN;
       }
    
       void initDisplay(void) {
       	P1OUT &= ~RESETPIN;                     // RESETPIN low
           _delay_cycles(10000);
           P1OUT |= RESETPIN;                      //RESETPIN high
       	sendInstruction(0x1C);             //PW
       	sendInstruction(0x14);             //DO   0x14
       	sendInstruction(0x28);             //DC   0x28
       	sendInstruction(0x4F);             //CN   0x4F
       	sendInstruction(0xE0);             //DA
       	//sendInstruction(0x72);             //SC
       	//sendInstruction(0xC);              //CR
       }
    

  8. I received the dso nano ver 2 for christmas . I have nothing but good things to say about it.

    Im just a beginner with it as well (like all things electronic). The seeed studio forum is a good place to get info.

    I got the scope and upgraded the firmware (one of the forum members over there completely re-wrote the firmware), then I watched a couple of tutorials on how to use it and have already used it a couple of times, great tool.

     

    It figures that I would get the nano ver 2 and they would come out with the quad which looks even better by far.

    I guess once I use the one I have for a while and get it figured out I could justify getting the quad.

    (especially since its got 2 channels. Its nice to be able to compare waveforms in realtime)

    my 2cents :mrgreen:

  9. @ simple avr

     

    The dip 8 is an attiny 45.

    the sot 8 is an burr brown opa213 op amp for a headphone amp I made.

    You cant really see from the picture but the chips are sitting on a sot8 to dip8 breakout I made.

×
×
  • Create New...