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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 X" F3 a% \) {3 B( Q5 Q0 W8 _#include <linux/init.h>
! [% v$ A  e. }0 ]#include <linux/module.h>
. d: j7 U8 V9 t9 d) T) w' A#include <linux/kernel.h>) n3 L, u( t- r7 b: Q; n: S( }
#include <linux/types.h>$ f# v& L) h+ R) V4 I
#include <linux/gpio.h>
9 y! O; v5 W7 H#include <linux/leds.h>2 v' k7 C' p; {0 d8 F: l' P' W
#include <linux/platform_device.h>
# Y7 m, g8 t! M- B; d& m, [- F* I1 g7 {4 A# A
#include <asm/mach-types.h>/ x' A, ^* r+ \# ]9 E$ K7 G
#include <asm/mach/arch.h>/ q7 J0 t6 t: b) v
#include <mach/da8xx.h>/ F: g6 S5 l" t9 [& W
#include <mach/mux.h>
3 Z/ x) t- e! V$ O8 m1 z. W9 E, I
: ?; s3 X, r& S3 s0 x5 D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 u) ?/ J8 G0 C7 ?; U( l! c0 `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). m! T# u: o$ e2 z/ {$ ~
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- [* ^" {! ^6 H6 l5 s$ A  R; L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: |3 j$ E9 ~4 H0 O. @* m2 Z  g
$ F8 b( X  o7 P2 v" _0 Q6 X# C, u/* assign the tl som board LED-GPIOs*/0 Z" q) t! R0 v3 Z0 M4 H
static const short da850_evm_tl_user_led_pins[] = {6 ]6 }3 s+ X- r
        /* These pins are definition at <mach/mux.h> file */5 t& w, R0 y  T. ?9 a: M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" X/ J. g, {' \0 A) u        -1
. w9 R/ l2 |' U% R: s, i};3 V+ d6 ~! D. `/ w: T6 H0 T
' \8 n6 D4 |5 H6 ]- p
static struct gpio_led da850_evm_tl_leds[] = {
: Z: Y  N8 g) H- R        {
& H4 M2 h: k* Q; N7 A# W                .active_low = 0,0 e6 Z" T) ?* x
                .gpio = DA850_USER_LED0,$ I0 U3 a' O% a+ m
                .name = "user_led0",! I) J) h5 i  s; k7 G
                .default_trigger = "default-on",
6 z1 ^* P5 r+ F. J- }7 T' C; P6 Z        },% L  f# ?$ ?. G6 w
        {  u0 U% K; P3 x# _
                .active_low = 0,2 {" v1 W2 P* }+ X4 o
                .gpio = DA850_USER_LED1,9 ^  `, b/ I/ A9 S/ l
                .name = "user_led1",
$ ?( ~' ], |) |% D* {3 O! c. G& ?! l                .default_trigger = "default-on",% b0 h& Z  q7 ~( _' }, ?
        },' K1 L5 r) q+ t# D
        {
' n& K& ?/ R8 _( E5 ]# m                .active_low = 0,
: e+ j2 U3 C5 Q" _4 N                .gpio = DA850_USER_LED2,5 `# i' y. B5 v+ G, n
                .name = "user_led2",' @4 D' y: g) W* @! V& X+ d  D
                .default_trigger = "default-on",
# o( s& n+ |! n8 \; e% f        },  W: e4 `( }6 L3 ~) S4 c
        {
8 C  O- V5 U' I3 N0 g                .active_low = 0,# a0 y( g! m+ M* `8 b
                .gpio = DA850_USER_LED3,8 _; l1 J3 N- `
                .name = "user_led3",
, ?$ A2 r( c) b/ a1 n% K                .default_trigger = "default-on",5 o9 i8 ?! E$ J
        },
* j/ E# A- X3 m$ z& I& a};
8 j5 c9 V0 P0 `5 v( I. b- ^0 K0 w3 d
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# _4 ]4 m/ G& c( ~; W5 }5 w2 Z        .leds = da850_evm_tl_leds,
, B$ q8 J0 v' h. P6 Y8 Z7 y; {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ [$ |$ x9 H+ _* m  k) D};4 h. P- H1 G  z
0 u7 p, i  w0 A3 g
static void led_dev_release(struct device *dev)
5 i, I7 T' T+ L2 ~. O) m7 Q{
9 }! k& }* I# w4 p1 s( S! A5 J};- B2 ]) r( |" }+ s
& G, e& L' H8 z
static struct platform_device da850_evm_tl_leds_device = {
" |9 v8 C( T. v1 p3 @8 d        .name                = "leds-gpio",  z+ S8 ~" t+ R  C' c8 N, d, n
        .id                = 1,
5 c+ c- `' X: u; y$ S1 Z- a        .dev = {2 d2 y0 P& S( B$ s& g
                .platform_data = &da850_evm_tl_leds_pdata,
+ E5 I3 `0 l6 @9 {2 N6 r, M                .release = led_dev_release,
' ~7 r, L+ H9 m        }* v  M- V6 o0 A
};/ V9 l! I4 D/ O$ u

7 i: @. v2 O, i: u: Z  B6 Estatic int __init led_platform_init(void)  `# }2 X$ h1 ~: L. k9 C
{
# {. L- r$ d8 A# O1 Z        int ret;
2 k& B$ @3 Y$ I#if 0' J3 Q+ A7 [, A1 w, u# r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 i6 c8 C. k! P4 M! d        if (ret)1 [- N, f$ F2 I$ n/ F+ u: G. X' V' M
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 u% t1 F1 Q3 h2 K5 E, o                                "%d\n", ret);: G0 q! |9 s' f3 E
#endif* f/ W  i& |! k$ z
        ret = platform_device_register(&da850_evm_tl_leds_device);
( K$ e7 q) R. }# ]5 G        if (ret)
: T! a* l3 ?2 U/ V                pr_warning("Could not register som GPIO expander LEDS");
  s6 c6 ^( j0 V9 F" X( @0 z. |        else. Y6 N' Y* ~" R7 A9 i; r
                printk(KERN_INFO "LED register sucessful!\n");
+ M7 A7 _7 K0 L) o, Y' [- w& ?9 G# V! l: O1 H0 T
        return ret;
( e. N. f. G6 M& k6 ~}/ E4 P2 X- s! t' m+ I3 g
: i' k4 c; S; o1 ?3 U; f
static void __exit led_platform_exit(void)
) p) j9 f) H, G- j1 o{5 K. U1 C& Z% u( J
        platform_device_unregister(&da850_evm_tl_leds_device);
; e% R; m" ~: [- }$ L0 v
( t" B6 F/ g( j! }5 p        printk(KERN_INFO "LED unregister!\n");
# S  l0 G2 w9 p: q0 h  v0 p}
$ c; V7 L4 u  ]* X* O. u" Q8 L
! r; D3 r, a* b2 j2 e  zmodule_init(led_platform_init);
6 U" i  g2 [, l/ I/ Tmodule_exit(led_platform_exit);
9 H5 p4 M/ d! g- n( I4 |4 Y" I" ~9 k7 I
MODULE_DESCRIPTION("Led platform driver");* B% d2 Z- Y; h- C& l/ `
MODULE_AUTHOR("Tronlong");' e6 o4 l# l2 O2 H/ p: l' G% r
MODULE_LICENSE("GPL");
5 Y) R  z9 _" t" |
. v! w; W* X- f( W/ {& ^. Z& y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 20:52 , Processed in 0.061480 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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