自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git多人合作,本地回退

git 某个分支多人合作,在对本地版本进行回退之后,强制push不可取,会回退掉所有其他的代码,所以需要pull+push假设:现版本v2回退版本v1回退之后的版本,相当于v1 merge v2, 会出现一些没有追踪的文件,这些文件是v2下的文件,v1版本没有, 还可能出现冲突(别人修改他们自己的代码导致v1和v2不同)。这时一般以v2版本为准,冲突以=======下方为准,上方删除。未追踪文件需要添加,比较麻烦。总之多人合作同一分支的回退感觉还是比较麻烦的,一般是怎么解决这个问题的呢?...

2020-05-17 13:21:54 412

原创 git pull与 git fetch

git本地存储了本地的commitID以及对应的远程commitID,比如master和origin/master的commitID,相当于拥有本地仓库和远程残酷的缓存git pull 将本地仓库与远程仓库合并,同时更新master和origin/master的commitID至远程仓库的最新ID,即更新远程仓库缓存同时merge到本地仓库git fetch则是只修改本地存储的远程工作区commitID,比如origin/master的commitID,更新远程仓库缓存,需要再通过git merge o

2020-05-17 12:20:36 268

原创 红黑树总结

关键特点:1、根是黑色2、NULL是黑色3、没有相连的红色4、一个节点到NULL所有路径上所有黑色节点数量相等最高高度2log(N+1),最坏时间复杂度log(N)插入:自底向上插入:需要用一个栈保存搜索路径经历过的节点。1、按照二叉搜索树插入,新插入点为红色。2、如果新插入节点的父亲是黑色,直接返回。3、如果新插入的节点父亲是红色,分两种情况(需要一个处理函数):A、新插...

2019-12-06 21:38:15 149

原创 pthread_cond_brodcast()只唤醒一个线程的理解

```c thread_cond_t cond = PTHREAD_COND_INITIALIZER; 7 pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; 8 pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER; 9 pthread_mutex_t mutex3 = PTHRE...

2019-12-01 14:19:12 481

转载 结构体字节对齐准则

字节对齐有以下准则:1、结构体变量的首地址能够被其最大基本类型成员字节数大小所整除。2、结构体每个成员相对结构体首地址的偏移都是成员大小的整数倍,如不满足,对前一个成员填充字节以满足。3、结构体的总大小为结构体对最大成员大小的整数倍,如不满足,最后填充字节以满足。总的来说,对齐取决于最成员的大小,而不是访问总线的大小为什么要字节对齐无论数据是否对齐,大多数计算机还是能够正确工作,而且从...

2019-11-29 10:08:32 361

原创 Kernel panic - not syncing: No init found. Try passing init= option to kernel.问题的解决

制作根文件系统之后,下载后启动Linux出现如下问题VFS: Mounted root (yaffs filesystem).Freeing init memory: 128KFailed to execute linuxrc. Attempting defaults…Kernel panic - not syncing: No init found. Try passing init...

2019-01-11 21:05:28 5142 1

原创 volatile关键字的关键作用

最近移植bootloader的时候使用了韦山东的辨别启动方式的方法,代码如下:static int isBootFromNor(void){ unsigned int* p = (unsigned int*)0x00000000; unsigned int val; val = *p; *p = 0x12345678;//往0地址写数据 if(*p == 0x12345678){//判...

2018-12-16 19:36:55 198 1

原创 arm9不同启动方式的0地址对应的内存

使用NAND FLASH启动时,0地址对应的内存是内部sram也就是stepping stone,启动时会自动将flash的4K代码复制到stepping stone中执行。此时Bank0挂载的内存就是stepping stone,也就是说0地址对应的也是stepping stone中的0地址。使用nor flash启动时,在硬件上,一般我们会把nor flash的片选信号接到nGCS0上,也就...

2018-12-01 10:36:51 668

原创 s3c2440裸板mmu实例错误笔记

昨晚自己写了一个mmu实例后,下载到开发板上死活没有反应,于是我找到一个mmu实例的源码,下载下去后,可以运行。之后再下载自己的程序,发现自己的程序居然也运行起来了。我自己的程序并没有做实质性的改动,现象十分诡异。之后我想复现错误,于是拔掉电源,插上电源,再下载自己的程序,结果还是可以运行,各种修改程序都无法复现错误。今天早上起来再插电源开机的时候,发现程序又失效了。于是我复现昨晚的操作,成功...

2018-11-10 16:00:22 227

原创 通过tftp烧写.yaffs2文件出错

通过tftp下载.yaffs2到SDRAM的30000000地址,再使用nand write 30000000 root烧写到nand发现重启后出现找不到init初始程序可能是格式原因将烧写代码改为nand write.yaffs 30000000 root $(filesize)烧写后就可以重新启动了 $(filesize)指定文件大小,不加会出错...

2018-10-23 23:40:18 309

原创 u-boot环境变量注释

可参考https://blog.csdn.net/alangdangjia/article/details/28601353(1)新建,修改 set var value(如果设置多个变量,=后要用’’将表达式括起来)(2)删除 set var修改环境变量后 ,输入save保存print打印环境变量OpenJTAG> print/*u-boot传递给内核的参数,移植时经常使用...

2018-10-22 11:27:16 163

转载 cleanup

转自pthread_cleanup_push注册一个回调函数,如果你的线程在对应的pthread_cleanup_pop之前异常退出(return是正常退出,其他是异常),那么系统就会执行这个回调函数(回调函数要做什么你自己决定)。但是如果在pthread_cleanup_pop之前没有异常退出,pthread_cleanup_pop就把对应的回调函数取消了,...

2018-10-10 11:04:46 180

转载 mmap详解

转自mmap系统调用mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系统调用.但需注意,直接对该段内存写时不会写入超过当前文件大小的内容...

2018-10-09 16:11:10 458

转载 关于mknod

转自Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录 下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每 个设备号又分为主设备号和次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。对于常用设备,Linux有约定俗成的编 号,如硬盘的主设...

2018-10-05 09:33:53 618

转载 stetic extern

一.C语言中的static关键字在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。(1)修饰局部变量一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束。但是在这里要注意的是,虽然用static对...

2018-10-04 14:43:03 107

转载 Static全局变量与普通的全局变量有什么区别?

转自https://www.cnblogs.com/zjvskn/p/5548879.htmlStatic全局变量与普通的全局变量有什么区别?答:  全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个原文件组...

2018-10-04 14:36:05 1208

原创 c语言

最近打算学习嵌入式虽然之前学过c语言,但是可能已经有些生疏了,所以就再看了一下。一下是我看完之后的一些笔记,主要针对我已经生疏的知识点。数据类型auto :如果没有指定变量类型,则为auto,不过实际上我在Linux gcc上如果不指定变量类型,编译是会出错的。const:只读变量short:2字节int:4字节char:1字节long:其实只有4字节常量#define Pi ...

2018-10-01 19:35:56 138

空空如也

空空如也

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

TA关注的人

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