소스 검색

* 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('{');