- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 时钟中断
普通的时钟中断:在设备树里会有时钟源: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 18:57:49
1161
原创 内核的一些记录
在head.s中开始mmu的地方,会把中断向量赋值给cpu的寄存器: ldr x5, =vectors msr vbar_el1, x5vectors中定义了中断向量表:比如ventry el0_irq 定义的是从用户态进入内核态的,ventry el1_irq 是从内核态到内核态的;在el0_irq里面有返回用户态是进程调度的过程;...
2020-08-09 08:23:33
323
原创 自己搜集的手段
通过反汇编命令对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 21:36:17
163
原创 exvim的安装
先到exvim的官网,把那个全部的软件包下载下来,解压到~/exvim目录下然后在exvim目录下执行在exvim目录下执行 unix/replace-my-vim.h这个脚本主要是替换exvim的vimfile 到~/目录下的.vim目录,exvim下的.vimrc替换用户目录下的.vimrc的要想在putty下有像ubunt一样的效果, 在~/.bashrc最后加上配置。...
2020-03-15 20:48:19
248
原创 gic初始化spi中断负载均衡的地方
在gic初始化的gic_dist_init这个函数中,要让上送cpu的中断负载均衡,可以将cpumask改为想上送的cpu的bit位,比如cpu有四个核,可以奖cpumask改为oxf;
2019-05-02 16:16:14
422
原创 sys下创建文件的相关
在sys下的对某个文件进行cat和echo是调用在用sysfs_create_file创建文件的时候,填的第二参数;里面有实现show和store的函数device_create | + -- kzalloc struct device | +---device_register | +-----dev...
2019-04-07 20:23:23
1117
原创 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 20:42:23
981
原创 块设备获取下一个队列的接口
获取下一个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 20:40:36
204
原创 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 22:24:33
469
原创 i2c总线驱动以及设备驱动注测,已经两者怎么结合起来的。
首先在i2c-core.c文件中会初始化一个虚拟的i2c_bus_type的总线适配器设备,外围器件设备已经外围设备的驱动都会挂到这个总线上,这三个东西在挂在的时候都会去找对于的驱动或者设备来进行匹配,对应的函数有device_register, i2c_new_device, i2c_register_driver,device_create,device_create会在/d...
2019-02-18 22:06:04
371
原创 uboot的设备驱动的
首先在fdtdec_setup 中指定设备树的位置;然后在initf_dm->dm_init_and_scan中通过平台的方式或者设备树的方式,绑定设备与驱动之间的关系; dm_scan_platdata 函数是搜索使用宏U_BOOT_DEVICE定义的设备进行驱动匹配,也就是bind子节点 dm_scan_fdt 对设备树中的设备进行驱动的绑定; 在设备...
2019-02-10 22:18:45
665
原创 console与tty,uart的关系
一直不太明白这三者的关系,这几天看了很多的文章,我的理解如下,不知道对不对/dev/console是个缓冲区, 内核需要打印东西是,先放到这里面然后由console决定从哪个tty去打印,然后再调用uart实体驱动进行发送;tty即使指向激活的终端tty0也是默认是当然使用(激活)的终端tty1——tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,具体的关...
2018-12-22 14:13:30
1743
转载 initab的解析
转载下别人的:https://blog.youkuaiyun.com/yj4231/article/details/7757856 NOTE:这里的讲解将针对嵌入式Linux,而不是一般的PC平台。如发现错误欢迎指正。首先,先来看下我的/etc/inittab是怎么样的,然后再详细说明。[root@yj423 /]#cat /etc/inittab ::sysinit:/etc/ini...
2018-12-21 14:53:46
643
原创 init进程起来后执行的动作
在中兴/linuxr或者别的脚本后,会启动init进程,init进程起来后,首先会解析解析/etc/inittab然后会调用然后调用/etc/init.d/rcS 进入控制台后会自动执行/etc/profile...
2018-12-20 21:08:50
446
原创 内核加载根文件系统的流程
首先内核会加载sysfs文件系统,然后会创建一个虚拟的rootfs文件系统;如果uboot系统通过bootm传的第二个参数有initrd的话,这时候会将initrd挂到前面创建的rootfs下,我看有的博看写的是通过bootagrs下的root=/dev/ram 或者是root=/dev/mdtblock1这样的方式,把rootfs压缩包先放到这些设备下,然后内核启动的时候把这些设备里...
2018-12-20 16:18:30
1326
原创 设备树从uboot到内核的过程
设备树在uboot的bootm的最后的一个参数传给内核,存在r2寄存器里,不带设备树的传参是把struct tag的地址传给r2; uboot中会把commandline,bootargs等信息,添加到设备树的chosen选项中,到了内核之后,内核首先会解析chosen里的东西的。...
2018-12-19 16:28:57
4176
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人