- 博客(580)
- 收藏
- 关注
原创 JZ2440开发板——异常与中断
讲解了S3C2440的异常处理流程,并以实例讲述了未定义指令异常、软件中断异常、IRQ异常(比如按键中断、timer中断)的处理流程。
2024-10-09 17:29:11
922
原创 解决编译问题:undefined reference to `__aeabi_uidivmod‘
解决编译问题:undefined reference to `__aeabi_uidivmod'
2024-09-28 16:28:58
1187
原创 JZ2440开发板——使用S3C2440操作Nand Flash
本文讲述了在S3C2440上操作NAND FLASH的细节原理,用代码实现了按页读取数据、按块擦除数据、按页烧写数据,最后给出了测试的案例。
2024-09-27 17:30:46
964
原创 JZ2440开发板——S3C2440的存储控制器
讲解S3C2440的存储控制器的使用,包括内存类接口的讲解、与外部设备(网卡、SDRAM、NorFlash)的连接方式、不同位宽设备如何与2440进行连接、如何确定芯片的访问地址,NorFlash的访问时序图、如何对SDRAM进行配置。
2024-09-19 23:08:51
875
原创 JZ2440开发板——S3C2440的时钟体系
1、深入讲解了S3C2440芯片的结构掌握了S3C2440的时钟体系架构和上电复位时序,其时钟源有两个:外部晶振或者外部时钟,通过OM[3:2]硬件选择;其内部主要调整频率的PLL有两个:MPLL(产生FCLK)和UPLL(产生UCLK);其主要的时钟频率有三个(FCLK->CPU使用,HCLK->AHB总线高速外设使用,PCLK->APB总线低速外设使用),其中HCLK和PCLK由FCLK分频而来。2、学习了如何进行芯片操作。
2024-09-13 15:26:20
1207
原创 Makefile文件中的$(MAKE)的含义
MAKE 在 Makefile 文件中是一个默认变量,$(MAKE) 表示 make 这个命令。它可以用于在 make 进程中再次调用 make,以实现递归构建。
2024-09-11 18:48:40
383
原创 Makefile中的内嵌变量CURDIR
CURDIR,是Makefile文件中的内嵌变量,自动设置为当前目录(即Makefile文件所在的路径)。
2024-09-11 15:58:34
239
原创 无法用 FileZilla 传送文件的解决方案
所以问题的解决方案,是在虚拟机Ubuntu中创建一个xjh身份拥有rw权限的目录,在PC主机上将文件传送到该目录中;或者修改某个(属主为root的)目录的(其他用户的)权限,使得其他用户具有rw权限;可见uart目录属主是root,其他用户只有 r-x 权限,所以无法以 xjh 的身份上传文件到该目录。而Desktop目录属主是xjh,其权限是rwx,以 xjh 的身份可以上传文件到该目录。思考了一下,可能是文件权限的问题。传送到虚拟机的Ubuntu中的另外一个目录时,却可以成功传输。
2024-09-07 21:22:05
1216
原创 搞懂奇偶校验
由于数据位本来就有2个‘1’,这里又采用奇检验,根据(2)中关于“奇校验”的表述,为了使得“校验位+数据位” 中 ‘1’ 的个数为奇数,校验位应该为‘1’。如果采用偶检验,根据(2)中关于“偶校验”的表述,为了使得 “校验位+数据位” 中 ‘1’ 的个数为偶数,校验位应该为‘0’。当我们有一串二进制的数据时,如何在这串二进制数据的最前面,或者最后面,添加一位的奇检验位或者偶校验位呢?比如对于十进制的数字3,它二进制位0011,数据位中有2个‘1’。(1)首先要明确使用什么校验:你使用奇校验,还是偶检验?
2024-09-01 17:56:27
331
转载 为什么很多电路图中,电源只说要多少伏,不说多少安?
至于不标电流大小,是因为电路板中的电流是不断变化的,只要电源能提供的(或者说能承受的,因为电流过高会烧坏线条)电流大于电路板所需要的最大电流就行,而电路板的电源一般都是配套的,不需要标注。因为电路图中的用电器,如果供电电压不正确,电压低了电路不能正常工作,电压高了会烧毁电路板。所以要标注电源电压多少伏。如果需要另配电源的,说明书中会说明需要多少伏,多少安的电源。
2024-08-31 15:02:58
134
原创 外存——主流的外存设备简介(SD卡、MMC卡、iNand、Nandflash等概念)
以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。
2024-01-29 20:14:54
2320
原创 串口通信——uart stdio的移植(将printf的输出显示从屏幕重定位到串口)
以下内容源于朱有鹏嵌入式课程的学习与整理,非原创,如有侵权请告知删除。
2024-01-28 23:32:20
1001
原创 多线程编程——实现线程同步的方法(互斥锁、信号量、条件变量、读写锁)
Linux 环境中,实现线程同步的常用方法有 4 种,分别称为互斥锁信号量条件变量和读写锁。互斥锁(Mutex)又称互斥量或者互斥体,是最简单也最有效地一种线程同步机制。互斥锁的用法和实际生活中的锁非常类似,当一个线程访问公共资源时,会及时地“锁上”该资源,阻止其它线程访问;访问结束后再进行“解锁”操作,将该资源让给其它线程访问。信号量又称“信号灯”,主要用于控制同时访问公共资源的线程数量,当线程数量控制在 ≤1 时,该信号量又称二元信号量,功能和互斥锁非常类似;
2024-01-18 23:28:31
1602
原创 多线程编程——线程的属性
以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。如果只是学习简单的多线程编程,本文内容可以暂时忽略。在利用pthread_create() 函数创建线程时,第二个参数设置为NULL即可。
2024-01-18 18:33:12
1270
原创 C++学习——string 详解(即C++字符串详解)
C++增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的 string 类。string是类,而不是基本数据类型。虽然平时一般叫string变量,但切确来说应该叫string对象。使用 string 类需要包含头文件<string>string s1;return 0;(1)变量s1只是定义而没有初始化,此时编译器会将空字符串赋给 s1,即""。(2)变量s2在定义的同时被初始化为。从中可以看出,string 变量可以直接通过赋值操作符进行赋值。
2023-10-14 23:30:38
3206
原创 C++学习——类其实也是一种作用域
在类的作用域之外,普通的成员只能通过对象(可以是对象本身,也可以是对象指针或对象引用)来访问,静态成员既可以通过对象访问,又可以通过类访问,而 typedef 定义的类型只能通过类来访问。另一方面,函数的返回值类型出现在函数名之前,当成员函数定义在类的外部时,返回值类型中使用的名字都位于类的作用域之外,此时必须指明该名字是哪个类的成员。我们在定义 show() 函数时用到了类 A 中定义的一种类型 PCHAR,因为前面已经指明了当前正位于 A 类的作用域中,所以不用再使用。
2023-10-14 17:48:31
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人