linux
文章平均质量分 76
L.G.F
这个作者很懒,什么都没留下…
展开
-
使用GDB中的watch来调试指来指去的指针
引言C代码中经常会有大量的指针在很多不同函数中传来传去,甚至还有强制类型转换,让阅读代码和调试BUG的人苦不堪言。更有甚者将全局变量指针赋值给局部变量,然后再作为参数传出并修改。 这是官网的说明:http://sourceware.org/gdb/current/onlinedocs/gdb/Set-Watchpoints.html#Set-Watchpoints说明watch是gdb众多命令中的一个,用来检测变量,当被监测的变量被修改时,...原创 2021-08-15 22:59:39 · 2300 阅读 · 0 评论 -
char* 与 char[] 返回值
环境Linux VM-0-2-centos 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux示例#include <stdio.h>char* get_name_1(){ char name[] = "zhaoyuhe"; return name;}char* get_name_2(){ char *name = ".原创 2021-01-02 13:19:49 · 3167 阅读 · 0 评论 -
linux启动脑图
原创 2020-04-03 18:14:22 · 133 阅读 · 0 评论 -
一步一步写嵌入式操作系统----MMU
MMU作为一个硬件单元有把虚拟地址转换成物理地址的作用,操作系统可以让用户运行大量的程序,这些程序都需要分配内存,而一段程序重复运行的时候,如果没有MMU,一段物理地址不可能被重复使用,而有MMU的时候可以把同一虚拟地址映射到不同的物理地址段,这样就避免地址冲突了。而且大家都有体验,以linux为例,存在交换分区,它可以把硬盘的存储空间映射到虚拟地址中,这样一来相当于内存被扩容了,当然这样的便利也...原创 2019-12-06 15:49:27 · 268 阅读 · 0 评论 -
一步一步写嵌入式操作系统----启动
启动顺序:程序运行栈初始化→机器处理外设初始化文件调用顺序:leeos.lds(链接脚本决定从_start开始执行)→start.s(_start)→init.s(__vector_reset,plat_boot)→boot.cabnormal.s.global __vector_undefined.global __vector_swi.global __vector_pre...原创 2019-12-06 15:05:20 · 275 阅读 · 0 评论 -
一步一步写嵌入式操作系统----环境搭建
本文是《一步一步写嵌入式操作系统》的学习笔记。书籍工具下载可参考:https://github.com/Joyounger/leeos工具:skyeye 用于在linux上模拟开发板,书中使用的是s3c2410;ubuntu12.0+skyeye1.2.61.在ubuntu中安装skyeye1.2.62.配置skyeye.conf文件,文件和代码位于同级目录下#cpu型号c...原创 2019-12-06 13:39:04 · 510 阅读 · 0 评论 -
Imx6 网络烧录uboot和linux kernel
正常烧录uboot和kernel需要使用MfgTool2工具、串口线和boot下载模式;但是因为项目需要,机器无法连接串口线,且机器数量多,一个一个拆解升级太麻烦,所以寻找linux下网络更新方法。工具:putty或者xhell、烧录工具Profiles\Linux\OS Firmware\firmware-3035\initramfs.cpio.gz\initramfs.cpio\usr\b...原创 2019-10-24 11:15:52 · 362 阅读 · 0 评论 -
linux学习---嵌入式系统简单启动流程
原创 2019-07-22 14:59:33 · 154 阅读 · 0 评论 -
一次linux网络和ssh异常分析
坐在安静空荡的办公室,听着楼下打球的声音和汽车的鸣笛声,浮躁的心此时有了片刻的宁静。最近部署在场外的机器陆续出现ssh远程无法连接的问题,更甚者无法ping通。经过一番调查发现是内存泄露导致,项目的程序随着时间会占用越来越大的内存,当超过系统极限时,操作系统会杀死该进程,如果到此还不会造成其他问题,我们会立刻发现功能无法使用,问题也会就此解决;但是为了确保该程序的运行,在系统的启动脚本里加了检...原创 2019-09-17 18:47:37 · 256 阅读 · 0 评论