zhe260805
码龄14年
  • 10,932
    被访问
  • 17
    原创
  • 1,666,952
    排名
  • 5
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2008-11-02
博客简介:

zhe260805的博客

查看详细资料
个人成就
  • 获得5次点赞
  • 内容获得2次评论
  • 获得8次收藏
创作历程
  • 6篇
    2020年
  • 7篇
    2019年
  • 5篇
    2018年
成就勋章
TA的专栏
  • 内核
    4篇
  • 嵌入式
    10篇
  • 驱动
    4篇
兴趣领域 设置
  • 嵌入式
    嵌入式硬件
  • 硬件开发
    驱动开发arm开发
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

时钟中断

普通的时钟中断:在设备树里会有时钟源:arm的最后会在arch_timer_of_init 中注册时钟源,时通过arm_arch_time.c中的arch_timer_register->arch_timer_handler_virt->tick_setup_periodic->tick_set_periodic_handler 设置event_handler,指向tick_handle_periodic, 最后 这个 56.xxHz的时钟最后调的就是这个地方;[&...
原创
发布博客 2020.09.10 ·
324 阅读 ·
0 点赞 ·
0 评论

内核的一些记录

在head.s中开始mmu的地方,会把中断向量赋值给cpu的寄存器: ldr x5, =vectors msr vbar_el1, x5vectors中定义了中断向量表:比如ventry el0_irq 定义的是从用户态进入内核态的,ventry el1_irq 是从内核态到内核态的;在el0_irq里面有返回用户态是进程调度的过程;...
原创
发布博客 2020.08.09 ·
64 阅读 ·
0 点赞 ·
0 评论

linux文件系统下一些功能

cat proc/zoneinfo查看 dma,normal等物理区域的空间;
原创
发布博客 2020.06.07 ·
80 阅读 ·
0 点赞 ·
0 评论

内存管理相关的

内核虚拟地址的相关分区的定义在memory.h里面,里面有定义vmalloc,fixaddr,page_offset等的定义;
原创
发布博客 2020.04.11 ·
41 阅读 ·
0 点赞 ·
0 评论

自己搜集的手段

通过反汇编命令对vmlinux进行反汇编,可以解析出详细的汇编代码,包括了一些地址指令如下:./arm-none-linux-gnueabi-4.8/bin/arm-none-linux-gnueabi-objdump -D out/linux/vmlinux > vmlinux_objdump.txt过arm-readelf -s vmlinux查看各个段的布局hlos@node...
原创
发布博客 2020.04.02 ·
88 阅读 ·
0 点赞 ·
0 评论

exvim的安装

先到exvim的官网,把那个全部的软件包下载下来,解压到~/exvim目录下然后在exvim目录下执行在exvim目录下执行 unix/replace-my-vim.h这个脚本主要是替换exvim的vimfile 到~/目录下的.vim目录,exvim下的.vimrc替换用户目录下的.vimrc的要想在putty下有像ubunt一样的效果, 在~/.bashrc最后加上配置。...
原创
发布博客 2020.03.15 ·
94 阅读 ·
0 点赞 ·
0 评论

gic初始化spi中断负载均衡的地方

在gic初始化的gic_dist_init这个函数中,要让上送cpu的中断负载均衡,可以将cpumask改为想上送的cpu的bit位,比如cpu有四个核,可以奖cpumask改为oxf;
原创
发布博客 2019.05.02 ·
221 阅读 ·
1 点赞 ·
0 评论

sys下创建文件的相关

在sys下的对某个文件进行cat和echo是调用在用sysfs_create_file创建文件的时候,填的第二参数;里面有实现show和store的函数device_create | + -- kzalloc struct device | +---device_register | +-----dev...
原创
发布博客 2019.04.07 ·
606 阅读 ·
1 点赞 ·
0 评论

spi的设备与master的匹配的地方

匹配已经存在的board_list链,并进行匹配,spi_match_master_to_boardinfo,这里主要进行两步操作:第一是匹配bus_num,第二步是 进行实际的slave与master的匹配工作, struct spi_device *spi_new_device(struct spi_master *master, struct spi_board_info *...
原创
发布博客 2019.03.11 ·
742 阅读 ·
1 点赞 ·
0 评论

块设备获取下一个队列的接口

获取下一个request的接口要用__blk_end_request(req,0,req->__data_len)不能用__blk_end_request_cur, 用这个函数tty会卡住,WRITE block 0 on sdb1,这里的 0 是 bio->bi_sector,是写到哪个 sector,不是 WRITE 了多少 blocks 的意思。还有,如果 b...
原创
发布博客 2019.03.07 ·
80 阅读 ·
0 点赞 ·
0 评论

pci的小结

pci的初始化的顺序如下pcibus_class_init()  pci_driver_init()  acpi_pci_init()  /* mach_spec_pci_init() */  pci_common_init  //初始化主控制器的地方,就是也硬件寄存器的地方pci_init()  pci_proc_init()  pci_sysfs_init()  1,Arm...
原创
发布博客 2019.02.23 ·
258 阅读 ·
0 点赞 ·
0 评论

i2c总线驱动以及设备驱动注测,已经两者怎么结合起来的。

首先在i2c-core.c文件中会初始化一个虚拟的i2c_bus_type的总线适配器设备,外围器件设备已经外围设备的驱动都会挂到这个总线上,这三个东西在挂在的时候都会去找对于的驱动或者设备来进行匹配,对应的函数有device_register,  i2c_new_device, i2c_register_driver,device_create,device_create会在/d...
原创
发布博客 2019.02.18 ·
246 阅读 ·
0 点赞 ·
0 评论

uboot的设备驱动的

首先在fdtdec_setup 中指定设备树的位置;然后在initf_dm->dm_init_and_scan中通过平台的方式或者设备树的方式,绑定设备与驱动之间的关系; dm_scan_platdata 函数是搜索使用宏U_BOOT_DEVICE定义的设备进行驱动匹配,也就是bind子节点 dm_scan_fdt  对设备树中的设备进行驱动的绑定;  在设备...
原创
发布博客 2019.02.10 ·
444 阅读 ·
0 点赞 ·
0 评论

console与tty,uart的关系

一直不太明白这三者的关系,这几天看了很多的文章,我的理解如下,不知道对不对/dev/console是个缓冲区, 内核需要打印东西是,先放到这里面然后由console决定从哪个tty去打印,然后再调用uart实体驱动进行发送;tty即使指向激活的终端tty0也是默认是当然使用(激活)的终端tty1——tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,具体的关...
原创
发布博客 2018.12.22 ·
1175 阅读 ·
0 点赞 ·
0 评论

initab的解析

转载下别人的:https://blog.csdn.net/yj4231/article/details/7757856 NOTE:这里的讲解将针对嵌入式Linux,而不是一般的PC平台。如发现错误欢迎指正。首先,先来看下我的/etc/inittab是怎么样的,然后再详细说明。[root@yj423 /]#cat /etc/inittab ::sysinit:/etc/ini...
转载
发布博客 2018.12.21 ·
299 阅读 ·
0 点赞 ·
0 评论

init进程起来后执行的动作

在中兴/linuxr或者别的脚本后,会启动init进程,init进程起来后,首先会解析解析/etc/inittab然后会调用然后调用/etc/init.d/rcS 进入控制台后会自动执行/etc/profile...
原创
发布博客 2018.12.20 ·
358 阅读 ·
0 点赞 ·
0 评论

内核加载根文件系统的流程

首先内核会加载sysfs文件系统,然后会创建一个虚拟的rootfs文件系统;如果uboot系统通过bootm传的第二个参数有initrd的话,这时候会将initrd挂到前面创建的rootfs下,我看有的博看写的是通过bootagrs下的root=/dev/ram 或者是root=/dev/mdtblock1这样的方式,把rootfs压缩包先放到这些设备下,然后内核启动的时候把这些设备里...
原创
发布博客 2018.12.20 ·
1076 阅读 ·
1 点赞 ·
0 评论

内核加载根文件系统的流程

首先内核会加载sysfs文件系统,然后会创建一个虚拟的rootfs文件系统;如果uboot系统通过bootm传的第二个参数有initrd的话,这时候会将initrd挂到前面创建的rootfs下,我看有的博看写的是通过bootagrs下的root=/dev/ram 或者是root=/dev/mdtblock1这样的方式,把rootfs压缩包先放到这些设备下,然后内核启动的时候把这些设备里...
原创
发布博客 2018.12.20 ·
1076 阅读 ·
1 点赞 ·
0 评论

设备树从uboot到内核的过程

设备树在uboot的bootm的最后的一个参数传给内核,存在r2寄存器里,不带设备树的传参是把struct tag的地址传给r2; uboot中会把commandline,bootargs等信息,添加到设备树的chosen选项中,到了内核之后,内核首先会解析chosen里的东西的。...
原创
发布博客 2018.12.19 ·
3670 阅读 ·
1 点赞 ·
2 评论

C++资料大全

发布资源 2013.05.31 ·
pdf
加载更多