自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 CC2541 OSAL中按键处理过程全解析

首先要区分,按键的处理和PROFILES中的按键服务是完全两个维度,两码事。simplekeys.c是一种profile,类似simpleGATTprofile.c。本文关注协议栈中按键是怎么从底层单片机一路向上,送到应用层处理的。1、顺着代码逻辑从头看起,涉及到按键的最早是在main函数中先调用了HalDriverInit函数,void HalDriverInit (void)调用了HalKeyInit();设置IO口功能和方向,然后将全局变量HalKeyConfigured = FALSE;2、m

2021-05-25 17:24:32 494 1

原创 2021最新arm交叉编译工具链7.5.0百度云盘下载

gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf

2021-01-26 23:59:41 564

原创 uboot2021网盘下载地址

https://pan.baidu.com/s/1q2w1QU1anfqYp6muaJNEOQmm:mevi网速太差,下载挺久,搬运到此。

2021-01-26 17:14:59 269

原创 UBOOT主makefile注释

整体注释在notepad中完成,复制下来用notepad打开,格式应该会很完美。#本文档仅做参考,注释随意写的# SPDX-License-Identifier: GPL-2.0+##如果 Tab 字符之后使用 # 字符,则会被 make 解释为命令行)。注释行的结尾如果存在反斜线(\),那么下一行也被作为注释行。如果#号以tab开头,makefile虽然不会执行,但是会回显到终端上。VERSION = 2017PATCHLEVEL = 03SUBLEVEL =EXTRAVERSION =

2020-10-28 04:38:10 350

原创 驱动不能用库,内核提供的基本服务接口函数

包含基本数据类型(双向链表、字符串、位操作)、基本原子操作、延时、调度、定时器相关、锁操作、抢占和屏障。

2020-09-04 15:32:44 96

原创 uboot为什么要重定位/代码拷贝?

参考自:https://www.cnblogs.com/Cqlismy/p/12152400.html必看。这个老哥写的uboot启动的博客非常棒,感谢。还有https://blog.csdn.net/luciferful/article/details/9371891还有正点原子uboot相关内容。自己总结心得如下:以前看过的老版本的UBOOT(包括2440和朱老师的S5PV210)是没有这样的,而是遵循裸机规矩:运行地址必须等于链接地址。可是最近看的imx6ull的uboot中,代码原本已经

2020-06-16 22:50:02 2062 2

原创 韦衔接之uboot分析与使用(一)

含uboot编译过程、uboot第一阶段和第二阶段工作、uboot命令。

2020-06-04 09:25:41 317

原创 韦一之Cache、MMU、协处理器和虚拟地址、地址映射(021课)

MMU和Cache作用非常大,但是我们写程序基本不涉及它们。后面写linux驱动时,想映射某个寄存器时可以使用内核提供的ioremap来映射,不用了解 内部的机制。这里仅做基本介绍。知道概念和作用就行了。我们很少编写相关程序。Cache介绍在2440这个芯片里面,除了有cpu,还有指令cache,数据cache,指令MMU,数据MMU。这些cache和MMU都是通过协处理器CP15来操作的。(操作他们或者开启它们都是操作CP15)。Data cache必须启动地址映射后才能使用!指令cache

2020-06-03 12:56:26 1140

原创 韦一之Nor flash和Nand flash读写(015-016课)

Nor和Nand flash概述nor flash不可以直接写,否则就跟内存一样了,上面的程序很容易被破坏。但是读nor就和读内存一样,发出地址直接读就行了。nand的接线少,数据线上既传输命令又传输数据还传输地址!nor和nand都是不能直接写的,要发出一定的命令。nor贵且容量小,为什么还用呢?优点就是无位反转和坏块,如果要高可靠性地存储程序,尤其是重要的需要稳定的程序,错一点都不行的,一般就用nor。海量数据用nand存储,比如视频监控的信息。手机里面都是用的nand,现在技术好了,

2020-06-02 20:31:29 4361 4

原创 2440手册exception entry表格和介绍的错误

table2-2 exception entry/exit错误

2020-06-02 10:34:43 269

原创 韦一之重定位、位置无关、链接脚本、elf格式(013课)

重定位的引入nor启动和nand启动都需要进行重定位。由图片可知,对2440,芯片内部有cpu.内存控制器,内存控制器外面可以接有sdram,norflash。内部还有4k的sram,nand flash控制器。CPU发出的命令,地址可以直接到达sdram,norflash,4k sram还有各种控制器(包括nand flash控制器),但是不能直接到达外部nand flash芯片,也就是说2440不能直接给Nand Flsh发送命令。所以我们的程序可以放在(外部芯片)sdram,nor flas

2020-06-01 18:27:22 989

原创 韦一之内存控制器,2440地址空间,NOR flash和SDRAM(012课)

内存接口和内存控制器S3C2440是个片上系统,有GPIO控制器(接有GPIO管脚),有串口控制器 (接有TXD RXD引脚)。配置GPIO控制器相应的寄存器,即可让引脚输出高低电平;配置UART控制器相应的寄存器,即可让引脚输出波形。前者相对简单,类似门电路,后者相对复杂,属于协议类接口。类似的协议类接口还有iic、iis、spi等。对于CPU是不管什么接口的,它只写相应的寄存器,由控制器根据寄存器的配置去控制具体的引脚。那么CPU是如何访问各个不同的寄存器的呢?GPIO(门电路),uart(

2020-05-31 22:08:13 1064 1

原创 韦一之串口、va_arg()可变参数处理及裸机实现printf(重难)(011课)

参考了https://www.cnblogs.com/huangdengtao/p/12103149.html一、串口基础写法:115200,8n1表示波特率115200,8位数据位,没有(No)校验位,一个停止位(还有一个必备的起始位)所以共十位,每一位需要时间1/115200,传输一个字节的时间也就是1/11520也就是对应于8n1的方式,一秒可以传输11520字节数据!怎么发送一字节数据,比如‘A‘?A 的ASCII值是0x41,二进制就是01000001,怎样把这8位数据发送给PC机呢?

2020-05-30 22:48:23 789

原创 韦一之启动时钟及时钟配置(010课)

大部分摘抄自韦老师博客https://blog.csdn.net/thisway_diy/article/details/79389009S3C2440是System On Chip(SOC),在芯片上不仅仅有CPU还有一堆外设。至于有哪些外设,可以查看参考手册。在S3C2440参考手册的第一章PRODUCT OVERVIEW里面有个BLOCK DIAGRAM图:可以把该图分为上中下三块,上面的是与CPU密切相关的,工作于FCLK;中间的一些对性能要求较高的设备,像LCD显示、相机等,在AHB BU

2020-05-30 11:02:59 331

原创 韦一之gcc和makefile(009课)

笔记内容大部分来自视频及韦东山老师的文章博客:https://blog.csdn.net/thisway_diy/category_9272321.html

2020-05-30 10:25:06 194

原创 韦一之2440启动过程、nor/nand介绍、led汇编程序及C启动原理(008课)

第1个ARM裸板程序及引申韦东山老师①nor启动和nand启动不同。②ldr str和ldm stm的不同。

2020-05-29 23:55:26 769

原创 韦一之SI等工具使用(007课)

本节主要介绍了SI软件和Hex Editor Neo二进制查看软件。笔记摘录:./hello (执行程序) (不用点直接写hello不行吗?)gcc -v 查看gcc的版本,从而验证了gcc编译器正常。如 gcc -o hello hello.c之后file hello可以看到是个ELF 64-bit LSB executable 可执行程序。当一款新的ARM芯片出现了,要么ARM官方要么芯片厂家会很快准备好相应的arm-linux-gcc编译器来支持这一块ARM芯片。so

2020-05-29 17:15:45 280

原创 韦一之裸机烧写程序与ping问题(006课)

对应韦东山一期视频之006课。开发板上一定有个烧写口,例如JTAG烧写口。但电脑上是不会有这个JTAG口的,因此需要一个USB烧写器将两者连接(USB烧写器),例如Jlink、OpenJtag、OP/EOP。EesyOpenJtag(也就是OP/EOP)是OpenJtag的便宜版本,他和我们的开发板是绝配,他可以直接烧写Nand Flash和Nor Flash,操作简单,价格便宜。OP/EOP用来往Flash烧写程序: 支持NOR Flash 和 NAND Flash。Jlink有版权,而且不支持

2020-05-29 16:49:30 431

原创 韦东山二期之linux poll机制引入

在前面讲过的,驱动程序的应用代码中读取按键代码如下while (1) { read(fd, &key_val, 1); printf("key_val = 0x%x\n", key_val); }read时如果没有按键中断,则会休眠:让出CPU但是并不返回read函数。目标:如果想要有中断时返回,没有按键按下几秒中后也返回,则用poll机制简单。类似于应用程序中read...

2020-02-18 19:43:43 149

空空如也

空空如也

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

TA关注的人

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