2021-09-25 19:36:57 索煒達(dá)電子 834
項目編號:E1311
文件大?。?.42M
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡要概述:
rtems4.10.2 for tms320c6678,支持windows下開發(fā), 使用CCS進(jìn)行源碼級編譯及調(diào)試
rtems 4.10.2 window下開發(fā)及C6678處理器移植
rtems操作系統(tǒng)最早用于美國國防系統(tǒng),早期的名稱為實時導(dǎo)彈系統(tǒng)(Real Time Executive for Missile Systems),出自于軍工產(chǎn)品,其實時性、安全性、可靠性都是有保障的,相關(guān)的測試報告官方都能查到,其他介紹說明可以百度百科一下,我就不羅嗦了。 rtems的開發(fā)主要是在linux系統(tǒng)下,需要完成工具鏈構(gòu)建,編譯操作系統(tǒng)庫,再編譯freebsp網(wǎng)絡(luò)協(xié)議棧,最后是應(yīng)用程序開發(fā),開發(fā)環(huán)境搭建復(fù)雜,不熟悉linux環(huán)境的開發(fā)人員使用不方便。window上,基本沒見到過相關(guān)的開發(fā)方案。 本人因項目經(jīng)歷,對rtems操作系統(tǒng)有一定研究,現(xiàn)基于rtems 4.10.2版本進(jìn)行修改,實現(xiàn)了以下目標(biāo):
1、window下開發(fā),基于源碼級的開發(fā)調(diào)試方式;
2、單個工程實現(xiàn)rtems和應(yīng)用程序一起編譯, 不需要分開編譯;
3、接口:純posix api接口,避免各種嵌入式RTOS接口不一致的問題;
4、功能:提供任務(wù)管理、內(nèi)存管理、中斷管理、同步和通信等功能,去掉了shell、IO、vfs等模塊,一般的嵌入式開發(fā)足夠勝任。如果需要,可以實現(xiàn)一個簡易的IO管理框架,提供設(shè)備注冊及通用IO操作接口,lwip協(xié)議棧移植也不難;
5、穩(wěn)定性:對源碼改動不大(可使用工具對比),本人已經(jīng)移植到了TI tms320c6678 dsp處理器,在simulator上做了一些測試驗證,穩(wěn)定性有保障。
6、可移植性:支持tms320c6678處理器,并進(jìn)行了測試。arm平臺也有代碼,可以編譯,但未測試驗證。其他平臺把相關(guān)代碼(cpu相關(guān)代碼基本不需要修改)放上去理論上是可以支持的,需要參照c66的方式進(jìn)行移植。
7、版權(quán):GPL版權(quán),不需要商業(yè)授權(quán)使用,可替換ucos等商業(yè)軟件;
使用說明
1. 安裝ti ccs集成開發(fā)環(huán)境
2. 菜單file->import->Code Composer Studio->CCS projects,導(dǎo)入工程;
3. 構(gòu)建
目錄│文件列表:
└ 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