/var/www/restricted/ssh/stm32/www/stm32circle/ STM CircleOS forum / Problems with Primer1 and CircleOS 3.x

Username:     
Password:     
             

Forum

# 1   2009-02-19 22:00:25 Problems with Primer1 and CircleOS 3.x

wincent
Member
Registered: 2008-06-23
Posts: 19
Website

Problems with Primer1 and CircleOS 3.x

Hello,

I have encountered three problems using CircleOS 3.5 on Primer1.

The first problem is that CircleOS shows both in system test and in the battery picture 0.00 V.

The second problem is that CircleOS eats 32 kb, and this is one quarter of the flash memory.
That means that the command "Circle_Mgr L S" shows 72 kb on empty device (i.e. without any program installed) instead of 104 kb. Same goes for the "About" dialog. Downgrading device to CircleOS 2.0 still shows 72 kb with Circle_Mgr, but shows 104 kb in the "About" dialog.

The third problem is the button sensitivity. On CircleOS 3.5 it is much lower than on CircleOS 2.0 or 1.7 . Every second button press gets lost.

I de- and re-installed both RIDE7 and GCC toolchain. The versions are:

Ride7 IDE 7.16.0000
RKit-ARM for Ride7 1.16.0930

Is it possible to solve these problems, apart from downgrading to CircleOS 1.x?

Sincerely,

wincent

Offline

 

# 2   2009-02-20 08:48:55 Problems with Primer1 and CircleOS 3.x

Francis
Administrator
From: France-Grenoble
Registered: 2007-07-09
Posts: 890

Re: Problems with Primer1 and CircleOS 3.x

We modified the memory map for CircleOS 3.5. Now, the program is split (as for Primer2) in two parts: the bottom memory from 0x08000000 to 0x08005F00 (as for the former versions of CircleOS) and the top memory (the very last 8KB).
We made this change (using a segment at the top) because it was always tricky to reduce the code size and to keep it in the first 24KB. There is now enough space for future evolutions...

Offline

 

# 3   2009-02-20 08:51:04 Problems with Primer1 and CircleOS 3.x

Francis
Administrator
From: France-Grenoble
Registered: 2007-07-09
Posts: 890

Re: Problems with Primer1 and CircleOS 3.x

I forgot to say that the split is done by considering a 'non_debuggable' section in the LD file. This section contains the code that is used only at initialization and in the main menu of CircleOS. The rest of the code (possibly called by the applications trhu the API) is still in the debuggable area. It could be also a way to extend the 8KB debuggable for the application (probably 12KB could be ok).

Offline

 

# 4   2009-02-21 08:01:10 Problems with Primer1 and CircleOS 3.x

wincent
Member
Registered: 2008-06-23
Posts: 19
Website

Re: Problems with Primer1 and CircleOS 3.x

Francis :

It could be also a way to extend the 8KB debuggable for the application (probably 12KB could be ok).

Hello Francis,

thank you very much for the comment, if I am not mistaken I can get another 16kb or so by changing the linker script?

What about other "niceties" I described, i.e. "zero" battery voltage and reduced responsiveness of the button?

Sincerely,

wincent

Offline

 

# 5   2009-02-21 22:32:27 Problems with Primer1 and CircleOS 3.x

repzak
Member
Registered: 2008-03-05
Posts: 170

Re: Problems with Primer1 and CircleOS 3.x

Francis,

What is the problem in putting all functions in non-debug (possibly called by the applications trhu the API), to get more space for debug application?

Kasper

Offline

 

# 6   2009-03-09 12:22:30 Problems with Primer1 and CircleOS 3.x

wincent
Member
Registered: 2008-06-23
Posts: 19
Website

Re: Problems with Primer1 and CircleOS 3.x

Here the copy of an e-mail with bug-fixes I sent to Francis:

Dear Francis,

I fixed the bugs (for Primer1) I mentioned in the forum.

Bug 1 - reduced responsiveness of the button

Changed constant ANTI_BOUNCING_COUNT in the file button.c
from 100 to 25 (one quarter of a second is quite enough, in my opinion).

Bug 2 - battery voltage = 0

This one was trickier, came probably from cut'n'paste
(my least favorite source of bugs), it is in the initialization
of DMA and ADC.

Changed the line 61 int the file adc.c from

RCC_APB2PeriphClockCmd( RCC_APB2Periph_ADC1, ENABLE );

to

RCC_AHBPeriphClockCmd( RCC_AHBPeriph_DMA1, ENABLE );

By the way, could you elaborate on freeing some flash space
in CircleOS 3.6 for applications?

Sincerely yours,
                                          wincent

P.S.: You have some .bak (backup) files in the archive of the source of CircleOS 3.6 .

Last edited by wincent (2009-03-09 12:22:57)

Offline

 

# 7   2009-03-09 15:08:13 Problems with Primer1 and CircleOS 3.x

Francis
Administrator
From: France-Grenoble
Registered: 2007-07-09
Posts: 890

Re: Problems with Primer1 and CircleOS 3.x

and I answered to Wincent (thanks Wincent) that the fix will be in the next release (3.7).

By the way, could you elaborate on freeing some flash space
in CircleOS 3.6 for applications?

That has been done for Primer1, but it's not possible for Primer2 (the debuggable area is full... and the FS files are already not-debuggable).

Offline

 

# 8   2009-03-10 11:01:56 Problems with Primer1 and CircleOS 3.x

wincent
Member
Registered: 2008-06-23
Posts: 19
Website

Re: Problems with Primer1 and CircleOS 3.x

Francis :

and I answered to Wincent (thanks Wincent) that the fix will be in the next release (3.7).

By the way, could you elaborate on freeing some flash space
in CircleOS 3.6 for applications?

That has been done for Primer1, but it's not possible for Primer2 (the debuggable area is full... and the FS files are already not-debuggable).

Hello Francis,

first, you are right, I should have to quote your answer too smile

second, I still have the problem with space. The CircleOS 3.6 "About" menu shows 88 kb of flash space, but Circle_Mgr L S still shows 72 kb. What do you think about that?

Sincerely,

wincent

P.S.: And it is for a first time a pleasure to see battery level sinking smile

Last edited by wincent (2009-03-10 11:03:21)

Offline

 

# 9   2009-03-10 11:31:43 Problems with Primer1 and CircleOS 3.x

Francis
Administrator
From: France-Grenoble
Registered: 2007-07-09
Posts: 890

Re: Problems with Primer1 and CircleOS 3.x

Wincent,

We will check and answer tomorow. Extending the debuggable space has been quite easy, but using it is probably more complex (FAT.ELF need to be modified and the .LD files as well). Because I don't think that we released a new 'CD-ROM' image, we have to write a short 'application note' to explain how to use the extended space provided by the new CircleOS.

Francis
PS: and we have also to check the amount of memory displaid in 'About'..

Offline

 

# 10   2009-03-11 10:34:03 Problems with Primer1 and CircleOS 3.x

Francis
Administrator
From: France-Grenoble
Registered: 2007-07-09
Posts: 890

Re: Problems with Primer1 and CircleOS 3.x

I apologize: the current CircleOS (3.6) has not been changed to extend the debuggable area (that is much larger). To extend the debuggable area:
1. Open the circle.rprj project, and in circle.h, modify the FAT address (from 0x8006000 to 0x8004000):
     #ifdef PRIMER1
     #     define VDD_VOLTAGE_MV  3300     // Voltage (mV) of the STM32
     #     define FA_TABLE        0x8004000   // >>>>>>> INSTEAD OF 0x8006000 <<<<<<
     #endif
Rebuild the project, and you circleOS is now ok.
2. Copy the resulting circle.elf file into   "Program Files\Raisonance\Ride\Lib\ARM\CircleOS"
3. Modify the LD (circle_app.ld) file of your project (to be debugged) to relocate the code at 0x08004000 instead of 0x08006000.     
         FLASH (rx) : ORIGIN = 0x8004000, LENGTH = 16K
instead of
         FLASH (rx) : ORIGIN = 0x8006000, LENGTH = 8K
4. Last issue: you have to regenerate a FAT.elf file for debugging. This file contains only a word value at the address '(FAT_TABLE - 4)' initialized with (FAT_TABLE).  Thus, it used to be 0x08006000 at 0x08005FFC, and we want now 0x08004000 at 0x08003FFC.
Here is the original file we used for this purpose:

Code:

/********************* (C) COPYRIGHT 2007 RAISONANCE S.A.S. *******************/
/**
*
* @file     FAT_Startup.c
* @brief
* @author   FL
* @date     07/2007
*
**/
/******************************************************************************/

/* Exported constants --------------------------------------------------------*/
extern unsigned long _etext;
extern unsigned long _sidata;    /* start address for the initialization values of the .data section. defined in linker script */
extern unsigned long _sdata;     /* start address for the .data section. defined in linker script */
extern unsigned long _edata;     /* end address for the .data section. defined in linker script */

extern unsigned long _sbss;      /* start address for the .bss section. defined in linker script */
extern unsigned long _ebss;      /* end address for the .bss section. defined in linker script */

extern void _estack;             /* init value for the stack pointer. defined in linker script */

__attribute__ ((section(".isr_vector")))

long unsigned table [ 1 ] = {0x08006000};

__attribute__ ((section(".b1text")))

const int ___FAT_Startup_dummy_int = 0xFFFFFFFF;

of course, 0x08006000 must be replaced by 0x08004000
and the (fat) ld file:

Code:

/***********************************************************
*
* 
*      Default linker script for STM32F103_128K_20K
*            Copyright RAISONANCE S.A.S. 2007
*
*
************************************************************/



/*    INCLUDE "STM32F10x_COMMON.ld"     */

/*
Common part of the linker scripts for STR32 devices
Copyright RAISONANCE 2007
You can use, modify and distribute thisfile freely, but without any waranty.
*/


/* default stack sizes. 

These are used by the startup in order to allocate stacks for the different modes.
*/

__Stack_Size = 1024 ;

PROVIDE ( _Stack_Size = __Stack_Size ) ;

__Stack_Init = _estack  - __Stack_Size ;

/*"PROVIDE" allows to easily override these values from an object file or the commmand line.*/
PROVIDE ( _Stack_Init = __Stack_Init ) ;

/*
There will be a link error if there is not this amount of RAM free at the end.
*/
_Minimum_Stack_Size = 0x100 ;



/*
this sends all unreferenced IRQHandlers to reset
*/


PROVIDE (   Undefined_Handler = 0 ) ;
PROVIDE (   SWI_Handler = 0 ) ;
PROVIDE (   IRQ_Handler = 0 ) ;
PROVIDE (   Prefetch_Handler = 0 ) ;
PROVIDE (   Abort_Handler = 0 ) ;
PROVIDE (   FIQ_Handler = 0 ) ;

PROVIDE (   NMIException = 0 ) ;
PROVIDE (   HardFaultException = 0 ) ;
PROVIDE (   MemManageException = 0 ) ;
PROVIDE (   BusFaultException = 0 ) ;
PROVIDE (   UsageFaultException = 0 ) ;
PROVIDE (   SVCHandler = 0 ) ;
PROVIDE (   DebugMonitor = 0 ) ;
PROVIDE (   PendSVC = 0 ) ;
PROVIDE (   SysTickHandler = 0 ) ;
PROVIDE (   WWDG_IRQHandler = 0 ) ;
PROVIDE (   PVD_IRQHandler = 0 ) ;
PROVIDE (   TAMPER_IRQHandler = 0 ) ;
PROVIDE (   RTC_IRQHandler = 0 ) ;
PROVIDE (   FLASH_IRQHandler = 0 ) ;
PROVIDE (   RCC_IRQHandler = 0 ) ;
PROVIDE (   EXTI0_IRQHandler = 0 ) ;
PROVIDE (   EXTI1_IRQHandler = 0 ) ;
PROVIDE (   EXTI2_IRQHandler = 0 ) ;
PROVIDE (   EXTI3_IRQHandler = 0 ) ;
PROVIDE (   EXTI4_IRQHandler = 0 ) ;
PROVIDE (   DMAChannel1_IRQHandler = 0 ) ;
PROVIDE (   DMAChannel2_IRQHandler = 0 ) ;
PROVIDE (   DMAChannel3_IRQHandler = 0 ) ;
PROVIDE (   DMAChannel4_IRQHandler = 0 ) ;
PROVIDE (   DMAChannel5_IRQHandler = 0 ) ;
PROVIDE (   DMAChannel6_IRQHandler = 0 ) ;
PROVIDE (   DMAChannel7_IRQHandler = 0 ) ;
PROVIDE (   ADC_IRQHandler = 0 ) ;
PROVIDE (   USB_HP_CAN_TX_IRQHandler = 0 ) ;
PROVIDE (   USB_LP_CAN_RX0_IRQHandler = 0 ) ;
PROVIDE (   CAN_RX1_IRQHandler = 0 ) ;
PROVIDE (   CAN_SCE_IRQHandler = 0 ) ;
PROVIDE (   EXTI9_5_IRQHandler = 0 ) ;
PROVIDE (   TIM1_BRK_IRQHandler = 0 ) ;
PROVIDE (   TIM1_UP_IRQHandler = 0 ) ;
PROVIDE (   TIM1_TRG_COM_IRQHandler = 0 ) ;
PROVIDE (   TIM1_CC_IRQHandler = 0 ) ;
PROVIDE (   TIM2_IRQHandler = 0 ) ;
PROVIDE (   TIM3_IRQHandler = 0 ) ;
PROVIDE (   TIM4_IRQHandler = 0 ) ;
PROVIDE (   I2C1_EV_IRQHandler = 0 ) ;
PROVIDE (   I2C1_ER_IRQHandler = 0 ) ;
PROVIDE (   I2C2_EV_IRQHandler = 0 ) ;
PROVIDE (   I2C2_ER_IRQHandler = 0 ) ;
PROVIDE (   SPI1_IRQHandler = 0 ) ;
PROVIDE (   SPI2_IRQHandler = 0 ) ;
PROVIDE (   USART1_IRQHandler = 0 ) ;
PROVIDE (   USART2_IRQHandler = 0 ) ;
PROVIDE (   USART3_IRQHandler = 0 ) ;
PROVIDE (   EXTI15_10_IRQHandler = 0 ) ;
PROVIDE (   RTCAlarm_IRQHandler = 0 ) ;
PROVIDE (   USBWakeUp_IRQHandler = 0 ) ;



/******************************************************************************/
/*                       Peripheral memory map                                */
/******************************************************************************/
/*this allows to compile the ST lib in "non-debug" mode*/


/* Peripheral and SRAM base address in the alias region */
PERIPH_BB_BASE        = 0x42000000;
SRAM_BB_BASE          = 0x22000000;

/* Peripheral and SRAM base address in the bit-band region */
SRAM_BASE             = 0x20000000;
PERIPH_BASE           = 0x40000000;

/* Flash registers base address */
PROVIDE ( FLASH_BASE            = 0x40022000);
/* Flash Option Bytes base address */
PROVIDE ( OB_BASE               = 0x1FFFF800);

/* Peripheral memory map */
APB1PERIPH_BASE      = PERIPH_BASE  ;
APB2PERIPH_BASE      = (PERIPH_BASE + 0x10000) ;
AHBPERIPH_BASE       = (PERIPH_BASE + 0x20000) ;

PROVIDE ( TIM2            = (APB1PERIPH_BASE + 0x0000) ) ;
PROVIDE ( TIM3            = (APB1PERIPH_BASE + 0x0400) ) ;
PROVIDE ( TIM4            = (APB1PERIPH_BASE + 0x0800) ) ;
PROVIDE ( RTC             = (APB1PERIPH_BASE + 0x2800) ) ;
PROVIDE ( WWDG            = (APB1PERIPH_BASE + 0x2C00) ) ;
PROVIDE ( IWDG            = (APB1PERIPH_BASE + 0x3000) ) ;
PROVIDE ( SPI2            = (APB1PERIPH_BASE + 0x3800) ) ;
PROVIDE ( USART2          = (APB1PERIPH_BASE + 0x4400) ) ;
PROVIDE ( USART3          = (APB1PERIPH_BASE + 0x4800) ) ;
PROVIDE ( I2C1            = (APB1PERIPH_BASE + 0x5400) ) ;
PROVIDE ( I2C2            = (APB1PERIPH_BASE + 0x5800) ) ;
PROVIDE ( CAN             = (APB1PERIPH_BASE + 0x6400) ) ;
PROVIDE ( BKP             = (APB1PERIPH_BASE + 0x6C00) ) ;
PROVIDE ( PWR             = (APB1PERIPH_BASE + 0x7000) ) ;

PROVIDE ( AFIO            = (APB2PERIPH_BASE + 0x0000) ) ;
PROVIDE ( EXTI            = (APB2PERIPH_BASE + 0x0400) ) ;
PROVIDE ( GPIOA           = (APB2PERIPH_BASE + 0x0800) ) ;
PROVIDE ( GPIOB           = (APB2PERIPH_BASE + 0x0C00) ) ;
PROVIDE ( GPIOC           = (APB2PERIPH_BASE + 0x1000) ) ;
PROVIDE ( GPIOD           = (APB2PERIPH_BASE + 0x1400) ) ;
PROVIDE ( GPIOE           = (APB2PERIPH_BASE + 0x1800) ) ;
PROVIDE ( ADC1            = (APB2PERIPH_BASE + 0x2400) ) ;
PROVIDE ( ADC2            = (APB2PERIPH_BASE + 0x2800) ) ;
PROVIDE ( TIM1            = (APB2PERIPH_BASE + 0x2C00) ) ;
PROVIDE ( SPI1            = (APB2PERIPH_BASE + 0x3000) ) ;
PROVIDE ( USART1          = (APB2PERIPH_BASE + 0x3800) ) ;

PROVIDE ( DMA             = (AHBPERIPH_BASE + 0x0000) ) ;
PROVIDE ( DMA_Channel1    = (AHBPERIPH_BASE + 0x0008) ) ;
PROVIDE ( DMA_Channel2    = (AHBPERIPH_BASE + 0x001C) ) ;
PROVIDE ( DMA_Channel3    = (AHBPERIPH_BASE + 0x0030) ) ;
PROVIDE ( DMA_Channel4    = (AHBPERIPH_BASE + 0x0044) ) ;
PROVIDE ( DMA_Channel5    = (AHBPERIPH_BASE + 0x0058) ) ;
PROVIDE ( DMA_Channel6    = (AHBPERIPH_BASE + 0x006C) ) ;
PROVIDE ( DMA_Channel7    = (AHBPERIPH_BASE + 0x0080) ) ;
PROVIDE ( RCC             = (AHBPERIPH_BASE + 0x1000) ) ;

/* System Control Space memory map */
SCS_BASE              = 0xE000E000;

PROVIDE ( SysTick         = (SCS_BASE + 0x0010) ) ;
PROVIDE ( NVIC            = (SCS_BASE + 0x0100) ) ;
PROVIDE ( SCB             = (SCS_BASE + 0x0D00) ) ;



/*    INCLUDE "STM32F103_128K_20K_DEF.ld"     */

/*
Linker subscript for STM32F103 definitions with 128K Flash and 20K RAM
Copyright RAISONANCE 2007
!!! This file is automatically generated by RIDE !!!
Do not modify it, as it will be erased at every link.
You can use, copy and distribute this file freely, but without any waranty.
*/

/* Memory Spaces Definitions */

MEMORY
{
  RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K
  FLASHB1 (r) : ORIGIN = 0x8000000, LENGTH = 0x0005FFC
  FLASH (rx) : ORIGIN = 0x8005FFC, LENGTH = 4K
  EXTMEMB0 (rx) : ORIGIN = 0x00000000, LENGTH = 0
  EXTMEMB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0
  EXTMEMB2 (rx) : ORIGIN = 0x00000000, LENGTH = 0
  EXTMEMB3 (rx) : ORIGIN = 0x00000000, LENGTH = 0
}

/* higher address of the user mode stack */
_estack = 0x20005000;


/*    INCLUDE "sections_FLASH.ld"     */

/*
Common part of the linker scripts for STR71x devices in FLASH mode
(that is, the FLASH is seen at 0)
Copyright RAISONANCE 2005
You can use, modify and distribute thisfile freely, but without any waranty.
*/



/* Sections Definitions */

SECTIONS
{
    /* for Cortex devices, the beginning of the startup code is stored in the .isr_vector section, which goes to FLASH */
    .isr_vector :
    {
    . = ALIGN(4);
        KEEP(*(.isr_vector))            /* Startup code */
    . = ALIGN(4);
    } >FLASH
 
    /* for some STRx devices, the beginning of the startup code is stored in the .flashtext section, which goes to FLASH */
    .flashtext :
    {
    . = ALIGN(4);
        *(.flashtext)            /* Startup code */
    . = ALIGN(4);
    } >FLASH
 
    
    /* the program code is stored in the .text section, which goes to Flash */
    .text :
    {
        . = ALIGN(4);
        
        *(.text)                   /* remaining code */
        *(.text.*)                   /* remaining code */
        *(.rodata)                 /* read-only data (constants) */
        *(.rodata*)
        *(.glue_7)
        *(.glue_7t)

        . = ALIGN(4);
        _etext = .;
        /* This is used by the startup in order to initialize the .data secion */
        _sidata = _etext;
    } >FLASH
    
 

    /* This is the initialized data section
    The program executes knowing that the data is in the RAM
    but the loader puts the initial values in the FLASH (inidata).
    It is one task of the startup to copy the initial values from FLASH to RAM. */
    .data  : AT ( _sidata )
    {
        . = ALIGN(4);
        /* This is used by the startup in order to initialize the .data secion */
        _sdata = . ;
        
        *(.data)
        *(.data.*)

        . = ALIGN(4);
        /* This is used by the startup in order to initialize the .data secion */
        _edata = . ;
    } >RAM
    
    

    /* This is the uninitialized data section */
    .bss :
    {
        . = ALIGN(4);
        /* This is used by the startup in order to initialize the .bss secion */
        _sbss = .;
        
        *(.bss)
        *(COMMON)
        
        . = ALIGN(4);
        /* This is used by the startup in order to initialize the .bss secion */
        _ebss = . ;
    } >RAM
    
    PROVIDE ( end = _ebss );
    PROVIDE ( _end = _ebss );
    
    /* This is the user stack section 
    This is just to check that there is enough RAM left for the User mode stack
    It should generate an error if it's full.
     */
    ._usrstack :
    {
        . = ALIGN(4);
        _susrstack = . ;
        
        . = . + _Minimum_Stack_Size ;
        
        . = ALIGN(4);
        _eusrstack = . ;
    } >RAM
    

   
    /* this is the FLASH Bank1 */
    /* the C or assembly source must explicitly place the code or data there
    using the "section" attribute */
    .b1text (NOLOAD) :
    {
        FILL ( 0xFFFFFFFF );
        /**(.b1text)*/                   /* remaining code */
        /**(.b1rodata)*/                 /* read-only data (constants) */
        /**(.b1rodata*)*/
    } >FLASHB1
    
    /* this is the EXTMEM */
    /* the C or assembly source must explicitly place the code or data there
    using the "section" attribute */
    
    /* EXTMEM Bank0 */
    .eb0text :
    {
        *(.eb0text)                   /* remaining code */
        *(.eb0rodata)                 /* read-only data (constants) */
        *(.eb0rodata*)
    } >EXTMEMB0
    
    /* EXTMEM Bank1 */
    .eb1text :
    {
        *(.eb1text)                   /* remaining code */
        *(.eb1rodata)                 /* read-only data (constants) */
        *(.eb1rodata*)
    } >EXTMEMB1
    
    /* EXTMEM Bank2 */
    .eb2text :
    {
        *(.eb2text)                   /* remaining code */
        *(.eb2rodata)                 /* read-only data (constants) */
        *(.eb2rodata*)
    } >EXTMEMB2
    
    /* EXTMEM Bank0 */
    .eb3text :
    {
        *(.eb3text)                   /* remaining code */
        *(.eb3rodata)                 /* read-only data (constants) */
        *(.eb3rodata*)
    } >EXTMEMB3  
    
}

Note that this change will work only with Primer1 (no more space with Primer2...).

Offline

 

# 11   2009-03-12 01:03:20 Problems with Primer1 and CircleOS 3.x

wincent
Member
Registered: 2008-06-23
Posts: 19
Website

Re: Problems with Primer1 and CircleOS 3.x

Francis :

I apologize: the current CircleOS (3.6) has not been changed
to extend the debuggable area (that is much larger).

...

Note that this change will work only with Primer1 (no more space with Primer2...).

Hello Francis,

now after I applied the changes you described (by the way, what about the Fat.ld?
Did you forget to change from 5FFC to 3FFC or is it intended? I changed it.)
I got another 8 kb (+ 72 kb = 80 kb on the empty CircleOS together).
Now after I installed the apps "Circle_Mgr L S" tells me I still have 41 kb,
but the "About" menu says I have 49 kb.

Where did the rest of 8 kb go?

Sincerely,

                   Wincent

Offline

 

# 12   2009-03-12 07:26:43 Problems with Primer1 and CircleOS 3.x

Francis
Administrator
From: France-Grenoble
Registered: 2007-07-09
Posts: 890

Re: Problems with Primer1 and CircleOS 3.x

Yes, I forgot to modify the LD file. I included it here because it was not available neither on the original CD nor on this web site.
At the moment, the amount of memory reported by both Circle_mgr and 'About' is not dynamic because we don't store the information about the size of the FLASH used in the upper memory.. We will modify CircleOS in such a way that we will find this information. Don't pay too much attention to this information for the moment. Are you able to debug your application from 0x8004000 ?

Offline

 

# 13   2009-03-12 13:43:20 Problems with Primer1 and CircleOS 3.x

wincent
Member
Registered: 2008-06-23
Posts: 19
Website

Re: Problems with Primer1 and CircleOS 3.x

Francis :

Are you able to debug your application from 0x8004000 ?

For debugging I use DRAW_DisplayString() smile . As I get to use the (circle) primer
in my everyday life, it bugs me to backup the programs every time I sit down
to write an application and to restore them before every installation.

Hence, I am afraid, you will have to wait for results from another developer
which uses debugger extensively.

Sincerely,

Wincent

Last edited by wincent (2009-03-12 19:11:39)

Offline

 

Board footer