搜索
bottom↓
回复: 9

djyos for stm32移植日志之一

[复制链接]

出0入0汤圆

发表于 2009-8-3 20:55:00 | 显示全部楼层 |阅读模式
看本文件请参考《都江堰操作系统与嵌入式系统设计》第15章,该书在www.djyos.com可以下载。
在今天的微控制器市场上,cortex-m3是个不折不扣的当红小生,出道不久就大红大紫,大有席卷天下之势,攻击范围涵盖高端8位机至32位arm7的微控制器市场。潮流不可阻挡,djyos此时推出cm3内核的stm32版本,实乃顺天应人。
同时,移植进度将配合bboom同学发起的DIY活动(http://group.ednchina.com/2055),移植日志将在该论坛同步发布。
闲话少说,先回答一个大家普遍关心的问题:
“移植一个操作系统的首要工作是什么?”
“废话,这算哪门子问题哦,不就是用新cpu的指令重写汇编部分代码,重写硬件相关的部分代码嘛!”
如果这样想的话,你就大错特错了!操作系统就是计算机中的Z.F.机关,开机后首先得到cpu眷顾的就是你,你享有控制一切社会资源的权利,移植操作系统,就相当于以某一个地区Z.F.为蓝本,在一个新国内上建立起政_治制度相同的Z.F.机关。然而各地有自己的乡土人情、风俗习惯、文化程度、经济水平等,Z.F.机构的设置虽大同,但必存小异。依葫芦画瓢地创建一套行政机关,必然水土不服。
所以,移植操作系统的首要工作是:决定目标系统资源的使用方式和权限管理策略,也就是常说的先定个调。一般来说,移植操作系统,在动手写代码之前,至少应该确定以下几个策略:
1、有许多cpu有多种运行模式,操作系统要安排好内核和应用程序代码分别在什么模式下运行,应用程序代码有什么权限,使其各守本分,各司其职。
2、分配内存空间,代码存放地址,运行时地址,数据存放地址,运行时地址,堆内存地址,线程的栈地址,异常处理程序的栈空间,中断的栈空间等。
3、系列化安排,嵌入式cpu都是系列化的cpu,同一个内核,系列化型号,不同型号之间大同小异,内核在适应不同型号cpu时,不应该修改代码,而是应该只修改配置文件。
4、决定中断管理硬件如何与操作系统的中断模块匹配。
前三点是传统操作系统需要考虑的,而第四条是djyos独有的。这来源于djyos特有的中断管理模块,传统操作系统对中断的管理很少,基本上不外乎提供以下几个功能:
1、提供一个中断处理函数的封皮和封底,一般用汇编语言实现,使应用程序可以用普通C语言函数的方式写ISR。
2、提供关中断和开中断的函数。
3、提供中断连接函数,使中断发生时相应的应用程序ISR能被调用。
4、设置中断ISR的栈指针。
5、linux提供了上下半部的管理功能,算是有一点管理,只是这种管理有些不伦不类——本来就不是实时系统,弄这么复杂干吗?
而djyos则对中断实施了系统级的管理,详见《都江堰操作系统与嵌入式系统设计》一书的第六章,djyos把中断划分为实时中断和异步信号,并且提供中断同步功能,使得大部分中断代码变得更加容易,少量实时性要求高的代码又有更高的实时性,而且更加方便了项目经理管理项目团队。然而,有得必有失,这些红利不是白白得来的,你需要在移植操作系统时,付出代价。然而,移植操作系统是一次性的,应用程序项目则有成千上万,故这种付出是值得的。
讲了这么多大道理,都是纸上谈兵,来点实际的吧,我们也给si版本的djyos for stm32定个调:
1、操作系统内核和应用程序都在特权模式下运行。
2、异步事件的优先级全部设为最低优先级,且不可改变。
3、所有异常ISR函数使用使用同一个栈,栈指针是msp,其他代码使用线程栈,栈指针psp。
4、大部分代码在flash中执行,设一个配置选项,由用户选择ISR(含异常和中断)的运行位置(ram还是flash),使用户可以根据flash和ram的速度优化关键代码。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2009-8-3 21:16:13 | 显示全部楼层
支持一下

出0入0汤圆

发表于 2009-8-3 22:25:22 | 显示全部楼层
期待楼主的大作

出0入0汤圆

发表于 2009-8-3 22:32:34 | 显示全部楼层
哈哈..STM32终于开始了

出0入0汤圆

发表于 2009-8-3 22:33:30 | 显示全部楼层
支持

出0入0汤圆

发表于 2010-2-22 17:09:27 | 显示全部楼层
我是来学习的

出0入0汤圆

发表于 2011-12-29 10:56:20 | 显示全部楼层
学习了。。。

出0入0汤圆

发表于 2012-4-2 23:04:40 | 显示全部楼层
学习!!

出0入0汤圆

发表于 2012-4-7 19:15:10 | 显示全部楼层
怎么不见后来者了?

出0入0汤圆

发表于 2012-4-24 17:17:43 | 显示全部楼层
强烈建议都江堰os设计一个logo。没有一个靓丽的logo怎么开始这场战役呢?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 01:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表