自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码工杂记

码工许师傅的零碎记录

  • 博客(53)
  • 资源 (9)
  • 收藏
  • 关注

原创 Python 30分钟入门——数据类型 and 控制结构

Python是一门脚本语言,我也久闻大名,但正真系统的接触学习是在去年(2013)年底到今年(2014)年初的时候。不得不说的是Python的官方文档相当齐全,如果你是在Windows上学习Python,安装包自带的“Python Manuals”就是一份很好的学习资料(基本上不用去找其他资料了);尤其是其中的Tutorial,非常适合初学者。本文一方面总结了python语言的核心——数据类型和控制结构;另一方面,通过与其他语言的对比表达了我对Python的一些拙见。

2014-07-27 01:18:10 2113 1

原创 【STM32F103精英板】使用ESP8266模组和OneOS高德云服务组件实现IP定位和天气预报

本文将介绍如何从零开始在STM32F103开发板上,通过连接ESP8266模组实现WiFi联网,以及使用OneOS高德云服务组件,最终实现根据公网定位当前大概位置,以及获取天气预报。

2022-09-24 20:41:30 351

原创 【MM32F5270】RT-Thread SPI 驱动适配指南

本文记录了我在社区“Rice我叫加饭”大佬移植的RT-Thread系统源码基础上,为MM32F5370开发板添加SPI驱动支持的过程。适配完成后,我使用W25Q128模组对SPI驱动的正确性进行了验证。这是我第一次给RT-Thread添加芯片SPI驱动,本文试图尽可能详细的描述整个适配过程。希望初学者通过阅读本文,能够复现本文描述的整个过程,或者参考本文可以为其他芯片添加RT-Thread SPI驱动支持。

2022-09-03 20:52:59 615

原创 【MM32F5270】Keil开发环境搭建

本文完整记录了——如何从零搭建MM32F5270 Keil开发环境以及如何编译运行MM32F5270 SDK中的hello_world示例。本文写作过程中参考了一些链接,具体可以在本文末尾找到,感兴趣的读者可以自行查阅。其中,灵动官网提供了最新的芯片用户手册,逐飞科技的网盘中提供了开发板原理图和硬件试用说明,这些资料在后续的开发过程中是经常需要查阅的,建议下载;灵动SDK下载页面提供了在线的API参考,建议收藏。...

2022-08-18 19:15:00 311

原创 【先楫HPM6750系列】RT-Thread SPI驱动和WiFi联网

本文将会介绍——如何使用RT-Thread Studio创建基于HPM6750EVKMINI开发板的RT-Thread项目,并逐步添加WiFi联网能力、iperf网络带宽测试命令、以及简单的基于socket的网络业务代码。在RT-Thread Studio环境下,只需要进行一些配置即可完成WiFi联网,整个操作过程非常简单。本篇的最后,将会简单介绍这背后蕴含的原理。...

2022-07-07 21:12:54 374

原创 【先楫HPM6750系列】RT-Thread SDIO驱动和文件系统

本篇将介绍——如何在HPM6750EVKMINI开发板上使用RT-Thread的SDIO驱动和FATFS文件系统组件实现SD卡上的文件读写。

2022-07-05 19:56:40 214

原创 【先楫HPM6750系列】RT-Thread开发环境搭建和Hello World

本篇介绍HPM6750开发板的RT-Thread Studio开发环境搭建,以及在RT-Thread Studio环境下如何创建项目、编译项目、调试项目、烧录二进制文件、使用串口终端等功能。

2022-06-05 20:45:00 1083

原创 【先楫HPM6750系列】PWM驱动蜂鸣器发声

本篇将介绍如何使用HPM6750输出PWM信号,并使用PWM信号驱动蜂鸣器发声。

2022-05-29 12:36:00 1296

原创 【先楫HPM6750系列】CoreMark跑分测试

本篇将会使用SEGGER Embedded Studio编译CoreMark程序,将SES生成的CoreMark二进制烧录到HPM6750EVKMINI开发板上,并进行coremark跑分测试,同时对HPM6750的跑分结果和STM32部分型号的跑分结果进行对比。

2022-05-22 21:52:34 787

原创 【先楫HPM6750系列】GPIO点灯和按键控制

本文介绍如何点亮HPM6750EVKMINI开发板上的三色LED灯,以及如何使用HPM SDK实现——通过GPIO读取HPM6750EVKMINI开发板上的按键状态,并通过按键状态控制LED灯的颜色。

2022-05-22 21:33:56 215

原创 【先楫HPM6750系列】HPM SDK开发环境搭建和Hello World

本篇将会介绍如何安装SEGGER Embedded Studio,如何使用HPM SDK脚本创建SEGGER Embedded Studio项目,以及如何在SEGGER Embedded Studio中对hello_world项目进行编译和调试。

2022-05-20 19:00:00 366

原创 【先楫HPM6750系列】HPM6750EVKMINI开箱和资料下载

去年年底,我就在网络上看到了关于HPM6750的相关新闻,当时记住了两条关键信息——RISC-V内核、主频高达800MHz。因此,我在了解到eeworld上有HPM6750的试用活动后,立即报名了此次试用活动。一段时间后,EEWorld的小编通知我中选了。我收到小编发来的中选消息的开心程度——不亚于中了10块钱的彩票 ;-)。小编告诉我,此次试用活动的合作厂商先楫半导体增加了三个试用名额,也就是6个试用名额。很nice的厂商,不光芯片非常给力啊~打开小编发给我的试用名单帖子,看到了自己的id,确

2022-05-18 22:15:16 2095

原创 【项目分享】基于AB32和RT-Thread的墨水屏智能日历

本项目硬件部分包含4.2寸墨水屏、墨水屏驱动板、ESP8266模组和W25Q128闪存模组以及开发板自带的按键,硬件功能上使用了AB32芯片的SPI、UART、GPIO。软件部分包含业务代码、RT-Thread内核、RT-Thread组件包以及一些移植的三方组件。本项目实现了根据IP地址定位查询所在城市天气,从NTP服务器同步时间到片上RTC,最终在4.2寸墨水屏上显示当前日期、天气、温度、阳历、农历的效果。源码全部开源,欢迎Star支持。

2021-12-24 10:30:11 281

原创 使用HiBurn烧录鸿蒙.bin文件到Hi3861芯片

使用HiBurn烧录鸿蒙.bin文件到Hi3861芯片鸿蒙官方文档的“Hi3861开发板第一个示例程序”中描述了如何使用DevEco Device Tool工具烧录二进制文件到Hi3861芯片;本文将介绍如何使用HiBurn工具烧录鸿蒙的.bin文件到Hi3861芯片。获取HiBurn工具DevEco Device Tool是一个VSCode的插件,它是一个.vsix文件,这个文件其实是一个zip压缩文件。你可以在git bash或者将它拷贝到Linux环境中,再使用file命令识别出来:$ fi

2020-10-09 19:40:57 6004

转载 海思Hi3516DV300软硬件全套开发资料

海思Hi3516DV300软硬件全套开发资料海思Hi3516DV300软硬件全套开发资料:https://pan.baidu.com/s/1O1TnELnM2FgZD2Dl82wG7g提取码: k53d分享自吴川斌的博客: https://www.mr-wu.cn/

2020-10-09 14:14:04 1062

原创 鸿蒙OS的系统调用是如何实现的? | 解读鸿蒙源码

本文将首先带您回顾“系统调用”的概念以及它的作用,然后从经典的Hello World开始,逐行代码层层分析——鸿蒙OS的系统调用是如何实现的。写在前面9月10号 华为开发者大会(HDC)上,华为向广大开发者宣布了鸿蒙2.0系统开源,源码托管在国内源码托管平台“码云”上:https://openharmony.gitee.com/我也第一时间从码云下载了鸿蒙系统的源代码,并进行了编译和分析。当晚回看了HDC上的关于鸿蒙OS 2.0的主题演讲,个人最为好奇的是——这次开源的liteos-a内核。因为它支持

2020-10-01 12:22:54 7136 2

原创 Harmony OS 开发避坑指南——DevEco Device Tool 安装配置

本文介绍如何在Windows主机上安装DevEco Device Tool工具。坑点总结:国内部网络环境下,安装npm包可能会失败,推荐使用淘宝源;serialport这个npm包安装的过程中需要编译源码,需要先安装windows-build-tools再安装这个包才会成功;准备环境本节介绍下载、编译鸿蒙源码需要的软硬件环境。硬件环境其中,Linux主机用于源码下载和编译,Windows主机用于烧写程序到单板以及源码编辑。软件环境硬件说明Linux主机推荐实际物

2020-10-01 12:19:02 11908 6

原创 Harmony OS 开发避坑指南——源码下载和编译

Harmony OS 开发避坑指南——源码下载和编译本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台(Hi3516,Hi3518和Hi3861)的编译环境,以及如何将源码编译为三个目标平台的二进制文件。坑点总结:下载源码基本上没有太多坑,可以很顺利的进行编译源码主要的一个大坑是,默认版本的scons依赖python 3.7+,鸿蒙基础编译代码依赖python3,需要安装python 3.7+,并和当前系统上的python2.7/python3.6和谐共处!解决方法一般有两种:&

2020-10-01 12:17:08 7595

原创 Android WiFi 架构总览(模块及接口)

本文介绍Android源码项目(AOSP)中WiFi功能的软件架构及各个模块(可执行文件、库)间的接口,对Android系统感兴趣的同学可以一看。

2015-09-23 10:45:45 18565 3

原创 Qunie——自我生成程序

Qunie是一段没有输入,但输出和它本身源码相同的程序。本文无任何高深技术,纯属娱乐! wikipedia的解释:A quine is a non-empty computer program which takes no input and produces a copy of its own source code as its only output.

2015-08-10 16:04:07 979

原创 btHashMap vs std::unodered_map ——两种hashmap的性能对比测试

本文用实验对比了btHashMap和std::unordered_map在几种不同场景下的性能表现,证实了前文对于二者性能差异上的断言,并从rehash成本的角度解释了当size达到一定数量时std::unordered_map性能表现下降的原因。

2015-07-25 11:41:33 3359

原创 Java的Object.hashCode()的返回值到底是不是对象内存地址?

java的Object.hashCode()返回的到底是不是对象的内存地址?相信大家都曾对此问题有所怀疑,本文通过实验探究 和 ART(Android Runtime)、OpenJDK的源码分析为大家(和我自己)回答了这个问题。对Java、算法感兴趣或对此问题也有疑问的同学可以一看。

2015-05-03 13:25:40 21330 12

翻译 Android初始化语言(init.rc语法)

本文为 ANDROID_SOURCE/system/core/init/readme.txt 的译文,主要讲解Android init.rc的语法。这份文档基本说明了init进程要完成那些工作,当然,除此之外,init进程还要完成property service等内容。对Android启动过程感兴趣或对init源码有兴趣的同学,本文值得一读。

2014-12-28 10:50:48 12451

原创 WiFi(网络)调试Android手机

adb是Android调试神器,它本身提供了网络调试的功能;所以,在不能直接用USB连上手机的情况下,可以用WiFi连接adbd进行调试,本文记录了WiFi连接adb并进行调试的具体步骤。WiFi连接的adb用起来和USB连接的没有任何区别,可以正常使用adb shell, adb logcat, adb am,adb reboot等命令,使用Eclipse单步调试也没有任何问题。没有ROOT手机也可以使用WiFi调试,唯一的要求是启用手机的网络调试功能,是不是邪恶感顿生?

2014-11-25 14:25:57 8709

原创 Java并发原语——线程、互斥与同步

本文首先介绍了Java的线程基本操作(创建、等待等),线程的互斥、同步操作;然后解释了为什么需要互斥、同步,什么是信号(通知)丢失,什么是虚假唤醒;并实验展示了原子性(Atomic)问题、通知丢失(notify missing)问题;同时给出了原子性、信号丢失、虚假唤醒问题的解决方法。

2014-11-16 16:36:17 5441 3

原创 bullet HashMap 内存紧密的哈希表

bullet 作为开源实时物理引擎,在速度和性能上有着优秀的表现。本文首先分析了bullet的内存对齐、动态数组,然后分析了std::ordered_map的内存布局,最后分析了btHashMap内存布局的独特之处,并解释了为什么这种设计有着优秀的性能表现。PS:对算法、数据结构、内存管理、高性能感兴趣的同学,此文绝对值得一看。

2014-11-09 14:07:20 2478

翻译 C++类型转换

一篇来自cplusplus.com的文章,这是我所看过的关于C++类型转换的最全面、最细致、最深入的一篇文章,本文为其中文译文。本文介绍了C++的各种类型转换,具体包括:基本类型的隐式类型转换,C风格的类型转换,类的隐式转换(implicit conversion),explicit关键字,static_cast, reintperet_cast, const_cast, dynamic_cast。 以及和RTTI相关的typeid关键字。

2014-11-01 15:51:50 1667 1

原创 avr-libc malloc/free的实现

本文从源码角度分析了malloc/free在avr-libc下的具体实现。avr-libc的malloc/free使用了单链表链接的freelist作为管理chunk的“账簿”,同时采用了“最佳适配”策略——即若freelist有多个chunk可满足当前malloc(size)请求,将以“最佳的”(所有大于size的chunk中最小的)chunk响应。

2014-10-25 09:48:30 3992

原创 C++哪些运算符重载可以重载?

运算符重载是C++重要的特性之一,本文首先引用了C++标准文档对于“运算符重载”的规定,然后通过代码实例回答了:哪些运算符可以重载?如何重载?实现运算符重载时应注意哪些?

2014-09-29 23:01:52 9599 1

原创 Android 传感器开发

现在的智能手机都配备了各种各样的传感器,本文将用代码实例展示如何使用Android SDK提供的相关类及方法开发传感器应用。

2014-09-18 21:04:59 2311

原创 C++运算符重载的妙用

运算符重载(Operator overloading)是C++重要特性之一,本文通过列举标准库中的运算符重载实例,展示运算符重载在C++里的妙用。具体包括重载operator<<,operator>>支持cin,cout输入输出;重载operator[],实现下标运算;重载operator+=实现元素追加;重载operator()实现函数调用。

2014-09-18 00:42:30 3327

原创 【经典面试题】实现平方根函数sqrt

本文描述了二分法、牛顿法、割线法的算法步骤,并实现了基于这几种方法的SQRT;同时,从理论角度解释了这些算法背后数学原理,并将这些方法推广到了求一般方程近似解的问题上。最后,对几种方法实现的sqrt的收敛速度进行了理论分析和实验对比。实验结果表明,牛顿法的收敛速度快于割线法,割线法快于二分法;与理论分析结果一致。

2014-08-30 17:53:19 22321 7

原创 Android Handler 详解

本文回答了“为什么使用Handler能跨线程更新UI?”,同时从源码角度剖析了暗藏在Handler背后的玄机:Looper(封装了消息循环)和MessageQueue(消息队列),它们是所有App(Activity)得以运作的核心。Handler本质上具有两个角色——消息队列的窗口(Handler.sendMessage)、处理消息的回调(Handler.handleMessage)。最后指出,后台线程通过Handler更新UI本质上是“生产者消费者问题”。

2014-08-28 17:50:58 2642 1

原创 类球多面体生成——经纬划分法

规则多面体生成算法,算法本身并不复杂。开始想百度一份的,结果没百度到。贴出来,希望以后有用得到的同学可在直接拿去用。算法过程根据经纬线数目求出多面体表面所有点的坐标;连接南北极附近的三角形面;连接中间的四边形(或两个三角形);算法实现下面是该算法的C++实现.Convex* SphereGenerator::generate(int longitudes, int l

2014-06-14 18:10:01 2416

原创 GLUT的简洁OO封装

Member function 如何作为Callback?这里其实是两个问题。第一个问题,member function的函数签名上有this指针,不能直接传给glut*Func作为callback。member function不行,很自然的想到static function。第二个问题,static function如何能够调用member function,且与之关联的对象(this指针)能够在运行时期(或者用户程序)决定?其一,static function调用member functi

2014-06-05 14:07:15 1512

转载 Resource Acquisition Is Initialization(RAII Idiom)

原文链接:http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Resource_Acquisition_Is_Initialization

2014-05-12 20:25:06 1123

原创 为什么operator>>(istream&, string&)能够安全地读入长度未知的字符串?

本文首先试验并分析了栈上定长字符数组输入字符的安全性(char buf[6]; scanf("%s", buf);),然后对operator>>(istream&, string&)的实现细节进行分析,最后仿照operator>>用C语言实现了读入长度未知的字符串(字符行)

2014-05-06 13:40:02 3028

原创 C++代码重构——从C global到C++ template

如何实现代码的从算法正确到优秀的面向对象(或模板)封装?这或许是在写C++代码时经常需要考虑的。本文以有界队列为例,描述了一种C++代码从C算法到C++模板的重构方法。这种方法简单可行,实现了逻辑(算法)设计与接口设计两个步骤的分离。

2014-04-18 21:57:49 6861

转载 Ubuntu 12.04安装Adobe Reader

原文链接: http://www.techheadz.co.uk/222.html#.U06t2R--aBs

2014-04-17 01:03:06 1145

原创 C++虚函数浅探

本文首先介绍了C++中和虚函数(Virtual Function)相关的两个概念——静态绑定、动态绑定;然后,从最简单的例子演示二者的区别;最后,结合《深度探索C++对象模型》关于Virtual Function实现的探讨,跟踪并分析了文中代码示例在VC2008下的反汇编,分析结果与<模型>所述一致。

2014-04-15 13:45:58 1268 1

POSAv2, Patterns for Concurrent and Networked Objects

Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects, Volume 2 中译本名为:《面向模式的软件架构,并发和网络模式》,这本书中列举了服务端并发网络编程常用的设计模式

2015-05-27

C++程序设计语言 中文 特别版

C++程序设计语言 中文 特别版 C++之父作品,C++经典书籍 pdf扫描版,书签很全,页面准确,可跳转

2015-04-19

Intel 8086 手册

Intel 8086官方手册,高清五码版。所有权利归因特尔所有,仅供学习交流之用。 The Intel 8086 high performance 16-bit CPU is available in three clock rates: 5, 8 and 10 MHz. The CPU is implemented in N-Channel, depletion load, silicon gate technology (HMOS-III), and packaged in a 40-pin CERDIP or plastic package. The 8086 operates in both single processor and multiple processor configurations to achieve high performance levels.

2015-01-18

从github下载Android源码的脚本

该压缩包包含两个脚本:一个bash脚本负责从github.com/android抓取页面,并调用python脚本,解析抓取下来的每个页面,输出git clone命令。 具体过程参考:http://blog.csdn.net/xusiwei1236/article/details/39395359

2014-09-23

C++ Reference.chm

07年www.cplusplus.com的离线版,包含C++98标准。cplusplus.com对于几乎所有标准库接口都提供了代码示例(code sample);通过这些代码示例,我们能够快速理解和学会使用这个接口。

2014-09-17

AVR单片机GCC程序设计

avr-gcc开发的绝佳指南(带书签),包括avr-gcc的命令行参数使用实例,Makefile的编写, 目 录 前言 第一章 概述 1.1 AVR 单片机GCC 开发概述 1.2 一个简单的例子 1.3 用MAKEFILE 管理项目 1.4 开发环境的配置 1.5 实验板CA-M8 第二章 存储器操作编程 2.1 AVR 单片机存储器组织结构 2.2 I/O 寄存器操作 2.3 SRAM 内变量的使用 2.4 在程序中访问FLASH 程序存储器 2.5 EEPROM 数据存储器操作 2.6 avr-gcc 段结构与再定位 2.7 外部RAM 存储器操作 2.8 堆应用 第三章 GCC C 编译器的使用 3.1 编译基础 3.2 生成静态连接库 第四章 AVR 功能模块应用实验 4.1 中断服务程序 4.2 定时器/计数器应用 4.3 看门狗应用 4.4 UART 应用 4.5 PWM 功能编程 4.6 模拟比较器 4.7 A/D 转换模块编程 4.8 数码管显示程序设计 4.9 键盘程序设计 4.10 蜂鸣器控制 第五章 使用C 语言标准I/O 流调试程序 5.1 avr-libc 标准I/O 流描述 5.2 利用标准I/0 流调试程序 5.3 最小化的格式化的打印函数 第六章 CA-M8 上实现AT89S52 编程器的实现 芯艺 作 品 6.1 编程原理 6.2 LuckyProg2004 概述 6.3 AT989S52 isp 功能简介 6.4 下位机程序设计 第七章 硬件TWI 端口编程 7.1 TWI 模块概述 7.2 主控模式操作实时时钟DS1307 7.3 两个Mega8 间的TWI 通信 第八章 BootLoader 功能应用 8.1 BootLoader 功能介绍 8.2 avr-libc 对BootLoader 的支持 8.3 BootLoader 应用实例 8.4 基于LuckyProg2004 的BootLoader 程序 第九章 汇编语言支持 9.1 C 代码中内联汇编程序 9.2 独立的汇编语言支持 9.3 C 与汇编混合编程 第十章 C++语言支持 附录 1 avr-gcc 选项 附录 2 Intel HEX 文件格式描述

2012-12-18

c++ primer 完美高清版(绝非扫描, 放心下载)

该书网上版本众多, 但多数是扫描版, 看得让人很不爽, 这个版本是我在网上找了很久才找到的, 今天拿来,大家共享

2012-05-21

ACM 常用算法模板

ACM 常用算法模板

2012-05-21

BIOS和注册表入门与提高

BIOS和注册表入门与提高.pdf

2012-02-25

空空如也

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

TA关注的人

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