- 博客(74)
- 收藏
- 关注
转载 韦东山之学习笔记——NOR Flash
Nor Flash的简单介绍搬砖于:https://www.cnblogs.com/053179hu/p/10635601.htmlNor是非易失性存储器之一Nor Flash最大的特点是支持XIP(Execute On Chip),就是可以直接在Nor Flash的皮内内存执行,在Nor Flash中的代码运行时不需要重定位复制到RAM内。Nor Flash的地址线跟数据线是分开的,数据的读取和RAM很类似,只要能够提供数据地址,数据总线就能正确给出数据,不过不能直接对他进行写操作,执行写操
2021-09-05 09:19:12
2727
转载 韦东山第一期学习笔记——异常与中断
当异常中断发生时,系统执行完当前指令就会跳转到响应的异常中断处理程序,当处理程序执行完毕后,程序返回到发生中断的指令的下一条指令执行;在进入异常中断处理程序时,要保存被中断的执行现场,在异常中断处理程序退出时,要恢复被中断的程序的执行现场ARM七种工作模式说异常中断前,就有必要说说ARM的七种模式,因为在发生异常或者中断的时候会进入ARM的其中一个模式进行处理。用户模式(USR):正常程序执行模式,不能直接切换到其他模式系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换
2021-08-02 22:35:05
1983
原创 韦东山第一期学习笔记——重定位
重定位必须知道的几个概念什么是代码重定位?什么是位置无关码什么是运行地址为什么要代码重定位?nand flash启动的情况nor flash启动的情况两种方式的重定位代码重定位例如执行如下几条汇编指令必须知道的几个概念什么是代码重定位?把可执行程序从一个位置复制到另一个位置的过程叫做重定位什么是位置无关码什么是运行地址是指程序指令真正运行的地址,是由用户指定的,用户将运行地址烧录到哪里,哪里就是运行的地址。比如有一个指令的编译地址是0x0,实际运行的地址是0x30000000,如果用户将指令烧到
2021-07-24 09:19:05
1072
原创 汇编向C语言函数传递参数
/* 重定位text, rodata, data段整个程序 */mov r0, #0ldr r1, =_start /* 第1条指令运行时的地址 */ldr r2, =__bss_start /* bss段的起始地址 */sub r2, r2, r1bl copy2sdram /* src, dest, len */ 这里的copy2sdram是C语言的一个带参的函数,里面有三个参数src、dest、 len,问题是我们应该如何在汇编里传递参数呢,我们用的是寄存器进行传
2021-07-20 11:10:07
1245
转载 使用刚安装好的arm-linux-gcc出现了一些问题libstdc++.so.6: cannot open shared object file: No such file or directory
因为centos7系统是64位的,安装的编译器是32位的,因此显示缺少共享库看这个大佬的文章:https://www.geek-share.com/detail/2721555946.html
2021-07-08 07:25:49
547
原创 -bash: export: `PAT=.....不是有效的标识符
这个是否一定要仔细查看自己的写的代码,可能因为多一个空格就会造成这种局面export PATH=$PATH:/usr/local/arm/arm-linux-gcc-4.4.3/bin
2021-07-08 07:05:27
953
原创 搬砖之韦东山学习笔记——基于S3C2440的内存控制器与SDRAM(12)
内存控制器与SDRAM内存接口概念内存控制器不同位宽设备的连接例一怎样确定芯片的访问地址:例二时序图读时序写时序为什么需要通过编程来控制读写时序呢?S3C2440如何能读写NOR FALSH的数据?NOR FALSH时序名词解释NOR FLASH 读时序SDRAM工作原理问题1:怎样访问里面的某个格子呢**问题2:那么多的信号有谁发出呢?问题3:那问题是怎么拆分呢??读数据程序具体匹配2440内存控制器设置:BWSCON位宽寄存器:采用默认设置搬砖链接存储控制器(SDRAM操作)2440裸机-12-
2021-06-23 11:58:33
1427
原创 nginx 无法在浏览器中通过域名或者IP访问
环境:在阿里云服务器上的linu操作系统使用系统:centosIP无法访问第一个问题下面的几个问题别人似乎遇到过,ip无法访问的原因,但是我这边真正原因实在阿里云服务器那边,我们需要在安全组添加我们的开放端口号。第二个可能你的IP被占用,所以你需要查看端口号,查看特定端口用如下第一个命令,查看全部端口用第二个命令实行kill -s 9 pid,这里的pid是你查看端口号时显示的第三个问题第二个问题是你的防火墙没有关闭,或者你没有开放端口号[root@iZwz967a5gqt3a.
2021-06-21 09:50:55
1783
原创 韦东山学习笔记——UART(串口)的使用
基于jz2440的串口使用搬砖的文章概述UART的发送和接收串口之间的数据传输UART的用途串口的数据帧参数说明起始位数据位奇偶校验位停止位波特率怎么发送一字节数据,比如‘A‘?UART的优缺点优点缺点UART相关配置寄存器ULCONn:线路控制寄存器UCONn:控制寄存器UFCONn:FIFO控制寄存器UMCONn:MODEM控制寄存器UTRSTATn:收发状态寄存器UERSTATn:错误状态寄存器UFSTATn:FIFO状态寄存器UMSTATn:Modem状态寄存器UTXHn/URXHn:传输缓冲寄存器
2021-06-14 18:15:44
3524
1
转载 nginx安装时,make 编译出现的错误gx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit
错误如下:操作步骤cd objsvim Makefile找到- werror 删掉即可原因:将警告当成错误处理,- werror就在前几行
2021-06-09 11:27:58
2249
2
转载 韦东山学习笔记——内存控制器与SDRAM
本来想根据韦东山老师的教学视频写一下笔记的,然后网上找了一下,发现韦东山老师其实字节也是写了博文,那就直接转载老师的文章里,方便以后自己需要的时候可以找到:韦东山老师博文:https://cloud.tencent.com/developer/article/1708808...
2021-06-07 11:36:47
218
原创 微信小程序使用MQTT远程控制单片机——MQTT控制报文③
微信小程序MQTT远程控制单片机——DISCONNECT③DISCONNECT ——断开连接固定报头可变报头有效载荷响应测试PINGREQ——心跳请求固定报头可变报头有效载荷响应测试SUBSCRIBE - 订阅主题SUBSCRIBE报文固定报头可变报头有效载荷DISCONNECT ——断开连接固定报头报文则为:E0 00可变报头DISCONNECT报文没有可变报头。有效载荷DISCONNECT报文没有有效载荷。响应客户端发送DISCONNECT报文之后:必须关闭网络连接不能通过那个
2021-05-31 23:33:52
4090
17
原创 微信小程序使用MQTT远程控制单片机——MQTT控制报文②
微信小程序远程控制单片机——使用MQTT协议MQTT控制报文——CONNECT(连接服务器)A:固定报头 Fixed headerB:可变报头 Variable header协议名(Protocol Name)协议级别(Protocol Level)连接标志(Connect Flags)a. 清理会话 Clean Sessionb. 遗嘱标志 Will Flagc. 遗嘱QoS Will QoSd. 遗嘱保留 Will Retaine. 用户名标志 User Name Flagf. 密码标志 Passwor
2021-05-30 17:43:46
3702
原创 微信小程序使用MQTT远程控制单片机——阿里云物联网平台
微信小程序远程控制单片机——使用MQTT协议①阿里云物联网平台的使用第一,注册阿里云第二,找到找到物联网平台并创建设备MQTT协议格式的讲解MQTT中文文档固定报头 Fixed header2.3 可变报头 Variable header有效载荷 Payload阿里云物联网平台的使用第一,注册阿里云打开阿里云官网进行注册https://www.aliyun.com/第二,找到找到物联网平台并创建设备进去物联网平台里面里面点击公共实例->创建产品创建完成,点击查看,查看里面的产品情况
2021-05-30 17:42:17
10513
5
原创 阿里云搭建MQTT服务器(博主记录版,没有参考价值)
添加这几个端口Shell 脚本一键安装 (Linux)$ curl https://repos.emqx.io/install_emqx.sh | bash启动 EMQ X Broker$ emqx start
2021-05-28 21:39:50
198
原创 S3C2440-uart的使用详解
UART的使用友情链接:UART串口原理a. UART介绍UART数据收发b. UART数据帧UART的配置UART引脚的配置波特率的配置设置串口数据帧格式设置控制寄存器设置FIFO状态寄存器缓冲寄存器,用来收发数据编写UART关键代码友情链接:借鉴1:https://blog.youkuaiyun.com/qq_43743762/article/details/105895303借鉴2:https://www.cnblogs.com/huangdengtao/p/12103149.html借鉴3:https:
2021-05-27 08:05:11
686
转载 S3C2440时钟体系结构与编程
该博主是基于韦东山的,写的很详细,值得推荐:https://blog.youkuaiyun.com/caihaitao2000/article/details/79846914
2021-05-25 17:25:35
119
原创 Makefile的简单使用使用
Makefile的简单使用使用Makefile简介Makefile组成部分Makefile基本格式Makefile初级语法一、规则语法a.目标target伪目标b. 前置条件prerequisitesc. 命令command:二、 规则中的通配符三、变量和赋值符a.变量定义 ( = or := )b. 变量追加值 (+=)c.变量空时赋值变量 (?=)四、自动变量五、echo输出变量六、Makefile文件语法A. 循环函数foreachB. 过滤函数:filterC. 反过滤函数:filter-outD.
2021-05-24 15:37:00
1215
3
原创 C语言指针、数组
什么是指针?1.指针是一个变量的地址。所以也可以说指针就是地址。或者说地址就是指向变量的指针。我们可以通过资源地址(指针)访问网络资源那么怎么让用变量的地址访问变量的值?我们需要利用“指针运算符”实现,如:*&c,这样太费劲了,我直接c不久完毕了吗,但他们是等价的,在某些情况下利用指针效率会更高,因为他直接访问地址就可以拿到地址里面的内容。什么是指针变量?我们可以定义一个变量来存放变量c的地址,我们就把专门用于存放指针的那个变量,叫做指针变量,如:int num = 7; int *a
2021-05-22 14:59:52
126
原创 gcc和arm-linux-gcc的常用选项
gcc的使用方法gcc [选项] 文件名一、gcc常用选项:-v :查看gcc编译器的版本,显示gcc执行时的详细过程-o :指定输出文件名为file,这个名称不能跟源文件名同名-E :只预处理,不会编译、汇编、链接-S :只编译,不会汇编、链接-c : 编译和汇编,不会链接1. -o :指定输出文件名为file,这个名称不能跟源文件名同名gcc test.c -o hello或者gcc -o hello test.
2021-05-22 06:53:46
280
转载 ldr,str指令作用,详解
LDR,STR 的第一操作数是目标寄存器,第二操作数是内存地址,LDR 内存 --> 寄存器;STR 寄存器 --> 内存内存的表示方式有:立即数,寄存器,或寄存器加偏移,立即数:内存的物理位置,前面加个#,如0x56000050寄存器,加个[],如[r1],偏移的话[r1,r2],或者[r1,#4],[r1,LSL #4]等,都差不多,就是把寄存器里的数当成地址。LDR伪指令的形式是“LDR Rn,=expr”。作用是装在一个32bit常数和一个地址到寄存器。下面举一个.
2021-05-21 21:28:19
6547
原创 韦东山嵌入式linux第一期_裸机实战——裸机开发步骤和工具使用
电灯灯引脚设置配置端口:配置引脚端口为输出数据寄存器:设置引脚为低电平上拉模式:设置上拉功能关
2021-05-14 21:23:33
370
原创 个人Linux常用命令
Linux yum 命令yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。yum 语法yum [options] [command] [package
2021-05-12 08:54:22
167
原创 常用汇编指令
LDR作用:LDR{条件} 目的寄存器 <存储器地址>。将 存储器地址 所指地址处连续的32位(4个字节 ==1个字)的数据传送到目的寄存器中。LDR指令的寻址方式比较灵活,实例如下:LDR R0,[R1] ;将存储器地址为R1的字数据读入寄存器R0。LDR R0,[R1,R2] ;将存储器地址为R1+R2的字数据读入寄存器R0。LDR R0,[R1,#8] ;将存储器地址为R1+8的字数据读入寄存器R0。LDR R0,[R1],R2 ;将存储器地址为R1的字数据读入寄存器R0,
2021-05-12 08:53:46
2880
转载 汇编程序启动的几个关键字
.text:是处理器开始执行代码的地方,指定了后续编译出来的内容放在代码块,是arm-gcc编译器的关键词.gload 关键字用来让一个符号对链接器可见,可以提供其他链接对象模块是哟个;告诉编译器后续跟的是一个全局可见的名字【可能是变量,也可以是函数名】.gload _start让_start符号成为可见的标识符,这样连接器就知道跳转到程序中的什么地方并开始执行_start 是一个函数起始地址,也是编译,链接程序的起始地址,由于程序通过加载器来加载的,必须要找到_start名字的函数,因为_start
2021-05-12 08:53:18
407
1
原创 source insight的使用以及常用操作说明
source insight安装以及破解破解文件:https://pan.baidu.com/s/1d6qO759g1TjRDdhfZxI_sA 提取码:4kez步骤1.下载我的百度网盘文件;2.首先安装sourceinsight4087-setup.exe3.在使用下载好的sourceinsight4.exe替换安装在program file(x86)目录下的sourceinsight4.exe;4.启动sourceinsight时,会弹出小框,导入下载好si4.pediy.lic摘自
2021-05-08 10:52:46
1972
1
原创 在liunx中build-essential的作用
作用linux操作系统上面开发程序, 光有了gcc 是不行的它还需要一个 build-essential软件包作用是提供编译程序必须软件包的列表信息,也就是说 编译程序有了这个软件包,它才知道 头文件在哪 才知道库函数在哪,还会下载依赖的软件包 最后才组成一个开发环境。软件包: build-essential 安装方法:sudo apt-get install build-essential参考网页...
2021-05-05 11:31:39
1869
原创 Linux中安装yum方法以及安装yum过程中出现一些错误的解决方法
下载安装包wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz解压安装包tar xvf yum-3.2.28.tar.gz进入yum-3.2.28文件夹中进行安装yumsudo apt install yum此时可能会出现错误E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource tempo之类,这里的中单是“lock”。估计是apt进程
2021-05-05 10:23:18
957
原创 linux文件架构即含义与用途
/bin,/sbin/bin主要放置一般使用者可以操作的指令,/sbin放置系统管理员可以操作的指令。连结到/usr/bin,/usr/sbin成都/bin 该目录中存放Linux的常用命令。/sbin 该目录用来存放系统管理员使用的管理程序。/boot主要放置开机相关档案/boot 该目录默认下存放的是Linux的启动文件和内核/dev放置device装置档案,包话滑鼠键盘等/dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,访问这
2021-05-05 10:02:08
166
原创 韦东山嵌入式linux第一期_裸机实战之开发板熟悉与体验篇
观察开发板系统信息:串口操作linux系统流程使用开发板的usb-device 连接电脑的usb,注意,需要下载驱动串口PL2303_Prolific_DriverInstaller_v1.7.0。然后用MobaXterm_Personal_10.4继进行远程操控开发板上的Linux操作系统烧写其他的操作系统文件,即eop少些裸板步骤我们使用的是JTAG烧写口烧写文件(10针插口)烧写器用的是eop(还有一个是Jlinkx)...
2021-05-03 11:18:00
334
原创 pc,虚拟机,开发板ping不通的解决方法之一
方法①确定网卡A②VMAARE选择网卡A作为桥接网卡③设置三者(PC,VMAWARE,开发板)处于同一网段因为桥接就是必须把PC跟VMWARE在同一个网卡桥接才能成功,若是桥接在不同网卡会连接失败详细步骤VMAARE选择网卡A作为桥接网卡(网卡A就是指你PC上连接的那个网络)你用那一个网卡连接开发板,那么就是用哪一个网卡把三者设为同一桥段我们可以在PC上设置网址,也可以自动在PC机查找网址的网段是什么,然后在VMAWARE虚拟机上设置同一网段,否则无法连接成功,然后在开发板上也设
2021-05-03 10:42:38
681
原创 JZ2440开发板恢复本厂系统
开发板恢复本厂系统的具体步骤使用op/eop烧写u-boot到nor/nand, 设置为nor/nand启动上电后马上在串口输入空格键,使板子进入UBOOT而不是启动板子上的内核连接PC-----------开发板的usb device口; 安装驱动下载内核: 在UBOOT的串口菜单中输入k使用dnw_100ask.exe发送uImage文件uboot即会自动接收、烧写uImage文件下载文件系统: 在UBOOT的串口菜单中输入y使用dnw_100ask.ex
2021-05-03 09:45:31
306
原创 使用uboot烧写文件到开发板
uboot烧写裸板程序使用op/eop把u-boot.bin烧到nor flash。开发板设置为nor启动, 上电后马上在串口输入空格键,使板子进入UBOOT而不是启动板子上的内核。连接PC-----------开发板的usb device口; 安装驱动。在UBOOT的串口菜单中输入n (表示接收USB文件并烧写到NAND)。使用dnw_100ask.exe发送bin文件。uboot即会自动接收、烧写bin文件。断电、设为NAND启动、上电:运行nand上烧好的程序。...
2021-04-30 10:37:10
1328
原创 JPAG文件的哈希值不在指定的目录文件中。此文件可能已损坏或被篡(JPAG签名问题)
步骤第一步、点开开始菜单,点击里面的电脑设置,没有的话,点击所有应用,找到并点击电脑设置(设置)。第二步、在电脑设置界面,点击“更新和安全”。第三步、在“更新和安全”界面,点击左侧恢复(Recovery),在右侧窗口找到高级启动(Advanced startup)项目下面的立即重启(Restart now),点击立即重启电脑。第四步、电脑重启后,在选择一个选项界面,点击疑难解答。第五步、在疑难解答界面,点击高级选项。第六步、在高级选项界面,点击启动设置。第七步、在启动设置界面,找到并点击重启,
2021-04-28 22:34:21
488
原创 eop如何烧写程序文件到开发板?
第一, 确保你的eop相关驱动文件以及烧写软件安装完毕,在终端输入oflash确认是否安装成功第二,选择需要烧写的文件如涉及的命令有:oflash +文件(烧写文件)选择烧写具体方式:OpenJPAG选择烧写的开发板为:S3C2440选择启动方式为:Nand Flash启动再次确认启动方式为:Nand Flash启动从地址为为0开始烧写,即是从头开始第三,开关设置启动方式为,上述选择方式。然后拔去JTAG线。因为线上有复位引脚...
2021-04-28 21:02:54
386
原创 openocd安装错误
若是出现openocd you do not have sufficient privileges to complete……的报错信息的话,说明我们权限不足,我们应该要管理员身份进行运行安装
2021-04-23 16:58:14
1102
原创 上下拉电子的作用
本文只做自身学习记录使用借鉴1借鉴2上拉电阻和下拉电阻的作用上拉电阻和下拉电阻的其中一个作用是防止输入端悬空,使其有确定的状态,减弱外部电流对芯片产生的干扰。上拉就是将不确定的信号通过一个电阻提升为高电平,一般来说上拉电阻越小,驱动能力越强,但功耗也越大,同时也需要考虑下级电路对驱动能力的要求,上拉电阻选择的合适才能向下级电路提供足够的电流。另外就是数字电路对高低电平都有一个合适的门槛(零电平门槛)。上拉电阻是用来解决总线驱动能力不足时提供电流的,一般说法是拉电流;下拉电阻是用来吸收电流的,.
2021-04-22 07:38:41
274
转载 关于电源内阻的理解
在学习电流源和电压源时,关于电源内阻的问题经常会困惑很多人,只记得电压源与外界负载连接时认为内阻是和外界负载串联;电流源与外界负载连接时认为内阻是和外界负载并联,使用时要求电压源内阻越小越好,电流源内阻越大越好!并不理解为什么?内阻这个东西到底对电源的影响是什么?为什么要内阻和外界负载相匹配电源输出才能达到最大功率?一、基本概念1、电路由电源和负载构成;2、电路分成内电路和外电路两部分,电源电路就是内电路;3、电流通过电源内电路时也有电阻,这个电阻叫内电阻;4、电流在内电阻上同样要消耗电能发热.
2021-01-27 22:02:49
3636
原创 android 处理事件
注意:此文章没有任何参考价值。仅仅是自己的记录。创建一个新的Enpty activity在新建的.xml写入初始在.java创建一个新的函数,用于回调。写入想回调
2020-06-05 09:45:28
122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人