Explorar o código

* get memory sizes on avr-embedded from controller info records

git-svn-id: trunk@30387 -
florian %!s(int64=10) %!d(string=hai) anos
pai
achega
1f93c3aaa1
Modificáronse 1 ficheiros con 9 adicións e 6 borrados
  1. 9 6
      compiler/systems/t_embed.pas

+ 9 - 6
compiler/systems/t_embed.pas

@@ -622,12 +622,15 @@ begin
       Add('OUTPUT_ARCH(avr:2)');
       Add('MEMORY');
       Add('{');
-      Add('  text      (rx)   : ORIGIN = 0, LENGTH = 8K');
-      Add('  data      (rw!x) : ORIGIN = 0x800060, LENGTH = 0xffa0');
-      Add('  eeprom    (rw!x) : ORIGIN = 0x810000, LENGTH = 64K');
-      Add('  fuse      (rw!x) : ORIGIN = 0x820000, LENGTH = 1K');
-      Add('  lock      (rw!x) : ORIGIN = 0x830000, LENGTH = 1K');
-      Add('  signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K');
+      with embedded_controllers[current_settings.controllertype] do
+        begin
+          Add('  text      (rx)   : ORIGIN = 0, LENGTH = 0x'+IntToHex(flashsize,8));
+          Add('  data      (rw!x) : ORIGIN = 0x800060, LENGTH = 0x'+IntToHex(sramsize,8));
+          Add('  eeprom    (rw!x) : ORIGIN = 0x810000, LENGTH = 0x'+IntToHex(eepromsize,8));
+          Add('  fuse      (rw!x) : ORIGIN = 0x820000, LENGTH = 1K');
+          Add('  lock      (rw!x) : ORIGIN = 0x830000, LENGTH = 1K');
+          Add('  signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K');
+        end;
       Add('}');
       Add('SECTIONS');
       Add('{');