amt630hv160.icf 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /*###ICF### Section handled by ICF editor, don't touch! ****/
  2. /*-Editor annotation file-*/
  3. /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
  4. /*-Specials-*/
  5. define symbol __ICFEDIT_intvec_start__ = 0x20100000;
  6. /*-Memory Regions-*/
  7. define symbol __ICFEDIT_region_ROM_start__ = 0x20100000;
  8. define symbol __ICFEDIT_region_ROM_end__ = 0x2017FFFF;
  9. define symbol __ICFEDIT_region_RAM_start__ = 0x20180000;
  10. define symbol __ICFEDIT_region_RAM_end__ = 0x201FFFFF;
  11. define symbol __ICFEDIT_region_IRAM_start__ = 0x100000;
  12. define symbol __ICFEDIT_region_IRAM_end__ = 0x147FFF;
  13. /*-Sizes-*/
  14. define symbol __ICFEDIT_size_cstack__ = 0x1000;
  15. define symbol __ICFEDIT_size_heap__ = 0;
  16. /**** End of ICF editor section. ###ICF###*/
  17. /* Flash Organization
  18. * 1. Privileged Code:
  19. * Start : 0x20100000
  20. * End : 0x20107FFF
  21. * Size : 32 Kbytes
  22. * 2. System calls:
  23. * Start : 0x20108000
  24. * End : 0x20108FFF
  25. * Size : 4 Kbytes
  26. * 3. Unprivileged Code:
  27. * Start : 0x20109000
  28. * End : 0x2017FFFF
  29. * Size : 476 Kbytes
  30. */
  31. define symbol __reigon_ROM_privileged_start__ = __ICFEDIT_region_ROM_start__;
  32. define symbol __reigon_ROM_privileged_end__ = 0x20107FFF;
  33. define symbol __reigon_ROM_system_calls_start__ = 0x20108000;
  34. define symbol __reigon_ROM_system_calls_end__ = 0x20108FFF;
  35. define symbol __reigon_ROM_unprivileged_start__ = 0x20109000;
  36. define symbol __reigon_ROM_unprivileged_end__ = __ICFEDIT_region_ROM_end__;
  37. /* RAM Organization
  38. * 1. Privileged Data:
  39. * Start : 0x20180000
  40. * End : 0x20183FFF
  41. * Size : 16 Kbytes
  42. * 2. Unprivileged Data:
  43. * Start : 0x20184000
  44. * End : 0x201FFFFF
  45. * Size : 496 Kbytes
  46. */
  47. define symbol __region_RAM_privileged_start__ = __ICFEDIT_region_RAM_start__;
  48. define symbol __region_RAM_privileged_end__ = 0x20183FFF;
  49. define symbol __region_RAM_unprivileged_start__ = 0x20184000;
  50. define symbol __region_RAM_unprivileged_end__ = __ICFEDIT_region_RAM_end__;
  51. /* IRAM Organization(totalsize: 288k)
  52. * 1. Privileged Data:(Sleep without loss)
  53. * Start : 0x100000
  54. * End : 0x103FFF
  55. * Size : 16 Kbytes
  56. * 2. Critical Func:
  57. * Start : 0x140000
  58. * End : 0x147FFF
  59. * Size : 32 Kbytes
  60. */
  61. /*
  62. define symbol __region_IRAM_swl_privileged_start__ = __ICFEDIT_region_IRAM_start__;
  63. define symbol __region_IRAM_swl_privileged_end__ = 0x103FFF;
  64. */
  65. define symbol __region_IRAM_critical_func_start__ = 0x140000;
  66. define symbol __region_IRAM_critical_func_end_ = __ICFEDIT_region_IRAM_end__;
  67. /* Memory regions. */
  68. define memory mem with size = 4G;
  69. define region ROM_region_privileged = mem:[from __reigon_ROM_privileged_start__ to __reigon_ROM_privileged_end__];
  70. define region ROM_region_system_calls = mem:[from __reigon_ROM_system_calls_start__ to __reigon_ROM_system_calls_end__];
  71. define region ROM_region_unprivileged = mem:[from __reigon_ROM_unprivileged_start__ to __reigon_ROM_unprivileged_end__];
  72. define region RAM_region_privileged = mem:[from __region_RAM_privileged_start__ to __region_RAM_privileged_end__];
  73. define region RAM_region_unprivileged = mem:[from __region_RAM_unprivileged_start__ to __region_RAM_unprivileged_end__];
  74. /*define region IRAM_region_swl_critical_data = mem:[from __region_IRAM_swl_privileged_start__ to __region_IRAM_swl_privileged_end__];*/
  75. define region IRAM_region_critical_func = mem:[from __region_IRAM_critical_func_start__ to __region_IRAM_critical_func_end_];
  76. /* Stack and Heap. */
  77. define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
  78. define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
  79. /* Initialization. */
  80. initialize by copy { readwrite, section critical_functions };
  81. do not initialize { section .noinit };
  82. /*do not initialize { section swl_critical_data };*/
  83. /* Exported symbols. */
  84. define exported symbol __FLASH_segment_start__ = __ICFEDIT_region_ROM_start__;
  85. define exported symbol __FLASH_segment_end__ = __ICFEDIT_region_ROM_end__;
  86. define exported symbol __RAM_segment_start__ = __ICFEDIT_region_RAM_start__;
  87. define exported symbol __RAM_segment_end__ = __ICFEDIT_region_RAM_end__;
  88. define exported symbol __privileged_functions_start__ = __reigon_ROM_privileged_start__;
  89. define exported symbol __privileged_functions_end__ = __reigon_ROM_privileged_end__;
  90. define exported symbol __privileged_data_start__ = __region_RAM_privileged_start__;
  91. define exported symbol __privileged_data_end__ = __region_RAM_privileged_end__;
  92. define exported symbol __syscalls_flash_start__ = __reigon_ROM_system_calls_start__;
  93. define exported symbol __syscalls_flash_end__ = __reigon_ROM_system_calls_end__;
  94. /*
  95. define exported symbol __IRAM__swl_privileged_data_start__ = __region_IRAM_swl_privileged_start__;
  96. define exported symbol __IRAM__swl_privileged_data_end__ = __region_IRAM_swl_privileged_end__;
  97. */
  98. define exported symbol __IRAM__critical_func_start__ = __region_IRAM_critical_func_start__;
  99. define exported symbol __IRAM__critical_func_end__ = __region_IRAM_critical_func_end_;
  100. /* Placements. */
  101. place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
  102. place at address mem:__ICFEDIT_region_RAM_start__ { section SEC_DDT };
  103. place in ROM_region_privileged { readonly section privileged_functions };
  104. place in ROM_region_system_calls { readonly section freertos_system_calls };
  105. place in ROM_region_unprivileged { readonly };
  106. place in RAM_region_privileged { readwrite section privileged_data };
  107. place in RAM_region_unprivileged { readwrite,
  108. block CSTACK, block HEAP };
  109. /*place in IRAM_region_swl_critical_data { readwrite section swl_critical_data};*/
  110. place in IRAM_region_critical_func { readwrite section critical_functions};