嵌入式linux
文章平均质量分 66
一WILLPOWER一
Image is fragile, skills last forever
展开
-
TQ210镜像下载
总体流程准备SD卡命令sudo dd iflag=dsync oflag=dsync if=./u-boot_TQ210.bin of=/dev/sdb seek=1烧写镜像到nandflash上面的弄好后,按住空格键,开机首先格式化,按下9,然后输入y然后安装bootloader,选择1这个时候,开发板处于等待状态(OTG开启),这个时候就是传输数据的时候了这个时候,在虚拟机中找到下图所示图标,然后右键连接dnw下载工具使用命令下载dnw ./uboot_T原创 2022-01-16 16:59:35 · 667 阅读 · 0 评论 -
Linux内存管理子系统(概念入门)
文章目录大纲子系统简介管理模型Linux虚拟地址空间分布虚拟地址转化为物理地址物理内存分配大纲内存管理子系统内存管理模型地址映射管理物理地址分配管理子系统简介Linux内核系统构成管理模型Linux内存子系统管理模型上面的三个部分主要做物理内存分配,包裹着它们的部分做的是地址映射管理内容内存管理子系统职能管理:虚拟地址和物理地址的映射管理:物理内存的分配地址映射管理内存管理子系统管理:虚拟地址与物理地址的映射地址映射管理1. 虚拟地址空间分布原创 2021-09-29 15:50:05 · 728 阅读 · 0 评论 -
嵌入式Linux内核以及根文件系统制作
内核制作制作嵌入式平台使用的Linux内核,方法和制作PC平台的Linux内核基本一致。清除原有配置与中间文件x86: make distcleanarm:make distclean配置内核x86: make menuconfigarm:make menuconfig ARCH=arm(一般来说有一个参考的配置文件)编译内核x86: make bzImagearm:make uImage ARCH=arm CROSS_COMPILE=arm-linux-(注意使用ARC原创 2021-09-29 11:22:35 · 801 阅读 · 0 评论 -
Linux内核配置编译以及模块开发
Linux内核简介Linux体系结构Linux由用户空间和内核空间组成现代CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:用户模式( usr)、快速中断(fiq)、外部中断(irq)、管理模式( svc)、数据访问中止(abt)、系统模式(sys)、未定义指令异常(und)X86也实现了4个不同的级别:Ring0-Ring3。Ring0下,可以执行特权指令,可以访问IO设备等,在Ring3则有很多限制。Linux系统利用了CPU的这一特性,使用了其中的两级来分别运行Linux内原创 2021-09-23 17:10:28 · 1364 阅读 · 0 评论 -
Linux应用开发
GDB是GNU发布的一款功能强大的程序调试工具。GDB主要完成下面三个方面的功能:启动被调试程序。让被调试的程序在指定的位置停住。当程序被停住时,可以检查程序状态(如变量值)。#include <stdio.h>void myprint(long result){ printf("result is %d\n", result);}void main(){ int i; long result = 0; for (i = 0; i <原创 2021-09-18 19:14:36 · 2077 阅读 · 2 评论 -
U-Boot-C语言环境初始化
概念解析栈空/满栈升/降栈栈帧栈作用保存局部变量参数传递保存寄存器值栈初始化编程栈初始化栈栈是一种具有后进先出性质的数据组织方式,也就是说后存放的先取出,先存放的后取出。栈底是第一个进栈的数据所处的位置,栈顶是最后一个进栈的数据所处的位置。满/空栈根据SP指针指向的位置,栈.可以分为满栈和空栈。满栈:当堆栈指针SP总是指向最后压入堆栈的数据空栈:当堆栈指针SP总是指向下一个将要放入数据的空位置ARM采用满栈!生/降栈根据P指针移动的方向,栈可以分为.原创 2021-09-16 19:38:49 · 611 阅读 · 1 评论 -
U-Boot-时钟初始化
文章目录210电路图总体代码6410和2440的使用晶振频率为12M,210为24M210电路图设置lock_time当输入频率改变或频分(乘)值改变时,锁相环需要lock周期。PLL LOCK寄存器指定这个锁定周期,它基于PLL的源时钟。在此期间,输出将处于低状态。使用初始值即可设置分频系数参考U-Boot源码设置#define CLK_DIV0 0xe0100300#define DIV_VAL (0x0<<0) | (4<<4) | (4原创 2021-09-11 19:49:04 · 515 阅读 · 2 评论 -
U-Boot-点灯
更新系统时间timedatectl set-ntp true建立硬盘分区# fdisk /dev/the_disk_to_be_partitioned(要被分区的磁盘)lsblk检查# mount /dev/sda3 /mnt# mkdir /mnt/boot# mount /dev/sda2 /mnt/boot# mkdir /mnt/boot/EFI# mount /dev/sda1 /mnt/boot/EFIlsblk检查开始安装基本操作系统# pacstrap -i /m原创 2021-09-11 19:47:25 · 595 阅读 · 0 评论 -
U-Boot-内存部分
文章目录内存的分类SRAMSDRAMDDR(Double Data Rate SDRAM)DRAM内存的内部结构寻址信息参考国嵌内存的分类SRAMSRAM:它是一种具有静止存取功能的内存,不需要定期刷新电路就能保存它内部存储的数据。其优点:存取速度快;但是缺点是:功耗大,成本高。常用作存储容量不高,但存取速度快的场合,比如steppingstone.SDRAMSDRAM(Synchronous Dynamic Random Access Memory)同步: 内存工作需要有同步时钟,内部的命令原创 2021-09-11 19:46:02 · 1200 阅读 · 0 评论 -
ARM指令
文章目录寄存器ARM指令MOVMVNSUBADDANDORRBICCMPTST条件BLLSLRORMRS MSR寄存器装载和存储伪指令数据伪指令操作类伪指令协处理器访问指令协处理器访问寄存器ARM总共有37个寄存器,31个通用寄存器,6个状态寄存器应用程序工作在user模式,内核工作在supervisor svc模式R13 堆栈指针R14 LR链接寄存器(函数返回,中断返回)R15 PC指针SPSR save保存进入中断后的CPSR,中断退出让其值恢复N:代表negtiveZ:代表zer原创 2021-09-05 13:25:11 · 767 阅读 · 0 评论 -
ubuntu20.04-dnw工具
git clone https://github.com/Torchwoods/dnw-linuxcd src/driver/vi Makefile然后把makfile替换成下面内容CURRENT_PATH:=$(shell pwd)LINUX_KERNEL_PATH:=/lib/modules/$(shell uname -r)/build all: $(MAKE) -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modulesclea转载 2021-09-02 19:05:19 · 1012 阅读 · 1 评论 -
homeassistant中usb摄像头的使用(usb转web摄像头)
文章目录前言MJPG-streamer的安装usb摄像头web摄像头图像查看mjpg_stream help参数解释输入输出homeassistant使用其他ffmpeg使用usb摄像头homeassistant学习链接前言在homeassistant中使用ffmpeg集成来使用usb摄像头一直是有问题的,只要你开启了stream基本上视频就出不来(默认配置default_config默认就开启了stream,如果非要用ffmpeg,就不用stream流,但是出来的效果也很差)在社区中采用的方法也是将u原创 2021-08-03 16:52:29 · 4441 阅读 · 0 评论 -
dts和dtsi介绍
dts和dtsi转载 2021-06-30 09:39:58 · 2682 阅读 · 0 评论 -
minicom-linux串口工具
安装sudo apt install minicom使用sudo minicom -D /dev/ttyUSB -b 115200无法输入的情况按下ctrl+A Z然后进入串口设置,然后修改硬件流控制为否原创 2021-05-20 00:04:21 · 286 阅读 · 0 评论 -
Yocto CAT874 Vim8.2安装
链接官方说明configure./configure --host=aarch64-poky-linux --target=aarch64-poky-linux --with-tlib=ncursesmake放到开发板上面,将src文件夹加入系统路径中,给vim执行权限即可如果有一次生成configure不成功,一定要rm src/auto/confug.cache文件,再次生成...转载 2021-05-03 16:31:12 · 180 阅读 · 0 评论 -
Yocto CAT874 安装ranger
首先要编译python库bitbake python然后更新indexbitbake package-index然后打开服务器python -m SimpleHTTPServer 默认端口为8000安装在开发版上面opkg updateopkg install python python-modules然后进入ranger文件夹sudo python setup.py install --optimize=1 --record=install_log.txt即可...原创 2021-05-02 22:17:21 · 172 阅读 · 0 评论 -
yocto-CAT874移植sl小火车、cmatrix
在写Makefile的时候,如果一开始会设置交叉编译环境,那么在Makefile中的CC应该赋值写为?=而不是=(?=表示如果没有赋值则赋值,=是直接赋值这样的话,你再次编译的时候还是用的gcc而不是指定的交叉编译工具可以看到用=的时候还是用gcc编译器,而只有用?=才会用交叉编译器最后给一个移植好的小火车的动画:还有一些其它好玩的命令cmatrix板子上出现的问题用交叉编译工具aarch64-poky-linux-gcc一直出错这个问题按照下述的帖子也没有成功严重错误:g原创 2021-05-02 21:35:12 · 260 阅读 · 0 评论 -
交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别
链接转载 2021-04-10 15:11:37 · 244 阅读 · 0 评论