BES
文章平均质量分 58
danteliujie
经过多年的折腾以后,我发现自己还是喜欢编程和软件的世界对新技术很有兴趣,不再局限于喜欢嵌入式的内容,发现整个软件世界其实都很有趣,每个领域都可以做到极致,都有很多挑战.
展开
-
BES2300YP fft函数例子和输入输出
输入输出的数据如代码注释fft // arm cfft, 复数 // float[256] as complex[128] => float[256] as complex[128] // out: // DC 0,64's R // conj 1~63, 65~127 for (int i = 0; i < 128; i++) { buffer[i * 2] = xn[i].real;原创 2021-08-10 15:53:21 · 636 阅读 · 0 评论 -
BES2300YP 音频1 - 音频控制处理机: app_audio_handle_process
本文所有代码均删除了次要代码,便于理解脉络在app_init中的起点int app_init(void){ app_audio_open(); app_audio_manager_open();}app_audio_handle_process的调用app_audio_open将注册音频处理函数, 这是app_thread所处理的mod_handler, 具体参考BES2300YP - 千头万绪的各种入口: 线程,中断,定时器中的第二节void app_a.原创 2021-07-26 18:00:44 · 866 阅读 · 0 评论 -
Windows下, 不同编译链的兼容使用方法
从最新的代码中, 我们可以看到载入音频策略引擎参数的过程frameworks/av/services/audiopolicy/engine/common/src/EngineBase.cppengineConfig::ParsingResult EngineBase::loadAudioPolicyEngineConfig(){ // 部分省略 auto result = fileExists(engineConfig::DEFAULT_PATH) ? en原创 2021-07-23 13:48:33 · 254 阅读 · 0 评论 -
BES2300YP - SPI接口
经过一些曲折以后调通了SPILCD接口, 整理代码,资料和调试过程如下:GPIO Pin Mux最开始的时候我拿到的是GPIO Pin Mux的Excel, 整理如下:后面的研究发现这里有坑Pin Mux相关的代码hal_iomux_best2300p.c文件中pin_func_map函数定义了每个引脚所支持的各种复用功能,我们可以注意到上节所说的坑, 因为这里的定义和上节的excel是对应不上的, 解决方法:应该采用SPILCD而不是SPI的相关接口.至于SPI接口,原创 2021-07-22 16:43:30 · 1113 阅读 · 0 评论 -
BES2500BM - 两步编译
BES2500BM有一颗双核M33和一颗双核A7,所以需要编译两次1. 编译a7核make T=a7_dsp -j2.再编译m33核make T=best2003_ibrt -j原创 2021-07-21 14:58:57 · 374 阅读 · 0 评论 -
BES2300YP - 超值的编译指令
列举一些好用的make指令, 如果有好的发现, 会再补充上来make --help这个指令是用来查看make.exe提供了哪些选项的,权当做手册来用吧其输出如下:D:\work\BES\Aladin_SourcesCodes>make --helpUsage: make [options] [target] ...Options: -b, -m Ignored for compatibility. -B, --always-m...原创 2021-07-15 16:30:12 · 660 阅读 · 1 评论 -
BES2300YP - 死机原因分析 和 堆栈还原
写在前面: 这是一篇很啰嗦的技术自爽文, 如果给您带来不快的阅读体验, 请原谅.目录异常类型Crash位置调用关系还原完整log如下:文章末尾是我的一段crash记录, (因为太长了, 所以放到最后,以免影响阅读)我在读这段log的时候第一下看到以下几个关键点:异常类型最后log之后马上就显示了异常代码 180518/N/NONE /-10E |异常详细信息中显示了异常码ExceptionNumber=-10还有SHCSR寄存器(Syst...原创 2021-07-14 15:31:03 · 2000 阅读 · 4 评论 -
BES2300YP - OTA开关和OTA流程图
OTA(Over-the-air programming) 叫做空中编程,这里用它来做系统升级开启OTA功能的方法开启OTA的方法是修改export OTA_BASIC ?= 1问题排查作者在实际操作的过程中遇到按以上方法修改仍然不成功的问题, 最后查出来是两个原因第一个原因和以下问题有关:在common.mk和config中的target.mk中分别定义OTA_BASIC的值为1和0,请问在哪个文件中定义的值会生效? 答: 这个和根目录下的M...原创 2021-07-09 17:57:58 · 2059 阅读 · 12 评论 -
BES2300YP - Main函数被调用之前发生了什么
所有的起点在startup_main.S .syntax unified .section .boot_loader, "ax", %progbits .thumb .thumb_func .align 2 .globl Boot_Loader .type Boot_Loader, %functionBoot_Loader: ldr r3, =__StackTop msr msp, r3原创 2021-07-09 14:56:37 · 552 阅读 · 2 评论 -
BES 优秀文章/博客搜集
在云巅https://blog.csdn.net/ylangeia/article/details/113725686原创 2021-07-08 16:43:18 · 598 阅读 · 0 评论 -
BES2300YP - 千头万绪的各种入口: 线程,中断,定时器
首先是线程:osThreadCreate这个函数会创建各种线程 查找osThreadCreate关键字可以找到这些线程入口其次是app_mod_handler: 这实际上是app_thread中基于mod_id的回调接口,app_thread就会在收到message时, 根据message里面的mod_id把消息交给对应的mod_handle来处理. 每个mod的处理函数是通过app_set_threadh...原创 2021-07-08 16:30:12 · 2050 阅读 · 0 评论 -
BES2300YP - 例子程序: GPIO输入检测
以下代码实现了一个根据GPIO输入来闪烁LED的程序不过我有点不明白的是,我的LED在输入为低电平时没有彻底关闭, 而是有弱电的样子, 请指教, 谢谢void set_as_gpio_output(int idx){ HAL_IOMUX_PIN_T iomux_name = (HAL_IOMUX_PIN_T)idx; struct HAL_IOMUX_PIN_FUNCTION_MAP pin; pin.pin = iomux_name; pin.funct原创 2021-07-07 15:51:40 · 586 阅读 · 0 评论 -
BES2300YP 开发板/母版上标号 的含义
其引脚的标号往往会有多个标识, 根据摸索, 猜测其解读需要根据引脚附近的Net Name说明来判断应该使用哪个标号比如上图最下面的netname中2300是最后一个, 而我在使用2300YP的板子,所以这几个管脚对于我来说就是应该使用最后一个标识, 即红色框中选中的部分细心的同学可能发现了: 这里部分引脚的标识不符合上面的描述, 这就是头痛的部分.因为不了解硬件工程师的习惯和工作知识, 也没法直接和BES了解,所以这里只能算作猜测, 欢迎有了解的同学在评论区指正我的错误, 谢谢...原创 2021-07-07 14:59:58 · 810 阅读 · 0 评论 -
BES2300YP - 例子程序: 流水灯
// 将某个GPIO设置为输出的GPIO// idx 是GPIO在\platform\hal\best2300p\hal_iomux_best2300p.h中定注意的值// 基本规律是 GPIO_xy 对应于 (x*8 + y)void enable_blink(int idx){ HAL_IOMUX_PIN_T iomux_name = (HAL_IOMUX_PIN_T)idx; struct HAL_IOMUX_PIN_FUNCTION_MAP pin; pi...原创 2021-07-07 14:42:37 · 495 阅读 · 0 评论