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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! G$ a5 y( K, H! r# f$ I
#include <linux/init.h>  P% c  |3 g/ f1 n
#include <linux/module.h>
, z7 Q( D# @: X; Y3 K#include <linux/kernel.h>
  Z$ K# C! [9 w8 X4 g3 I( q! b#include <linux/types.h>
  _6 s& R, g, h8 }& O( q#include <linux/gpio.h>
+ g! \4 P% R5 J; d% E0 f  r7 B#include <linux/leds.h>
# J, m1 H" I( T#include <linux/platform_device.h>
, }0 w* V, I* b- F4 }8 V/ e
( D/ B" C2 K# R4 h  S' F& V& N) a6 F#include <asm/mach-types.h>) h5 Y4 k; b# b- p+ F
#include <asm/mach/arch.h>  V5 ]: O; V" q0 }9 ?
#include <mach/da8xx.h>& k) w2 {4 u1 a
#include <mach/mux.h>
  A# j  u8 G. J1 L6 l, |
8 d* J& E8 E" E1 [$ Z4 f( B8 Z0 a#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); n3 H% s5 T8 y. a% B! J* Y! m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' ~6 @2 U' Y* e$ B( o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 F% y! [; I- z/ }2 C, U0 J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ M( K5 ~$ U6 y% x2 j9 w$ i( L

% D. `5 Z2 m& i/ r6 n$ K/* assign the tl som board LED-GPIOs*/: b: S1 H1 e! g( J- y: U: i4 B
static const short da850_evm_tl_user_led_pins[] = {
, P& ^( X3 v5 M9 m* C, }        /* These pins are definition at <mach/mux.h> file */  t' S& d; w* i4 Y% o$ Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: g1 O4 |! a& w
        -1
: c+ z# q& n/ h  y};; A* G  L- q. P
( `" s0 w3 K' N7 U4 R8 Y" z3 K! e
static struct gpio_led da850_evm_tl_leds[] = {1 E" C/ Y! o5 j" Z6 V' c
        {
3 I+ T; \1 s' {& Z) O/ k; B                .active_low = 0,
$ O+ a* V2 l1 q! ^+ _( |, N" l                .gpio = DA850_USER_LED0,  h2 k; b) @; {2 U3 i  U& B2 x
                .name = "user_led0",
1 I- b9 P, z$ X1 `  }                .default_trigger = "default-on",* v) r7 O% g! }- h3 O! d, U
        },
( g5 J) D- _- W! P0 _- n% k. y        {
3 y7 w/ g5 ~. H6 `; d                .active_low = 0," _1 X% _* T  L: f4 z/ g7 J
                .gpio = DA850_USER_LED1,$ B5 D* B* l' u
                .name = "user_led1",# C: K- q* {. f/ ?
                .default_trigger = "default-on",
% q7 J# j: y/ [) @. D1 d        },
+ R1 [8 E' m$ c- k2 i        {
# b1 C! ~( M' Z% X9 j                .active_low = 0,( F- v, b" A+ z6 w$ M1 d* n
                .gpio = DA850_USER_LED2,; K+ ]" ~1 X+ e& _" D0 O1 a3 A
                .name = "user_led2",8 |; o1 n  c* D: M
                .default_trigger = "default-on",
$ Z6 n1 u: s# M) D! j- x1 s" n        },3 {, E9 d+ U! B+ |
        {
5 E# ~- [( M6 n5 V4 v1 G+ [4 b                .active_low = 0,4 _+ c$ w0 n! T, N
                .gpio = DA850_USER_LED3,
( N8 Z) D! D% `& K" P                .name = "user_led3",: g9 P' e& [; T9 ~
                .default_trigger = "default-on",% r& I: A0 L5 S" i7 [
        },4 W4 [  @/ S" V1 p  B
};) P( W3 u8 [. _/ [1 E  b+ a  u/ g

6 u" g" a9 _+ V6 ^+ v& ]* wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( C) u- O; }) ^. b- _
        .leds = da850_evm_tl_leds,: v& p9 M$ ~7 W& q% ^4 H5 F, C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 U* {# s) H& |# K
};% S' ], ]' o( V

% I( v5 P, y% L7 ~static void led_dev_release(struct device *dev)* b8 I& k& J$ v% I
{6 K! @* ^! q4 E* C9 I
};
" i- ]' E4 k# y+ @9 O$ `7 S
. x) V% I/ P5 f2 N% k' ustatic struct platform_device da850_evm_tl_leds_device = {2 w9 b; t; D) I% {0 p
        .name                = "leds-gpio",+ E3 B8 q# s( C6 o+ a" M6 Q
        .id                = 1,
! B( i: e7 l' F' |2 K' M        .dev = {
+ D# d) H' n/ ]% Y                .platform_data = &da850_evm_tl_leds_pdata,. v! U1 D6 P3 X- j: H
                .release = led_dev_release,
7 N: m1 a! L1 _- j' }- x        }2 g+ @) \% Z) Y. u# ]* Y4 T
};
5 c' ~5 X$ G: G7 X1 a0 i* z' ?& B& U; _9 E4 J
static int __init led_platform_init(void)
5 T- [; F( I. m, x& R( ~9 k0 |{
" n8 D1 b7 G5 l$ r4 Z6 J1 R        int ret;" @( H( e$ W1 b" E- u* o; ^/ X. e
#if 0
! t7 n) l% R2 H+ u9 r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& H; ?! ~% t- w0 g' _8 W! z
        if (ret)5 D' @; U! q; |5 ~7 K% V2 H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 O5 o& d- @3 O$ G" W1 h. E                                "%d\n", ret);
7 n3 H5 o' c/ M( m% }+ Z" Z  j1 ]#endif5 }" W( Z" a  g  @# p
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 I$ h. K" o/ R1 f5 ?% |# A& D, C; L        if (ret)
8 O& l6 U3 V! z; N1 a* E                pr_warning("Could not register som GPIO expander LEDS");2 \/ l  Q4 G$ M' g
        else* A: t! T2 D  M. x0 _) |/ p
                printk(KERN_INFO "LED register sucessful!\n");
1 G' x9 ^' H0 f% @: \5 T( r2 _1 Y; V
        return ret;
  U+ O, E0 w/ ^' ]+ ~7 R, \}
  r( T4 B# V$ {' P9 _5 I/ D; j" x: z$ a
static void __exit led_platform_exit(void)1 F6 K" B6 M3 m8 {9 ^* X9 L  B
{/ ?0 n  i' G3 b+ {9 v& b# |
        platform_device_unregister(&da850_evm_tl_leds_device);
& m( [5 P" K5 N1 H0 Q) w! R/ J
* D5 C! o! Q3 L/ a: X        printk(KERN_INFO "LED unregister!\n");
7 r* ~. m- B" Y" L, K}
5 J! j. ]  D& H" P# f1 h# K- V3 Q* B
module_init(led_platform_init);& g2 u. P" `, \1 o1 L  d9 m
module_exit(led_platform_exit);
  {* A. z+ I( k" I: I. J8 [( Y7 {! I! S( s% {8 g
MODULE_DESCRIPTION("Led platform driver");( r/ [! }4 G* R
MODULE_AUTHOR("Tronlong");
2 r: a; v8 x. U; v6 f" n$ J  GMODULE_LICENSE("GPL");
7 ?& X$ u+ k& ^7 ?
2 {2 P! X. u# `  Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-9 22:24 , Processed in 0.047541 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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