自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 secure boot(三)

0.前言    本文主要说明的是在开启secure boot功能时可能遇到的难题,以及如何使用USB的方法来刷签名镜像。 1.开启secure boot功能可能会遇到的问题     我们刷完签名镜像之后,就可以重启机器,如果一切工作顺利,那么机器会正常运行,和没有启用secure boot时的情况一致。但是如果有什么步骤出错了,你会发现机器啥都没有输出,终端没有一点反应,这是因为软...

2018-11-03 02:28:03 7066

原创 secure boot(二)

0.前言    本文的目的是为了根据一个实例来讲解在QCA4020开发板上如何启用secure boot 功能。 1.通过OTP 编程工具使能secure boot    为了设置OTP保险丝,我们需要使用QCA4020 SDK中包含的OTP编程工具。(1)编辑位于target\quartz\mfg\OTP\tools\下的配置文件otp_config.xml,如下所示:...

2018-11-03 01:35:15 8316

原创 secure boot(一)

0.前言    本系列讲解的是如何在高通的QCA4020开发板上实现secure boot功能,以及一些相关的概念。 1.什么是secure boot    Secure boot指的是建立用于运行已验证应用程序的可信平台的启动序列。它从一个不可变的序列开始,使用密码验证验证代码的源,从而只执行授权的软件。启动序列将设备置于已知的安全状态,并检测软件的二进制操作和反射攻击。  ...

2018-11-03 01:30:34 11945

原创 Zigbee about QCLI_demo(3)

0.前言    在zcl_demo.c中定义了很多的全局变量,与cluster和endpoint有关,本文来查看它们之间的关联关系。 1.demo支持的所有cluster    所有的cluster都使用下面的结构,由ID、名称、初始化函数、服务端函数和客户端函数组成。/* Structure to describe a cluster that can be used by...

2018-10-11 16:01:07 463

原创 Zigbee about QCLI_demo(2)

0.前言    本文旨在说明创建endpoint。    创建哪一个endpoint,以及什么类型的endpoint。 1.函数原型static QCLI_Command_Status_t cmd_ZB_CL_CreateEndpoint(uint32_t Parameter_Count, QCLI_Parameter_t *Parameter_List)Paramete...

2018-10-11 15:55:54 418

原创 Zigbee about QCLI_demo(1)

0.前言    如前面的helloworld_demo中所说,平台架构分为两大部分:始化部分app_init和主体部分app_start。zigbee的准备工作是放在app_init中的,主体部分是放在app_start中的。本文说明的是app_init中对zigbee的初始化。 1.全局变量(1)ZigBee_Demo_Context/* Structure represe...

2018-10-11 15:47:44 477

原创 Power Optimization SDK介绍之电源管理的两种模型:reactive和proactive

    电源管理是指如何将电源有效的分配到设备的不同的组件。电源管理对于依赖电池电源的移动设备来说是非常重要的,例如笔记本、手机等等。一个好的电源管理系统能够使电池的寿命和每次使用的时间大大增加。    本文旨在说明与电源管理相关的两种模型:无功功率电源管理和有功功率电源管理。 1.无功功率电源管理(1)无功功率产生的原因    在AC电路中,由于电感和电容部分中的临时能量存储...

2018-09-11 17:11:10 897

原创 QCA4020之BLE 服务(5)

0.前言    CCCD,Client Characteristic Configuration Descriptor,客户端特征配置描述符,主要用于开启或者关闭通知信息。    首先,CCCD是一个描述符;    其次,它对应的UUID是2902. 1.在电池警报服务的填充函数中,CCCD的获取过程是:if(QAPI_BLE_GATT_COMPARE_CLIENT_CH...

2018-08-16 16:09:17 1124

原创 QCA4020之BLE 服务(4)

0.前言    本文将QCA4020板作为服务端,使用Ubuntu上调试蓝牙的工具BlueZ与之进行交互,查看板提供的服务。以BAS服务为例。 1.在板上注册服务3 //进入BLE4 //初始化53 //进入BAS4...

2018-08-16 16:05:18 646

原创 QCA4020之BLE 服务(3)

0.前言    在上一篇文章中提到,每次发现一个服务,就会调用回调函数,回调函数会填充相关的服务结构体,本文旨在说明AIOS服务的填充。 1.AIOSPopulateHandles    在回调函数中调用了AIOSPopulateHandles这个函数进行AIOS服务的填充,首先我们来看它的参数:static void AIOSPopulateHandles(AIOP_Cli...

2018-08-16 15:57:08 602

原创 QCA4020之BLE 服务(2)

0.前言    在上一篇中,你会发现服务发现操作非常的简单,就只是调用了qapi_BLE_GATT_Start_service_Discovery这个api函数。但是它的重点是它的回调函数:GATT_Service_Discovery_Event_Callback。本文旨在说明这个函数的功能和代码流程。 1.事件    首先来看,在服务发现操作的过程中,有两种事件会产生typ...

2018-08-16 15:52:26 616 1

原创 QCA4020之BLE 服务(1)

0.前言    本系列主要是为了说明跟蓝牙服务相关的话题。首先以QCA4020板上注册的AIOS为例说明这个问题。 1.查看QCA4020板上已有的服务     在服务端使用RegisterAIOS注册了AIOS服务之后,那么客户端就可以使用DiscoverServices来查找设备上的已经有的服务,得到的结果如下:BLE: Service 0x0001 - 0x0001, ...

2018-08-16 15:48:15 760

原创 QCA4020新手上路(六)

1.引言    本文依然来讲HelloWorld_demo。本文旨在说明pal.c中的代码逻辑。 2.全局变量PAL_Context    本文件中定义了一个很重要的全局变量PAL_Context/*------------------------------------------------------------------------- * Type Declara...

2018-07-26 19:26:07 3353

原创 QCA4020新手上路(五)

1.引言    本文依然来讲HelloWorld_demo。本demo中总共包含3个c程序文件:hello_world.c、pal.h、pal.c。本文旨在说明hello_world.c中每个函数的逻辑。 2.函数    本文件中只包含了3个函数。HelloWorld_Thread:线程函数Initialize_Demo:初始化函数App_Start:主体函数 ...

2018-07-26 19:20:09 809

原创 QCA4020新手上路(四)

1.引言    本文旨在说明,在QCA4020中最简单的一个demo:HelloWorld_demo的整体框架,以及调用流程。 2.代码整体架构图 2.说明(1)demo总体可以分为两个部分初始化部分: app_init主体部分: app_start(2)如果用户想要执行任何有关的初始化动作,都可以放在app_init中调用例如本demo中,hello_...

2018-07-26 19:14:42 3400

原创 QCA4020新手上路(三)

1.引言     本文旨在说明如何在已经搭建好的开发环境中,编译代码,刷机。 2.获取高通提供的demo     首先要从高通官网获取QCA4020的开发套件,下图是从官网获取的压缩包: 3.以QCLI_demo为例,示范如何编译和烧写该demo(1)进入QCLI_demo的build/gcc目录下cd PATH\QCA4020.OR.1.1_PostCS1\...

2018-07-26 19:10:04 1171

原创 QCA4020新手上路(二)

1.引言      从QCA4020板的led指示灯,我们可以知道系统已经开始运行了。下一步就是搭建开发环境,本文说明的是在windows上如何搭建开发环境。 2.开发环境包含的内容有(1)交叉工具链(2)python(3)putty 3.交叉工具链因为我们需要在PC机上编译代码,再放入板内运行,所以需要安装交叉工具链。https://developer....

2018-07-26 18:23:07 792

原创 QCA4020新手上路(一)

1.引言    本文旨在说明,当拿到一块新的QCA4020板时,怎么供电,怎么启动这块板。 2.开机(1)qca4020的整体外观    首先让我们来看一下QCA4020板的真身。 (2)jumper    其次我们来关注在板上那么多的jumper,它是我们能够正常启动QCA4020板的关键点。    下图中,我已经将所有的jumper用红框标记出来,当然我...

2018-07-26 17:36:28 2032

原创 shell脚本之颜色

当我们书脚本的时候,会想要把其中的某些部分进行重点的提示,这就涉及到怎么把字符标记显示不同的颜色。       常用的颜色有:黑色\033[30m  xxx  \033[0m红色\033[31m  xxx  \033[0m绿色\033[32m  xxx  \033[0m黄色\033[33m  xxx  \033[0m

2016-12-06 19:56:14 1137

原创 shell之检查端口服务是否正常

有很多时候需要检查网络服务的端口是否正常,以下是几种常用的方法。       1.telnet#/bin/sh. /etc/init.d/functionsif [ $# -ne 1 ]then echo "Usage: sh $1 ip" exitfinum=`echo -n "\n"|telnet $1 80|grep Connected|wc -l`if

2016-12-06 19:02:39 8853

原创 shell脚本之判断输入参数是否为整数值

在写脚本时,通常会有很多关于命令行参数,变量等的判断其是否存在或者类型是否正确。当判断一个从命令行接收到一个值,需要判断其是否为整型值时,有以下两种方法:           1.用shell命令使其与某个整型值进行计算,通过$?来判断其是否是一个整型值。flag=trueread -p "please input a number:" numwhile $flagdo

2016-12-04 20:08:08 15045 3

原创 shell脚本之数值计算

在shell脚本中,通常用的到数值计算方式有:(())、expr、let。           使用(())时,需要将表达式至于(())内部,计算结果变量可以写在里面,也可以写在外面,例如((a=3+5))a=$((3+5))           当直接写等式时,例如i=1+2,echo $i,将会得到1+2这样的字符串输出。可以在i=1+2前面加上let命令,echo $i,结果为3.

2016-12-04 19:24:11 408

原创 shell脚本的三种执行方式

执行shell脚本的三种方式有:1.sh test.sh        2../test.sh        3.source test.sh    or     .  test.sh        对于test.sh脚本来说,如果没有执行权限或者没有在文件开头指定解释器,那么只能使用第一种执行方式,除此之外,他们没有什么差别;但是对于第三种执行方式来说,它所产生的影响和前面两种是

2016-12-03 22:18:14 5474

原创 shell脚本语言

现在流行的脚本语言有很多,例如php、perl、python、shell等等,这些脚本语言都有自己的牛x的地方。shell脚本语言在unix/linux系统上用途广泛,它的优势在于处理操作系统底层的业务,它利用大量的命令和函数来实现强大的功能,例如一键安装、报警等等。

2016-12-03 20:59:01 274

空空如也

空空如也

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

TA关注的人

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