自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

言京的博客

分享个人所得

  • 博客(48)
  • 收藏
  • 关注

原创 C++ CMake入门和进阶(二):CMake语法

CMake也是有语法的,这里总结一些。CMake系列学习个人笔记:C++ CMake入门和进阶(一):使用CMake编译项目文章目录分支 if/elseif/else/endif列表 list循环 foreach/while/break函数分支 if/elseif/else/endif分支的应用十分广泛,可以用于判断值、比较大小、判断文件是否存在、版本比较、新旧比较等等。语法格式如下:if(<condition>) <commands>elseif(<con

2021-08-16 17:56:03 721 1

原创 C++ CMake入门和进阶(一):使用CMake编译项目

CMake为源码提供多项目的支持,是非常好的跨平台编译器,但是这工具随着版本更新,越来越冗杂,社区也提出modern CMake帮助用户更好的使用cmake。当构建的项目复杂到一定程序时,维护CMake将变得非常不便,本帖将从最简单的功能出发,一步步建立起CMake架构,希望对你能有所帮助。文章目录安装基础功能第一个Cmake项目增加头文件生成静态库生成动态库安装编译类型编译标志/变量set第三方库安装并使用直接下载并使用标准C/C++安装官网下载:Cmakesudo apt-get install

2021-08-12 17:21:05 7858 1

原创 TF-M PSA Interface

PSA InterfacePSA接口完成从NS的client到secure服务的调用。//in psa_client.c__attribute__((naked))uint32_t psa_framework_version(void){ __ASM volatile("SVC %0 \n" "BX LR \n" : : "I" (TFM_SVC_PSA_FRAMEWORK

2021-08-01 14:51:41 585

原创 嵌入式软件求职基础知识-Linux操作系统和驱动

仅仅本文还不够,更多的还要在书本和实践中掌握,本文仅包括入门的基础知识。文章目录基本特征基本功能大内核和微内核中断分类进程管理区别进程状态的切换进程调度算法进程同步经典同步问题进程通信死锁必要条件处理方法鸵鸟策略死锁恢复死锁预防死锁避免内存管理虚拟内存分页系统地址映射页面置换算法分段段页式分页与分段的比较设备管理磁盘结构磁盘调度算法先来先服务FCFS, First Come First Serve最短寻道时间优先SSTF, Shortest Seek Time First电梯算法SCAN链接编译系统静态链

2021-08-01 14:22:43 276

原创 嵌入式求职面试软件基础知识-C/C++

关于C/C++重点知识点汇总。文章目录C/C++内存有哪几种类型?堆和栈的区别?堆和自由存储区的区别?程序编译的过程?计算机内部如何存储负数和浮点数?函数调用的过程?左值和右值什么是内存泄漏?面对内存泄漏和指针越界,你有哪些方法?你通常采用哪些方法来避免和减少这类错误?C和C++的区别?int fun() 和 int fun(void)的区别?const 有什么用途在C中用const能定义真正意义上的常量吗?C++中的const呢?宏和内联(inline)函数的比较?C++中有了malloc / free

2021-08-01 14:10:40 900 3

原创 AM5728配置DMM_LISA_MAP修改内存工作模式

在测试AM5728时发现,ARM读完SD card中的MLO文件后没有后续操作,推断是由于我们的硬件更改导致的内存加载出错,研究TI给出的《AM572x Technical Reference Manual》,需要配置相关的寄存器。硬件更改原TI AM5728使用EMIF0接口和EMIF1接口,使用interleaving模式配置2GB的内存,每个EMIF接口连接两个512MB的内存芯片。为降低功耗,平衡性能和成本,现更改为单EMIF接口连接两个256MB的芯片,并且在ECC内存接口增设ECC DDR保

2021-08-01 14:00:38 440

原创 嵌入式求职面经

arm多态继承链表插入,素数筛选,位运算,翻转链表判断质数linux shell使用,考英语SDLCSDLC:sdlc(系统生命周期,系统生存周期)是软件的产生直到报废的生命周期,是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。包括:问题定义及规划此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。需求分析在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求

2021-08-01 13:52:01 1089

原创 计算机网络与TCP/IP

基础计算机网络功能:数据通信、资源共享、分布式处理(hadoop)、提高可靠性、负载均衡计算机网路组成:硬件、软件、协议/边缘部分、核心部分/通信子网、资源子网计算机网络分类:广域网、城域网、局域网、个人区域网/公用网、专用网/电路交换、报文交换、分组交换/总线型、星型、环型、网状型/广播式网络、点对点网络法定标准OSI与事实标准TCP/IP传输速率:单位10^3换算,单位b/s传输带宽:最高数据率传输吞吐量:单位时间内通过的数据量,由链路上的总和时延:发送时延(=数据长度/信道带宽)、传

2021-08-01 13:45:40 396

原创 基于TCP/IP网络socket通信

网络传输文件现有的工具为ssh或者tcp指令,ssh中的scp指令如下:$ scp file name@IP:file_path测试在百兆带宽的情况下,可以达到5~6MB/s。SSH的用户层工作原理,除去登陆密码以及公钥或者私钥的建立,底层的工作模式也需要考虑。网络设备驱动网络层次七层又可以分为应用层(应用层、表示层与会话层)、传输层、网络层、数据链路层以及物理层。网络设备驱动负责将数据包写入网络或者从网络中读取数据包,从而完成上层的请求,与其他接口开发的不同是网络设备不在/dev下创建

2021-08-01 13:41:23 603

原创 华为云物联网设备接入及OBS使用

记录华为云的上云操作及OBS对象上传文件等操作,大部分操作在WSL Ubuntu中完成,与树莓派环境基本一致。 linux操作系统连接华为云参考这篇文档:Linux配置上云环境及demo上传TOPIC /* Topic: $oc/devices/{device_id}/sys/messages/up 数据格式: { "object_device_id": "{object_device_id}", "name": "name", "id": "id", "content

2021-07-31 21:26:58 2969

原创 编译内核用到的图形界面工具

menuconfig运行在没有桌面环境的主机上,可以查看选项功能,不支持搜索,需要安装终端的图形包。$ make menuconfig $ sudo apt-get install libncurses5-dev xconfig可以查看选项功能,支持搜索功能,需要安装QT依赖包。$ make xconfig$ CHECK qt$ Could not find Qt via pkg-config.$ Please install either Qt 4.8 or 5.x. and

2021-07-31 21:19:54 309

原创 如何将博客部署到云服务器和个人域名上

由于github部署的博客连接较慢,因此在购买腾讯云服务器之后将博客内容部署到腾讯云上,特此记录一下过程。云服务器部署服务器安装CentOS 7操作系统,首先安装Nodejs和git:yum install nodejsyum install git创建git用户和仓库adduser gitchmod 740 /etc/sudoersvim /etc/sudoers=== root ALL=(ALL) ALL+++ git ALL=(ALL) ALLc

2021-07-31 21:05:56 458

原创 STM32 RT-Thread OS实战

RT-Thread是一个国产实时操作系统。使用的平台:秉火STM32 Cortex-M3内核开发板,RT-Thread v3.1.3。RT-Thread移植以秉火-指南者STM32F103VE6为例。参考官方文档,Git仓库,在keil5中添加RT-Thread内核,并下载源码:git clone git@github.com:RT-Thread/rt-thread.git用keil5打开rt-thread\bsp\stm32\stm32f103-fire-arbitrary\project

2021-07-31 18:50:32 684

原创 STM32 Free RTOS实战

FreeRTOS是一个开源的实时操作系统。使用的平台:秉火STM32 Cortex-M3内核开发板,Free RTOS v8.2.3。多任务流水灯.├── Doc│ └── readme.txt├── FreeRTOS //OS依赖目录│ ├── inc│ │ ├── croutine.h│ │ ├── ... //头文件│ └── src│ ├── croutine.c│ ├── ... //源码文件├──

2021-07-31 18:45:33 6701 3

原创 Cmder美化WSL Ubuntu

WSL Ubuntu的界面比较简陋,推荐使用cmder改良一下终端。下载安装cmder,下载完整版,直接运行即可。进入wsl ubuntu在setting > start up中添加 %windir%\system32\wsl.exe ~ -cur_console:p5,进入linux子系统。-cur_console:p5是最新的为解决vim中无法使用方向键的补丁。配置大多数配置依照个人习惯,分屏快捷键可以搜索split。修改ubutnu文件夹底色cd ~dircolors -p

2021-07-31 18:41:51 810

原创 实时操作系统分类、特点及实现原理

本章节将介绍各类操作系统的特点。裸机系统单片机的程序可以分为三种:轮循系统、前后台系统和多任务系统。轮询系统即在裸机编程时,先初始化相关硬件,让主程序在一个死循环里面不断循环,顺序地处理各种事件。不能说轮询是低端的,轮询系统是一种非常简单的软件结构,但适用于仅需要顺序执行代码且不需要外部事件来驱动就能完成的事情,这会变得简单可靠。如果加入按键操作等需要检测外部信号的事件,整个系统的实时响应能力就会体现不好。试想一下,但按键按下时,程序正在运行顺序1程序,而且顺序1程序占用的程序时间片比较长,系统就

2021-07-31 18:34:17 17810 2

原创 mbedtls学习--伪随机数生成器

文章目录伪随机数应用构成算法工具CTR_DRBG原理伪随机数应用生成盐,用于基于口令的密码生成密钥,用于加密和认证生成一次性整数Nonce,防止重放攻击生成初始化向量IV构成种子,真随机数生成器的种子来源于物理现象内部状态,种子用来初始化内部状态算法算法原理Hash_DRBG使用单向散列函数HMAC_DRBG使用消息认证码CTR_DRBG使用分组密码算法工具gen_entropy file # 产生熵gen_random

2021-07-11 18:53:30 839

原创 mbedtls学习--消息认证码

消息认证码MAC,Message Authentication Code,帮助接收者判断消息是否被第三方篡改,确保消息的完整性和真实性。常使用单向散列函数实现,称为HMAC-SHA1和HMAC-SHA256。也可以使用分组加密构建,称为CMAC、GCM和CCM。MAC和Hash的不同在于输入多一个密钥。实现形式HMAC:HMAC是基于单向散列函数的算法CBC-MAC和CMAC认证加密CCM,输入包括明文、一次性整数Nonce、相关数据A和密钥K,输出密文C和认证码T,使用的算法是CBC-MAC

2021-07-10 16:47:52 790

原创 mbedtls学习--移植库至K210平台

文章目录K210 RISC-V移植过程简述代码K210 RISC-V亚博智能开发板,使用的编译工具和sdk为riscv64-unknown-elf-gcc和kendryte-standalone-sdk-develo,开发环境为windows。移植过程简述在sdk/lib下添加mbedtls的文件夹,删除无关的文件只保留.c和.h文件:includelibrary在sdk/lib/mbedtls下添加CMakeLists.txtFILE(GLOB_RECURSE MBEDTLS_S

2021-07-08 22:43:43 998 1

原创 mbedtls学习--平台安全架构库函数接口

TF-M是PSA的一种实现方式,主要基于ARM Cortex-M系列的芯片,除此之外还有TF-A等。[Mbedtls](https://tls.mbed.org/)也是ARM维护的基于ARM平台的开源嵌入式加密库,现已是[trust-frimware](https://www.trustedfirmware.org/)的一部分,除了基本的各类加解密算法及安全工具箱的实现,为方便嵌入式开发人员快速编写符合PSA规范的代码,mbedtls提供了各类安全工具的调用接口。源代码见mbdetls/library/ps

2021-07-08 16:39:17 1887 2

原创 密码学基础

文章目录1 密码2 历史上的密码3 对称密码4 分组密码模式5 公钥密码RSA算法6 混合密码系统7 单向散列函数8 消息认证码9 数字签名10 证书11 密钥12 随机数PGPSSL/TLS1 密码加密encrypt、解密decrypt、明文plaintext、密文ciphertext、密码破译cryptanalysis、密钥key对称密码symmetric cryptography公钥密码public-key cryptography混合密码系统hybrid cryptography2

2021-06-30 10:14:59 381

原创 mbedtls学习--对称加密算法

对称加密算法Alice和Bob持有相同的共享秘钥,通过秘钥加解密数据。对称加密算法包括AES、DES和3DES等多种算法。对称加密算法需要对数据进行分组。分组密码模式ECB Electric Codebook电子密码本模式,明文与密文一一对应,有明显缺陷。CBC Cipher Block Chaining密码分组链接模式,每一组明文在加密前都与前面的密文分组进行异或操作。与第一个分组进行异或的“密文分组”称为初始化向量IV。初始化向量一般由伪随机数生成器派生,IV不可泄露。CBC模式无法抵御选

2021-06-29 21:21:06 3218

原创 mbedtls学习--单向散列函数

文章目录单向散列函数原理性质应用单向散列函数实现方法MD算法SHA算法单向散列函数原理满足密码学算法安全属性的特殊散列函数,保证数据的完整性,抵御篡改攻击,原数据称作消息,计算后的输出称为摘要,在通信中,Bob接受Alice发来的消息及摘要,通过相同的算法计算摘要比对以验证消息是否被篡改。性质输入长度可变,输出长度固定,计算过程应当高效率,具备单向性。抗弱碰撞性,对于给定a,能找到b使得h(a)=h(b)不可行抗强碰撞性,给定一个输出z,能够找到h(a)=z不可行应用消息完整性检测、伪

2021-06-29 19:05:43 912

原创 mbedtls学习--大数运算

文章目录库文件依赖宏接口示例代码算法分析数位统计读取字符串输出字符串数值比较加减计算乘法运算大数计算,顾名思义,指超出64位的数的乘法运算、指数运算和模逆运算,其中模逆运算,特指求逆元,所谓逆元,例如:2∗8mod17=12*8 mod 17 = 12∗8mod17=1则8是2关于模17的逆元(余数为1的被除数)库文件mbedtls/library/bignum.c依赖宏MBEDTLS_BIGNUM_CMBEDTLS_PLATFORM_C接口接口描述mbedtls

2021-06-24 17:39:46 3003 1

原创 AM437 U-Boot添加uboot命令以及自定义命令和使用NAND Flash

为了让ARM启动时从SD-card搬运数据然后转NAND Flash启动,需要重新配置创龙提供的2014版本的Uboot源码文件,主要思路包括:文章目录U-boot添加Ubi和Ubifs命令配置环境变量使用UBI命令制作文件系统镜像烧写文件添加自定义三取二命令添加自定义命令的方法编写自定义命令源码修改Uboot初始化配置 U-boot添加Ubi和Ubifs命令在uboot-2014的include/configs/am43xx_evm.h中添加如下声明。/* #define CONFIG_MTD

2020-05-25 19:53:28 790

原创 史上最全linux内核配置--Device drivers

linux内核配置–Device drivers文章目录linux内核配置--Device driversGeneric Driver Options --->Bus Devices --->< > Connector - unified userspace <-> kernelspace linker Memory Technology Device (MTD) support --->-Y- Device Tree and Open Firmware supp

2020-05-25 13:42:27 10667 2

原创 Linux内核Kconfig解读

文章目录内核的编译过程配置过程--以驱动为例新建Kconfig新建Makefile配置上层Makefile和KconfigKconfig详细语法关键词结构语法if...endifchoice...endchoicemenumenuconfig内核的编译过程arch=arm,tisdk_am57xx-evm-rt_defconfig确定了.config中的配置,主目录的Makefile按照.co...

2019-09-14 23:15:08 649

原创 VScode WSL开发环境配置

读研期间日常写文档用windows word,工作时使用linux码代码需要来回切换操作系统,幸亏遇到wsl ubuntu解决一大难题,但配置好开发环境(使用VScode和Cmake搭建嵌入式开发环境),使用windows版本的VScode有一大弊端–无法查看linux的头文件内容,无法跳转相关的函数和变量定义,简直扎心!无意中发现插件中有一个remote wsl的,真的让人awsl!微软真香!具...

2019-09-14 23:10:50 5211 1

原创 Windows系统配置Linux子系统开发ARM

文章目录安装系统配置 Ubuntu安装 gcc 交叉编译工具命名规则安装 Minicom编译代码Win10可以支持Ubuntu子系统,再也不需要虚拟机!安装系统系统要求:最新版win10,打开应用商店安装Ubuntu应用软件,需要系统开启虚拟机功能以及LINUX子系统功能。安装完成后如下:[外链图片转存失败(img-vJQUlvKC-1568473699787)(https://gith...

2019-09-14 23:09:28 529

原创 socket进程间通信及喂狗框架

目录库函数sockettcpsocket 实现socket()bind()listen()accept()connect()send()和recv()select()select()相关API使用范例深入理解selectselect的优缺点pthread_create()线程线程与进程线程创建与使用线程传参线程局部变量线程编译方案选择自定义函数及功能守护脚本实现结果代码简单的服务器完成以下功能:...

2019-09-14 23:02:45 916 1

原创 都8102年了,你为什么还在装系统?!

都8102年了,你为什么还在装系统?!为什么大家都在用win10/MacOS,你工作却要用Win7或者WinXP,Ubuntu都更新到18.04了,Fedora都25,RedHat都有8的beta版了,可你发现有的地方他让你用2.6的内核。拜托,那是八年前的老古董了,可偏偏有的行业大佬,从来不移植到新的系统上,不兼容,只能在新的主板上安装旧的系统,我来来回回装了N多遍旧系统,做个小记。1....

2018-12-10 23:01:36 275

原创 卷积神经网络CIFAR-10 + TensorFlow-gpu 1.8.0训练与评估

参考:中文网站极客学院也有该部分的汉译版:http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/deep_cnn.html网友学习经验帖:https://blog.csdn.net/yhl_leo/article/details/50738311版本报错修改:https://blog.csdn.net/zeuseign/...

2018-08-28 19:52:54 488

原创 Ubuntu 18.04安装OpenCV 3.4.0和OpenCV_contrib

电脑型号:联想Y7000 i7 8750H + GTX 10601.安装OpenCV 3.4.0(1)下载链接http://opencv.org/releases.html,选择sources版本,解压下载下来的zip包,进入到解压后的文件包中。接下来安装依赖库和cmake,之后在opencv目录下新建build文件夹。unzip opencv-3.4.0.zipcd opencv...

2018-08-21 18:03:12 10777 9

原创 笔记本电脑安装Ubuntu 18.04双系统和卸载

电脑型号:联想Y7000 i7 8750H+GTX1060准备:U盘目录1.制作启动U盘2.磁盘分配3.BIOS启动设置4.Ubuntu 18.04安装5.Ubuntu更换软件源6.卸载Ubuntu1.制作启动U盘(1)官网下载Ubuntu 18.04 64位版本(2)下载Rufus,网址:https://rufus.akeo.ie/ ,Rufus是Ub...

2018-08-21 11:16:38 3105 2

原创 Ubuntu 18.04系统NVIDIA+CUDA9.1+CUDnn7.1+TensorFlow安装

笔记本电脑:联想Y7000 i7 8750H+GTX1060win10+Ubuntu双系统,Ubuntu18.04为英文版(中文版基本无法安装Nvidia驱动)目录1.安装NVIDIA驱动2.安装CUDA9.13.安装CUDnn 7.14.安装TensorFlow 1.安装NVIDIA驱动目前CSDN上关于安装有很多指导帖子,总的来说有1.附加驱动自动安装,这里...

2018-08-20 21:45:48 1895

原创 Opencv基本图像操作

Opencv基本图像操作目录1.绘制矩形、圆形、线条等(7)2.滑动条使用cv2.createTrackbar()(8)3.像素替换、图片信息(9)4.图片重叠与混合(10)4.1透明混合4.2不透明混合5.几何变换(14)5.1缩放5.2旋转5.3仿射变换5.4透射变换1.绘制矩形、圆形、线条等(7)# -*- coding: utf-8...

2018-08-01 20:37:36 414

原创 Windows下opencv3.3.1+python3安装 & 笔记本摄像头配置

win下学习Opencv计算机视觉库一、安装软件1.下载Anaconda的python3版本2.打开Anaconda选择Env搜索opencv3.点击Apply安装opencv4.打开Anaconda命令行,输入python3,结果如下,表示安装成功二、检查笔记本摄像头命令行输入:import numpy as npimport cv2cap = cv2....

2018-07-29 16:13:26 460

原创 简单的回归与预测 & matplotlib坐标轴设置参数(刻度值、间隔)

《机器学习实战》第八章--机器学习分析西湖房价8.2节讲到了局部加权线性回归,由于我们这里只有一个特征,因此输入X矩阵只有偏置常数(x0=1)和x1楼主闲来无事,从网上down近几年西湖区的房价变化,结合课程中学到的算法,做了一些分析# -*- coding: utf-8 -*-"""Created on Wed Jul 25 19:20:59 2018@author: sj...

2018-07-26 20:41:43 22872

原创 斯坦福机器学习笔记

斯坦福机器学习视频教程什么是机器学习Exp:西洋棋 / 过滤邮件监督学习: 预测房价(直线/二次拟合)       ——回归问题                  0/1问题                                    ——分类问题                  主要特征:给算法一个数据集                 算法——支持向量机无...

2018-07-26 13:24:15 531 1

原创 《Python基础教程》[挪]Magnus Lie Hetland——学习笔记(9)

第九章  特殊方法、属性和迭代器9.1 准备工作       &gt;&gt;&gt;__metaclass__=type    #新式类(3.0版本不需要定义)9.2 构造方法       与普通方法的不同:创建对象后,会立即调用构造方法。(无需再调用内部方法)                                          构造方法还可以传递参数,类名(参...

2018-07-26 13:04:01 484

空空如也

空空如也

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

TA关注的人

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