-
设备树
设备树Linux在ARM中使用设备树是用一个树形的结构进行描述各种设备, 让内核可以解释分析, 使用单独的文件进行描述在内核中arch/arm中有大量的mach开头的文件, 这些是不同的机器, plat开头的代表不同的平台使用大量的结构体, 在裸机进行的时候直接写死了, 在.c文件中, 最终导致大量的重复内核无用的信息, 不能编译到Linux内核之中文件的扩展名为.dts, 相当于.c, 就是DTC的源码文件, DTC相当于gcc编译器, 生成.deb文件我们使用的时候使用make dtb...…
-
306
下载一个新的系统, 拨码开关01000000 emmc启动10100110 设置uboot://首先是联网=> setenv ipaddr 192.168.137.164=> setenv ethaddr 00:04:9f:04:d2:25=> saveenv//其他的网络设置=> setenv gatewayip 192.168.137.1=> setenv netmask 255.255.255.0 => setenv serverip 1...…
-
Linux点灯
Linux点灯Linux也可以直接操作寄存器, 但是很麻烦, 不能直接对寄存器的物理地址进行操作, 因为Linux会使用MMU进行操作, 完成虚拟空间到物理空间的映射, 还有进行内存保护, 对于32位的寄存器可以映射的地址是4GB空间在Linux中进行的都是虚拟的地址, 在对物理地址进行操作之前, 需要先得到物理地址对应的虚拟地址, 开启MMU以后就需要使用ioremap函数, 定义在arch/arm/linux/asm/io.h文件之中, 第一个参数是物理地址起始地址, 第二个是内存的长...…
-
305
=> print baudrate=115200board_name=EVKboard_rev=14X14boot_fdt=trybootargs=console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rwbootcmd=tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000bootcmd_mfg=run mf...…
-
驱动开发
驱动开发根据linux的各种驱动框架进行开发, 一低要满足框架, 驱动最终的表现就是/dev/xxx文件, 就是文件的打开关闭读写, 现在新的内核支持设备树, dts文件描述板子的设备信息分类, 有三种 字符设备, 最多的 块设备, 以固定的大小进行 网络设备驱动 一个设备可能不止属于一种类型,记录uboot=> print baudrate=115200board_name=EVKboard_rev=14X14boot_fdt=trybootargs=console=t...…
-
304
不能下载首先查看ip地址, 检查主机是不是可以正常的上网, 排除主机的错误如果可以ping ubuntu单数不可以下载之后测试是不是有两个设备使用同一个ip, 检查开发板以及主机是不是可以正常使用下载启动setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb; bootz 80800000 -83000000'saveenvbootlinux下使用/lib/modules...…
-
C#
C#java: 网站应用程序C++: 不擅长网络编程依附于.NET平台编译器首先把C#转换为IL中间语言, 之后.NET中的CLR动态转换为机器指令优点, 提升开发效率, 运行的时候才会转换为机器指令, 性能会降低.NET平台降低不同语言开发程序沟通成本最开始的叫做.NET Framework, 只能在Windows上面运行之后实现MONO, 微软肉实现.NET CORE可以跨平台运行编译器创建醒目选择控制台应用.NET Framework项目名字: 文件夹名字解决方案: 控制多个项目的时...…
-
函数
语义陷阱指针数组C语言只有一维数组, 但是数组的元素可以为任意的类型, 因此可以创建多维数组…