免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2982 | 回复: 7
打印 上一主题 下一主题

有点糊涂。自己写操作系统,从bootloader开始到哪里就可以用C了,为什么? [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2015-08-03 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-11 16:14 |只看该作者 |正序浏览
RT....

论坛徽章:
0
8 [报告]
发表于 2008-11-13 17:23 |只看该作者
嗯 学习了 呵呵

论坛徽章:
0
7 [报告]
发表于 2008-11-12 17:02 |只看该作者
大概的过程要先初始化堆栈,MMU与cache初始化,外围设备初始化,然后BL __MAIN就可以了.

论坛徽章:
0
6 [报告]
发表于 2008-11-12 13:43 |只看该作者

回复 #4 r3m 的帖子

实际上调用 C 代码只需要有堆栈即可,不过有些限制罢了。

论坛徽章:
0
5 [报告]
发表于 2008-11-12 09:35 |只看该作者

Re:

说的没错,只有实在没办法用c的地方必须用汇编之外,其他都可以用c. 例如堆栈指针都没有建立时,此时就直接用c的函数显然是不行的.(因为c函数一般刚开始就是压栈指令) 一般是在建立好基本的堆栈或Register Window/使能MMU/使能RAM/使能Cache等必须的动作之后就可以用c了.

论坛徽章:
0
4 [报告]
发表于 2008-11-11 22:46 |只看该作者
完成基本的初始化,准备堆栈,BSS段清0,然后再跳入C代码。

论坛徽章:
0
3 [报告]
发表于 2008-11-11 17:45 |只看该作者
原帖由 cjaizss 于 2008-11-11 17:18 发表
一直都可以用C.汇编可以用在你实在无法用C来描述的地方.除非库支持和嵌入汇编,否则C只能通过能控制地址、数据、控制总线来控制系统。


一般是在开发板上电初始化寄存器那块用asm

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2008-11-11 17:18 |只看该作者
一直都可以用C.汇编可以用在你实在无法用C来描述的地方.除非库支持和嵌入汇编,否则C只能通过能控制地址、数据、控制总线来控制系统。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP