摘要:
要想实现三者互ping,韦老师虽然专门出了视频说明,但是在自己配置过程还是出现了问题,这里记录一下解决办法,虽然我也不知道原因,但是解决了出现的问题也实现了三者互ping。 首先,我的硬件设备是PC通过无线连接wifi路由器,单板通过网线直接和电脑连接。 要实现互相ping,需要把PC主机上的两个网 阅读全文
该文被密码保护。 阅读全文
摘要:
1、字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。 2、块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。 每一个字 阅读全文
摘要:
根文件系统启动分析 启动根文件系统过程UBOOT:启动内核内核:启动应用程序 Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动应用程序的运行是依赖文件系统的。(所以需要挂接根文件系统) 执行应用程序在“init_post”这个函数中。 第一 阅读全文
摘要:
这个主要让我们知道,不管你怎么变化,不变的是实质。 其他不多说,主要是 X86: X64: 如果你觉得你搞懂了,那么做个随堂测试吧:把32改成31 此时在X86和X64上应该输出多少?(答案在下方) Answer: 默认8字节对齐时,X64:143 X86:119 默认4字节对齐时,X64:131 阅读全文
摘要:
在uboot学习的时候, 我们知道了一个庞大的程序,感觉无从下手,但其实,通过韦老师和一些老手的经验告诉我,如果我们不是专门弄uboot的,一般只用知道怎么用就行了。确实这个东西太大了而且花那么多时间去弄这个也不值得。同理,uboot的终极奥义是启动内核,现在uboot的简单应用我们已经会了,内核是 阅读全文
摘要:
今天在进行STM32内部falsh存储的时候,发现固件库历程的函数原型是这样的: 第一个是地址,在我的STM32中是2K一页的,第二个是要写入的数据。 问题就来了,存储一个小数该怎么办呢?固件库给的是整形数据啊! 三种解决办法: 第一:最具大众性的 把小数乘以系数放大,当做整数存储,然后再除以放大系 阅读全文
摘要:
栈的定义栈是一种特殊的线性表栈仅能在线性表的一端进行操作 栈顶(Top):允许操作的一端 栈底(Bottom):不允许操作的一端 栈的性质 栈的操作 栈的一些常用操作 创建栈 销毁栈 清空栈 进栈 出栈 获取栈顶元素 获取栈的大小 栈的顺序存储实现 顺序存储 阅读全文
摘要:
之前一直在想,为什么没有人出一个完全从零写uboot和移植剪裁内核的教程,后来发现,确实这样的教程十分不容易,还有就是我们也没有必要花那么多时间去做别人已经做好的事情,所以,一般而言我们只用管怎么实现功能。(把更多的时间给音频、视频、图像类等的算法去更加符合经济效益)。 我们知道uboot的菜单中是 阅读全文
摘要:
有了#ifdef 为什么还需要#if defined ? #if 0 注释掉之后: 可见,#ifdef虽然我们最常见也用得最多,可是#if defined(XXX)却可以有 &&,||,!,逻辑与,逻辑或,逻辑非等操作,而#ifdef却不支持这样的特性。 阅读全文
摘要:
为什么一来需要把cpu 设置成svc管理模式? usr模式,此模式不可以直接访问板子的硬件资源,而uboot初始化,必须要去访问此类资源,所以不可以设置为usr模式。 svc模式属于特权模式,可以访问所有硬件受控资源。相对于其他的模式,SVC模式可以访问的资源更多。 还有就是: 需要再次说明的是,a 阅读全文
摘要:
关于任务栈和系统栈的基础知识,可以参考之前的随笔。(点击这里) 这里再次说明:#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 17 * 1024 ) ) 这个宏,官方文档解释: FreeRTOS堆中可用的RAM总量。 只有在configSUPPORT_DYN 阅读全文
摘要:
U-boot的启动一般分为两个阶段,现在我们先将第一阶段。 在此之前,我们先了解一下uboot的目录结构,各个文件夹是什么作用。 如果连各个文件夹是干什么的都不清楚就开始移植剪裁,势必会和我刚拿到开发板时对着uboot一脸懵逼的情景一样。 所以,我们先看uboot文件夹到底包含了哪些内容: Boar 阅读全文
摘要:
官方下载地址:ftp://ftp.denx.de/pub/u-boot/ uboot的终极奥义就是启动内核。 但是,现在,我们先做最基本的,去官网下载一个支持自己板子的uboot,然后解压缩,打补丁。 官网的uboot肯定不能对应所有的板子,所有需要根据自己特定的板子打补丁,以满足自己特定cpu的需 阅读全文