摘要: 1、VSCode代码缩进快捷键 先选中需要缩进的代码块,然后使用下面的快捷键: Ctrl + [ 和 Ctrl + ] 可以实现代码的向左移动或者向右移动。 2、VSCode代码对齐快捷键 先选中需要代码对齐的代码块,然后使用下面的快捷键: Shift + Alt + F 可以实现代码的对齐。 阅读全文
posted @ 2020-05-23 14:43 liangliangge 阅读(36279) 评论(0) 推荐(4) 编辑
摘要: 1、前言 getevent工具能够在嵌入式终端设备上运行,并且能够提供嵌入式终端输入设备和Linux内核输入事件的实时转储关系,可以确保设备驱动程序报告各个输入设备的一系列预期功能并生成输入事件所需的信息流,关于getevent工具的使用方法,可以参考文章《Android系统getevent用法》, 阅读全文
posted @ 2020-05-20 09:55 liangliangge 阅读(1545) 评论(0) 推荐(0) 编辑
摘要: 在使用VSCode软件编写C/C++语言代码的时候,当代码中出现#ifdef的区域将会变暗,非常影响正常使用,如下: 可以通过打开C/C++拓展插件进行配置,需要打开的设置按钮如下: 将C_Cpp:Dim Inactive Regions选项进行取消勾选,如下所示: 或者,还可以通过修改settin 阅读全文
posted @ 2020-05-20 09:06 liangliangge 阅读(6257) 评论(1) 推荐(1) 编辑
摘要: 1、前言 大端模式(Big-Endian),是指数据的高字节存储在内存的低地址中,而数据的低字节存储在内存的高地址中,这样的存储模式有点类似把数据当作字符串顺序处理,地址从小向大增加,而数据从高位到低位存放,通常和我们的阅读习惯一致。 小端模式(Little-Endian),是指数据的高字节存储在内 阅读全文
posted @ 2020-05-17 12:21 liangliangge 阅读(1183) 评论(0) 推荐(1) 编辑
摘要: 1、问题现象 在Linux系统中使用./make.sh运行了一个简单的bash脚本,运行失败,并报错提示如下所示: 2、错误原因: 主要是应用bash后面多了'\r'字符的原因,在Linux终端下,输出'\r'会什么都不显示,只是把光标移到行首,因此,终端虽然输出了"/usr/bin/env bas 阅读全文
posted @ 2020-05-14 15:07 liangliangge 阅读(9217) 评论(0) 推荐(1) 编辑
摘要: 1、前言 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器和客户端程序构成,通过构建samba服务器,能实现局域网内的资源共享服务。 关于如何在Linux服务器上搭建安装samba服务器,可以参考下面链接: https://www.cnblogs.com/Cqlismy 阅读全文
posted @ 2020-05-14 10:59 liangliangge 阅读(1313) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在嵌入式Linux内核启动的log输出的时候,通常会有相应的时间戳,但是有的嵌入式开发板厂商在移植和适配Linux内核时,并没有进行配置该功能,本文将简单介绍如何修改defconfig配置,启用Linux kernel启动log显示时间戳的功能。 2、添加时间戳显示 宿主机:Ubuntu 阅读全文
posted @ 2020-05-13 11:28 liangliangge 阅读(2416) 评论(0) 推荐(0) 编辑
摘要: 在使用Ubuntu16.04 64位系统交叉编译Linux内核时提示如下错误: 出现错误的原因主要是下面: "mkimage" command not found - U-Boot images will not be built 在交叉编译uImage镜像的时候需要用到"mkimage"工具,因此 阅读全文
posted @ 2020-05-08 10:15 liangliangge 阅读(820) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在Ubuntu系统上使用"apt-get install"进行软件安装更新的时候,由于使用的源是国外的,网络速度非常缓慢,本文记录在Ubuntu系统上进行更换国内源。 2、Ubuntu换源 首先需要将原始的源文件进行备份,命令行如下: $ sudo cp /etc/apt/sources. 阅读全文
posted @ 2020-05-08 08:59 liangliangge 阅读(10005) 评论(0) 推荐(0) 编辑
摘要: 1、前言 Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用的开发,Java编程语言的风格十分接近C++语言,继承了C++语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代,移除了C++中的运算符重载和多重继承特性,用接口 阅读全文
posted @ 2020-05-06 20:34 liangliangge 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在前面的文章《GPIO按键输入—基于I.MX6UL嵌入式SoC》中,链接如下: https://www.cnblogs.com/Cqlismy/p/12500760.html 实现了GPIO的通用输入功能,还介绍了GPIO实现按键功能的实例,在该实例中,按键是否按下,是通过不断读取GPIO 阅读全文
posted @ 2020-04-25 23:50 liangliangge 阅读(1106) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在C语言中,可以使用rand()函数来产生一个随机数,但是这并不是真正意义上的随机数,是一个伪随机数,是通过一个数,也就是种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态分布,从而相当于产生了随机数,当计算机正常开机后,种子的值确定了,C语言中的srand()函 阅读全文
posted @ 2020-04-21 20:08 liangliangge 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 1、前言 C语言中的typedef是一个关键字,提供了一种声明标识符为类型别名的方式,能用来替换复杂的类型名,如果一个声明以typedef为存储类指定符,则其中每个声明符都会定义一个标识符为指定类型的别名,typedef声明不能为static或者extern,它不引入另一种类型,只会建立已经存在类型 阅读全文
posted @ 2020-04-19 22:16 liangliangge 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 1、基本概念 C程序是包含声明的一系列文本文件,通常是包含头文件和源文件,源文件的拓展名为.c,它们能经过翻译变成可执行程序,在操作系统调用其主函数时被执行,除非它自己就是OS程序或者其它独立程序,这时候入口是由编译器所决定。 2、编程基本步骤 C是一种编译性的语言,编写程序的过程主要分解为7个步骤 阅读全文
posted @ 2020-04-12 11:18 liangliangge 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 1、ps命令 在Linux系统中,ps命令能用于报告当前系统的进程状态,通过搭配kill命令能随时中断或者删除不必要的程序,ps命令是最基本也是最强大的进程查看命令,使用该命令能确定哪些进程是处于正在运行和运行的状态、进程是否结束、进程是否僵死、哪些进程占用了过多资源等。 (1)命令语法 ps (选 阅读全文
posted @ 2020-04-10 19:59 liangliangge 阅读(982) 评论(0) 推荐(0) 编辑
摘要: 1、前言 Android系统中的getevent工具能够在终端设备上运行,并且能够提供关于Android终端输入设备和Linux内核输入事件的实时转储关系,可以确保设备驱动程序报告各个输入设备的一系列预期功能并生成输入事件所需的信息流。 该工具的源码路径为: AOSP/system/core/too 阅读全文
posted @ 2020-04-03 14:18 liangliangge 阅读(4077) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在Android终端设备的开发过程中,有时候我们需要为Android系统中预装APP,本文将介绍如何在Android源码中进行系统预装APP。 2、Android系统预装APP 首先,需要准备好预装的APP文件,以Bing浏览器为例,apk文件下载链接如下: https://www.app 阅读全文
posted @ 2020-03-27 10:00 liangliangge 阅读(2182) 评论(0) 推荐(0) 编辑
摘要: 1、前言 一般情况下,在进行Android系统开发调试的时候,都是使用Mico USB接口的adb工具进行调试,方便简单,除了能使用Mico USB进行数据流传输以外,还能使用网络进行adb调试。 2、网络adb调试开启 (1)Mico USB数据线转网络 //查看当前的Android终端设备 # 阅读全文
posted @ 2020-03-24 17:33 liangliangge 阅读(2168) 评论(0) 推荐(0) 编辑
摘要: 1、前言 中断系统是嵌入式处理器的重要组成部分,实时控制、异常自动处理、SoC与外围设备间的数据传输往往需要采用中断系统,中断系统的应用能够大大提高处理器的效率。中断是实现多道程序设计的必要条件,它是处理器对系统发生的某个事件作出的一种反应,引起中断的事件叫做中断源,中断源向处理器提出处理的请求称为 阅读全文
posted @ 2020-03-22 22:52 liangliangge 阅读(3919) 评论(2) 推荐(2) 编辑
摘要: 1、前言 在前面的文章《C语言裸机GPIO控制—基于I.MX6UL嵌入式SoC》中,链接如下: https://www.cnblogs.com/Cqlismy/p/12445576.html 实现了I.MX6UL嵌入式SoC中通用输入/输出接口外设的输出功能,我们都知道I.MX6UL芯片上的IO口除 阅读全文
posted @ 2020-03-15 22:37 liangliangge 阅读(833) 评论(0) 推荐(0) 编辑
摘要: 1、前言 NXP官方对I.MX6U系列的嵌入式SoC编写了相关的SDK包,类似于STM32开发使用的STD库或者HAL库,里面包含了I.MX6U评估板的许多测试例程,以及芯片外设的寄存器定义,对于这些相关的外设寄存器定义文件,在对I.MX6UL进行ARM裸机开发时,可以直接移植过来使用。 2、移植S 阅读全文
posted @ 2020-03-15 22:34 liangliangge 阅读(2406) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在前面的文章《汇编裸机GPIO控制—基于I.MX6UL嵌入式SoC》中,链接如下: https://www.cnblogs.com/Cqlismy/p/12445395.html 描述了I.MX6UL这款SoC中IOMUX控制器复用GPIO的基本机制以及GPIO的控制原理,最后使用了汇编代 阅读全文
posted @ 2020-03-08 22:36 liangliangge 阅读(700) 评论(0) 推荐(1) 编辑
摘要: 1、前言 GPIO的全称为General Purpose Input/Output,也就是通用输入/输出接口,它是嵌入式SoC上最基本、最常用的外设,在我们开始接触一款新的嵌入式芯片的时候,首先需要了解和使用的就是GPIO,就好比我们编程的第一个程序"Hello World"一样。 GPIO通用输入 阅读全文
posted @ 2020-03-08 22:13 liangliangge 阅读(820) 评论(0) 推荐(0) 编辑
摘要: 1、前言 NXP家的I.MX6U系列的SoC支持多种启动方式以及启动设备,使用该系列SoC的用户可以根据自己的实际情况,选择合适的启动方式和启动设备,例如,可以从Nnad Flash、eMMC和SDCard等不同设备中启动,从不同的启动设备中启动,启动要求一般都不同。 2、I.MX6UL启动方式 以 阅读全文
posted @ 2020-03-01 22:56 liangliangge 阅读(1784) 评论(0) 推荐(0) 编辑
摘要: 1、前言 汇编语言是一种低级编程语言,通常是一对一的汇编语言指令(助记符)与由核心执行的实际二进制操作码之间的关系,在高度优化的情况下,汇编代码可能会很有用,在编写编译器或者无法直接使用底层功能的情况下,在C中添加汇编代码是必需的,部分SoC的启动代码、设备驱动程序或者操作系统开发也可能需要汇编代码 阅读全文
posted @ 2020-02-29 19:36 liangliangge 阅读(3951) 评论(0) 推荐(0) 编辑
摘要: 1、前言 ARM Cortex-A7 MPCore架构非常庞大和复杂,本文仅仅是记录一些ARM架构相关的基础知识,以便于后续的ARM汇编学习,对于更多ARM架构的相关知识,可以去ARM官网下载相关的文档进行研究。 2、ARM Cortex-A7 MPCore简介 ARM Cortex-A7 MPco 阅读全文
posted @ 2020-02-29 12:27 liangliangge 阅读(3384) 评论(0) 推荐(0) 编辑
摘要: 1、前言 MfgTools软件工具是NXP官方进行提供的用于I.MX系列的SoC进行系统烧写的一个软件,能在Windows系统上使用,通过USB OTG接口完成系统烧写,一般在开发板进行量产的时候进行使用,能提高系统的烧写效率,当然,肯定也能在系统调试时使用,对于该软件的获取,直接去NXP官方网站上 阅读全文
posted @ 2020-02-21 17:20 liangliangge 阅读(5490) 评论(0) 推荐(1) 编辑
摘要: 1、前言 Com-P6UL是盈鹏飞科技有限公司基于NXP原厂I.MX6UL芯片生产研发的核心板,本文将对CoM-P6UL适配NXP的基于Linux4.1.15版本的kernel板级源码的过程进行介绍。 2、开发环境 目标板:CoM-P6UL(RAM:256MB,Nand Flash:256MB) 主 阅读全文
posted @ 2020-02-20 17:47 liangliangge 阅读(1049) 评论(0) 推荐(0) 编辑
摘要: 1、fdisk命令 在Linux系统中,fdisk命令非常强大,能用于观察硬盘设备的使用情况,还能用于对硬盘进行分区,它采用了传统的问答式界面,使用比较方便。 (1)语法 fdisk命令的语法如下: fdisk (选项) (参数) (2)常用选项 -b <分区大小>:用于指定每个分区的大小; -l: 阅读全文
posted @ 2020-02-19 15:39 liangliangge 阅读(2594) 评论(0) 推荐(0) 编辑
摘要: 1、前言 Uboot启动后,会进入到一个倒计时,在倒计时结束之前,如果此时我们按下键盘的回车键,将进入到uboot的命令行模式,有点类似Linux系统终端模式,如果没有按下回车键的话,将直接启动Linux内核,本篇文章将介绍uboot中的一些常用命令,熟悉这些命令后,以后在适配调试uboot的时候会 阅读全文
posted @ 2020-01-20 00:19 liangliangge 阅读(9403) 评论(2) 推荐(4) 编辑
摘要: 1、前言 在前面的文章《Uboot启动流程分析(六)》中,链接如下: https://www.cnblogs.com/Cqlismy/p/12194641.html 已经对board_init_r()函数进行了简单的流程分析,该函数的调用过程和board_init_f()函数类似,在init_seq 阅读全文
posted @ 2020-01-19 14:32 liangliangge 阅读(543) 评论(1) 推荐(0) 编辑
摘要: 1、前言 AX88772C是一款USB转以太网控制芯片,并且支持Microsoft AOAC(Always On Always Connected),可为各类应用增加低价、小封装、高效能、高集成度和即插即用的快速以太网联网特性,适用于电脑、游戏机、智能家电及任何具体标准USB端口的嵌入式系统,本文将 阅读全文
posted @ 2020-01-15 19:50 liangliangge 阅读(2186) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在前面的文章《Uboot启动流程分析(三)》和《Uboot启动流程分析(四)》,链接分别如下: https://www.cnblogs.com/Cqlismy/p/12006287.html https://www.cnblogs.com/Cqlismy/p/12147411.html 已 阅读全文
posted @ 2020-01-14 23:42 liangliangge 阅读(1301) 评论(0) 推荐(0) 编辑
摘要: 1、前言 假设当前已经git clone了一个仓库项目,并从项目仓库中获得了所有文件的工作拷贝,那么,如何对这些文件进行修改,完成了一定阶段的修改后,提交本次更新到仓库? 工作目录下的每个文件都处于两种状态:未跟踪和已跟踪状态,已跟踪的文件是指哪些已经纳入版本控制的文件,上一次快照中有这些文件的记录 阅读全文
posted @ 2020-01-14 17:29 liangliangge 阅读(1274) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在嵌入式开发中,我们有时候会需要使用AT指令对AT端口进行操作,例如,在MSM8953的Android平台中,有时候需要使用AT指令对modem进行读写操作,本质上,就是串口设备的读写操作,本文将介绍,如何使用ADB工具,对AT端口进行读写操作。 2、AT指令操作方法 使用ADB登入到An 阅读全文
posted @ 2020-01-08 18:15 liangliangge 阅读(1722) 评论(1) 推荐(0) 编辑
摘要: 1、前言 在前面的文章《Uboot启动流程分析(四)》,链接如下: https://www.cnblogs.com/Cqlismy/p/12147411.html 已经对board_init_f() 函数作出了简单的分析,该函数对一些早期的外设进行了初始化,例如调试串口,并填充了gd_t结构体中的成 阅读全文
posted @ 2020-01-05 14:34 liangliangge 阅读(1512) 评论(2) 推荐(0) 编辑
摘要: 1、前言 在Android系统中使用启动脚本.rc文件,可以在系统的初始化过程中进行一些简单的初始化操作,这些初始化启动脚本.rc文件直接被安装到目标板的根文件系统中,例如,init.rc启动脚本被init可执行程序进行解析,本文将简单介绍如何在MSM8953平台的Android系统中添加我们自己的 阅读全文
posted @ 2020-01-04 17:22 liangliangge 阅读(2881) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在前面的文章《Uboot启动流程分析(三)》中,链接如下: https://www.cnblogs.com/Cqlismy/p/12006287.html 已经对init_sequence_f前半部分函数进行了简单分析,前半部分主要是对调试串口终端进行了初始化,以及输出了一些必要的字符串, 阅读全文
posted @ 2020-01-03 23:16 liangliangge 阅读(2233) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在Linux Kernel 2.6的时代,内核引入了一个新的安全系统,用来提供访问控制安全策略的机制,这个安全系统就是SELinux,全称为Security Enhanced Linux,由NSA贡献的,它为Linux内核子系统引入了一个健壮的强制控制访问架构 。 Linux系统上传统的访 阅读全文
posted @ 2020-01-03 10:15 liangliangge 阅读(725) 评论(0) 推荐(0) 编辑
摘要: 1、前言 在嵌入式开发中,我们往往会遇到一些USB的相关设备调试,本文将简单总结一下在一些常见的嵌入式Linux设备下,我们如何去查看USB设备的相关信息。 2、通过lsusb命令查看 在Linux系统中,lsusb命令用于显示本设备的的USB设备列表,以及USB设备的详细信息。 (1)命令语法 该 阅读全文
posted @ 2020-01-02 19:03 liangliangge 阅读(1032) 评论(0) 推荐(0) 编辑