本文以stm32单片机进行演示,如果MCU没有做flash读取或者熔断保护,则可以通过jlink等烧写工具直接读取其Flash上的固件。
创龙科技SOM-TL335x-S是一款基于TI Sitara系列AM3352/AM3354/AM3359 ARM Cortex-A8高性能低功耗处理器设计的低成本工业级核心板,通过邮票孔连接方式引出千兆网口、LCD、GPMC等接口。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。硬是要给一个概述,我认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。
本文以32位系统为例,介绍了内核空间(kernel space)和用户空间(user space)。
B+树被广泛应用于MySQL数据库的索引实现,不过并未展开细说,但是呢B+树是一种重要的数据结构,常年出现在各种面试题中,这次就来一起学习下和B+树相关的MySQL索引底层实现的内容。
当业务规模达到一定规模之后,像淘宝日订单量在5000万单以上,美团3000万单以上。数据库面对海量的数据压力,分库分表就是必须进行的操作了。而分库分表之后一些常规的查询可能都会产生问题,最常见的就是比如分页查询的问题。一般我们把分表的字段称作shardingkey,比如订单表按照用户ID作为shardingkey,那么如果查询条件中不带用户ID查询怎么做分页?又比如更多的多维度的查询都没有shardingkey又怎么查询?
本文梳理了Linux文件系统的特点和主要功能。
在使用C语言开发嵌入式产品的过程中,当使用到malloc函数时候都会有一个争议,“使用动态内存分配安全吗?”,就连美国军方在safety-critical的嵌入式航空电子设备代码中,也禁止动态内存分配,我们来细细分析下。
本文仅讨论linux下的库。
分享一个小技巧,使用MDK编译器,让STM32程序HEX文件中加入固件版本信息,估计很多老手都已经在使用(你有好的方法欢迎分享,希望我的砖能引来你的玉),该方法献给新手或初学者。
虽然Linux被成功使用,但并不意味着它很容易使用。Linux包含的代码超过一百万行,其运作带有鲜明的Linux方法论味道,初学者可能难以迅速掌握。
在之前一篇博客中(简易PID算法的快速扫盲)简单介绍了PID算法的基本原理和位置式算法的实现过程,由于部分推导过程已经在上一篇文章做过介绍,所以推导过程本文不再赘述,本文重点将对离散增量式PID的算法进行实现。
这个是今天在微信群里讨论的一个问题,然后我们就在群里讨论,有的大神说这个是内存越界,也有大神说可能是人品有问题,也有大神说这个是因为写代码前没有选好一个良辰吉日,反正大家想法都非常多,也非常古怪,这可能就是讨论群存在的一个原因了。经过不断的验证,发现这个问题是因为编译器优化的问题。
曾经在开发Linux内核驱动的时候,创建了一个补丁文件,但是在把补丁打到主分支的时候提示很多编码风格的错误问题,后来重做了补丁才解决了问题,这也是没有严格按照的Linux编码风格从而导致的问题。因为当时代码量不大,所以解决问题的时间相对较少。在代码量增大的情况下可以借助工具进行自动修改。
最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存;一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能;当然如果拿来和专门的缓存框架如ehcache来对比可能稍有差距;本文我们将来整理一下实现一个本地缓存都应该需要考虑哪些东西。
公司最近安排了一波商品抢购活动,由于后台小哥操作失误最终导致活动效果差,被用户和代理商投诉了。经理让我带同事们一起复盘这次线上事故,于是……
引入任何一种技术都是存在风险的,分库分表当然也不例外,除非库、表数据量持续增加,大到一定程度,以至于现有高可用架构已无法支撑,否则不建议大家做分库分表,因为做了数据分片后,你会发现自己踏上了一段踩坑之路,而分布式主键 ID 就是遇到的第一个坑。
开发一般都会借助一些工具,协助开发并提高开发效率,今天就来给大家介绍几款Linux比较实用的工具。
看一份源码什么很重要?除了各种代码规范之外,还有一个比较重要的就是注释。
2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。