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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. i# z$ n' }% ?#include <linux/init.h>' g' I1 j2 a5 q: D) E
#include <linux/module.h>
$ f1 z2 j% c. B! u# K2 }#include <linux/kernel.h>$ y0 ^' `: E0 Q) [  [
#include <linux/types.h>
& g9 X6 B! q; t3 j# o( b0 @#include <linux/gpio.h>5 T" i! ?0 g( j6 `  D" L  v7 |* Z
#include <linux/leds.h>
6 y8 _+ x$ d& C3 g- ~# j  [: W3 P- Q6 q#include <linux/platform_device.h>
  L- |' s. c: ?( E+ G0 f3 g$ n( y- F: v& D8 M3 O0 x
#include <asm/mach-types.h>' X6 m5 C; f7 Y, K
#include <asm/mach/arch.h>: u4 P8 p1 C$ s+ l9 x' R, Y
#include <mach/da8xx.h>
5 [" c, W0 @% ?/ K, c  n' c  D#include <mach/mux.h>/ F+ @  C, {' u/ z3 {

  a! }. H5 D# e# n7 m4 |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: L4 w4 w: H0 t+ M7 i# _! I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% A3 O- V. B& }8 e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 H$ X7 V+ S% `3 o6 I% t
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); a/ k  i: `& d+ T) i

4 n8 r& V8 v) g1 C/ X, U/* assign the tl som board LED-GPIOs*/  ~  ^) C$ W" o& x" r* m
static const short da850_evm_tl_user_led_pins[] = {' G  Z4 |. C6 ?( C) _
        /* These pins are definition at <mach/mux.h> file */8 \0 C% [' V% J+ L5 W
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 c  f/ k! M- K        -1
, K& o. c. p7 y# h};' V8 j: i9 C) r0 z9 p
* X& L+ Q8 a: x/ B8 a4 r
static struct gpio_led da850_evm_tl_leds[] = {4 u/ u$ j# w2 E+ B
        {
$ J  j. A! p' q  m3 P. f3 j) v' E7 G( _8 E                .active_low = 0,* L8 k3 f2 d1 }$ F2 w
                .gpio = DA850_USER_LED0,
% ~' U  ?: \( v/ \. {% w6 Q: V                .name = "user_led0",
! n& L2 J# a- g* L+ p1 c                .default_trigger = "default-on"," G- i  z$ z& W1 z& N: s; I
        },# O( p5 `  e% K5 h/ a
        {
! T. Y7 b3 ?1 b- D0 I! F4 U                .active_low = 0,3 q6 M# _. W3 t! ]8 a2 f
                .gpio = DA850_USER_LED1,  u, _2 h7 {# m% o: n, [0 E
                .name = "user_led1",7 [+ \( M/ ]% ?' q3 w5 x
                .default_trigger = "default-on",
0 U0 q. V+ v! z, ]# a" {        },' c' k4 V) O7 t( h1 ]. d+ a4 x
        {
: P/ d% Z" f: C* g/ m9 R3 h                .active_low = 0,
! y5 ?% Y5 ]0 w7 M, p5 p                .gpio = DA850_USER_LED2,
" ^: l/ Y# `; z                .name = "user_led2",& `( i9 I" ?+ ?$ g. V8 ^& f
                .default_trigger = "default-on",/ ~2 q  |4 G( f: q
        },
8 ^# i# c5 _. L, t* Q( A        {
3 p# r( |7 h, h7 M0 ^5 J7 d                .active_low = 0,  r3 }5 q+ l$ D  i0 {$ R  ]
                .gpio = DA850_USER_LED3,, `. r! r4 r) A. A+ L3 w- h; X2 P
                .name = "user_led3",
" `. q' `& v% p                .default_trigger = "default-on",8 x/ j) A( Y2 X1 p  E" V
        },5 G6 u3 m" F7 u: ^/ L9 E3 |
};
) y6 Z) A  E5 ^# ~+ K& r: a) A# [# v$ R" U' k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' O  T" y  f- J8 z3 h7 `$ J! @5 q        .leds = da850_evm_tl_leds,: G% Q) z! d2 k! D; A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& a3 ^4 r& ~2 m5 x, P};9 t9 R( Z) G4 \1 w' P
9 P. p9 z; i0 P* x3 e1 l1 J2 ~
static void led_dev_release(struct device *dev)
1 N6 C2 L& t$ Z5 s! v{# H! g6 v" r5 Q  r# C$ C
};
0 y. \& A2 f+ m# P8 n" I0 j' s' q4 L9 y9 ?
static struct platform_device da850_evm_tl_leds_device = {  H' X1 P( m7 E9 b0 D: c3 _
        .name                = "leds-gpio",
8 P; z" U6 S% E        .id                = 1,! z4 f8 r5 e* C4 X
        .dev = {1 w; v; P9 Y- q+ c, d
                .platform_data = &da850_evm_tl_leds_pdata,
9 l; O8 Z1 K. O9 q. f5 G: S0 B% ]                .release = led_dev_release,2 U! K& A! Z5 O# U9 K
        }* Q+ t! F: ~8 ?# f( @5 ]0 P
};
  C# @1 n+ S7 a% |& A# m) g9 M9 k. b1 g$ D9 _+ ?
static int __init led_platform_init(void)' N9 u, A( b& j; G- }# `
{! W8 x$ O0 S, k$ H5 P' m
        int ret;
; H3 R( u& Q: W* n5 w#if 0* w- Z5 ~1 \4 k
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' P1 h& V  K; M! P
        if (ret)' X4 ^& p; s3 _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# d+ w. O; B/ n3 m+ o
                                "%d\n", ret);/ I' H' i6 N3 L4 `
#endif
0 `% K3 ?: e: i, b) P, v$ m: z$ F        ret = platform_device_register(&da850_evm_tl_leds_device);- j% X5 d% r$ f& F5 u  n
        if (ret)
8 c# _9 B0 H  y- H5 d! g  u; A4 w                pr_warning("Could not register som GPIO expander LEDS");
. M  B+ i- u, y& w! D' i        else
. V5 n# A; a- o, \$ k7 I                printk(KERN_INFO "LED register sucessful!\n");
/ o7 k: c2 Z  R: z& k: ~$ X9 l! o+ c" |/ u8 L0 X+ l$ A, k7 e$ m5 d
        return ret;8 w; J: I; s1 R6 P' |$ x
}& }1 D) ]' ~" f- |8 }; l
" e8 O3 s  V# ^' W# p: {7 M
static void __exit led_platform_exit(void)- Q9 b% R, L: a9 Y0 ?0 o
{
- i% `. E- s7 k        platform_device_unregister(&da850_evm_tl_leds_device);" X6 N  f! ]- U% x$ d2 S' c
! ~# ^( t: D4 G' @
        printk(KERN_INFO "LED unregister!\n");0 y% |3 T5 `$ @" p  @
}' X! q0 a7 F- v. @8 A- \+ C2 O
3 f+ Q2 @! F/ z0 A/ C
module_init(led_platform_init);0 f% L* Z* U. y4 S8 _- }9 ?) S
module_exit(led_platform_exit);
* d+ {4 A) d0 X* S* L5 b
7 f2 f1 l' O% ~3 {" gMODULE_DESCRIPTION("Led platform driver");
* O' Q+ \  f3 I% y! {) |9 ~/ s7 DMODULE_AUTHOR("Tronlong");
$ D+ S  Y; g' d: y2 J5 j6 }MODULE_LICENSE("GPL");
7 s& `8 k* t) F4 c8 S9 L/ m; }! o9 W/ }' A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-4 03:33 , Processed in 0.042957 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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