查看: 415|回复: 4

[SAMD21] 【WINC1500-XSTK WiFi】FREERTOS测试

[复制链接]

129

主题

4

好友

4785

积分

状元

Rank: 6Rank: 6

  • TA的每日心情
    开心
    昨天 20:17
  • 签到天数: 525 天

    [LV.9]以坛为家II

    发表于 2016-6-11 23:04:33 |显示全部楼层
    接上一篇帖子:Atmel评估套件专区-【WINC1500-XSTK WiFi】固件升级-爱板网论坛 - 电子工程师学习交流园地 http://www.eeboard.com/bbs/thread-47642-1-1.html
    本打算通过OLED plained显示字符,但在example中没找到SAMD21 START KIT DOME,于是找了个相似的FREERTOS_OLED1_XPRO_EXAMPLE1测试,以为是嵌入了FREERTOS,但后面还没看到系统操作相关,比如多进程通信,多任务、存储等。
    大概浏览一下,熟悉一下AS的程序框架,
    2.JPG

    ASF中是包含SAM相关的配置文件,如rtos、CMSIS等。config中是和程序有关的文件,包括main程序。

    选择如下黑色部分编译。编译真的很慢,好多人都说arduino IDE编译慢,我今天算是见到了比它还慢的IDE,>30S的时间,编译输出信息很多,想着等编译完了再看一下,谁想完了后只剩下error、warning、message等,下次要仔细看一下
    1.jpg

    程序下载选择菜单Tools下的Device Programming,分别选择仿真器(这个要选对,不然没法下一步)、板卡上使用的芯片(板子连接的话会自动识别)、接口(也会自动选择)。然后点击Apply可能会提示更新仿真器固件,直接点击upgrade,等待下载更新完成。可以点击读取电压及设备序列号,如果这两项都读取正常,那么仿真器与硬件连接正常。
    更新固件的时候电脑显示“正在安装设备驱动程序”一会就好了,这时设备管理器显示多了一个串口号(设备),有可移动存储设备出现,整个过程中开发板status LED闪烁节奏有变化,一会快闪,一会慢闪,一会长亮。这个我现在不知道表示什么状态,有知道的朋友指导一下
    程序下载8.JPG
    程序下载7.JPG

    不知道这个1MB的磁盘是不是IO plained的,但是它的SD卡明明是2G啊,难道说是linux分区的。

    接着程序下载讲,更新固件后选择memories项,选择程序路径,点击“program”下载,这时status灯闪烁
    程序下载1.JPG

    下载完成,有如下信息
    程序下载2.JPG

    看板子变化,刚开始没接IO plained,OLED上有波形输出,不知道是哪里的波形,有点像心电图,板子LED0亮
    IMG_20160611_211438.jpg

    后面断电接上了IO plained,显示如下,按了button 2后,波形消失,只剩下显示“Graph Term About”字符,应该是温度波形。botton 1打开波形,botton 2关闭波形,当我把手放到IO扩展板的温度传感器上,波形的峰值瞬间高了许多。按下button 2的时候,LED3会闪一下,LED0瞬间会闪的更亮一些
    IMG_20160611_211516.jpg


    如下是关于下载程序界面选项卡的各个界面
    程序下载4.JPG

    这里可以看到硬件序列号
    程序下载5.JPG

    关于D21的各芯片,都一样啊
    程序下载6.JPG

    如下应该是熔丝位设置相关信息,感觉熔丝位应该是atmel开发板特有的
    程序下载3.JPG


    第一次使用AS下载程序,参考了
    【AS7.0】+ 一站式实现项目开发3-Atmel Studio 7.0工程仿真调试 - 活动 - Atmel技术社区 http://atmel.eefocus.com/module/forum/thread-5910-1-1.html
    【AS7.0】+ 一站式实现项目开发-程序下载 - 活动 - Atmel技术社区 http://atmel.eefocus.com/module/forum/thread-5949-1-1.html
    程序编译后生成elf文件,这个和之前小脚丫程序使用的文件是一样的

    该工程中main程序不多,附上
    1. #include <asf.h>
    2. #include "demotasks.h"


    3. int main (void)
    4. {
    5.         system_init();
    6.         gfx_mono_init();

    7.         // Initialize the demo..
    8.         demotasks_init();

    9.         // ..and let FreeRTOS run tasks!
    10.         vTaskStartScheduler();

    11.         do {
    12.                 // Intentionally left empty
    13.         } while (true);
    14. }
    复制代码
    回复

    使用道具 举报

    129

    主题

    4

    好友

    4785

    积分

    状元

    Rank: 6Rank: 6

  • TA的每日心情
    开心
    昨天 20:17
  • 签到天数: 525 天

    [LV.9]以坛为家II

    发表于 2016-6-11 23:12:02 |显示全部楼层
    倒数第三张图中的serial number就是你板子后面的标签上数字
    回复

    使用道具 举报

    129

    主题

    4

    好友

    4785

    积分

    状元

    Rank: 6Rank: 6

  • TA的每日心情
    开心
    昨天 20:17
  • 签到天数: 525 天

    [LV.9]以坛为家II

    发表于 2016-6-11 23:21:35 |显示全部楼层
    相关函数说明
    1. vTaskStartScheduler();
    2. /*vTaskEndScheduler () requires an exit function to be defined within the
    3. * portable layer (see vPortEndScheduler () in port. c for the PC port).  This
    4. * performs hardware specific operations such as stopping the kernel tick.


    5. * vTaskEndScheduler () will cause all of the resources allocated by the
    6. * kernel to be freed - but will not free resources allocated by application
    7. tasks.*/
    复制代码
    1. /**
    2. * \brief Initialize tasks and resources for demo
    3. *
    4. * This function initializes the \ref oled1_xpro_io_group instance and the
    5. * \ref edbg_cdc_rx_group instance for reception, then creates all
    6. * the objects for FreeRTOS to run the demo.
    7. */
    8. void demotasks_init(void)
    9. {
    10.         // Initialize hardware for the OLED1 Xplained Pro driver instance
    11.         oled1_init(&oled1);

    12.         // Configure SERCOM USART for reception from EDBG Virtual COM Port
    13.         cdc_rx_init(&cdc_usart, &cdc_rx_handler);

    14.         display_mutex  = xSemaphoreCreateMutex();
    15.         terminal_mutex = xSemaphoreCreateMutex();
    16.         terminal_in_queue = xQueueCreate(64, sizeof(uint8_t));

    17.         xTaskCreate(about_task,
    18.                         (const char *)"About",
    19.                         configMINIMAL_STACK_SIZE,
    20.                         NULL,
    21.                         ABOUT_TASK_PRIORITY,
    22.                         &about_task_handle);

    23.         xTaskCreate(graph_task,
    24.                         (const char *)"Graph",
    25.                         configMINIMAL_STACK_SIZE,
    26.                         NULL,
    27.                         GRAPH_TASK_PRIORITY,
    28.                         NULL);

    29.         xTaskCreate(main_task,
    30.                         (const char *) "Main",
    31.                         configMINIMAL_STACK_SIZE,
    32.                         NULL,
    33.                         MAIN_TASK_PRIORITY,
    34.                         NULL);

    35.         xTaskCreate(terminal_task,
    36.                         (const char *)"Term.",
    37.                         configMINIMAL_STACK_SIZE,
    38.                         NULL,
    39.                         TERMINAL_TASK_PRIORITY,
    40.                         &terminal_task_handle);

    41.         xTaskCreate(uart_task,
    42.                         (const char *) "UART",
    43.                         configMINIMAL_STACK_SIZE,
    44.                         NULL,
    45.                         UART_TASK_PRIORITY,
    46.                         NULL);

    47.         // Suspend these since the main task will control their execution
    48.         vTaskSuspend(about_task_handle);
    49.         vTaskSuspend(terminal_task_handle);
    50. }
    复制代码
    回复

    使用道具 举报

    128

    主题

    0

    好友

    2378

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    开心
    2014-4-21 09:44
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    发表于 2016-6-12 09:06:38 |显示全部楼层
    好帖子,来做个沙发
    回复

    使用道具 举报

    129

    主题

    4

    好友

    4785

    积分

    状元

    Rank: 6Rank: 6

  • TA的每日心情
    开心
    昨天 20:17
  • 签到天数: 525 天

    [LV.9]以坛为家II

    发表于 2016-6-25 10:35:32 |显示全部楼层
    1MB的磁盘不是IO plained的
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-6 02:35 , Processed in 0.797985 second(s), 14 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部