程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11258|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& Z+ u# G# x- m' p2 B$ n
#include <linux/init.h>
& y2 H: Y3 a# K+ x% g#include <linux/module.h>
1 z: W; U# v2 b* B9 Q/ @1 K#include <linux/kernel.h>
- a$ h2 P* q9 h4 ]8 s0 i% i! s#include <linux/types.h>
$ n% Y6 {& J) a6 m& }4 u#include <linux/gpio.h>
0 W9 e( Y: r1 R- t#include <linux/leds.h>6 x& P; o6 o- |9 \  L
#include <linux/platform_device.h>9 c0 r) L" e6 x( ~* N; Y: v9 c
( @; j% F3 X) D+ r
#include <asm/mach-types.h>
# ?. G/ Y1 I, }#include <asm/mach/arch.h>
. D$ y- F4 b# R7 y8 y#include <mach/da8xx.h>% |! M2 ~: ]  w( I
#include <mach/mux.h>
0 _# t4 c  N0 g0 R6 S. d" C3 I9 Y1 B4 @) z2 i5 k8 V# E
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' g5 B3 c: g$ D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 e; G1 R* F: Y+ _2 J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& @# L& q. \; e& M3 @" n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 o  e: P. q3 x, ?1 D# \  F" o8 y
: \0 D+ }7 ?" z3 [; r3 S" m' E/* assign the tl som board LED-GPIOs*/
" X( Y( G& L3 w" Estatic const short da850_evm_tl_user_led_pins[] = {
$ s/ d/ ~: ~1 H. o2 n! B8 W' a0 n        /* These pins are definition at <mach/mux.h> file */6 u% W% B; P. _. H, Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 x. y6 Y. j+ O6 s. u- |$ O4 {
        -1
3 X" ]6 x4 ~9 t};- ?0 I4 k" U5 L) z! C6 P' |

  v; V# G' |1 }5 t& E+ O: l; ~; i! gstatic struct gpio_led da850_evm_tl_leds[] = {9 i1 \* j7 g. w6 x  z( l$ L* B" W; \
        {
4 `: k) C7 }+ J! I                .active_low = 0,2 F- X% z# N% W( c: T8 z+ m
                .gpio = DA850_USER_LED0,
8 U2 v5 d9 l, g" [                .name = "user_led0",' U# Z) D# W/ i( n3 c! Y
                .default_trigger = "default-on",! y2 O: R; ~' ~% S3 E& g
        },) \: E  T. F" }; z. }7 F) `
        {
8 j/ ]' L; K# g" k                .active_low = 0,
( Q0 J. [3 [% a0 f                .gpio = DA850_USER_LED1,
& ]: b% R1 q/ k% ?& G% d! e                .name = "user_led1",
, D, U4 r6 h3 w5 x6 d' \% X. q/ t1 ~                .default_trigger = "default-on",
" T$ ]" O% i' C! R" h7 @- h. l2 p        },: b& A. b: |4 d4 d" n# `
        {
# M" y1 e2 C4 Z" A                .active_low = 0,
6 t% R" H+ Q( g9 ~                .gpio = DA850_USER_LED2,
: U7 ~/ v/ _# K. ~/ ?                .name = "user_led2",
. Z$ n  ]6 X. {# H                .default_trigger = "default-on",' }) q# J; Y3 F7 l9 P9 G. ]# v
        },$ x4 V( C8 q$ _; k4 L+ L
        {
: C4 `$ X: G) i+ Y7 B3 R2 G: X+ t! G                .active_low = 0,9 R6 R$ ]* f& w% b2 m1 W  Q
                .gpio = DA850_USER_LED3,) l, Y9 `* V4 N5 W! E
                .name = "user_led3",
9 U6 `+ |8 n' d6 L" }% I. \                .default_trigger = "default-on",
4 h$ W0 N: x' }. I        },
) E& [3 S0 v- A; {2 f6 {};# o6 K  o6 q6 W. q7 c9 x) Q
# G  f8 M+ n: l% p/ z" \5 a# W* ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! D9 w' u0 P9 K7 P0 O$ N        .leds = da850_evm_tl_leds,
: y7 m5 o3 k" U2 P% }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, A1 S; n: B& N! W7 Y};3 L' u2 {3 `' C0 F2 B' d
% {0 x7 s+ ~) H
static void led_dev_release(struct device *dev)" D" \0 o9 [% O3 [, N# N
{# i2 P* j0 n+ X: p. n. T2 [
};  ?) I& K: _/ n

$ F5 u- n  j, U+ W+ J9 Wstatic struct platform_device da850_evm_tl_leds_device = {* y4 d1 O4 i! ~" c1 `
        .name                = "leds-gpio",
, ^! X9 V7 f9 c; b) ]3 H. m0 Y        .id                = 1,
2 P+ p  n" ?3 W, R        .dev = {
  C" ^3 q# a% A! m                .platform_data = &da850_evm_tl_leds_pdata,
# @, K6 @1 D5 B: n9 ^+ O                .release = led_dev_release,; c. E7 \1 }- }4 R& W
        }
8 I% m- I) e9 u5 @: a};5 I0 s2 c& T+ `2 O8 p2 P% i% s
5 D  f* a; p1 C5 \
static int __init led_platform_init(void)
9 n& ^7 b' X. e3 t{
. T3 P/ t0 X+ v$ P! n: T9 H( E        int ret;1 Q$ s: Y# b5 e
#if 0' ?( _# S+ V' s( G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 k3 \+ p2 l# p, v) i2 Q, w3 M( I
        if (ret): P5 ]" Y' G# f* [* j1 N/ \* m0 k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 J/ E( D- j3 Y                                "%d\n", ret);
" ?' c4 V0 s' p' ?#endif
8 {$ H+ P: c# P        ret = platform_device_register(&da850_evm_tl_leds_device);
5 O4 o! v8 h* f: i1 v        if (ret)
0 ?5 v" [) O9 o9 ^- j                pr_warning("Could not register som GPIO expander LEDS");
2 n8 b: b; d0 l        else
% @  i) ?8 j8 @$ M3 e                printk(KERN_INFO "LED register sucessful!\n");
) h% U  g" c2 ~5 O
5 l4 c4 [2 A' h2 F3 R3 |" Y        return ret;
' p+ H+ K1 }5 ^* O+ b2 P9 V}
) P( c3 j3 g9 S, r  p$ V: W! m% z9 A9 u  p# y! p# K& f& m$ Y
static void __exit led_platform_exit(void)
3 r1 @. B% }5 e{9 b; {2 S/ W6 B  b7 l
        platform_device_unregister(&da850_evm_tl_leds_device);$ D$ a5 ?3 z; ?0 C) S% _6 \
7 Y! \. j6 W; V" Y8 Y. d  r' M
        printk(KERN_INFO "LED unregister!\n");/ c0 V: W$ ]" x2 d* K
}
$ b( ]+ t0 t8 i) i! D8 f
  G2 e" \5 |+ q! i9 zmodule_init(led_platform_init);
  x9 @( s# j: x3 `; I, C: p4 tmodule_exit(led_platform_exit);
2 _: l! }4 U9 Y' w' |; N5 G3 W9 p1 w- U( Y$ d$ i
MODULE_DESCRIPTION("Led platform driver");6 @) Z7 v6 A; J' A/ {
MODULE_AUTHOR("Tronlong");- n% a+ c* ~) B( _7 V
MODULE_LICENSE("GPL");
" t% D1 [- x  X  m. X( S4 H% u8 @6 |5 c( s  n2 a! r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-5-7 15:39 , Processed in 0.046407 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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