嵌入式问题
刘星燎
弱小和无知不是生产的障碍,傲慢才是
展开
-
嵌入式通过串口连接如何屏蔽自动登录
sdfsdf原创 2020-05-21 20:19:59 · 1258 阅读 · 1 评论 -
keil无法识别JTAG仿真器解决办法
一、操作步骤1、操作环境: 开发板:野火STM32H743XI 电脑系统版本:Windows 10 专业版 使用笔记本调试 JTAG:Fire-Debugger 野火 高速版DAP编程器2、操作步骤: 将JTAG连接在STM32调试接口和电脑USB接口上,电脑有插入设备的提示。开启Keil 5.3,按照野火提供的文档一步一步的做3、现象: 电脑设备管理器中是有这个设备的,但是keil中就是没有二、解决办法1、更换USB口...原创 2020-05-17 16:55:22 · 13083 阅读 · 6 评论 -
内核启动打印 version magic
一、问题描述:1、操作方法:原先内核使用海思提供的的Hi3531_SDK_V2.0.B.0,后为了解决内核崩溃问题升级内核,使用海思提供的Hi3531_SDK_V2.0.D.1后出现问题2、现象:编译内核并烧写到设备上有如下打印,导致ko无法正常加载bonding: version magic '3.0.8 SMP mod_unload ARMv7 ' should be '3....原创 2020-04-28 17:32:49 · 524 阅读 · 0 评论 -
已知结构体成员地址,求该结构体的地址
*参考 list_entry 的方法list_entry定义:/** * list_entry - get the struct for this entry * @ptr: the &struct list_head pointer. * @type: the type of the struct this is embedded in. * @member: the n...原创 2019-11-19 20:39:16 · 1376 阅读 · 0 评论 -
uboot操作指令
指令:bootm作用:用于将内核镜像加载到内存的指定地址处举例:bootm 0x82000000查看和修改环境变量指令常用环境变量列表:bootdelay 执行自动启动(bootcmd中的命令)的等候秒数 baudrate 串口控制台的波特率 bootfile 默认的下载文件名 bootargs 传递给Linux内核的启动参数 boo...转载 2018-06-28 10:17:41 · 620 阅读 · 0 评论 -
使用/dev/random和/dev/urandom产生随机数
一、介绍/dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。二、区别这两个设备的差异在于:/dev/random的random依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直封...转载 2018-08-23 14:12:22 · 26668 阅读 · 2 评论 -
通过socket获取网卡状态
#include <stdio.h>#include <string.h>#include <errno.h>#include <fcntl.h>#include <getopt.h>#include <sys/socket.h>#include <sys/ioctl.h>#include &转载 2018-10-10 17:20:50 · 1932 阅读 · 0 评论 -
获取mac地址
#include <sys/ioctl.h>#include <net/if.h>#include <unistd.h>#include <netinet/in.h>#include <string.h>#include <stdio.h> int main(int argc,char *argv[]) { ...转载 2018-10-10 17:22:02 · 318 阅读 · 1 评论 -
获取ip地址
#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/ioctl.h>#include <stdlib.h>#i转载 2018-10-10 17:22:23 · 192 阅读 · 0 评论 -
SIOCGMIIPHY,SIOCSMIIREG,SIOCGMIIPHY,SIOCETHTOOL
内核中定义在头文件 include/linux/sockios.h,定义如下:#define SIOCETHTOOL 0x8946 /* Ethtool interface */ ethtool 接口#define SIOCGMIIPHY 0x8947 /* Get address of MII PHY in use. */ ...转载 2018-10-10 17:23:02 · 1761 阅读 · 0 评论 -
ioctl在设置或获取套接字属性时的一些标识
所在文件sockios.h/* * INET An implementation of the TCP/IP protocol suite for the LINUX * operating system. INET is implemented using the BSD Socket * interface as the means of communication w...原创 2018-10-10 17:23:35 · 1735 阅读 · 0 评论 -
ifreq和ifconf
一、文件/usr/include/net/if.h二、作用ifreq用来配置ip地址,激活接口,配置MTU等接口信息的。其中包含了一个接口的名 字和具体内容(是个共用体,有可能是IP地址,广播地址,子网掩码,MAC号,MTU或其他内容)。ifreq包含在ifconf结构中。而 ifconf结构通常是用来保存所有接口的信息的。/* * Interface request stru...转载 2018-10-10 17:24:02 · 1029 阅读 · 0 评论 -
I2C协议
一、概述IIC总线是由PHILIPS公司开发的两线式串行总线,用于连接微处理器和外部IIC设备。起初专用于音频和视频,现在在各个电子设备中都有使用。1、IIC总线的特点a、有两条总线线路,串行数据线(SDA)和串行时钟线(SCL),SDA负责传输数据,SCL负责数据传输的时钟同步。典型的设备连接方式如下:b、每一个连接到总线的设备都可以通过唯一的设备地址单独访问c、串行的8位双向...原创 2018-11-08 20:30:20 · 392 阅读 · 0 评论 -
Linux下如何挂载磁盘
一、添加磁盘添加新硬盘重启服务器,添加完之后就可以重启机器了,如果你机器是开启的,进入系统并不能看见你刚添加的那块磁盘,只有等系统重启,重新加载之后才会显示安装的那块磁盘二、进入系统使用root用户进入系统三、 查看硬盘信息fdisk -l[root@localhost ~]# fdisk -l //磁盘命令1Disk /dev/sda: 2...转载 2018-07-09 15:21:38 · 722 阅读 · 0 评论 -
在linux使用命令配置串口
1. 获取串口号在Linux系统中一切皆为文件,所以串口端口号也不例外,都是以设备文件的形式出现。也就是说我们可以用访问文本文件的命令来访问它们。 a. 一般串口都是以/dev/ttyS#的格式显示,所以第一个连接的串口就是/dev/ttyS0,第二个连接的串口就是/dev/ttyS1…以此类推。b. USB转串口适配,没有额外驱动,它们会显示为/dev/ttyUSB#,如/dev/tt...原创 2018-07-09 15:21:02 · 7804 阅读 · 0 评论 -
设备树中ranges属性理解
作者 彭东林 [email protected]文章来源http://www.cnblogs.com/pengdonglin137/p/7401049.html正文一、设备树下面是我们将要实验的设备树的例子:/ { #address-cells = <1>; #size-cells = <1&g...转载 2018-06-20 16:26:16 · 7550 阅读 · 0 评论 -
linux驱动开发简介
一、linux驱动开发简介1、linux驱动和裸板驱动的异同裸板驱动像写英语作文linux驱动程序像做英语完形填空2、linux下驱动程序开发需要具备的硬件基础 能看懂电路原理图阅读芯片的datasheet软件基础 内核态编程的基础(linux驱动程序运行在内核态) 内核模块框架如何动态申请内存如何解决竟态问题如何实现阻塞访问内核中关于驱动程序框架...原创 2018-05-18 14:06:27 · 1238 阅读 · 0 评论 -
最简单的内核模块编程
最简单的内核模块编程1、实验演示vi hello.c#include &amp;lt;linux/init.h&amp;gt;#include &amp;lt;linux/module.h&amp;gt;int __init hello_init(void){ printk(&quot;hello world!\n&quot;); return 0;}void __原创 2018-05-18 14:37:49 · 248 阅读 · 0 评论 -
导出符号
导出符号解决的是模块之间的相互函数调用问题,使用导出符号可以在其他模块中使用该模块的变量或函数,可以形成模块依赖a.c int add(int a, int b){return a+b;} EXPORT_SYMBOL(add);或者 EXPORT_SYMBOL_GPL(add); a.h extern int add(int, int);b.c...原创 2018-05-18 14:50:35 · 1324 阅读 · 0 评论 -
printk 打印优先级/临时修改输出优先级的方法
printk 打印优先级1、与printf的异同点:printk的信息只能输出到控制台printk使用可以指定优先级 标准使用方式: printk(“<0>” “hello %s\n”, func); <0> :是优先级不加优先级是默认的优先级理论: linux内核中打印优先级分为8级:0~7值越小优先级越高printk输出时的优先级高于阈值的可...原创 2018-05-18 14:55:56 · 1319 阅读 · 0 评论 -
混杂设备
混杂设备#include <linux/miscdevice.h>概念 将不容易分类的设备,归纳为混杂设备可以简化编程可以省略设备号,cdev,设备文件的创建数据结构 struct miscdevice { int minor; //设备号const char *name; //名字const struct file_operations *fops; //...原创 2018-05-18 15:19:29 · 319 阅读 · 0 评论 -
常用头文件
#include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件。#include <asm/***.h> 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include <mach/***.h> 是在linux-2.6.29/arch/arm/mach-s3c241...转载 2018-05-21 16:47:59 · 229 阅读 · 0 评论 -
内核源码树
目录 描述 arch 包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。 block 部分块设备驱动程序。...原创 2018-06-22 17:46:59 · 635 阅读 · 0 评论 -
内核配置
理论内核中提供了许多的功能,支持了许多的硬件,因而有许多的东西需要配置,对于这些可以配置的选项,在配置文件中都是以CONFIG为前缀的,例如对SMP的配置选项是CONFIG_SMP,设置了该选项就启动SMP,否则SMP不起作用,编译的时候不会被编译。如下图为一个配置文件的部分截图: 对于这些配置选项中,有的是两个选项,有的是三个选项,三个选项的分别是Y,N,M。M的意思就是模块,选择该选...原创 2018-06-22 17:47:32 · 630 阅读 · 0 评论 -
内核开发特点
1、内联函数(inline)使用内联函数时,该函数会在它所调用的位置上展开,这样做的原因是可以消除函数调用和返回带来的开销,不过代码会变长。在使用内联函数的时候通常会吧那些对时间要求比较高,而代码本身的长度比较短的函数定义为内联函数。定义内联函数的时候通常使用static作为关键字,并用inline来限定: static inline void eolf(insigned long t...原创 2018-06-22 17:48:11 · 522 阅读 · 0 评论 -
Linux内存映射--mmap函数
注意mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。mmap在用户空间映射调用系统中作用很大。函数介绍头文件#include <sys/mman.h>函数原型void* mmap(void* start,size_t length,int prot,int ...转载 2018-06-19 13:39:43 · 526 阅读 · 0 评论 -
设备树
本文将介绍如何为一个新机器编写设备树。我们准备提供一个有关设备树概念的概述和如何使用这些设备树来描述一个机器。完整的设备树数据格式的技术说明书请参考ePAPR规范。ePAPR规范涵盖了比本文基本主题更丰富的细节,要查阅本文没有涉及到的高级用法请参考该规范。目录 1. 基本数据格式 2. 基本概念 2.1 模型机 2.2 初始结构 2.3 中央处理器 2...转载 2018-06-20 11:47:47 · 646 阅读 · 0 评论 -
设备树中#address-cells和#size-cells作用
#address-cells表示用几个cell表示地址,#size-cells表示用几个cell表示地址长度Example1/ { #address-cells = <0x1>; //在 root node下使用1个u32来代表address。 #size-cells = <0x0>; // 在root node下使用0个u32来代表size。...转载 2018-06-20 13:44:18 · 12897 阅读 · 2 评论 -
交叉编译openssl
1、解压下载好的openssl-1.0.1c.tar.gztar xvf openssl-1.0.1c.tar.gz2、编写build配置安装目录,编译工具./config no-asm shared –prefix=$PREFIX 说明:config就是配置脚本,这里不多说了。no-asm是在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支...原创 2018-05-17 10:46:15 · 4151 阅读 · 0 评论