linux嵌入式

linux嵌入式
沐飞ssh可以连上,但ping不通PC解决

新增环境变量时
1 | source /etc/profile 更新文件 |
工具集
天坑
从GitHub克隆项目,要在linux编译就在linux克隆,windows编译就在windows克隆,否则会报奇怪的错误
Linux克隆GitHub项目可以先转到gitee,然后克隆gitee的
reboot重启失败问题
由于项目需要,于是用了奋战了一个晚上到3点,终找到了问题所在, 其实就是watchdog的寄存器偏移不对,最后只要修改sunxi-f1c100s.dtsi
把wdt: watchdog@1c20ca0 {
compatible = “allwinner, suniv-f1c100s-wdt”,
“allwinner, sun4i-a10-wdt”;
reg = <0x1c20ca0 0x20>;
}
改为
wdt: watchdog@1c20ca0 {
compatible = “allwinner, suniv-f1c100s-wdt”,
“allwinner, sun6i-a31-wdt”;
reg = <0x1c20ca0 0x20>;
}
这样就能正常重启了,我使用的是5.2的内核,其它的内核有可能不存在这个情况
存储器使用的是TF卡,如果是SPI NAND,请修改驱动退出4byte模式
联网
1 | #输入以下指令后planckpi就可以上网了 |
笔记
注册设备时,会在sys/class目录下创建设备文件夹。
/proc目录下存放了一些系统相关的信息,我们可以通过
/proc/interrupts文件来查看当前所有的中断号注册情况以及中断触发次数。
load mmc 0:1 0x80008000 zImage 这里的 0:1表示第 0个 emmc的第一个分区,首先因为我们的开发板上只有一个
bootz 0x80008000 - 0x80c08000 命令,这个命令是启动内核
的命令,其中带有两个参数,第一个参数为内核的存放位置,第二个参数为设备树的存放位置。
早期版本的内核没有引入设备树,因此对于早期的内核一般使用的是 bootm,其命令格式为 bootm+内核地址
注意:
bootz命令的格式是: bootz空格 0x80008000空格 -空格 0x80c08000,注意 -左右有空格 。 bootcmd环境变量若要执行多条命令,则每个命令之间用 隔开 。
注册设备
手动
1 | mknod [设备目录] [设备类型] [主设备号] [次设备号] |
自动
1 | 1. 创建一个类 |
注册字符设备
#linux