一步步写嵌入式操作系统.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 2 章 基础知识 第 2 章 基础知识 现在我们就可以 动手打造 这 款 属于我们自己的操作系统了。 当然,在 这 之前 我 们 还 需 要 将 开 发 操 作 系 统 所 需 的 必 备 基 础知识 说 清 楚 。众 所 周 知 ,操作系统是一门偏 难 的综 合 性学 科 。尤其在亲 自实践 的过程中,对于 编程语 言 、程序算法、硬 件原理等 相关 知识 ,都需要开发者有相当 深入的 了解。 因此,无论读者从事的是基 于 PC 的程序开发还是基 于应用层 的嵌入式 开发,我们的传统知识结构可能都不足 以实现一个完整 的操作系统,这可能 将会成为我们开发属于自己的操作系统的一个 障碍 。为了能够扫除这些 障 碍 ,我们有必要对一些知识 和技巧进行一定程度 的补充 。 本章正是以此为 目的,虽不能对开发操作系统所必备 的所有知识进行深 入并且全 面的讲解,但 至少会保证将一些 重点或易被忽略 的地方拿 出来聊一 聊 。这些内容涵盖 了链 接和库 、基 于 ARM 的汇编程序设计、汇编与 C 语 言 间的混合 编程、过程调用标准 等。 这些话题都跟程序的编写直接相关 ,在后续章节的学习过程中都会反 复 讲 到。我们会介绍几个实 际 的编程例子 ,确保读者在读 完本章 后 ,至少能 够编写并运行一些最基本的程序,为操作系统的开发 打下基础 。 如果读者对这些知识 已有所了解,可以跳过本章,直接学习后边 的内容。 2.1 使用 C 语言写第一段程序 我们不如从每个程序员都 曾写过的“hello world ”切入,来 尝试编写能 18 第 2 章 基础知识 在虚拟环境中运行的第一段代码,看看操作系统的开发过程究竟是怎样的。 首先请 打开 本编辑器,输入以下内容。 代码 2-1 #define UFCON0 ((volatile unsigned int *)(0) void helloworld(void){ const char *p= "helloworld\n "; while(*p){ *UFCON0=*p++; }; while(1); } 程序 简单到无须介绍,这里 只需要说明一 点 ,物理地址 0代 表 的是 s3c2410 的 串 口 FIFO 寄存 器地址 ,简单地说,就是写 向该地址 的数 据 都 将 会 通 过 串 口 发 送 给 另 一 端 。 这 段 程 序 只 是 串 行 的 将 字 符 串 “helloworld ”依 次送给 串 口 FIFO 寄存 器。我们将以上内容保存成 件,命 名 为“helloworld.c ”。 接下来让 我们尝试编译这段程序,在终端里运行如下命令 。 命令 2-1 arm-elf-gcc -O2 - c helloworld.c 编译过程中,我们使用了一个优化参数 -O ,这样最终生成的代码将由编 译器 视情况优化 ,而数字 2 则代 表 了一个优化级别,数 字越高 ,优化程度越 深,但同时带来的不 确定性也越 多。 目前我们 只能将这段代码首先编译生成 目标 件,而不能直接生成可执 行 件,原因很简单,因为我们的程序 当 中没有 main 函数。也就是说,编 译器找不到程序的运行入 口,在链 接过程中便会 报错 。那么是不是说凡是 C 代码,想要生成可执行程序并且成 功运行,就必须要有 main 函数 呢? 不是。这个答 案和我们理解的传统 C 语 言程序有些出入,初 学者也许 不能接受 。但事实是

文档评论(0)

mwap + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档