自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhujun的博客

有一种落差是,你配不上自己的野心,也辜负了所受的苦难

  • 博客(16)
  • 问答 (1)
  • 收藏
  • 关注

原创 git基本操作1

错误信息 "fatal: not a git repository (or any of the parent directories): .git" 表示你当前的目录不是一个 Git 仓库,或者你的 Git 仓库配置在父目录中,但你不在该目录下。8.这个错误通常发生在尝试推送代码到远程 Git 仓库时,但是本地的 Git 仓库没有正确地设置远程仓库的地址,或者远程仓库的地址不正确。1.正在学习uboot代码,涉及到代码的修改,所以想先把源码由git管控,再修改代码也好有个对照。4.初始化git仓库。

2024-07-24 22:39:09 189

原创 C语言面试基本问题

1.局部变量能否和全局变量重名?

2024-07-03 20:01:26 77

原创 点灯实验由汇编程序向C程序进阶

uboot也是一开始就设置svc模式,uboot要做的事情就是初始化系统相关硬件资源,需要获取尽量多的权限,以方便操作硬件,初始化硬件。另一方面,uboot最终目的是为了启动linux的kernel,在做好准备工作跳转到kernel之前,本身要满足一些条件,其中一个条件就是要求CPU处于SVC模式。用于描述文件应该如何倍链接在一起形成最终的可执行文件,其主要米的是描述输入文件中的段如何被映射到输出文件中,并且控制输出文件中的内存排布。先让cpu进入svc模式,然后设置栈指针,最后跳到main函数不返回。

2024-05-28 23:05:46 123

原创 IMX6ULL镜像文件组成结构

至于为什么要加这样一段格式,我认为和芯片内部ROM里面的已经写好的一段程序有关,这段程序会按照这样的格式来读取SD卡上面的程序,然后执行SD卡里面的.bin文件,相当于把控制权交到了SD卡中。1. Image vector table,简称IVT,里面包含一系列的地址信息,这些地址信息在ROM中按照固定的地址存放着。由此可以看出,最终烧写到IMX6ULL的程序其组成为:IVT+Boot data+DCD+.bin。2. Boot data,启动数据,包含了镜像要拷贝到哪个地址,拷贝的大小是多少等等。

2024-05-27 23:26:06 328

原创 IMX6U启动方式

从硬件原理图看出,启动除BOOT_MODE1和BOOT_MODE0有关外,还与LCD_DATA11,LCD_DATA3,LCD_DATA4,LCD_DATA5,LCD_DATA6,LCD_DATA7有关。4.由图1可知,如果想要SD启动的话,由图1可知,BOOT_CFG1[7:4]=010X,由图4可知,BOOT_CFG1[4]的含义是:0-Regular 1-Fast Boot,这里我们选择0。接下来我们研究BOOT_MODE[1:0]和GPIO是怎样影响启动的,我们现在用的启动方式都是SD。

2024-05-16 18:33:16 732 2

原创 1.1 正点原子-裸机实验-汇编点灯(自己理解)

先查看led电路,led0旁边有个电阻R9,看实际电路板,led旁边也有一个电阻R9,所以确定是这个led0,查看其他的图,led0连接到GPIO_3,根据视频这个标错了,实际是GPIO1_IO3。Register (IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03)这个寄存器,设置为GPIO mode。1.根据上图文档例子代码,找到SW_MUX_CTL_PAD_GPIO1_IO03 SW MUX Control。这篇是过了一段时间,自己根据芯片文档自己写的代码。

2024-05-11 16:51:49 411 2

原创 ARM汇编基础

第一份文档主要讲解 ARMv7-A 和 ARMv7-R 指令集的开发,Cortex-A7 使用的是 ARMv7-A 指令集,第二份文档主要讲解 Cortex-A(armV7)编程的,这两份文档是学习 Cortex-A 不可或缺的文档。,我们用汇编来配置 I.MX6UL 寄存器的时候需要借助存储器访问指令,一般先将要配置的值写入到Rx(x=0~12)寄存器中,然后借助存储器访问指令将 Rx 中的数据写入到 I.MX6UL 寄存器中。,比如 RAM 中的数据,I.MX6UL 中的。③、将立即数传递到寄存器。

2024-05-10 16:23:24 423 1

原创 Cortex-A7架构基础知识

ARM 架构提供了 16 个 32 位的通用寄存器(R0~R15)供软件使用,前 15 个(R0~R14)可以用作通用的数据存储,R15 是程序计数器 PC,用来保存将要执行的指令。ARM 还提供了一个当前程序状态寄存器 CPSR 和一个备份程序状态寄存器 SPSR,SPSR 寄存器就是 CPSR 寄存器的备份。在这些寄存器中,有些是所有模式所共用的同一个物理寄存器,有一些是各模。注意:这里讲的是 Cortex-A 的内核寄存器组,注意不是芯片的外设寄存器。这里zhong'dian。式自己所独立拥有的。

2024-05-09 17:18:26 609

原创 Makefile的引入和使用

如果我们的工程只有一两个 C 文件还好,需要输入的命令不多,当文件有几十、上百甚至上万个的时候用终端输入 GCC 命令的方法显然是不现实的。优点:上述命令前三行分别是将 main.c、input.c 和 calcu.c 编译成对应的.o 文件,所以使用了“-c”选项,“-c”选项我们上面说了,是只编译不链接。–c main.c”,这行命令很熟悉了吧,就是不链接编译 main.c,生成 main.o,其它两个.o 文件同理。有,因此必须先更新这三个文件。make 会查找以这三个.o 文件为目标的规则并执行。

2024-05-09 16:00:40 763 1

原创 1.正点原子-裸机实验-汇编点灯

个人认为重点内容在于构建整体的概念。,比如输出功能、上拉、速度等等。可以作为其它外设引脚,也就是。引脚使用的话就需要设置。输出高电平或者低电平。

2024-04-29 18:20:17 330

转载 Linux驱动学习路线

入门之后,如果你想从事内核开发、驱动开发,那么可以去钻研几个驱动程序(输入系统、I2C总线、SPI总线等),掌握若干个大型驱动程序后,你对内核的套路就有所了解了,再去研究其他部分(比如进程管理、文件系统)时你会发现套路是如此通用。驱动和内核紧密联系,所以深入驱动避免不了接触内核子系统,所以各位还想更深入的学习Linux内核各个子系统,像内存子系统,调度子系统,网络子系统,中断子系统,进程管理等的推荐笨叔叔的奔跑吧Linux,王利涛的嵌入式自我养成的教程。这些概念无论是对驱动开发,还是对应用开发,都很重要。

2024-04-28 10:17:19 106 1

转载 学习linux驱动开发的方法

实践上和应用层的开发大同小异。例如操作I2C总线上的EEPROM,实践上的读和写操作都有现已封装好的API来完成.而开发者需求做的是了解外设的特性,经过封装好的API对外设进行操作。当然,一个优秀的开发者是即能够做BSP级代码的开发,也能做外设驱动的开发的。例如操作I2C总线上的EEPROM,实践上的读和写操作都有现已封装好的API来完成.而开发者需求做的是了解外设的特性,经过封装好的API对外设进行操作。BSP的开发指的是板级代码的开发,和CPU是密切相关的,例如I2C/SPI Adapter的驱动。

2024-04-28 10:04:47 32 1

原创 S3C2440存储控制器知识总结

1.S3C2440引出27个地址线和32个数据线。因为每个Bank的地址空间为128M,所以在Bank确定之后,只需要27个地址线就能寻址到128M地址空间。因此CPU引出27个地址线和32个数据线。2.除了这27根地址线,S3C2440A还对外引出了8根片选信号线,这样组合起来就能达到1G的物理寻址空间,即0x00000000~0x3FFFFFFF3.由于S3C2440是32位芯片,理论上讲可以...

2018-05-12 21:53:49 711

原创 S3C2440 UART原理

1. UART使用标准的TTL/CMOS电平2. 为了增强数据的抗干扰能力、提高传输长度,通常将TTL/CMOS逻辑电平转换为RS-232电平    S3C2440A 的通用异步收发器(UART)配有 3 个独立异步串行 I/O(SIO)端口,每个都可以是基于中断或基于 DMA 模式的操作。换句话说,UART 可以通过产生中断或 DMA 请求来进行 CPU 和 UART 之间的数据传输。UART ...

2018-05-11 21:10:35 726

原创 S3C2440 ARM芯片时钟体系

    S3C2440A 中的时钟控制逻辑可以产生必须的时钟信号,包括 CPU 的 FCLK,AHB 总线外设的 HCLK 以及APB 总线外设的 PCLK。S3C2440A 包含两个锁相环(PLL):一个提供给 FCLK、HCLK 和 PCLK,另一个专用于USB 模块(48MHz)。     图 7-1 显示了时钟结构的方框图。主时钟源来自一个外部晶振(XTIpll)或外部时钟(EXTCLK)...

2018-05-11 20:46:47 427

原创 S3C2440 GPIO控制器

    GPIO 全称General Purpose Input Output(通用的输入/输出),通俗的说就是一些引脚可以通过它们输出高/低电平,或者通过引脚读取状态(获得的是高电平还是低电平)。    对于输入,通过读取某个寄存器来确定引脚的电平是高还是低;对于输出,通过写入某个寄存器来让引脚输出高电平或是低电平;对于其他特殊功能,则有另外的寄存器控制它。    S3C2440 : GPxCO...

2018-05-11 17:40:18 1238

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除