Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
[新项目]资源丰富的RT-Thread版本
发布于 2009-05-06 21:53:17 浏览:19879
订阅该版
这段时间做的大多数是STM32等小资源的版本,原来RT-Thread的一些强项受限于内存方面的原因一直得不到发挥,所以这里就重新建立一个新Open Source项目吧(代码还是基于同一份代码,RT-Thread 0.3.0,但会着重做相关优化)。 新项目主要侧重点是资源丰富的平台,例如44b0,2410/2440等,主要不同点是内存的多少(MMU无关紧要,有当然就更好了)。按照这种类型的划分,常见的s3c44b0,s3c2410/2440,s3c6410,AT91RM9200,AT91SAM9260/9263,PXA320,PXA168,OMAP3,Jz4740等都可归为这类。在这类系统上,RT-Thread的优势主要是图形处理及动态模块加载,以获得在8M~32M memory上和Linux/WinCE 64M~128M类似的效果。 同时,今天我也开始进行这类资源丰富平台的测试代码开发,所以我这边的环境应该是没问题了,是一款非常新的Marvell PXA系列芯片(与PXA168用的一个核心),包括了图形加速,高清播放能力,应该是个优秀的开发平台。如果您有类似上述提及的平台,并且对这种系统感兴趣,欢迎加入到RT-Thread大家庭来。 这个新项目主要工作包括: - 大系统优化算法,哈希表,红黑树等。 - 动态加载技术,动态链接技术。 - 图形系统的完善,包括混合渲染,3D效果等。 - 输入设备的处理,简单的键盘,触摸屏,复杂的滚动球,多点触摸等。 - [远期] 视频/音频播放,xvid或h.264,硬解或软解 - [远期] 基于webkit或netsurf的浏览器
查看更多
23
个回答
默认排序
按发布时间排序
shaolin
2009-05-07
这家伙很懒,什么也没写!
恩,这个有人气的话可以考虑另开一个版面
东海獒广
2009-05-07
这家伙很懒,什么也没写!
越搞越大 目标是啥?给山寨提供一个廉价的解决方案?
bernard
2009-05-07
这家伙很懒,什么也没写!
不排除做一个山寨版的操作系统 [s:175]
dragonwww
2009-05-08
这家伙很懒,什么也没写!
天啊,我对你越来越崇拜了,这么多型号,通吃啊!一个字:真牛 [s:160]
bernard
2009-05-08
这家伙很懒,什么也没写!
[s:154] 通吃是不可能的,RT-Thread的各个组件都是软件,底层硬件可以通过RT-Thread的驱动层进行适配。所以,有这些平台后,只要有相应的硬件驱动层,上层的东西都是一样的。 我个人偏向于三种平台: - s3c2440,优点便宜 - PXA9xx,优点开发板已经有了,而且不要钱 - Jz4740,国产平台,应大力支持。
bernard
2009-05-08
这家伙很懒,什么也没写!
这两天写了部分代码,在PXA9xx的芯片上跑起来了。因为PXA9xx是一个异构多核平台,分为Application Core和Communication Core,都是ARM9的核心。这份代码是从Application Core启动,初始化Application Core的串口,然后Reset Communication Core。Communication Core的入口点也在这份代码中,在设置了ARM模式下各个栈后,初始化自己的串口。 开始是打算两个Core都用一个入口点,但担心到两个Core各个ARM模式下栈不能用相同的空间,所以还是把Communication Core的入口点分开了。目前两个Core的启动都没问题,串口输出也没什么问题。在设计中,两个Core会重用大部分代码,例如串口输出,只在最后的硬件输出上才选择向哪个Core的串口进行输出。中断处理部分两个Core用一份代码,因为中断控制器实际上是一个(虽然有中断具体送到哪个Core的选项,但因为代码重用,中断处理反而变得非常简单了)。等中断处理部分也调试好了,就可以把整个RT-Thread移植过去,不过还没想好是否也要让RT-Thread跨越两个核进行运行,变成一个真正意义上的多核。 RT-Thread跨越两个核运行是可能的:虽然两个核并不是绝对的相同(一个是ARM926一个是ARM946),但如果在不启用ARM926 MMU情况下,两个核心几乎可以看成是相同的,这样的运行方式,RT-Thread甚至可以看成是在一个对称处理器(SMP)系统上运行。但缺点也非常明显,这两个Core是异构的(Memory空间地址基本重合,外设也可以按统一的地址相互访问),它们的cache是分离的,也就是说,在一个核中修改一个变量,另外一个核去读取这个变量,因为第一核cache的原因,另外那个核读到的可能是以前的值。 在这种模式下跨核运行,那么两边的cache不得不关闭,速度也就大大受到影响。再另外一种方法是,需要两边共享的全局数据单独放在一个非cache段中,同时在OS的层面制定出一套远程对象机制(这个对于多核结构的操作系统来说是必须的,见后面的解释),对远程对象自动禁用cache,这些远程对象需要包括动态申请用于交互的内存空间(前面的跨核访问的静态变量已经放在非cache段中了,但动态分配的内存没有) 远程对象,或者叫做远程IPC,实际上就是跨越核心的线程间通信 当一个核心上的线程阻塞在一个由另一个核上线程把持的资源时(例如semaphore),这个核将切换到其他就绪的线程上去(至少是IDLE线程)。但是当另外那个核上线程把这个资源释放时,会如何呢?传统的单核系统会自动寻找阻塞在这个资源上的线程,把它唤醒并做线程调度器的重调度。那么多核系统,将面临着需要通过某种特定的方式通知另外的核(打断它当前运行),让它试图做一次线程调度器的重调度。对,核与核之间的中断通知将必不可少! 上一个话题引申开来( [s:157] ,有时候梳理梳理自己的思维非常重要,这点也是在写上面那段话想到的),多核的调度器应该如何?通常,例如用于数据处理的MIPS多核,核心与核心之间也不是平等的,会有所侧重。如果是这样,显然调度器不是一个公平的调度器。这里要说的是和实时系统相关的,多核实时调度器。单核的实时调度器具备非常强烈的占用欲望,只有线程的优先级高,处理机立马就抢占过去,容不得半点马虎。多核实时调度器也可以由它拓展而来:例如上面说的双核,应该运行整个系统中最高优先级的两个线程。具体的可以是,在出现线程抢占点时,询问各个核上当前线程的优先级,如果就绪线程优先级高于此优先级,经过中断的方式通知这个核心,让它进行线程调度器的重调度。无疑这个调度器将是公平的:每个核心都公平对待,而不分实时任务还是分时任务。似乎扯得太远了,算是工作上的一些灵感吧!
my2003sky
2009-05-11
这家伙很懒,什么也没写!
嘿嘿,再加一个LPC2478就好了
bernard
2009-05-11
这家伙很懒,什么也没写!
你的意思是说把lpc2478加到资源丰富的版本中去? 按照以上的划分实际上可以加入更多进来,这只是一种归类罢了,并不代表以后RT-Thread就会支持这么多平台。
bernard
2009-05-19
这家伙很懒,什么也没写!
考虑近期在Makefile中加入armcc版本的支持(开始的时候应该是考虑realview development suite 3.1),IAR的编译器效率虽然不错,但它的扩展似乎并不多,所以暂时不支持。 加入后,应该就可以完全用命令行进行编译了,也可以使用剪裁工具进行组件剪裁。
bernard
2009-06-26
这家伙很懒,什么也没写!
这个版本的计划是, + YAFFS2 读写支持;JFFS2读支持 + 更好的finsh支持,支持删除,历史记录,TAB补全 [目前0.3.x的版本已经实现] + 动态模块加载 + RTGUI FrameBuffer版本强化 平台兼容s3c2410/s3c2440,目前只能投入非常少量的时间(每天半个小时?),所以前期进度可能非常缓慢。
撰写答案
登录
注册新账号
关注者
0
被浏览
19.9k
关于作者
bernard
这家伙很懒,什么也没写!
提问
414
回答
5940
被采纳
76
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
8
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
3
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部