摘要:
如同学基本语言一样,helloworld是很多语言的第一个程序。在嵌入式开发中,点亮LED灯也是各种架构和开发板的第一个程序,其中很多东西是和单片机例如stm32是类似的,只是,现在我们没有了库函数,我们要自己完成一些东西。 先说启动文件,st官方已结给我们做好了,但是jz2440开发板没有统一的启 阅读全文
摘要:
SRAM:SRAM(Static Random Access Memory),即静态随机存取存储器。它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dynamic Random Access Memory)每隔一段时 阅读全文
摘要:
通过函数能显著增强Makefile的功能。对于simple项目的Makefile,尽管使用了模式规则,但还是有一件比较麻烦的事情,就是要在Makefile中指明每一个项目源文件。下面介绍几个后期会使用到的函数,更多请参考《GUN Make》。 1.abspath函数 从命名就应该能够猜出它的作用。a 阅读全文
摘要:
要完整描述一个内存单元,需要两种信息:1.内存单元的地址;2.内存单元的长度(类型)。 用[0]表示一个内存单元时,0代表单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指令中的其他操作对象(比如寄存器)指出。 我们定义描述性符号:“()”,为了描述上的简洁,在以后的课程中,我们将用 阅读全文
该文被密码保护。 阅读全文
摘要:
看韦老师操作各种软件倒是流畅,但是自己要是并不清楚某些软件的功能,就需要补充自己的知识盲点。例如玩单片机,我们都知道串口调试助手,可以在win上和单片机通信,接发数据,要是只知道串口调试助手,不知道它怎么用,那就不可能学得好。下面先补充基本工具的知识点。 SecureCRT SecureCRT是Va 阅读全文
摘要:
本章参考资料《 STM32F4xx 中文参考手册》第十章-中断和事件:表 46.STM32F42xxx 和 STM32F43xxx 的向量表; MDK 中的帮助手册—ARM Development Tools:用来查询 ARM 的汇编指令和编译器相关的指令。 启动文件由汇编编写,是系统上电复位后第一 阅读全文
摘要:
不得不说韦老师的课程还是很需要时间去消化。今天改变了学习策略,遇到不会的知识点,先查资料。 以前在单片机编程中,都只是知道代码存在flash中,而一听韦老师的课程,就是nand flash启动或者nor flash启动,所以找了一些这方面的参考资料弥补自己知识的空白。 快闪存储器(英语:flash 阅读全文
摘要:
GPIO—位带操作本章参考资料:《 STM32F4xx 中文参考手册》存储器和总线构架章节、 GPIO 章节,《 Cortex®-M4 内核编程手册》 2.2.5 Bit-banding。学习本章时,配套这些参考资料学习效果会更佳。 位操作就是可以单独的对一个比特位读和写,这个在 51 单片机中非常 阅读全文
摘要:
在汇编语言源程序中包含两种指令,一种是汇编指令,一种是伪指令。汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。而伪指令没有对应的机器指令,最终不被CPU所执行,伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作。 阅读全文
摘要:
在这里,我们对栈的研究只限于这个角度,栈是一种具有特殊访问方式的存储空间。它的特殊性在于,最后进入这个空间的数据,最先出去,后进先出(LIFO last in first out)。 .CPU提供的栈机制 8086CPU提供入栈和出栈指令,最基本的如同push ax,表示将寄存器ax中的数据入栈,p 阅读全文
摘要:
本来这个是只应该出现在运用cpp编程的工程中的,但是,就算是单片机编程,都已经会看到这个了,所以提出来解释一下。 条件编译,属于c/c++共有的,但是由于在有些场合,在c++代码内嵌c语言能使编程更加便利。 使用c语言编译器gcc编译下面代码: 预编译(gcc -E)之后是这样的: 这样可以确定在C 阅读全文
摘要:
volatile译为:易变的。这不是和题目的让我保持原样矛盾了吗?其实不然,在变量前加上该关键字修饰,确实是告诉编译器,这个变量是一个容易改变的变量,不要对它进行优化,每次都要到变量的地址中去读取变量的数据,但正因为这样,才是保持了变量的原样,因为变量已经发生改变了,你却操作的是没有变化时的数据,这 阅读全文
摘要:
这里要用到一定的模电知识。电容两端电压不能突变,电感两端电流不能突变。这里利用了电容的放电延时实现硬件消抖。按键按下会有抖动,波形有毛刺,使得高低电平显现不明显,而按键按下时,电容放电一下,马上又被充电,此时电容两端的电压不会突然变化,这个延时时间恰好可以达到消抖作用。 这里需要使用一个固件库函数: 阅读全文
摘要:
.内存中字的存储 在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个连续地址的内存单元来存放。8086CPU是小端机,低地址存低位,高地址存高位。 我们提出字单元的概念:字单元,即存放一个16位数据的内存单元,有两个连续的内存单元组成。在以后的课程中,我们将起始地址为N 阅读全文