Reg*_*ego 9 avr rtos ada cross-compiling rtems
Ada有哪些RTOS可以使用开源/免费交叉编译器,支持多任务/多线程?
我有一个Atmel AT90USB162芯片,我想用Ada编程.我的第一个选择是使用AVR-Ada对其进行编程,但由于它没有任务支持,因此它是不可选择的(现在我对如何支持其任务转移没有任何线索).所以我需要一个更强大的方法.我想过使用QNX,但它比我的芯片架还要复杂得多.
我得到了AVR芯片支持uC/OS-II和FreeRTOS的信息.FreeRTOS或uC/OS-II有免费的Ada交叉编译器吗?
谢谢.
好吧,我所知道的唯一的Ada编译器是Free Software就是Gnat.这样就可以将你的问题简化为"Gnat支持任务的实时操作是什么?"
ACT 在此处保留了受支持平台的列表.右侧的列看起来主要是RTOS或伪RTOS.FreeRTOS和uC/OS-II似乎不在列表中.
我注意到他们列表底部的"裸板"下面的条目是"AVR微控制器ELF格式(托管在Windows上)".这可能就是你要找的东西.但是,我会说他们的裸板端口很可能也不支持任务.事实上,考虑到这一点,这可能是ACT的AVR-Ada名称.你必须检查ACT.
此外,应该指出的是,很难找到许多更深奥的gcc目标的"免费"二进制文件.这意味着你可能被迫从源头自己构建编译器(甚至远程用于胆小的人),或者实际上从ACT购买支持包以获得它.
RTEMS至少对某些体系结构支持GNAT.但是,由于您提到了Atmel AVR架构,由于架构限制(主要是可用内存),可能不支持此功能.RTEMS非常成熟(在Linux发明之前它是开源的),并且已被证明在许多项目中非常有用.
另一种选择是MarteOS,它在Ada支持.但是,架构的支持非常有限(最初只有x86).
因此,根据您的项目限制,您最有可能有三种选择:
(我在2004-2005左右首次将RTEMS与GNAT Ada一起用于基于ARM9TDMI核心的专有项目.)
小智 6
我是最初的RTEMS开发人员之一,自从陆军研究计划转变为传统的自由软件项目以来一直是RTEMS项目的领导者.我们非常努力地将RTEMS作为高品质的产品与优秀的社区保持一致.
AVR是一个非常小的目标,RTEMS端口不完整.即使RTEMS端口完成,我也不认为AVR具有足够的地址空间来支持GNAT/RTEMS.GNAT将每个Ada任务映射到POSIX线程,就像在GNU/Linux上一样,并且"真正的Ada"环境的运行时足迹很大.我记得PowerPC上400K代码范围内的最小可执行文件.相比之下,RTEMS最小C可执行文件可能在同一目标上的32-40k范围内.
我对AVR-Ada并不熟悉,但我同意我不太可能给你一个完整的Ada环境.
RTEMS项目有脚本,我们用它来构建GNU工具并测试它们.如果您有兴趣为自己的奇怪目标构建工具,那么它们可以成为一个很好的指南.嵌入式目标的过程并没有太大变化.
Marc C ..因为你在亨茨维尔,我们有时必须聚在一起共进午餐.我们的办公室大致在Bridge Street对面.我真的无法满足许多RTEMS用户.:(