2023年 我看到过贴吧里面有一位大佬画出了10十个箭头10的骨架图
12-5
·
真厉害啊
图中密密麻麻的10 |
||
回复:Linux内核 Runtime PM
12-5
·
有了pm_runtime_dont_use_autosuspend函数,只要rmmod就一定会suspend。
如果之前suspend了才rmmod,那么先resume再suspend。 如果之前没有suspend就rmmod,那么直接suspend。 |
||
回复:Linux内核 Runtime PM
12-5
·
suspend后再rmmod的打印:会先resume再suspend
[ 2098.009571] hello_release root@rk3308b-buildroot:/root# echo "xxx" > /dev/hello_file [ 2098.397681] hello_open [ 2098.397854] hello_write [ 2098.397914] hello_release root@rk3308b-buildro... |
||
回复:Linux内核 Runtime PM
12-5
·
在remove函数中,pm_runtime_disable前必须还要调用pm_runtime_dont_use_autosuspend,否则rmmod的时候有可能不会suspend设备。
static int hello_remove(struct platform_device *pdev) { struct data *data = platform_get_drvdata(pdev);... |
||
回复:Linux内核 Runtime PM
12-5
·
【autosuspend功能的使用】
static int hello_open(struct inode *inode, struct file *file) { ... ret = pm_runtime_get_sync(&data->pdev->dev); if (ret < 0) { // 这里应该是<0才对... |
||
回复:Linux内核 Runtime PM
12-5
·
ret = pm_runtime_get_sync(&data->pdev->dev);
if (ret != 0) {应该改成if (ret < 0) {才对。 只有<0才是出错,>=0都是正常状态。 |
||
回复:Linux内核 Runtime PM
12-5
·
如果不想让设备频繁地开、关,可以使用autosuspend功能
驱动里: 执行pm_runtime_use_autosuspend来设置启动autosuspend功能, put设备时, 执行这2个函数: pm_runtime_mark_last_busy(&lcd_dev.dev);(更新power.last_busy的状态) pm_runtime_put_sync_autosuspend(&lcd_dev.dev);(根据power.last_b... |
||
回复:关于SoC的IP
12-5
·
STM32里面的定时器、SPI、I2C、USB、ETH等外设都是IP核。
|
||
回复:关于SoC的IP
12-5
·
IP核(知识产权核)是FPGA里面的说法。
|
||
回复:关于SoC的IP
12-5
·
IP在SoC设计中的重要性
设计效率:现代SoC设计高度依赖IP复用。通过组合来自多个供应商的IP(如ARM的处理器核、第三方的接口IP),设计团队能快速构建复杂系统,缩短上市时间。 成本与优化:可组态的IP允许针对功耗、面积或性能进行定制(例如,仅集成所需的功能单元),从而优化芯片成本和能效。例如,在移动设备SoC中,IP的低功耗特性至关重要。 生态系统:IP供应商(如ARM、Synopsys等)与SoC设计公司紧密合作,提供技术支持和验证服务,形成完整的产... |
||