|
18 | 18 | /* SRAM2 usable DRAM (0x3FFB0000-0x3FFE0000, 192K): reserve the first 8KB |
19 | 19 | * (0x3FFAE000-0x3FFB0000) for ROM PHY data (rom_phyFuns at 0x3FFAE0C0), |
20 | 20 | * then use the rest for the stack, initialized .data, .bss, and the Go |
21 | | - * GC heap. */ |
| 21 | + * GC heap. The .btdm_reserved section below keeps the first 64K free when |
| 22 | + * the Bluetooth driver is linked in. */ |
22 | 23 | DRAM (rw) : ORIGIN = 0x3FFB0000, LENGTH = 192K |
23 | 24 |
|
24 | 25 | /* Top of SRAM1 (0x3FFF0000-0x40000000, 64K): pool 7 + pool 6. This is the |
@@ -55,6 +56,22 @@ SECTIONS |
55 | 56 | _rodata_end = ABSOLUTE(.); |
56 | 57 | } >DROM |
57 | 58 |
|
| 59 | + /* The Bluetooth controller uses exchange memory at 0x3FFB0000 and BSS at |
| 60 | + * 0x3FFB8000. The addresses are fixed in ROM, so this 64K block must stay |
| 61 | + * free. The espradio Bluetooth driver defines _btdm_mem_needed. Programs |
| 62 | + * that do not use Bluetooth keep the 64K, because --gc-sections removes |
| 63 | + * the symbol with the driver. |
| 64 | + * See ESP-IDF components/bt/controller/esp32/bt.c, btdm_dram_available_region. |
| 65 | + */ |
| 66 | + .btdm_reserved (NOLOAD) : |
| 67 | + { |
| 68 | + . = ALIGN(4); |
| 69 | + _btdm_reserved_start = ABSOLUTE(.); |
| 70 | + . += DEFINED(_btdm_mem_needed) ? 0x10000 : 0; |
| 71 | + _btdm_reserved_end = ABSOLUTE(.); |
| 72 | + } >DRAM |
| 73 | + ASSERT(_btdm_reserved_start == 0x3FFB0000, "BT reserved block must start at 0x3FFB0000") |
| 74 | + |
58 | 75 | /* Put the stack at the bottom of DRAM, so that the application will |
59 | 76 | * crash on stack overflow instead of silently corrupting memory. |
60 | 77 | */ |
@@ -339,3 +356,288 @@ PROVIDE(ets_isr_attach = 0x400067ec); |
339 | 356 | PROVIDE(ets_isr_mask = 0x400067fc); |
340 | 357 | PROVIDE(ets_isr_unmask = 0x40006808); |
341 | 358 | PROVIDE(roundup2 = 0x4000ab7c); |
| 359 | + |
| 360 | +/* From ESP-IDF: |
| 361 | + * components/esp_rom/esp32/ld/esp32.rom.ld |
| 362 | + * Bluetooth controller ROM functions and data. libbtdm_app.a gets most of its |
| 363 | + * undefined symbols from here. The addresses are the same on all ESP32 |
| 364 | + * silicon revisions. |
| 365 | + */ |
| 366 | +PROVIDE(AddBigHexModP256 = 0x40015c98); |
| 367 | +PROVIDE(btdm_r_btdm_option_data_p_get = 0x40010004); |
| 368 | +PROVIDE(btdm_r_btdm_rom_version_get = 0x40010078); |
| 369 | +PROVIDE(btdm_r_import_rf_phy_func_p_get = 0x40054298); |
| 370 | +PROVIDE(btdm_r_ip_func_p_get = 0x40019af0); |
| 371 | +PROVIDE(btdm_r_modules_func_p_get = 0x4005427c); |
| 372 | +PROVIDE(btdm_r_plf_func_p_set = 0x40054288); |
| 373 | +PROVIDE(bt_util_buf_env = 0x3ffb8bd4); |
| 374 | +PROVIDE(co_default_bdaddr = 0x3ffae704); |
| 375 | +PROVIDE(co_null_bdaddr = 0x3ffb80e0); |
| 376 | +PROVIDE(_data_start_btdm_rom = 0x4000d4f4); |
| 377 | +PROVIDE(_data_start_btdm = 0x3ffae6e0); |
| 378 | +PROVIDE(_data_end_btdm = 0x3ffaff10); |
| 379 | +PROVIDE(_bss_start_btdm = 0x3ffb8000); |
| 380 | +PROVIDE(_bss_end_btdm = 0x3ffbff70); |
| 381 | +PROVIDE(dbg_state = 0x3ffb8d5d); |
| 382 | +PROVIDE(ecc_env = 0x3ffb8d60); |
| 383 | +PROVIDE(em_buf_env = 0x3ffb8d74); |
| 384 | +PROVIDE(rwip_coex_cfg = 0x3ff9914c); |
| 385 | +PROVIDE(rwip_priority = 0x3ff99159); |
| 386 | +PROVIDE(hci_env = 0x3ffb9350); |
| 387 | +PROVIDE(rwip_env = 0x3ffb8bcc); |
| 388 | +PROVIDE(hci_fc_env = 0x3ffb9340); |
| 389 | +PROVIDE(ke_env = 0x3ffb93cc); |
| 390 | +PROVIDE(ke_handler_search = 0x4001a430); |
| 391 | +PROVIDE(ke_task_env = 0x3ffb81d4); |
| 392 | +PROVIDE(lb_default_state_tab_p_get = 0x4001c198); |
| 393 | +PROVIDE(lb_env = 0x3ffb9424); |
| 394 | +PROVIDE(lb_hci_cmd_handler_tab_p_get = 0x4001c18c); |
| 395 | +PROVIDE(lc_default_state_tab_p_get = 0x4002f494); |
| 396 | +PROVIDE(lc_env = 0x3ffb94ec); |
| 397 | +PROVIDE(lc_hci_cmd_handler_tab_p_get = 0x4002f488); |
| 398 | +PROVIDE(lc_state = 0x3ffb9508); |
| 399 | +PROVIDE(ld_env = 0x3ffb9510); |
| 400 | +PROVIDE(llc_default_state_tab_p_get = 0x40046058); |
| 401 | +PROVIDE(llc_env = 0x3ffb96d0); |
| 402 | +PROVIDE(llc_hci_cmd_handler_tab_p_get = 0x40042358); |
| 403 | +PROVIDE(llcp_pdu_handler_tab_p_get = 0x40043f64); |
| 404 | +PROVIDE(lld_evt_deferred_elt_push = 0x400466b4); |
| 405 | +PROVIDE(lld_evt_deferred_elt_pop = 0x400466dc); |
| 406 | +PROVIDE(lld_evt_slave_time_compute = 0x40046818); |
| 407 | +PROVIDE(lld_evt_env = 0x3ffb9704); |
| 408 | +PROVIDE(lld_evt_elt_wait_get = 0x400468e4); |
| 409 | +PROVIDE(lld_evt_get_next_free_slot = 0x4004692c); |
| 410 | +PROVIDE(lld_pdu_llcp_pk_desc_tab = 0x3ff98b68); |
| 411 | +PROVIDE(lld_pdu_tx_flush_list = 0x4004a760); |
| 412 | +PROVIDE(lld_pdu_pack = 0x4004ab14); |
| 413 | +PROVIDE(LLM_AA_CT1 = 0x3ff98d8a); |
| 414 | +PROVIDE(LLM_AA_CT2 = 0x3ff98d88); |
| 415 | +PROVIDE(llm_default_state_tab_p_get = 0x4004e718); |
| 416 | +PROVIDE(llm_hci_cmd_handler_tab_p_get = 0x4004c920); |
| 417 | +PROVIDE(llm_le_env = 0x3ffb976c); |
| 418 | +PROVIDE(lm_default_state_tab_p_get = 0x40054268); |
| 419 | +PROVIDE(lm_env = 0x3ffb9860); |
| 420 | +PROVIDE(lm_hci_cmd_handler_tab_p_get = 0x4005425c); |
| 421 | +PROVIDE(MultiplyBigHexModP256 = 0x400160b8); |
| 422 | +PROVIDE(one_bits = 0x3ff971f8); |
| 423 | +PROVIDE(r_btdm_option_data = 0x3ffae6e0); |
| 424 | +PROVIDE(r_bt_util_buf_acl_rx_alloc = 0x40010218); |
| 425 | +PROVIDE(r_bt_util_buf_acl_rx_free = 0x40010234); |
| 426 | +PROVIDE(r_bt_util_buf_acl_tx_alloc = 0x40010268); |
| 427 | +PROVIDE(r_bt_util_buf_acl_tx_free = 0x40010280); |
| 428 | +PROVIDE(r_bt_util_buf_lmp_tx_alloc = 0x400101d0); |
| 429 | +PROVIDE(r_bt_util_buf_lmp_tx_free = 0x400101ec); |
| 430 | +PROVIDE(r_bt_util_buf_sync_clear = 0x400103c8); |
| 431 | +PROVIDE(r_bt_util_buf_sync_rx_alloc = 0x40010468); |
| 432 | +PROVIDE(r_bt_util_buf_sync_rx_free = 0x4001049c); |
| 433 | +PROVIDE(r_bt_util_buf_sync_tx_alloc = 0x400103ec); |
| 434 | +PROVIDE(r_bt_util_buf_sync_tx_free = 0x40010428); |
| 435 | +PROVIDE(lm_n192_mod_mul = 0x40011dc0); |
| 436 | +PROVIDE(lm_n192_mod_add = 0x40011e9c); |
| 437 | +PROVIDE(lm_n192_mod_sub = 0x40011eec); |
| 438 | +PROVIDE(ea_conflict_check = 0x40014e9c); |
| 439 | +PROVIDE(ea_prog_timer = 0x40014f88); |
| 440 | +PROVIDE(r_ea_offset_req = 0x40015748); |
| 441 | +PROVIDE(r_ea_time_get_halfslot_rounded = 0x40015894); |
| 442 | +PROVIDE(ecc_point_multiplication_uint8_256 = 0x40016804); |
| 443 | +PROVIDE(r_hci_look_for_cmd_desc = 0x40018454); |
| 444 | +PROVIDE(r_hci_look_for_dbg_evt_desc = 0x400184c4); |
| 445 | +PROVIDE(r_hci_send_2_host = 0x400185bc); |
| 446 | +PROVIDE(r_ke_event_schedule = 0x40019cdc); |
| 447 | +PROVIDE(r_ke_timer_clear = 0x4001ab90); |
| 448 | +PROVIDE(r_ke_timer_set = 0x4001aac0); |
| 449 | +PROVIDE(r_lb_init = 0x4001acd4); |
| 450 | +PROVIDE(r_lb_reset = 0x4001ad38); |
| 451 | +PROVIDE(r_lc_auth_cmp = 0x4001cd54); |
| 452 | +PROVIDE(r_lc_init = 0x4001c948); |
| 453 | +PROVIDE(r_lc_reset = 0x4001c99c); |
| 454 | +PROVIDE(r_lc_sco_host_accept = 0x40022118); |
| 455 | +PROVIDE(r_lc_start = 0x4001ca28); |
| 456 | +PROVIDE(lc_set_encap_pdu_data_p192 = 0x4002e4c8); |
| 457 | +PROVIDE(lc_set_encap_pdu_data_p256 = 0x4002e454); |
| 458 | +PROVIDE(lm_get_auth_method = 0x40023420); |
| 459 | +PROVIDE(lmp_accepted_ext_handler = 0x40027290); |
| 460 | +PROVIDE(lmp_clk_adj_handler = 0x40027468); |
| 461 | +PROVIDE(lmp_clk_adj_ack_handler = 0x400274f4); |
| 462 | +PROVIDE(lmp_clk_adj_req_handler = 0x4002751c); |
| 463 | +PROVIDE(lmp_feats_req_ext_handler = 0x4002ccb0); |
| 464 | +PROVIDE(lmp_pkt_type_tbl_req_handler = 0x40027574); |
| 465 | +PROVIDE(lmp_esco_link_req_handler = 0x40027610); |
| 466 | +PROVIDE(lmp_rmv_esco_link_req_handler = 0x400276e8); |
| 467 | +PROVIDE(lmp_ssr_req_handler = 0x4002780c); |
| 468 | +PROVIDE(lmp_ssr_res_handler = 0x40027900); |
| 469 | +PROVIDE(lmp_pause_enc_req_handler = 0x4002df90); |
| 470 | +PROVIDE(lmp_resume_enc_req_handler = 0x4002e084); |
| 471 | +PROVIDE(lmp_num_comparison_fail_handler = 0x40027a74); |
| 472 | +PROVIDE(lmp_passkey_fail_handler = 0x40027aec); |
| 473 | +PROVIDE(lmp_keypress_notif_handler = 0x4002c5c8); |
| 474 | +PROVIDE(lmp_pwr_ctrl_req_handler = 0x400263bc); |
| 475 | +PROVIDE(lmp_pwr_ctrl_res_handler = 0x40026480); |
| 476 | +PROVIDE(lmp_auto_rate_handler = 0x40026548); |
| 477 | +PROVIDE(lmp_pref_rate_handler = 0x4002657c); |
| 478 | +PROVIDE(lmp_name_req_handler = 0x40025050); |
| 479 | +PROVIDE(lmp_name_res_handler = 0x400250bc); |
| 480 | +PROVIDE(lmp_accepted_handler = 0x4002e894); |
| 481 | +PROVIDE(lmp_clk_off_req_handler = 0x40025a44); |
| 482 | +PROVIDE(lmp_clk_off_res_handler = 0x40025ab8); |
| 483 | +PROVIDE(lmp_detach_handler = 0x40025b74); |
| 484 | +PROVIDE(lmp_tempkey_handler = 0x4002b6b0); |
| 485 | +PROVIDE(lmp_temprand_handler = 0x4002b74c); |
| 486 | +PROVIDE(lmp_sres_handler = 0x4002b840); |
| 487 | +PROVIDE(lmp_aurand_handler = 0x4002bda0); |
| 488 | +PROVIDE(lmp_unitkey_handler = 0x4002c13c); |
| 489 | +PROVIDE(lmp_inrand_handler = 0x4002c414); |
| 490 | +PROVIDE(lmp_oob_fail_handler = 0x40027b84); |
| 491 | +PROVIDE(lmp_ping_req_handler = 0x40027c08); |
| 492 | +PROVIDE(lmp_ping_res_handler = 0x40027c5c); |
| 493 | +PROVIDE(lmp_stop_enc_req_handler = 0x4002de30); |
| 494 | +PROVIDE(lmp_incr_pwr_req_handler = 0x4002629c); |
| 495 | +PROVIDE(lmp_decr_pwr_req_handler = 0x400262f8); |
| 496 | +PROVIDE(lmp_max_pwr_handler = 0x40026354); |
| 497 | +PROVIDE(lmp_min_pwr_handler = 0x40026388); |
| 498 | +PROVIDE(lmp_ver_req_handler = 0x400265f0); |
| 499 | +PROVIDE(lmp_ver_res_handler = 0x40026670); |
| 500 | +PROVIDE(lmp_qos_handler = 0x40026790); |
| 501 | +PROVIDE(lmp_qos_req_handler = 0x40026844); |
| 502 | +PROVIDE(lmp_sco_link_req_handler = 0x40026930); |
| 503 | +PROVIDE(lmp_rmv_sco_link_req_handler = 0x40026a10); |
| 504 | +PROVIDE(lmp_max_slot_handler = 0x40026a54); |
| 505 | +PROVIDE(lmp_max_slot_req_handler = 0x40026aac); |
| 506 | +PROVIDE(lmp_timing_accu_req_handler = 0x40026b54); |
| 507 | +PROVIDE(lmp_timing_accu_res_handler = 0x40026bcc); |
| 508 | +PROVIDE(lmp_setup_cmp_handler = 0x40026c84); |
| 509 | +PROVIDE(lmp_feats_res_handler = 0x4002b548); |
| 510 | +PROVIDE(lmp_feats_req_handler = 0x4002b620); |
| 511 | +PROVIDE(lmp_host_con_req_handler = 0x4002b3d8); |
| 512 | +PROVIDE(lmp_use_semi_perm_key_handler = 0x4002b4c4); |
| 513 | +PROVIDE(lmp_slot_off_handler = 0x40026cc8); |
| 514 | +PROVIDE(lmp_page_mode_req_handler = 0x40026d0c); |
| 515 | +PROVIDE(lmp_page_scan_mode_req_handler = 0x40026d4c); |
| 516 | +PROVIDE(lmp_supv_to_handler = 0x40026d94); |
| 517 | +PROVIDE(lmp_test_activate_handler = 0x40026e7c); |
| 518 | +PROVIDE(lmp_test_ctrl_handler = 0x40026ee4); |
| 519 | +PROVIDE(lmp_enc_key_size_mask_req_handler = 0x40027038); |
| 520 | +PROVIDE(lmp_enc_key_size_mask_res_handler = 0x400270a4); |
| 521 | +PROVIDE(lmp_encaps_hdr_handler = 0x40027120); |
| 522 | +PROVIDE(lmp_sp_nb_handler = 0x4002acf0); |
| 523 | +PROVIDE(lmp_sp_cfm_handler = 0x4002b170); |
| 524 | +PROVIDE(lmp_dhkey_chk_handler = 0x4002ab48); |
| 525 | +PROVIDE(lmp_io_cap_res_handler = 0x4002c670); |
| 526 | +PROVIDE(lmp_io_cap_req_handler = 0x4002c7a4); |
| 527 | +PROVIDE(lc_cmd_cmp_bd_addr_send = 0x4002cec4); |
| 528 | +PROVIDE(ld_acl_tx_packet_type_select = 0x4002fb40); |
| 529 | +PROVIDE(ld_acl_sched = 0x40033268); |
| 530 | +PROVIDE(ld_acl_sniff_sched = 0x4003340c); |
| 531 | +PROVIDE(ld_acl_sniff_exit = 0x400312b4); |
| 532 | +PROVIDE(ld_sco_evt_canceled_cbk = 0x40031e18); |
| 533 | +PROVIDE(ld_acl_rx = 0x4003274c); |
| 534 | +PROVIDE(ld_acl_tx = 0x4002ffdc); |
| 535 | +PROVIDE(ld_acl_rx_sync = 0x4002fbec); |
| 536 | +PROVIDE(ld_acl_rx_sync2 = 0x4002fd8c); |
| 537 | +PROVIDE(ld_acl_rx_no_sync = 0x4002fe78); |
| 538 | +PROVIDE(ld_acl_clk_isr = 0x40030cf8); |
| 539 | +PROVIDE(ld_acl_rsw_frm_cbk = 0x40033bb0); |
| 540 | +PROVIDE(ld_sco_modify = 0x40031778); |
| 541 | +PROVIDE(lm_cmd_cmp_send = 0x40051838); |
| 542 | +PROVIDE(ld_sco_frm_cbk = 0x400349dc); |
| 543 | +PROVIDE(ld_sco_evt_start_cbk = 0x40031afc); |
| 544 | +PROVIDE(ld_sco_evt_stop_cbk = 0x40031d78); |
| 545 | +PROVIDE(ld_acl_rsw_evt_start_cbk = 0x40031154); |
| 546 | +PROVIDE(ld_acl_sco_rsvd_check = 0x4002fa94); |
| 547 | +PROVIDE(ld_acl_sniff_frm_cbk = 0x4003482c); |
| 548 | +PROVIDE(ld_inq_end = 0x4003ab48); |
| 549 | +PROVIDE(ld_inq_sched = 0x4003aba4); |
| 550 | +PROVIDE(ld_inq_frm_cbk = 0x4003ae4c); |
| 551 | +PROVIDE(ld_pscan_frm_cbk = 0x4003ebe4); |
| 552 | +PROVIDE(r_ld_acl_sniff = 0x4003617c); |
| 553 | +PROVIDE(ld_acl_frm_cbk = 0x40034414); |
| 554 | +PROVIDE(ld_acl_rsw_end = 0x40032bc0); |
| 555 | +PROVIDE(ld_acl_end = 0x40033140); |
| 556 | +PROVIDE(ld_acl_resched = 0x40033814); |
| 557 | +PROVIDE(ld_acl_test_mode_update = 0x40032050); |
| 558 | +PROVIDE(ld_csb_tx_sched = 0x40039c1c); |
| 559 | +PROVIDE(ld_csb_tx_evt_start_cbk = 0x40039d0c); |
| 560 | +PROVIDE(ld_csb_tx_evt_canceled_cbk = 0x40039ee4); |
| 561 | +PROVIDE(r_ld_init = 0x4003c294); |
| 562 | +PROVIDE(r_ld_page_start = 0x4003d848); |
| 563 | +PROVIDE(r_ld_reset = 0x4003c714); |
| 564 | +PROVIDE(r_ld_sched_sniff_add = 0x4003f9c4); |
| 565 | +PROVIDE(r_ld_sco_start = 0x40037110); |
| 566 | +PROVIDE(r_ld_sscan_start = 0x40040384); |
| 567 | +PROVIDE(r_llc_common_cmd_status_send = 0x40044ee0); |
| 568 | +PROVIDE(r_llc_init = 0x40044778); |
| 569 | +PROVIDE(r_llc_llcp_recv_handler = 0x40044678); |
| 570 | +PROVIDE(r_llc_reset = 0x400447b8); |
| 571 | +PROVIDE(r_llc_stop = 0x400449ac); |
| 572 | +PROVIDE(r_lld_adv_stop = 0x40048ea0); |
| 573 | +PROVIDE(r_lld_evt_init = 0x40046b3c); |
| 574 | +PROVIDE(r_lld_pdu_tx_flush = 0x4004b414); |
| 575 | +PROVIDE(r_lld_scan_stop = 0x40049190); |
| 576 | +PROVIDE(r_llm_init = 0x4004c9f8); |
| 577 | +PROVIDE(r_lm_init = 0x4004ed34); |
| 578 | +PROVIDE(nvds_null_read = 0x400542a0); |
| 579 | +PROVIDE(nvds_null_write = 0x400542a8); |
| 580 | +PROVIDE(nvds_null_erase = 0x400542b0); |
| 581 | +PROVIDE(nvds_read = 0x400542c4); |
| 582 | +PROVIDE(nvds_write = 0x400542fc); |
| 583 | +PROVIDE(nvds_erase = 0x40054334); |
| 584 | +PROVIDE(nvds_init_memory = 0x40054358); |
| 585 | +PROVIDE(r_rwip_prevent_sleep_set = 0x40055e64); |
| 586 | +PROVIDE(r_rwip_reset = 0x40055ab8); |
| 587 | +PROVIDE(r_rwip_schedule = 0x40055b38); |
| 588 | +PROVIDE(rwip_rf = 0x3ffbdb28); |
| 589 | +PROVIDE(SubtractBigHexMod256 = 0x40015e8c); |
| 590 | +PROVIDE(sw_to_hw = 0x3ffb8d40); |
| 591 | +PROVIDE(hci_le_rd_rem_used_feats_cmd_handler = 0x400417b4); |
| 592 | +PROVIDE(hci_per_inq_mode_cmd_handler = 0x400519b0); |
| 593 | +PROVIDE(llcp_length_req_handler = 0x40043808); |
| 594 | +PROVIDE(llcp_unknown_rsp_handler = 0x40043ba8); |
| 595 | +PROVIDE(llcp_channel_map_req_handler = 0x4004291c); |
| 596 | +PROVIDE(llcp_con_up_req_handler = 0x400426f0); |
| 597 | +PROVIDE(ets_update_cpu_frequency_rom = 0x40008550); |
| 598 | +PROVIDE(hci_tl_env = 0x3ffb8154); |
| 599 | +PROVIDE(ld_acl_env = 0x3ffb8258); |
| 600 | +PROVIDE(ea_env = 0x3ffb80ec); |
| 601 | +PROVIDE(lc_sco_data_path_config = 0x3ffb81f8); |
| 602 | +PROVIDE(lc_sco_env = 0x3ffb81fc); |
| 603 | +PROVIDE(ld_csb_tx_env = 0x3ffb827c); |
| 604 | +PROVIDE(ld_fm_env = 0x3ffb8284); |
| 605 | +PROVIDE(ld_inq_env = 0x3ffb82e4); |
| 606 | +PROVIDE(ld_page_env = 0x3ffb82f0); |
| 607 | +PROVIDE(ld_pscan_env = 0x3ffb8308); |
| 608 | +PROVIDE(ld_sched_env = 0x3ffb830c); |
| 609 | +PROVIDE(ld_sco_env = 0x3ffb824c); |
| 610 | +PROVIDE(LM_Sniff = 0x3ffb8230); |
| 611 | +PROVIDE(LM_SniffSubRate = 0x3ffb8214); |
| 612 | +PROVIDE(nvds_env = 0x3ffb8364); |
| 613 | +PROVIDE(nvds_magic_number = 0x3ff9912a); |
| 614 | +PROVIDE(TASK_DESC_LLD = 0x3ff98b58); |
| 615 | +PROVIDE(ld_acl_evt_canceled_cbk = 0x40033944); |
| 616 | +PROVIDE(ld_acl_rsw_evt_canceled_cbk = 0x40033364); |
| 617 | +PROVIDE(ld_acl_evt_stop_cbk = 0x40033870); |
| 618 | +PROVIDE(ld_acl_evt_start_cbk = 0x40030ab0); |
| 619 | +PROVIDE(ld_acl_sniff_evt_start_cbk = 0x40031360); |
| 620 | +PROVIDE(lc_acl_disc_ind_handler = 0x4002f270); |
| 621 | +PROVIDE(lc_pca_sscan_start_req_handler = 0x40029b34); |
| 622 | +PROVIDE(ld_acl_sniff_trans_sched = 0x40033734); |
| 623 | +PROVIDE(lc_pwr_decr_ind_handler = 0x4002859c); |
| 624 | +PROVIDE(lc_pwr_incr_ind_handler = 0x400284a8); |
| 625 | +PROVIDE(lc_setup_sync_param_check = 0x4002354c); |
| 626 | +PROVIDE(lc_lmp_rsp_to_flow_spec_handler = 0x400297f0); |
| 627 | +PROVIDE(lc_pca_sscan_clk_ind_handler = 0x4002a38c); |
| 628 | +PROVIDE(lc_op_loc_unsniff_req_handler = 0x40028be0); |
| 629 | +PROVIDE(lc_op_loc_sniff_req_handler = 0x40028ccc); |
| 630 | +PROVIDE(lc_op_loc_switch_req_handler = 0x40028df4); |
| 631 | +PROVIDE(lc_op_loc_sync_con_req_handler = 0x40028f6c); |
| 632 | +PROVIDE(lm_sync_conf = 0x3ffb8348); |
| 633 | +PROVIDE(lm_nb_sync_active = 0x3ffb8346); |
| 634 | +PROVIDE(lm_sync_nego = 0x3ffb8345); |
| 635 | +PROVIDE(lm_nego_cnt = 0x3ffb8344); |
| 636 | +PROVIDE(lm_nego_cntl = 0x3ffb8342); |
| 637 | +PROVIDE(lm_nego_max_cnt = 0x3ffb8343); |
| 638 | +PROVIDE(lm_nego_pkt_used = 0x3ffb8340); |
| 639 | + |
| 640 | +/* The Bluetooth controller startup code in libbtdm_app.a refers to the start of |
| 641 | + * the BSS. TinyGo calls this symbol _sbss. |
| 642 | + */ |
| 643 | +PROVIDE(_bss_start = _sbss); |
0 commit comments