# Size of extra stack frame needed by exception context switch. exception_frame_size: 64 # Add some missing calls. add: # usb_ep_event: grep ep_._evt -A 1 build/hammer/RW/ec.RW.smap usb_reset[chip/stm32/usb.c:370]: - hid_touchpad_event - hid_keyboard_event - usb_update_ep_event - i2c_usb__ep_event usb_interrupt_handle_wake[chip/stm32/usb.c:608]: - hid_touchpad_event - hid_keyboard_event - usb_update_ep_event - i2c_usb__ep_event # usb_ep_tx/rx: grep ep_._[rt]x -B 1 -A 1 build/hammer/RW/ec.RW.smap usb_interrupt[chip/stm32/usb.c:640]: - ep0_rx - hid_keyboard_rx - usb_update_ep_rx - i2c_usb__ep_rx - ep0_tx - hid_touchpad_tx - hid_keyboard_tx - usb_update_ep_tx - i2c_usb__ep_tx # usb_interface_request ep0_tx[chip/stm32/usb.c:337]: - hid_touchpad_iface_request - hid_keyboard_iface_request ep0_rx[chip/stm32/usb.c:193]: - hid_touchpad_iface_request - hid_keyboard_iface_request # Queue functions queue_advance_tail[common/queue.c:116]: - queue_add_direct queue_add_memcpy[common/queue.c:152]: - memcpy queue_add_memcpy[common/queue.c:157]: - memcpy queue_read_safe.lto_priv.98[common/queue.c:174]: - memcpy queue_read_safe.lto_priv.98[common/queue.c:179]: - memcpy queue_advance_head[common/queue.c:105]: - queue_remove_direct queue_add_direct[common/queue_policies.c:18]: - usb_i2c_written - usb_written - update_out_handler queue_remove_direct[common/queue_policies.c:27]: - usb_read vfnprintf: # This covers all the addchar in vfnprintf, but stackanalyzer does not # realize that... - __tx_char # gpio_interrupt[chip/stm32/gpio.c:146]: # TODO: All GPIO interrupt handlers should follow here handle_command[common/console.c:248]: - { name: __cmds, stride: 16, offset: 4 } hook_task[common/hooks.c:197]: - { name: __deferred_funcs, stride: 4, offset: 0 } - { name: __hooks_second, stride: 8, offset: 0 } - { name: __hooks_tick, stride: 8, offset: 0 } # Note: This assumes worse case, where all hook functions can be called from # any hook_notify call hook_notify[common/hooks.c:127]: - { name: __hooks_pre_freq_change, stride: 8, offset: 0 } - { name: __hooks_freq_change, stride: 8, offset: 0 } - { name: __hooks_chipset_pre_init, stride: 8, offset: 0 } - { name: __hooks_chipset_resume, stride: 8, offset: 0 } - { name: __hooks_chipset_startup, stride: 8, offset: 0 } - { name: __hooks_chipset_suspend, stride: 8, offset: 0 } - { name: __hooks_sysjump, stride: 8, offset: 0 } - { name: __hooks_chipset_shutdown, stride: 8, offset: 0 } - { name: __hooks_ac_change, stride: 8, offset: 0 } - { name: __hooks_battery_soc_change, stride: 8, offset: 0 } - { name: __hooks_chipset_reset, stride: 8, offset: 0 } - { name: __hooks_lid_change, stride: 8, offset: 0 } - { name: __hooks_pwrbtn_change, stride: 8, offset: 0 } - { name: __hooks_tablet_mode_change, stride: 8, offset: 0 } - { name: __hooks_usb_change, stride: 8, offset: 0 } jump_to_image.lto_priv.135[common/system.c:568]: - None irq_4_handler[core/cortex-m0/init.S:165]: - exception_panic remove: - panic_assert_fail - [queue_add_direct, update_out_handler, [queue_add_unit, queue_add_memcpy], queue_add_direct, update_out_handler] # set_touchpad_report/keyboard_state_changed add elements to a queue, but # _not_ the queue that would call update_out handler - [ touchpad_task, queue_add_unit, queue_add_direct, update_out_handler] - [ keyboard_scan_task, queue_add_unit, queue_add_direct, update_out_handler] # keyboard_raw_drive_column can't recurse more than once - [keyboard_raw_drive_column, keyboard_raw_drive_column, keyboard_raw_drive_column] - [system_common_shutdown, system_run_image_copy, jump_to_image.lto_priv.135, hook_notify, system_common_shutdown]