linux内核
打工人1379号
不谋万世者,不足谋一时;
展开
-
龙芯编译驱动
2k上编译模块化编译驱动方法(有些客户的设备一直在更新,编译到内核会花费很长时间解决编译问题,而模块化编译,对于验证板卡方案,相对较快): 1.在2k机器上编译内核源码(或者3a机器上,若是刚安装的2k系统,编译内核还想要ncurses库); 2.进入到驱动所在源码目录,执行make -C kernel_path M=/driver_path modules(其中kernel_path为内核所在绝对路径,driver_path为驱动所在路径)...原创 2021-12-23 20:56:27 · 1031 阅读 · 0 评论 -
linux之pwm分析
以2K1000为例:pmon下的pwm使能:文件Targets/LS2K/ls2k/start.S; li t0, 0xbfe10420 //sdio lw t2, 0x0(t0) lui t1, 0x10 //enable pwm0, pwm1, i2c0, i2c1, nand, sata, i2s, gmac1 //no hda, no ac97 ori t1, t1, 0x3f48 //用于控制使能相应设备,其中12~15位用于使能pwm0原创 2021-02-05 17:07:30 · 1265 阅读 · 0 评论 -
龙芯上的温度传感器
这块驱动不通的内核实现方式类似,但是驱动模型和系统下读取的方式略有差别,2.6.32内核(下面以2h为例分析)linux下驱动文件:arch/mips/loongson2/loongson2hsoc/temperature.c //温度采集具体实现#define CPU0_SENSOR_BASE 0x900000001fef0000static void temp_handler(void){ unsigned char temp; unsigned int tm原创 2020-11-02 22:07:03 · 1034 阅读 · 0 评论 -
通过固件传递自定义启动参数给内核
代码如下:static int data_x = 1024;static int data_y = 768;static int __init datax_setup(char* str){ data_x=simple_strtol(str,NULL,0); return 0;}__setup("data_x=", datax_setup);static int __init datay_setup(char* str){ data_y=simple_strtol(s原创 2020-06-15 20:34:46 · 181 阅读 · 0 评论 -
linuxcan接口测试
测试须知:不同处理器核控制器不同,或者本身处理器中无can控制器,也可以通过其他总线转接,都大同小异,can协议准守通用的规范,在linux下访问统一使用socket访问,如下mips结构2K1000处理器板卡进行can验证;2k1000有两路can,一路出来三根物理信号线,CAN_L,CAN_H,GND,连接到usb转can核的对应接口上,can核上的r+和r-要外部回环短接;下面进行测试:方法一,通过本地can总线和其他板卡或者外部can设备通信can配置部分:#ifconfig can0 d原创 2020-05-16 21:12:01 · 2882 阅读 · 2 评论 -
Linux kernel important documents about drivers
dtsarch/mips/loonson2/dts/2k1000.dtsi2c driversdrivers/i2c/busses/i2c-ls.cls_i2c_probe match resources in dts.i2c init;fill adap->algo= &ls_i2c_algo;##nand driversdriver/mtd/nand/aud...原创 2018-12-02 18:02:33 · 152 阅读 · 0 评论 -
linux内核编译相关
makefile文件中,all(也就是make的目标)下一行需要一个tab键才可以;原创 2018-12-02 23:33:37 · 91 阅读 · 0 评论