自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SystemTap在ARM64上的移植

想在ARM64上使用一下SystemTap, 但是发现移植起来比较困难,网上也没有什么比较完整的博客,干脆自己折腾一遍,然后写出来分享一下。参考 《奔跑吧linux内核》一书文章目录1 环境2 工具下载3 编译3.1 ARM平台版本编译3.1.1 编译zlib3.1.2 编译 elfutils3.1.3 编译 systemtap3.2 PC 平台版本编译3.3 内核编译4 测试4.1 编译测试demo4.2 拷贝程序并运行1 环境ARM64交叉编译器: aarch64-linux-gnu-gcc 7

2022-02-14 20:42:10 1258

原创 linux vmalloc

参考:https://zhuanlan.zhihu.com/p/452710310内核版本:4.4.0文章目录1 主要接口2 主要结构体2.1 struct vm_struct2.2 struct vmap_area2.3 数据结构之间的关系3 源码分析3.1 初始化3.2 vmalloc1 主要接口主要接口就2个, 1个是申请虚拟内存 vmalloc, 一个是释放虚拟内存 vfree/* * 申请虚拟内存, 虚拟地址空间连续, 但是物理地址不连续 * size: 大小 * 成功返回地址,

2022-02-11 16:57:46 822

原创 linux 内核 wait queue源码分析

文章目录这里写开源的地址1 简单的例子1.1 测试源码1.2 测试log2 源码分析2.1 主要结构体介绍2.2 wait_event 主要流程2.3 wake_up 主要流程参考:https://www.cnblogs.com/apprentice89/archive/2013/05/09/3068274.html内核版本:4.4这里写开源的地址1 简单的例子1.1 测试源码先使用一个简单的例子来测试一下wait_queue的基本使用, 然后再进行结构体讲解和源码分析代码基本的思路如下:

2020-12-16 00:59:20 313

原创 使用字库 HZK16 来驱动oled0.96(ssd1306) 显示中文

硬件平台:友善之臂 Tiny4412软件平台:Ubuntu16.04源码位置: https://github.com/lian494362816/Tiny4412/tree/master/SourceCode/Driver/003_spi本文的重点放在如何使用字库上,因此不过多的介绍OLED模块文章目录1. OLED 模块基本介绍1. Pin脚介绍1.2 显示及数据排列2. 显示原理3. ...

2019-05-30 03:35:29 8797 3

原创 s3c2440学习之路-012-1 Undefined未定义中断

硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/013_excption/001_undef承接上篇博客 s3c2440学习之路-012-0 异常中断基础知识 接下来让我们看看第一个异常/中断相关的实例。其实这里应该叫做未定义异常...

2019-03-01 20:59:04 419 1

原创 s3c2440学习之路-012-0 异常中断基础知识

文章目录1. 异常/中断的基本知识介绍1.1 ARM的7种工作模式1.2 ARM的异常向量表1.3 重要的寄存器CPSR1.4 异常/中断的处理过程1.5 不同工作模式下的私有寄存器1.6 总结1. 异常/中断的基本知识介绍异常/中断是ARM经常用到的处理机制,因此需要好好学习。这里总是写中断/异常是因为中断属于异常的一种,而我们经常听到中断这个词语而少听到异常这个词,所以这些特意写成中断/异...

2019-02-28 19:00:57 264

原创 s3c2440学习之路-011代码重定位

硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/012_relocate/008文章目录1 基本原理1.1 程序段的划分1.2 为什么要需要重定位代码1.3 如何实现重定位1.4 lds链接脚本2 源码讲解2.1 主要流程2.2 t...

2019-01-05 15:05:09 528 2

原创 s3c2440学习之路-010 sdram

硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/011_dram文章目录1.主要原理1.1基础知识1.2 SDRAM的连接2.主要寄存器3.源码1.主要原理1.1基础知识做控制无非就是设置2440的寄存器,只有对寄存器中的那些...

2019-01-01 15:35:38 1257

原创 s3c2440学习之路-009 nor flash的简单配置

基本原理主要寄存器说明源码硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/010_nor_flash_tacc文章目录1.原理1.1 Bank的划分1.2时序2.主要寄存器2.1BWSCON2.2BANKCON03.源码...

2018-12-23 12:17:19 562

原创 s3c2440学习之路-008 uart实现printf函数

基本原理源码硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/009_uart_printf1.基本原理因为程序目前处于裸板阶段,只能输出字符串,没有C语言的printf函数可以调用。但是在调试程序时,想像C语言一样调用pr...

2018-12-21 09:26:15 765 1

原创 s3c2440学习之路-007uart的简单配置

基本知识主要寄存器源码硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/008_uart1.基本知识串口算是各种芯片最基本的功能之一,串口配置好后程序就可以通过串口来打印各种信息,方便代码的调试。 串口最主要的参数有4个:...

2018-12-19 00:08:54 315

原创 s3c2440学习之路-006 clock的设置

原理分析主要流程源码硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/007_clock1.原理分析2440主要的时钟有4个2个PLL:FCLK,HCLK,PCLK,UCLK;MPLL,UPLL。FCLK是给CPU用的,...

2018-12-14 12:06:39 431

原创 s3c2440学习之路-005 轮训模式读取key(按键)

原理分析主要流程源码硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/006_key1.原理分析按键是常用的电子元器件,去读按键的方法主要有2种1)轮训方式,就是需要不断的去读取按键的数值2)中断方式,通过外部中断来实...

2018-12-12 08:12:13 544

原创 s3c2440学习之路-004 区分nand/nor 启动

原理分析主要流程源码硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/005_leds/0021.原理分析1.1问题的由来前面篇文章 https://blog.csdn.net/lian494362816/articl...

2018-12-09 20:28:43 349

原创 s3c2440学习之路-003 汇编给C传参数 点亮不同led灯

原理分析源码硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/004_led_parma1原理分析当使用汇编调用C函数,碰到需要传参时,可以使用R0-R3来传递参数。R0代表第1个参数,R1代表第2个参数.......当参...

2018-12-05 20:33:04 283

原创 s3c2440学习之路-002 C语言点亮led

1. 主要流程2. 源码3. SP(stack pointer)的设置硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5源码位置: https://github.com/lian494362816/C/tree/master/2440/003_led_c1 主要流程承接上一篇博客 https://blog.csdn.net/lian49...

2018-11-30 01:27:52 753

原创 s3c2440学习之路-001 汇编点亮led

1. 原理分析2. 主要流程3. 源码4. dis文件分析硬件平台:jz2440软件平台:Ubuntu16.04 arm-linux-gcc-3.4.51.原理分析 点亮LED最简单的方法就是给二极管正负极接上电,中间串一个电阻图1 点亮LED由于2440芯片Pin脚的驱动能力不够,所以无法直接用Pin脚来点亮LED,只能把Pin脚连接到LED的负极,充当开关的作用。 ...

2018-11-20 21:34:55 629

空空如也

空空如也

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

TA关注的人

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