自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (4)
  • 收藏
  • 关注

原创 linux动态库的重定位机制

linux的动态库可以被共享,这个符号会怎么被链接进去呢,让我们来看一下过程。下面以常见的printf来举例。

2024-04-12 14:07:55 949

原创 Linux内核clone

例如系统调用sys_clone –> kernel_clone创建用户线程,或者kernel_thread -> kernel_clone创建内核线程,当然kernel线程创建是通过唤醒kthreadd这个内核线程体完成工作的。以这种方式工作,可能是出于并发的考虑,对于内核而言如果在系统调用等软件中断中执行耗时工作,则不太现实,因此就将其剥离为一个可正常调度的线程,不仅减少中断占用提高系统响应,在SMP多核系统也可以充分提高并发能力。如果是vfork方式创建,则父线程在这里就等待主休眠等待子线程退出了。

2024-01-23 16:11:41 398 1

原创 vscode debug 嵌入式arm设备

首先,vscode本身是支持debug标准GNU-Linux相关架构处理器的,只是说目前调试手段千奇百怪,而且标准不统一,所以很多开发者都是采用最原始的printf方式debug,这样效率低下,这个方法可以说真是太妙。在开始这个之前,有必要说一下设备本身需要的一些东西:1. 必须要支持带符号的应用程序,这需要编译时-g选项2. 嵌入式设备必须能通过多种途径执行gdbserver,这意味着必须有足够的静态存储器空间存放gdbserver或者能够支持远程挂载。

2023-12-08 10:59:13 1165

原创 Linux内存分类

linux内存管理是一个非常硬核和底层的存在,在深入开发过程中,学习内存管理,对于工程师来说是极为有用的。

2023-11-09 11:53:01 89 1

原创 vscode server搭建及dockerfile版本

vscode支持Client-Server组合,文章主要讲解server端部署。vscode插件市场地址:https://marketplace.visualstudio.com/vscode客户端地址:https://code.visualstudio.com/updates。

2023-11-09 09:37:09 772 1

原创 linux5.x编译docker

然后执行配置类相关建立预处理编译命令,比如:make menuconfig 或 make defconfig。如果是x86程序,可以去内核根目录下拷贝配置文件,其他的则自行设置交叉类.config文件。aptitude是一个改进的apt依赖组件,如果存在版本降级依赖,就需要通过他来处理。u-boot-tools用于arm相关编译uboot引导加载。如果编译时依赖工具链,使用export增加可执行文件搜索路径。这样就把路径加入到PATH中,可以在编译时找到工具链地址了。newpath={这里输入工具链路径}

2023-11-08 19:54:34 121 1

原创 ARM指令集-深入原子性

5. strex回写count,由于是本处独享的cache,且只有cache是占用时才能成功写入,它是否成功会写入r2,当r2 ≠ 0 时,流程会跳转至+6行。1. CPU的缓存抢占,如果在别的地方已经修改过缓存,则这个缓存是time-out的(也叫dirty状态),那么写入这个缓存是会失败的。3. ldrex r0, [r3],相比普通的寄存器取数,这里会进行cache独占,其他任务重入时对cache的再次独占就是无效的。6. 只有当cache独占写入成功,r2才会置0,跳出循环。

2023-10-26 21:25:48 160 1

原创 docker镜像简易教程

在安装完成所需内容后,可以将容器的修改固化为docker layer,这层修改后续就不能动了,建议完成后再提交,不然再次提交还会产生layer。进入docker,指定宿主共享资源路径/home/work -> /share,在容器内可以通过share文件夹访问宿主资源。命令包含作者信息、注解、容器id、镜像名与标签,标签相当于版本号(不写就是默认latest)由于image的镜像不能直接使用,我们把宿主机的配置拷进去。进入docker后,更新apt源。

2023-10-16 10:40:34 43 1

原创 ubuntu磁盘管理与反向清理

docker安装要自己去找,安装好找一个新的磁盘挂载到系统上,然后关闭docker,移动docker库,最后用软件链接起来,这样docker就可以不随系统了,减少崩溃影响。进入/var/log/apt,里面有多个history.log*的文件,里面是apt安装历史记录集合。另外ubuntu通过apt安装的库,参考下面的apt部分,不是pip3安装的包不通过pip3清理。切换到xxx目录,统计当前目录下容量,如果有挂载点也被计入,-d 1是层级深度为一级。如果要卸载pip3,通过apt反向卸载。

2023-10-16 10:17:30 81 1

原创 ubuntu重装踩坑汇总

因为删除了装机时的账户1000,当本地passwd文件没有此记录时,就会显示裸id号,可以通过重新拷贝实现新创建者命名。新用户访问1000创建者目录,会导致权限异常。使用系统自带的命令seahorse打开钥匙环,然后删除默认的钥匙环,然后重新创建一个密码为空的钥匙环,重启后就不会提示了。更新/etc/fstab后,主动去挂载目录执行下chmod 777 <path>,然后reboot完成就能看到权限了。如果有中文,看firefox是否装有语言包,一并删除。编辑/etc/fstab文件设置开机挂载。

2023-09-25 16:07:11 84 1

原创 Linux虚拟地址到物理地址

pte_offset_map(实际为pte_offset_kernel),用于从pmd(pgd)继续索引二级页表,当对pmd变量进行指针操作时,需要注意获取的内存值是二级页表的物理地址,因此要启用如下的宏pmd_page_vaddr将地址转换回虚拟地址后,才能正确访问。内核页表有四层,包括pgd->pud->pmd->ptep->pte,实际上pgd指向一级页表,pmd为二级也表,中间的pud实际透传无意义的。2. 页表项,指页表内一个项,包含两个要素:页表项所在地址和页表项保存的下一级页面地址。

2023-09-13 17:30:54 189 1

原创 vscode结合clangd阅读linux内核等大型工程的环境搭建

目前已知阅读linux内核源码以及任意大型工程的解决方案

2023-07-04 19:44:45 1433

原创 OPENCV(1)_平台搭建

OPENCV是计算机视觉(Computer Vision)的一个重要库,目前以C++为核心编程语言。本文主要讲解VS2013+OPENCV 2.4.13的平台搭建过程,经过验证VS2012也能正常使用。 配置前尽量使计算机联网,有可能需要下载VS相关的组件,例如window SDK 、 windows C++ runtime 等。VS2012/VS2013在网上有下载,尽量使用镜像+key,部分安

2017-01-26 10:53:01 505

原创 用Python开车的老司机

简介Python可以进行网络爬虫的故事已经不是新鲜事了,但是用爬虫开车抓图的老司机可数量不多。这次要实现的是Python的”老司机功能”,利用了多个网络相关的模块:re正则表达式模块,用于解析html内的标签;os操作系统模块,用于管理文件;urllib网页模块,用于下载和转译html内容;urlparse网址解析模块,用于提取域名等信息。正片废话不多说,驾照在此:#coding=utf-8imp

2017-01-22 01:21:03 1928

原创 Python-Windows定时关机与虚拟WIFI

简介Python是目前较为流行的胶水语言,一般用于网络编程、系统应用、科研计算等全方位领域,是云计算开源框架OpenStack的主要开发语言。Python的功能里有一个os模块来衔接windows的命令行工具,可以实现过去在DOS环境下要执行的各种功能。这次的范例是实现一键执行定时关机以及虚拟Wifi热点架设任务,以便未来不需要再敲命令直接按习惯去执行需要的功能。定时关机原理首先看一下Windows

2017-01-18 16:43:04 664

[云计算应用架构].(Cloud.Application.Architectures).George.Reese

云计算应用架构文字版

2016-11-09

基于TMS320C6747的USB系统固件程序开发

基于TMS320C6747的USB系统固件程序开发,内容含有USB的设计点,大致描述了USB使用的一些点。

2016-01-10

TI 3D打印设计

3D打印机控制器(TI) 近年来,3D打印技术全面开花!好像隔两天你就会听到3D打印引领发展潮流的相关报道。最近,我读到一篇有关第一台太空3D打印机的报道。NASA希望3D打印将在某一天随时随地为打印备用零件提供资源,并且在我们打算在另外的星球上定居时能够创造出很多所需的材料。3D打印将会使得一个与世隔绝的工作站或前沿哨所能够合理地使用有限资源,而不是针对可能出现的最差情况预先做好准备。这个灵活性是推动3D打印的一个关键思路。 http://www.ti.com.cn/tool/cn/TIDA-00405?keyMatch=tida00405&tisearch=Search-CN-Everything

2015-08-04

PL2303 For WIN7

PL2303 WIN7 驱动 供开发使用

2013-07-09

空空如也

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

TA关注的人

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