笔记
文章平均质量分 62
憨憨@
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
定时器、看门狗和RTC
什么是定时器(timer)定时器是SoC中常见外设(1)定时器与计数器。计数器是用来计数的(每隔一个固定时间会计一个数);因为计数器的计数时间周期是固定的,因此到了一定时间只要用计数值×计数时间周期,就能得到一个时间段,这个时间段就是我们定的时间(这就是定时器了)。(2)定时器/计数器作为SoC的外设,主要用来实现定时执行代码的功能。定时器相对于SoC来说,就好象闹钟相对于人来说意义一样。定时器有什么用(1)定时器可以让SoC在执行主程序的同时,可以(通过定时器)具有计时功能,到了一定时间(计时结原创 2021-11-24 00:55:09 · 2196 阅读 · 0 评论 -
ARM串口通信
电子通信概念1:同步通信和异步通信 **(1)、同步和异步的区别:首先很多地方都有同步和异步的概念,简单来说就是发送方和接收方按照同一个时钟节拍工作就叫同步,发送方和接收方没有统一的时钟节拍、而各自按照自己的节拍工作就叫异步。 (2)、同步通信中,通信双方按照统一节拍工作,所以配合很好;一般需要发送方给接收方发送信息同时发送时钟信号,接收方根据发送方给它的时钟信号来安排自己的节奏。同步通信用在通信双方信息交换频率固定,或者经常通信时。 (3)、异步通信又叫异步通知。在双方通信的频率不固定时(有时原创 2021-11-24 00:53:57 · 1097 阅读 · 0 评论 -
arm裸机的按键设置和中断
按键的物理特性 **(1)、平时没人按的时候,弹簧把按键按钮弹开。此时内部断开的。 (2)、有人按下的时候,手的力量克服弹簧的弹力,将按钮按下,此时内部保持接通(闭合)状态;如果手拿开,则弹簧作用下按钮又弹开,同时内部又断开。 (3)、一般的按键都有4个引脚,这4个引脚成2对:其中一对是常开触点(像上面描述的不按则断开,按下则闭合);一对是常闭触点(平时不按时是闭合的,按下后是断开的)**按键的电学原理(结合原理图分析) **(1)硬件接法: SW5:GPH0_2 SW6:GPH0_3 SW78原创 2021-11-24 00:53:09 · 693 阅读 · 0 评论 -
arm裸机块设备
RAM 内存ROM 外存NorFlash(可总线式访问)NandFlash(块设备) SLC 可靠性高,缺点是容量做不大MLC 容量可以做很大很便宜SD卡与SRAM/DDR/SROM之类的东西的不同:SRAM/DDR/SROM之类的存储芯片是总线式的,只要连接上初始化好之后就可以由SoC直接以地址方式来访问;但是SD卡不能直接通过接口给地址来访问,它的访问需要按照一定的接口协议(时序)来访问。SD卡支持两种读写协议:SD协议和SPI协议。SPI协议特点(低速、接口操作时序简单、适合原创 2021-11-24 00:52:32 · 915 阅读 · 0 评论 -
S5PV210的时钟系统
1.6.1.SoC时钟系统简介1.6.1.1、什么是时钟?SoC为什么需要时钟?(1)时钟是同步工作系统的同步节拍。(2)SoC内部有很多器件,譬如CPU、串口、DRAM控制器、GPIO等内部外设,这些东西要彼此协同工作,需要一个同步的时钟系统来指挥。这个就是我们SoC的时钟系统。1.6.1.2、时钟一般如何获得(1)SoC的时钟获得一般有:* 外部直接输入时钟信号,SoC有个引脚用来输入外部时钟信号,用的很少。* 外部晶振+内部时钟发生器产生时钟,大部分低频单片机都是这么工作的。* 外部晶原创 2021-11-24 00:51:11 · 220 阅读 · 0 评论 -
链接脚本与重定位
程序段的概念:代码段、数据段、bss段(ZI段)、自定义段段就是程序的一部分,我们把整个程序的所有东西分成了一个一个的段,给每个段起个名字,然后在链接时就可以用这个名字来指示这些段。也就是说给段命名就是为了在链接脚本中用段名来让段站在核实的位置。段名分为2种:一种是编译器链接器内部定好的,先天性的名字;一种是程序员自己指定的、自定义的段名。先天性段名:代码段:(.text),又叫文本段,代码段其实就是函数编译后生成的东西数据段:(.data),数据段就是C语言中有显式初始化为非0的全局变量bss原创 2021-11-23 23:48:12 · 490 阅读 · 0 评论 -
cache 高速缓存内存
cache是一种内存,叫高速缓存。从容量来说:CPU < 寄存器 < cache < DDR从速度来说:CPU > 寄存器 > cache > DDRcache的存在,是因为寄存器和ddr之间速度差异太大,ddr的速度远不能满足寄存器的需要(不能满足cpu的需要,所以没有cache会拉低整个系统的整体速度)整个系统中CPU的供应链由:寄存器+cache+DDR+硬盘/flash四阶组成,这是综合考虑了性能、成本后得到的妥协的结果。210内部有32KB icac原创 2021-11-23 23:47:18 · 1461 阅读 · 0 评论 -
串口驱动的安装
右键“计算机”,点管理。点击设备管理器。点击端口,如果安装了驱动就会有。上图中的COM4端口在终端中是需要的,但是端口是不确定的,当你接到不同地方它的端口号可能是COM1\2\3。要解决这个问题需要选择端口号在强制占用它。右键端口在这里插入图片描述终端的设置...原创 2021-11-23 23:46:24 · 15148 阅读 · 0 评论 -
LED灯涉及的寄存器
查阅原理图,发现开发板上一共有5颗LED。其中一颗D26的接法是:正极接5V,负极接地。因此这颗LED只要上电就会常亮。因此我们分析这颗LED是电源指示灯。剩下4颗LED的接法是:正极接3.3V,负极接了SoC上的一个引脚(GPIO),具体详细接法是:D22:GPJ0_3D23:GPJ0_4D24:GPJ0_5D25:PWMTOUT1(GPD0_1)(172页和143页)GPJ0CON, (GPJ0 control)GPJ0控制寄存器,用来配置各引脚的工作模式 GPJ0DAT, (GPJ0.原创 2021-11-23 23:45:43 · 852 阅读 · 0 评论 -
(有错误)1012 数字分类 (20 分)
输入格式:每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。输出格式:对给定的 N 个正整数,按题目要求计算 A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。若其中某一类数字不存在,则在相应位置输出 N。输入样例 1:13 1 2 3 4 5 6 7 8 9 10 20 16 18结尾无空行输出样例 1:30 11 2 9.7 9结尾无空行输入样原创 2021-11-23 20:00:35 · 232 阅读 · 0 评论 -
1006 换个格式输出整数 (15 分)
让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出 n。输入样例 1:234结尾无空行输出样例 1:BBSSS1234结尾无空行输入样例 2:23原创 2021-11-23 19:57:18 · 457 阅读 · 0 评论 -
1004 成绩排名 (20 分)
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩… … …第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。输出格式:对每个测试用例输出 2 行,第原创 2021-11-23 19:56:14 · 119 阅读 · 0 评论 -
uboot启动内核
文章目录启动内核的第一阶段启动内核的第一阶段原创 2021-11-23 17:54:52 · 338 阅读 · 0 评论 -
uboot的环境变量
文章目录环境变量的作用环境变量的优先级默认的环境变量环境变量在uboot中工作方式SD卡中环境变量分区DDR中环境变量总结环境变量的作用环境变量影响uboot的运行,决定uboot的一些特性;例如uboot开机自启的倒计时就是由bootdelay环境决定的。环境变量的优先级在没有定义环境变量的时候,uboot就会使用代码中给的默认的环境变量值。如果有定义了环境变量就会优先使用定义的环境变量。例如机器码,在(我用的版本)uboot中没有定义板子的环境变量的机器码,所以当你启动内核的时候,就回去校验原创 2021-11-23 17:55:41 · 480 阅读 · 0 评论 -
1001 害死人不偿命的(3n+1)猜想
#include<stdio.h>int main(void){ unsigned int i = 0,j = 0; if(scanf("%d",&i) == 0) printf("重新输入:/n"); while(i > 1) { if(i % 2 == 0) i = i / 2; else i = (3 * i + 1) / 2;原创 2021-11-19 09:34:17 · 597 阅读 · 0 评论
分享