【E1311】Rtems 4.10.2 Window下开发及C6678处理器移植

2021-09-25 19:36:57      索炜达电子      544     

项目编号: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

TAGC6678
  • 7 次
  • 20 分