自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 u盘只读挂载解决

Ubuntu下挂载了一个U盘,进入U盘路径后,显示该U盘是只读文件系统,不能在里面进行新建,复制,删除等写操作。- 运行df 命令,查看U盘的挂载点(我的挂载点是 /media/kevin/disk)- 运行 fdisk -l 命令查看u盘的设备节点( 我的是 /dev/sdb1)- 此时运行 dosfsck -v -a /dev/sdb1 进行u盘的修复。- 卸载u盘 umount /media/kevin/disk。- 最后再重新挂载U盘,就会发现U盘可以进行写操作了。

2023-10-08 20:15:23 444

原创 timer_create使用问题

timer_create使用问题

2022-08-23 20:32:55 607 1

原创 O2优化带来的异常回溯函数地址减少

问题:将项目的编译优先级从O1调整到O2后,验证异常backtrace,发现O1时异常回溯的最后一个函数地址,没有被打印出来。和同事一起分析发现,最后的一个函数调用语句对应的汇编语句由O1的BLX变成了O2的BX。查找资料发现((143条消息) ARM指令B BL BLX BX区别_xinianbuxiu的博客-CSDN博客_bl指令)3、BX: 带状态切换的跳转。最低位为1时,切换到Thumb指令执行,为0时,解释为ARM指令执行。BX 指令的格式为:BX{条件} 目标地址B

2022-05-12 20:01:14 434

转载 生成 -Wall 选项不包括的警告

生成 -Wall 选项不包括的警告尽管 gcc 编译器的 -Wall 选项涵盖了绝大多数警告标记,依然有一些警告不能生成。为了生成它们,请使用 -Wextra 选项。比如,下面的代码:#include <stdio.h>#include <stdlib.h>int main(){ int i=0; /* ... some code here ... */ if(i); retur

2021-12-14 15:53:19 653

转载 OSAL系统接口

OSAL中断操作:1、允许中断byte osal_int_enable( byte interrupt_id )-- interrupt_id:中断标示符2、禁止中断byte osal_int_disable( byte interrupt_id )-- interrupt_id:中断标示符3、暂停中断HAL_ENTER_CRITICAL_SECTION(x)4、重新启用中断HAL_EXIT_CRITICAL_SECTION(x)OSAL内存操作:1、分配内存...

2021-08-11 14:32:24 316

转载 ubuntu 64上的GCC如何编译32位程序

运行命令gcc -v显示:Target: x86_64-linux-gnu所以,我这里的gcc默认生成64位的程序。如果想编出32位的程序,就要加 -m32选项。可是我尝试了,还是不行。原来,需要安装东西。$sudoapt-getinstallbuild-essentialmodule-assistant $sudoapt-getinstallgcc-multilibg++-multilib 装好之后,就OK了。比如:gcc ...

2021-08-06 13:42:31 1127 1

转载 简单粗暴有效的mmap与remap_pfn_range

众所周知,现代操作系统为了安全和统筹硬件的原因,采用了一套非常复杂的管理内存的方式,并由此产生了物理地址,逻辑地址,虚拟地址等概念。这部分内容不负累述,简单来说如下图kernel与用户态进程拥有不同的逻辑地址空间,kernel所在的页面拥有更高的权限,用户权限是不可以随意更改的,否则岂不是可以改掉自己的权限,为所欲为。不过这也不是完全密不透风的墙,内核提供了多种途径供用户态交流数据。其中如果需要在短时间内交换大量数据,并且有实时的要求,linux kernel 提供了一种简单有效的方式:

2021-07-05 15:44:02 890

原创 list操作C源码

#include <stdio.h>#include <stdlib.h>#define offsetof(type, member) ((size_t) &((type*)0)->member)/** * container_of - cast a member of a structure out to the containing structure * * @ptr: the pointer to the member. ...

2021-03-29 17:05:56 112

翻译 [译]Chapter 6 - Demonstration System for Azure RTOS ThreadX演示

[译]:Chapter 6 - Demonstration System for Azure RTOS ThreadX | Microsoft DocsThis chapter contains a description of the demonstration system that is delivered with all Azure RTOS ThreadX processor support packages.本章包含所有Azure RTOS ThreadX处理器支持包附带的演示系统的描

2021-03-26 16:13:37 168

翻译 [译]Chapter 2 - Installation and Use of Azure RTOS ThreadX 安装与使用

[译]:Chapter 2 - Installation and Use of Azure RTOS ThreadX | Microsoft DocsThis chapter contains a description of various issues related to installation, setup, and usage of the high-performance Azure RTOS ThreadX kernel.本章包含与高性能Azure RTOS ThreadX内核的安装

2021-03-23 20:01:00 356

翻译 [译]Chapter 5 - Device Drivers for Azure RTOS ThreadX

[译]:https://docs.microsoft.com/zh-cn/azure/rtos/threadx/chapter5This chapter contains a description of device drivers for Azure RTOS ThreadX. The information presented in this chapter is designed to help developers write application-specific drivers.本章

2021-03-23 18:38:30 296

翻译 Chapter 3 - Functional Components of Azure RTOS ThreadX-Azure RTOS ThreadX的功能组件

[译]:Chapter 3 - Functional Components of Azure RTOS ThreadX | Microsoft DocsThis chapter contains a description of the high-performance Azure RTOS ThreadX kernel from a functional perspective. Each functional component is presented in an easy-to-understa

2021-03-23 13:31:51 382

转载 基于SystemC的异构多核通信模块设计

转载https://wenku.baidu.com/view/ad83e420dd36a32d73758138.html 1 引言  如今,随着集成电路工艺发展到深亚微米的阶段,处理器体系结构的设计研究正朝着多 核的方向发展。Intel、IBM、SUN 等主流芯片产商已经在市场上发布了自己的多核处理器。 目前多核处理器的发展尚处于起步阶段,有很多问题还有待解决。其中,一个十分重要的方 面就是设计高效的片上通信架构[1]。多个内核上同时执行的各个程序之间可能需要进行数据 共享与同步,因此多核处理器的硬

2021-03-19 11:33:07 648

转载 搞电子必学知识,模电原来这么简单之数电模电那点事

对于数电模电这两门功课,在大学课堂中有的学校先数后模有的先模后数,当然也有的同时开设。其实爱好电子技术的小伙伴们,我给大家的建议是先学习模电再学习数电,所以我更文也是先来更新模电再更新数电的。这是有其中的缘由的,数电重点是对一些元器件的认知理解,而先学习模电能够更好的对数电的内部结构原理得到了解,这样学习起数电来就更容易上手了,下面我们来开始今天的学习吧,今天是学习的第一节,预备昨天更的文章内容主要讲了,如何学习模电,重点介绍了5个学习方法,大家有兴趣的话可以去我主页看。(浏览一遍,点赞评论再去,感谢了,要

2021-01-29 11:06:26 1872

转载 总结几点学习模电难的原因

http://www.elecfans.com/d/1472209.html模电想必是近来小伙伴们很头疼的一门课程了。小编结合自己的感受用一句话形容一下:"老师说第一遍不懂,第二遍还是不懂,第三遍还是不懂。"网友们是这么看模电的:天书般难懂。模电=魔电本科模电就够痛苦了,研究生的高阶模电简直是欲仙欲死。二极管、三极管、MOS带入门;运放、震荡电路、斩波电路显神通。课堂上老师讲的都会了课后又都不会了。模电学起来不算难,应付考试也简单,刚开始用起来觉得有点难,用的时间长了,感觉越来越难。.

2021-01-29 11:01:58 1516 1

原创 Linux系统时间获取处理

查了一些手册及blog(如:https://www.cnblogs.com/zxc2man/p/7660240.html)获取系统时间,在服务器验证OK,但在嵌入式单板时间会少时区校正。如#include "time.h"void main (){time_t rawtime;struct tm * timeinfo;time ( &rawtime );timeinfo = localtime ( &rawtime );printf ( "\007The current

2020-10-22 15:49:50 169

转载 为什么4x4 MU-MIMO AP是Wi-Fi 6网络的基础要求

(ZZ:https://rf.eefocus.com/article/id-334578)该文对不同业务场景对带宽的要求、蜂群效应做了一些有益阐述。但没有太相关的说明4x4 MU-MIMO跟wifi-6网络的基础要求关系-------------------------------------------------------------------------------------------越来越多的终端开始支持Wi-Fi6,由Wi-Fi 6 AP组成的无线网络也即将迎来大规模普及,企.

2020-06-05 14:26:57 3012

转载 WLAN中的MIMO技术详解

为什么MIMO(multiple-input and multiple-output)在现代无线通信里占据如此重要的地位呢。这还得从古老的香农定理来分析一下,根据我们大学里学的香农定理,某数字频带所能达到的最大传输率是有频宽(W)和信噪比(SNR)决定的。所以宽频带比如像UWB,11ad等通信都有很高的传输数率,再反过来举个例子,如果传输数率可以降的极低,则要求的信噪比也越低,这类通信用在宇宙航天上较多。MIMO技术是运用相同的频率,通过复数个收发段来提高数率。这如果改一下香农基本公式的话,就变成...

2020-06-03 15:39:20 10341 1

原创 linux多线程的cpu绑定及继承

最近遇到一个问题,在子线程中修改main的cpu绑定成功,然后,fork子进程,观察新fork出来的子进程cpu绑定与父进程的修改后的cpu绑定不一致。经过一番分析,找到了原因:1)我们使用的线程库是nptl库;2)在子线程中修改main的cpu绑定,只会修改main线程的cpu绑定,子线程本身的cpu绑定不会发生变化;3)子线程中fork子进程,子进程继承到的cpu绑定关系来自于...

2019-04-08 11:45:37 1057 1

原创 CVE-2015-7547python脚本运行问题修改

为了验证自己使用的C库是否存在dns缓冲区益处漏洞,从https://github.com/fjserna/CVE-2015-7547下载了测试代码进行验证。但将python脚本不是到windows上运行时,总是出现10054异常。后来,修改脚本增加recvfrom的异常处理。while not terminate:    print 'start recv'    try:#增加...

2018-12-15 15:08:48 171

原创 Linux内核模块编译注意事项

今天一位同事讲,编译内核以外的模块时遇到了一个问题:aarch64-buildroot-linux-gnu-gcc.br_real: error: unrecognized argument in option ‘-mabi=apcs-gnu’aarch64-buildroot-linux-gnu-gcc.br_real: note: valid arguments to ‘-mabi=’

2018-01-04 11:26:30 4868 1

原创 编译出现File name too long问题

今天编译1个libffi时,出现了File name too long问题,make[7]: stat: ffitarget.h: File name too longmake[7]: *** No rule to make target `ffitarget.h', needed by `all-am'.  Stop.刚开始以为是编译路径过长,调整后,依然相同错误。经过搜索了解,

2017-05-12 16:12:57 9196

原创 协程

协程从事软件开发的同学,一般都对进程和线程有一些认识。但协程可能很少遇到或讲到,当然有些语言天生就有协程的使用概念,比如lua。 有人讲,历史上是先有协程的,是OS用来模拟多任务并发。这一点学过OS的应该都能领悟。概念上讲,它是非抢占式的,所以存在多任务时间片使用不公平的问题。就个人理解而言,现在人们通常将,用户态的调度单位称为“协程”,也称作“用户态线程”。进程它与进程、线程的显著差异就是,1)

2017-04-16 10:29:10 414

转载 信号实现父子进程之间的同步--sigsuspend的作用

函数原型:  #include   int sigsuspend(const sigset_t *mask);作用:  用于在接收到某个信号之前,临时用mask替换进程的信号掩码,并暂停进程执行,直到收到信号为止。  The sigsuspend() function replaces the current signal mask of the

2016-10-31 10:17:50 424

转载 sigsuspend 函数使用 及与 pause 区别

sigsuspend函数 :sigsuspend函数接受一个信号集指针,将信号屏蔽字设置为信号集中的值,在进程接受到一个信号之前,进程会挂起,当捕捉一个信号,首先执行信号处理程序,然后从sigsuspend返回,最后将信号屏蔽字恢复为调用sigsuspend之前的值。#include int sigsuspend(const sigset_t *sigmask);   

2016-10-31 09:54:18 680

转载 煮饺子与mesos之间妙不可言的关系

这篇原文文章转载自:http://www.aiweibang.com/yuedu/69570354.html.原文作者:小黑羊JoinWings一直想写一篇介绍mesos的文章,文章可以不讲技术细节,但一定可以让一个外行一下子就明白什么是mesos.mesos能干什么.很荣幸看到了,这样的一篇文章《煮饺子与mesos之间妙不可言的关系》,佩服的五体投地!此乃神人也!我觉得怎么样也不会比

2016-06-08 15:49:13 553

原创 USB设备访问管理

主题是面向某一用户空间的设备访问管理。大家都知道通常的设备访问流程是:内核设备驱动,包括usb驱动,一般情况下是通过kobject_uevent接口上报uevent消息到用户空间,由用户管理进程,如udevd、ueventd等接收uevent消息,然后解析,创建设备文件节点。之后,设备访问程序才能通过设备文件节点访问操作设备。管理方法讨论如果不希望用户空间访问某设备,最直接的方法是不提

2015-11-24 14:01:27 795

原创 expected declaration specifiers or '...' before string constant编译告警

原因是内核模块使用MODULE_DESCRIPTION("xxx");MODULE_AUTHOR("xxx");MODULE_LICENSE("GPL");时没有包含module.h#include

2015-11-12 08:58:00 9103

转载 linux Oops和Panic关系 .

常在河边走,哪能不湿鞋。用Linux,总有死机的时候,如果运气好,会看到一些所谓”Oops”信息(在屏幕上或系统日志中),比如:Unable to handle kernel paging request at virtual address f899b670printing eip:c01de48c*pde = 00737067Oops: 0002 [#1]Modules

2015-09-06 10:06:29 3367

转载 内存映射操作

http://blog.csdn.net/zhanglei4214/article/details/6653568如果想在用户态处理kernel分配的地址可以这么做。 首先用virt_addr = get_free_pages(GFP_KERNEL, order)分配内存,通过phy_addr = __pa(virt_addr)得到物理地址,然后在用户态将/dev/mem用mmap 映射出

2015-08-31 18:56:03 318

转载 qemu,kvm,qemu-kvm,xen,libvir 区别

KVM:(Kernel-based Virtual Machine)基于内核的虚拟机KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。从存在形式看, KVM是两个内核模块kvm.ko和kvm

2015-08-27 17:05:14 622

转载 统治世界的十大算法

统治世界的十大算法boxi • 2014/06/01 21:49软件正在统治世界。而软件的核心则是算法。算法千千万万,又有哪些算法属于 “皇冠上的珍珠” 呢?Marcos Otero 给出了他的看法。什么是算法?通俗而言,算法是一个定义明确的计算过程,可以一些值或一组值作为输入并产生一些值或一组值作为输出。因此算法就是将输入转为输出的一系列计算步骤。—Tho

2015-08-27 16:33:14 395

转载 linux kernel的中断子系统之(八):softirq

讲的蛮好的,对于锁的使用结合起来易于理解。一、前言对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),是全程关闭中断的,另外一部分是deferable task(bottom half),属于不那么紧急需要处理的事情。在执行bottom half的时候,是开中断的。有多种bottom half的机制,例如:softirq、tasklet、

2015-08-12 09:38:18 558

原创 Linux tmpfs的使用问题解析

Linux tmpfs的使用问题解析在不同的版本系统查看tmpfs分区的情况,有的可以查询到,有的则不行且不报错。如df命令,对于正常的结果如下:tmpfs 15360 96 15264 1% /var异常情况,则不会有该条目。尝试编译测试程序利用statfs获取挂载点的空间使用情况,在异常的情况下空间数据为0。测试程序过程为:1)stat获取挂载点文件类型

2015-08-04 15:07:50 1043

转载 ARM上的浮点运算

这篇文章对最近遇到上的 ARM上浮点运算的问题做一个总结。 首先,我们先看一下ARM处理器是如何处理浮点运算的。 交叉编译器在编译的时候,对于浮点运行会预设硬浮点运算FPA(Float Point Architecture),而没有FPA的CPU,比如SAMSUNG S3C2410/S3C2440,会使用FPE(Float Point Emulation 即软浮点),这样在速度上就会遇到极

2015-07-24 08:45:05 879

转载 Linux 上的基础网络设备详解

http://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/抽象网络设备的原理及使用网络虚拟化是 Cloud 中的一个重要部分。作为基础知识,本文详细讲述 Linux 抽象出来的各种网络设备的原理、用法、数据流向。您通过此文,能够知道如何使用 Linux 的基础网络设备进行配置以达到特定的目的,

2015-07-15 09:52:11 490

原创 Android APP线程是由谁创建的

通过老罗的《Dalvik虚拟机进程和线程的创建过程分析》知道Android APP线程是通过pthread_create创建的。这就意味着新创建线程的父亲是pthread_create的调用者,而非zygote。我以前一直以为所有APP进程或线程都是通过zygote创建出来的,因为通过ps或proc文件可以看到所有APP的父亲都是zygote,这怎么解释呢?搜索了好久,没有找到相应

2015-06-16 20:52:43 1007

原创 闰秒对linux的影响分析及解决

大概了解了下闰秒及其如何让linux kernel panic:闰秒的产生:日常所用时间UTC,是根据地球自转计时,跟精确的原子时钟存在偏差,为了保持一致,每偏差1s就进行1次同步,就产生了闰秒。即如人们所讲的,在今年6月30号出现23:59:60。开源的NTPD在同步服务器时间时,直接调用系统调用adjtimex到达内核的ntp处理逻辑,内核的do_adjtimex经过一系列处理逻辑,判

2015-06-16 19:43:21 3404

转载 Android显示系统之SurfaceFlinger(一)

(源:http://www.xuebuyuan.com/2031515.html)1.1 SurfaceFlinger的启动SurfaceFlinger的启动和ServiceManager有点类似,它们都属于系统的底层支撑服务,必需在设备开机的早期就运行起来。/*frameworks/base/cmds/system_server/library/System_

2015-06-15 19:10:44 508

转载 nice() getpriority() setpriority()

(源:http://blog.sina.com.cn/s/blog_596f35310100aukf.html)nice函数 功能描述:   改变进程优先级。在调用进程的nice值上添加参数指定的值。较高的nice值意味值较低的优先级,只有超级用户才可指定负增量--即提升优先级。nice的取值范围可参考getpriority的描述。用法:   #incl

2015-06-15 18:58:37 1537

空空如也

空空如也

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

TA关注的人

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