云中飞鹤lyl
码龄6年
关注
提问 私信
  • 博客:57,793
    57,793
    总访问量
  • 20
    原创
  • 1,135,325
    排名
  • 3
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河北省
  • 加入CSDN时间: 2018-07-10
博客简介:

weixin_42663362的博客

查看详细资料
个人成就
  • 获得35次点赞
  • 内容获得4次评论
  • 获得59次收藏
创作历程
  • 1篇
    2022年
  • 1篇
    2020年
  • 9篇
    2019年
  • 9篇
    2018年
成就勋章
TA的专栏
  • C++
    1篇
  • s5pv210裸机
    4篇
  • C语言
    10篇
  • 嵌入式
    11篇
  • 无线传输
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

网络大小端工程杂记

计算机存储及网络大小端的工程化运用
原创
发布博客 2022.10.25 ·
338 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

回调函数理解

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

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

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

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 ·
433 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

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

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

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 ·
839 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

程序框架思想杂记1

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

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

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

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

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

static关键字的两种用法

static用法:(1)修饰局部变量,使局部变量拥有全局变量的生命周期。但其作用域仍为原局部变量的作用域。(2)修饰全局变量或者函数,使函数或者全局变量成为内链接属性,就是在其他文件中不能通过extern引用该全局变量或函数。...
原创
发布博客 2019.01.03 ·
152 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

uboot启动阶段简要概述分析

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

Linux中头文件的目录

关于Linux中头文件的目录,分为两类:一类是内核源码中的头文件,比如驱动中包含的头文件;一类是应用软件中包含的头文件。这两类默认放的位置不同。(1)内核源码头文件在内核源码目录下include文件夹中。比如#include&lt;linux/init.h&gt;该文件的路径和文件名即:    /include/linux/init.h(2)应用层代码包含的头文件在内核源码目...
原创
发布博客 2018.12.29 ·
5480 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏

关于sizeof的实验及其用于结构体的一些现象

之前观察到sizeof的一些现象,现做下记录。实验一:struct test{ int a; int b;}test1;printf("test1=%d.
",sizeof(test1));实验结果为:test1=8;实验二:struct test{ int a; int b; char c; char d;}test...
原创
发布博客 2018.12.27 ·
236 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

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

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

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

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

source insight软件使用方法

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

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

(1)int (*p)(int x);//函数指针变量例:p=func1;//func1为函数名,函数名是一个符号,符号代表了内存地址。所以func1就是一个函数的首地址,将函数的地址赋值给一个函数指针变量,则该指针变量里边存了就是函数的地址。也可以写作p=&amp;func1;注意:前提是func1的参数列表也是int.      p(5);//解引用函数,就是执行上边的func1函数。并传参给...
原创
发布博客 2018.07.11 ·
1072 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

汇编程序中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 ·
37068 阅读 ·
29 点赞 ·
0 评论 ·
32 收藏
加载更多