瀏覽代碼

* 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('OUTPUT_ARCH(avr:2)');
       Add('MEMORY');
       Add('MEMORY');
       Add('{');
       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('}');
       Add('SECTIONS');
       Add('SECTIONS');
       Add('{');
       Add('{');