摘要:
复习C++时碰到了使用内联函数inline的情况。 其实情况也很简单,我在.h的类定义中声明了成员函数,在.cpp的实现中加入了inline关键词。编译器不断报错,“无法解析的外部符号”。情况即为下方: 在.h文件中: 在.cpp中: 如上做法发生了“无法解析的外部符号”错误,搜索了下,给出几种做法 阅读全文
摘要:
前面我们介绍了Flash主要的几个寄存器,如果还有其他的疑问可以再返回去看看或者直接查阅S12系列单片机的手册中相关的内容。这一节我将介绍Flash控制器指令执行的过程,并举出相关的例子,希望能够起到举一反三的效果。 在手册中FCCOB寄存器下面,介绍了Flash寄存器执行指令的过程是这样的: 我们 阅读全文
摘要:
在上一节中我介绍了Flash控制器时钟频率的设置,对于一般不需要解保护的Flash操作而言,设置了时钟频率就可以开始对Flash控制器的控制寄存器写入指令从而对之前我们觉得神秘莫测的Flash进行操作了。关于Flash的指令操作,我们首先先介绍其相关的几个寄存器,以及它们的指令形式,还有如何应用这些 阅读全文
摘要:
Flash擦写的内容,个人做HC9S12系列单片机时觉得应该是各模块内容中最难而且是最麻烦的一步了。只有能够对Flash进行擦写以后,所做的Bootloader才有真正手段将串口或者其他通讯手段接收到的数据或者程序写入Flash中进行程序或者数据的更新。当初做Flash的擦写也遇到了很多问题,网上搜 阅读全文
摘要:
近日在使用了飞思卡尔S12Z设置SCI后总是不出数据,明明按照前代单片机S12Z的方法设置好了,为什么又不能用了呢? 下面是我简单对SCI1的设置,仅仅这样设置是出不来数据的: 在上面的设置中我仅仅设置了SCI1的设置,假设了S12Z与S12一样,不存在同一口多个功能复用的情况。可实际上却是,在S1 阅读全文
摘要:
在完成内存映射的内容后,接下来我们将进入一个简单Bootloader的实际设计中来。在第一节内容中,我们已经简单介绍了bootlaoder的作用,它实际上就是在单片机重启过程中的一个步骤:如果有bootloader的启动信号,则进入bootloader模式开始新程序的接收与flash的擦写,若没有b 阅读全文
摘要:
在上一篇文章中我们做了对HC9S12系列单片机存储空间的划分,但是相比于整个bootloader的工作而言,这只是非常基础的一步,有很多基础的概念在上一篇的操作中我们并没有涉及到。比如较复杂单片机中单片机的存储空间到底是什么样的,具体怎么用C语言对它进行寻址。因为我们单片机的存储空间一般由如下的构成 阅读全文
摘要:
最近在做freescale HCS12系列单片机的bootloader,毕竟是新手,对这方面的入门知识还是欠缺。尽管NXP官网已经有了相当丰富的文档与例程,可是无奈例程太过复杂,不知道如何下手第一行代码。这里先感谢经验丰富的某位高人醍醐灌顶的指导,为了让再入门的新学者能够有个参考,所以就将本次开发b 阅读全文
摘要:
MVC(Model-View-Controller)称模型-视图-控制器设计模式,是一种常见的桌面软件设计模式。它的主要介绍在这篇文档中已经非常详尽(https://www.codeproject.com/Articles/613682/Your-first-program-using-MVC-pa 阅读全文
摘要:
近日用C#在项目中需要多线程编程时为了挂起与恢复线程使用了Thread类的Suspend()与Resume()方法,可是VS提示这两个方法已经过时了(过时原因微软的官方文档中有介绍:https://msdn.microsoft.com/en-us/library/system.threading.t 阅读全文