-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
379 lines (301 loc) · 43.4 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>spaceman</title><meta name="author" content="spaceman"><meta name="copyright" content="spaceman"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="spaceman">
<meta property="og:url" content="http://nu-ll.github.io/index.html">
<meta property="og:site_name" content="spaceman">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="http://nu-ll.github.io/img/spaceman.png">
<meta property="article:author" content="spaceman">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://nu-ll.github.io/img/spaceman.png"><link rel="shortcut icon" href="/img/favicon.jpg"><link rel="canonical" href="http://nu-ll.github.io/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"search.xml","languages":{"hits_empty":"找不到您查询的内容:${query}"}},
translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"簡"},
noticeOutdate: undefined,
highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '天',
date_suffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#49b1f5","bgDark":"#1f1f1f","position":"bottom-left"},
source: {
justifiedGallery: {
js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.js',
css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.css'
}
},
isPhotoFigcaption: true,
islazyload: false,
isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'spaceman',
isPost: false,
isHome: true,
isHighlightShrink: false,
isToc: false,
postUpdate: '2023-03-12 12:22:25'
}</script><noscript><style type="text/css">
#nav {
opacity: 1
}
.justified-gallery img {
opacity: 1
}
#recent-posts time,
#post-meta time {
display: inline !important
}
</style></noscript><script>(win=>{
win.saveToLocal = {
set: function setWithExpiry(key, value, ttl) {
if (ttl === 0) return
const now = new Date()
const expiryDay = ttl * 86400000
const item = {
value: value,
expiry: now.getTime() + expiryDay,
}
localStorage.setItem(key, JSON.stringify(item))
},
get: function getWithExpiry(key) {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = url => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
document.head.appendChild(script)
})
win.activateDarkMode = function () {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = function () {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
const now = new Date()
const hour = now.getHours()
const isNight = hour <= 6 || hour >= 18
if (t === undefined) isNight ? activateDarkMode() : activateLightMode()
else if (t === 'light') activateLightMode()
else activateDarkMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><meta name="generator" content="Hexo 6.1.0"></head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">加载中...</div></div></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/spaceman.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data is-center"><div class="data-item"><a href="/archives/"><div class="headline">文章</div><div class="length-num">100</div></a></div><div class="data-item"><a href="/tags/"><div class="headline">标签</div><div class="length-num">103</div></a></div><div class="data-item"><a href="/categories/"><div class="headline">分类</div><div class="length-num">8</div></a></div></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/todo/"><i class="fa-fw fas fa-list"></i><span> 清单</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('https://api.uixsj.cn/bing/bing.php')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">spaceman</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/todo/"><i class="fa-fw fas fa-list"></i><span> 清单</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">spaceman</h1><div id="site-subtitle"><span id="subtitle"></span></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/02/25/VisualGDB%20VisualKernel%E6%BF%80%E6%B4%BB/" title="C++设计模式">C++设计模式</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-02-24T17:50:19.000Z" title="发表于 2023-02-25 01:50:19">2023-02-25</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-02-24T17:59:52.049Z" title="更新于 2023-02-25 01:59:52">2023-02-25</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%B7%A5%E5%85%B7/">工具</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/VisualGDB/">VisualGDB</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/VisualKernel/">VisualKernel</a></span></div><div class="content">VisualGDB VisualKernel激活
破解机链接:VisualGDB和VisualKernel的破解
官网:
VisualGDB - Serious cross-platform support for Visual Studio
VisualKernel - Linux Kernel support for Visual Studio
Analyzer2Go - Turn your development board into a logic analyzer
官网下载对应软件并选择对应的 VS 进行按照
双击打开破解机 SysprogsTool.exe
在未启动 VS 的情况下点击 替换密钥 替换对应软件中的 VisualGDBCore.dll、VisualKernelCore.dll、LogicViewer.exe
点击 生成 生成序列号(激活码)、点击 获取 获取设备 ID
填写用户名
生成对应的 xxx.key 文件,并存放于硬盘上
点击 启动Http服务 启动 http 服务器
启动 VS ,选择 文件->新建->VisualGDB Proje ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/02/08/VSCode%20%E5%B8%B8%E7%94%A8%E5%BF%AB%E6%8D%B7%E9%94%AE/" title="VSCode 常用快捷键">VSCode 常用快捷键</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-02-07T20:13:29.000Z" title="发表于 2023-02-08 04:13:29">2023-02-08</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-03-12T04:19:46.717Z" title="更新于 2023-03-12 12:19:46">2023-03-12</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%B7%A5%E5%85%B7/">工具</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/VSCode/">VSCode</a></span></div><div class="content">VSCode 常用快捷键
面板操作
Ctrl+Shift+P 打开命令面板
ctrl+p,ctrl+enter 搜索文件,并且新建一个窗口查看
ctrl+` 打开/隐藏终端
ctrl+j 切换面板可见性
ctrl+k, ctrl+s 打开快捷键设置
窗口
ctrl+tab 或 alt+1/2/3 切换文件
ctrl+PageDown/PageUp 切换打开的页面
ctrl+shift + T 打开最近一次关闭的页面
ctrl+w 关闭当前窗口
跳转
ctrl+shift+\ 花括号之间跳转
ctrl+g 跳转到指定行
shift+home/end 光标到行首/行尾文本
ctrl+k, ctrl+q 回到上一次修改的地方(几个页面之间修改应用)
ctrl+u 撤销光标的移动和选择(使用场景是,你修改了上一个地方,找不到了)
ctrl+shift+o 文件内函数的跳转
alt+左/右箭头 单词级跳转,可以结合多光标操作使用
格式化
ctrl+k, ctrl+f 格式化选中代码
alt+shift+f 可以自动排布文档(formating)
ctrl+[,] 行缩进
ctrl+shift+[ ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/10/06/openwrt%E5%AE%89%E8%A3%85transmission/" title="openwrt安装transmission.md">openwrt安装transmission.md</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2022-10-06T15:37:29.000Z" title="发表于 2022-10-06 23:37:29">2022-10-06</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2022-10-06T16:49:41.260Z" title="更新于 2022-10-07 00:49:41">2022-10-07</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Linux/">Linux</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/openwrt/">openwrt</a></span></div><div class="content">openwrt安装transmission
参考链接:[OpenWrt Wiki] Transmission configuration
使用的是 coolsnowwolf/lede: Lean’s LEDE source,固件版本:OpenWrt R22.7.23 / LuCI Master (git-22.162.38724-815bb96)
123# 安装 transmissionopkg updateopkg install luci-i18n-transmission-zh-cn # 会连着带来下luci-app-transmission、transmission-cli-openssl、transmission-daemon-openssl、transmission-remote-openssl、transmission-web-control
安装后会出现在 openwrt 后台(LUCI界面)的网络存储项中
注意:LEDE 的源和标准 openwrt 的源不太一样,注意不要修改源
此时编辑 transmission 的配置文件 /etc/config/trans ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/08/14/Linux%20perl%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7/" title="Linux perl性能分析工具">Linux perl性能分析工具</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2022-08-14T09:17:28.000Z" title="发表于 2022-08-14 17:17:28">2022-08-14</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2022-08-14T10:02:18.675Z" title="更新于 2022-08-14 18:02:18">2022-08-14</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Linux/">Linux</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/perl/">perl</a></span></div><div class="content">Linux perl性能分析工具
参考链接:Linux perf Examples (brendangregg.com)
perl作为Linux上的分析器,也被称为 Linux 性能计数器 (Performance Counters for Linux,PCL)、Linux 性能事件 (Linux perf events,LPE) 或 perf_events
perf_events 是 Linux 内核的一部分,位于 tools/perf 下。虽然它使用了许多 Linux 跟踪功能,但有些还没有通过 perf 命令公开,需要通过 ftrace 接口来使用
</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/08/05/C++%20%E8%99%9A%E5%87%BD%E6%95%B0%E3%80%81%E7%BA%AF%E8%99%9A%E5%87%BD%E6%95%B0/" title="C++ 虚函数、纯虚函数">C++ 虚函数、纯虚函数</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2022-08-04T16:05:23.000Z" title="发表于 2022-08-05 00:05:23">2022-08-05</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2022-08-04T16:08:33.057Z" title="更新于 2022-08-05 00:08:33">2022-08-05</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/">编程语言</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/C/">C++</a></span></div><div class="content">C++ 虚函数、纯虚函数
转载于C++ 虚函数、纯虚函数
多态(polymorphism)是面向对象编程语言的一大特点,而虚函数是实现多态的机制。其核心理念就是通过基类访问派生类定义的函数。多态性使得程序调用的函数是在运行时动态确定的,而不是在编译时静态确定的。使用一个基类类型的指针或者引用,来指向子类对象,进而调用由子类复写的个性化的虚函数,这是C++实现多态性的一个最经典的场景。
虚函数,在类成员方法的声明(不是定义)语句前加“virtual”, 如 virtual void func()
纯虚函数,在虚函数后加“=0”,如 virtual void func()=0
对于虚函数,子类可以(也可以不)重新定义基类的虚函数,该行为称之为复写Override。
对于纯虚函数,子类必须提供纯虚函数的个性化实现。
在派生子类中对虚函数和纯虚函数的个性化实现,都体现了“多态”特性。但区别是:
子类如果不提供虚函数的实现,将会自动调用基类的缺省虚函数实现,作为备选方案;
子类如果不提供纯虚函数的实现,编译将会失败。尽管在基类中可以给出纯虚函数的实现,但无法通过指向子类对象的基类类型指 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/06/26/VEYE%E6%91%84%E5%83%8F%E5%A4%B4%E8%B0%83%E8%AF%95/" title="VEYE摄像头调试">VEYE摄像头调试</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2022-06-26T08:37:45.000Z" title="发表于 2022-06-26 16:37:45">2022-06-26</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2022-06-26T08:39:13.507Z" title="更新于 2022-06-26 16:39:13">2022-06-26</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Linux/">Linux</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/Jetson/">Jetson</a></span></div><div class="content">VEYE摄像头调试
购买链接汇总:
IMX335:https://item.taobao.com/item.htm?id=667838924636
镜头:https://item.taobao.com/item.htm?id=668932171370
IMX385:https://item.taobao.com/item.htm?id=652462224940
彩色镜头:https://item.taobao.com/item.htm?id=652466540222
日夜镜头:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-22168649243.40.23745011NQ44JF&id=668234229298
IMX307:https://item.taobao.com/item.htm?id=609353783398
镜头:https://item.taobao.com/item.htm?id=602355025463
参考资料汇总:
官方网站:www.veye.cc
gi ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/06/06/%E5%9F%BA%E4%BA%8EVSCode%E6%90%AD%E5%BB%BAESP-IDF%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/" title="基于VSCode搭建ESP-IDF开发环境">基于VSCode搭建ESP-IDF开发环境</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2022-06-06T06:27:54.000Z" title="发表于 2022-06-06 14:27:54">2022-06-06</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2022-06-06T08:37:06.267Z" title="更新于 2022-06-06 16:37:06">2022-06-06</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/MCU/">MCU</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/IDF/">IDF</a></span></div><div class="content">基于VSCode搭建ESP-IDF开发环境
转载于基于VSCode搭建ESP-IDF开发环境 - 远处有泽细细说 (yuanze.wang)
乐鑫官方提供的VSCode插件Espressif IDF实在是称不上好用。实际上,基于VSCode手动搭建的ESP-IDF的开发环境可以获得与插件几乎相同的使用体验。
安装前的准备工作
ESP-IDF在Windows中仅仅依赖Git与Python3,其他如工具链、Cmake等工具,ESP-IDF均会自行安装并使用自己的版本。因此,在开始一切之前,请先下载Git与Python3,直接选择最新版本即可。
若您未安装Visual Studio Code,请前往微软官网进行下载并安装。同时,请在VSCode中安装C/C++插件。
在开始之前,强烈建议您同时安装Windows Terminal以提升使用PowerShell终端的体验。
获取ESP-IDF
使用Git在线获取
ESP-IDF可以在乐鑫官方的GitHub仓库中获取。对于非尝鲜的场景,强烈建议切换到一个release分支,而不是使用尚未稳定的master分支。在本文中,假定ESP-IDF ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/06/05/JetsonXavierNX%E6%91%84%E5%83%8F%E5%A4%B4%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97/" title="JetsonXavierNX摄像头驱动开发指南">JetsonXavierNX摄像头驱动开发指南</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2022-06-05T11:50:25.000Z" title="发表于 2022-06-05 19:50:25">2022-06-05</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2022-06-05T14:42:43.410Z" title="更新于 2022-06-05 22:42:43">2022-06-05</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/">人工智能</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/JetsonXavierNX/">JetsonXavierNX</a></span></div><div class="content">JetsonXavierNX摄像头驱动开发指南
参考手册:NVIDIA Jetson Linux Developer Guide(下文中所指的参考手册均是指该手册)
Jetson资料下载中心:Jetson Download Center | NVIDIA Developer
Jetson Xavier NX 信息:
Linux jetson-desktop 4.9.253-tegra
L4T 32.7.2
platform代码:
t234:Jetson AGX Orin
t194:Jetson Xavier NX 系列、Jetson AGX Xavier 系列
t210:jetson nano、jetson tx1
内核定制化
下载编译内核
从Jetson Linux | NVIDIA Developer处下载最新的(或者自己选L4T版本号)内核源码L4T Driver Package (BSP) Sources
注意:
目前(2022/6/4)L4T 34.1之后,暂时只支持 Jetson AGX 系列和 Jetson Xavier 系列,其余暂不支持
下载的是源码包 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/06/05/ESP32%E5%BC%95%E8%84%9A%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/" title="ESP32引脚使用注意事项">ESP32引脚使用注意事项</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2022-06-05T03:29:55.000Z" title="发表于 2022-06-05 11:29:55">2022-06-05</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2022-06-05T06:03:51.051Z" title="更新于 2022-06-05 14:03:51">2022-06-05</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/MCU/">MCU</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/ESP32/">ESP32</a></span></div><div class="content">ESP32引脚使用注意事项
主要参考:
ESP32 Pinout Reference: Which GPIO pins should you use? | Random Nerd Tutorials
各引脚分别作为输入输出时的推荐程度和注意事项说明:
以绿色突出显示的引脚可以使用
黄色突出显示的可以使用,但需要注意,因为它们可能主要在启动时出现意外行为
不建议将红色突出显示的引脚用作输入或输出
电容式触摸 GPIO
ESP32 有 10 个内部电容式触摸传感器。这些可以感知任何带有电荷的东西的变化,比如人类皮肤。因此,他们可以检测用手指触摸 GPIO 时引起的变化。这些引脚可以很容易地集成到电容垫中并取代机械按钮。电容式触摸引脚也可用于将 ESP32 从深度睡眠中唤醒。
这些内部触摸传感器连接到这些 GPIO:
T0 (GPIO 4)
T1 (GPIO 0)
T2 (GPIO 2)
T3 (GPIO 15)
T4 (GPIO 13)
T5 (GPIO 12)
T6 (GPIO 14)
T7 (GPIO 27)
T8 (GPIO 33)
T9 (GPIO 32)
ADC ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/06/04/ESP8266%E5%BC%95%E8%84%9A%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/" title="ESP8266引脚使用注意事项">ESP8266引脚使用注意事项</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2022-06-04T15:41:25.000Z" title="发表于 2022-06-04 23:41:25">2022-06-04</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2022-06-05T06:03:59.812Z" title="更新于 2022-06-05 14:03:59">2022-06-05</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/MCU/">MCU</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/ESP8266/">ESP8266</a></span></div><div class="content">ESP8266引脚使用注意事项
主要参考:
ESP8266 Pinout Reference: Which GPIO pins should you use? | Random Nerd Tutorials
各引脚分别作为输入输出时的推荐程度和注意事项说明:
以绿色突出显示的引脚可以使用
黄色突出显示的可以使用,但需要注意,因为它们可能主要在启动时出现意外行为
不建议将红色突出显示的引脚用作输入或输出
GPIO6 到 GPIO11 通常连接到 ESP8266 板上的 flash 芯片。因此,不建议使用这些引脚。
如果某些引脚被拉低或拉高会阻止 ESP8266 启动。以下列表显示了 BOOT 时的状态:
GPIO16: BOOT时为高
GPIO0: 如果下拉,则BOOT失败
GPIO2: BOOT时为高,如果下拉,则BOOT失败
GPIO15: 如果上拉,则BOOT失败
GPIO3: BOOT时为高
GPIO1: BOOT时为高,如果下拉,则BOOT失败
GPIO10: BOOT时为高
GPIO9: BOOT时为高
ESP8266 仅支持一个 GPIO 中的模拟读取。 ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><span class="space">…</span><a class="page-number" href="/page/10/#content-inner">10</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/img/spaceman.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">spaceman</div><div class="author-info__description">CtrlC CtrlV大师</div></div><div class="card-info-data is-center"><div class="card-info-data-item"><a href="/archives/"><div class="headline">文章</div><div class="length-num">100</div></a></div><div class="card-info-data-item"><a href="/tags/"><div class="headline">标签</div><div class="length-num">103</div></a></div><div class="card-info-data-item"><a href="/categories/"><div class="headline">分类</div><div class="length-num">8</div></a></div></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/NU-LL"><i class="fab fa-github"></i><span>Github</span></a></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">白嫖一时爽,一直白嫖一直爽</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/02/25/VisualGDB%20VisualKernel%E6%BF%80%E6%B4%BB/" title="C++设计模式">C++设计模式</a><time datetime="2023-02-24T17:50:19.000Z" title="发表于 2023-02-25 01:50:19">2023-02-25</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/02/08/VSCode%20%E5%B8%B8%E7%94%A8%E5%BF%AB%E6%8D%B7%E9%94%AE/" title="VSCode 常用快捷键">VSCode 常用快捷键</a><time datetime="2023-02-07T20:13:29.000Z" title="发表于 2023-02-08 04:13:29">2023-02-08</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2022/10/06/openwrt%E5%AE%89%E8%A3%85transmission/" title="openwrt安装transmission.md">openwrt安装transmission.md</a><time datetime="2022-10-06T15:37:29.000Z" title="发表于 2022-10-06 23:37:29">2022-10-06</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2022/08/14/Linux%20perl%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7/" title="Linux perl性能分析工具">Linux perl性能分析工具</a><time datetime="2022-08-14T09:17:28.000Z" title="发表于 2022-08-14 17:17:28">2022-08-14</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2022/08/05/C++%20%E8%99%9A%E5%87%BD%E6%95%B0%E3%80%81%E7%BA%AF%E8%99%9A%E5%87%BD%E6%95%B0/" title="C++ 虚函数、纯虚函数">C++ 虚函数、纯虚函数</a><time datetime="2022-08-04T16:05:23.000Z" title="发表于 2022-08-05 00:05:23">2022-08-05</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>分类</span>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Linux/"><span class="card-category-list-name">Linux</span><span class="card-category-list-count">42</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/MCU/"><span class="card-category-list-name">MCU</span><span class="card-category-list-count">12</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"><span class="card-category-list-name">人工智能</span><span class="card-category-list-count">9</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%B7%A5%E5%85%B7/"><span class="card-category-list-name">工具</span><span class="card-category-list-count">11</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%84%9F%E6%82%9F%E4%B8%8E%E6%80%BB%E7%BB%93/"><span class="card-category-list-name">感悟与总结</span><span class="card-category-list-count">6</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E7%AE%97%E6%B3%95/"><span class="card-category-list-name">算法</span><span class="card-category-list-count">4</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/"><span class="card-category-list-name">编程语言</span><span class="card-category-list-count">11</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E8%AE%BA%E6%96%87/"><span class="card-category-list-name">论文</span><span class="card-category-list-count">5</span></a></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/Arch/" style="font-size: 1.15em; color: rgb(181, 98, 72)">Arch</a><a href="/tags/Arduino/" style="font-size: 1.15em; color: rgb(157, 165, 106)">Arduino</a><a href="/tags/C/" style="font-size: 1.38em; color: rgb(145, 173, 171)">C++</a><a href="/tags/Go/" style="font-size: 1.15em; color: rgb(26, 137, 197)">Go</a><a href="/tags/DM9000C/" style="font-size: 1.15em; color: rgb(101, 82, 111)">DM9000C</a><a href="/tags/%E7%BD%91%E5%8D%A1%E7%A7%BB%E6%A4%8D/" style="font-size: 1.15em; color: rgb(46, 98, 165)">网卡移植</a><a href="/tags/ESP32/" style="font-size: 1.45em; color: rgb(80, 52, 23)">ESP32</a><a href="/tags/ESP8266/" style="font-size: 1.22em; color: rgb(88, 65, 183)">ESP8266</a><a href="/tags/FreeRTOS/" style="font-size: 1.15em; color: rgb(122, 7, 91)">FreeRTOS</a><a href="/tags/%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86/" style="font-size: 1.15em; color: rgb(16, 42, 77)">内存管理</a><a href="/tags/JetsonNano/" style="font-size: 1.3em; color: rgb(99, 166, 47)">JetsonNano</a><a href="/tags/JetsonTX2/" style="font-size: 1.15em; color: rgb(91, 81, 149)">JetsonTX2</a><a href="/tags/Kconfig%E8%AF%AD%E6%B3%95/" style="font-size: 1.15em; color: rgb(115, 51, 44)">Kconfig语法</a><a href="/tags/lighttrack/" style="font-size: 1.15em; color: rgb(175, 21, 193)">lighttrack</a><a href="/tags/%E5%A4%9A%E7%9B%AE%E6%A0%87%E8%AF%86%E5%88%AB/" style="font-size: 1.15em; color: rgb(23, 191, 115)">多目标识别</a><a href="/tags/perl/" style="font-size: 1.15em; color: rgb(25, 149, 10)">perl</a><a href="/tags/Linux%E6%9C%8D%E5%8A%A1/" style="font-size: 1.15em; color: rgb(35, 32, 108)">Linux服务</a><a href="/tags/USB%E8%AE%BE%E5%A4%87%E8%8A%82%E7%82%B9/" style="font-size: 1.15em; color: rgb(165, 192, 2)">USB设备节点</a><a href="/tags/Linux%E5%86%85%E6%A0%B8/" style="font-size: 1.15em; color: rgb(70, 7, 132)">Linux内核</a><a href="/tags/%E5%86%85%E6%A0%B8%E6%9B%B4%E6%96%B0/" style="font-size: 1.15em; color: rgb(171, 16, 187)">内核更新</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/archives/" title="查看更多">
<i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/02/"><span class="card-archive-list-date">2023 年 02 月</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/10/"><span class="card-archive-list-date">2022 年 10 月</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/08/"><span class="card-archive-list-date">2022 年 08 月</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/06/"><span class="card-archive-list-date">2022 年 06 月</span><span class="card-archive-list-count">5</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/05/"><span class="card-archive-list-date">2022 年 05 月</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/04/"><span class="card-archive-list-date">2022 年 04 月</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/03/"><span class="card-archive-list-date">2022 年 03 月</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/02/"><span class="card-archive-list-date">2022 年 02 月</span><span class="card-archive-list-count">1</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">100</div></div><div class="webinfo-item"><div class="item-name">已运行时间 :</div><div class="item-count" id="runtimeshow" data-publishDate="2019-07-20T16:00:00.000Z"></div></div><div class="webinfo-item"><div class="item-name">本站总字数 :</div><div class="item-count">533.6k</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2023-03-12T04:22:24.107Z"></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">©2019 - 2023 By spaceman</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div><div class="footer_custom_text"><script type="text/javascript" src="https://api.uixsj.cn/hitokoto/w.php?code=js"></script><div id="xsjhitokoto"><script>xsjhitokoto()</script></div> <iframe scrolling="no" src="https://tianqiapi.com/api.php?style=tx&color=eee" frameborder="0" allowtransparency="false" align="middle" height="20"></iframe></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="简繁转换">繁</button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">本地搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> 数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div></div></div><div id="search-mask"></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.js"></script><script src="https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type="module"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script><script src="/js/search/local-search.js"></script><script>var preloader = {
endLoading: () => {
document.body.style.overflow = 'auto';
document.getElementById('loading-box').classList.add("loaded")
},
initLoading: () => {
document.body.style.overflow = '';
document.getElementById('loading-box').classList.remove("loaded")
}
}
window.addEventListener('load',preloader.endLoading())</script><div class="js-pjax"><script>function subtitleType () {
if (true) {
window.typed = new Typed("#subtitle", {
strings: ["纵有疾风起,人生不言弃","Le vent se lève, il faut tenter de vivre"],
startDelay: 300,
typeSpeed: 150,
loop: false,
backSpeed: 50
})
} else {
document.getElementById("subtitle").innerHTML = '纵有疾风起,人生不言弃'
}
}
if (true) {
if (typeof Typed === 'function') {
subtitleType()
} else {
getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
}
} else {
subtitleType()
}</script></div><script id="canvas_nest" defer="defer" color="0,0,255" opacity="0.7" zIndex="-1" count="99" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-nest.min.js"></script><script id="click-show-text" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/click-show-text.min.js" data-mobile="false" data-text="富强,民主,文明,和谐,自由,平等,公正,法治,爱国,敬业,诚信,友善" data-fontsize="15px" data-random="false" async="async"></script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>