打印
[应用相关]

如何把库函数移植到寄存器版本的程序中(转)

[复制链接]
1502|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
木木guainv|  楼主 | 2018-7-17 13:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,两个都是C语言。
    从51过渡过来的话,就先说寄存器操作。每个MCU都有自己的寄存器,51是功能比较简单的一种,相应的寄存器也比较少,我们常用的就那么几个,像P0 P1 SMOD TMOD之类的,这些存在于标准头文件reg.h里面,因为少,所以大家就直接这么去操作了,每一位对应的意义随便翻一下手册就看得到,甚至做几个小项目就记的很清楚了。所以做51开发的时候大多数都是直接操作寄存器。
    到了STM32,原理一样,也是有自己的寄存器,但是作为一款ARM内核的芯片,功能多了非常多,寄存器自然也就多了很多,STM32的手册有一千多页,这时候想去像51那样记住每个寄存器已经不现实了,所以ST的工程师就给大家提供了库函数这么一个东西。
    这是个神器。
    库函数里面把STM32的所有寄存器用结构体一一对应并且封装起来,而且提供了基本的配置函数。我们要去操作配置某个外设的时候不需要再去翻眼花缭乱的数据手册,直接找到库函数描述拿来就可以用,这样就能把精力放在逻辑代码的开发上,而不是去费力的研究一个芯片的外设要怎么配置寄存器才能驱动起来。
    简单讲就是这些了,库函数是为了让开发者从大量繁琐的寄存器操作中脱离出来的一个文件包,在使用一个外设的时候让开发者直接去调用相应的驱动函数而不是自己去翻手册一个一个配置寄存器。
    有人说用库函数掌握不到芯片的精髓,见仁见智了。熟悉一款芯片是在不断的开发使用中逐渐了解并掌握的,调试的过程中会遇到很多问题,会要求我们去跟踪相关寄存器的状态,在整个框架都已经建立起来的基础上再去对照手册做具体到寄存器每一位的分析,代码对照现象,很快就能积累起来经验,祝成功。
评论
mousebat04 2018-7-20 14:48 回复TA
理论上是你说的这样,而真正的结果是:st官方的库写得太烂,最后还要读库源码 + 看手册寄存器才知道它到底干了什么,然后才知道怎么使用。另外要说,官方库效率也很烂。 
沙发
keaibukelian| | 2018-7-17 14:06 | 只看该作者
我一直也闹明白 移植的具体概念是啥

使用特权

评论回复
板凳
木木guainv|  楼主 | 2018-7-17 16:23 | 只看该作者
在信息技术中,移植(migration)是从使用一个操作环境转移到使用另一个操作系统的过程,在大多数情况下,都是转移到一个更好的操作系统。比如,从Windows NT操作系统转移到Windows 2000操作系统通常被看作是一种移植,因为它包括了确保新的特性被使用,旧的设置不需要改变,同时采取步骤保证当前的应用软件在新的操作环境里继续运行。移植也可意味着从Windows NT转移到使用基于UNIX的操作系统(或者相反)。移植可以包括转而使用新的硬件、新的软件,或者两者都包括。移植可以是小规模的,比如移动一个单一的系统,也可能是大规模的,包括很多系统,新的应用软件,或者从新设计的网络。

你可以将数据从一种类型的数据库移植到另一种类型的数据库。这通常要求将数据转换成某种通用的版式,它可以从原来的数据库中输出,输入到新的数据库中。由于新的数据库可能是以不同的结构组织的,所以可能有必要编写一个能对移植文件进行处理的程序。

移植(migration)也可用来指简单的将数据从一种存储设备转移到另一种存储设备的过程。

使用特权

评论回复
地板
renzheshengui| | 2018-7-20 08:26 | 只看该作者
非常感谢楼主分享啊

使用特权

评论回复
5
xiaoqizi| | 2018-7-20 08:59 | 只看该作者
我仔细看看 感觉楼主只是介绍了一个方法 并不是有什么工具 是吗

使用特权

评论回复
6
木木guainv|  楼主 | 2018-7-20 09:04 | 只看该作者
xiaoqizi 发表于 2018-7-20 08:59
我仔细看看 感觉楼主只是介绍了一个方法 并不是有什么工具 是吗

是的 只是一种方法 目前还没有什么工具支持这样做

使用特权

评论回复
7
木木guainv|  楼主 | 2018-7-21 09:28 | 只看该作者
@mousebat04  你说的没错 不过看多了 也就熟悉 了  呵呵呵

使用特权

评论回复
8
观海| | 2018-7-23 09:14 | 只看该作者
我总感觉 想要移植  就需要对两边都熟悉 可是既然已经都熟悉了 还移植有什么意思呢

使用特权

评论回复
9
木木guainv|  楼主 | 2018-7-23 13:42 | 只看该作者
主要有的平台需要的东西不一样

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

134

主题

3870

帖子

5

粉丝