Thanks a lot for this detailed answer, I'm going to try this !

Le 24 janv. 2014 à 19:33, Gál Zsolt a écrit :

> Sometimes it helped me ( including this function into my source code ):
> 
> void _sdcc_gsinit_startup(void)
> {
>   __asm pagesel _main __endasm;
>   __asm goto _main __endasm;
> }
> 
> https://www.mail-archive.com/sdcc-user@lists.sourceforge.net/msg03808.html
> 
> I tried your code and I see that the compiled code is ok. So I think the 
> problem could be at initializing. 
> 
> ;--------------------------------------------------------
>                                            STARTUP    code 0x0000
> 000000   0000     nop                         nop
>                                               pagesel __sdcc_gsinit_startup
> 000001   2802     goto    0x2                 goto    __sdcc_gsinit_startup
>                                            
> ;--------------------------------------------------------
>                                            ; code
>                                            
> ;--------------------------------------------------------
>                                            code_proba code
>                                            ;***
>                                            ;  pBlock Stats: dbName = M
>                                            ;***
>                                            ;entry:  _main     ;Function start
>                                            ; 2 exit points
>                                            ;has an exit
>                                            ;; Starting pCode block
>                                            _main      ;Function start
>                                            ; 2 exit points
>                                            ;  .line   6; "./proba.c"  TRISB = 
> 0;
> 0000d2   1683     bsf     0x3, 0x5            BANKSEL _TRISB
> 0000d3   1303     bcf     0x3, 0x6         
> 0000d4   0186     clrf    0x6                 CLRF    _TRISB
>                                            ;  .line   7; "./proba.c"  PORTB = 
> 59;     
> 0000d5   303b     movlw   0x3b                MOVLW   0x3b
> 0000d6   1283     bcf     0x3, 0x5            BANKSEL _PORTB
> 0000d7   1303     bcf     0x3, 0x6         
> 0000d8   0086     movwf   0x6                 MOVWF   _PORTB
>                                            _00106_DS_
>                                            ;  .line   9; "./proba.c"  
> while(1)     
> 0000d9   28d9     goto    0xd9                GOTO    _00106_DS_
> 0000da   0008     return                      RETURN  
> 
> 
> I recommend you use configuration word for set your device configuration bits.
> 
> for example:
> 
> /* ----------------------------------------------------------------------- */
> /* Template source file generated by piklab */
> #include <pic16f690.h>
> 
> /* ----------------------------------------------------------------------- */
> /* Configuration bits: adapt to your setup and needs */
> typedef unsigned int word;
> word __at 0x2007 CONFIG = _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & 
> _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOR_ON & _IESO_ON & _FCMEN_ON;
> 
> 
> I don't understand the first line in your code:
> 
> #define __16f872
> 
> 
> I think, SDCC does not require this.
> 
> 
> 2014/1/23 Ael Gain <ael.g...@free.fr>
> Hi,
> 
> I set the config register in the software programmer, i've choosen the same 
> config for the sdcc et mikroC .hex.
> 
> However, I forgot to mention that I have those warning during the build :
> 
> sdcc -mpic14 -p16f872 --use-non-free test2.c
> test2.asm:145:Message[312] Page or Bank selection not needed for this device. 
>  No code generated.
> message: using default linker script 
> "/usr/local/share/gputils/lkr/16f872_g.lkr"
> warning: relocation of section "UDL_idata_0" failed, relocating to a shared 
> memory location
> warning: relocation of section "ID_idata_0" failed, relocating to a shared 
> memory location
> 
> I think I read somewhere that this should not be a problem, but is this 
> really ok ? I'm not sure to understand those warnings.
> 
> Le 22 janv. 2014 à 22:56, Joel Davidson a écrit :
> 
> > Ael-
> >
> > It looked like your source code was missing the config register
> > information, which sets up the internal oscillator, reset operation,
> > etc.  Perhaps the other compiler did that automatically?
> >
> > Joel
> >
> > On Wed, 22 Jan 2014, it would appear that Ael Gain wrote:
> >
> >> Thanks for your quick answer!
> >>
> >> Actually I tried to simulate the sdcc .cod file with gpsim and it worked 
> >> ok.
> >> I also tried to compare .hex files with gpdasm but couldn't find what can 
> >> be wrong with the sdcc's one.
> >> I guess I should give it another try.
> >>
> >> Is there any tools that simulate PIC's behaviour from .hex files ?
> >> I mean a tool that shows content of registers and memory at a particular 
> >> point of the program, and the flow of executed instructions ?
> >> For my simple program i'll try to do it by hand, but for larger program it 
> >> could be usefull.
> >>
> >> thx !
> >>
> >> Le 22 janv. 2014 ? 22:11, Bodo Wenzel a ?crit :
> >>
> >>> Hi Ael,
> >>>
> >>> Assuming that you are trying to gain some experience, I'd recommend to
> >>> look into the assembler listings of both programs. If there is no
> >>> listing you have to disassemble.
> >>>
> >>> Armed with the datasheet you will be able to investigate the problem.
> >>>
> >>> Good luck!
> >>> Bodo
> >>>
> >
> > ------------------------------------------------------------------------------
> > CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> > Learn Why More Businesses Are Choosing CenturyLink Cloud For
> > Critical Workloads, Development Environments & Everything In Between.
> > Get a Quote or Start a Free Trial Today.
> > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> > _______________________________________________
> > Sdcc-user mailing list
> > Sdcc-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/sdcc-user
> 
> 
> ------------------------------------------------------------------------------
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today.
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> _______________________________________________
> Sdcc-user mailing list
> Sdcc-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
> 
> 
> 
> -- 
> ~~~~~~~~~~~~~~~~
> http://galzsolt.zzl.org
> ------------------------------------------------------------------------------
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today. 
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk_______________________________________________
> Sdcc-user mailing list
> Sdcc-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sdcc-user

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to