自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (3)
  • 收藏
  • 关注

原创 linux嵌入式开发常用下载链接

ARM 嵌入式开发常用工具

2023-02-19 17:38:27 267

原创 linux下STM32CUBEMX+手工移植rt-thread nano

因官方推荐的cubemx移植方法导致每次修改stm32CubeMX重新生成后需屏蔽部分代码,cubemx中添加组件方式造成目录复杂,内容杂乱,且网络中对于使用gcc交叉编译工具下的stm32相关教程较少,因此在此探究一种尽量减少移植难度的方法。望大家指正。文章写于2021年,版本可能有些不同了,但做法应当是类似的

2022-09-28 01:34:28 985

原创 嵌入式学习笔记-2022.2.22

arm开发学习自记录,包括linuxd uboot\kernel、c语言、网络编程与应用编程

2022-02-22 10:58:19 2184

转载 【转载】I2C总线协议详解

放置原文链接失效,转载至知乎@曾小庆1、 介绍I²C总线规范对于面向8 位的数字控制应用,譬如那些要求用微控制器,的要建立一些设计标准:• 一个完整的系统通常由至少一个微控制器和其他外围器件,例如存储器和I/O 扩展器组成。• 系统中不同器件的连接成本必须最小。• 执行控制功能的系统不要求高速的数据传输。• 总的效益由选择的器件和互连总线结构的种类决定。产生一个满足这些标准的系统需要一个串行的总线结构,尽管串行总线没有并行总线的数据吞吐能力,但它们只要很少的配线和IC 连接管脚。然而,总线不

2022-01-17 15:12:21 1393

原创 keil51中ram&rom

以STC15F2K60S2为例:ROM:60K FLASH 0000 H-0EFFF HSRAM:内部RAM 256字节+内部扩展RAM1792字节其中内部RAM高128字节(0x80-0xff)与SFR地址重叠只能间接寻址内部的扩展ROM可使用xdata声明存储类型:如unsigned char xdata i= 0;内部扩展RAM由AUXR寄存器的 EXTRAM(即第二位序号为1)控制,此为为1时禁止使用内部扩展RAM...

2021-11-29 15:31:40 966

原创 arm-s5pv210移植linux

待续

2021-10-25 14:20:10 255

原创 stm32移植rt-thread移植-作废

待续

2021-10-25 14:19:13 445

原创 嵌入式项目开发

前言就嵌入式来说,51单片机、stm32单片机、 Cortex-A微处理器,都可以用来开发嵌入式项目。为个人深入了解学习与对比,进而写下此篇笔记。1.开发环境开发不同的芯片,首先应当有具体的硬件环境,其次是搭建配置软件环境。软件环境搭建记录---->传送门2.51、stm32、s5pv210对比1.横向对比51单片机-Cortex-M-ARM Cortex-A8内核处理器具体:STC15F2K60S2 兼容8051内核 Flash:60K SRAM:2K EEPROM:1K 内部时

2021-10-23 16:34:49 2789 2

原创 LINUX下 嵌入式软件环境搭建记录

此片文章记录搭建开发51、stm32、 Cortex-A的开发环境所需软件与简易过程1.开发环境由于学习详细的开发步骤,故不使用IDE环境如keil等,为顺便学习使用linux本文开发环境如下:操作系统:deepin20.2.4(深度linux)2.相关软件(公用部分)-0-.代码编辑器:Visual Studio Code微软的代码编辑工具---->传送门-1-.串口调试工具:minicomlinux终端软件的串口调试助手-2-.51单片机开发所需工具与方法1.搭建SDCC编.

2021-10-23 16:22:02 295

原创 RT-Thread-学习分析(详细版)

RT-Thread简介–>>>下载具体包括以下部分:内核层:RT-Thread 内核,是 RT-Thread的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件/ 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。组件与服务层:组件是基于 RT-Thread 内核之上的上层软件,例如虚拟文件系统、FinSH 命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,

2021-10-17 00:31:32 13037 2

原创 RT-Thread 编程风格

RT-Thread 编程风格这是一份 RT-Thread 开发人员的开发指引。RT-Thread 做为一份开源软件,它需要由不同的人采用合作的方式完成,这份文档是开发人员的一个指引。RT-Thread 的开发人员请遵守这样的编程风格。同时对于使用 RT-Thread 的用户,也可通过这份文档了解 RT-Thread代码内部一些约定从而比较容易的把握到 RT-Thread 的实现方式。1.目录名称目录名称如果无特殊的需求,请使用全小写的形式;目录名称应能够反应部分的意思,例如各芯片移植由其芯片名

2021-10-16 15:32:47 417

原创 arm-从0开始刷机(linux下)

环境1.操作系统:deepin 5.3.152.代码编辑器:Visual Studio Code3.

2020-06-17 16:19:47 1425

原创 11.c练习-高级IO

// 阻塞式IO(内核默认) wait\pause\sleep…read、write文件等情况// 非阻塞IO O_NONBLOCK打开文件 或fcntl设置非阻塞标志// IO多路复用 IO multiplexing 用在需要多路 非阻塞式(外部表现阻塞式,内部实际是非阻塞式自动轮询的)select poll都是IO多路复用函数// 异步IO:系统软件实现的中断响应,注册一个信号处理// IO的O_ASYNC设置当前文件描述符接收信号(异步通知)// F_SETOWN设置当前进程接收信号#

2020-06-16 01:53:33 203 1

原创 10.c练习-信号

// 信号是内容受限的,通讯内容少,异步的// 信号发出:用户终端按下按键,硬件异常时系统内核发信号,用户通过kill命令发送信号,软件条件满足后#include <stdio.h>#include <signal.h>#include <unistd.h>#include <stdlib.h>#define DEBUG //DEBUG时需要打开#ifndef DEBUG#define dbg(format, ...) while(0)#

2020-06-16 01:51:19 199

原创 学习的目标路线

ARM–UBOOTlinux–内核移植linux–驱动C语言基础api数据库其他shellmakefilegdb可选QT数据库c++java

2020-06-09 18:39:16 150

原创 9.c练习-管道&有名管道

#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <string.h>#include <sys/wait.h>#include <sys/stat.h>#include <fcntl.h>#define DEBUG

2020-06-09 01:51:52 261

原创 8.c练习-多进程-单例运行&守护进程

#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <stdlib.h>#include <unistd.h>#include <sys/stat.h>#include <fcntl.h>#define DEBUG //DEBUG时需要打开#ifndef DEBUG#define dbg(format, ...) wh

2020-06-09 00:30:48 211

原创 7.c练习-多进程

#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <time.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/wait.h>#define DEBUG //

2020-06-08 22:00:22 174

原创 6.c练习-双链表

#include <stdio.h>#include <string.h>#include <stdlib.h>#define DEBUG //DEBUG时需要打开#ifndef DEBUG#define dbg(format, ...) while(0)#else#define dbg(format, ...) printf(format, ##__VA_ARGS__)#endiftypedef struct node{ int d

2020-06-08 18:18:04 86

原创 5.c练习-堆栈数据区&结构体枚举

#include <stdio.h>#include <stdlib.h>#if 0int 全局变量 = 1;//范围为全局,在数据区static int 静态全局 = 0;//只能作用于本文件,在数据区int main (void){ int 局部变量 = 1; // 在栈中,自动分配 static 静态局部变量 = 1; // 在数据区,作用范围本函数 char *p = (char *)malloc(5); //

2020-06-06 22:16:44 126

原创 4.c练习-复杂指针

#include <stdio.h>#if 0//数组指针与指针数组int main(void){ int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int in[5] = {0};// 指针数组的实质是一个数组,存储的内容是指针变量:int *p[5]; int *p[5] ={NULL};// 数组指针的实质是一个指针,指针指向的是一个数组:int (*p)[5]

2020-06-06 21:47:49 139

原创 3.c练习-指针

c语言和c++中的NULL#ifndef __cplusplus#define NULL ((void *)0)#else /* C++ */#define NULL 0#endif /* C++ */#include <stdio.h>#include <string.h>// 64位机#define DEBUG //DEBUG时需要打开#ifndef DEBUG#define dbg(format, ...) while(0)#else#d

2020-06-06 19:08:21 109

原创 2.c练习-位操作

#include <stdio.h>#define DEBUG //DEBUG时需要打开#ifndef DEBUG#define deb(format, ...) while(0)#endif#ifdef DEBUG#define deb(format, ...) printf(format, ##__VA_ARGS__)#endif#define SET_NTH_BIT(x, n) (x| ((1U)<<(n))) //定义这个宏用来特定位置1,x为

2020-06-06 16:50:32 107

原创 1.c练习-DEBUG宏

//仅仅是打印函数名字替换 DEBUG <--> printf#define DEBUG(format, ...) printf(format, ##__VA_ARGS__)//__VA_ARGS__ 是一个可变参数的宏.##__VA_ARGS__ 宏前面加上##的作用在于, //当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错//替换打印函数,在打印出来的内容加上前缀#define XFUNC_PRINT(format, arg...) print

2020-06-06 15:55:09 149

原创 Linux应用编程&网络编程

常用Linux API和c标准库函数常用【shell】stat :查看文件属性信息chmod :权限修改(root用户可用)chown :属主修改umask :设定我们系统中新创建的文件的默认权限的。> :重定位命令 ,相当于API的dupfile : 查看文件信息export :命令查看环境变量ps (-a/aux/ajx):查看进程相关kill :-信号编号 进程ID,向一个进程发送一个信号常用【LinuxAPI】&【c标准库】::文件相关:open、c.

2020-06-06 02:48:12 503

原创 c语言技巧以及注意事项

开发步骤以及注意事项&常用开发技巧集锦实时查man手册:man 1 xx查linux shell命令,man 2 xxx查API, man 3 xxx查库函数输入型参数和输出型参数:会使用errno和perror如if(a11) 最好写为if(11a)避免野指针,判断指针是否野指针时,写成if (NULL != p)注意:输入型参数与输出型参数用宏定义来实现DEBUG和release//学习方法:man手册、头文件、百度、博客、总结写程序尽量避免使用全局变量,尤其是非stat..

2020-05-22 00:26:30 838

转载 嵌入式行业该怎样去面试?

作者:xpconfig链接:https://www.zhihu.com/question/22168179/answer/366025214来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。就我来看,面试应届生主要从四个方面考虑:1.基本功2.动手能力3.学习能力4.沟通和团队协作能力我不会上来就问你你简历上写的什么I2C,SPI这些协...

2020-02-25 19:30:44 305

原创 1.9.SDRAM

SDRAM(soc外接的设备)Syncronized Dynamic Random Access Memory同步动态随机存取存储器DDR :SDRAM升级版 双倍速的SDRAM都属于动态内存(相对于SRAM)都要先运行一段初始化代码NORFLASH\NANDFLASH\硬盘都类似于此SDRAM通过数据总线和地址总线与SOC通讯SDRAM数据手册:(给硬件工程师和选型的)...

2020-02-22 12:34:25 285

原创 1.8.重定位

位置无关编码PIC:汇编源文件被编译后编码方式与位置(内存地址)无关(放在哪都可运行)位置有关编码:汇编源文件被编译后 编码方式与位置(内存地址)有关大部分编码都是位置有关代码,设计一个程序时会给程序指定一个运行地址运行地址:实际上运行的地址-------链接地址:预先设定好的地址(位置有关码必须相同)指定方式Makefile中用 -Ttext 0x0 指定链接的地址是0x0或...

2020-02-22 12:32:04 555

原创 1.7.关看门狗.设置栈.开icache

看门狗定时器watch dog timer作用:电子设备跑飞或死机时使设备自动复位(无人值守)物理特性:实际是soc内部的定时器,时间到之前必须重新置位看门狗,否则会强制复位原理图:不用分析,属于内部外设数据手册:现在先关闭看门狗(一般默认工作)实际上s5pv210bl0 已经关了 看不到现象在led流水灯基础上改代码//定义寄存器宏#define G...

2020-02-22 12:31:06 350

原创 1.6.点亮led

构成:Makefile Write2sd Mkv210_image.c start.SMakefile(常用情况:编译和链接分开)编译器:gcc链接器:ld$@ $<自动变量led.bin: start.o arm-linux-ld -Ttext 0x0(链接地址)-o led.elf(可执行程序)$^arm-linux-objcopy(制作镜像)-O...

2020-02-22 12:24:43 308

原创 1.5.Makefile

Makefile作用:管理工程 多个.c .h文件构成:目标:顶格写 后面是冒号 后面是依赖依赖:用来产生目标的原材料命令:前面一定是TAB,要生成目标需要做的事情用法:直接make将执行第一个目标exe: a.c b.c(TAB)gcc a.c b.c -o execlean:rm exe$@ :表示规则中的目标文件集。在模式规则...

2020-02-22 12:17:02 109

原创 1.4.mkv210_image.c

mkv210_image.c/****************************************作用:编译后执行从led.bin(USB启动镜像)得到210.bin(SD卡启动镜像)由IROM applicationnote文档可制作此程序主要是添加校验头main接受两个形参argc是用户实际执行程序接收的参数个数(包含执行程序本身)argv[]是字...

2020-02-22 12:16:30 151

原创 1.3.linux交叉编译工具链

交叉编译工具链安装软件apt-get install xxx、安装包安装、源代码安装/bin放用户使用的应用程序 /sbin放系统自带管理程序安装包安装编译工具:在/usr/local/arm/ 将工具解压到这里 /usr/local/arm/arm-2009q3/bin$ 添加环境变量echo $PATHExport PATH=/usr/local/arm/arm-20...

2020-02-22 12:15:39 178

原创 1.1.开发板刷系统

串口:监控调试、程序输出,做系统控制台常用软件:超级终端、SecureCRT、MINICOM(Linux)Win:驱动:sudo apt-get install linux-headers-$(uname -r)安装CH340 make.在linux系统的/lib/modules/3.13.0-32-generic/kernel/drivers/usb/serial目录下找到 ...

2020-02-22 12:13:23 262

原创 1.0.S5PV210启动过程

嵌入式系统:外接Nand +外接DRAM +Soc内置SRAMS5PV210启动:内置96KB SRAM(IRAM)内置64K NorFlash(iROM)210启动过程:上电从IROM读取预先设置的代码(可直接读取运行)作用:系统基本初始化,判断启动模式,相应外部存储器读取启动代码到内部SRAM。(CPU时钟 关看门狗等,只能初始化SOC内部的东西)从SRAM运行(从外部存...

2020-02-22 12:12:22 193

INA219_Driver STM32 CUBEMX RT-thread 驱动

INA219_Driver STM32 CUBEMX RT-thread 驱动

2021-12-30

STM32CubeMX_v5.3.0.zip

STM32CubeMX_v5.3.0 HAL库开发工具!STM32CubeMX_v5.3.0 HAL库开发工具!STM32CubeMX_v5.3.0 HAL库开发工具!STM32CubeMX_v5.3.0 HAL库开发工具!

2020-02-10

Keil5c51带LIC工具.7z

此内置LIC工具已失效,请移步keilLIC2032.此内置LIC工具已失效,请移步keilLIC2032此内置LIC工具已失效,请移步keilLIC2032此内置LIC工具已失效,请移步keilLIC2032

2020-02-10

空空如也

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

TA关注的人

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