Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 

79 рядки
3.6 KiB

  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. /*-Memory Regions-*/
  6. define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
  7. define symbol __ICFEDIT_region_ROM_end__ = 0x08004FFF; /* max 0x081FFFFF */
  8. define symbol __ICFEDIT_region_RAM_start__ = 0x20000100;
  9. define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; /* max 0x2002FFFF */
  10. define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000;
  11. define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF;
  12. define symbol __ICFEDIT_region_CLASSB_start__ = 0x20000024;
  13. define symbol __ICFEDIT_region_CLASSB_end__ = 0x200000BC;
  14. /*-Sizes-*/
  15. define symbol __ICFEDIT_size_cstack__ = 0x400;
  16. define symbol __ICFEDIT_size_heap__ = 0x200;
  17. define symbol __ICFEDIT_size_stack_bottom__ = 0x10;
  18. /**** End of ICF editor section. ###ICF###*/
  19. export symbol __ICFEDIT_region_ROM_start__;
  20. export symbol __ICFEDIT_region_ROM_end__;
  21. export symbol __ICFEDIT_region_RAM_start__;
  22. export symbol __ICFEDIT_region_RAM_end__;
  23. export symbol __ICFEDIT_region_CLASSB_start__;
  24. export symbol __ICFEDIT_region_CLASSB_end__;
  25. define memory mem with size = 4G;
  26. define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
  27. define region RAM_region = mem:[from __ICFEDIT_region_CLASSB_end__ to __ICFEDIT_region_RAM_end__];
  28. define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__];
  29. define symbol __region_RUN_TIME_RAM_BUF_start__ = 0x20000000;
  30. define symbol __region_RUN_TIME_RAM_PNT__start__ = 0x20000018;
  31. define symbol __region_CLASS_B_RAM_start__ = 0x20000024;
  32. define symbol __region_CLASS_B_RAM_REV__start__ = 0x20000070;
  33. // regions definition ######################
  34. define region RUN_TIME_RAM_BUF_region = mem:[from __region_RUN_TIME_RAM_BUF_start__ to 0x20000017];
  35. define region RUN_TIME_RAM_PNT_region = mem:[from __region_RUN_TIME_RAM_PNT__start__ to 0x2000001F];
  36. define region CLASS_B_RAM_region = mem:[from __region_CLASS_B_RAM_start__ to __ICFEDIT_region_CLASSB_end__];
  37. define region CLASS_B_RAM_REV_region = mem:[from __region_CLASS_B_RAM_REV__start__ to __ICFEDIT_region_CLASSB_end__];
  38. // blocks definition #######################
  39. define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
  40. define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
  41. define block STACK_BOTTOM_B with alignment = 8, size = __ICFEDIT_size_stack_bottom__ { section STACK_BOTTOM };
  42. define block INTVEC{readonly section .intvec};
  43. define block stack_order with fixed order { block STACK_BOTTOM_B, block CSTACK, block HEAP };
  44. // initialization setting #################
  45. initialize by copy { readwrite };
  46. do not initialize { section .noinit, section STACK_BOTTOM, section RUN_TIME_RAM_BUF, section RUN_TIME_RAM_PNT,
  47. section CLASS_B_RAM, section CLASS_B_RAM_REV};
  48. // placements #############################
  49. place in CLASS_B_RAM_region
  50. { readwrite data section CLASS_B_RAM };
  51. place in CLASS_B_RAM_REV_region
  52. { readwrite data section CLASS_B_RAM_REV };
  53. place in RUN_TIME_RAM_BUF_region
  54. { readwrite data section RUN_TIME_RAM_BUF };
  55. place in RUN_TIME_RAM_PNT_region
  56. { readwrite data section RUN_TIME_RAM_PNT };
  57. place in ROM_region { first block INTVEC, readonly };
  58. place at end of ROM_region { ro section .checksum };
  59. place in RAM_region { readwrite };
  60. place at end of RAM_region { block stack_order };