btstack_lib.ld 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. SECTIONS
  2. {
  3. .data : ALIGN(4)
  4. {
  5. btstack_data_start = .;
  6. *(.bt_stack_data)
  7. *(.ble_db_data)
  8. *(.ble_sm_data)
  9. *(.ble_att_data)
  10. *(.ble_gatt_data)
  11. /*mesh*/
  12. BTSTACK_LE_HOST_MESH_DATA_START = .;
  13. . = (. +3) & ~ 3;
  14. _net_buf_pool_list = .;
  15. *(._net_buf_pool.static.*)
  16. *(.ble_mesh_data)
  17. *(.ble_mesh_tinycrypt_data)
  18. BTSTACK_LE_HOST_MESH_DATA_SIZE = ABSOLUTE(. - BTSTACK_LE_HOST_MESH_DATA_START);
  19. _fmna_data_begin = .;
  20. *(.fmna_stack_data)
  21. *(.fmna_plaform_data)
  22. *(.fmna_crypto_data)
  23. _fmna_data_end = .;
  24. btstack_fmna_data_size = _fmna_data_end - _fmna_data_begin;
  25. . = ALIGN(4);
  26. btstack_data_end = .;
  27. . = ALIGN(4);
  28. } > ram0
  29. .bss (NOLOAD) :ALIGN(4)
  30. {
  31. btstack_bss_start = .;
  32. *(.bt_stack_bss)
  33. *(.ble_db_bss)
  34. *(.ble_sm_bss)
  35. *(.ble_att_bss)
  36. *(.ble_gatt_bss)
  37. *(.btstack_pool)
  38. /*mesh*/
  39. BTSTACK_LE_HOST_MESH_BSS_START = .;
  40. *(.ble_mesh_bss)
  41. *(.ble_mesh_tinycrypt_bss)
  42. BTSTACK_LE_HOST_MESH_BSS_SIZE = ABSOLUTE(. - BTSTACK_LE_HOST_MESH_BSS_START);
  43. . = ALIGN(4);
  44. _fmna_bss_begin = .;
  45. *(.fmna_stack_bss)
  46. *(.fmna_plaform_bss)
  47. *(.fmna_crypto_bss)
  48. _fmna_bss_end = .;
  49. btstack_fmna_bss_size = _fmna_bss_end - _fmna_bss_begin;
  50. . = ALIGN(4);
  51. btstack_bss_end = .;
  52. . = ALIGN(4);
  53. } > ram0
  54. .text : ALIGN(4)
  55. {
  56. btstack_code_start = .;
  57. . = ALIGN(4);
  58. a2dp_source_media_codec_begin = .;
  59. KEEP(*(.a2dp_source_media_codec))
  60. a2dp_source_media_codec_end = .;
  61. a2dp_sink_media_probe_begin = .;
  62. KEEP(*(.a2dp_sink_media_probe))
  63. a2dp_sink_media_probe_end = .;
  64. a2dp_sink_media_codec_begin = .;
  65. KEEP(*(.a2dp_sink_media_codec))
  66. a2dp_sink_media_codec_end = .;
  67. a2dp_event_handler_begin = .;
  68. KEEP(*(.a2dp_event_handler))
  69. a2dp_event_handler_end = .;
  70. sdp_record_item_begin = .;
  71. KEEP(*(.sdp_record_item))
  72. sdp_record_item_end = .;
  73. bt_sleep_begin = .;
  74. KEEP(*(.bt_sleep))
  75. bt_sleep_end = .;
  76. *(.bt_stack_const)
  77. *(.bt_stack_code)
  78. *(.ble_db_const)
  79. *(.ble_db_code)
  80. *(.ble_sm_const)
  81. *(.ble_sm_code)
  82. *(.ble_att_const)
  83. *(.ble_att_code)
  84. *(.ble_gatt_const)
  85. *(.ble_gatt_code)
  86. /*mesh*/
  87. BTSTACK_LE_HOST_MESH_CODE_START = .;
  88. *(.ble_mesh_code)
  89. *(.ble_mesh_tinycrypt_code)
  90. *(.ble_mesh_const)
  91. *(.ble_mesh_tinycrypt_const)
  92. BTSTACK_LE_HOST_MESH_CODE_SIZE = ABSOLUTE(. - BTSTACK_LE_HOST_MESH_CODE_START);
  93. _fmna_const_begin = .;
  94. *(.fmna_stack_const)
  95. *(.fmna_plaform_const)
  96. *(.fmna_crypto_const)
  97. _fmna_const_end = .;
  98. . = ALIGN(4);
  99. _fmna_code_begin = .;
  100. *(.fmna_stack_code)
  101. *(.fmna_plaform_code)
  102. *(.fmna_crypto_code)
  103. _fmna_code_end = .;
  104. btstack_fmna_const_size = _fmna_const_end - _fmna_const_begin;
  105. btstack_fmna_code_size = _fmna_code_end - _fmna_code_begin;
  106. . = ALIGN(4);
  107. btstack_code_end = .;
  108. . = ALIGN(4);
  109. } > code0
  110. }
  111. BTSTACK_LE_HOST_MESH_RAM_TOTAL = BTSTACK_LE_HOST_MESH_DATA_SIZE + BTSTACK_LE_HOST_MESH_BSS_SIZE;
  112. BTSTACK_LE_HOST_MESH_FLASH_TOTAL = BTSTACK_LE_HOST_MESH_CODE_SIZE;
  113. BTSTACK_CODE_SIZE = (btstack_code_end - btstack_code_start) + (btstack_data_end - btstack_data_start);