03 2019 档案

bootloader新的理解
摘要:1.对于bootloader这样的程序,作为板卡刚开始启动的部分,大致的顺序是一致的,大部分都是分为两个部分,一部分是汇编编写的,一部分是用c语言编写的。一般在汇编部分完成各种初始化的操作,比如关闭看门狗,防止开发板每3s启动一次,初始化SDRAM,初始化NANDFLASH,由于希望裸板有可以工作在 阅读全文

posted @ 2019-03-29 12:16 xiegangqingnian 阅读(416) 评论(0) 推荐(0)

malloc
摘要:一、malloc()和free()的基本概念以及基本用法: 1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 关于分配失败的原因,应该有多种,比如说空间不足就是一 阅读全文

posted @ 2019-03-28 10:15 xiegangqingnian 阅读(219) 评论(0) 推荐(0)

重定位
摘要:、链接地址和运行地址。 ①运行地址,顾名思义就是程序运行的时候的地址,也就是你用工具将代码下载到RAM的那个地址,也叫加载地址。 ②链接地址,由链接脚本指定的地址。为什么需要链接脚本指定地址呢?你想一下,在c语言编程中,当我们需要调用一个A函数的时候,编译器是怎么找到这个A函数?编译器肯定是知道它被 阅读全文

posted @ 2019-03-28 10:14 xiegangqingnian 阅读(146) 评论(0) 推荐(0)

Dijkstra算法
摘要:Dijkstra算法 Dijkstra算法算是贪心思想实现的,首先把起点到所有点的距离存下来找个最短的,然后松弛一次再找出最短的,所谓的松弛操作就是,遍历一遍看通过刚刚找到的距离最短的点作为中转站会不会更近,如果更近了就更新距离,这样把所有的点找遍之后就存下了起点到其他所有点的最短距离。 下面的地址 阅读全文

posted @ 2019-03-22 15:45 xiegangqingnian 阅读(123) 评论(0) 推荐(0)

c基础回顾
摘要:1.在一个宏定义中,编译器可以检测到绝大多数由多余符号所导致的错误。但不幸的是,编译器会将每一卒使用这个宏的地方标记为错误,而不会直接找到错误的根源——宏定义本身,因为宏定义已经被预处理器删除了。 2.带参数的宏,[#define 指令-带参数的宏] #define 标识符 (x) 替换列表 其中x 阅读全文

posted @ 2019-03-16 18:56 xiegangqingnian 阅读(105) 评论(0) 推荐(0)

linux自旋锁、互斥锁、信号量
摘要:为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。 Linux 使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展 阅读全文

posted @ 2019-03-14 17:10 xiegangqingnian 阅读(554) 评论(0) 推荐(0)

linux同步机制2
摘要:一.并发控制(1)自旋锁得不到资源,会原地打转,直到获得资源为止定义自旋锁 spinlock_t spin;初始化自旋锁 spin_lock_init(lock);获得自旋锁spin_lock(lock);获得自旋锁,如果能立即获得,则马上返回,否则自旋在那里,直到该自旋锁的保持者释放spin_tr 阅读全文

posted @ 2019-03-14 16:25 xiegangqingnian 阅读(170) 评论(0) 推荐(0)

linux同步机制
摘要:很早之前就接触过同步这个概念了,但是一直都很模糊,没有深入地学习了解过,近期有时间了,就花时间研习了一下《linux内核标准教程》和《深入linux设备驱动程序内核机制》这两本书的相关章节。趁刚看完,就把相关的内容总结一下。为了弄清楚什么事同步机制,必须要弄明白以下三个问题: 什么是互斥与同步?为什 阅读全文

posted @ 2019-03-14 15:48 xiegangqingnian 阅读(2308) 评论(0) 推荐(1)

对arm裸板调试的理解
摘要:由于arm芯片一般都包含的由jtag调试这项功能,cpu向外部发出信号时,一般都要同jtag发送出去,它就像一个路口的交警一样,能够控制车辆的运行,当然在arm中指的是cpu发出的数据和地址,我们在调试的时候,拿到板子将板子的jtag接口接到jtag调试器,然后将jtag调试器与pc相连,那么调试系 阅读全文

posted @ 2019-03-08 11:39 xiegangqingnian 阅读(323) 评论(0) 推荐(0)

编程领悟
摘要:在使用linux编程时,能够很清晰的了解到程序整个的编译流程,由于linux是开放源代码的,因此可以清晰的了解到如何将开放源代码的程序设计、加入函数库的原理、通过编译而成为可以执行的二进制程序,最后该执行文件可以被我们所使用的一连串过程。最传统的软件安装,自然就是通过源代码编译而来,而linux提供 阅读全文

posted @ 2019-03-07 15:04 xiegangqingnian 阅读(129) 评论(0) 推荐(0)

python基础学习
摘要:1.作用域:在_***这样的变量成为私人变量,一般表示内部逻辑的函数,而×××这样的变量称之为公开变量,是可以被外部函数引用的,_**__这样的特殊变量称之为特殊变量,一般都有特殊含义,不能将函数定义成这样。这是一种非常有用的代码封装和抽象的方法。外部不需要引用的函数全部定义为private,只有外 阅读全文

posted @ 2019-03-01 09:37 xiegangqingnian 阅读(143) 评论(0) 推荐(0)

导航