请选择 进入手机版 | 继续访问电脑版
查看: 4126|回复: 2

[原创] 【DIY-LPC553X】+ 基于zephyr OS的多线程测试

[复制链接]
  • TA的每日心情
    开心
    前天 08:28
  • 签到天数: 1313 天

    [LV.10]以坛为家III

    124

    主题

    2825

    帖子

    31

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    7552
    最后登录
    2024-3-27
    发表于 2022-11-15 22:38:40 | 显示全部楼层 |阅读模式
    本帖最后由 TLLED 于 2022-11-15 22:38 编辑

        根据网上的资料,来学习 zephyr OS的多线程例程在LPC55S36开发板上的测试,通过串口输出的方式。

        一、例程源码


        测试代码是在helloworld的基础上进行修改的,修改的部分如下。


        1.1、main.c
        创建了三个线程(任务),通过串口输出三个任务的执行情况。
    1. #include <zephyr/zephyr.h>
    2. #include <zephyr/kernel.h>

    3. #define STACKSIZE 256
    4. #define PRIORITY 7

    5. //task1
    6. void taska(void *dummy1, void *dummy2, void *dummy3 )
    7. {
    8.         while(1)
    9.         {
    10.                 printk("taska runing...\n");
    11.                 k_msleep(100);
    12.         }
    13. }
    14. //task2
    15. void taskb(void *dummy1, void *dummy2, void *dummy3 )
    16. {
    17.         while(1)
    18.         {
    19.                 printk("taskb runing...\n");
    20.                 k_msleep(200);
    21.         }
    22. }

    23. //task3
    24. void taskc(void *dummy1, void *dummy2, void *dummy3 )
    25. {
    26.         while(1)
    27.         {
    28.                 printk("taskc runing...\n");
    29.                 k_msleep(500);
    30.         }
    31. }

    32. K_THREAD_STACK_DEFINE(taska_stack_area, STACKSIZE);
    33. static struct k_thread taska_data;

    34. K_THREAD_STACK_DEFINE(taskb_stack_area, STACKSIZE);
    35. static struct k_thread taskb_data;

    36. K_THREAD_STACK_DEFINE(taskc_stack_area, STACKSIZE);
    37. static struct k_thread taskc_data;


    38. void main(void)
    39. {
    40.         k_thread_create(&taska_data, taska_stack_area,
    41.                 K_THREAD_STACK_SIZEOF(taska_stack_area),
    42.                 taska,NULL,NULL,NULL,
    43.                 PRIORITY,0,K_FOREVER
    44.                 );
    45.         k_thread_name_set(&taska_data, "task_a");

    46.         k_thread_create(&taskb_data, taskb_stack_area,
    47.                 K_THREAD_STACK_SIZEOF(taskb_stack_area),
    48.                 taskb,NULL,NULL,NULL,
    49.                 PRIORITY+1,0,K_FOREVER
    50.                 );
    51.         k_thread_name_set(&taskb_data, "task_b");

    52.         k_thread_create(&taskc_data, taskc_stack_area,
    53.                 K_THREAD_STACK_SIZEOF(taskc_stack_area),
    54.                 taskc,NULL,NULL,NULL,
    55.                 PRIORITY+2,0,K_FOREVER
    56.                 );
    57.         k_thread_name_set(&taskc_data, "task_c");

    58.         k_thread_start(&taska_data);
    59.         k_thread_start(&taskb_data);
    60.         k_thread_start(&taskc_data);
    61. }
    复制代码

        1.2、修改配置文件

        20221114162210.png
        在prj.conf文件中增加下面内容:
       
    1. CONFIG_STDOUT_CONSOLE=y
    2. # enable to use thread names
    3. CONFIG_THREAD_NAME=y
    4. CONFIG_SCHED_CPU_MASK=y
    复制代码

        二、编译和下载

        这个和上篇的一样,执行命令
        root@ubuntu:~/zephyrproject/zephyr# west build -p auto -b lpcxpresso55s36 /opt/zephyrprj/task_test/
        root@ubuntu:~/zephyrproject/zephyr# west flash


        三、程序运行


        程序烧写完成后,开发板串口输出
        20221114162713.png


         串口输出的任务内容的时序和程序是一致的。以上就是测试多线程的步骤。
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    12 小时前
  • 签到天数: 1912 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    16999
    最后登录
    2024-3-29
    发表于 2022-11-16 09:23:51 | 显示全部楼层
    大佬真不错
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-7 17:40
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    0

    主题

    80

    帖子

    0

    注册会员

    Rank: 2

    积分
    136
    最后登录
    2023-2-7
    发表于 2022-12-7 10:05:44 | 显示全部楼层
    学**,不错的分享!
    脚踏实地,坚持不懈!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-3-29 21:37 , Processed in 0.118472 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表