/var/www/restricted/ssh/stm32/www/stm32circle/ STM CircleOS forum / CircleOS 3.7 memory map and char data type

Username:     
Password:     
             

Forum
  • Index
  •  » circleOS
  •  » CircleOS 3.7 memory map and char data type

# 1   2009-06-23 08:47:07 CircleOS 3.7 memory map and char data type

micronpn
Member
From: Italy
Registered: 2007-11-20
Posts: 13
Website

CircleOS 3.7 memory map and char data type

1. What are the reserved flash and ram area for CircleOS 3.7? Seems that are more then reported on the Primer2 manual. Seems that there are 24k-256bytes starting at 0x8000000 and 132k ending at 0x8008000. For ram I am in trouble because in the ld file for Circle2 there are 10k reserved ram starting at 0x2000D800 and last 1k seems to be reserved user mode stack. Is this correct?
2. Can you suggest a ld file configuration to achieve maximum flash/ram space for user applications?
3. In CircleOS chars are treated as unsigned chars by default: why?

Offline

 

# 2   2009-06-23 09:48:54 CircleOS 3.7 memory map and char data type

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

Re: CircleOS 3.7 memory map and char data type

We will answer for the items #1 and #2.

For #3.... why not ? (it's a pure convention and some developers prefer u8, others s8..). Now we could have a bug (some u8 that should be considered as s8). Did you meet a problem with one of the services of the API? Let us know which one and we will fix it.

Thanks,
Francis

Offline

 

# 3   2009-06-24 06:50:50 CircleOS 3.7 memory map and char data type

yrt
Administrator
From: Grenoble-France
Registered: 2008-06-11
Posts: 520
Website

Re: CircleOS 3.7 memory map and char data type

#1 The flash areas reserved for CircleOS are :
- 0x8000000 to 0x8006000 (24 Ko) for code and FAT (list of applications),
- 0x805F000 to 0x807FFFF (132 Ko) for constants and non debuggable code).

The RAM area reserved for CircleOS is :
- 0x2000D800 to 0x200FFFF (10 Ko)

The user manuel is indeed not up to date.

Concerning the stack, the higher limit address is 0x2000D800, and it goes down to 0x2004000 reserved for applications.

#2 If you want more RAM for your application, you can modify the file "Circle_app.ld", this paragraph :

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

Just increase the LENGTH of the RAM, and be careful to keep enough space for the stack.

Concerning the flash, 356 Ko are free for the applications, is it not enough ?

Last edited by yrt (2009-06-24 07:08:21)

Offline

 

# 4   2009-06-24 08:42:09 CircleOS 3.7 memory map and char data type

micronpn
Member
From: Italy
Registered: 2007-11-20
Posts: 13
Website

Re: CircleOS 3.7 memory map and char data type

yes, 356Kb is ok for me, thanks.

Offline

 

  • Index
  •  » circleOS
  •  » CircleOS 3.7 memory map and char data type

Board footer