
硬件、底层、汇编、C
架构师小侯
JAVA架构师
一个热爱编程的程序员
技术路线,微服务->大数据->大模型
展开
-
hjr-嵌入式:ucos-II操作系统
嵌入式有别于单片机的前后台程序,一个关键原因就是它有操作系统比较火的操作系统有ucos-II和Linux,这两个一个适合用于小型实时性要求高的,一个适合用于大型,实时性要求低的(相对而言)工作环境我们先来学习简单的ucos-II首先说下操作系统怎么移植,打开内核程序,里面有几个文件,一共三种.h,.c,.asp.asp是汇编,写的是与微处理器相关的代码,.c是c语言,.h是c语言的...原创 2016-07-03 15:19:31 · 881 阅读 · 0 评论 -
hjr-FPGA:verilog HDL 编程与 testbench 设计
首先,FPGA可以做两种类型的芯片,数字电路与微处理器微处理器一般和SOPC片上系统(就是把微处理器和一些片内外设都集成到了一块芯片上)一起做,比如NIOS-II,这些之后再说数字电路分为:组合逻辑电路(各种与或非门组成的电路,输出只取决于当前输入),如编译码器,加法器时序逻辑电路(具有记忆功能,触发器),如计数器,移位器,分频器时序逻辑电路又分为同步与异步,同步电路只有一个时...原创 2016-07-04 23:00:43 · 1201 阅读 · 0 评论 -
hjr-DSP:汇编运算与段的理解
DSP编程语言是汇编和C先说下汇编基础,这是几种常见运算MOVE 传送,ADD 加法,SUB减法,MPYM乘法,MACM乘加(MACM a,b,c =》 c=a*b+c)移位:移出位丢弃,空位补零,左移n位相当于乘以2的n次方,右移n位相当于除以2的n次方对于程序,主要由数据与代码组成,数据又分为初始化的数据和未初始化的数据,比如你int a;这就是未初始化,in...原创 2016-06-08 12:25:52 · 1952 阅读 · 0 评论 -
hjr-汇编:指令操作地址和数据
声明,下面都是瞎猜的,一定是片面的,可能有错误的汇编语言是由很多指令组成的指令用来操作地址与数据指令由操作码和操作数组成,操作码就是你要进行的操作,操作数就是你要操做的数据或者地址指令操作数据的方式是寻址寻址就是,读或者取寻到的地址里的数据操作码可以是加减乘除,传送等数据就是我们常说的数字关于地址与数据可以看这篇博文 hjr教程-汇编(一):地址与数据下面简...原创 2016-05-15 19:40:52 · 986 阅读 · 0 评论 -
hjr-DSP:CCS软件
首先现在CCS软件比较常见的有CCS3.3和CCS6,CCS6x没有软件仿真,所以没有板的童鞋不要用6CCS3.3是一个经典的版本,CC6x是基于Ecipse做的,如果有弄JAVA的一定会倍感亲切对于既想亲切又想仿真的可以用CCS5x先说下CCS3.3,安装完会有两个快捷方式,先点击StepCC配置一下你要用的板,DSP有三个系列2000,5000,6000,2000和单片机类似可...原创 2016-05-16 18:27:37 · 1022 阅读 · 0 评论 -
hjr-DSP:CMD文件
注:NAME指任何不重复名字,xx指地址。首先说下CMD,每一个DSP工程都必须有CMD文件,用来分配DSP存储器,先在MEMORY里定义多个NAME的存储器类型(RAM,ROM等)和每个NAME的一段地址再在SECTIONS里把程序里用到的段放到相应NAME里,注意每个NAME地址不要重叠CMD文件由两部分组成存储器:MEMORY{ PAGE 0: NAME:...原创 2016-05-18 13:15:08 · 487 阅读 · 0 评论 -
hjr-汇编:关于寻址
汇编做的所有事,传输,运算之类的都是寻址寻址分为4种立即寻址(绝对寻址):直接操作一个数直接寻址(寄存器寻址):操作一个地址里的数间接寻址:操作一个地址里的数->代表的地址->里的数变址寻址:操作一个固定的值(基址)+地址里的数寄存器是在做到CPU内部的,运算速度最快,寄存器>高速缓存(check)>RAM>ROM>FLASH比...原创 2016-05-19 12:02:34 · 444 阅读 · 0 评论 -
hjr-汇编:地址与数据
注:对于计算机中以下数字都用2进制表示,对于我们人类都用16进制表示地址:0,1,2,3...........往后一直排,这一串编号就是地址数据:10,100,1000这种数字就是数据数据存放到地址中地址长度:表示排了多少个数地址宽度:就是每个地址编号可以存放数字的大小范围举个例子,地址0,这是地址地址0可以存放数字,数字范围是0-255,那么地址0的宽度就是255...原创 2016-06-02 13:27:23 · 832 阅读 · 0 评论 -
hjr-C:关于指针
在了解指针之前应该先了解地址,可以参考这篇文章hjr教程-汇编(一):地址与数据内存一般分为程序空间和数据空间,程序空间放写的程序,数据空间放程序执行过程的用到的数据指针分为指针变量名和指针变量值指针变量名就是随便用英文字母命个名指针变量值,存放在程序空间,是一个16进制数,这个数是一个地址,现在你知道为什么指针是16进制数了吧,因为地址就是用16进制表示的如果用一本书做比喻,...原创 2016-06-06 19:49:14 · 470 阅读 · 0 评论 -
hjr-C:函数调用与参数传递与返回值
C语言就是由很多子函数组成的模块化语言参数是体现一个函数灵活性的重要工具首先说下PC程序指针,PC是一个寄存器,里面的值指向当前程序代码执行点的地址既然是指针那么,可以看这里了解一下指针hjr教程-C(二):关于指针指针变量值就是地址,我们的程序是从上往下执行的,程序又是存放到程序空间的,所以每一句程序都有一个地址对应PC就是记录这个地址的,每执行一句程序,PC就加一,所以PC...原创 2016-06-06 23:00:21 · 545 阅读 · 0 评论 -
hjr-DSP:关键字与伪指令
关键字关键字是用来修饰变量与函数的,说明变量与函数的一些属性比如interrupt修饰一个函数,就说明这个函数是中断服务函数比如iopart 修饰一个变量则说明这个变量是指向io空间,(有些说法把内存分为程序空间,数据空间和io空间),注:该关键字只能修饰全局或静态变量和局部指针,不能修饰局部变量const 修饰变量说明该变量值不可改变,分配到ROM,vilatile 修饰表...原创 2016-06-08 13:20:28 · 951 阅读 · 0 评论 -
hjr-嵌入式:ucos-II 信号量、互斥信号量、消息邮箱
因为ucos-II是基于多任务的操作系统本节说一下任务中很重要的三个概念在之前先科普几个重要函数:(1)OSStart();:操作系统多任务启动(2)OSinit()l:操作系统全局变量,数据结构初始化,建立空闲、统计、定时任务(1)创建了几个用户任务,优先级OSTaskCreate(任务处理函数首地址指针,任务处理函数传参,任务分配的堆栈栈顶指针,任务优先级号);...原创 2016-07-04 23:20:51 · 1156 阅读 · 0 评论 -
hjr-C++:VS2015+OpenCV3.1+Qt5
OpenCV安装程序常用数据结构QtQt+VS环境配置Qt结构OpenCVOpenCV是一个做图像处理的库,可以用C++,Java,Python来写图像处理的程序,比如图像滤波,变换,检测之类的,我们主要用vs2015+OpenCV3.1做图像处理。安装下载安装OpenCV,需要注意的是OpenCV版本要与vs版本对应,判断方法是\openc...原创 2016-10-18 19:32:57 · 1614 阅读 · 0 评论 -
hjr-嵌入式:Boot Loader的理解与编写
Bootloader是学习嵌入式时的一个概念先说下为什么单片机不用写bootloader,嵌入式却需要单片机是前后台程序,直接下载到内置的RAM中了嵌入式一般程序都放在片外ROM中,需要在系统启动后把程序移动到片内RAM中由此可见,bootloader用处主要是搬移程序到面内RAM。bootloader一般放在地址0h处,这样系统刚刚启动后就会运行bootloader具体做...原创 2016-06-30 16:31:45 · 602 阅读 · 0 评论 -
hjr-DSP:几种滤波器设计
做滤波器需要matlab和css两个软件matlab负责生成一组的单位脉冲响应的数组h[n]css的c语言负责根据输入函数x[n]与生成的单位脉冲响应运算得出系统响应函数y[n]即x[n]与h[n]作用求y[n]首先说下滤波器,常见的有低通,高通,带通,带阻低通:低频能通过,高通:高频能通过,带通:某一段频率能通过,带阻:某一段频率不能通过又分为FIR与IIR,一个是有限脉...原创 2016-06-26 23:49:28 · 1309 阅读 · 0 评论 -
hjr-C++:面向对象类的写法
c++结构面向对象:指针:c++ &与::与*c++输出面向过程c++结构c++主要,分为.h头文件与.cpp文件。面向对象:类:每一个类都由一个cpp与.h文件组成,先在在头文件里声明,在cpp文件里实现类的方法和属性的赋值,形式如下:#pragma once#ifndef _头文件名字大写_H_#define _头文...原创 2016-10-12 11:39:30 · 518 阅读 · 0 评论