随笔 - 997
文章 - 5
评论 - 181
阅读 -
300万
01 2018 档案
bss段和data段的区别
摘要:一般情况下,一个程序本质上都是由 bss段、data段、text段三个组成的——本概念是当前的计算机程序设计中是很重要的一个基本概念。而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。 在采用段式内存管理的架构中(比如intel的80x86系统),
阅读全文
ARM中几个典型的汇编指令解析
摘要:启动嵌入式设备时,遇到了一些汇编,做个笔记,免得以后忘记了。 一句汇编语句如下所指示: __asm ( ".syntax unified\n" ".thumb\n" "movs r0,#0\n" "movs r1,#0\n" "mov r4,r0\n" "mov r5,r1\n" "ldr r0,=
阅读全文
ubuntu下TFTP Server 的安装和使用方法
摘要:tftp是一种于1981年在RFC 783中定义的简化的文件传输协议(FTP)。小型文件传输协议非常简单,通过少量存储器就能轻松实现 ——这在当时是很重要的考虑因素。所以TFTP被用于引导计算机,例如没有大容量存储器的路由器。现在它仍然被用于在一个网络上主 机之间传输小文件,例如从一台网络主机或服务
阅读全文
liunx下判断有线网口硬件是否正常的三个常用方式
摘要:第一种,命令法: /mnt/wifi$ cat /proc/net/dev Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop
阅读全文
一个嵌入式平台的有线网络问题定位思路梳理
摘要:今天遇到了一个有线网络问题,定位的流程花了不少时间,本来是搞网络芯片那么多年,应该对网络这块的 问题定位了如指掌才对,可是,遇到问题才发现,很多问题的解决不仅仅是靠知识的,更重要的是靠基于你知识 得思维方式。 具体问题是这样的,一个嵌入式单板上有两个网络,系统刚装好,不知道网口是否可以,这种情况下,
阅读全文
菜鸟在ubuntu 16.04下制作am335x的SD卡启动盘反思
摘要:以前只在消费电子平台android和rtos上做软件,每次都是公司的环境现成的,根本不用去想启动加载那部分 的事情,最近在做一个工控机的项目时,接触到了TI的arm335x系列的平台,才发现在嵌入式的世界中,我仍是 一只小小鸟,连环境都搞不定的小小鸟。 花了那么久制作一个SD启动盘,这个怎么也要记录
阅读全文
蓝牙的几种应用层协议作用
摘要:HFP: HFP(Hands-freeProfile),让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否 支持。 HSP: HSP 描述了Bluetooth 耳机如何与计算机或其它Bluetooth 设备(如手机)通信。连接和配置好后,耳机可以作为远程设备
阅读全文
ubuntu环境下编译linux内核问题解决备忘
摘要:在使用比较新的gcc编译内核时,经常遇到这个问题: 问题一: 提示: mkimage" command not found - U-Boot images will not be built 原因是新的ubuntu系统上,这个工具的名字已经变了,安装方式如下所示: sudo apt-get inst
阅读全文
Ubuntu 16.04 安装 arm-linux-gcc 交叉编译工具
摘要:工作需要,最近在编译linux嵌入式内核时,需要安装arm-linux-gcc交叉编译,实际上,安装这个交叉编译器的难度没啥。不过,这里有些问题还是值得我去思考和记录下来的。 这个系统的上的编译器用的是是gcc,不过,是gcc-linaro-5.5.0-2017.10-x86_64_arm-linu
阅读全文
opus代码解析
摘要:opus的初始化函数如下所示,在初始化的过程中,从代码结构上来看,这里主要完成是内存的申请,基本参数的定义 cOpusEncoder *opus_encoder_create(opus_int32 Fs, int channels, int application, int *error) opus
阅读全文
google的android工具常用下载路径
摘要:android的bug工具在网上搜的时候,经常被索引到垃圾网站,今天找到了一个网站下载android工具 都是最新的,十分不错,就做个分享吧。 Google 提供了 Windows、macOS 以及 Linux 下的工具包的直接下载地址,内容如下: https://dl.google.com/and
阅读全文
opus在arm的嵌入式平台上的移植和开发
摘要:最近产品中要用到opus,圣上一声令下,把opus移植到我们平台上,什么?opus?opus是什么?在一脸 茫然中,我这特种兵码农就赤手空拳上战场了。 废话少说,赶紧在网站:https://opus-codec.org/downloads/ 把最新的稳定的opus源码opus-1.2.1.tar.g
阅读全文
OGG的孩子-有损音频编码opus
摘要:Opus是一个有损声音编码的格式,由Xiph.Org基金会开发,之后由互联网工程任务组(IETF)进行标准化,目标用希望用单一格式包含声音和语音, 取代Speex和Vorbis,且适用于网络上低延迟的即时声音传输,标准格式定义于RFC 6716文件。Opus格式是一个开放格式,使用上没有任何专利或限
阅读全文
ogg的孩子-无损音频编解码flac
摘要:flac是一款无损的音频压缩编码,它的特点是对音频文件进行无损压缩,目前是被很多软件及智能硬件产品所支持。 从技术上来讲,该编解码的优点还是十分明显的,无损压缩,策略灵活,解码快速,硬件支持等特点都是在实际运用中是招 招制敌,直击用户的痛点。从开发者的角度来讲,它只支持定点处理--为了确保音质不会在
阅读全文
音频科普---oggs
摘要:做为一个做音频的人,很多基础的东西还是要牢记的。最近一个客户用ogg格式的音频,感觉这个很陌生,就翻了这方面的 资料。好比是认识一个大牛,只有在你有一个困扰你很久的困难问题被他瞬间解决的时候,才知道什么叫高手一样,在越来越深入 了解ogg的情况下,才逐渐感觉到它的强大,它的神通广大。 什么是ogg呢
阅读全文
当初我为什么要去创业公司呢?
摘要:在最近反思的过程中,我一直在问自己这个问题。当初是什么原因驱使着我,一定要挤进小的创业公司呢? 是深思熟虑?还是头脑发热? 是向往金科铁马的战场?还是向往纸醉金迷的生活? 还记得那个夏天,天很热很热,热的太阳就快掉下来了。在火热的夕阳的余晖下,我和前领导的对话历历在目: 一定要走吗?在这里我待你咋样
阅读全文
python实现桶排序算法
摘要:桶排序算法也是一种可以以线性期望时间运行的算法,该算法的原理是将数组分到有限数量的桶里,每个桶再分别排序。 它的算法流程如下所示: 在桶排序输入的参数为正整数时,排序算法比较简单,如下所示: 当需要排序的参数为小数时,就不能单靠桶排序来解决了,这时要加上一个插入排序,具体代码如下所示: 参考文献:
阅读全文
python实现线性排序-基数排序
摘要:基数排序算法是一种是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。 由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明 可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Ma
阅读全文
python中的数字取整(ceil,floor,round)概念和用法
摘要:python中的数学运算函数(ceil,floor,round)的主要任务是截掉小数以后的位数.总体来说 就是取整用的。只是三者之间有微妙的区别: floor() :把数字变小 ceil() : 把数字变大。 round() : 四舍五入。 英文不好的笔者,经常把这三者搞混,后来记着了三者的英文名字
阅读全文
python实现线性排序算法-计数排序
摘要:计数排序假定输入元素的每一个都是介于0到k之间的整数,此处K为某个整数,当k=O(n)时,计数排序的运行时间为O(n) 它的基本思想是:根据每个输入元素x确定小于x的元素个数,根据这个信息把x直接放到它在最终输出数组中的特定位置上。 通俗地理解,例如有10个年龄不同的人,统计出有8个人的年龄比A小,
阅读全文
python实现归并排序算法
摘要:归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(nlogn)。 1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归 可以同时进行。 当初为什么这个算法被发
阅读全文
python实现快速排序算法
摘要:快速排序算法又称划分交换排序(partition-exchange sort),一种排序算法,最早由东尼·霍尔提出。在平均状况下, 排序n个项目要O(nlogn)次比较。在最坏状况下则需要O(n*2)次比较,但这种状况并不常见。事实上,快速排序通常明显比 其他算法更快,因为它的内部循环(inner
阅读全文
python实现冒泡排序
摘要:冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换 慢慢“浮”到数列的顶端。冒泡排序对n个项目需要O(n*2)的比较次
阅读全文
在创业公司两年后的感悟
摘要:不知不觉中,在一家创业公司中已经待了两年有余了。两年时间,对于在一家 创业公司来说,时间的确不短了。这两年中,也感悟到了不少东西。所以,应该梳理 一下了,看一看前方的路该怎么走。 前段时间和一位前辈聊天,聊到来这家创业公司的初衷时,发现了一个致命的 漏洞。来创业公司的目的是什么?我很清楚当初的想法,
阅读全文
python实现散列表的链表法
摘要:在散列中,链接法是一种最简单的碰撞解决技术,这种方法的原理就是把散列到同一槽中的所有元素 都放在一个链表中。 链接法有两个定理,定理一: 在简单一致散列的假设下,一次不成功查找的期望时间为O(1 + n) 定理二: 在简单一致散列的假设下,平均情况下一次成功的查找需要的时间为O(1 + n) 该方法
阅读全文
Python random模块sample、randint、shuffle、choice随机函数概念和应用
摘要:Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序 列中的一个元素,打乱一组数据等。 random中的一些重要函数的用法: 1 )、random() 返回0<=n<1之间的随机实数n;2 )、choice(seq) 从序列seq中返回随机的元素;3 )
阅读全文
python实现散列表的直接寻址法
摘要:散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数, 将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 一个通俗的例子是,为了查找电话簿中某人的号
阅读全文
论学习的深度
摘要:社会突飞猛进的发展,就会压迫着社会的人要不断地去学习,去掌握新知识,才能适应社会的发展。可是,在学习的过程中,不同的人就拉开了差距。有人学习很快,能迅速的掌握新东西,有人对学习新东西如乌龟行走。究其根本,除了先天的智商有差别外,更多的是自身的原因。比如,花费的时间不够多,学习方法不得当。 最近无意中
阅读全文