- 博客(48)
- 收藏
- 关注
原创 03-03学习笔记 内存管理初始化
通常virtual space 的划分方式为 3:1, 依靠 PAGE_OFFSET 常数控制,影响着内核空间和用户空间的上下文切换效率。当指针位数为32位时,virtual space 的大小就是 2^32,只有当指针位数是64位时,virtual space 才会增大。昨天建立了数据结构,描述node的pgdat,描述zone的zone,还有nodelist 等初始化。7. zone 完全实例化, 冷热页的初始化,为watermark准备, buddy。找到所有的活动区域,去除掉孔洞的那些。
2024-03-03 18:08:55
437
原创 Initialization of Node and Zone(linux 内存 结点内存区域的初始化)
简述build_zonelists的工作原理,理解内存结点的初始化
2024-03-02 20:59:27
1473
原创 总线中的match函数-笔记
在of_match"_node 中选择最好的 score,它对应的match 即为最优驱动程序。本次笔记主要记录 其中的of_driver_match_device 函数的调用关系,以理解设备树匹配的流程,进而理解id_table,name匹配的部分流程。以platform总线为例,platform_bus_type 实例的match 为 platform_match,of_driver_match_device 在设备树中发现有与驱动匹配的设备,就会返回1,进而match函数返回1.
2024-02-21 20:08:07
489
原创 minicom移植
之前修改设备树的到的 /dev/ttymxc2 设备文件是做什么的minicom 最后使用的是 /dev/ttyS1CPPFLAGS = “-P”https://blog.youkuaiyun.com/lailaiquququ11/article/details/126691913https://blog.youkuaiyun.com/CaspianSea/article/details/70500038#commentBox
2024-01-20 11:42:13
354
原创 中断-----
使用 poll_does_not_wait 与 poll_requested_events 验证时出现参数类型不匹配问题。file_operation 中 .poll 的第二个参数由用户怎么传递过去的?ERESTARTSYS 你就知道上层的库函数 ,当收到 -( current )―――》检查当前进程是否有信号处理,来讲,会自动的重新调用这个调用就可以了。至于 signal_pending。
2024-01-09 12:04:45
428
原创 点灯大师的第一步 -imx6ull
timedev.led_gpio = of.get_named_gpio(timerdev.nd, “led-gpio”, 0) 获取GPIO的编号。gpio_direction_output(timedev.led_gpio,1) 设置某个GPIO为输出output,设置默认值1。其中,start_timer 为定时器的名称,timer_function 为定时器超时后的调用函数,gpio_set_value(timedev.led_gpio, sta) 设置某个GPIO的值。2.3 周期间隔可调节。
2024-01-08 13:59:33
1746
原创 【正点原子 linux 驱动编程】
8. tcp\uart\spi\i2c、蓝牙、wifi等协议还需要接着看,接着学。10. docker 的基本操作,compose的使用。13. linux 常用操作指令,make语法。9. 视频、图像、音频、AI选方向去研究。7. 读硬件(电气)原理图的方法还是慢;11. tcp、ip等计网基础知识。12. 内存管理、进程调度等知识。前路漫漫未可知,遵心守义我自知。
2023-11-16 23:43:33
330
原创 【正点原子 开发板 启动卡在starting kernel】
查看板子情况,用emmc方式可以正常启动,sd卡不能启动查 bootargs 和 bootcmd 输入,发现是bootcmd 中的 bootz 80800000 - 83000000 中没有加入空格,加入后正常启动;
2023-11-14 21:35:01
469
原创 【编译内核
apt-get install lsb-core lib32stdc++6apt install libncurses5-devapt-get install flexapt-get install bisonapt-get install libssl-dev
2023-10-31 21:57:55
52
原创 docker构建ubuntu镜像,移植linux到imx6ull开发板
apt-get install make , arm-linux-gnueabihf-gcc (4.9), build-essentials, lzop,bc, 生成zImage。
2023-10-23 07:53:50
242
原创 shell 移动文件
bin/bashdoif [[ File"6.2.0"]]thenFILENAMEFileILENAMEelseFILEMOVEFilefidone。
2023-10-22 23:15:45
187
原创 【docker 打包ubuntu】
3. 导入docker cat system.tar | docker import - ubuntu:16.04。1.获取ubuntu的文件系统。
2023-10-16 07:49:19
143
原创 【任务列表】
cat /etc/NetworkManger/NetworkManager.conf 中ifupdown managed=true尝试了,最后发现原来的电脑网口坏了。。。。:)
2023-10-15 22:24:40
50
原创 docker 构建可应用的容器
docker pull registry.cn-hangzhou.aliyuncs.com/lucky_96/ubuntu:[镜像版本号]已经在alyun镜像上存储了。
2023-10-15 18:02:31
46
原创 Docker运行基础知识
开发板后续编译需要在 ubuntu16 上运行,兼容性会好。自己电脑装的双系统,ubuntu 23.04,不想降到16, 利用Docker进行容器安装。
2023-10-15 11:22:22
60
原创 【python】
2.virtualenv 解决同一个库的不同版本共存的兼容问题。如果A用到requests 的1.0版本,B用到requests 的2.0版本。不使用工具,则一台机器只能安装一个版本。3. pyenv virtualenv 解决的是同一个库的版本管理问题,与irtualenv一致,只是基于pyenv来用。可以做到进入目录生效,离开目录失效。1.pyenv 用来管理一台机器上的多个python 版本。用来解决开发项目中一个用python2,一个用python3 的情况。只支持python3,
2023-10-14 16:38:45
41
原创 【开发板网络设置】
另外给自己一句话,求同存异,只有先理解了他的不一样,才能知道自己该怎么做。给跨行的同学一句话:直连的有线 ip地址不能与无线wifi 的网关一致,他是可以配置的。
2023-10-14 12:14:30
46
原创 【留坑记录】
但是运行针对ubuntu 的 service network-manager restart 回报错,包括其他的 service network/networking restart。运行 Centos 8 的 nmcli c reload 就正常成功?
2023-10-14 11:54:41
43
原创 makefile
original cmd 返回cmd的来源 command line。wildcard *.c获取suoyc文件。=如果没有赋值 就用后面的。
2023-10-12 22:32:37
45
1
原创 【内存管理】心得
当空闲页面小于page_min时,表明Zone非常却页,页面回收压力很大,当大于page_high时是理想状态,当小于pages_low时,存在页换到硬盘,开始释放回收页面,即唤醒kswapd守护进程,用来获得更多的空闲内存,方法为通过缩减内核缓存、进行页面回收(写回页或换出较少的页)。用来解决外部分片的问题(即使用内存大,造成使用后的空闲内存不连续,靠的的阶进行的合并与分配),又称为基于页面的分配。: DMA供外设系统使用,最为珍贵,Normal保存内核的数据结构,High 作映射的,无所谓。
2023-10-09 23:37:00
61
1
原创 【arm 基础命令】
rbp 保存栈中当前执行汉书的基本地址,栈上数据由rbp指针加偏移。R0-R14 通用寄存器 R13堆栈 R14链接。adds -》进位结果放到CPSR。rsp 栈指针 永远指向栈顶。adc -》 带进位的加法。R15 PC保存执行命令。CPSR当前程序状态寄存器。Cortex -A处理器。x9-x15 临时寄存器。x0-x7 参数寄存器。x8 子程序的返回地址。mov mvn 取反。x16-x18 别用。SPSR备份CPSR。
2023-09-30 19:40:16
104
1
原创 【操作系统】基础命令
objdump -r 重定位-s 符号-d 反汇编-x-h 各段属性readelf -h-s 符号表进程描述符的pgd域指向进程的全局目录。
2023-09-30 18:50:38
109
1
原创 LINUX 普通命令
ehco (1 页缓存 2节点什么的,3所有缓存) /proc/sys/vm/drop_caches。l 链接文件 d目录 -普通文件 b块设备文件 c字符设备文件 s套接字文件。tee -a 将标准输入复制到每个文件并显示到标准输出。-m man文件 -M man文件路径。tail -n +300 第300行以下。-b 二进制文件 -B可执行文件的路径。apropos 搜索制定关键字命令。dH 删除当前行页面第1行至光标行。-s 源码文件 -S源码文件路径。4,$d 从第4行删除至末尾行。
2023-09-30 17:01:18
78
1
原创 MINICOM
显示 interface 0 claimed by ch341 while ‘brltty’ sets config #1 则。4.1 查看系统是否支持USB转串口 lsmod | grep usbserial, 没有输出就去下载安装。4.2 配置相关usb规则 1. /dev中的tty命名规则,文件权限,芯片信息,4、USB-SERIAL 调试过程。4.3 britty驱动占用问题。串口调试工具 minicom。我就不用windows。
2023-09-05 22:43:02
167
原创 【Ubuntu 换源 】
进入advance选项,选择刚才安装的内核版本,进入即可。根据你的系统架构下载 *.deb 文件,直接点击下载。双系统的话,直接退出重启。
2023-07-08 16:21:16
140
1
原创 【搜狗输入法安装跳坑】
如果提示依赖安装失败,是因为部分包与现有的包存在冲突,需要借助aptitude进行安装。再让你输入,y/n/p, 第二次输入y (此时提供了解决包冲突的一种方式进行安装。现象:进入fctix配置中没有找到搜狗输入法,其他输入法也没有。如果没有提示依赖安装失败,则重启搜狗输入法(或者重启电脑)解决方案:此时重启电脑。按照搜狗输入法官网方式安装。会让你输入,y/n/p, 第一次输入n。
2023-07-08 12:46:13
240
1
原创 gdbm的古老用法
2.确保有gdbm-ndbm.h的头文件,若没有,就需要使用Synaptic软件包管理器进行包管理。1.确保安装gdbm,一般ubuntu都有,查询方式:man gdbm 有结果就可以。古老的dbm存储器使用记录。
2023-05-09 23:41:43
157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人