天道酬勤,学无止境

嵌入式

Gowin 1nr-9k mipi测试

本次实验是利用gowin 1nr-9k的开发板测试MIPI屏。 测试的屏是2.0寸的,接口如下: 接上IO就是RST和MIPI的时钟和数据接口,另外就是电源和地。 Gowin的案例中,首先是软件要升级到Gowin_V1.9.7.03Beta,这个版本。使用的是IP是mpi-tx_adanve,这个IP才支持LP模式。另外一个mipi-tx是不支持的lp模式。所以用这个来设计。 这个IP 有个缺点是,SCLK是外部给他,千万要注意这个,这个SCLK是CLK-BIT除以4给的时钟。 在modelsim下,找到codeproject/mipilcd/mipi/testmodel 文件夹下,找到sim_modelsim_gowin.do,如果gowin安装目录不一样,需要修改gowin_dir 变量。 set gowin_dir "D:/programmer/gowin/Gowin_V1.9.7.02Beta/IDE/simlib/gw1n" vlog \ +define+sim \ +define+gowin \ $gowin_dir/prim_sim.v \ ../project/video_test_top/src/*.v \ ../project/video_test_top/src/mipi_tx_advance/gowinmipi.vo \ ../project/video

2021-06-02 02:32:55    分类:博客    嵌入式   智能硬件

CPU、MCU、PLC、DSP、SOC、FPGA等之间的关系

它们之间的关系CPU是最基本的存在,因为某些原因,在CPU的外部又包裹了部分附加功能,和CPU一起共同构成MCU、DSP、SOC等这些芯片,因此它们都是从CPU的基础上扩展而来,基本关系我们可以理解为下图。至于说为什么MCU、DSP、SOC等芯片,会在CPU的基础上内置功能扩展,其它的功能自然它们自己的目的和道理,后面会针对每个芯片做解释。9.2 CPU芯片CPU的英文全称为Central Processing Unit,直译为“中央处理单元”或者中央处理器,不管什么类型的计算机都必须要包含CPU,因为CPU中的运算器和控制器是整个计算机工作的脑中枢。9.2.1 在什么情况下,CPU为独立芯片当我们需要极高性能的CPU时,就必须把CPU单独做成一个芯片,因为单位面积的门电路数量是有限的,因此如果像MCU、DSP、SOC一样,将CPU和很多其它的内置扩展都集成在一起时,当芯片体积都差不多的情况下,单独CPU芯片所含门电路数量一定高于MCU、DSP、SOC的内置CPU所含门电路数量,因此才会单独的将CPU集成为一个独立芯片。而且给独立的CPU芯片做功能扩展时会更加的灵活。9.2.2 哪些计算机使用单独成片的CPU现在像个人电脑和服务器这一类的计算机,其计算能力的要求是较高的,因此目前个人电脑和服务器的CPU都是独立芯片,我们都知道个人电脑和服务器的的芯片使用Intel的X86

2021-06-01 23:31:27    分类:博客    计算机   嵌入式   计算体系

门电路

8.3.1 门电路的重要意义 上面这图在2.1.2中就提过,从这张图中可以看出,门电路在计算机组成中所处的重要位置。 8.3.2 门电路的作用和分类(1)门电路的作用门电路的作用就是,数字电路会使用门电路进行算术和逻辑运算。 (a)人做算数运算和逻辑运算·人做算数运算:1098+1234 = ?·人做逻辑逻辑运算与运算:下雨 与 出去 就带伞,下雨与出去同时满足就带伞,这就是与运算。或运算:坐飞机 或 做火车从深圳去北京,这就是或运算。非运算:不吃饭就是吃饭的非运算。 (b)计算机(数字电路)也要进行算术和逻辑运算比如以基本的与、或、非为例:与:1(2.5v) & 1(2.5v) = 1(2.5v)或:1(2.5v) | 0(0v) = 0(0v)非: !(2.5v) = 0(0v) 在计算机(数字电路)中,0/1为对应的0v和2.5v电信号,需要使用门电路,实现对数字电信号表示的二进制数据进行运算,因此,门电路是构成计算机的基本数字电路。 (2)常见的门电路列举与门、或门、非门、与非门、或非门、与或非门、异或门等几种,数字电路使用这些门电路,就可以实现算术运算和逻辑运算。 8.3.3 三极管是如何构建门电路的接下来我们会以“与非门”为例,介绍三极管是如何构建“与非门”的,其它的门电路都是以同样的方式构建,只要你明白这个例子,你也就大概的了解了

2021-06-01 23:31:21    分类:博客    计算机   嵌入式   计算体

CPU的各个部分是如何通过电子元器件实现的

在前面的课程中,我们大致的了解了CPU的组成,了解了CPU的运算器和控制器是一个怎样的组成结构,主要作用是什么,那么我们在第8小节里面会将,CPU的运算器和控制,是如何通过电子元器件来实现的,或者说电子元器件到底是怎么构建出cpu芯片的。。 8.1 从三极管到计算机我们通过下面这张图就能大概的知道,三极管是如何一步一步的构建出我们的计算机的。 (1)三极管因为三极管内部的工作原理就是模拟的,所以三级管属于《模拟电路》这部分课程的内容。 (2)门电路,时序电路,触发器,组合电路这些由是由三极管所构建的数字电路的,这些电路的工作原理属于《数字电路》这门课程的内容。 (3)集成电路属于微电子主要研究的是,研究如何将门电路,时序电路,触发器,组合电路等数字电路集成到芯片中。 (4)计算机设计原理图,绘制PCB板,通过PCB板,将各种集成芯片,比如CPU、内存颗粒、显卡等等,以及各种电阻、电容、电感等连接在一起,构成计算机的电路板,属于电子的内容。 当然除了以上这些外,还有计算机外壳的设计,这些是属于产品结构工程师要做的事情。 8.2 三极管8.2.1 符号与实物图 我们在硬件基础知识部分就讲过,三极管属于半导体电子元器件。 8.2.2 三极管的功能(1)三级管的基本功能1)基本功能(a)通过向1端输入一个微小的电流,·可以控制2和3之间导通与关闭 ·2与3之间导通之后

2021-06-01 23:31:10    分类:博客    计算机   嵌入式   计算体

STL系列使用教程(一)基础概念

在所有程序开发中,可重复利用是非常重要的感念之一,我们常见的函数、类别、组件等等都是基于这个理念诞生的,今天我们介绍的STL也是一样。下面我们就从STL产生原因、STL基本概念、STL六大组件简介、STL优点这几个方向给大家介绍。 一、STL产生原因 长久以来,软件界一直希望建立一种可重复利用的东西,以及一种得以制造出”可重复运用东西”的方法,让程序员的心血不止于随时间的迁移,人事异动而烟消云散,从函数(functions),类别(classes),函数库(function libraries),类别库(class libraries)、各种组件,从模块化设计,到面向对象(object oriented),为的就是复用性的提升。 复用性必须建立在某种标准之上。但是在许多环境下,就连软件开发最基本的数据结构(data structures) 和算法(algorithm)都未能有一套标准。大量程序员被迫从事大量重复的工作,竟然是为了完成前人已经完成而自己手上并未拥有的程序代码,这不仅是人力资源的浪费,也是挫折与痛苦的来源。 为了建立数据结构和算法的一套标准,并且降低他们之间的耦合关系,以提升各自的独立性、弹性、交互操作性(相互合作性,interoperability),诞生了STL。 二、STL基本概念 STL(Standard Template Library,标准模板库)

2021-05-18 22:53:48    分类:博客    嵌入式   开发

移动3G嵌入式硬件开发流程与硬件工程师应当具备的技能

移动3G嵌入式硬件开发流程与硬件工程师应当具备的技能 移动3G嵌入式硬件开发的基本过程: 1、明确硬件总体需求情况,如CPU处理能力、存储容量及速度、I/O端口的分配、接口要求、电平要求、特殊电路要求等等。 2、根据需求分析制定硬件总体方案,寻求关键器件及相关技术资料、技术途径和技术支持,充分考虑技术可行性、可靠性和成本控制,并对开发调试工具提出明确要求。关键器件可试着去索取样品。 3、总体方案确定后,做硬件和软件的详细设计,包括绘制硬件原理图、软件功能框图、PCB设计、同时完成开发元器件清单。 4、做好PCB板后,对原理设计中的各个功能单元进行焊接调试,必要时修改原理图并作记录。 5、软硬件系统联调。一般情况下,经过调试后原理及PCB设计上有所调整,需要二次投板。 6、可靠性测试、稳定性测试,通过验收,项目完成! 移动3G嵌入式硬件工程师应具备的基本技能: (1)由需求分析至总体方案、详细设计的规划创造能力; (2)熟练运用设计工具,设计原理图、PCB板的能力; (3)熟练运用单片机、ARM、DSP、PLD、FPGA等进行软硬件开发调试的能力; (4)熟练运用仿真工具、示波器、信号发生器、逻辑分析仪等调测硬件的能力; (5)掌握常用的标准电路的设计能力,如复位电路、常用滤波器电路、功放电路、高速信号传输线的匹配电路等; (6)故障定位、解决问题的能力; (7

2021-05-18 16:19:19    分类:博客    嵌入式

Qt 官方示例 | 网络入门 | http 下载小工具

哈喽,我是老吴。最近又玩了一下 Qt,给大家分享一点 Qt 相关的基础知识吧。我个人非常喜欢 Qt,它简直就是我这个 C++ 手残党的利器。学习 Qt 的最佳途径应该是阅读官方的手册和示例,今天要分享的就是 Qt 官方提供的一个示例。http 下载小工具:点击查看大图源码文件:Makefilehttpwindow.cppmain.cpphttpwindow.hhttp.pro下面快速地说明一下如何实现这个小工具, let's go.目录:1. 实现主界面2. 解析 URL 和创建空文件3. 发送 http 请求和接收 http 数据4. 添加进度条5. 下载完成后自动打开文件1. 实现主界面主界面基于 QDialog,包括:3 个 LineEdit;1 个 CheckBox;1 个 Label;2 个 Button;代码如下:httpwindow.hclass HttpWindow : public QDialog{ ...}httpwindow.cppHttpWindow::HttpWindow(QWidget *parent) : QDialog(parent) ...{ QFormLayout *formLayout = new QFormLayout; formLayout->addRow(tr("&URL:"), urlLineEdit); formLayout-

2021-05-18 14:22:15    分类:博客    qt   嵌入式

Qt 官方示例 | 这几个 QML 版的 Hello World 你学会了吗?

.我是老吴,一枚光荣的嵌入式底层劳动人民。作为一名 C++ 手残党的我,又来分享 Qt 的学习心得啦。学习 Qt 的最佳途径是阅读官方的手册和示例,今天要分享的是 Qt 官方提供的几个 Qt Quick 入门示例。目录:1. 梳理几个入门概念2. 示例1:quick_helloworld3. 示例2:quick_scroll4. 示例3:quick_stack5. 示例4:quick_swipe6. 相关参考1. 梳理几个入门概念Qt 整体框架:QML 是什么?:一种用于描述应用程序用户界面的声明式编程语言。QML is a declarative language that allows user interfaces to be described in terms of their visual components and how they interact and relate with one another.Qt Quick 是什么?QML 类型和功能的标准库,包括可视化类型、交互式类型、动画功能、模型和视图,特效等。Qt Quick is the standard library of types and functionality for QML. It includes visual types, interactive types, animations

2021-05-14 06:15:33    分类:博客    qt   嵌入式

oppo和海康嵌入式软件工程师面经总结

[TOC] 哈喽,大家好。分享下春招面试的两家公司。海康和oppo是三月初的时候投递的,虽然,秋招已经签了。但是,我还是想充分利用下应届生的身份,搏一搏更大的公司和更高的待遇。 海康缺口比较大,一直在招人。oppo春招不像秋招那样,卡简历卡的那么严格,普通学校的学生也有了很大的机会。 两家公司的面试都不太难,问题都是提前准备到的。所以,笔试面试的一些八股文,该背还是要背的。毕竟,面试的时候,答不上来等于不会。 八股文的内容,可以看下这篇文章嵌入式软件工程师笔试面试指南-C/C++。所有关于笔试面试的内容,我都会同步在github上,大家可以star下,以免错过更新。大家如果想提前准备的,可以加我好友,我会把旧版本先给你。 海康 一面(3.23,35min) 自我介绍 项目介绍 你做的这个项目遇到了那些问题,如何解决的? 移植uboot,只做了移植吗? 用的那个文件系统? 移植过程中,网卡驱动做了那些工作? 写过那些驱动,讲一个你熟悉的? 写驱动过程中,遇到过什么问题,如何解决的? 对网络设备驱动有了解吗? 你有什么想问我的? HR面(3.30,25min) 自我介绍 作为北方人,你对南方的饮食,气候习惯吗? 为什么写博客? 读研也挺忙的,写博客不会影响你日常工作吗? 团队协作能力怎么样?举个例子? 周围的人是如何评价你的? 三个词概括你自己 签约答疑(4.9,30min) 4

2021-05-14 04:50:39    分类:博客    嵌入式   笔试面试   秋招

《嵌入式C语言自我修养:从芯片、编译器到操作系统》出版了

几年前,专门为嵌入式工程师打造的C语言进阶视频教程:C语言嵌入式Linux高级编程,收到了几千名学员的中肯建议和好评。如今,纸质书籍也要出版啦!书籍名为:《嵌入式C语言自我修养:从芯片、编译器到操作系统》,在原版视频教程的基础上,又增加了新的干货:新增了芯片设计流程、芯片Zhi造、封装等技术、CPU内部架构与工作原理、异构计算、GPU、NPU等新知识。从底层芯片到编译器,从编译器到操作系统,从操作系统到进程、线程、协程,意在帮大家构建一个更加完整的嵌入式全栈知识体系。独家GNU C 扩展语法精讲,帮你破解阅读Linux内核驱动,或者GNU开源软件源码时,各种稀奇古怪的GCC编译器扩展语法。首家使用ARM平台和反汇编,深度讲解程序的编译、链接、运行和安装原理,深度讲解程序运行时的堆栈内存管理、栈溢出***实例。结合嵌入式开发的常用三种场景:裸机环境、RTOS、Linux,分析总结三种场景下的内存管理,让你一览整个嵌入式开发环境概貌。针对当前火热的人工智能、AIoT、异构计算等热门技术,从一堆沙子开始,一步一步带你了解整个CPU芯片设计流程、芯片_制_造流程、CPU内部结构及工作原理:流水线、cache、单发射、多发射、乱序执行,SIMD、NEON、多核、异构...针对Linux内核驱动阅读难题,在本书中也分享了C语言的OOP编程思想,教你如何使用C语言来实现OOP编程

2021-05-14 04:36:34    分类:博客    嵌入式   c语言   linux   嵌入式C语言自我修养