我正在做一个关于将Autosar操作系统移植到一个微控制器的学术项目。在阅读了有关Autosar、北极核心和北极工作室的论文和信息后,我有一些问题:
发布于 2015-04-23 14:29:06
3、无法看到ARTIC核心的主要功能: AUTOSAR不定义启动代码。您应该自己编写主函数。AUTOSAR操作系统中的内核是从ECUM模块初始化的。如果您想要引导您的操作系统,您必须有ECUM模块。另外,您应该有BSWM模块来启动调度表。您必须在BSWM中为RTE启动创建规则,它将启动您的进度表。您必须手动编写启动代码(RAM/Register初始化),从这一点您必须调用主函数,主函数将被手工编码。从主函数调用EcuM_init。这样,您的操作系统将启动。2 .无法定位函数来设置任务优先级和激活: AUTOSAR不支持动态任务优先级。你必须在配置中设定所有的优先级。要运行任务,可以使用ActivateTask()。在启动时启动任务的一个快速技巧是,为一个任务设置参数OsTaskAutostart。一旦初始化内核,您设置了参数OsTaskAutostart的任务就会被调用。
发布于 2015-07-24 06:40:57
有关更多信息,请阅读RTE SWS、ECUM SWS、SYSTEMTemplate SWS。
发布于 2017-07-13 08:10:00
我想您的学术项目已经结束了,但是将AUTOSAR操作系统移植到特定的微控制器并不是学术项目的合适范围。
首先,从您的问题中,我无法判断操作系统是ARCCORE还是其他操作系统。其次,根据我在FreeRTOS方面的经验,适用于AUTOSAR和创建任务的知识有限(2)。是应用程序级而不是移植级。第三,大多数AUTOSAR操作系统依赖于专门的嵌入式编译器,例如GHS或DIAB,它们不是学术界的家。
我本人还没有移植AUTOSAR操作系统,但我建议先看看移植版本、体系结构和文件结构、系统,然后再看看启动例程、向量表、外围代码等等。在同一个MCU架构内移植时,可以降低复杂性,比如Renesas机器或ARM。
要回答您的问题3.,您将找不到ARCCORE示例中的main()。main()位于os_init.c中,如下所示:
extern void EcuM_Init(void);
int main( void )
{
EcuM_Init();
}
然后,EcuM_Init()厄瓜多尔M.c调用InitOS();
https://stackoverflow.com/questions/29528343
复制相似问题