- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 ARM启动流程分析
1.片内的ram用来装载启动代码,在2440初始化sdram之前,代码就在片内ram中运行。片内ram装载的是norflash中的内容,即u-boot。2.uboot放在norflash里,nandflash就存放的操作系统(需要装载到sdram中)。所以norflash相当于电脑的bios,nanflash才是硬盘。sdram就是内存了3.uboot是一级启动代码,即bootloader...
2018-10-16 15:36:57
1045
原创 Linux下内核进程、用户进程和轻量级进程(LWP)的理解
区别和联系我们经常提到线程、线程组、内核进程、用户进程、轻量级进程等词汇,那么他们之间有什么区别和联系呢?首先,我们需要明确一点,Linux下并没有真正意义上的线程,甚至可以说没有进程这个概念,Linux下只有task,其对应的数据结构为task_struct,这里为了方便说明以及按照比较主流的说法,我们将task称之为进程。对于一个进程来说,它一定是运行在内存的某个连续或不连续的区域,先以...
2018-10-14 17:05:02
4734
1
原创 Linux中的I/O访问
访问I/O的方式当程序涉及到对I/O端口进行访问时,我们总是可以看到使用 inb/outb 两个函数(或者说in/out函数家族),但是两个函数的实现,在不同处理器上的实现却有所不同,区别主要针对冯诺依曼架构(独立编址)和哈佛架构(统一编址)。还有ioread8/iowrite8和readb/writeb等函数,但在不同的架构上就大同小异了。统一编制将存储器地址空间的一部分划分给I/O端口,...
2018-10-08 02:01:50
550
原创 Linux最初的几个进程
0号进程0号进程,被叫做idle进程或swapper进程,是内核初始化完后的第一个进程,也是唯一一个不由fork或kernel_thread创建的进程。当然,“内核初始化完成后的第一个进程”这种说法并不准确,0号进程本身就是内核的一部分。 多处理系统上,一个cpu有着一个0号进程。Linux系统在初始化的时候,会使用INIT_TASK静态创建一个进程描述符struct task_st...
2018-09-29 16:20:22
700
原创 linux下1分钟配置ftp
安装vsftpdubuntu下sudo apt install vsftp准备ftp专用用户添加ftp用户,-d参数指定用户根目录,-s指定sh,nologin表示禁止该用户登录shell,MyFtp为用户名useradd -d /home/ftp -s /sbin/nologin MyFtp修改用户密码sudo passwd MyFtpvsftpd基本...
2018-07-04 18:33:02
302
原创 软件工程笔记
软件过程模型概念软件过程模型是从软件项目需求定义至软件运行维护的整个生命周期过程中系统开发、运行和维护所实施的全部过程。 为软件开发的各个阶段提供一种过程规范。瀑布模型特点分为固定的几个阶段阶段间具有顺序性和依赖性每个阶段必须完成规定的文档,每个阶段结束前完成文档审查,及早改正错误缺点实际项目很少遵守瀑布模型提出的顺序,需求可能变更客户通常难以...
2018-06-21 16:34:10
5128
1
原创 关于ramfs、tmpfs、rootfs和initramfs以及initrd
ramfsramfs是一种基于linux磁盘缓存机制的文件系统,它是在页缓冲和目录缓冲之上的一层很薄的封装,代码量极少。ramfs的底层存储是ram,ramfs在mount时可以指定size,但是你仍然可以往其上写入一个很大的文件,由此导致ram被吃光。ramfs只能被root访问。tmpfstmpfs算是ramfs的加强版,它可以使用内存或swqp分区作为存储,它使用了虚拟内存的...
2018-05-28 19:22:20
2364
原创 Linux内核Makefile解析
先开个坑make installinstall这个target并不是Makefile里面的,Makefile中include了arch/x86/Makefile,我们可以看到arch/x86/Makefile中的installl如下:$(Q)$(MAKE) $(build)=$(boot) $@build是在scripts/Kbuild.include中定义的,为build...
2018-05-23 15:20:01
680
原创 Linux内核更新
最近在阅读ELDD,此书偏向于实战,但是有些年代了,才看了不到几页,便遇到了一些坑。内核源码的获取现在,大家使用的linux内核的操作系统,多为各大发行版,在ELDD一书中,第一章便要让大家去直接下载kernel.org提供的源码,略作修改后,用该内核启动。然后不知是不是中文版翻译的问题,这里作者的本意应该是使用和现有的内核相同的版本,然后生成bzImage,这样不就用去管initrd...
2018-05-21 17:36:03
1727
原创 计算机操作系统基础笔记
基础概念操作系统引论操作系统的目标方便性有效性开放性可扩充性操作系统的作用用户与计算机硬件系统之间的接口计算机资源的管理者扩充裸机资源的软件计算机工作流程的组织者单道批处理系统自动性顺序性单道性多道批处理系统多道性调度性无序性分时系统多路性独立性及时性交互性操作系统的基本特征并发(最重要的特征)共享(和并发同为操作系统最基本的特征,二者互为存在的条件
2018-05-09 09:30:24
3578
原创 C语言冷知识
这篇博文主要用来记录一些我遇到的比较少见的c语言的使用(还是太菜)字符串中的引号常见的在字符串中的引号为"I said:\"hello\""还有种用法是两个引号代替一个引号(类似于%)"I said:""hello"""语句块的值举个栗子printf("%d\n",({1;2;3;}));首先,上述语句是没有语法错误的,其次,这条语句
2018-05-05 15:30:20
506
原创 优先级继承和优先级天花板
优先级继承当一个任务阻塞了若干个任务时,若阻塞任务有高优先级任务,则将所有阻塞任务中的最高优先级作为其优先级优先级天花板给每个信号量设置一个优先级天花板,优先级天花板的值大于所有使用该信号的任务的优先级,当某个任务得到该信号量时,将其优先级置为优先级天花板的值。...
2018-04-30 13:35:58
6744
原创 记一下开发中通用的一些避免坑的方法
镜像版本和软件包版本前段时间在树莓派上跑opencv,树莓派是3b+,镜像是最新的,跑的是以前的程序,opencv3.3的,因为要用到gui,便开始安装gtk2.0-dev,由于镜像里面的各种包都是较新的版本,看到apt-get安装时的一连串依赖问题,感觉有点头大,就想着用aptitude来装,结果提示找不到解决办法,不知道是不是依赖有点太复杂,需要降级的包太多了,不得已,只有对这些包一个一个...
2018-04-24 18:16:17
201
原创 实用工具分享——PDF阅读
PDF阅读现在常见的手册和电子书均为pdf,故而一款使用的pdf阅读器就显得很重要了。本地PDF阅读器本地PDF阅读推荐的是一款十分轻量级的阅读器,SumatraPDF,小巧,支持中文,适合于临时查看一些PDF文件。在线PDF阅读器其实我更常用的是在线的PDF阅读器,好处就是跨平台,文件和笔记都在cloud上。这里推荐的kami viewer annotation,本身是一...
2018-04-21 19:52:20
1023
原创 git使用讲解
这篇使用讲解主要针对,本地仓库和远程仓库之间的一些使用。在讲解开始前,首先你得拥有一个本地仓库,进入你的项目文件夹,而后用git bash或者你的shell执行git init你便得到了一个本地仓库。本地仓库的空间git的本地仓库有三个概念:工作区、暂存区和版本库。我们知道本地仓库除了我们能看到的文件以外,还有一个.git目录,我们能看到的这些文件就是我们的工作区,而.git就是git的版本管理得以
2018-04-20 22:09:47
285
转载 ARM汇编笔记
本文是对老师上课笔记的整理汇总,请勿转载ARM汇编指令:condition: EQ Z=1 相等 NE Z=0 不相等 CS/HS C=1 无符号数大于或等于 CC/LO C=0 无符号数小于 MI N=1 负数 PL N=0 正数或零 VS V=1 ...
2018-04-19 09:30:28
1404
原创 DSP笔记
连续信号的与系统的频域分析傅里叶级数傅里叶级数用来描述周期性信号,通过从连续性周期信号中,提取其中每一周期的信号作傅里叶变换后作拉伸变换后即可得到傅里叶级数。
2018-04-19 09:17:43
297
原创 底层开发代码规范
前言:此文主要针对stm32系列工程,规范代码可以加速开发速度和dbg速度源文件和头文件格式规范 这里给出比较规范的源文件和头文件应该大致具备的一些格式。 name.c:/* Includes ---------------------------------------------------------------------*/#include <name.h&...
2018-04-09 11:48:27
763
原创 stm32f4开发笔记
初始化pwm配置输出频率的计算以stm32f4为例: RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); { /* 可能TIM1 有不同的默认值,但是结构体的默认值一定是0呀.. */ TIM_TimeBaseInitTypeDef r1 = { .TIM_Pres...
2018-04-04 12:01:50
900
原创 ROS入门笔记
基础命令 初始化工作空间cd ~/catkin_wsmkdir srccatkin_init_workspace创建packagecd ~/catkin_ws/srccatkin_create_pkg pkg_name [dep.]下载git上的包cd ~/catkin_ws/srcgit clone XXX.git下载相关依赖cd ~/catki...
2018-04-02 13:46:46
217
原创 slam中李群和李代数笔记
一、slam中的李群群的定义群是一种集合集合加上一种运算的代数结构。要满足:封闭性、结合律、幺元和逆。 旋转和群三维空间中,描述一个物体的旋转(此处仅考虑刚体),旋转的表示有如下几种:旋转矩阵,四元数,欧拉角。旋转矩阵: 首先,我们有一个世界坐标系,该坐标系是恒定不变的,然后我们选择一个刚体,比如,一个诺基亚,我们将其抛入空中,假设其由姿态A变为姿态B(此处不考
2018-04-02 01:59:32
978
原创 Tesseract-ocr开发经验总结
环境搭建的问题总结前言:除非特殊需要,或者系统不支持,否则尽量避免使用源码安装,不然可能会在环境搭建这一步浪费大量时间。即使能正常使用了,也可能在后续的使用中因为各种各样的问题来重走这一过程,为避免这一情况的发生,即使tesseract能正常使用了,也请通过tesseract -v来确认自己需要的库都已经成功被tesseract找到。一、configure提示leptonica lib...
2018-02-08 00:40:39
4589
4
原创 OpnCV开发经验总结
常见问题分析解决使用过程遇到的问题(1)undefined reference to `TIFFXXX@LIBTIFF_4.0’错误提示 /usr/local/lib/libopencv_imgcodecs.so.3.3.0: undefined reference to 'TIFFReadDirectory@LIBTIFF_4.0' /usr/local/lib/libo...
2018-02-01 13:17:32
945
1
原创 Linux下的开发经验总结
常见问题解决:(1)cannot open shared object file错误提示 XXX: error while loading shared libraries: xxx.so.X:cannot open shared object file: No such file or directory 情况分析: (1)未添加相关库文件目录或更新库文件的搜索缓存 解决步骤...
2017-10-24 18:11:08
785
原创 Linux编程编程实战(三)
Linux编程———线程相关创建函数pthread_create注意事项错误示例:res = pthread_create(&tid[i],NULL,(void*)thread_func(),NULL); 亦或:res = pthread_create(&tid[i],NULL,(void*)thread_func(argument0,...),NULL);
2017-10-23 23:32:20
258
chrome插件去除kami右侧空白/广告
2018-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人