Skip to content

installing systick exception handler when VTOR is set by another OS (TI SYSBIOS) #30

Description

@alefminus

I'm trying to give lilos a go in a project that is using TI SYSBIOS. I'm not sure this is a case that you would find very interesting but I am hoping to get some feedback since I'm not entirely sure what I am doing.

The hardware is a CC1352R1 MCU from TI that is running a single task via TI SYSBIOS (version 6.20) ; It does not use systick at all, so I thought it should be possible to use. It does expect interrupts to not be disabled by user space so I am using run_tasks_with_preemption, which gets me a little bit ahead. The next problem I have, which this ticket is about, is that the systick exception handler is defined via the exception macro in time.rs but that doesn't place it actually in the vector table, which as I said is moved by TI to the start of SRAM (0x2000_0000 specifically).

My question (finally, sorry) is if adding a function to lilos that would allow installing the handler during runtime (as opposed to link time via #[exception]) is something you would be interested in carrying, and does it make any sense? something like

pub fn install_systick_handler(offset: u32) {
// read vtor
// set vtor + systick interrupt vector offset to the address of fn SysTick
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions