diff --git a/zh-cn/device-dev/kernel/kernel-mini-extend-cpup.md b/zh-cn/device-dev/kernel/kernel-mini-extend-cpup.md index 3bb9218ea72bd6dbf5c6e27c94bed739c0f2063c..275c839d1fe923debfc957b4ca4a97c37ec9198e 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-extend-cpup.md +++ b/zh-cn/device-dev/kernel/kernel-mini-extend-cpup.md @@ -51,16 +51,19 @@ OpenHarmony LiteOS-M提供以下两种CPU占用率的信息查询: | 输出任务CPU占用率 | LOS_CpupUsageMonitor:输出任务历史CPU占用率 | | 获取中断CPU占用率 | LOS_GetAllIrqCpuUsage:获取所有中断CPU占用率 | - ## 开发流程 +在kernel/liteos_m目录下执行 make menuconfig 命令配置"Kernel->Enable Cpup"中打开YES开启任务cpup; + +开启后出现新选项“Enable Cpup include irq”打开YES开启中断cpup。 + CPU占用率的典型开发流程: 1. 调用获取系统CPU占用率函数LOS_SysCpuUsage。 2. 调用获取系统历史CPU占用率函数LOS_HistorySysCpuUsage。 -3. 调用获取指定任务CPU使占用率函数LOS_TaskCpuUsage。 +3. 调用获取指定任务CPU占用率函数LOS_TaskCpuUsage。 - 若任务已创建,则关中断,正常获取,恢复中断; - 若任务未创建,则返回错误码; @@ -95,7 +98,7 @@ CPU占用率的典型开发流程: 前提条件: -在target_config.h中将LOSCFG_BASE_CORE_CPUP配置项打开。 +在kernel/liteos_m目录下执行 make menuconfig命令配置"Kernel->Enable Cpup"中开启任务cpup: 代码实现如下: diff --git a/zh-cn/device-dev/kernel/kernel-mini-extend-file.md b/zh-cn/device-dev/kernel/kernel-mini-extend-file.md index 0a5015d388901e4ae112063fd46dccbc85f3f394..0302a6c6b129d86037be9adeaa27e7c6a24335de 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-extend-file.md +++ b/zh-cn/device-dev/kernel/kernel-mini-extend-file.md @@ -168,13 +168,11 @@ mount接口:int mount(const char *source, const char *target, const char *file > - 读写指针未分离,例如以O_APPEND(追加写)方式打开文件后,读指针也在文件尾,从头读文件前需要用户手动置位。 > - 暂不支持文件与目录的权限管理。 > - stat及fstat接口暂不支持查询修改时间、创建时间和最后访问时间。微软FAT协议不支持1980年以前的时间。 -> > - FATFS分区挂载与卸载: > - 支持以只读属性挂载分区。当mount函数的入参为MS_RDONLY时,所有的带有写入的接口,如write、mkdir、unlink,以及非O_RDONLY属性的open,将均被拒绝。 > - mount支持通过MS_REMOUNT标记修改已挂载分区的权限。 > - 在umount操作前,需确保所有目录及文件全部关闭。 > - umount2支持通过MNT_FORCE参数强制关闭所有文件与文件夹并umount,但可能造成数据丢失,请谨慎使用。 -> > - FATFS支持重新划分存储设备分区、格式化分区,对应接口为fatfs_fdisk与fatfs_format: > - 在fatfs_format操作之前,若需要格式化的分区已挂载,需确保分区中的所有目录及文件全部关闭,并且分区umount。 > - 在fatfs_fdisk操作前,需要该设备中的所有分区均已umount。 @@ -213,6 +211,10 @@ mount接口:int mount(const char *source, const char *target, const char *file 系统已将设备分区挂载到目录,qemu默认已挂载system。 + 在kernel/liteos_m目录下执行 make menuconfig 命令配置"FileSystem->Enable FS VFS"开启FS功能; + + 开启FS后出现新选项“Enable FAT”开启FAT。 + **代码实现如下:** 本演示代码在 ./kernel/liteos_m/testsuites/src/osTest.c 中编译验证,在TestTaskEntry中调用验证入口函数ExampleFatfs。 @@ -425,6 +427,10 @@ blockCount 可以被擦除的块数量,这取决于块设备的容量及擦除 系统已将设备分区挂载到目录,qemu默认已挂载/littlefs。 +在kernel/liteos_m目录下执行 make menuconfig 命令配置"FileSystem->Enable FS VFS"开启FS功能; + +开启FS后出现新选项“Enable Little FS”开启littlefs。 + 代码实现如下: 本演示代码在 ./kernel/liteos_m/testsuites/src/osTest.c 中编译验证,在TestTaskEntry中调用验证入口函数ExampleLittlefs。 diff --git a/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md b/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md index ce156e668c41cec304b1d5e51ed05cf173ec50b1..079491ec6fab028f210a24647ed92ec2c52e4326 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md +++ b/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md @@ -185,7 +185,9 @@ node size LR[0] LR[1] LR[2] 本演示代码在 ./kernel/liteos_m/testsuites/src/osTest.c 中编译验证,在TestTaskEntry中调用验证入口函数MemLeakTest。 -qemu中进行验证时,由于代码段位置特殊需调整ld文件_stext位置到text段的起始位置 +qemu平台运行时需确保target_config.h 中对应的LOSCFG_MEM_FREE_BY_TASKID为0。 + +由于打开内存检测后,部分平台有其他任务运行,会频繁调用内存相关打印如:psp, start = xxxxx, end = xxxxxxx,请忽略打印或删除OsStackAddrGet函数中调用的打印即可。 ``` @@ -311,6 +313,10 @@ LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK:开关宏,默认关闭;若打开这 本演示代码在 ./kernel/liteos_m/testsuites/src/osTest.c 中编译验证,在TestTaskEntry中调用验证入口函数MemIntegrityTest。 +qemu平台运行时需确保target_config.h 中对应的LOSCFG_MEM_FREE_BY_TASKID为0。 + +由于执行时主动触发异常,执行结束后需要重启qemu(例如打开一个新的终端界面输入killall qemu-system-arm) + ``` #include @@ -344,7 +350,7 @@ memory used but magic num wrong, magic num = 0x0 /* 被破坏节点和其前节点关键字段信息,分别为其前节点地址、节点的魔鬼数字、节点的sizeAndFlag;可以看出被破坏节点的魔鬼数字字段被清零,符合用例场景 */ broken node head: 0x2103d7e8 0x0 0x80000020, prev node head: 0x2103c7cc 0xabcddcba 0x80000020 - /* 节点的LR信息需要开启内存检测功能才有有效输出 */ + /* 节点的LR信息需要开启前文的内存泄漏检测功能才有有效输出 */ broken node head LR info: LR[0]:0x2101906c LR[1]:0x0 diff --git a/zh-cn/device-dev/kernel/kernel-mini-memory-trace.md b/zh-cn/device-dev/kernel/kernel-mini-memory-trace.md index 79c580868721f3dc2994c4693f822cb71e585b55..a50b89c619b13944c85e65ad6e06cd72c4c37243 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-memory-trace.md +++ b/zh-cn/device-dev/kernel/kernel-mini-memory-trace.md @@ -246,6 +246,8 @@ Index Time(cycles) EventType CurTask Identity params 6 0x3706f804 0x45 0x1 0x0 0x1f 0x4 0x0 7 0x37070e59 0x45 0x0 0x1 0x0 0x8 0x1f ***TraceInfo end*** + +根据实际运行环境,上文中的数据会有差异,非固定结果 ``` 输出的事件信息包括:发生时间、事件类型、事件发生在哪个任务中、事件操作的主体对象、事件的其他参数。