- 博客(230)
- 资源 (17)
- 收藏
- 关注

原创 [8266]1.开篇
原创 比特 找小黑 让我们一起用esp8266做一些好玩的东西吧ESP8266简介ESP8266是上海乐鑫出的一颗SOC,最近几年非常的火爆。我在官网上看了,8266主页的介绍很简单:ESP8266低功耗、高集成度的 Wi-Fi 芯片仅需 7 个外围元器件超宽工作温度范围:-40°C 至 +125°CESP8285 - ESP82...
2020-02-20 00:16:45
717
原创 [xhOS]04OS点亮LED--可能是彻底理解操作系统最容易的一次
我们已经可以用裸机点亮LED了,接下来我们要使用OS点亮LED了。现在的问题是我们还没有OS,哈哈哈哈哈哈,为了学习,还是从0写一个XHOS吧。我们是为了介绍OS而介绍OS,正常流程应该是先说说裸机和OS的优缺点(详情点击这里),然后再引入OS。现在假设大家已经知道了一些必要的知识,来看看我们的OS(当然是非常简单的)。.├── Makefile // 编译脚本├── start.s // 启动文件├── user_main.c // 用户代码,main函数在此├──
2020-11-23 20:59:23
651
原创 [esp8266]网页控制GPIO
网页控制GPIO是小黑固件最基础的一个应用,可以通过手机或者电脑的浏览器控制GPIO的状态(有电ON或者没电OFF)。通过控制GPIO,就做了一个无线开关;可以控制LED灯,控制继电器,从而控制各种设备的开关,非常适合DIY。如果你还不清除小黑是什么,以及它如何使用,看这里:[ESP8266]小黑固件是什么[ESP8266]小黑固件详情快来试试在系统固件中选择APP>网页控制GPIO>远程更新APP。大概30秒更新完成(更新时间根据网络情况可能不同)...
2020-10-25 15:32:10
938
原创 比特说串口编程
要说一种植物,从种子发芽开始.要说计算机,从源头开始.在1.X系列的文章中,我们从最开始的灯泡的例子开始,一步步深入,知道了CPU是怎么工作的,配合内存可以自动工作。前面的内容基本上是CPU工作原理的完整轮廓了。我们知道现在使用的各种形态的计算机除了CPU还有很多别的设备,这些所有的设备都不在CPU里面,都是外部设备,简称:外设。常见外设有:键盘,鼠标,屏幕,或者触摸屏......这些都是按照功能划分的。我们关注的是计算机的工作原理,对外设的分类当然按照工作原理划...
2020-10-03 11:36:42
326
原创 git常用操作--分支
工欲善其事,必先利其器分支分支是简单的概念,和日常生活中用到的一样,比如说头发分杈:从一根开始分成了2根甚至更多,每一个分杈就是一个分支。git的分支功能让它的使用方便了很多。每一个分支是相互独立的环境,你修改了一个分支,别的分支不会受到影响。最大的好处就是,你可以分别在不同的分支干不同的事情,而且互相不受影响。比如你在电脑上写代码,突然手机收到推送“美国和伊朗打起来了”,你的注意力从代码切换到手机的新闻,注意力从写代码切换到看手...
2020-08-21 19:04:44
371
原创 git常用操作及原理--本地
工欲善其事,必先利其器git是跨平台的,在linux、windows、mac上都能使用的优秀的版本管理工具。git干啥的?为什么要用git?话不多说,看图:你是否也有这样的遭遇,文件有很多个版本,管理这些版本使你快要崩溃。git就是解决这个问题的,它把所有的修改记录下来,你可以自由的修改,不怕改错,因为你可以随时返回到某个历史版本。git如何管理文件那git是如何管理文件的呢?git是以目...
2020-08-21 19:03:11
235
原创 搭建gitserver并实现git push 自动部署
git push自动部署能大大提交开发部署效率git 自动部署分为2类,git server和部署不在同一个服务器上(比如通过github部署) git server和要部署的目录在同一个服务器上。这里记录第2种情况,说明如何实现在远程服务器上搭建git server并实现git push自动部署。0. 整体框架我这里服务器的IP为 192.168.1.123, 工作流程如下:在本地PC 的/home/my/website上开发, 开发完成后push到服务器上的git仓库/home
2020-08-14 14:14:19
336
原创 ubuntu服务器新建用户,并且免密码ssh登陆
1 在服务器新建用户(注意使用adduser,不要使用useradd)这里创建xiaohei用户,根据提示完成信息确认就创建成功了server$ sudo adduser xiaohei2 设置免密码登陆2.1 本地PC生成密钥(一路回车默认即可)PC$ ssh-keygen查看生成的密钥PC$ ls ~/.sshid_rsa (私钥)id_rsa.pub (公钥)2.2 上传公钥到服务器PC$ ssh-copy-id -i ~/.ssh/id..
2020-08-14 11:45:12
684
原创 [rsp8266]疫情期间我开发了小黑,很多人却说他看不懂
-------------------------------------------------------------------让我们一起用esp8266做一些好玩的东西吧疫情期间我开发了小黑,很多人却说他看不懂,那让我们好好的了解一下它吧。图片均来源网络,侵删它不是一条狗我的公众号叫找小黑,其实我原来有个小黑,是机器...
2020-03-26 19:52:36
736
1
原创 [8266]小黑固件正式发布
让我们一起用esp8266做一些好玩的东西吧小黑固件是什么小黑固件是作者比特针对ESP8266开发的一个基于浏览器控制的固件。该固件兼容所有ESP8266模块和开发板。为了方便使用,该固件完全基于浏览器(手机或电脑均可)通过内置的web服务器完成wifi配网、串口发送数据(同时实现了一个控制MP3模块的功能)、PWM控制舵机、灵活的GPIO控制(可配置不...
2020-02-22 09:29:20
968
原创 [8266]3. hello world
原创 比特 找小黑 让我们一起用esp8266做一些好玩的东西吧一看到标题,是不是就知道我要干什么了,哈哈哈,和很多编程语言一样,先来个hello world。上节我们说到测试一个工程是:#拷贝官方的hello world工程cd~/esp//这个是拷贝到esp目录下,实际上可以拷贝到任何地方cp -r $IDF_PATH/example...
2020-02-20 00:26:50
272
原创 [8266]2.开发之前要了解的事实
原创 比特 找小黑 让我们一起用esp8266做一些好玩的东西吧再次认识ESP8266 ESP8266EX内置超低功耗 Tensilica L106 32-bit RISC 处理理器器,CPU 时钟速度最⾼高可达160 MHz,⽀支持实时操作系统 (RTOS) 和 Wi-Fi 协议栈。 ESP8266EX内置64KB iRAM(用来执行...
2020-02-20 00:21:32
440
原创 在Linux下掌握arm和操作系统(3)--点亮LED
说了那么多,我们终于开始写代码了.毫不例外,我们从世界上最著名的程序"helloword"开始,硬件的"helloword"就是点亮一个LED.硬件原理图:从原理图看出,LED (D1)连接电源和地,上电就亮. LED D2连接VCC和PC13,所以我们只要给PC13引脚一个低电平就可以点亮这个LED.准备点灯俗话说,让我点亮一个LED我就能上天. 看把你能的,LED 可不...
2019-01-06 18:15:22
762
2
原创 在Linux下掌握arm和操作系统(2)--开发环境最小系统
开发环境最小系统是指,搭建开发环境所需的最小部件.1,开发板,2.linux系统,3,USB转串口.1.先说开发板我使用的是STM32F103C8T6核心板,长这个模样:就中间这货,淘宝上也就在十几块钱,从上图看这功能还是很强大的嘛.而且STM32F103C8T6说是有64K flash,可实际上有128K.意外的惊喜.2.linux系统,我是Ubantu 16.04,在电...
2019-01-06 17:17:41
1205
1
原创 在Linux下掌握arm和操作系统(1)--stm32和arm
大家都知道,arm是卖IP,授权给芯片厂商,芯片厂商再增加外设等组成CPU/MCU/SOC生产销售。arm的发展历程网络上太多了,我也不多说。只要我们明确目前arm主要产品是armv7,armv8架构的。其中armv7又分为armv7-A,armv7-R,armv7-M,而armv8 只有armv8-A。A系列主要面向高端应用,R系列主要面向实时类的场景,M系列是面向低端控制器场景。而我...
2019-01-06 15:30:39
597
原创 在Linux下掌握arm和操作系统(0)--开篇闲聊
很明显我是标题党,真正的标题是《在Linux下学习stm32和NUTTX RTOS》。由于stm32也是ARM的,NUTTX也是操作系统,stm32和NUTTX有着arm的基本特征,NUTTX有着操作系统的基本特征,如果把这两者搞明白了,你会发现其他的arm芯片和操作系统似曾相识。至于为什么选这两者结合,原因有一下几点:1,nuttx对stm32支持的特别好,2.stm32资料很多,很容...
2019-01-03 20:27:24
436
转载 回调函数以及钩子函数的概念
钩子函数,只是回调函数的一个特例,是windows的东西。不关心windows只看后面例子即可。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。对每种类型的钩子由系统来维护一
2016-08-12 17:54:41
530
转载 Linux内核编译 CONFIG_MODVERSIONS 作用
关于Linux内核编译 CONFIG_MODVERSIONS 作用的两篇文章整理。一般情况下,如果没有选择CONFIG_MODVERSIONS,这些符号是正常的字串;如果选择了CONFIG_MODVERSIONS,这些符号就会在后面加一段校验字串。这样做的目的是避免模块不正确加载情况下,使得Linux内核崩溃。一、如果内核选择了CONFIG_MODVERSIONS选项,你的
2016-08-08 08:44:36
6087
3
转载 Kernel Symbols and CONFIG_MODVERSIONS
Kernel Symbols and CONFIG_MODVERSIONS了解modversion挺不错的文章,后面有linuxforum的朋友翻译的中文版------------------------------------- Kernel Symbols and CONFIG_MODVERSIONS ------------------------------------
2016-08-08 08:44:02
678
3
转载 Linux驱动开发 -- 打开dev_dbg()
linux设备驱动调试,我们在内核中看到内核使用dev_dbg来控制输出信息,这个函数的实质是调用printk(KERN_DEBUG )来输出打印信息。要打开这个开关需要下面两步。 1、打开调试开关:你调试的文件中必然包含了 linux/device.h,或者linux/paltforam_device.h,后者包含了前者,在包含此头文件之前,使用#define D
2016-08-05 16:21:25
841
转载 linux debug开关 dev_dbg
1、最近在写I2C下EEPROM的驱动程序,但发现使用i2c_new_probed_device函数无法枚举到设备,于是想调试该函数(位于driver/i2c/i2c-core.c内),看到其中有些调试信息如下:i2c_new_probed_device(...){ ... if (addr_list[i] == I2C_CLIENT_END) { dev_dbg(
2016-07-21 17:43:03
646
转载 多媒体技术基础
--------------http://zzjlzx.blog.chinaunix.net/uid-23069658-id-3995439.html声音一个最基本的常识就是“它是一种能量”,初中物理课上我们也学过声音的三要素分别是音色、音调和响度。 音色:简单理解,就是一种声音的固有特征。比如,电子琴和小提琴发出的声音是有明显区别的,笛子和古筝也有各自的声音特征。有些声音模仿秀的选
2016-07-21 09:53:11
1004
转载 Linux声音系统
Linux声音系统有些混乱,它有三套音频驱动: OSS (Open Sound System), 商业版的OSS,和ALSA (Advanced Linux Sound Architechture)。 所以底层驱动有OSS和ALSA两套API。一、声卡的工作原理音频驱动的主要作用是驱动声卡工作,所以也叫声卡驱动。 声卡的主要作用是完成数模转换。 当电脑播放声音时,将数字数据送到声卡
2016-07-21 09:22:50
687
转载 Android USER 版本与ENG 版本差异
Google 官方描述: USER/USERDEBUG/ENG 版本的差异, 参考alps/build/core/build-system.html 的详细说明eng This is the default flavor. A plain make is the same as make eng.* Installs modules tagged with: eng, debug, use
2016-07-06 13:23:15
624
转载 使用resize2fs调整ext4分区大小
安装公司samba服务器时对磁盘需求量估计不足,原本分的只有100GB,使用一段时间后磁盘就达到了 86%的使用量, 这都什么人啊用这么大量的磁盘。。。。现在又不想重新格式化磁盘,通过google找到了无损调整磁盘分区大小的方法。 现记录如下,以备后用。 我的情况 将一块硬盘分成了两个区,一个100GB 一个60GB ,只使用了前100GB空间的内容,后面的分区没有挂
2016-05-30 09:15:55
53108
1
转载 LINUX+APACHE+MYSQL+PHP安全加固配置说明
人的安全意识放在首位,杜绝一切弱口令 !以下是linux+apache+mysql+php基线配置安全加固的详细说明##########################1.apache禁止列目录:cd /opt/lamppvi etc/httpd.conf# 就是这一行,只去掉indexes也可#Options Indexes FollowSymLinksO
2016-05-16 13:26:46
2968
转载 alsa-utils工具的使用
下载地址:http://www.alsa-project.org/main/index.php/Download源码包安装方法:# tar zxvf alsa-utils-1.0.6.tar.gz# cd alsa-utils-1.0.6# ./configure# make install三.alsa-utils工具的使用alsa-utils包含的工具有:al
2016-05-13 13:49:13
646
转载 UART和RS232/RS485的关系是什么?
串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式。但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句中同等的位置使用。在百度搜索二者的区别,可以看到排在最前面的答案充斥着混淆的概念。就此,谈谈我对这几个概念的理解,希望能帮初学者厘清它们之间的关系。~~ 通讯问题,和交通是
2016-04-25 14:00:57
453
转载 ppp拨号脚本配置
ppp拨号脚本配置摘要 本文主要介绍了嵌入式Linux系统下使用pppd 2.4.4来进行PPP拨号需要使用的脚本是如何配置的,配置项的含义,同时也说明了如何来配置参数,实现ppp拨号上网。一.问题提出 嵌入式Linux操作系统下,如果要进行PPP连接,就需要配置拨号要使用的连接脚本。这些脚本参数就决定了PPPD的行为,会对PPP连接产生很大的影响。所以需要对这
2016-04-22 17:33:42
2194
转载 javascript特性杂谈
版权声明:本作品由九天雁翎创作,采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。http://www.jtianling.com目录(?)[+]最近语言学习有些疯狂, 从Ruby到Lisp, 然后是C#, 既然已经疯狂了, 就顺面学习一下JavaScript吧. 对javascript的印象一直不佳, 从骂脏话最多的使用者, 到使用
2016-04-20 14:33:30
366
转载 linux ppp上网的文章
作者:admin 来源:未知本文将说明如何在Linux下用CDMA modem完成拨号上网的工作。首先,读者需要对PPP协议有初步的了解,比如,读者至少应该知道LCP和NCP是什么,以及PAP和CHAP是做什么的;其次,读者可能需要安装pppd和chat两个工具,通常系统中默认都是安装了这两个程序的。如果没有安装pppd,可以到http://ppp.samba.org/下载最新
2016-04-07 16:15:38
527
转载 CDMA2000 3G Chat 拨号
使用CDMA2000 3G拨号加载驱动[plain] view plaincopyinsmod usbserial vendor=0x#### product=0x#### 查看驱动是否加载正常查看驱动[plain] view plaincopyT: Bus=01 Lev=02 Prnt=02 Port=0
2016-04-07 13:20:33
914
转载 电信3G linux
物联网的发展,嵌入式节点具备3G无线上网功能是个必不可少的功能,奈何网上的资料多数以WCDMA为主,电信的evdo资料不是很多,笔者经过一番实验,搜寻了一些网站,终于在开发板上,将EVDO模块(中兴MC8630)成功拨号上网,现分享步骤如下:3G模块的速度非常快,所以普通的UART串口已经不能满足速度,所以会通过芯片的USB口来进行数据交互。硬件连接这里就忽略了,有兴趣的朋友可以买个usb
2016-04-06 14:50:27
681
转载 设备树使用手册
This page walks through how to write a device tree for a new machine. It is intended to provide an overview of device tree concepts and how they are used to describe a machine.本文将介绍如何为一个新机器编写设备树。我们准
2016-03-24 11:23:55
569
转载 Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件、目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作。。。一、原始版本控制 最原始的版本控制是纯手工的版本控制:修改文件,保存文件副本。有时候偷懒省事,保存副本时命名比较随意,时间长了就不知道哪个是新的,哪个是老的了,即使知道新旧,可能也不知道每个版本是什么内容,相对上一版作了什么修改了,当
2016-03-07 14:42:14
398
转载 const在函数前与函数后的区别
一 const基础 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500; const int* a = &b; [1] int const *a = &b; [2] in
2016-03-01 09:17:45
360
转载 USB原理----
USB作为目前计算机的最广泛使用的外设接口,让我们变得越来越便利。 USB的设计理念与传统的外设接口设计有很大区别,一般的外设接口设计仅仅规定通信过程的实现,很少涉及到通信内容本身。而USB协议则对通信内容的解析有很多规定,因此其协议内容比一般的协议都复杂,即使你理解TCP/IP协议,但是当面对USB协议时,也会感觉一头雾水。 正因为USB实现目标是多种不同类型和速
2016-02-24 17:35:17
606
原创 安卓源码下编译
在安卓源码下编译内核模块hello.c/* test hello.c */#include #include static int __init test_module_init(void){ printk(KERN_DEBUG "test_module_init"); return 0;}static void __exit test_module
2016-02-23 13:16:59
823
转载 Android.mk的用法和基础
一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。每个模块属下列类型之一: 1)APK程序,一般的Android程序,编译打包生成apk文件 2)JAVA库,java类库,编译打包生成
2016-02-23 10:57:08
425
原创 mm编译 问题
mm编译一个hello.c文件为可执行文件时出现错误 make: Entering directory `/home/root_work/GF06-main/android' make: *** No rule to make target `out/target/product/generic/obj/lib/crtbegin_dynamic.o', needed by`out/targ
2016-02-23 10:47:36
1601
linux kobject kset bus.tar.gz
2019-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人