2982|0

5979

帖子

8

TA的资源

版主

楼主
 

Altera SoC 的第一个应用程序--点亮LED [复制链接]

 

LED_Blink_project.zip (10.81 KB, 下载次数: 33)
  1. /*
  2. * Copyright Altera 2013
  3. * All Rights Reserved
  4. * File: hello.c
  5. *
  6. */
  7. #include <sys/mman.h>
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <sys/types.h>
  11. #include <sys/stat.h>
  12. #include <fcntl.h>


  13. #define MAP_SIZE             (0x20000)
  14. #define MAP_BASE_ADDR        (0xFF200000) //lwAxiMaster Base Addr
  15. #define LED_PIO_BASE         (0x10040)
  16. #define LED_PIO_DATA_OFFSET  (0x0)


  17. void usage(char * executable){
  18.     printf("Usage: %s <munber of blink in dec> <blink period (ms)>\n", executable);
  19.     printf("Ex.): %s 100 250\n",executable);
  20. }
  21. int main(int argc, char** argv)
  22. {

  23.     int fd;
  24.     int i;
  25.     unsigned int *mapped_ptr;
  26.     unsigned long int num_of_blink, blink_period;
  27.     printf("\n\n LED Blink Demo \n\n");

  28.     if (argc != 3){
  29.         usage(argv[0]);
  30.         return -1;
  31.     }

  32.     num_of_blink = strtol(argv[1], NULL, 10);
  33.     blink_period = strtol(argv[2], NULL, 10);

  34.     fd= open("/dev/mem", O_RDWR|O_SYNC);
  35.     if(fd < 0){
  36.         printf(" failed to open /dev/mem\n");
  37.         return -1;
  38.     }

  39.     mapped_ptr = (unsigned int *)mmap(NULL,
  40.             MAP_SIZE,
  41.             PROT_READ|PROT_WRITE,
  42.             MAP_SHARED,
  43.             fd,
  44.             MAP_BASE_ADDR );

  45.     if(mapped_ptr == MAP_FAILED){
  46.         printf("mmap failed\n");
  47.         return -1;
  48.     }

  49.     printf(" blink start \n  %d times \n  period = %d ms\n", num_of_blink,blink_period);

  50.     for(i=0; i < num_of_blink; i++) {
  51.         mapped_ptr[ (LED_PIO_BASE + LED_PIO_DATA_OFFSET)/sizeof(unsigned int)] = 0xf;
  52.         usleep(1000*blink_period);
  53.         mapped_ptr[(LED_PIO_BASE + LED_PIO_DATA_OFFSET)/sizeof(unsigned int)] = 0x0;
  54.         usleep(1000*blink_period);
  55.     }

  56.     munmap(mapped_ptr, MAP_SIZE);

  57.     close(fd);

  58.     printf("\n done\n\n");
  59.     return 0;
  60. }
复制代码


此帖出自Altera SoC论坛

赞赏

2

查看全部赞赏

点赞 关注
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表