爱大客 - 2021年10月
type: channel
link: https://www.idarc.cn/index.php/2021/10/
description: Every piece of all creatures in this freezing world, are racing for freedom.
items: ESP8266(WROOM-02)的烧录指南
items: 写了个能用的uart printf
items: 嵌入式编译报错WARNING L15: MULTIPLE CALL TO FUNCTION 函数重入.
items: 船
items: 人类很容易把手段当成目标,从而忘记了本来的目标: 教条化.
items: 小米路由器R1D更换硬盘
items: Arduino上也能运行FreeRtos
items: 宏碁Acer进入高级BIOS的方式
items: windows查看文件被哪个程序占用
items: 2021年国庆之二

ESP8266(WROOM-02)的烧录指南
type: item
date: 2021-10-26T17:43:00+08:00
description: 8266 进入烧录状态 8266进入烧录状态, 需要所谓的三个strapping管脚高低电平处在UART MODE, 其值为1 strapping管脚依次是[GPIO15，GPIO0，GPIO2], 组成的三位二进制数字就是strapping值 Strapping 管脚的 3 位值 [GPIO15，GPIO0，GPIO2] Boot 模式 7 [1，1，1] SDIO HighSpeed V2 IO 6 [1，1，0] SDIO LowSpeed V1 IO 5 [1，0，1] SDIO HighSpeed V1 IO 4 [1，0，0] SDIO LowSpeed V2 IO 3 [0，1，1] Flash Boot 2 [0，1，0] Jump Boot 1 [0，0，1] UART Boot 0 [0，0，0] Remapping strapping值可以从8266串口的隐藏状态打印出来. 为啥是隐藏状态? 因为8266启动的时候, 会使用一个很不常见的串口波特率是74880(晶振为26M, 是默认的晶振. 如果是40M则是115200). 8266 SDK的make命令帮助 在项目目录中(有makefile和sdkconfig的文件夹)执行make help Welcome to Espressif IDF build system. Some useful make targets: make menuconfig - Configure IDF project make defconfig - Set defaults for all new configuration options make all - Build app, bootloader, partition table make flash - Flash app, bootloader, partition table to a chip make clean - Remove all build output make size - Display the static memory footprint of the app make size-components, size-files - Finer-grained memory footprints make size-symbols - Per symbol memory footprint. Requires COMPONENT=<component> make erase_flash - Erase entire flash contents make monitor - Run idf_monitor tool to monitor serial output from app make simple_monitor - Monitor serial output on terminal console make list-components - List all components in the project make app - Build just the app make app-flash - Flash just the app make app-clean - Clean just the app make print_flash_cmd - Print the arguments for esptool when flash See also 'make bootloader', 'make bootloader-flash', 'make bootloader-clean', 'make partition_table', etc, etc.

写了个能用的uart printf
type: item
date: 2021-10-26T17:25:49+08:00
description: #include <stdlib.h> #include <stdio.h> #include <stdarg.h> void driverUartPrintf(const unsigned char *fmt, ...){ va_list args; va_start(args, fmt); vsprintf(gucUartBuf, fmt,args); driverUartSendStr(gucUartBuf); // 这一句要调用实际串口发送驱动 va_end(args); }

嵌入式编译报错WARNING L15: MULTIPLE CALL TO FUNCTION 函数重入.
type: item
date: 2021-10-22T10:05:48+08:00
description: 参考https://blog.csdn.net/zh458042230/article/details/8630469 这个是中断进程和主函数进程(或其他中断)都调用了同一个函数A的缘故. 中断进程会打断主函数进程而运行, 这时如果打断的地方是主函数进程运行函数A还没有结束的地方, 那么中断再次运行到函数A就会发生函数重入. 如果一定要这么做, 需要加上reentrant这个关键词. 当然中断最好是快进快出. 避免重入的方式, 一般应该是中断中设置需要做函数A任务的标志, 然后在主函数里去完成.

船
type: item
date: 2021-10-14T16:40:10+08:00
description: 生死一同游，船尾隔船头。笑骂皆听见，四手分两头。

人类很容易把手段当成目标,从而忘记了本来的目标: 教条化.
type: item
date: 2021-10-13T17:29:00+08:00
description: 人类很容易把手段当成目标,从而忘记了本来的目标. 毛爷爷说这个就叫"教条化". 我发现很多宗教的问题, 甚至包括宗教本身就是这么产生的."教条化"这个词确实很形象. 孔夫子提出"礼",是针对东周末年朝纲崩坏, 诸侯甚至乱用天子之礼的问题, 目的是为了回复秩序. 而后来孔夫子的话就被当成圣旨不可违抗, 然后就变成了儒教. 同样老子为解释天地万物写了道德经, 里面少不了用一些象征比喻, 因为"道可道非常道", 本来就不好解释清楚嘛. 然后后人看不懂的比喻就强行解释, 或者强制解释为表面意思, 或者胡乱引申为其他意思. 有的是蠢, 有的是坏. 这就有了道教. 同理见其他宗教. 道教的三峰派, 印度教的性力派, 藏传佛教的密宗灌顶, 多多少少都把性从手段变成了目标. 而要是考量基督教,伊斯兰教和佛教的起源, 更都是将先贤的话教条化产生的宗教. 原始的目标只在一定的环境下存在. 教条化就是不顾原始目标,甚至不知道原始目标, 却一定要将手段实现. 甚至现在的企业管理也存在这样的问题. 比如马云的996是福报论. 996作为手段对于马云的目标来说确实是福报, 然而对于码农来说996变成了目标就不见得是福报了, 除非他和马云目标一致.

小米路由器R1D更换硬盘
type: item
date: 2021-10-11T21:35:00+08:00
description: https://jingyan.baidu.com/article/e75aca853014b5142edac6d1.html https://post.smzdm.com/p/340202/ https://www.xiaomi.cn/post/19058483

Arduino上也能运行FreeRtos
type: item
date: 2021-10-09T10:17:00+08:00
description: https://circuitdigest.com/microcontroller-projects/arduino-freertos-tutorial1-creating-freertos-task-to-blink-led-in-arduino-uno 原本还在纠结8266开发到底是用arduino还是rtos现在就不用纠结了, 直接arduino

宏碁Acer进入高级BIOS的方式
type: item
date: 2021-10-08T11:34:00+08:00
description: ACER进入普通BIOS是F2,然而很多选项看不到. 参考这篇文章: https://blog.csdn.net/zhuzhuxiazst/article/details/116143900 1 当前很多的PC厂商发布的计算机产品，在开机进入BIOS时，一般默认都隐藏了Advanced菜单，防止用户误操作导致笔记本的异常，用户无法直接调整advanced设置，比如更改SATA mode (IDE/AHCI),CPU,GPU,FAN等的设置. 2 一些厂商发布的BIOS的advanced 菜单可以通过进入bios后，使用组合键后重启再次进入bios或者直接使用组合键在bios中来开启. A LZ自己实测的一款笔记本通过组合键进入了bios advanced菜单. 笔记本: Acer TravelMate P246 系列。 BIOS: InsydeH20 V5.0. 开启advanced菜单的方式： 1) 按电源键后 按F2 进入bios页面. 2) 按住 Fn键，然后依次按 Tab键，asdfgho 字母键，松开Fn键，然后F10保存BIOS设置并重启（注意本处一定不能在F10重启时按电源键关闭电源，然后再开机）. 3) 按电源键 后按F2再次进入bios页面，便能看到advanced菜单（进入后LZ还是未能看到有更改sata controller模式的菜单，比较可惜）。（再次重启bios后，高级菜单会再次隐藏，需要再次循环以上操作来调出高级菜单.）

windows查看文件被哪个程序占用
type: item
date: 2021-10-07T18:38:32+08:00
description: 运行“资源监视器”或者perfmon /res

2021年国庆之二
type: item
date: 2021-10-01T10:37:05+08:00
description: 遥遥归途逢国庆， 工业限电停灯笼。 暮光长照红旗静， 思心念家急车行。 寅睡难眠母窸窣， 辰闹儿女父叹息。 浪里归湾湾不静， 树欲停而风不停。