嵌入式linux c开发
u010020404
fabless厂做SDK开发工作
展开
-
linux memory overcommit机制--------笔记
参考linux kernel document:overcommit-accountinglinux的虚拟内存支持overcommit(过度使用),譬如考虑一下几种情况:(1)系统目前有free内存10M, cache+buffer+swap_cache+slab_reclaim内存10M,现在需要malloc15M内存。那么是不是需要drop cache,swap out一部分内存来满足malloc 15M内存的请求;但是实际上这分配的15M内存可能我们要很长一段时间后再用,但是现在就执行drop原创 2020-06-24 22:23:47 · 1201 阅读 · 0 评论 -
fdk-aac编码及mp4v2封装h264+aac[附完整代码]
转载请注明出处一. 摘要代码基于fdk-aac和mp4v2编写完成,代码中"MY"开头的api系作者自己封装的读者可以忽略该部分。代码中主要流程部分可以总结为创建aac_encoder/mp4_muxer,然后分别在h264的callback和audio capture pcm的callback回调中执行h264的封装和aac编码封装,最后销毁aac_encoder和mp4_muxer...原创 2018-12-26 17:19:58 · 3970 阅读 · 0 评论 -
flv封装H264+AAC[附完整代码]
一. 概述总体来说比较简单这里就不详述了,参考官方文档即可《Video File Format Specification Version 10》,其中aac和h264的sequence header tag部分需要参考另外两分文档(这个在《Video File Format Specification Version 10》里有说明),这两份文档不太好找,找到的官方的还要收钱,我最终找到了一...原创 2019-01-03 09:29:45 · 3611 阅读 · 1 评论 -
rtmp推流h264+aac
一. 概述本文主要讲述如何使用开源的rtmp库来搭建一个rtmp client,推送h264和aac流到rtmp server。笔者基于两套开源的项目进行了测试:rtmpdump以及srslibrtmp(这个是国人在rtmpdump基础上优化改进扩展的rtmp项目)。srslibrtmp支持多平台上linux/mac/windows以及arm/mips交叉平台但是对交叉编译的支持不是很好(...原创 2019-01-16 17:28:42 · 4078 阅读 · 0 评论 -
笔记:linux内核内存布局以及/dev/mem
参考一下两篇文章:linux内核内存管理(zone_dma zone_normal zone_highmem)(linux memory layout)/dev/mem可没那么简单学习笔记(以x86为例)linux的虚拟地址空间:32位的CPU,最大寻址范围为2^32 - 1也就是4G的线性地址空间。Linux简化了分段机制,使得虚拟地址与线性地址总是一致的。linux一般把这...原创 2019-05-09 16:44:01 · 4362 阅读 · 0 评论 -
学习linux input子系统--按键检测
引言以linux的gpio_keys.c驱动文件为例,简单学习linux input子系统。这里主要讲述gpio_keys.c文件的实现,不对input subsystem做过多讲述。linux input subsystem内核空间主要由:设备驱动层,核心层,事件层组成。“设备驱动层”完成初始化io设备,申请input device,初始化input device,注册input dev...原创 2019-05-30 16:51:18 · 2382 阅读 · 0 评论 -
通过目标文件查看toolchain版本
参考stackoverflowhttps://stackoverflow.com/questions/2387040/how-to-retrieve-the-gcc-version-used-to-compile-a-given-elf-executable转载 2019-07-26 18:55:51 · 1538 阅读 · 0 评论 -
内核调试---coredump&stack backtrace
coredump:coredump的内核配置:需要设置executable file formats的enable core dump support属性以及general setup目录下configure standard kernel features的enbale elf core dumps属性-------------------------------------...原创 2019-09-03 15:16:07 · 938 阅读 · 0 评论 -
socket bind error: [Address already in use]
在socket编程过程中,客户端同服务端断开连接后,如果再次立即连接服务端在bind的时候会有机会出现“Address already in use”ERROR。具体原因和解决方法参见。socket.error: [Errno 98] Address already in use原因和解决方法...转载 2019-09-04 14:18:04 · 1443 阅读 · 0 评论 -
关于在vim中的查找和替换(转载)
转载出处:https://www.cnblogs.com/huxinga/p/7942194.html 1,查找在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。Vim查找支持正则表达式,例如/vim$匹配行尾的"vim"。 需要查找特殊字符需要转义,例如/vim\$匹配"vim$"。2,大...转载 2018-08-22 17:54:19 · 155 阅读 · 0 评论 -
树莓派locale问题小记
在给树莓派安装tmux时遇到了locale相关问题,命令locale显示:pi@raspberrypi:/usr/share/i18n/locales $ localelocale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_ALL to default local...原创 2018-06-17 15:53:02 · 3953 阅读 · 0 评论 -
uboot与linux内核间的参数传递过程分析
转载于:uboot与linux内核间的参数传递过程分析(ChinaUnix上的文章,不能收藏过来,只好转载了)U-boot会给Linux Kernel传递很多参数,如:串口,RAM,videofb、MAC地址等。而Linux kernel也会读取和处理这些参数。两者之间通过struct tag来传递参数。U-boot把要传递给kernel的东西保存在struct tag数据结构中,启动ke转载 2018-02-02 15:12:33 · 2176 阅读 · 0 评论 -
eclipse c +jre开发环境的建立(嵌入式linux,64位ubuntu,32位arm板)
1.64位ubuntu安装使用32位交叉编译器arm-2010.09需要注意的问题在使用之前先安装cross compiler,系统为ubuntu64位系统,安装之前用的32位的arm-2010.09,该编译器只能编译32位程序,因此还需安装32位的库,可参考:http://www.oschina.net/question/1470892_151825 **************原创 2015-10-22 11:06:22 · 1048 阅读 · 0 评论 -
eclipse 远程图形化调试嵌入式linux c arm(beaglebone black),解决常见调试问题
warning: Unable to find dynamic linker breakpoint function.GDB will be unable to debug shared library initializersand track explicitly loaded dynamic code.Cannot access memory at address 0x0warning: Could not load shared library symbols for 7 libraries原创 2015-10-22 11:13:38 · 795 阅读 · 0 评论 -
spf13-vim 解决.vimrc.local中某些命令无法执行(例如TAB设置)
解决spf13-vim的~/.vimrc.local中部分配置不生效的问题,例如TAB键的设置。原创 2017-08-02 11:33:16 · 1827 阅读 · 0 评论 -
linux内核事件通知链文章链接(概述+例子)
基本概述+例子,很详细,本来也就是较简单的内容linux内核事件通知链转载 2017-12-26 13:41:05 · 400 阅读 · 0 评论 -
sock通信中msghdr的使用
使用简介在sock通信中通用的两个I/O系统调用:ssize_t recvmsg ( int sockfd , struct msghdr * msg , int flags ) ; ssize_t sendmsg ( int sockfd , struct msghdr * msg , int flags ) ;sendmsg能做到所有write(转载 2017-12-28 10:10:40 · 1756 阅读 · 0 评论 -
通过内核空间的netlink检测网络状态变化的文章链接
内核空间 rtnetlink 检测 IP 地址变化的实现与分析给出了如何在用户空间通过rtnetlink socket接受内核的网络状态变化参数消息。参考此文章可以搭建基本的程序框架。rtnetlink 中文描述描述了rtnetlink的消息类型包括:1、RTM_NEWLINK, RTM_DELLINK, RTM_GETLINK 创建,删除或者获取网络设备的信息;转载 2017-12-22 11:28:49 · 3835 阅读 · 0 评论 -
netlink监听网络变化代码(转载)+流程分析(原创+转载)+数据结构以及相关宏的解析(原创)
主要讲述的通过netlink接受内核消息,至于如何与内核或者其他进程实现双向通信可以参考(https://my.oschina.net/longscu/blog/59534)转载 2017-12-26 19:22:46 · 3683 阅读 · 2 评论 -
Linux启动参数及实现 __setup与early_param(讲的不错,转载)
#define __setup_param(str, unique_id, fn, early) / static char __setup_str_##unique_id[] __initdata = str; / static struct obs_kernel_param __setup_##unique_id / __转载 2018-01-31 09:37:15 · 433 阅读 · 0 评论 -
eclipse c 编译工程(已有makefile文件的完整工程)
如何编译一个已经具备makfile的完整的工程以TJET_SDK为例说明如何用eclipse编译程序:在TJET_SDK的主目录下会发现有.cproject和.project隐藏文件, .project文件大小2~3K Bytes , 该文件是针对eclipse的project Description ,.cproject文件大小是10~12K Bytes,该文件是针对CDT插件的p原创 2015-10-22 11:09:35 · 5013 阅读 · 1 评论