- 博客(113)
- 资源 (5)
- 收藏
- 关注
原创 NI PXIe-2541 矩阵开关
为核心竞争力,是射频自动化测试的关键组件。NI PXIe-2541是一款面向射频(RF)信号路由的8×12矩阵开关模块,专为PXIe平台设计,支持300 MHz高频信号传输,广泛应用于自动化测试系统中的多通道信号切换。例如,8×12矩阵可同时连接8个信号源与12个被测器件(DUT),通过LabVIEW编程实现通道自动切换,测试效率提升3-5倍。若需更大功率切换(如2A/60W),可评估国产PXI2623系列或Pickering 40-520-021,但后者带宽仅8MHz,无法满足射频场景需求。
2025-10-30 10:42:15
359
原创 汽车的“在环测试”
汽车的“在环测试”(X-in-the-Loop)是一套递进式仿真验证体系,覆盖从算法设计到实车落地的全流程。未来随着端到端算法和数字孪生技术的成熟,虚拟测试的置信度将进一步提升,成为智能汽车研发的“数字基座”。:结合数字孪生技术,将实车路测数据反馈至虚拟测试环境,持续优化模型精度,最终实现“虚拟测试-实车验证”的闭环迭代。:将MiL阶段的算法模型自动生成C代码,在虚拟ECU(x86架构)中运行,验证代码与模型的一致性。:自动驾驶感知算法的代码验证,例如激光雷达点云分割代码在虚拟城市环境中的精度测试。
2025-10-27 09:15:50
916
原创 armcc main入口点
_main是 ARMCC 工具链中不可或缺的启动环节,自动化处理了 C 环境初始化与内存映射。编译器兼容性:跨编译器移植时重点验证启动代码。堆栈隔离设计:利用双栈机制提升系统可靠性。自定义需求:高级场景(如 RTOS 任务栈)可通过重写启动文件或调整链接脚本实现。如需更深入的启动流程分析或问题调试案例,可进一步参考ARM Cortex-M 启动揭秘及__main 函数内幕。
2025-07-24 15:58:02
645
原创 alsa/asoc框架
asoc在alsa基础上增加了dpcm/dapm,dai-link等面向移动设备的复杂使用场景。alsa框架提供了传统声卡设备的管理框架。可以动态变更音频路径,动态电源管理。
2025-07-01 18:22:37
196
原创 LVGL的优化
1,单buffer情况下,lvgl无需记录空闲帧对象,只需要一个标志即可;双buffer情况下需要记录,如果两个buffer都没有空闲,主线程需要挂起等待;1, flush_cb()发送信号给送显示线程,通知有新数据帧需要送显示后立即返回,主线程尝试绘制下一帧;2, 送显线程获取新数据帧信号,更新数据并发送FBIOPAN_DISPLAY切换活动帧;2,双buffer情况下,送显示线程waitvsync前需要发送活动帧切换信号;2, 送显示线程获取更新信号更新变更数据到内核帧buffer;
2025-01-17 17:42:25
844
原创 kobj,ktype,kset
int val;&val_attr,NULL,kfree(obj);if (!my_kset) {if (!obj1) {if (!obj2) {return 0;return;
2024-09-09 11:18:41
681
原创 基于OOB的NFTL设计
NFTL将所管理的所有页面作为一个环形队列循环使用。通过一个索引表记录所有页面的逻辑地址和物理地址的映射关系,该表在系统初始化时根据保存OOB中的日志数据创建,在系统执行写入请求时更新。任何页面写入请求,数据均存放在队首页面,并在OOB区保存日志数据。日志数据包含队列信息以及最近写入页面的映射关系。如果写入的页面已经存在,则旧的页面成为垃圾页面。在队列的剩余空间小于一定尺寸时触发磨损平衡处理的同时实现垃圾回收。
2024-07-11 11:26:07
1069
原创 通过摄像头检测步频
这个对机器算力要求较高,视频帧处理能力不能满足需求)通过快速傅里叶转换,将和步频相似频率显示出来。(尝试人脸检测,跟着人脸位置变化计算频率。人在摄像头前运动,该数值会呈现周期变化。通过摄像头识别运动频率,比如步频。
2024-06-18 20:00:35
543
原创 linux driver - devres
由于底层驱动在卸载过程经常会有因为没有释放资源而导致的内存泄漏发生。为了解决这个问题,内核引入了devres子系统帮助驱动程序实现资源的自动释放。devres子系统通过在struct device里面增加一个devres list head,将为设备分配的资源关联其上,当设备detach时,设备框架通过devres的release帮助函数将和该设备关联的资源统一释放 。devres也为每种资源提供的单独释放的接口,这样驱动程序可以在运行时不必等到设备卸载就可以主动释放某些资源。devres代码路径:dr
2024-03-19 14:36:14
1207
原创 Bookmarks
微软 Bing 搜索 - 国内版百度在线翻译Android模拟器——QEMU - 李亚锋老师 - 博客频道 - CSDN.NETGraphics | Android DevelopersWelcome to Android | Android Open SourceAndroid Training | Android DevelopersApp Components | Android DevelopersGoogle Java StyleUsing Eclipse | Android Developers
2023-11-15 07:33:26
3620
原创 lvgl示例程序自动提取及播放
lvgl内置了大量示例程序,但是模拟器每次只能演示一个示例。通过脚本提取示例入口函数表. 在main.c中增加一个按钮,每点击一次,找回一个示例程序运行。
2023-11-06 15:05:22
676
原创 lvgl overview
屏幕上的图像元素以单根对象树管理,默认情况下根对象就是显示器的活动显示器——act_scr,在显示器注册时创建,参见lv_disp_drv_register。应用也可以自己创建screen的根对象,需要显示时,通过lv_scr_load(scr)将其配置为当前显示器的活动屏幕对象。lv_obj_t和lv_obj_class_t是lv用来实现类似cpp的基于类的面向对象的软件设计的基础结构类型。匹配失败,则从父节点的样式数组继续匹配,直到根节点,如果仍然没有匹配,则采用系统默认样式。如:按下+焦点+选中。
2023-10-13 13:59:54
270
原创 gitlab runner
register在项目的主页面左侧边框点击 ‘设置’选择‘CI/CD’;展开runner,将网址和 令牌信息注册到runner:run注册之后就可以运行’gitlab-runner run’启动runner,等待gitlab服务器下发job。注册完成后,刷新页面,显示runner信息,点击’、’编辑按钮,勾选‘运行未标记的作业’在项目根目录提交一个 .gitlab-ci.yml 的文件。当提交了以后,就会触发pipeline流水线了。怎样限制自动触发,节省服务器你好! 这是你第一次使用 Markdow
2023-10-11 16:34:28
481
原创 gitlab runner
注册之后就可以运行'gitlab-runner run'启动runner,等待gitlab服务器下发job。在项目根目录提交一个 .gitlab-ci.yml 的文件。当提交了以后,就会触发pipeline流水线了。注册完成后,刷新页面,显示runner信息,点击’、’编辑按钮,勾选‘运行未标记的作业’在项目的主页面左侧边框点击 ‘设置’选择‘CI/CD';怎样限制自动触发,节省服务器。## runner配置。
2023-10-11 16:32:02
798
原创 ffmpeg & ffplay
'-acodec codec_name' 强制指定音频解码器为 "codec_name"'-vcodec codec_name' 强制指定视频解码器为 "codec_name"'-scodec codec_name' 强制指定字幕解码器为 "codec_name"'-t duration' 播放 "duration" 秒音/视频。'-y height' 强制以 "height" 高度显示。'-x width' 强制以 "width" 宽度显示。
2023-09-22 14:20:22
395
原创 数据通信过程的免锁设计
在多核情况下,用自旋锁实现原子操作,在中断里面是可以用的。自旋锁要求每个核持有时间必须尽可能短,否则多核运行都被自旋锁串行化了,多核的性能就体现不出来了。对于uart通信来说,中断处理程序就是其接收buffer唯一的生存者,发送buffer唯一的消费者,这样,它就可以自由的在buffer的一端进行操作,而不会对数据产生影响。环形buffer有一个head和end指针分别用于生产者和消费者操作buffer的输入和输入的其中一端,只要这个环形buffer设计的没问题,就不用担心数据一致性问题。
2023-02-07 14:39:39
413
转载 虚拟机virtualbox中挂载新硬盘
在virtualbox中装好Ubuntu后,发现硬盘空间太小,怎样才能增加硬盘容量?设置 -> Storage -> SATA控制器->右击,选择“添加虚拟硬盘”可看到新加的虚拟硬盘,一般名为:Disk /dev/sdb。用ext4格式对/dev/sdb1进入格式化。可以看到新加的硬盘:/dev/sdb1。将新磁盘分区挂载到/work目录下。然后,根据需求创建合适的硬盘。虚拟机virtualbox中挂载新硬盘。查看现有系统的磁盘空间。键入m,可看到帮助信息。选择基本分区,输入:p。
2022-09-26 11:19:59
1021
原创 正确使用自旋锁、互斥锁
最近在看alios-things的代码发现驱动程序中大量使用了自旋锁 。如tty.c里面的函数实现都是通过自旋锁来实现对资源的访问保护。看到这里首先会有疑问,自旋锁能保护临界区吗?一般来说,自旋锁是用于多核系统的不同核心之间对同一个数据区的竞争访问,对于同一个核上的不同线程是不具备防护功能的。(网上有文章解析自旋锁是让线程原地等待,并没有突出smp环境下的核间竞争,似乎要达到不关中断情况下实现临界区保护,可能也有这种自旋锁吧,没见过,见过的请在下面留言,谢谢)怀着上述疑问,打开aos_spinlo
2022-06-28 19:20:16
758
Peer-to-Peer Multimedia Sharing based on Social Norms.pdf
2019-07-19
zigbee zcl api
2017-10-24
nattypetester
2019-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅