嵌入式学习之路
交流学习
修诡道的马前卒
世事洞穿而寡言,名利看淡而重学!
个人邮箱:yanzhang.guo@qq.com
展开
-
在debian系统上制作initrd
可以换成自己的目录。转载 2023-08-29 11:52:31 · 1537 阅读 · 0 评论 -
与单片机研发密不可分的常见的晶振21个问题解析
(由于时间原因,找不到转载出处,如果作者发现,请留言,添加转载出处)在初学51单片机的时候,总是伴随很多有关与晶振的问题,其实晶振就是如同人的心脏,是血液的是脉搏,把单片机的晶振问题搞明白了,51单片机的其他问题迎刃而解……有关51单片机有关晶振的问题一并总结出来,希望对学51的童鞋来说能有帮助。一,为什么51单片机爱用11.0592MHZ晶振?其一:因为它能够准确地划分成时钟频率...转载 2018-11-12 11:32:25 · 995 阅读 · 0 评论 -
debian9.6使用VNC连接树莓派
之前archlinux,现在转战到debian。详细的我的博文树莓派3B+通过VNC和笔记本共享屏幕关于树莓派开启vnc的,写的比较清楚,这里就不说了,看debian这边。下载vnc客户端:https://www.realvnc.com/en/connect/download/viewer/下载这个:验证下载包:guoyanzhang@bogon:~/下载$ sha256...原创 2019-01-15 23:00:24 · 1285 阅读 · 0 评论 -
debian9.6使用ssh登录树莓派
之前在archlinux上玩树莓派,结果archlinux老是死机,让我很是无语,所以我转战到debian。之前看了我的博文树莓派3代B+型贴散热片,连接wifi,并开启ssh服务(不需要任何windows工具) ,在里面我设置了树莓派的静态ip为192.168.43.200,同样的,我让我的笔记本和树莓派都连接我手机的热点,结果是成功了。guoyanzhang@bogon:~$ ssh...原创 2019-01-15 12:59:08 · 2783 阅读 · 4 评论 -
树莓派安装系统的两种方法
本来是想采用pxe的方式给树莓派安装一个系统,但是目前树莓派的网卡还不支持pxe,所以这种方式作罢,倒是找到一种比较小白的安装方式,即noobs方式安装(本文中是方法2)。 两种方法的硬件区别就是,安装过程中是否需要自己的屏幕,需要屏幕的自然需要操作界面了,所以需要键盘鼠标,但是是不是触摸屏就不需要就不知道了,我这边没有亲自测试过方法2,只是为了记录一下,将来需要的话再用。 两种方...原创 2019-01-03 10:11:53 · 2969 阅读 · 0 评论 -
树莓派3B+通过VNC和笔记本共享屏幕
有错的地方,或者不同意见的,烦请留言,或者发邮箱。邮箱地址:1746902011@qq.com—————————————————————————————————还是在我的树莓派安装的基础上,因为没有买屏,所以就使用我笔记本的屏。前提:除了我的安装博文上提到的,现在什么都不需要,给树莓派上电就行;另外,我笔记本系统是arch linux,参考请注意。两种方法,第一种是失败...原创 2018-12-27 22:24:56 · 3512 阅读 · 0 评论 -
树莓派3B+更换软件源
有错的地方,或者不同意见的,烦请留言,或者发邮箱。邮箱地址:1746902011@qq.com—————————————————————————————————更新源前先看看你安装的是不是raspbian这个系统,但是修改的地方还是这个两个地方,但是里面的信息有点差异。我依旧使用的是我的树莓派的安装 这篇博文里提到的树莓派系统,是stretch,不是jessie,jessie(de...原创 2018-12-27 17:09:41 · 2253 阅读 · 0 评论 -
树莓派3代B+型贴散热片,连接wifi,并开启ssh服务(不需要任何windows工具)
有错的地方,或者不同意见的,烦请留言,或者发邮箱。邮箱地址:1746902011@qq.com—————————————————————————————————硬件:我所买的是亚博智能科技的树莓派3B+E14新款-基础套餐。软件:a,树莓派系统系统下载官网:https://www.raspberrypi.org/downloads/raspbian/我这边截图不方便...原创 2018-12-27 13:27:26 · 5251 阅读 · 0 评论 -
(sqlite3学习1)linux下C语言编程操作sqlite数据库(含交叉编译)
交叉编译sqlite3:#./configure CC=aarch64-linux-gnu-gcc#make将库拷贝到代码执行环境:====================================================以下是转载:linux下C语言编程操作数据库(sqlite3)置顶 zouleideboke 2017-06-23 17:25:1...转载 2020-04-28 14:41:47 · 600 阅读 · 0 评论 -
Linux C/C++获取程序运行时间
获取当前时间戳数据,程序中不同位置时间数据做差即可得到程序运行时间。1 实现基础:int gettimeofday(struct timeval *tv, struct timezone *tz);12 通过在Linux 命令窗:Man gettimeofday;gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中。3 参数:...转载 2020-04-22 09:47:29 · 1279 阅读 · 0 评论 -
linux环境下编译c语言笔记
只是为了做笔记,自己学习,不为其它。因为是不断学习,所以将持续更新。=================================1,gcc编译的时候,用-l(小写)比如: gcc -ltest,其中test在/usr/local/lib/或者/usr/lib/下有test.so,即动态库,也就是说编译时用-l后面紧跟着的是动态库,编译链接时用到,执行时也要用到。...原创 2020-04-21 16:28:51 · 223 阅读 · 0 评论 -
嵌入式:用tftp的方式在迅为4412开发板与虚拟机之间传递文件方法
1,前言之前是用tf卡拷贝的,但是实在是太麻烦了,调试程序,来回折腾,所以就想通过网络的方式。因为我给我板子上烧写的是qte的系统,我看了一下,该系统上有tftp客户端(busybox的tftp工具,命令行tab键可以补全),所以就用tftp了。硬件连接就是网线连接(通信的),串口线(充当板子桌面的)。2,配置网络主机ip:虚拟机ip:gyz@debian:~$ ...原创 2019-03-06 17:02:52 · 767 阅读 · 0 评论 -
嵌入式:在4412开发板上执行用非附带的交叉编译器编译出来的helloworld程序
这里不详细说明,可参阅我的博文(用和迅为4412开发板附带的不一样的系统和交叉编译器等编写hello驱动模块)。1,安装的交叉编译器是:gyz@debian:~/der$ dpkg -l gcc-arm-linux-gnueabiii gcc-arm-linux- 4:6.3.0-4 amd64 GNU C compiler for the armel arch...原创 2019-03-03 21:36:52 · 1120 阅读 · 1 评论 -
嵌入式:关于“cp : 无法创建符号链接”的问题解决方法
问题:在拷贝内核源码的时候,发现“cp : 无法创建符号链接”,按理说,-a(等同于-dpr)选项是可以的,但是这里却不可以。gyz@debian:~/newkernel$ cp linux-4.20.13 /mnt/hgfs/share/ -acp: 无法创建符号链接'/mnt/hgfs/share/linux-4.20.13/Documentation/Changes': 不支持的操作...原创 2019-03-03 15:07:54 · 10024 阅读 · 5 评论 -
嵌入式:用和迅为4412开发板附带的不一样的系统和交叉编译器等编写hello驱动模块
1,介绍源于对debian的爱,虚拟机我使用最新的debian9.8,而且内核也不是原装的4.9,而是比较新的4.19,详细安装方式请参阅我的博文(debian9.6更换内核(最简单的命令方式)),主机系统我用的是win10企业版的64位系统,虚拟机平台是最新的vmware player15。交叉编译器是我用命令安装的,详细内容请参阅我的博文(debian9.6命令安装交叉编译器)。由...原创 2019-03-02 22:00:25 · 3027 阅读 · 1 评论 -
嵌入式:内核驱动模块hello程序
我的系统:gyz@debian:~/der$ uname -aLinux debian 4.19.0-0.bpo.2-amd64 #1 SMP Debian 4.19.16-1~bpo9+1 (2019-02-07) x86_64 GNU/Linuxgyz@debian:~/der$ lsb_release -aNo LSB modules are available.Distrib...原创 2019-03-02 16:20:31 · 1010 阅读 · 1 评论 -
嵌入式:关于/lib/modules/$(shell uname -r)下没有build目录的解决方法
问题发现:就是在写内核驱动模块的makefile时,查了很多人的makefile都要用到/lib/modules/$(shell uname -r)/build这句,就是内核源码,但是我发现我的系统上没有build这个目录,如下所示,然后安装了很多其他东西,还是没有。问题解决:安装linux-headers就好了。因为我是debian9.8的系统,默认是4.9的内核,结果我自己...原创 2019-03-02 15:30:59 · 10874 阅读 · 1 评论 -
嵌入式:解压时出现“cannot change ownership”问题的解决方案
问题发现:用tar -zxvf 解压文件的时候发现如下问题“cannot change ownership to uid 0”。问题出现原因:解压文件本来要求解压到的分区,格式要求是ext的,但是解压时,确实其他的格式,比如fat32的,就会报这个错。可以使用df -T看看分区格式,如下:gyz@debian:~/newkernel/linux-4.20.13$ df -T...原创 2019-03-01 23:35:05 · 6478 阅读 · 0 评论 -
嵌入式:迅为4412的板子和windows10主机ping通的方法
我的板子是迅为4412的精英版,scp 1G内存/8G emmc的配置。硬件连接:1,用一根网线连接主机和板子;2,用串口线转usb线连接主机和板子。具体步骤:1,给板子烧录一个QT系统(光盘资料为:H:\iTOP-4412精英版光盘资料\04_镜像_QT文件系统)2,查看主机的有线网卡ip,记住:一定是有线网卡的ip,因为网线连接的是有线网卡,如下:3,打开...原创 2019-02-27 23:48:37 · 3185 阅读 · 1 评论 -
嵌入式:给4412开发板的emmc上烧写QT系统
系统:主机:64位windows10主机,vmware player15虚拟机,64位debian9.8宿主机。开发板:迅为4412开发板,核心板是scp 1G的。--------------------------------------------------------------------步骤:1,硬件连接,串口线连接电脑主机和开发板即可,并设置拨码开关为TF卡启...原创 2019-02-24 00:23:39 · 2482 阅读 · 1 评论 -
debian9.6使用安装包安装交叉编译器
1,卸载因为之前我用命令安装过交叉编译器(debian9.6命令安装交叉编译器),所以这里先卸载一下:guoyanzhang@bogon:~/test$ sudo apt-get remove --purge arm-linux-gnueabi*2,下载安装包网址:http://www.arm9.net/download.asp3,解压guoyanzhang@bogon...原创 2019-01-16 16:32:25 · 1397 阅读 · 0 评论 -
debian9.6命令安装交叉编译器
1,搜索guoyanzhang@bogon:~$ apt-cache search gcc-arm-linux-gnueabi*gcc-arm-linux-gnueabi - GNU C compiler for the armel architecturegcc-arm-linux-gnueabihf - GNU C compiler for the armhf architectur...原创 2019-01-16 15:27:42 · 2966 阅读 · 0 评论 -
debian9.6上安装类似于windows上的串口工具
1,搜索guoyanzhang@bogon:~$ apt-cache search cutecomcutecom - Graphical serial terminal, like minicomcutecom图形化的串口终端,有点像minicom,minicom也是linux上的一个串口工具,如果操作交换机会好一点,如果是调试单片机等用cutecom,毕竟它和我们在windows上的...原创 2019-01-16 14:09:56 · 1650 阅读 · 0 评论 -
debian9安装busybox,并制作根文件系统(2)
3,制作根文件系统在上文debian9安装busybox,并制作根文件系统(1)中输入make install命令进行安装,busybox会自动将rootfs根文件系统安装到之前设置的目录下,之前我设置的是/home/guoyanzhang/rootfs,进入之后,##ls -ldrwxr-xr-x 2 guoyanzhang guoyanzhang 4096 11月 6 12:36...原创 2018-11-06 12:43:53 · 1305 阅读 · 0 评论 -
debian9安装busybox,并制作根文件系统(1)
BusyBox 是很多标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet;有些人将 BusyBox 称为 Linux 工具里的“瑞士军刀”。BusyBox 揭露了这样一个事实:很多标准 Linux 工具都可以共享很多共同的元素。例如,很多基于文件的...原创 2018-11-05 17:02:41 · 1686 阅读 · 0 评论 -
嵌入式常见面试题总结(11)
102,file_operations是什么?答:linux驱动程序中最重要的涉及3个重要的内核数据结构,分别为file_operations,file和inode。在linux中inode结构用于表示文件,而file结构则表示打开的文件的描述,因为对于单个文件而言可能会有许多个表示打开的文件的描述符,因而就可能会的对应有多个file结构,但是都指向单个inode结构。在系统内部,I/...原创 2018-11-09 09:44:05 · 1966 阅读 · 0 评论 -
嵌入式常见面试题总结(10)
90,宏和函数的优缺点?答:不同点:1,宏做的是简单的字符串的替换,而函数是参数的传递,参数是有数据类型的;2,宏在编译之前进行(先用宏替换宏名,再进行编译),而函数是在编译之后执行才调用的;3,宏的参数替换是直接替换的,不经过任何计算,而函数调用时将形参的值传给形参;4,宏的参数是不占内存空间的,因为只做字符串的替换,而函数调用时参数之间的传递,所以占用内存;函数调用需要...原创 2018-11-09 09:43:25 · 1135 阅读 · 0 评论 -
嵌入式常见面试题总结(9)
75,三次握手,四次挥手的原理?答:三次握手:client请求连接;server同意连接;client收到同意回复;四次挥手:client请求发送关闭;server同意client发送关闭;server请求发送关闭;client同意server发送关闭。为什么握手三次,而是挥手四次?因为当Server端收到Client端的SYN连接请求报文后,可以直接发...原创 2018-11-08 10:01:52 · 997 阅读 · 0 评论 -
嵌入式常见面试题总结(8)
66,Linux中引入模块机制有什么好处?答:首先,模块是预先注册自己以便服务于将来的某个请求,然后他的初始化函数就立即结束。换句话说,模块初始化函数的任务就是为以后调用函数预先作准备。好处:1) 应用程序在退出时,可以不管资源的释放或者其他的清除工作,但是模块的退出函数却必须仔细此撤销初始化函数所作的一切。2) 该机制有助于缩短模块的开发周期。即:注册和卸载都很灵活方便。67,copy_...原创 2018-11-08 09:57:26 · 818 阅读 · 0 评论 -
嵌入式常见面试题总结(7)
56,platform总线设备及总线设备如何编写?答:platform总线是内核注册好的用于管理设备及驱动的一种模式。其总线对应的类型即使,struct bus_type.总线实现好了匹配规则,内核对于往platform总线上注册的设备及驱动对应的类型做了抽象。参考:https://blog.csdn.net/u011164819/article/details/49966493...原创 2018-11-08 09:56:02 · 1090 阅读 · 0 评论 -
嵌入式常见面试题总结(6)
50,如何编写一个LINUX驱动? 答:一.在系统的资源文件代码中定义platform_device,里面填写对应设备的外设IO起始地址,地址长度,中断,DMA资源等信息资源信息,并把资源信息添加到系统启动初始化流程里面;二. 通过module_init(xxx_init)和moule_exit(xxx_init)定义驱动入口和出口函数;三.写出模块加载xxx_init()和退出的实际处理...原创 2018-11-08 09:50:22 · 1040 阅读 · 0 评论 -
嵌入式常见面试题总结(5)
35,什么是GPIO?答:general purpose input/output GPIO是相对于芯片本身而言的,如某个管脚是芯片的GPIO脚,则该脚可作为输入或输出高或低电平使用,当然某个脚具有复用的功能,即可做GPIO也可做其他用途。 也就是说你可以把这些引脚拿来用作任何一般用途的输入输出,例如用一根引脚连到led的一极来控制它的亮灭,也可以用一根(一些)引脚连到一个传感器上以获得该...原创 2018-11-08 09:44:32 · 1045 阅读 · 1 评论 -
嵌入式常见面试题总结(4)
24,IRQ和FIQ有什么区别,在CPU里面是是怎么做的?答:快速中断请求(Fast Interrupt Request,FIQ)中断控制器去中断ARM核心,可以选择fiq和irq两种方式:irq发生时,ARM处于irq模式。在irq模式期间,不可以再次被irq中断打断,也就是不能嵌套;但是可以被fiq打断;fiq发生时,ARM处于fiq模式,在fiq模式期间,不可以再次被fiq中...原创 2018-11-08 09:40:28 · 1497 阅读 · 0 评论 -
嵌入式常见面试题总结(3)
13,linux中断的响应执行流程?中断的申请及何时执行(何时执行中断处理函数)?答:参考:https://blog.csdn.net/pandy_gao/article/details/793097251,中断初始化流程;2,中断注册流程;3,中断的处理流程。参考:https://blog.csdn.net/yimu13/article/details/680395714...原创 2018-11-08 09:39:15 · 902 阅读 · 0 评论 -
嵌入式常见面试题总结(2)
7,ioctl和unlock_ioctl有什么区别?答:ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下: int ioctl(int fd, ind cmd, …); 其中fd是用户程序打开设备时使用open函数返回的文件标示符,cmd是用户程序对设备的控制命令,至...原创 2018-11-08 09:37:42 · 976 阅读 · 0 评论 -
嵌入式常见面试题总结(1)
1,字符型驱动设备是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的文件?答:方式一(手动):mknod命令结合设备的主设备号和次设备号,可创建一个设备文件;方式二(自动):UDEV/MDEV自动创建设备文件的方式,UDEV/MDEV是运行在用户态的程序,可以动态管理设备文件,包括创建和删除设备文件,运行在用户态意味着系统要运行之后;方式三(自动):在系统启动...原创 2018-11-08 09:33:43 · 1481 阅读 · 0 评论 -
嵌入式:利用TF卡给4412开发板的emmc上烧写安卓系统
系统:主机:64位windows10主机,vmware player15虚拟机,64位debian9.8宿主机。开发板:迅为4412开发板,核心板是scp 1G的。步骤:1,有一个TF卡,至少得2G吧,我这里是8G的。2,将TF卡插入读卡器,再插入电脑,并且选择连接主机(即windows10),格式化一下,如果格式化不到空的u盘那么大,就用这个工具FormatTool,下载...原创 2019-02-23 16:37:19 · 3919 阅读 · 0 评论 -
嵌入式:采用fastboot方式给4412开发板的emmc上烧写安卓系统
我这板子是迅为的4412开发板,核心板封装是scp的,如何区分,如下:硬件连接:1,9针串口,估计是硬件的设计原因,这个板子的com2和电脑连接,我这个是笔记本,所以通过串口转usb连接的;2,OTG口,就是手机数据线一样的,一端连接电脑usb,一端连接板子的OTG口,这个还是不要用自带的ADB驱动了,自己下载一个驱动人生,让驱动人生给安装一个驱动。软件准备:以下资料都在光...原创 2019-02-23 13:18:28 · 1960 阅读 · 1 评论 -
嵌入式:windows10主机,vmware player15,debian9.8虚拟机,建立共享文件夹
现在我的主机,vm,虚拟机都已经安装好了。建立共享文件夹有关键两步:第一步:设置共享文件夹方法1:没有安装vmwaretools这个工具前这个时候,只能在虚拟机开机,宿主机没有开机的情况下,即如下:编辑虚拟机设置,里面有个”选项“,再里面有个共享文件夹,导入主机的共享路径,同时在下面会有显示,修改一下这个显示,改为share(可以用其他名字),因为这个share,就是宿主...原创 2019-02-21 13:02:07 · 2782 阅读 · 0 评论 -
嵌入式:利用busybox制作最小系统镜像(迅为4412开发板)
我的系统信息如下:guoyanzhang@bogon:~/bub$ lsb_release -aNo LSB modules are available.Distributor ID: DebianDescription: Debian GNU/Linux 9.7 (stretch)Release: 9.7Codename: stretchguoyanzhang@bogon:~/...原创 2019-02-19 20:02:51 · 2538 阅读 · 0 评论