9 oushaojun2

尚未进行身份认证

暂无相关描述

等级
TA的排名 4w+

KEIL环境下如何让代码在 RAM中运行(转)

KEIL环境下如何让代码在RAM中运行发布时间:2016-08-26来源:ST社区标签:KEILNucleoSTM32分享到:前言经常遇到有人使用KEIL时需要将部分或者全部程序代码放到RAM中运行的问题,现将其总结在本文中。通过STM32F411Nucleo的一个例子来介绍几种让程序在RAM中运行的方法。我们先从ToggleLED函数在Flash中执行亮灭...

2019-08-02 11:28:30

linux驱动程序设计21 Linux设备驱动的调试

本章导读“工欲善其事,必先利其器”,为了方便进行Linux设备驱动的开发和调试,建立良好的开发环境很重要,还要使用必要的工具软件以及掌握常用的调试技巧等。21.1节讲解了Linux下调试器GDB的基本用法和技巧。21.2节讲解了Linux内核的调试方法。21.3~21.10节对21.3节的概述展开了讲解,内容有:Linux内核调试用的printk()、BUG_ON()、WARN_ON(...

2018-08-09 16:50:21

linux驱动程序设计10 中断与时钟

本章主要讲解Linux设备驱动编程中的中断与定时器处理。由于中断服务程序的执行并不存在于进程上下文中,所以要求中断服务程序的时间要尽量短。因此,Linux在中断处理中引入了顶半部和底半部分离的机制。另外,内核对时钟的处理也采用中断方式,而内核软件定时器最终依赖于时钟中断。10.1节讲解中断和定时器的概念及处理流程。10.2节讲解Linux中断处理程序的架构,以及顶半部、底半部之间的关系。...

2018-08-01 19:57:55

linux 下的gcc应用,编译和调试方法

原网址:https://blog.csdn.net/dawn_cx/article/details/6993623此文主要简单的介绍了gcc编译链接的过程的简单描述和调试方法的简单描述,写的很不错。gcc通常用来编译.c结尾的c文件,g++用来编译.cpp结尾的c++文件。因为gcc可以编译c++源文件,但不能完成c++使用的库的连接。GCC起步  在学习使用GCC之前,下面的这个例子能够帮助用户...

2018-07-09 15:57:36

linux驱动程序设计8 Linux设备驱动中的阻塞与非阻塞I/O

本章导读阻塞和非阻塞I/O是设备访问的两种不同模式,驱动程序可以灵活地支持这两种用户空间对设备的访问方式。8.1节讲述了阻塞和非阻塞I/O的区别,并讲解了实现阻塞I/O的等待队列机制,以及在globalfifo设备驱动中增加对阻塞I/O支持的方法,并进行了用户空间的验证。8.2节讲述了设备驱动轮询(Poll)操作的概念和编程方法,轮询可以帮助用户了解是否能对设备进行无阻塞访问。8.3节讲解在glo...

2018-07-09 15:27:19

linux驱动程序设计7 Linux设备驱动中的并发控制

在Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发的访问会导致竞态,即使是经验丰富的驱动工程师也会常常设计出包含并发问题bug的驱动程序。Linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。7.1节讲解了并发和竞态的概念及发生场合。7.2节则讲解了编译乱序、执行乱序的问题,以及内存屏障。7.3~7.8节分别讲解了中断屏蔽、原子操作、自旋锁、信号量和互斥体等...

2018-07-09 15:24:12

FatFs移植笔记,附源码

嵌入式内部使用文件系统是必须的选项,但是如果不是arm芯片一般都没有完整的带文件系统的操作系统,例如Linux,对于裸机和ucos之类的系统有必要移植嵌入式操作系统,目前用的最多的是FatFs。网上大量的方法,我这里只是自己做一遍,不以善小而不为嘛。FatFs官网:http://elm-chan.org/fsw/ff/00index_e.html下载源码后发现真的没几个文件:其中diskio.c是...

2018-07-03 18:38:39

linux驱动程序设计6 字符驱动globalmem

第6章 字符设备驱动本章导读在整个Linux设备驱动的学习中,字符设备驱动较为基础。本章将讲解Linux字符设备驱动程序的结构,并解释其主要组成部分的编程方法。6.1节讲解了Linux字符设备驱动的关键数据结构cdev及file_operations结构体的操作方法,并分析了Linux字符设备的整体结构,给出了简单的设计模板。6.2节描述了本章及后续各章节所基于的globalmem虚拟字符设备,第...

2018-05-30 18:26:47

用 GDB 调试可加载模块ko

用GDB调试可加载模块  在调试发生于模块中的panic,或者使用远程GDB调试使用动态模块的机器时,需要告诉GDB如何获取这些模块的符号信息。  首先,需要在编译模块时加入调试信息:#cd/sys/modules/linux#makeclean;makeCOPTS=-g   如果使用远程GDB,您可以在目标机上执行kldstat来了解模块的加载位置:#k...

2018-05-30 14:32:33

linux驱动程序设计5

带参数的驱动设计我们可以用“module_param(参数名,参数类型,参数读/写权限)”为模块定义一个参数,例如下列代码定义了1个整型参数和1个字符指针参数:staticchar*book_name="dissectingLinuxDeviceDriver";module_param(book_name,charp,S_IRUGO);staticintbook_num=...

2018-05-29 14:46:24

cannot stat '/var/cache/sublime-text-2/Sublime Text 2/*'解决

最近linux安装sublime-text失败,遇到这个问题,同时安装gcc也遇到这个问题,没法绕开,那就解决他。其实很好解决:原网址在这里 https://askubuntu.com/questions/613044/install-sublime-text-3-on-digitalocean-droplet-running-ubuntu-os大神的步骤是:cdto/var/cache/su...

2018-05-25 17:37:24

ESP8266 TCP透传模式传输数据流步骤(转)

原网址:http://www.cnblogs.com/Mysterious/p/4816482.html测试使用工具:WIFI模块型号:ESP8266https://item.taobao.com/item.htm?spm=a1z10.1-c.w137712-175513579.2.btbD9X&id=520305709648USB-TTL调试工具:CP2102https://item.t...

2018-05-10 19:00:46

局域网传输大文件的方案

最近新买一个笔记本,需要把旧笔记本的数据拷贝过来,发现这也是个大问题啊。先后试过如下方法:1windows文件分享。速度貌似不是很快,放弃了。2u盘拷贝,拷到什么时候,放弃。3feiq局域网传输文件,用的wifi发现速度也一般,2MB/s忍不了。4ftp,配置很复杂,一个配置没弄好就老是报错,用windows自带的ftp服务器也不好用,局域网wifi可以连到这个ftpserver,插网线...

2018-05-06 11:49:38

为控制台窗口建立消息队列(转)

介绍Windows的窗口、消息、子类化和超类化(2011-05-0815:32:07)转载▼标签:杂谈分类:windows程序设计这篇文章本来只是想介绍一下子类化和超类化这两个比较“生僻”的名词。为了叙述的完整性而讨论了Windows的窗口和消息,也简要讨论了进程和线程。子类化(Subclassing)和超类化(Superclassing)是伴随Windows窗口机制而产生的两个复用代码...

2018-04-26 11:33:52

BAT脚本重定向所有输出到某个文件的方法

最近特么的遇到个问题,需要根据命令返回的信息判断这个命令是否执行成功,思路就是把所有的信息重定向到一个文件里面,然后查找某个字符串,可是因为这个命令后面有一堆的信息,重定向如果加在命令后面就只能获取最近的一条信息,完鸡巴蛋。例如:fastboot.exewriteKeys会有如下的信息:OpeningCOM25...writeKEYS...FAILED(remote:keysexi...

2018-04-23 17:19:32

linux下的c语言风格

3.5 Linux下的C编程特点3.5.1 Linux编码风格Linux有独特的编码风格,在内核源代码下存在一个文件Documentation/CodingStyle,进行了比较详细的描述。Linux程序的命名习惯和Windows程序的命名习惯及著名的匈牙利命名法有很大的不同。在Windows程序中,习惯以如下方式命名宏、变量和函数:#definePI3.1415926/*用大写字母代表宏...

2018-04-22 21:45:02

linux编译单独一个模块makefile写法(转)

单个文件编译一个模块:[html]viewplaincopyifneq ($(KERNELRELEASE),)    obj-m := mini2440_leds.o    else  KDIR := /opt/FriendlyARM/mini2440/linux-2.6.32.2/    all:      make -C $(KDIR) M=$(PWD) modules ARCH=ar...

2018-04-21 23:32:03

linux Kconfig语法

内核配置脚本文件的语法也比较简单,主要包括如下几个方面。(1)配置选项大多数内核配置选项都对应Kconfig中的一个配置选项(config):configMODVERSIONSbool"Moduleversioningsupport"helpUsually,youhavetousemodulescompiledwithyourkernel.SayingYherema...

2018-04-21 20:26:04

linux shell编程

linuxshell编程很有意思,可以做很多有意思的事情,用熟了可以随心所欲的控制电脑做自动化的操作,很有意思。如下列举一下自己遇到的有意思的操作。1查询目录中所有的文件[python]viewplaincopyfor file in `ls ./`; do          echo $file

2018-04-20 10:28:21

嵌入式二维码显示方案,单片机也没问题,附源码

嵌入式设备中显示二维码在移动支付和其他领域都有广泛的应用,本文是一个嵌入式二维码实现方案,利用的是一个老外的开源二维码显示库,在控制台中模拟嵌入式中的lcd显示二维码(本文涉及的所有源码都可以去我的csdn下载资源中找到)。开源库地址:https://fukuchi.org/works/qrencode/使用方法:1下载代码后,提取如下文件(图1)即可:  注意:config.h是库里面没有的...

2018-04-11 13:39:34

查看更多

勋章 我的勋章
    暂无奖章