嵌入式
当霸气遇到侧漏
这个作者很懒,什么都没留下…
展开
-
linux iic驱动整理(一)
分层思想首先iic是一个总线,所以强大的linux肯定会利用常见的分层思想把他分成两个部分,一个部分肯定是通用的,总线驱动模型,一个部分是我们做的,设备驱动模型。总线驱动模型linux 总线 都是在干一件事,就是把相同总线的设备扔在总线上,其中肯定有注册机制乱七八糟的,在这个驱动中,主要做一件事:“I2C 适配器”。struct i2c_adapter { struct module *owner; unsigned int class; /* classes to allow probi原创 2021-02-07 23:47:00 · 309 阅读 · 1 评论 -
总也记不住的linux三剑客的awk
一 命令简介废话不多说,man一下name : pattern scanning and text processing language模式扫描和文本处理语言简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk擅长列输出二具体用法awk ‘{pattern + action}’ {filenames}pattern 表示 AWK...原创 2020-04-23 10:25:26 · 289 阅读 · 0 评论 -
linux-5.5.6顶层makefile(arm方向)
编写原因时间:2020/2/29,没错,就是四年唯一的一天,疫情还没结束,决定对linux最新的内核linux-5.5.6源码进行分析排版与编写格式在代码块里的都是linux-5.5.6源码 并且都是按照顺序执行的,带注释的也是源码的注释 经过翻译过来的版本号VERSION = 5 //主版本号PATCHLEVEL = 5 //主版本号小数SUBLEVEL = 6 //次版...原创 2020-03-15 21:45:59 · 1500 阅读 · 0 评论 -
unix环境高级编程基础知识--信号
1,信号是软件中断,也就是指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。说白了就是程序执行中的中断,而非硬件cpu的中断。2,信号处理及动作1,忽略此信号,不推荐2,捕捉信号3,执行系统默认动作,(可以理解为跳到指定中断函数)、这里叫信号处理程序3,signal函数#include <signal.h>void (*signal(int ...原创 2019-08-21 10:45:22 · 136 阅读 · 0 评论 -
如何用串口解析出协议帧,并解决分包,组包,粘包问题?
生产者(4个):硬件:串口一; 串口二; 串口三; 串口四;采用普通接受中断软件: 中断时以字节传入到 ringbuffer,建立ringbuffer数组[4],分别在四个中断里存入void USART1_IRQHandler(void){... ring_buffer_write_byte_forced(&RingBuffer[UART_1], DeviceList[UART...原创 2019-08-21 10:44:31 · 5175 阅读 · 1 评论 -
setsockopt的几个常用用法笔记
1,不需要等发送缓冲区的数据发送完,直接关闭socket,这个在close(socket)中使用。socklen_t optlen;struct linger sLinger;optlen = sizeof(struct linger);if(setsockopt(pTCP->tcpSock, SOL_SOCKET, SO_LINGER, (const char*)&sLin...原创 2019-03-27 19:38:03 · 552 阅读 · 0 评论 -
am335 移植linux, sdk08
选择defconfig文件cd arch/arm/configs/cp omap2plus_defconfig am335_wmz_defconfigcd ../../../配置menuconfigmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihj- am335_wmz_defconfigmake menuconfig...原创 2019-04-12 14:31:46 · 332 阅读 · 0 评论 -
嵌入式c代码测评心得
函数式编程要归结于一句话:高内聚,松耦合,高扇入,合理扇出高内聚:内聚是函数内各个元素彼此结合的紧密程度。越紧密代表了函数的独立性越强。松耦合:耦合是一个软件结构内不同函数之间互连程度的度量,耦合性也叫块间联系。模块之间尽量有紧密联系高扇入:扇入是一个函数被其他函数调用的次数。被调用越多代表这个函数价值越高合理扇出(<7):扇出是一个函数内部调用其他函数的次数,调用函数越多...原创 2019-04-03 10:50:50 · 384 阅读 · 0 评论 -
2440移植2019年最新uboot
开发板:jz2440uboot版本:u-boot-2019.01.tar.bz2下载UBOOT源码http://ftp.denx.de/pub/u-boot/2.下载交叉编译工具https://www.linaro.org/downloads/一。先看readme1,make XXX_defconfig说明和之前用法一样,也是make xxx_defconfig2,star...原创 2019-04-03 10:51:28 · 2296 阅读 · 1 评论 -
am335uboot启动_sdk08
之前移植过,但是没有做笔记,现在重新移植一下,并把启动过程记录下来安装乱七八糟的不说了,交叉编译放入环境变量搞好就可以。环境变量位置:ti-sdk-am335x-evm-08.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/binuboot版本:u-boot-2014.07-g7e537bflinux版本:linux-3.14.2...原创 2019-04-03 13:58:11 · 375 阅读 · 0 评论 -
linux-can编程(一)
建立can的socketint can_create_socket(char *name){ int fd; struct sockaddr_can addr; struct ifreq ifr; socklen_t len = sizeof(addr); /* * RAW protocol sockets with can filters(SOCK_RAW)...原创 2019-04-16 10:05:17 · 380 阅读 · 0 评论 -
jz2440(韦东山开发板)内核烧录
1,解压缩2,打补丁patch -p1 <../"patch补丁"3,find -name "*defconfig"make menuconfig生成.config韦东山开发板使用的是cp config_ok .config4,进入uImage的路径内cd /arch/arm/boot5,删除文件系统OpenJTAG>nand erase root...原创 2019-05-30 18:37:16 · 639 阅读 · 0 评论 -
make uImage linux内核生成不出uImage
apt-get install uboot-tools原创 2019-05-28 20:01:07 · 607 阅读 · 0 评论 -
linux网络编程(完整版)
之间在网上看到很多网络编程都是一个一个demo,今天我把之前学到的汇总起来,希望大家可以进行补充。线程中我使用过两种方式编程,一种是经典函数式编程加上标志位,如下:while(1){ server_init(); client_init(); sock_send(); select_handler();}其中各函数里面放置了大量的标志位,如下:void clie...原创 2019-03-29 17:02:46 · 23226 阅读 · 6 评论