μC/OS-II操作系统在STM32上的移植
详细介绍μC/OS-II操作系统在STM32上的移植过程,引导初学者完成基本的操作系统架构的创建。建立工程使用(我使用版)在目录下建立工程,工程名为。选一个系列的芯片,哪一个都无所谓(我选的是因为我的板子就是用这个芯片),接下来要注意的是当弹出是否拷贝启动代码到工程文件夹时要选,因为标准外设厍里已经有启动代码了。将里的顶层日录名改为,并将第一个名改为把日录下所有和文件加载到工程里的在下建立一个目录用来放置系统初始化代码。把拷贝到文件夹拷贝到文件夹中。是中断服务程序文件。是标准外设库的配置文件,对于工程中不需要的外设,可以注释掉里面的包含的头文件。这里我建议先仅留下,用到什么再打开什么,这样编译起来快一点,当然也可都留着。使用标准外设库事实上标准外设库的使用在中的节中已有说明,下面我把其中的步骤罗列一下根据所选芯片,把中的启动代码加到工程中,这一步在上面凵经做过了。在的行,根据所选芯片类型,去掉相应注释,这里我去掉行的注释(大谷量型片)去掉行的注释,启用标准外设库。在的行,根据所选芯片主频,去掉相应注释,默认注释已去掉,如果你的芯片主频是,就不用做修改了,这里我的芯片是注释去掉注释跑马灯程序现在可以使用标准外设库了,下面以一个简单的跑马灯程序说明。在日录下建立作为系统入口在下建立一个日录用来放置板级支持代码,建立代码如下:在中建立组,并将各种代码加入。在工程的选项卡的中添加选项卡中选选项卡中选选项卡选打钩,这一步大家可以根据自己手上的仿真器做不同选择。编译运行。在上的移植详解虽然目前网上凵经有不少关于在上的移植版本,包括也有官方移植版本。但这些版本具体是怎么移植出来的,又该怎么基于移植好的开发应用软件,网上介绍的并不多。这里介绍一下我的移植经历,希望对大家有所帮助。我的移植基本上是从零开始的。首先想要做好移植,有两方面的內容是必须要了解。日标芯片内核原理虽然我们移植的目标芯片是,但操作系统的移植基木是针对内核(以下简称)而言的,所以我们只需了解内核就好了。片就是内核加上各种各样的外设。怎么才能了解呢?看一本书权威指南(宋岩译,网上多的很)就好了,很多同学可能想,看完这本书移植的新鲜劲都没了,因此我把该书和移植有关的章节都刎了出来,并对其中的重点内容进行介绍,我数了数相关章节还不到页,就这点内容,总要看了吧。相关章节如下概览主要了解的概貌。刚开始看时不用追求仝部理解,后面会有详细介绍,很多内容多看几遍就明白。其中指令集,只要了解,只使用就了基础寄存器组通用寄存器堆栈寄存器有两个,和同时只能看见一个引用时,引用的是正在使用的那个可用于异常服务和应用程序只能用于应用程序系统复位后,用的堆栈指针是连接寄存器,又名,存储返冋地址程序计数寄存器,又名特殊功能寄存器程序状态字寄存器组(中断屏蔽寄存器组(控制寄存器(程序状态字寄存器组()分为应用程序中断号执行每个都是位,由于这个寄存器有效位是错开的,因此可以组合访问。中断屏蔽寄存器组(),这三个寄存器用于控制异常的使能和除能。控制寄存器()它有两个作用:定义特权级别选择当前使用哪个堆栈指针操作模式和特权极别操作模式处理者模式和线程模式异常处理:处理者模式主程序:线程模式不区分特权级和用户级,程序始终工作在特权级这两个堆栈指针的切换是全自动的,就在出入异常服务例程时由硬件处理。没什么好讲的,需要看。复位序列初值初值复位向量异常异常类型分为系统异常编号和外部中断大于优先级支持个固定的高优先级和多达级的可编程优先级。在中,每个中断都有一个优先级配置寄存器(个,用来配置该中断的优先级。但该寄冇器并不是每个位都被使用,不同制造商生产的芯片不相同,譬如使用位,也就是说支持个可编程优先级(参考注意该寄存器是以对齐的,因此每个中断的优先级配置寄存器位有效,位无效。对于优先级,又分为抢占优先级和亚优先级,中的应用程序中断及复位掉制寄存器的优先级分组描述了如何划分抢占优先级和亚优先级什么意思?以为例,优先级配置寄存器不是位有效吗,如果中的优先级分组值为,则优先级配置寄冇器的位确定抢占优先级,位确定亚优先级。此时所有中断有个抢占优先级,每个抢占优先级有个亚优先级。抢占优先级高的中断可以抢占抢占优先级低的中断,即抢占优先级决定了中断是否可以嵌套相同抢占优先级的中断不能嵌套,但当抢占优宄级相同的异常有不止一个到来时,就优先响应亚优先级最高的异常。参考附求表表中断优先级寄存器阵列共系统异常优先级寄冇器共个优先级相同,看中断号,中断号小的优先。向量表初始在处,可以通过向量表偏移量寄存器(地址:)更改,般无需更收。中断输入及挂起行为需要看。异常可不看和主要用在分特权级和用户级的操作系统,不区分特权级和用户级可以不管这个东西。这里说点题外话,一开始我很奇怪为什么会提供这种中断,因为这种中断一般都是用在大型的操作系统上,如系统上,可又不提供,应该是无法移植系统。后来我才知道是针对没有的嵌入式系统而设计的不过还是很怀疑有人会在像这种芯片上用中断主要做上下文切换,也就是任务切换,是移植过程中最重要的中断。主要有两点中断是手工往的悬起寄存器中写产生的(由写)中断优先级必须设为最低在讲移植代码时会介绍具体是如何做的。对于的部分应认真研读一下。与中断控制负责芯片的中断管理,它和内核紧密相关。如果对于中断配置不是很了解,可以看看节讲述了定时器,需要看。中断的具体行为中断/异常的响应序列当开始响应一个中断时以及入栈取向量选择堆栈指针,更新堆栈指针,更新连接寄存器,更新程序计数器对移植米说,需要注意异常返同在中,进入中断时,寄存器的值会被自动更新。节对史新后的值进行说明。这里统称。返回时通过把往里写来识别返回动作的。因为是一个特殊值,所以对于,汇编语言就不需要类似这种指令,而用语言开发时,不需要特殊编译器命令指示个函数为中断服务程序。实际上,中断服务程序如果是代码编写,汇编成汇编代码,函数结尾一般是嵌套的中断只要注意:中断嵌套不能过深即可。和这两节说明对中断的响应能力大大提高了,主要是硬件机制的改进。但对移植来说,并不需要关注异常返回值对不同状态进入中断时,寄存器的值进行说明,需要看。这里有一点需要注意,该点在讲移植代码时再介绍利对移植来说,并不需要关注。的低层编程这·章仅需关注节,因为对移植来说汇编与的接口是必须面对的。汇编与的接口有两点需要知道当主调函数需要传递参数(实参)时,它们使用。其中传递第一个,传递第个在返冋时,把返冋值写到中在函数中,用汇编写代码时,可以随便使用,而使用则必须先以上内容和移植多少都有些关系,刚开始看,可能不太明白,多看几遍就好了。
- 2020-12-07下载
- 积分:1
产品经理必懂的技术那点事儿.pdf
《产品经理必懂的技术那点事儿》全新pdf版本,辅助产品经理更好胜任工作,你值得拥有!产品经理必懂的技术那点事儿唐韧著電子工業出版Publishing House of Electronics Industry北京 BEIJING内容简介本书以非技术背景产品经理了解技术为主题,将技术知识以简单并且易于理解的方式讲述出来,帮助非技术背景产品经理了解技术、学习技术,旨在帮助产品经理高效地与技术人员进行沟通与合作。本书主要内容围绕产品经理需要了解的互联网基础技术知识展开,涉及客户端服务器端、数据库及一些数据处理知识。同时,还就产品经理需具备的一些软实力,例如沟通能力和解决问题的能力进行了详细介绍。本书适合非技术背景的产品经理、运营、市场等互联网岗位的读者阅读,也适合想了解产品经理工作及准备从其他职能转型为产品经理的人阅读。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CP)数据产品经理必懂的技术那点事儿/唐韧著.一北京:电子工业出版社,2017.1ISBN978-7-121-30268-8.①产…Ⅱ.①唐…Ⅲ.①企业管理一产品管理ⅣV.①F273.2中国版本图书馆CIP数据核字(2016)第265110号策划编辑:郑柳洁责任编辑:郑柳洁印刷:北京季蜂印刷有限公司装订:北京季蜂印刷有限公司出版发行:电子工业出版社北京市海淀区万寿路173信箱邮编:100036开本:720×10001/16印张:1.25字数:200千字版次:2017年1月第1版印次:2017年1月第1次印刷定价:59.00元凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,8825888质量投诉请发邮件至zIts@phei.com.cn,盗版侵权举报请发邮件至dbqq@phei.com.cn本书咨询联系方式:010-51260888819faq@phei.com.cn推荐序2010年,我创办了人人都是产品经理(www.woshipm.com)社区,至今已经6年这6年来,我接触最多的就是产品经理。我很少在外抛头露面,通常只会在人人都是产品经理社区创建的上百个产品经理交流群里活跃,因此经常会被大家抓着问问题,其中被问最多的一个问题就是“产品经理需要懂技术吗?懂到什么程度其实这是一个比较有争议的问题,没有正确答案,你说需要懂,也对;说不需要懂,也没错。以我个人的从业经历而言,我倾向的答案是产品经理需要“懂”技术在大学里,没有产品经理这个专业,所以绝大部分产品经理都是半路出家;早期的互联网公司基本都是以技术为中心驱动产品,因此在很多公司,产品经理这个角色都是技术或者项目经理兼任,他们都有一定技术背景。随着互联网的迅猛发展,以技术为中心逐步走向以产品和用户为中心,尤其是在乔布斯发布 Phone3Gs以后,各大互联网公司CEO都说自己是产品经理,于是产品经理就火起来了,从此一发不可收拾。接下来出现的情况就是一大波从事技术、运营、设计、编辑、市场的人转型做了产品经理,非技术职位转型做产品经理占了绝大部分。因为没有技术门槛,越来越多的大学生也都选择了产品经理职位,从产品经理的演变来看,毫不夸张地说,绝大部产品经理必懂的技术那点事儿分产品经理是不“懂”技术的。注意,我特意把懂这个字加了引号。因为“懂”技术不等于要会写代码。这里有一个误区,很多产品经理听别人说产品经理需要懂技术,不懂技术就会……,而感到非常焦虑,非常着急,就去买了一大堆技术相关书籍( JavaScript、PHP、Java、 MySQL等各种从入门到精通的宝典),然而能坚持看完、看明白的人微乎其微,因为技术类书籍是有门槛的,还非常枯燥,不像产品和运营类书籍,贴近生活,通俗易懂,谁都可以看明白。因为我是站长出身,做了十来年站长,对各种开源系统非常熟悉,也做过几十个网站,大家都知道做站长的人通常都是一个人能搞定所有的事情(产品、设计、运营推广、技术、运维、内容等),于是很多人跟我说:“老曹,要不你写本产品经理能读懂的技术书籍吧,因为你懂技术通产品,这书你写再合适不过了。”每次遇到这样的提议,我都非常尴尬,这对我来说挑战太大,但我一直有一个梦想,组织几个懂产品的技术兄弟一起写一本产品经理的技术科普书。直到今天,我的梦想将被实现。帮我实现梦想的人不是我自己,而是本书作者唐韧同学。唐韧是人人都是产品经理社区的专栏作家,在平台发布了很多作品,其中篇《我是如何从程序员一步一步走向产品经理》的文章备受认可,他本人也是技术转型产品经理的优秀代表。希望本书能为从事产品经理的同学对技术的认知有更好的帮助,产品经理学习技术不是为了在技术人员面前证明你很牛,而是为了更好地与技术人员沟通需求、更好地合作,一起做好产品。人人都是产品经理创始人、起点学院院长@老曹前言我为什么写这本书我是从技术开发转型为产品经理的,在转型的过程中对于技术背景的思维方式和产品背景的思维方式有了一些个人的认识。在做技术开发的几年里,我从纯技术的角度去理解问题;转型做产品经理后,我带着技术背景去处理与产品相关的业务、运营和市场问题,用一种全新的角度去看待产品。在做产品的过程中更多地是与工程师打交道,面对一群专业性很强且逻辑思维很强的群体,产品经理的内功就显得尤为重要。在实际工作中,我也与非技术背景的产品经理合作,发现对非技术背景的产品经理来说,技术知识的缺乏是硬伤,由此会带来对产品实现的理解与工程师的理解偏差过大的问题。同时,也会造成一些沟通不畅的问题。如果你是一位非技术背景的产品经理,在工程中可能会遇到对产品技术实现方案不理解的情况。工程师跟你沟通时所用的技术语言你完全听不懂,自己精心设计的产品方案拿到评审会评审时,被工程师批判得体无完肤。这些问题的出现其实都归结于非技术背景的产品经理在技术知识上的信息不对称,持续处于这种状态会严重阻碍工产品经理必懂的技术那点事儿作能力的提高。对业务、运营、市场背景的产品经理来说,增加对基本技术知识的了解能在实际工作中起到很大的帮助作用。这些使我产生了写作本书的想法,本书力求通过通俗易懂的方式讲解基本技术原理,减小非技术背景产品经理与工程师之间的知识差距,使合作和沟通更顺利,同时也提高产品经理的产品内功。对非技术背景产品经理来说,在与工程师的合作过程中,掌握一些基础技术知识显得尤为重要,对于技术的理解可以不用深入到实现层面,但要对基本原理及产品背后的整体技术架构心中有数。产品经理属于信息上游,在拿自己的产品想法与工程师沟通和推动产品实施的过程中,对技术要有一定的了解,这就好比手上多了一把好武器,能让问题顺利解决让产品不断向前发展。本书的目的在于通过浅显易懂的方式,面向非技术型产品经理讲解基础技术知识,打开技术领域这一神秘的大门,使非技术背景产品经理在产品工作中更加游刃有余。产品经理的工作内容涉及面广,而且对个人综合能力的要求高,要做好产品经理就需要涉猎广泛,具备更多的横向知识体系,同时在产品这一纵向知识体系内做深做精。本书可作为产品经理平时学习技术的基础资料,也可作为工具手册,希望本书能助力非技术背景产品经理开展工作。书中内容不涉及很深很具体的技术内容,主要以基本技术概念和实现原理介绍为主,配合一些具体例子加深读者的理解,力求帮助非技术背景的产品经理对具体的技术知识有一个整体的认识,在设计产品或者与工程师沟通合作的过程中能更加顺畅。技术能力是产品经理的核心技能之一,但不是全部,产品经理的职责是通过产品创造用户价值和商业价值,了解用户、发掘需求并持续对产品进行优化才是产品经理的使命如何阅读本书读者在阅读本书时,可以通过理解技术的一些基本原理反观产品设计的细节。非技术背景的产品经理在阅读本书时可以结合自己在实际工作中遇到的技术问题或者是与工程师沟通产品方案时所遇到的技术挑战重现当时遇到问题的场景。读完本书前言后,重新审视当时遇到的问题在现在是否能很好地处理,以场景化的方式结合自身工作中的问题,然后从本书中寻找答案,总结并且复盘,这样能对自己在技术知识方面的欠缺有一个比较好的补充和提升作用。本书第1章介绍了产品思维与技术思维的具体表现和差别,有利于产品经理站在不同的角度审视产品。第2章是对互联网历史和基础技术知识的介绍,为非技术背景的产品经理科普互联网的简要发展历史及互联网技术和产品的几个阶段性特点第3章从理解原理的角度向非技术背景产品经理介绍编程语言的内容。本章的目的并不是让产品经理学会编程,而是希望产品经理通过了解编程语言的基本原理,了解技术产品的实现逻辑及工程师思考问题的基本逻辑。第4章介绍数据库的基本内容,数据库作为数据的存储和处理中心,在产品的大版图里不可或缺,产品经理了解数据库的一些基本知识能增加对产品的全盘了解(从界面到数据)。第5章以介绍主流移动平台的一些基本技术内容为主,目的在于让非技术背景的产品经理了解视觉界面下的实现细节,降低与工程师的沟通成本。第6章介绍了服务端的基本内容,服务端作为大后方,在产品技术体系内扮演着极其重要的角色,产品经理了解服务端的典型技术知识有助于从系统架构的层面理解产品设计,知道什么样的产品设计能降低技术实现难度和成本。第7章是从数据的角度观察产品,产品经理对数据的敏感度决定了产品的优化方向。从本章中产品经理可以了解到不同维度的数据标准和基于数据驱动的产品设计方法第8章是对产品需求文档的一个格式和内容介绍,力求为产品经理提供一个可参考的产品需求文档样式。第9章将内容重点放在沟通上,产品经理需要与各方沟通,其中的沟通技巧和沟通侧重点会在本章详细介绍。第10章介绍了产品经理的不同类型和成长进阶的一些经验。产品经理必懂的技术那点事儿第11章重点对解决问题这一话题进行了分析,以聚焦答案的解决问题方式探究问题的解决方案,本章能提供给产品经理一种新的解决冋题的方法,值得一读。在写作本书的过程中,我发现自己需要学习的东西还很多,非常感谢读者选择本书。作为产品经理,做任何事情都是一个持续优化和完善的过程,对于本书中存在的不足希望得到读者的指点和帮助,也希望同为产品经理或者即将成为产品经理的你,一起在奋斗的路上寻找更高的那一个里程碑!读者可以添加我的微信公众号 nantang007与我交流沟通,也欢迎读者多提宝贵意见。唐韧2016年10月3日于北京▲Vl
- 2021-05-06下载
- 积分:1