自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 产品的流程

原装芯片逆向出电路和flash数据。flash数据分为可执行文件和数据。根据可执行文件和运行时数据线的状态值分析出汇编指令集,根据指令集分析出代码逻辑和数据的用处。 IC设计设计数字和模拟部分,根据设计的逻辑做出原型机,原型机验证通过则可以交后端设计实际的芯片制造相关内容。 制造好的芯片需调整各个数字和模拟模块的参数,使芯片运行在最佳状态。 开发出软件并写入芯片,测试芯片功能是否正常,良率是否高。 设计产品的PCB,做出最终用户可用的产品。 量产,维护。

2024-01-10 19:09:51 332

原创 产品开发流程

从市场上的用户获取需求,或者获取竞争对手的产品,来决定自己的产品需求。 产品经理把产品需求交给项目经理,项目经理组织研发团队准备开发。 项目技术负责人根据产品需求提出实现的各种技术路线和优缺点,交给产品经理做决策后项目经理整理出详细技术需求。 项目技术负责人把详细技术需求分配给研发人员去开发。 项目经理在开发阶段跟进进度,解决资源和冲突问题。 开发完成后经单元测试、集成测试、系统测试、整机测试,产品可以试产。 试产之后可以量产,量产后维护。

2024-01-10 18:59:14 368

原创 如何带一个啥都不会的新人?

第一阶段 软件开发基础 三天产品了解:采集控制分析的产品介绍,产品目的介绍,基本实现原理介绍。软件工程相关:产品的需求分析 设计 实现 测试 发布 维护。知道代码是啥如何变成程序跑起来:源文件头文件 编译 可执行文件 运行 调试。第二阶段 c语言基础 两周基本数据类型程序控制结构结构体 联合 枚举内存编译问题解决调试手段第三阶段 单片机和芯片驱动 两周原理图和pcb图能读懂。mcu的了解和跑起来。串口能打印东西。mcu资源使用:gpio spi adc timer pwm i

2021-08-28 23:29:54 126

原创 单片机开发 学习步骤 分享

一 初级 功能简单程序和硬件。1 c语言基础: 数据类型 基本语句2 操作寄存器控制单片机:GPIO USART ISR。3 去控制硬件:LED灯和点阵 按键 数码管 。简单的芯片通信。4 硬件调试工具:万用表,示波器,逻辑分析仪。5 软件调试: 单步调试 打印 堆栈。二 进阶 复杂点的软硬件。1 库函数控制stm32外设资源:GPIO USART SPI IIC TIMER ISR。2 硬件驱动调试 控制硬件通信芯片 传感器芯片 内存芯片 存储芯片。spi iic usart通信...

2021-08-22 22:08:10 1013

原创 嵌入式c编程常用套路总结

状态机 动作有超时和重复次数。主循环添加定时任务。结构体表示模块化后的变量聚合体 文件为单位。先确定方案然后自顶向下定义接口和函数,最后实现。变量初始化值,设置和复位值。防止栈溢出:局部变量尽量小,中断内快进快出,只设置标志,不要太多嵌套。...

2020-12-19 23:15:07 195 1

原创 arm-gcc 指定变量地址

https://www.cnblogs.com/RegressionWorldLine/p/11968467.html

2020-11-09 09:33:59 3256

原创 简单的链接脚本例子

3.3 简单的链接脚本例子 很多链接脚本都非常简单。 最简单的链接脚本只有一个命令:"SECTIONS"。你用这个命令去描述输出文件的内存的布局。 "SECTIONS"命令是一个非常强大的命令。我们在这会描述一个它的简单的使用。让我们假设你的程序只包含了代码,初始化了的数据,和没有初始化的数据。它们将会分别在'.text','.data'和'.bss'分区内。让我们进一步假设你的输入文件只有一个。 对于这个例子,让我们假设代码会加载在地址 0x10000,然后数据会从地址 ...

2020-10-31 12:24:39 461

原创 arm core m3 手册地址

arm core m3 手册地址:https://developer.arm.com/documentation/ddi0337/e?lang=en

2020-09-15 09:31:24 187

原创 hmos

源码下载:LiteOS 开源代码路径:https://github.com/LiteOS/LiteOS里面有md文件的系统的详细介绍:消息 内存池 定时器 任务等等开始一个移植的教程:https://liteos.github.io/porting/evb-and-tools.html移植例子https://liteos.github.io/porting/stm32-makefile.html#%E7%BC%96%E8%AF%91-stm32cube-%E7%94%9F%E6%88%90%E.

2020-09-12 11:51:44 358

原创 ubuntu 安装vm虚拟机时 启动失败 How to sign a kernel module Ubuntu 18.04

失败提示信息如下:vboxdrv.sh: Stopping VirtualBox services.vboxdrv.sh: Starting VirtualBox services.vboxdrv.sh: Building VirtualBox kernel modules.vboxdrv.sh: failed: modprobe vboxdrv failed. Please use 'dmesg' to find out why.There were problems setting up

2020-08-27 12:16:48 659

原创 cotiki

https://www.cnblogs.com/LittleTiger/p/9981652.html

2020-07-30 18:40:02 98

原创 zigbee

协议栈实现1 http://blog.sina.com.cn/s/blog_4c8287230100dvxs.html

2020-07-30 10:25:17 75

原创 c union test

typedef union { uint8_t name; uint8_t place;} u_test_t; u_test_t u_test = {0}; printf("u test name:%d place:%d\r\n", u_test.name, u_test.place); u_test.place = 8; printf("u test name:%d place:%d\r\n", u_test.name, u_test.place);..

2020-07-27 09:44:28 93

原创 make

1 gnumake 地址: https://www.gnu.org/software/make/

2020-07-22 08:24:29 103

原创 modbus

1 标准介绍:https://www.doc88.com/p-6651322433305.html

2020-07-17 13:51:01 114

原创 RIOT 学习资源地址

1 简单介绍:http://www.riot-os.org/api/index.html#the-quickest-start2 git 源码库 地址: git://github.com/RIOT-OS/RIOT.git3 make的方法,加上board 的类型 比如:make BOARD=samr21-xpro4 写代码时用到新的MCU模块时 使用新增的mcu模块资源时, Makefile修改 FEATURES_PROVIDED += 模块名 比如 periph_i2c...

2020-06-29 20:46:16 263

原创 RAK7258 end node 配置相关

参考文档路径:https://downloads.rakwireless.com.cn/LoRa商业化网关/室内型-RAK7258/应用笔记/RAK7258快速使用手册.pdfhttps://downloads.rakwireless.com.cn/LoRa商业化网关/室内型-RAK7258/应用笔记/RAK_LoRaWAN商业网关配置指南.pdf1 添加应用 (2): 如何使用网关内置的 Network Server(标准固件)? 1. 确保 LoRa Gateway-...

2020-06-22 21:00:54 580

原创 RolarWAN协议

参考资料:http://murata.eetrend.com/node/10020601 end node节点的认证或者叫激活,有两种模式1)OTTA2)ABP2 报文格式 PHY MAC FHDR Fctrl Fopts MACCommand3 三种终端类型 class A: class B:在支持CLassA类型的接收方式之外,还需周期性监测网络下行的ping slot,而为了实现周期性的同步,引入beacon来携带时间信息,终端可以利...

2020-06-22 20:38:36 180

原创 RIOT OS 学习记录

0 学习RIOT的源码结构。去官网看模块和函数的介绍和例子。下载源码看下。1 MCU的板上资源的使用。GPIO:UART:TIMER:IIC:SPI:2 多线程编程。创建:线程优先级设置最好不同 0为最高优先级 -1为最低,栈大小设置。任务执行,线程间通信,同步,互斥。3 MCU裸奔和有系统的区别是啥?上系统的价值很大?从软件工程的开发和维护难度、开发速度和软件性能方面考虑。...

2020-06-20 09:42:55 596

原创 rt-thread学习地址

https://www.rt-thread.org/document/site/

2020-06-16 11:20:07 110

原创 软件工程开发考虑

一致性:和之前好的保持一致,好的不要改。兼容性:之前的老产品功能ok,同时满足新的产品功能需求。可维护:代码易懂简单,修改时改动小,新增时耦合小。代码复用:少修改。开发速度代码量 实现复杂度:c++ c的选择函数和模块的定义:设计 加一层算法:提高效率 优化。...

2020-06-12 18:07:39 103

原创 软件里模块如何划分?

嵌入式软件层次划分如下:APP可能的Clib系统层驱动硬件每一层里都分为下面三层上层用户要调用的API本层的功能实现下层API调用功能实现可以分为下面几部分自动化测试日志外部调用基本模块的实现增删改查通信的初始化收发 分析协议部分server和client部分dbg部分通用部分common...

2020-06-12 18:04:28 1345

原创 jekins

用处如下:1 daily的执行结果可以看到。2 可以新加执行流程。3 提交代码后方便自动化测试结果。

2020-06-12 17:28:27 106

原创 robotframework+ssh库 自动化单元测试实现

1 需要的东西:robotframework ride ssh库 python2 运行方式:ride里编码check数据3 优点:能可视化的单步调试 可以加tag选择用例是否执行。4 缺点:编码环境不友好 容易卡死。

2020-06-12 17:24:10 366

原创 stl list algorithm

list push_back for_each merge unique#include <iostream>#include <list>#include <algorithm>using namespace std;void outString(string str){ cout << str << " ";}int main(){ list <string> MetFriend; list &l.

2020-06-12 17:00:31 101

原创 查找指定文件名的文件是否存在

find

2020-06-12 14:08:18 226

原创 查找文件的内容

grep -rn "main" ./ -C 5

2020-06-12 14:07:47 112

原创 stm32开发总结

1 给功能需求 给原理图和位图,评审需求是否合理和修改。主要如下:功能需求搞清楚。引脚够用不 是否需要换引脚,功能模块是否还有剩余可以满足的。合理的话确认开发实现方式。2 给板子和相关器件 单板调试。主要如下确认硬件电路是否正确 ,有问题请硬件的确认修改。MCU功能模块能否正常工作,主要是驱动编码。3 给硬件的功能设计的控制策略 功能调试 。主要如下根据策略编码功能代码,测试功能是否正常。4 给整机装好 整个产品在用户角度各个功能都测试一遍,作为最后的确认 整机调试.

2020-06-12 10:09:36 601

原创 unix环境高级编程源码下载地址

http://www.apuebook.com/

2020-06-11 15:56:51 397

原创 文件IO和标准IO

linux应用程序多用标准IO,fopen fclose 等,因为它有缓存效率高,是C库的函数。unix系统实现了文件IO函数,open read write close 等,是系统函数到内核执行,不缓存的,所以效率低。应用程序——行缓存———标准IO——文件IO——内核缓存...

2020-06-10 23:01:55 86

原创 用malloc的原因

1.malloc是用来进行内存分配,事先不知道大小时2.需要重新分配(增加)内存,前面最好用malloc分配,然后用realloc3.分配较大内存时,因为栈空间有限4.从函数返回结果时,由于生命周期的原因注意malloc比较耗时,效率低。...

2020-06-10 09:34:55 745

原创 git遇到问题解决

序号 功能 命令 1 单独使本地某个文件和远端一致 git checkout -- file 2 忽略文件权限比较 git config core.fileMode false 3 回退到某个版本 git reset --hard log_num ...

2020-06-10 09:34:46 320

原创 linux读写锁

读写锁是"写模式加锁"时, 解锁前,所有对该锁加锁的线程都会被阻塞。 读写锁是"读模式加锁"时, 如果线程以读模式对其加锁会成功;如果线程以写模式加锁会阻塞。 读写锁是"读模式加锁"时, 既有试图以写模式加锁的线程,也有试图以读模式加锁的线程。那么读写锁会阻塞随后的读模式锁请求。优先满足写模式锁。读锁、写锁并行阻塞,写锁优先级高...

2020-06-10 09:34:27 496

原创 windows相关问题解决

序号 功能 方法 1 git bash密码 很多时候我们容易在Git Bash操作的时候,不慎输入错误的用户名或密码,此时一直提示: remote: Incorrect username or password ( access token ) 解决办法: 1.打开控制面板(快捷打开win+R,输入contr...

2020-06-10 09:34:18 326

原创 进程前后台切换

1. command &让进程在后台运行2. jobs –l 查看后台运行的进程3. fg %n 让后台运行的进程n到前台来4. bg %n 让进程n到后台去;PS:“n”为jobs查看到的进程编号。

2020-06-10 09:34:03 341

原创 流程图时序图模块图工具PlantUML

时序图 https://blog.csdn.net/zh_weir/article/details/72675013组件图 https://blog.csdn.net/zh_weir/article/details/53020369plantUML画图实时预览Vs +java+ graphviz + plantUML四个东西都下载画图后 ALT + D 即可实时预览UML图...

2020-06-10 09:33:50 862

原创 source in sight 相关问题解决

序号 功能 方法 1 Tab转空格 在Options->Document Options中选中Expand tabs则Tab键用4个空格替换,否则即为Tab本身。 2 换行自动加Tab 在Options->Document Options中点Auto Indenting,出来小窗口选择Auto Indent Type...

2020-06-10 09:31:22 250

原创 日志打印

1 效率相关:日志的打印的字符串的内存的分配耗时,打印到串口硬件的耗时,cpu忙时日志处理很慢。2 空间复杂度:占用内存多少,队列何时满。3 多线程编程:加锁 条件变量 阻塞。实现1 内存先分配一个大的环形缓冲区,打印字符串时获取个写的地址即可。2 缓冲区在cpu空闲时写到日志文件。3 比较忙时满了就丢日志保证正常进程任务执行。...

2020-06-10 09:30:59 131

原创 gdb个人总结

1 找出需要gdb的正在运行的进程idps -ef | grep proc_name。如果这个进程没有开始执行,就直接gdb 然后file out_file_name 然后 r ,如果有命令行参数就加进入比如 r 892 attach到这个进程上gdbattach pid3 打印变量值p var_namep *(p_point)p/x var_namep/d var_name4 打印内存x/20x p_point5 设置变量的值p var_na...

2020-06-10 09:30:16 114

原创 gdb使用总结

1 找出需要gdb的正在运行的进程idps -ef | grep proc_name。如果这个进程没有开始执行,就直接gdb 然后file out_file_name 然后 r ,如果有命令行参数就加进入比如 r 892 attach到这个进程上gdbattach pid3 打印变量值p var_namep *(p_point)p/x var_namep/d var_name4 打印内存x/20x p_point5 设置变量的值p var_name v...

2020-06-09 16:00:24 96

空空如也

空空如也

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

TA关注的人

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