
策略
文章平均质量分 80
longyu_wlz
在写作、音乐、linux 海滩旁捡拾贝壳的小男孩
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从工作的维度思考快思考慢思考
快思考与慢思考两种不同的思维模式快思考的运行是无意识且快速的,不怎么费脑力,没有感觉,完全处于自主控制状态,主要根据我们得记忆、经验、潜意识对问题快速判断。慢思考将注意力转移到需要费脑力的大脑活动上来,例如复杂的运算,通常与行为、选择和专注等主观体验相关联。面对一个问题时,我们的脑海中最先出现的想法来自于快思考,它在熟悉情境中采取的模式是精确的,所作出的短期预测是准确的,遇到挑战时做出的第一反应也是迅速且基本恰当的。然而,它存在成见,在很多特定的情况下,这一系统易犯系统性错误。面对难题时原创 2020-12-05 22:44:08 · 915 阅读 · 0 评论 -
你还停留在只能解决自我能力范围之内的问题吗?
为什么要写这样一篇博客?我在 linux 中改变运行程序的 stdout 中描述了使用 gdb 改变运行程序 stdout 输出的一种方法。一开始没有想到能够实现这种功能,但是最终搜索了下发现使用 gdb 就能够简单的做到。很多时候我们在解决一些问题的时候都是通过这种方式来搞定的,但是解决了之后想想难道我们自己真的不能解决吗?搜索引擎确实非常方便,这是搜索引擎的核心竞争力,并不是我们的核心竞争力。为什么我想不到用 gdb 来解决这个问题?gdb 我也经常使用,对于一些基本的命令与功能我也是清楚的,但原创 2020-09-05 17:13:17 · 412 阅读 · 0 评论 -
对软件框架的思考
框架是什么?平台意义的软件包,提供一套完整的解决方案。框架一般是针对某一种特定的领域进行设计,提供该领域中完整的一套编码解决问题的方案。提供统一的 api,将领域问题进行抽象,抽象出相对通用的平台。这个平台是领域问题与用户之间的桥梁。有了这个桥梁,用户不需要对领域问题的各个方面都有所了解便能够使用平台提供的接口编码以实现具体的需求。这样说它实际是讲问题转向了更高的层次,用户不必研究底层的细节,而...原创 2019-10-15 11:53:45 · 236 阅读 · 0 评论 -
带 99 的价格定位
为什么会有诸如 599、699、799、999、1099、1999 等手机价格?多一块钱与少一块钱对消费者的心理有怎样的影响?这些影响对等吗?首先,上面提到的价位都偏向中低端市场。相比给出一个以百为单位的价格,很多厂家选择将价格调低一元,这就让我们看到了很多带有 99 这个数字的产品价格。这样的做法是偶然的吗?可能并不是这样。鉴于有为数不少的价格定位,我这里以 999 为例来分析下这其中...原创 2019-10-14 10:08:09 · 324 阅读 · 0 评论 -
编译器优化及优化问题的调试方法
gcc 优化影响了那些内容Debug Optimized code局部变量从栈里面分配到使用寄存器到直接移除。局部变量只是临时保存中间的计算结果,可以直接优化掉,则调试时不能看到局部变量的值函数中的语句的位置语句的位置会进行调整,与其它的语句进行合并函数调用关系小函数直接展开,多个函数之间可能会合并栈帧。处理器优化读写的合共链接时优化都干了些什么debug 正常 releas...原创 2019-08-16 08:46:18 · 3322 阅读 · 0 评论 -
上下文切换的思考
为什么要使用异常、中断来进行上下文切换?现代的处理器中,pc 中一般保存的是下一条待执行指令的地址。上下文切换需要改变执行流,不管中间有怎样的过程,最终都会反映到 pc 值的变化上。那么我们可以如何改变 pc 的值?简单的思考后我们会发现子函数调用、子函数返回、中断、异常都有改变 pc 值以及改变栈帧的能力。虽然子函数的调用与返回拥有改变 pc 值的能力,但是它们无法做到动态切换栈帧,也没办...原创 2019-08-30 06:36:44 · 408 阅读 · 0 评论 -
嵌入式中变量被意外修改的调试方法
问题描述在移植公司的实时操作系统到一款国产 RISC-V 架构芯片时,为了测试 systick 中断是否有效,在此中断 isr 中对一个静态变量加一,打断点观察变量的变化来确定中断是否正确执行了!中断 isr 的主要内容如下: isr_handler(void) { }...原创 2019-08-31 06:18:09 · 1066 阅读 · 0 评论 -
计数在软件设计中的应用
计数是一个非常普通的过程,虽其普通,却在软件设计中有很多的应用。在这篇文章中我便列举二三,仅供参考!动态数据结构的引用计数在一些动态数据结构中,常常能看到引用计数的影子。这里的引用计数初始化为 0,被使用时加 1,使用完成后减 1。这里引用计数器大于 0 表示数据结构仍然有人使用,此时不能释放它,当引用计数减到 0 之后,表明没有人使用此数据结构,这时就可以调用相应的析构函数安全的释放其占用的...原创 2019-09-03 06:16:55 · 296 阅读 · 0 评论 -
awtk 中统一接口的实例
统一接口的意义1. 对跨平台适配的意义不同平台的接口与实现可能都不太相同,但其达成的需求是相同的。通过对需求进行抽象,统一调用接口,将不同平台的变化封装到更低的层次,系统中不直接调用不同平台的函数,而是通过抽象层来与底层对接,对于上层应用来说,这个样的做法屏蔽了平台的差异!2. 对外部语言绑定的意义外部语言绑定时,统一接口有利于使用一套模板来生成代码,减少了重复的过程。3. 对应用开发者...原创 2019-09-03 11:13:20 · 1290 阅读 · 7 评论 -
初始化程序运行的环境
pc 端程序运行的环境的建立过程有很多被隐藏了,而在嵌入式中一般我们都能看到完整的建立过程。这些过程能够让我们更清楚程序执行所依赖的环境,同时也可能会让我们进一步思考这些环境对程序的表达能力的扩展。以 rv32m1_vega 为例!关中断——在临界区内初始化程序运行环境为什么这时候要关中断呢?你可以想想这时候程序执行的环境还没有建立起来,如果产生了中断,那么系统也无法处理,而且中断的优...原创 2019-09-08 12:43:40 · 5297 阅读 · 2 评论 -
api 功能与实现的些许感想
对于功能的了解,通过学习源码的实现便能做到。对于实现的了解,功能亦是由实现来达成的。我们研究的大部分源码很多都不是自己写的,看源码是对功能不了解极有可能看的一头雾水。实际的开发过程中功能应该是首先需要明确的东西,需求分析就是要提炼出产品所要实现的各种功能。代码只是实现功能的手段。我们研究源码应该从功能出发,由外及内。对于未使用过的代码,应该先跑跑 demo,学习如何使用,对各种接口有进一步的了...原创 2019-10-11 11:42:01 · 343 阅读 · 0 评论 -
教程类文档撰写的问题
教程类文档教程类文档与其名字一致,是用来指导客户操作的文档。教程类文档要尽可能的简单、易懂,这样才能让读者更快的理解,尽早投入到更重要的问题之上。教程类文档撰写的问题不同的厂家都会有自己的一些教程文档,这些文档描述了产品的功能,指导用户如何使用。虽然这些文档多如牛毛,可当读者真正按照这些文档去操作时,可能执行到某一步骤就再也走不下去。这之后要不放弃,要不联系客服人员解决。读者的水平参差不齐是...原创 2019-08-15 09:05:50 · 273 阅读 · 0 评论 -
惠普笔记本电池无法充满
电池充电的过程延长寿命的方式解决方法移除电脑上所有外部接口连接的设备并关机。恢复 BIOS 的默认配置同时按电源键与静音键 30s 释放静电,重新充电。更新 BIOS总结...原创 2019-08-06 07:07:16 · 6111 阅读 · 2 评论 -
如何合并多个静态库
合并多个静态库使用 ar 命令binutils.pdf 里面讲解了此命令生成脚本控制 ar脚本的格式命令行示例总结原创 2019-08-08 09:53:51 · 2348 阅读 · 4 评论 -
UNIX/LINUX 哲学
在做事之前最好想好该怎么做,最好有个核心的思想指导。因此在写UNIX/LINUX具体机制(mechanism)之前,我觉的有必要写下可能更为重要的策略(strategy)。无论你能否理解,你都应该将这些策略记在脑海中。这些策略又可以称为(UNIX/LINUX的哲学),不管怎样说,我认为它是至关重要的,你至少要以这种哲学来作为你使用UNIX/LINUX的座右铭。原创 2017-02-23 09:23:49 · 856 阅读 · 0 评论 -
文字、音乐、linux 与简单复杂短兵相接
文字是复杂的 音乐是复杂的 linux是复杂的复杂在生活中是广泛存在的,而做为复杂对立面的简单,是复杂得以滋生的土壤。谈复杂,不得不提的是简单,这是从事物的不同角度去看待问题的方法,这也是不得不s说的——简单与复杂的关系一直是引人思索的话题。复杂是多,简单是少;复杂是特殊,简单是一般;复杂是万物,简单是人类。简单的定义可以被不断的扩大,而建立在这些简单之上的复杂就会更加复杂。很简单的说:原创 2017-03-09 14:33:43 · 654 阅读 · 0 评论 -
linux 中 xxx not found 问题的一般解决思路与 bibtex 无法找到依赖文件示例
在 linux 中工作时,常常会遇到找不到文件的问题。这个文件可能是可执行文件,也可能是配置文件,或驱动文件等等。这类问题很常见,它们有相同的解决思路,具体步骤如下:确认文件是否存在 sudo updatedb locate filename 未安装 locate 命令时,可以通过 find 来查找文件(这通常会花费较长时间)。当文件存在时,这里可能存在的问题是缺少某些库文件,或者没有...原创 2018-10-06 00:16:54 · 1557 阅读 · 0 评论 -
让写博客成为推动自己思考的方式
写博客对我的意义我没有养成写博客的习惯,我一直对自己的记忆力抱有某种特别的自信。最近我发现,我也忘记了很多东西。我在几周前搜集了一些资料,学习了如何使用虚拟机来调试linux内核,但我没有总结。现在虽然环境已经搭建好了,但我忘记了操作串口的命令行,我还得继续查资料,又将花费很多时间。如果有一天,我升级了系统,那么我需要重新以过来人的身份从零开始,这只是简单的重复,没有学习的空间。事实上,我最近...原创 2018-10-12 21:11:48 · 324 阅读 · 4 评论 -
解决未进入中断服务程序的一般思路
解决未进入中断服务程序的一般思路GPIO是否连接GPIO引脚是否配置,支持引脚复用功能的则需要判断是否选定使用的功能检查中断向量表对于支持重映射中断向量表的硬件,检查存储中断向量表起始地址的寄存器的值是否正确当你在程序中对向量表重新进行了映射时,检查起始地址的合法性与复制区域大小,可以读取复制完成后的新中断向量表的首尾中,检查获取到的中断服务程序地址与旧中断向量表中的...原创 2018-10-18 23:45:06 · 3628 阅读 · 0 评论 -
使用取模与累加制造一个环
使用取模与累加制造一个环最近在做一个 gui 项目,里面有很多切换模式的按钮,我为了测试需要在不同模式间循环切换。使用多个判断语句能够完成此项任务,但选择分支的增加降低了程序的性能,尽管这点性能对现代的处理器而言微不足道,可一次预测失败的负载却常常让人不能接受。基于以上原因,我使用模运算加查表法来完成模式的循环切换工作,避免了条件分支的使用。关键代码如下:char *hair_mode[...原创 2018-12-10 22:20:28 · 311 阅读 · 0 评论 -
表面上的问题
表面上的问题今天同事请我帮忙解决一个问题。问题的表面现象是他在 take 一个信号量时系统会进入异常。我在看的时候他还在坚持是 take 信号量造成的问题,不过我对这一判断并不以为然。要知道 take 信号量这种基础的操作会产生问题的可能性几乎为 0 。虽然程序确实是在执行到 take 信号量后进入到异常的,但这不过是表面现象,要说这一表面现象就是问题所在,我是不相信的。下面是我尝试...原创 2019-07-21 15:00:52 · 268 阅读 · 0 评论 -
向卓有成效的程序员迈进
提高工作效率的想法工作中经常需要做一些重复性很高的任务。这些任务手工去做没有太大的难度,也不涉及任何思考,简单的去做就能够完成。话虽如此,可每当你手工去做的时候,还是难免会感到厌烦,你需要忍一忍才能过去。不过如果在重复的过程中因为一个疏漏而搞错了一些步骤,没有及时发现的话可能会给未来埋下一个引雷。如果你在未来的某一天突然遇到了一个诡异的问题,然后经过辛苦的调试,最终发现是之前在做那些重复性任务...原创 2019-07-26 11:11:10 · 376 阅读 · 0 评论 -
删除文件中指定区域内的行
指定区域的含义以特定起始于终止符号结束的多行空间。起始标识与终止标识。使用 sed 解决读入到起始标识之后处理流程变化,不再输出后方的行。读入到终止标识之后回到正常处理流程,完成工作!使用 awk 与 perl 解决先读入,然后过滤掉不需要的内容,然后写入到文件中。也可以在从文件读入的过程中直接完成!注意在 awk 中同时读入与写入数据可能造成文件内容丢失的问题!!问题引申——一个文件...原创 2019-08-07 22:57:24 · 852 阅读 · 0 评论