2021-09-25 19:36:57 索炜达电子 837
项目编号:E1311
文件大小:6.42M
源码说明:带中文注释
开发环境:C编译器
简要概述:
rtems4.10.2 for tms320c6678,支持windows下开发, 使用CCS进行源码级编译及调试
rtems 4.10.2 window下开发及C6678处理器移植
rtems操作系统最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),出自于军工产品,其实时性、安全性、可靠性都是有保障的,相关的测试报告官方都能查到,其他介绍说明可以百度百科一下,我就不罗嗦了。 rtems的开发主要是在linux系统下,需要完成工具链构建,编译操作系统库,再编译freebsp网络协议栈,最后是应用程序开发,开发环境搭建复杂,不熟悉linux环境的开发人员使用不方便。window上,基本没见到过相关的开发方案。 本人因项目经历,对rtems操作系统有一定研究,现基于rtems 4.10.2版本进行修改,实现了以下目标:
1、window下开发,基于源码级的开发调试方式;
2、单个工程实现rtems和应用程序一起编译, 不需要分开编译;
3、接口:纯posix api接口,避免各种嵌入式RTOS接口不一致的问题;
4、功能:提供任务管理、内存管理、中断管理、同步和通信等功能,去掉了shell、IO、vfs等模块,一般的嵌入式开发足够胜任。如果需要,可以实现一个简易的IO管理框架,提供设备注册及通用IO操作接口,lwip协议栈移植也不难;
5、稳定性:对源码改动不大(可使用工具对比),本人已经移植到了TI tms320c6678 dsp处理器,在simulator上做了一些测试验证,稳定性有保障。
6、可移植性:支持tms320c6678处理器,并进行了测试。arm平台也有代码,可以编译,但未测试验证。其他平台把相关代码(cpu相关代码基本不需要修改)放上去理论上是可以支持的,需要参照c66的方式进行移植。
7、版权:GPL版权,不需要商业授权使用,可替换ucos等商业软件;
使用说明
1. 安装ti ccs集成开发环境
2. 菜单file->import->Code Composer Studio->CCS projects,导入工程;
3. 构建
目录│文件列表:
└ rtems4.10.2-c66
└ rtems4.10.2-c66
│ .ccsproject
│ .cproject
│ .project
│ ChangeLog
│ COPYING
│ LICENSE
│ LICENSE.NET
│ LICENSE.RPCXDR
│ LICENSE.WEBSERVER
│ lnk.cmd
│ MAINTAINERS
│ README
│ README.md
│ rts6600_elf.lib
│ sim66.ccxml
├ app
│ │ app_main.c
│ └ system.h
├ c
│ └ src
│ ├ lib
│ │ ├ libbsp
│ │ │ ├ c6678
│ │ │ │ ├ console
│ │ │ │ │ └ uart-output-char.c
│ │ │ │ ├ include
│ │ │ │ │ │ bsp.h
│ │ │ │ │ └ bspopts.h
│ │ │ │ └ startup
│ │ │ │ │ bspgetworkarea.c
│ │ │ │ │ bspstart.c
│ │ │ │ │ clock.c
│ │ │ │ └ systemInit.c
│ │ │ └ shared
│ │ │ │ bootcard.c
│ │ │ │ bspclean.c
│ │ │ │ bspinit.c
│ │ │ │ bsplibc.c
│ │ │ │ bsppost.c
│ │ │ │ bsppredriverhook.c
│ │ │ │ bsppretaskinghook.c
│ │ │ │ bspreset.c
│ │ │ │ bspstart.c
│ │ │ │ gnatinstallhandler.c
│ │ │ │ sbrk.c
│ │ │ │ timerstub.c
│ │ │ ├ include
│ │ │ │ └ bsp
│ │ │ │ │ bootcard.h
│ │ │ │ │ coverhd.h
│ │ │ │ │ irq-generic.h
│ │ │ │ │ irq-info.h
│ │ │ │ │ irq.h
│ │ │ │ │ stackalloc.h
│ │ │ │ │ tm27.h
│ │ │ │ │ uart-output-char.h
│ │ │ │ └ utility.h
│ │ │ └ src
│ │ │ └ stackalloc.c
│ │ └ libcpu
│ │ └ shared
│ │ ├ include
│ │ │ │ cache.h
│ │ │ │ gdb_if.h
│ │ │ └ mpci.h
│ │ └ src
│ │ │ cache_aligned_malloc.c
│ │ └ no_cache.c
│ └ support
│ └ version.c
├ cpukit
│ ├ include
│ │ ├ rtems
│ │ │ │ bspIo.h
│ │ │ │ concat.h
│ │ │ │ endian.h
│ │ │ │ fs.h
│ │ │ │ imfs.h
│ │ │ │ irq-extension.h
│ │ │ │ irq.h
│ │ │ │ pci.h
│ │ │ │ pipe.h
│ │ │ │ status-checks.h
│ │ │ │ userenv.h
│ │ │ └ bsd
│ │ │ └ sys
│ │ │ │ cdefs.h
│ │ │ └ queue.h
│ │ └ sys
│ │ └ priority.h
│ ├ libcsupport
│ │ ├ include
│ │ │ │ iosupp.h
│ │ │ │ ringbuf.h
│ │ │ │ rtc.h
│ │ │ │ spurious.h
│ │ │ │ timerdrv.h
│ │ │ │ vmeintr.h
│ │ │ ├ motorola
│ │ │ │ │ mc68230.h
│ │ │ │ └ mc68681.h
│ │ │ ├ rtems
│ │ │ │ │ assoc.h
│ │ │ │ │ clockdrv.h
│ │ │ │ │ console.h
│ │ │ │ │ error.h
│ │ │ │ │ framebuffer.h
│ │ │ │ │ libcsupport.h
│ │ │ │ │ libio.h
│ │ │ │ │ libio_.h
│ │ │ │ │ malloc.h
│ │ │ │ │ termiostypes.h
│ │ │ │ └ watchdogdrv.h
│ │ │ ├ sys
│ │ │ │ │ filio.h
│ │ │ │ │ ioccom.h
│ │ │ │ │ ioctl.h
│ │ │ │ │ sockio.h
│ │ │ │ │ statvfs.h
│ │ │ │ │ termios.h
│ │ │ │ │ ttycom.h
│ │ │ │ └ utsname.h
│ │ │ └ zilog
│ │ │ │ z8036.h
│ │ │ │ z8530.h
│ │ │ └ z8536.h
│ │ └ src
│ │ │ assoclocalbyname.c
│ │ │ assocnamebad.c
│ │ │ assocnamebylocal.c
│ │ │ assocptrbylocal.c
│ │ │ assocptrbyname.c
│ │ │ calloc.c
│ │ │ CASES
│ │ │ close.c
│ │ │ error.c
│ │ │ free.c
│ │ │ getchark.c
│ │ │ getpagesize.c
│ │ │ getpid.c
│ │ │ getrusage.c
│ │ │ lseek.c
│ │ │ malloc.c
│ │ │ mallocfreespace.c
│ │ │ mallocinfo.c
│ │ │ malloc_boundary.c
│ │ │ malloc_deferred.c
│ │ │ malloc_dirtier.c
│ │ │ malloc_get_statistics.c
│ │ │ malloc_initialize.c
│ │ │ malloc_p.h
│ │ │ malloc_report_statistics.c
│ │ │ malloc_report_statistics_plugin.c
│ │ │ malloc_sbrk_helpers.c
│ │ │ malloc_statistics_helpers.c
│ │ │ malloc_walk.c
│ │ │ newlibc_exit.c
│ │ │ newlibc_init.c
│ │ │ newlibc_reent.c
│ │ │ posix_memalign.c
│ │ │ printk.c
│ │ │ printk_plugin.c
│ │ │ putk.c
│ │ │ read.c
│ │ │ README
│ │ │ realloc.c
│ │ │ rtems_malloc.c
│ │ │ rtems_memalign.c
│ │ │ setpgid.c
│ │ │ setsid.c
│ │ │ sleep_noposix.c
│ │ │ strlcat.c
│ │ │ strlcpy.c
│ │ │ strnlen.c
│ │ │ TODO
│ │ │ vprintk.c
│ │ │ write.c
│ │ │ write_r.c