自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

原创 基于i.mx6ull实现linux快速启动(1秒内)

在某些特殊场景下,需要快速启动linux,减少外围数据丢失。并可以快速响业务需求。本文介绍如何在imx6ull+qspi nor flash的前提下,实现1秒启动应用。未完待续。。。...

2019-08-07 23:33:59 2054 4

原创 重写bootloader实现freeRTOS与Linux双系统自由切换基于(i.mx6ull)

i.mx6ull是少有的官方支持FreeRTOS与linux双系统的芯片。因为处理器内核为Cortex-A7更偏向于应用处理器,所以官方主推linux系统。在某些特殊应用场景下,可能需要兼顾到低功耗与高性能。需求:(1)外部供电不足的情况下,进入低功耗模式,运行FreeRTOS,待机功耗做到1mA左右,不启用DDR。(2)在外部供电充足的情况下,进入高性能模式,运行linux。...

2019-08-07 23:30:13 3300 1

转载 Linux串口编程详解

串口本身,标准和硬件什么是串行通信什么是RS-232信号定义异步通讯什么是全双工和半双工什么是流控制什么是BREAK同步通讯用户看到的串口和用户空间的串口编程串口的设备文件打开串口打开文件的选项给端口上写数据从端口上读取数据关闭串口配置串口POSIX终端接口控制选项设置波特率设置字符大小设置奇偶校验设置硬件流控制本地设置选择经典输入选择原始输入输入选项设置输入奇偶校验选项设置软件流控制输出选项选择...

2018-04-17 17:42:47 516

转载 sysfs文件系统

sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用。该文件系统的目录层次结构严格按照内核的数据结构组织。除了二进制文件外(只有特殊场合才使用),sysfs文件内容均以ASCII格式保存,且一个文件只保存一个数据,另外,一个文件不可大于一个内存页(通常为4096字节)。sysfs提供一种机制,使得可以显式的描述内核对象、对象属性及对象间关系。sysfs有两组接口,...

2018-04-17 16:21:01 2364

原创 linux 查看进程状态

cat /proc/{PID}/statuswujun@wj-vBox:~$ cat /proc/18806/statusName: codeblocks                     /*进程的程序名*/State: S (sleeping)                   /*进程的状态信息,具体参见Tgid: 18806                          /*线...

2018-03-28 11:35:18 4356

转载 Linux中ps命令详解

原文地址:http://blog.csdn.net/x_i_y_u_e/article/details/38708481linux上进程有5种状态: [html] view plain copy1. 运行(正在运行或在运行队列中等待)   2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)   3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)   4. 僵死(...

2018-03-28 11:14:03 2784

转载 ELF与BIN文件的生成和转换

Gcc 编译出来的是ELF文件。通常gcc –o test test.c,生成的test文件就是ELF格式的,在linuxshell下输入 ./test就可以执行。Bin 文件是经过压缩的可执行文件,去掉ELF格式的东西。是直接的内存映像的表示。在系统没有加载操作系统的时候可以执行。elf(executable  and   link   format)文件里面包含了符号表,汇编等。BIN文件是将...

2018-03-23 12:05:12 12756 2

转载 为什么需要字节对齐?

文章最后附了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。  一、概念       对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。     二、为什么要字节对齐      需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的...

2018-03-13 10:39:35 810

转载 initramfs的使用方法

原文地址:http://www.cnblogs.com/pied/archive/2013/01/29/2880718.html这个是翻译来的,原文地址:http://www.landley.net/writing/rootfs-howto.html怎样使用initramfs 工作过程简述在2.6kernel启动时,它把rootfs作为它的第一个文件系统挂载(注意:这里的rootfs是真名!!!不...

2018-03-02 23:43:06 6512

转载 Linux CAN编程详解

原文博客地址  http://velep.com/archives/1181.html通过读这篇博客是我搜索can通讯以来讲解的最详细的一篇,还有其自己写的一刻关于can控制的程序都是非常棒的,Linux 系统中CAN 接口配置在 Linux 系统中, CAN 总线接口设备作为网络设备被系统进行统一管理。在控制台下, CAN 总线的配置和以太网的配置使用相同的命令。在控制台上输入命令:ifconf...

2018-03-02 23:26:49 378

转载 vim 配置选项解析

""""""""""""""""""""""""""""""""""""""""""&quo

2018-02-12 16:10:29 350

原创 linux stat 文件状态头文件定义

wujun@wj-vBox:~/freescale/linux-imx/include$ vi ./uapi/asm-generic/stat.h  1 #ifndef __ASM_GENERIC_STAT_H  2 #define __ASM_GENERIC_STAT_H  3   4 /*  5  * Everybody gets this wrong and has to stick wit...

2018-02-12 16:02:09 2362

转载 浅谈UDP 数据包长度,收包能力,丢包及进程结构选择

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127430.htm浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)[日期:2016-01-14]来源:Linux社区  作者:linuxbugUDP数据包长度UDP数据包的理论长度udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可...

2018-02-12 15:53:07 432

原创 linux errno defination

主要包含在下面三个文件中。./include/uapi/asm-generic/errno-base.h ./include/uapi/asm-generic/errno.h./include/linux/errno.h wujun@wj-vBox:~/freescale/linux-imx/include$ cat uapi/asm-generic/errno-base.h #ifndef _A...

2018-02-12 10:31:27 288

转载 linux下recv 、send阻塞、非阻塞区别和用法

非阻塞IO 和阻塞IO:       在网络编程中对于一个网络句柄会遇到阻塞IO 和非阻塞IO 的概念, 这里对于这两种socket 先做一下说明:       基本概念:              阻塞IO::                     socket 的阻塞模式意味着必须要做完IO 操作(包括错误)才会返回。              非阻塞IO::                ...

2018-02-12 10:20:28 1607

转载 PCB半孔(邮票孔)设计

原文链接http://www.dongeasy.com/hardware-design/pcb-design-guidelines/1918.html一、邮票孔是什么?如下图所示的即为邮票孔,不是在拼版时说的邮票孔,两者是不同的概念。二、邮票孔用在什么地方?邮票孔只要用在核心板上和模块上。如图所示:图1三、邮票孔的设计我们依照以下

2018-02-06 21:48:08 45726 2

转载 Linux的应用层定时器实现方法

转载:http://blog.csdn.net/lu_embedded/article/details/53080496 使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用 Linux 内部的三个定时器;另一个是用 sleep 或 usleep 函数让进程睡眠一段时间;其实,还有一个方法,那就是用

2018-02-01 23:56:47 1352

转载 linux tty通过VTIME VMIN实现阻塞与非阻塞接收

在串口设置中,有以下两个参数可以决定是否阻塞。在打开串口时不加O_NODELAY,可用下面的方法,来进行阻塞/非阻塞的设定 c_cc[VTIME] 非规范模式读取时的超时时间(单位:百毫秒),可以这么理解,从接收到后一个字节开始计时,如果超时,则退出READ c_cc[VMIN]  非规范模式读取时的最小字符数,设为0则为非阻塞,如果设为其它值则阻塞,直到读到到对应的数

2018-02-01 23:41:34 1175 1

转载 linux tty之termios 详解

一、数据成员termios 函数族提供了一个常规的终端接口,用于控制非同步通信端口。 这个结构包含了至少下列成员: tcflag_t c_iflag;      /* 输入模式 */tcflag_t c_oflag;      /* 输出模式 */tcflag_t c_cflag;      /* 控制模式 */tcflag_t c_lflag;      /* 本地模

2018-02-01 23:27:34 3053

转载 linux常用时间函数:time,gettimeofday,clock_gettime,ftime

time()提供了秒级的精确度  1、头文件   2、函数原型  time_t time(time_t * timer)   函数返回从TC1970-1-1 0:0:0开始到现在的秒数  用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或是标准时间。   #include   #i

2018-02-01 23:18:45 1546

转载 内存测试工具memtester使用详解

memtester的下载地址:http://pyropus.ca/software/memtester/  有源码安装包、deb包、rpm包等。源码已经编译好,在linux下只要make一下就好了。笔者要测试的是目标板的内存,所以要交叉编译,目标板为mips架构,所以要改变 Makefile,解压之后,目录下有这样两个文件:conf-cc、conf-ld打开conf-cc,

2018-01-29 18:08:24 13677

转载 USB OTG中ID脚解释

转载自:http://blog.163.com/jiansong_zhang/blog/static/993542802011528438745/1. 概要OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,充当USB Host,A-Device始终为总线 提供电力,ID悬空被称作为B-Device,充当USB Device,设备的USB

2018-01-29 18:00:25 12367

转载 linux中的strip命令简介

linux中的strip命令简介http://blog.csdn.net/stpeace/article/details/47090255还能这样转载,我也是醉了。这个命令是给应用瘦身的,是跟编译器有关的命令。还有另外一个命令objdump可以搭配使用。查看瘦身后的情况。

2018-01-26 14:14:39 480

转载 EC20 TCP/IP AT指令

1.介绍本模块嵌入一个TCP/IP栈。主机(即外接的控制器)可通过AT指令直接连接互联网。它可以减少对PPP和TCP/IP协议栈的依赖和最小化的消耗。本模块提供以下的套接字服务:TCP客户端,UDP客户端,TCP服务器和UDP服务器。1.1使用TCP/IP AT指令的步骤通过TCP/IP AT指令,主机可以配置PDP上下文,触发/吊销PDP上下文,开始/关闭套接字服务和发送/接收数据通过套接字服务

2018-01-20 16:14:50 29317 2

转载 linux tty设置详解

NAMEtermios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed - 获取和设置终端属性,行控制,获取和设置波特率SYNOPSIS 总览#include termios.

2018-01-20 16:09:35 5409

转载 深入理解学习Git工作流(git-workflow-tutorial)

本文作者:xirong个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解,于是我将这部分资料进行整理放到了github上,欢迎star查看最新更新内容, https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md

2017-12-31 18:13:46 268

转载 Notepad++选中行操作 快捷键 使用技巧

用Notepad++写代码,要是有一些重复的代码想copy一下,还真不容易,又得动用鼠标,巨烦人。。。。有木有简单的方法呢,确实还是有的不过也不算太好用。主要是应用键盘上的 Home 键 和 End 键。鼠标光标停留在一行的某处,按 Home 键光标会跳到行首,按End键光标会跳到行尾。鼠标光标停留在行尾,按 Shift + Home 选中一行。鼠标光标停留在行首,按 Shif

2017-12-31 10:31:52 8203

转载 JTAG接口针脚定义及含义,区分TRST和SRST

JTAG有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下。一、引脚定义Test Clock Input (TCK) -----强制要求1TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。Test

2017-12-29 10:56:38 39490

转载 Nand Flash数据存储单元的整体架构

http://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html简单说就是,常见的Nand Flash,内部只有一个chip,每个chip只有一个plane。而有些复杂的,容量更大的Nand Flash,内部有多个chip,每个chip有多个plane。

2017-12-26 23:30:09 3296

转载 JFFS2 文件系统的工作原理

1. 操作实现       当进行写入操作时,在块还未被填满之前,仍然按顺序进行写操作,系统从 freelist 取得一个新块,而且从新块的开始部分不断地进行写操作,一旦 freelist 大小不够时,系统将会触发 “碎片收集”功能回收废弃节点。        在介质上的每个 inode 节点都有一个 jffs2_inode_cache 结构用于存储其 inode 号、inode

2017-12-22 15:41:42 3355

转载 linux nand flash常用命令

使用命令前用cat /proc/mtd 查看一下mtdchar字符设备;或者用ls -l /dev/mtd*#cat /proc/mtddev:    size   erasesize  namemtd0: 00c00000 00020000 “ROOTFS”mtd1: 00200000 00020000 “BOOTLOADER”mtd2: 00200000 00020000

2017-12-20 12:30:56 3172

转载 Sed命令中含有转义字符的解决方法

在sed命令中有许多的字符都被转义,比如\ , $, ^,单双引号还有点号等等,因此使用sed命令进行字符串的匹配和修改的时候,字符串中如果含有转义字符,很多情况下不能直接用字符本身表示。这时候可以使用反斜杠加上转义字符的方法来输出含转义字符的字符串,但这一方法并不是对所有的转义字符都有用,过程也较复杂。下面一一说明:一般而言sed命令格式由三部分组成,sed + 功能选项 + 条件选项,

2017-12-20 07:44:02 19777

转载 Linux-4.4-x86_64 内核配置选项简介

Linux-4.4-x86_64 内核配置选项简介作者:金步国64-bit kernelCONFIG_64BIT编译64位内核.本文仅讲述x86_64(AMD64)平台的内核编译,所以这个是必选项.General setup常规设置Cross-compiler tool prefixCONFIG_CROSS_COMPILE交叉编译

2017-12-19 10:39:01 5676

转载 Cramfs、JFFS2、YAFFS2的全面对比

由于嵌入式系统自身存在一些特殊要求,使得一些传统的文件系统(如FAT、EXT2等) 并不十分适合。专用的嵌入式文件系统应有一些自身的特性,如文件系统面对的储存介质特殊性、文件系统应具有的跨平台的安全性,以及整个系统的即时性等。本文介绍了3种源码开放的嵌入式文件系统Cramfs、JFFS2、YAFFS2,详细分析比较了这3种文件系统的主要性能,并根据分析结果指出了各自的适用领域。      

2017-12-13 16:05:23 688

转载 浅析 Linux 初始化 init 系统 systemd

Systemd 的简介和特点Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。systemd 和 ubuntu 的 upstart 是竞争对手,预计会取代 UpStart,实际上在作者写作本文时,已经有消息称 Ubuntu 也将采用 systemd 作为其标准的系统初始化系统。Systemd

2017-12-07 06:59:19 2267

转载 基于 SquashFS 构建 Linux 可读写文件系统

嵌入式 Linux 启动过程本文所描述的的 Linux Image 由 BootLoader、kernel、initrd、rootfs 组成,它们共同存在于一个可以启动的存储设备中(本文以 USB 为例)。组成架构如下:图 1. 可启动 linux 镜像文件结构各个模块的作用如下:Boot Loader:由 BIOS 加载,用于将后续的 Kernel 和 i

2017-12-07 06:55:56 734

原创 STM32F429I-DISCO ucLinux 开发环境搭建

1. 前言前段时间刚刚体验了RT1050的uclinux,emcraft对uclinux支持力度很大,而且linux官方源码已经支持STM32的MCU了。所以是时候了解一下uclinux的使用方法了。用linux最大的优势就在于丰富的代码资源。同时linux也代表了丰富的外围驱动,工程师可以不用花费太多精力在调试驱动上面。抽屉里恰好有一块STM32F429 Discovery的开发

2017-11-20 11:58:19 11520 16

转载 开源TTS(Text To Speah)的选择和使用

TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。TTS是语音合成应用的一种,它将文件内容或应用上的文字等,如应用菜单或者网页,转换成自然语音输出。TTS不仅能帮助有视觉障碍的人阅读计算机上的信息,更能增加文本文档的可读性。一、比较流行的开源TTS项目以下信息来自:TTS open source project

2017-11-16 17:00:33 6088

原创 RT1050(地上最强Cortex-M7) uclinux初体验

emcraft在今年十月份就已经做好了rt1050的uclinux bsp。速度真快。emcraft对uclinux的支持力度很大,我觉得linux在进一步占领嵌入式领域,侵占MCU平台。因为在官方linux的发布版本里面已经有了STM32的源代码。十月初我们拿到了MIMXRT1050-EVK: i.MX RT1050 Evaluation Kit,下载了emcraft的官方img试了

2017-11-16 10:37:55 24127 9

转载 eMMC之分区管理、总线协议和工作模式(推荐)

http://blog.csdn.net/u013686019/article/details/66472291一、eMMC 简介eMMC 是 embedded MultiMediaCard 的简称。MultiMediaCard,即MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。

2017-10-26 15:35:15 4082

NXP官网IMX6ULL EVK原理图和PCB源文件

NXP官网IMX6ULL EVK原理图和PCB源文件,非常具有参考价值。

2018-02-07

NXP官网RT1050 EVK原理图PCB源文件

NXP官网下载的evk原理图和pcb,可以做设计参考,非常实用。

2018-02-07

空空如也

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

TA关注的人

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