系统环境
armv8-a 64位 4核cortex-a35
移植到rt-smart分支系统中
由于rt没有线程支持aarch64 cortex-a35,因此参考cortex-a72做些相关的改动
当前系统没有开启多核支持
问题
移植后开机出现以下日志,出现了以下错误。

红框为我额外添加的打印。对应的代码如下
void rt_system_scheduler_start(void)
{
register struct rt_thread *to_thread;
rt_ubase_t highest_ready_priority;
to_thread = _get_highest_priority_thread(&highest_ready_priority);
#ifdef RT_USING_SMP
to_thread->oncpu = rt_hw_cpu_id();
#else
rt_current_thread = to_thread;
#endif /*RT_USING_SMP*/
rt_schedule_remove_thread(to_thread);
to_thread->stat = RT_THREAD_RUNNING;
/* switch to new thread */
#ifdef RT_USING_SMP
rt_hw_context_switch_to((rt_ubase_t)&to_thread->sp, to_thread);
#else
rt_kprintf("[%s, %d]\r\n", __func__, __LINE__);
rt_kprintf("to_thread->name = %s\r\n", to_thread->name);
rt_kprintf("to_thread->sp = 0x%016X\r\n", to_thread->sp);
rt_kprintf("to_thread->entry = 0x%016X\r\n", to_thread->entry);
rt_hw_context_switch_to((rt_ubase_t)&to_thread->sp);
rt_kprintf("[%s, %d]\r\n", __func__, __LINE__);
#endif /*RT_USING_SMP*/
/* never come back */
}
看起来是rt_hw_context_switch_to跳转到timer线程没有成功。
当前没有查找的思路了,跪求有经验的大佬指导一下可以往下调试的手段,或者方向,谢谢!
你好,串口已经初始化完,打印可以用。但由于对汇编不是很了解,不是很懂中断跳转的机制。
armv8有可以跑通的bsp吗?我参考参考,当前这份是参考树莓派aarch64修改的
@xhwang 没有的,官方还没有出,目前只支持树莓派,其他的需要你自己去移植试试