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