自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 [韦东山]嵌入式Linux学习笔记...吗?

目录硬件部分(Linux嵌入式学习——点个灯(一)Linux嵌入式学习——点个灯(二)Linux嵌入式学习——点个灯(三)Linux嵌入式学习——点个灯(四)Linux嵌入式学习——点个灯(五)流水灯MakefileMakefile基础Makefile函数与实例本文是基于韦东山视频的学习笔记硬件部分(Linux嵌入式学习——点个灯(一)Linux嵌入式学习——点个灯(二)Linux嵌入式学习——点个灯(三)Linux嵌入式学习——点个灯(四)Linux嵌入式学习——点个灯(五)流水灯Mak

2020-05-10 12:54:42 703

原创 实现windows免密ssh登录linux

实现windows免密ssh登录linux

2022-12-31 12:15:31 479 1

翻译 git-completion.bash 2022-10-17

git-completion.bash 2022-10-17

2022-10-17 10:33:09 722

原创 修改 Zynq 7000 系列 CPU 主频到 800HMz(7045 和 7100)

修改 Zynq 7000 系列 CPU 主频到 800HMz(7045 和 7100)

2022-09-09 19:58:08 3167 3

原创 如何搜索Linux内核运行的驱动模块

有时候想知道内核运行过程中顺序加载了哪些模块,做了哪些初始化,但是光看代码很难看,又不想用JTAG这么麻烦。这时候可以在 文件 函数里加上一句打印然后看内核打印的函数指针地址,然后就可以根据地址找出函数。首先用交叉编译工具链的objdump工具,把vmlinux反汇编。然后执行 就可以找到对应执行的函数了。需要注意的是像这种 grep 了函数名只有对应 文件的,只是注册了驱动而已,需要设备树有对应 属性才会执行 函数初始化驱动。像这种 grep 到具体函数名的,一般是直接执行这个函

2022-06-25 12:10:17 544

原创 git 指定版本号缩写长度 设置变量core.abbrev

在旧版本的git,git commit id 缩写默认为7位,用git log --oneline命令以缩写hash打印出git日志。但是如果是庞大的项目,7位的hash其实很容易重复,有兴趣可以参考–How short can Git abbreviate目前用的新版本git为2.17.1,git commit id 缩写默认为12位,但是又只想兼容旧版本,用7位hash怎么办?参考git文档 core.abbrev:core.abbrevSet the length object name

2021-06-16 12:37:11 1129

原创 /usr/bin/ld: cannot find -lncursesw

编译linux内核时出现/usr/bin/ld: cannot find -lncurseswHost# make menuconfig HOSTLD scripts/kconfig/mconf/usr/bin/ld: cannot find -lncurseswcollect2: error: ld returned 1 exit statusscripts/Makefile.host:116: recipe for target 'scripts/kconfig/mconf' failed

2021-06-04 11:08:16 719 1

原创 Non-blocking user input in loop without ncurses.

目录Non-blocking user input in loop without ncurses.ts本文是基于韦东山视频的学习笔记汇总点这Non-blocking user input in loop without ncurses.Posted on April 8, 2007The title sounds a bit awkward, let my briefly explain what is it all about.In my program, I want to wait fo

2021-02-15 17:35:29 115

原创 韦东山 课后作业 JZ2440 LCD的文字显示

目录课后作业代码本文是基于韦东山视频的学习笔记汇总点这课后作业修改 lcd_put_ascii 函数,可以指定字符颜色。实现 lcd_put_str 函数,输出字符串,可以换行修改 lcd_put_chinese 函数,可以指定字符颜色。实现 lcd_put_str 函数,可以输出混合的中英文字符,比如“中国 china”,支持自动换行。代码#include <sys/types.h>#include <linux/fb.h>#include <sys/m

2021-01-11 12:43:29 641 2

原创 linux3.4.2内核-LCD驱动程序的移植

目录LCD驱动程序的移植lcd.cfb_test.c按键输入子系统本文是基于韦东山视频的学习笔记汇总点这LCD驱动程序的移植#include <mach/regs-lcd.h>#include <mach/regs-gpio.h>#include <mach/fb.h>修改之后需要重新配置编译内核,把原来的LCD驱动变成模块:<M> S3C2410 LCD framebuffer support。<M> Silicon Moti

2021-01-03 19:08:24 244

原创 S3C2440 LCD控制器的设置

目录LCD 控制器LCDCON1的设置LCDCON2的设置LCDCON3的设置LCDCON4的设置LCDCON5的设置FRAME BUFFER START ADDRESS REGISTERLCDSADDR1的设置LCDSADDR2的设置LCDSADDR3的设置Lookup Table RegisterREDLUT的设置GREENLUT的设置BLUELUT的设置Dithering Mode RegisterDITHMODE的设置Temp Palette RegisterTPAL的设置LCD 中断寄存器LCDI

2021-01-03 19:04:28 711

原创 韦东山 fb_test 源码

目录fb_test.cfb.hMakefile本文是基于韦东山视频的学习笔记汇总点这fb_test.c/***************************************** Copyright 2001-2003 Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************/ #include <sys/ty

2020-12-30 21:16:11 721

原创 按键驱动移植到3.4.2内核

目录LED驱动的移植first_drv.cfirstdrvtest.c按键驱动的移植second_drv.cseconddrvtest.c本文是基于韦东山视频的学习笔记汇总点这以下的移植过程都大同小异,都是先把Makefile文件中的内核编译路径改为自己的3.4.2的内核编译路径(内核要成功编译过),直接make根据错误信息修改错误。LED驱动的移植需要去掉头文件<asm/arch/regs-gpio.h>和<asm/hardware.h>,加上头文件<linux/

2020-12-29 22:59:02 225

原创 简单移植内核3.4.2

目录配置内核修改内核时钟配置支持yaffs2本文是基于韦东山视频的学习笔记汇总点这配置内核需要修改默认的的 gcc 编译器,这里用的是gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)vim Makefile# 进去使用命令'/CROSS' 搜索到这两句ARCH ?= ...CROSS_COMPILE ?= ... # 改为ARCH ?= armCROSS_COMPILE ?= arm

2020-12-27 00:01:29 227

原创 yaffs2补丁

目录yaffs_mtdif1.cyaffs_mtdif2.cyaffs_vfs.c本文是基于韦东山视频的学习笔记汇总点这yaffs_mtdif1.c/* * YAFFS: Yet another FFS. A NAND-flash specific file system. * * Copyright (C) 2002-2011 Aleph One Ltd. * for Toby Churchill Ltd and Brightstar Engineering * * Created

2020-12-26 23:55:57 255

原创 稍简单的字符驱动程序-操作led

目录本文是基于韦东山视频的学习笔记汇总点这

2020-12-02 20:50:54 124

原创 最简单的字符驱动程序

目录用户程序和驱动程序1. 定义operation结构体2. open、write 函数3. 注册、卸载驱动函数总结本文是基于韦东山视频的学习笔记汇总点这用户程序和驱动程序1. 定义operation结构体/* 定义结构体,传参给内核 */static const struct file_operations first_drv = { .owner = THIS_MODULE, .open = first_drv_open, .write = first_drv_write,}

2020-11-30 23:08:05 428

原创 [无中生有]移植u-boot(2020.7)至 JZ2440

目录下载建立工程本文是基于韦东山视频的学习笔记下载百度u-boot,去官网,点源码,去FTP服务器直接去下载最新的就好。建立工程

2020-10-12 23:09:32 816

原创 用arm-linux-gcc 3.4.5 编译 busybox-1.20.0

目录1. 改Makefile2. 加定义3. 加文件mtd-user.hmtd-abi.hubi-user.h本文是基于韦东山视频的学习笔记汇总点这编译环境是 gcc 3.4.5, make 前需要make menuconfig1. 改Makefile查找 “CROSS” 找到 CORSS_COMPILE = ?改成 CORSS_COMPILE = arm-linux-2. 加定义编译时会有两个变量未定义,定义即可。也可以去掉这个编译模块,这里选的前者。3. 加文件编译时缺少几个文件,

2020-08-10 20:31:17 355

原创 jz2440 输入子系统分析

目录步骤本文是基于韦东山视频的学习笔记汇总点这步骤分配一个input_dev结构体设置(能产生哪类事件、能产生这类操作里的哪些事件)注册硬件相关的操作static int buttons_init(void){ int i, ret; /* 1. 分配一个input_dev结构体 */ buttons_dev = input_allocate_device(); /* 2. 设置 */ /* 2.1 能产生哪类事件 */ set_bit(EV_KEY, button

2020-05-27 21:26:45 170

原创 Linux按键中断

cat /proc/interrupts查看当前中断exec 5</dev/key_eint_drv打开中断并设为5exec 5<&-关闭中断5

2020-05-19 21:48:51 622

原创 Make file 函数和实例

Make file 函数和实例函数本文是基于韦东山视频的学习笔记函数函数就多咯,只说几个常用的吧。$(foreach var,list,text)$(filter patten…, text)$(filter-out patten…, text)$(wildcard patten)$(patsubst patten, replacement, $(var))A = a b c...

2020-05-10 17:44:41 205

原创 print变参

/usr/include/features.h:367:25: fatal error: sys/cdefs.h: No such file or directory解决Ubuntu编译error:fatal error: sys/cdefs.h: No such file or directory–InWhoSome packages could not be authenticated...

2020-05-10 17:44:34 401 1

原创 最小根文件系统(未完)

目录根文件系统干了什么搞个最小根文件系统/dev/console & /dev/nullinit -> busybox更改如何编译/etc/initab配置文件指定的程序C库镜像yaffs2本文是基于韦东山视频的学习笔记根文件系统干了什么/dev/console/dev/nullinit -> busybox/etc/initab配置文件指定的程序C库搞个...

2020-05-10 17:44:26 409

原创 s3c2440 Nor flash

目录总汇读取设备信息设备信息Nor flash 大小扇区数量扇区信息本文是基于韦东山视频的学习笔记总汇Nor flash 相关指令集都说 Nor flash “只读”不可写的,事实上,要写的话用特殊指令集写即可。由于Nor flash是16位的,所以都是对应 word 指令。每次我们在烧写bin文件的时候总看见命令行上面有这些信息,这次我们就来实现一下自己实现打印这些信息。[Ma...

2020-05-10 17:44:16 181

原创 cache & mmu

目录cache的由来cache的流程本文是基于韦东山视频的学习笔记cache的由来先写一个函数,功能是,输出从1加到100的总和,我们来看一下反汇编是怎样的。没错,函数使用for循环实现的。可以看到,在for循环里面,CPU在不断地读取类似的数据和指令(如ldr r3, [fp, #-16]等等)。问题是,CPU不断地操作的sdram速度很慢啊,而且数据空间临近,命令也相似。可不可...

2020-05-10 17:44:01 167

原创 最简陋的Bootloader

board_init in smdk2410.c (D:\Linux嵌入式\u-boot\u-boot-1.1.6\u-boot-1.1.6\board\smdk2410) : gd->bd->bi_boot_params = 0x30000100;

2020-05-10 17:43:41 195

原创 s3c2440 Nand flash

目录总汇寄存器本文是基于韦东山视频的学习笔记总汇寄存器[NFCONF] NAND flash configuration register - 需要配置[NFCONT] NAND flash control register - 需要配置[NFCMMD] NAND flash command set register - 命令寄存器,写命令[NFADDR] NAND flash a...

2020-04-19 20:15:13 300

原创 s3c2440 计时器中断

目录总汇寄存器代码优化本文是基于韦东山视频的学习笔记总汇根据手册的示意图,PLCK给出的时钟后,通过预分频器(Prescaler)后,再通过多通道选择器(5:1 MUX)分频,到达定时器。定时器里有定时初值,当初值减到0时就会产生中断。加载值,硬件可以设置为自动加载,当初值为0时便自动为加载值对比值(这次不用)定时器中断,类比按键中断,有几个额外工作要做设置定时器初值...

2020-04-05 15:52:39 297

原创 S3C2440 按键中断

目录外部(按键)中断设置本文是基于韦东山视频的学习笔记根据电路原理图S2 ~ EINT0 //按键2对应中断0S3 ~ EINT2 //按键3对应中断2S4 ~ EINT11 //按键4对应中断11S5 ~ EINT19 //按键5对应中断19中断也是一种异常,但中断较为复杂一点,除了一般异常的处理流程保护现场处理恢复现场还需要中断源的 使能/配置中断控...

2020-04-04 17:49:49 336

原创 [und&swi]异常模式

目录und 异常(无定义异常)swi 异常(软中断异常)本文是基于韦东山视频的学习笔记und 异常(无定义异常)我们在执行 main 函数之前加入句子.word 0xdeadc0de //故意加入未定义句子首先,代码执行至此,出现了 und 异常,根据异常向量表出现 und 异常后会跳转到 0x00000004 地址去处理异常,所以我们需要在0x00000004 加入处理异常的...

2020-04-04 09:59:13 355

原创 S3C2440 中CPU 的七种模式

目录本文是基于韦东山视频的学习笔记OPERATING MODESARM920T supports seven modes of operation:• User (usr): The normal ARM program execution state• FIQ (fiq): Designed to support a data transfer or channel process...

2020-03-30 19:50:18 395

原创 c语言实现代码重定位和bss段清零

目录本文是基于韦东山视频的学习笔记首先要通过 c 语言实现,就要搞清楚一个问题:怎么才能在 c 语言中获得代码的运行地址/加载地址和bss段开始结束地址?两种方法通过汇编传入函数参数通过链接脚本获取然而第一种方法是不完全的 c 语言实现,我们来实现第二种,在连接脚本里SECTIONS{. = 0X30000000;__code_start = .; //我们加入这句话,以...

2020-03-29 14:07:18 759

原创 链接脚本的改进

copy: ldr r4, [r1] str r4, [r2] add r1, r1, #4 add r2, r2, #4 cmp r2, r3 ble copy ;改为小于等于,因为现在是复制4字节 /*bss段清零*/ ldr r1, =bss_start ldr r2, =bss_end mov r3, #0clean_bss: str r3, [r1] ...

2020-03-28 21:43:03 137

原创 重定位的引入

目录引入段本文是基于韦东山视频的学习笔记引入为什么要有重定位,什么是重定位?我们知道,CPU可以从一些特定的芯片直接读写数据如SDRAM,Nor和网卡,但是不同于Nor,Nand是不可以直接和CPU交互滴。那既然这样,当程序烧写到Nand时,CPU是怎么运行程序的呢。其实啊,Nand启动时,Nand的前4k内存都会被复制到SRAM当中(通过硬件),CPU又是可以直接和SRAM读写数据的,...

2020-03-25 21:09:34 200

原创 S3C2440A SDRAM

S3C2440A SDRAM根据原理图本文是基于韦东山视频的学习笔记根据原理图根据原理图看得出,SDRAM的片选信号是nGCS6,在文档直接搜索关键字,发现用的是BANK6, 地址从0x3000_0000开始。如何写1字节数据进SDRAM呢。首先是因为sdram是32bit的,CPU和sdram数据交换时,只能每次操作32位数据。CPU会把32bit的数据给内存控制器,内存控制器会发出DQ...

2020-03-22 20:01:14 168

原创 S3C2440A 内存接口概念

S3C2440A 内存接口概念本文是基于韦东山视频的学习笔记这一课回答了几个问题 CPU怎么控制其他设备如GPIO, UART, Nor flash, Nand flash的就是这样控制咯,其实可以先分两大类设备(把CPU外的都先称为设备吧)。CPU可以直接把地址传给他的设备CPU不可以直接把地址传给他的设备第一种,CPU直接寻址访问,然后设备直接把数据送回CPU,如Nor...

2020-03-19 19:36:21 188

原创 S3C2440A UART

S3C2440A UARTUART波特率UART ULCON0 普通配置UART UCON0普通配置UART状态寄存器波特率寄存器配置引脚本文是基于韦东山视频的学习笔记UART由于对UART还是比较熟悉的,记得以前还试过用引脚模拟,就不写原理了。这次实现putchar,getchar 函数,波特率115200以最简单的方式实现UART通信,而通信最重要的两点,配置好即可。波特率传输...

2020-03-17 18:39:57 206

原创 S3C2440A 时钟系统

S3C2440A 时钟系统时钟系统本文是基于韦东山视频的学习笔记时钟系统S3C2440A_UserManual_Rev13.pdfOVERVIEWThe Clock & Power management block consists of three parts: Clock control, USB control, and Power control.The Clock ...

2020-03-16 18:54:18 360

原创 按键控制LED

按键控制LED判断按键状态按键原理图如下,按键分别是EINT0、2、11, 分别对应引脚是GPF0、GPF2、GPG3,原理图就不详贴了。同样的,关于GPF寄存器可以看回 Linux嵌入式学习——点个灯(二),关于GPG寄存器如下图,大同小异。GPFCON寄存器是0x56000050,而GPGCON寄存器是0x560000060,如此类推。需要注意的是,设置按键需要把寄存器设置为输入(Inp...

2020-03-15 19:52:14 762

phytool 源码 ( 适用于 NXP imx6u 和 imx8 、ti)

里面有编译好的 mx6_phytool,ARM格式 里面有编译好的 mx8_phytool,ARM aarch64格式 源码可以执行 make 编译,注意编译前要指定对应的编译工具链

2023-02-10

gcc-linaro-7.5.0-2019.12-i686-arm-linux-gnueabi.tar

arm-linux-gnueabi-gcc 7.5.0 版本(发布时最新),可以完美编译最新u-boot(发布时为 2020.7)

2020-10-05

空空如也

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

TA关注的人

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