惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
D
Docker
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
T
Tenable Blog
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
The Hacker News
The Hacker News
Project Zero
Project Zero
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Cyberwarzone
Cyberwarzone
The Register - Security
The Register - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Vercel News
Vercel News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
U
Unit 42
Scott Helme
Scott Helme
A
About on SuperTechFans
WordPress大学
WordPress大学
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
G
GRAHAM CLULEY
Latest news
Latest news
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Schneier on Security

嵌入式开发

求推荐支持 eBPF 的国产 ARM 开发板 求个长期合作的逆向开发 ******野火开发板 stm32 教程错误很多***** - V2EX 嵌入式开发能不能借助 AI 编写程序 - V2EX 有没有类似 ESP32 的芯片,内存要大的? - V2EX 有干嵌入式的老哥吗? stm32+jlink,使用 swd 调试时经常蓝屏是怎么回事 - V2EX 有干嵌入式的老哥吗,有一个 keil 的问题 - V2EX =RS485 总线冲突 Gemini 和 Chatgpt 给出不同的答案=== - V2EX 嵌入式软件工程师如何提升自己? - V2EX ST-Link 在 CLion 下载失败求助 - V2EX 个人认为嵌入式领域最无用的发明---色环电阻 - V2EX v 嵌入式设备适合用 vlc 吗 - V2EX 有玩 mcuboot 的吗,可否帮忙看看我的应用为啥启动不了。 - V2EX 解析 pads pt9 格式文件,大家有没有什么好办法解析,可以有偿 - V2EX 请教嵌入式自学路径 - V2EX 嵌入式 AI 系统 SDK - V2EX 从开发一个六足机器人入手,要怎么做 - V2EX 请教实现 嵌入式二维码扫描的问题, 新手, 非常新 - V2EX 0 基础嵌入式开发学习 - V2EX 嵌入式软件(单片机)相关问题 - V2EX ESP32C6 系列教学视频,每天增加,大概 20 集,如果有用的可以下载 - V2EX 过年时候写的,劣质古早 mcu 的 TFT 屏幕 +ILI9341 亮度控制方案 - V2EX 嵌入式入职没人带 ,如何提升自己的开发工作经验呢?提升能力?有没有教程推荐 - V2EX 想给和家亲摄像头刷 OpenIPC,求助 u-boot 相关问题 - V2EX 嵌入式软硬件交流贴 - V2EX 嵌入式设备(无任何界面,带喇叭)的语音通话技术选型 - V2EX 需要开发吸顶灯和可视化门铃,有人接单么 - V2EX 业余想学习和玩一下单片机,求助一下 - V2EX 最近的想法<打造下一代的嵌入式软件开发 IDE> - V2EX 想将投影仪接入米家,请教一下 ESP32 重放投影仪蓝牙遥控器的按键,用于控制投影仪的开关 - V2EX 想学嵌入式,黑马的嵌入式培训怎么样? - V2EX 付费求教 ESP32-C3 射频设计问题,目前 WiFi 不能连接其他 AP,无法成功创建 AP,但能正常搜索到其他 AP - V2EX 嵌入式前景怎么样 - V2EX 嵌入式怎么涨了那么多? - V2EX 需要做一个 PCB 板,增压和降压以及蓝牙控制 - V2EX 纯新手业余爱好者怎么入门 PCB 设计、嵌入式开发啊? - V2EX NCU972 启动卡内核加载 - V2EX NCU970 qt4.8.5 交叉编译环境搭建 - V2EX micropython 开发推荐什么 ide - V2EX 求问交叉编译中 gdb 的使用 - V2EX 移植好 U8g2 图形库的 STM32F407 标准库工程模板, 0.96 寸 OLED 驱动程序 - V2EX Java 岗想转嵌入式,但不知哪个行业更有前途越老越香的那种 - V2EX 求推荐一个 RK3588 开发版 - V2EX 解决请喝奶茶,实在搞不定了 esp32 heap_caps_malloc 分配内存崩溃 - V2EX arm 架构下 u-boot 可不可以不指定 dtb 启动内核? - V2EX 嵌入式的私活好少啊,嵌入式项目资源共享群有吗? - V2EX 感觉嵌入式开发的门槛不在语言而在环境上… - V2EX 有没有哪款 arm 的开发板支持 smmu(iommu)? - V2EX 楼主最近需要研究 arm 架构,想请教 v 友买哪款 arm 的开发板比较合适? - V2EX 用 stm32cubeide 碰到了一个奇怪的 bug,串口发送要凑满 1kb 的数据才能发
这段浮点运算代码性能为何如此低下 - V2EX
Leon6868 · 2023-04-12 · via 嵌入式开发
  • 编译环境:ESP-IDF 4.4
  • 运行设备:ESP32S3 ,已经在编译选项中开启性能优化模式,并把 CPU 频率调到了 240MHz 。
  • 目的:模拟 ESP32S3 处理图片,并测试性能
  • 问题:测试时发现,以这个参数执行下来,每次 ESP_LOGI 间隔 163813 微秒,平均下来一次 float 计算要 1 微秒,与芯片性能严重不符。请问是什么原因导致的呢?
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_log.h"
#define M2T(X) ((unsigned int)(X) / portTICK_PERIOD_MS) // ms to tick

#include "esp_random.h"

#include <sys/time.h>

static const char *TAG = "main";
#define dataLen 14400

void makeMatrixUint8(uint8_t *buf, int len)
{

    for (int i = 0; i < len; i++)
    {
        esp_fill_random(&buf[i], sizeof(uint8_t));
    }
}
void makeMatrixFloat(float *buf, int len)
{

    for (int i = 0; i < len; i++)
    {
        esp_fill_random(&buf[i], sizeof(float));
    }
}

static void testTask()
{
    uint8_t *testData1 = (uint8_t *)malloc(sizeof(uint8_t) * dataLen);
    float *testData2 = (float *)malloc(sizeof(float) * dataLen);
    struct timeval tv_d0;
    struct timeval tv_d1;

    while (1)
    {
        makeMatrixUint8(testData1, dataLen);
        makeMatrixFloat(testData2, dataLen);
        gettimeofday(&tv_d0, NULL);
        for (int t = 0; t < 10; t++)
        {

            for (int i = 0; i < dataLen; i++)
            {
                testData2[i] = testData1[i] * 0.3;
            }
        }
        gettimeofday(&tv_d1, NULL);
        ESP_LOGI(TAG, "%lu", 1000000 * (tv_d1.tv_sec - tv_d0.tv_sec) + (tv_d1.tv_usec - tv_d0.tv_usec));
        
        vTaskDelay(1);
    }
}

void app_main()
{
    xTaskCreate(testTask, "servoTask", 1024 * 4, NULL, tskIDLE_PRIORITY, NULL);
}