自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 网络大小端工程杂记

计算机存储及网络大小端的工程化运用

2022-10-25 18:22:53 273 1

原创 回调函数理解

在驱动开发过程中,有时候会用到回调函数,根据查询的资料,对回调函数进行简单的解析。回调函数的含义:函数function1在调用函数function2时,给函数function2传参,传递的参数是函数function3的函数名,即函数的地址,当进入function2内执行时会调用执行function3。如下图所示。回调函数的功能可以由普通函数指针调用的方式来替代,但是采用回调函数的优...

2020-02-26 17:33:27 268

原创 soc启动介质和内存大小的识别

一般情况下,uboot和kernel是没有办法自己识别,板载内存的大小的。soc厂商在为soc进行配套的uboot移植时,会规定该soc可连接的最大的内存大小,厂商所移植的uboot中内存的初始值为可连接的最大的内存大小。而我们自己的uboot,是在uboot移植过程中写死在代码中的,而kernel的内存大小是uboot传给他的。至于启动介质的大小,因为启动介质中包含一个小单片机,所以irom和u...

2019-11-15 11:38:45 408

原创 C语言中数字0与字符'0'易混淆实验一例

本阶段进行了一次代码实验,主要是验证在gcc编译情况下,(1)缺少return函数。(2)数字0强制向字符数组赋值的情况。代码如下:#include <stdio.h>#define MAX 255int main(int argc,char *argv[]){ unsigned char i; unsigned char a[MAX]; int j=0;...

2019-08-03 15:36:16 389

原创 linux下移植USB 无线网卡却ping不通网关和外网一例及最后的问题发现解决记录

背景:最近做USB无线网卡在嵌入式板子上的驱动移植和调试工作,遇到一个问题,就是我的板子上安装无线网卡驱动没有问题,驱动链接无线网卡也成功了,然后给无线网卡手动分配了IP去ping网关却死活ping不同。过程:为解决这一问题大费周折,后来我用自己的电脑ping了网关和外网,发现虽然我的电脑能正常的上网,但是竟然ping不同网关和外网。发现问题:之前我用的是学校的wifi,出现这...

2019-06-23 21:20:40 1153

原创 Linux驱动模块加载的两种方法、设置方式和其基本原理简述

Linux中驱动的加载一般有两种形式,一种是在内核启动的过程中自动的加载驱动,另一种是在内核启动起来之后,使用insmod命令手动的加载驱动模块。那么这两种方法实现原理有什么不同呢?(1)驱动的加载方式要从内核的配置讲起。Linux的内核配置分为两个步骤:一是采用make xxxx_default_config进行初步的配置,二是采用make menuconfig进行细节上的配置。(...

2019-06-14 20:08:20 1858

原创 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 770

原创 程序框架思想杂记1

经过一段时间的学习和项目经验积累,我发觉,不管是普通的驱动还是像海思SDK中的sample都有一种框架的思想。框架思想的最简单一个描述就是,先定义一个结构体,结构体的元素是设备硬件属性或者是某种功能的属性。这个结构体可以用来描述这个硬件设备或者这个功能模块。然后调用框架(比如平台总线驱动框架或者海思的mpp)给你开出的API或者操作接口去注册它,去用这些描述初始化某个系统。...

2019-05-03 20:42:29 150

原创 二维数组与二重指针赋值问题之实验

前一段时间做了一个关于二维数组和二重指针的互相赋值的实验,很有意思,特记录下来。由于数组是指针的语法糖,所以我之前一直认为两者可直接进行赋值转换。后来发现在二维数组中这样做是不可行的,现将实验现象记录如下:实验:#include &lt;stdio.h&gt;int main(int argc,char *argv[]){ int a[2][5]={{1,2,3,4,5},{...

2019-03-16 11:10:27 1699 1

原创 解决虚拟机ubuntu桥接和NAT模式切换问题

最近在做开发板的logo订制工作,需要下载netpbm工具包去制作.ppm格式的logo。同时因为板子调试采用的nfs挂载到主机rootfs(根文件系统)的方式,所以要采用ubuntu桥接的方式。其实桥接方式也可以借助主机上网,但是相对NAT方式比较麻烦,我个人比较喜欢直接用NAT方式上外网。由此就涉及到ubuntu的桥接和NAT方式的切换问题。首先:需要说明的是,开发板设置成nfs的模式...

2019-03-16 10:43:23 1217 2

原创 static关键字的两种用法

static用法:(1)修饰局部变量,使局部变量拥有全局变量的生命周期。但其作用域仍为原局部变量的作用域。(2)修饰全局变量或者函数,使函数或者全局变量成为内链接属性,就是在其他文件中不能通过extern引用该全局变量或函数。...

2019-01-03 09:42:53 140

原创 uboot启动阶段简要概述分析

1.  uboot的启动阶段可分为两部分:(1)第一阶段为汇编阶段,在内部SRAM中运行。(2)第二阶段为C语言阶段,第二阶段是在DDR中运行阶段。2.  各阶段主要完成的功能:1)第一阶段主要完成内容:构建异常向量表。 设置CPU的SVC栈。 识别并暂存启动介质选择。 设置栈(SRAM中的栈)。 关看门狗。 供电锁存。 判断当前代码执行位置(如果是冷启动,当前代码...

2018-12-30 19:18:50 582

原创 Linux中头文件的目录

关于Linux中头文件的目录,分为两类:一类是内核源码中的头文件,比如驱动中包含的头文件;一类是应用软件中包含的头文件。这两类默认放的位置不同。(1)内核源码头文件在内核源码目录下include文件夹中。比如#include&lt;linux/init.h&gt;该文件的路径和文件名即:    /include/linux/init.h(2)应用层代码包含的头文件在内核源码目...

2018-12-29 20:38:35 5349

原创 关于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 197

原创 关于zImage烧录到开发板启动和tftp下载启动的区别

做内核移植调试的时候,经常会用到两种启动方式。一种是将配置好的内核编译链接生成zImage文件放到主机中的tftp共享文件夹中,然后在开发板这边,用SecrueCRT软件通过串口控制开发板先启动uboot,进入uboot命令行后,用tftp 0x30008000 zImage 命令将放在主机文件夹中的zImage下载到开发板内存地址0x30008000处,再bootm启动即可。注意!!!区别来...

2018-12-24 22:06:11 1416

原创 存储类设备inand和norflash的区别表象小记及LCD显示原理

最近帮实验室师妹调程序,发现一个有趣的现象。师妹想要在一块128×160的分辨率的TFT显示屏上显示图像。第一次实验:采用的控制芯片为89C52单片机,该类型单片机采用的是512字节SRAM和8K的flash。实验材料:一帧128×160的图片,大小为12KB。实验过程:将该图片用取模软件取模之后加载到单片机中,报内存不足错误。第二次实验:采用的控制芯片为STC12C5A60S...

2018-12-23 20:28:32 331

原创 iNand是在什么阶段被初始化的之解答

在嵌入式系统中,iNand是经常被采用的flash。在CPU启动过程中,以S5PV210为例,BL0会将启动介质(包括iNand)中bootloader的前16kB作为BL1读取到内部SRAM中。那么iNand究竟是在什么时候被初始化了呢?其实是在IROM中就有iNand的初始化代码,而在BL1中又再次进行了iNand的初始化。...

2018-10-29 22:40:08 170

原创 source insight软件使用方法

相信很多朋友,刚拿到source insight这个软件工具的时候都有些搞不太懂,下边我整理了下用该软件查看文件的步骤,供大家参考。source insight的使用步骤:(1)建立一个project工程(2)点击界面上方的project(3)点击Add and remove project files(4)在filename框里打上所要查看的文件所在的盘(例如G:)(5)在左侧di...

2018-07-20 11:54:38 736

原创 C语言函数指针变量与函数指针类型区别

(1)int (*p)(int x);//函数指针变量例:p=func1;//func1为函数名,函数名是一个符号,符号代表了内存地址。所以func1就是一个函数的首地址,将函数的地址赋值给一个函数指针变量,则该指针变量里边存了就是函数的地址。也可以写作p=&amp;func1;注意:前提是func1的参数列表也是int.      p(5);//解引用函数,就是执行上边的func1函数。并传参给...

2018-07-11 18:54:17 1039

原创 汇编程序中bne及beq的区别

在汇编程序中我们会使用cmp指令进行判断,类似于流程框图中的选择判断框(菱形框),其后面可以跟bne和beq两种指令,具体看下边例子:(1)例一:cmp同bne搭配cmp r1,r2  //这个cmp搭配下边的bne指令构成了如果r1≠r2则执行bne指令,跳转到copy_loop函数处执行。否则,就跳过下边bne copy_loop//的bne指令向下执行。(2)例二:cmp同beq搭配cmp ...

2018-07-10 22:51:20 36486

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除