嵌入式
云中飞鹤lyl
这个作者很懒,什么都没留下…
展开
-
回调函数理解
在驱动开发过程中,有时候会用到回调函数,根据查询的资料,对回调函数进行简单的解析。 回调函数的含义:函数function1在调用函数function2时,给函数function2传参,传递的参数是函数function3的函数名,即函数的地址,当进入function2内执行时会调用执行function3。 如下图所示。 回调函数的功能可以由普通函数指针调用的方式来替代,但是采用回调函数的优...原创 2020-02-26 17:33:27 · 310 阅读 · 0 评论 -
soc启动介质和内存大小的识别
一般情况下,uboot和kernel是没有办法自己识别,板载内存的大小的。soc厂商在为soc进行配套的uboot移植时,会规定该soc可连接的最大的内存大小,厂商所移植的uboot中内存的初始值为可连接的最大的内存大小。而我们自己的uboot,是在uboot移植过程中写死在代码中的,而kernel的内存大小是uboot传给他的。至于启动介质的大小,因为启动介质中包含一个小单片机,所以irom和u...原创 2019-11-15 11:38:45 · 463 阅读 · 0 评论 -
linux下移植USB 无线网卡却ping不通网关和外网一例及最后的问题发现解决记录
背景: 最近做USB无线网卡在嵌入式板子上的驱动移植和调试工作,遇到一个问题,就是我的板子上安装无线网卡驱动没有问题,驱动链接无线网卡也成功了,然后给无线网卡手动分配了IP去ping网关却死活ping不同。 过程: 为解决这一问题大费周折,后来我用自己的电脑ping了网关和外网,发现虽然我的电脑能正常的上网,但是竟然ping不同网关和外网。 发现问题: 之前我用的是学校的wifi,出现这...原创 2019-06-23 21:20:40 · 1240 阅读 · 0 评论 -
Linux驱动模块加载的两种方法、设置方式和其基本原理简述
Linux中驱动的加载一般有两种形式,一种是在内核启动的过程中自动的加载驱动,另一种是在内核启动起来之后,使用insmod命令手动的加载驱动模块。那么这两种方法实现原理有什么不同呢? (1)驱动的加载方式要从内核的配置讲起。Linux的内核配置分为两个步骤:一是采用make xxxx_default_config进行初步的配置,二是采用make menuconfig进行细节上的配置。 (...原创 2019-06-14 20:08:20 · 1955 阅读 · 0 评论 -
ubuntu中搭建文件夹形式rootfs总结
(1)配置要下载到开发板的kernel使其支持nfs方式挂载,搭建好ubuntu这边的tftp服务器,设置vmware为桥接模式,unbuntu搭建好nfs支持。 (2)用fastboot方式将uboot烧录到开发板flash中。 (3)在ubuntu根目录下建立一个rootfs文件夹。 (4)在rootfs文件夹下建立dev,sys,proc,usr,etc,lib 6个空的文件夹,以...原创 2019-06-14 17:15:24 · 831 阅读 · 0 评论 -
程序框架思想杂记1
经过一段时间的学习和项目经验积累,我发觉,不管是普通的驱动还是像海思SDK中的sample都有一种框架的思想。框架思想的最简单一个描述就是,先定义一个结构体,结构体的元素是设备硬件属性或者是某种功能的属性。这个结构体可以用来描述这个硬件设备或者这个功能模块。然后调用框架(比如平台总线驱动框架或者海思的mpp)给你开出的API或者操作接口去注册它,去用这些描述初始化某个系统。 ...原创 2019-05-03 20:42:29 · 168 阅读 · 0 评论 -
解决虚拟机ubuntu桥接和NAT模式切换问题
最近在做开发板的logo订制工作,需要下载netpbm工具包去制作.ppm格式的logo。同时因为板子调试采用的nfs挂载到主机rootfs(根文件系统)的方式,所以要采用ubuntu桥接的方式。其实桥接方式也可以借助主机上网,但是相对NAT方式比较麻烦,我个人比较喜欢直接用NAT方式上外网。由此就涉及到ubuntu的桥接和NAT方式的切换问题。 首先: 需要说明的是,开发板设置成nfs的模式...原创 2019-03-16 10:43:23 · 1306 阅读 · 2 评论 -
uboot启动阶段简要概述分析
1. uboot的启动阶段可分为两部分: (1)第一阶段为汇编阶段,在内部SRAM中运行。 (2)第二阶段为C语言阶段,第二阶段是在DDR中运行阶段。 2. 各阶段主要完成的功能: 1)第一阶段主要完成内容: 构建异常向量表。 设置CPU的SVC栈。 识别并暂存启动介质选择。 设置栈(SRAM中的栈)。 关看门狗。 供电锁存。 判断当前代码执行位置(如果是冷启动,当前代码...原创 2018-12-30 19:18:50 · 632 阅读 · 0 评论 -
关于zImage烧录到开发板启动和tftp下载启动的区别
做内核移植调试的时候,经常会用到两种启动方式。一种是将配置好的内核编译链接生成zImage文件放到主机中的tftp共享文件夹中,然后在开发板这边,用SecrueCRT软件通过串口控制开发板先启动uboot,进入uboot命令行后,用tftp 0x30008000 zImage 命令将放在主机文件夹中的zImage下载到开发板内存地址0x30008000处,再bootm启动即可。 注意!!!区别来...原创 2018-12-24 22:06:11 · 1475 阅读 · 0 评论 -
存储类设备inand和norflash的区别表象小记及LCD显示原理
最近帮实验室师妹调程序,发现一个有趣的现象。 师妹想要在一块128×160的分辨率的TFT显示屏上显示图像。 第一次实验:采用的控制芯片为89C52单片机,该类型单片机采用的是512字节SRAM和8K的flash。 实验材料:一帧128×160的图片,大小为12KB。 实验过程:将该图片用取模软件取模之后加载到单片机中,报内存不足错误。 第二次实验:采用的控制芯片为STC12C5A60S...原创 2018-12-23 20:28:32 · 355 阅读 · 0 评论 -
关于sizeof的实验及其用于结构体的一些现象
之前观察到sizeof的一些现象,现做下记录。 实验一: struct test{ int a; int b; }test1; printf("test1=%d.\n",sizeof(test1)); 实验结果为:test1=8; 实验二: struct test{ int a; int b; char c; char d; }test...原创 2018-12-27 10:11:14 · 234 阅读 · 0 评论