- 博客(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
1454
原创 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
864
原创 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
347
原创 使用字库 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
9530
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
474
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
286
原创 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
561
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
1310
原创 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
586
原创 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
818
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
331
原创 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
463
原创 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
572
原创 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
360
原创 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
296
原创 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
778
原创 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
660
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人