浅谈CMakeLists.txt 增加软件版本信息(很方便)
摘要:1. 从一个CMakeLists.txt下手,如下:include_directories (${CMAKE_CURRENT_BINARY_DIR}) 应该放在最后,但是在引用lib前。 # @warning here : add the variables we need and set vers
阅读全文
待开源logser
摘要:1. 何为logser,logser作为一个log服务器的处理集体,嵌入在多进程通讯,通过多进程通讯的各种手段,例如管道、套接字、共享内存和消息队列等等,实现日志的接收处理。 2. logser定位linux系统下的application,提供一种便携式移植log系统的机制,只要是linux系统,无
阅读全文
地表最强git的实战
摘要:一.、几年嵌入式linux经验总结的git常用开发命令,保准快准狠。 1. git log,时刻不要忘记来一个git log。 2. git status 查看现在文件的状态。 3. git diff 查看改动细节,常用git diff . 或者git diff filename。 4. git a
阅读全文
fb的驱动实现
摘要:本博客目的是熟悉fb的原理和驱动实现,只有模仿才有行动。 1. 框架图 此处省略10000字........ 2. 设备树 3. 驱动代码 a 配置这个结构体fbtft_device_display b 在编译kernel需要加入FB的CONFIG 4. 点亮 echo !!!!! > /dev/f
阅读全文
聊聊开发和设计的一些话题
摘要:本次blog只讲8个事情,主要包括内核、进程、规范等话题。 1. kernel编译ko kernel如何去编译一个.ko文件? 请看如下的Makefile obj-m:=helloworld.o mymodule-objs:=module KDIR?= default: make -C $(KDIR
阅读全文
结构体和指针
摘要:1. 结构体地址: #include <stdio.h> #include <stdlib.h> #include <string.h> struct son { int money; }; struct dah { int money; }; struct father { struct son
阅读全文
rockchip 增加uartx的实现
摘要:一、 谈谈驱动实现。(说的轻松) 针对uart,首先想到是驱动程序的实现,什么uart_driver,uart_port和uart_ops,都是一堆初始化的结构体,研究kernel driver的代码: 得到如下的基本流程实现driver: 1. 针对uart_driver,实现uart_regis
阅读全文
浅谈systemd原理和应用
摘要:多不说,直接上代码(可谓配置): [Unit] Description=demo app After=network-is-online.target [Service] Type=Simple ExecStart=/usr/bin/demo [Install] WantedBy=multi-use
阅读全文
ioctl以及read阻塞型引发的思考
摘要:1. 尝试strace 或 jstack 去追踪程序,发现某一个进程作为socket连接server出现如下的log(strace追踪): 1. ioctl(45,[0],0) = 0 2. ........ 3. ioctl(45,[12],0) = 12 ioctl作为用户态和内核态的数据交互,
阅读全文
浅谈spin lock 与信号量
摘要:理解阻塞和非阻塞概念: eg: open->read->close eg: open->while(read)->close read -> data received/receiving spin lock:(from baidu) 是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线
阅读全文
一种基于USB转串口的设备如何赋予权限
摘要:1. 利用open打开USB转串口的设备遇到打开异常。 若用vs调试代码,则需要usermod 对应归到watson组下,因为watson这个是vs ssh连接虚拟机的用户名,若用root则无法使用改串口。
阅读全文
两个基本问题了解哈希表
摘要:1. 什么是哈希表 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 摘于百度百科 通俗可以理解: 如何把13 18
阅读全文
如何使用docker制作开发集成环境
摘要:1. 编写最基本的Dockerfile 内容:touch 一个Dockerfile FROM ubuntu 2. 创建基本的docker镜像 docker build -t ubuntu:v1 . 3. 运行docker镜像,按照流程创建新的镜像。 简易过程: docker run -it --na
阅读全文
如何移植sshserver到嵌入式平台
摘要:ssh解释说明 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露
阅读全文
如何移植sqlite3到嵌入式平台
摘要:本人也时常看其他人的blog,搜索资料的目的是尽快解决当前的问题,例如如何移植一个ssh,尽快要明白所需的东西,方能移植完成。 移植sqlite3的步骤如下: 1. 到官方网站下载指定的源码包:https://www.sqlite.org/2020/sqlite-autoconf-3340000.t
阅读全文
如何巧妙使用vim处理文件
摘要:一系列流程书写如何用vim巧妙处理文件 1. 创建两个待处理的文件 root@ubuntu:/home/watson/real-watson# touch left right 2. 简单增补文件内容如下 root@ubuntu:/home/watson/real-watson# ls left r
阅读全文