Переглянути джерело

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

git-svn-id: trunk@30387 -
florian 10 роки тому
батько
коміт
1f93c3aaa1
1 змінених файлів з 9 додано та 6 видалено
  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('{');