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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ X+ ?* C; P2 z' K  ?+ D! A
#include <linux/init.h>
$ s# ]+ m5 x8 x4 b4 ]; f( D1 l+ O#include <linux/module.h>5 A  {7 x) b1 t& ^1 b
#include <linux/kernel.h>
% ~! g/ O7 b) V' K, h* p#include <linux/types.h>
  H  s+ K! ?; I* }) @5 B#include <linux/gpio.h>) q& Z: v* j. o5 I% T5 t7 }+ w8 p( J
#include <linux/leds.h>- Q% u! q! l+ o+ h8 [
#include <linux/platform_device.h>+ X  c! H2 s/ G/ `7 P  r, F/ ~
3 |2 d/ ?2 K$ |- G* b# X$ _2 Q
#include <asm/mach-types.h>
# x; g6 _4 P( B# K* _+ _9 T. G7 q#include <asm/mach/arch.h>( M; z9 B6 o4 u) C  ^6 Z) v
#include <mach/da8xx.h>. P: O: f) v" F& ^% F
#include <mach/mux.h>
  j3 \  y' N4 O" U
" W9 n- l& J( Z1 A/ z2 Q0 r3 D5 J#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 E4 W( x9 K' a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) B  T4 a+ T2 P7 r( S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ C  |/ o" ?$ I; E  y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 t, Q' w& y* U: O: f

1 E: Y5 s& `" c  o* V/* assign the tl som board LED-GPIOs*/6 t% j! t$ J8 w" R' Q$ w  d' H
static const short da850_evm_tl_user_led_pins[] = {
: c8 B2 }- A; k8 @9 D' r* F        /* These pins are definition at <mach/mux.h> file */' L+ P, P% U( k" y3 ?
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 @7 t8 J) i5 i8 V! p        -1
, E7 I" a% o) `& ]) i9 [4 @: a8 o1 l};4 j. R. S# M" h/ Y4 ]! c6 a1 F
4 [  f* b' G9 E! a
static struct gpio_led da850_evm_tl_leds[] = {6 {- t! D; X! I" r' q+ D
        {
' H4 n7 F  i7 y" u+ W" Z( s3 d                .active_low = 0," f7 n. ^+ A% N5 u
                .gpio = DA850_USER_LED0,. t! W! X6 n. F0 y* G/ E3 _: @. e. p9 L
                .name = "user_led0",3 J$ H4 m; T& k5 Z
                .default_trigger = "default-on",0 o+ S8 }7 Q* T
        }," B3 r% F- |! S1 m0 z3 e! D) o
        {9 N7 s+ F; x$ _+ f$ c8 \8 ?. y, j
                .active_low = 0,
0 H1 r* A- T9 p1 R5 \                .gpio = DA850_USER_LED1,
" Z7 z* f. u) n3 j1 c1 }                .name = "user_led1",
6 W, |( H2 D! T3 I& F* ]                .default_trigger = "default-on",
7 i% x' ^0 L+ }+ h/ x        },) j* [" D9 N3 L2 J; t
        {
+ G' w  ?: S  O5 S                .active_low = 0,
2 J; L, Z8 O3 J6 A" [4 A2 B7 U                .gpio = DA850_USER_LED2,
- \, c' v/ ]7 E  q( |+ S5 V                .name = "user_led2",
" ~; c3 Q* B0 K/ F. V7 P5 g0 N  P5 G' U                .default_trigger = "default-on",8 S3 J3 k" X5 F( @
        },0 o# l  @$ R/ k. p- e% ^. {/ f4 }
        {
7 I7 N6 R) ^3 t6 `! M                .active_low = 0,
: j. w# }/ A: C9 R( A                .gpio = DA850_USER_LED3,
& [1 c+ w! C$ v& @5 k+ z3 m                .name = "user_led3",
- l( |7 b9 A1 Y/ q- A' W) n% k2 h* s                .default_trigger = "default-on",3 M" O& q: j0 B. F
        },# y# u% I; K" {4 @0 d( B5 B' a
};8 ]& ^4 A" d6 z" v/ C/ m7 y' W
: r9 G1 Q# b% Z- o! Q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ k3 r8 f. |: M3 c
        .leds = da850_evm_tl_leds,2 I1 {/ c6 X& Q0 X+ ?& N; g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 J6 U0 y; x/ D2 r( i};3 b* N& K* l1 h! T
9 R6 O# ^9 `" X* K7 ^
static void led_dev_release(struct device *dev); j: K/ Y- n; u! c, G$ N& m! y
{
* F7 j$ X5 W1 d1 H; c};. b2 V- [" T( Q" L

% }: H2 e- M, i# u& b6 ?- j) g/ tstatic struct platform_device da850_evm_tl_leds_device = {
' e* n5 H/ r+ R- R4 s$ j4 @' v        .name                = "leds-gpio",
  [6 K2 Q! j# b. a6 n; g- v3 p7 l        .id                = 1,
/ W! [( {  x2 Q* g( r- j' E8 P        .dev = {
" ]% v5 Y$ D1 g& \- I7 m1 }! `                .platform_data = &da850_evm_tl_leds_pdata," H  L, c/ u- o& U2 F
                .release = led_dev_release,
% M" O& I3 p; I% A5 x' O        }
1 o6 A( f) w5 N% p4 }};/ @1 N: ?; E6 i

2 k5 v9 o/ g7 E/ Jstatic int __init led_platform_init(void)
* R, A8 t* ~0 C2 i5 x# u{( f) S+ s& d! h6 y+ B' y# U+ v
        int ret;
" f. P* z* U# \# Z4 y+ F! c#if 0
1 |; u; H/ q6 a: Z& O4 r+ g- S        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- s% y' v3 |! F6 i+ q$ |        if (ret)
) H% ^0 V- b. t9 k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, m, f6 ^3 y. I, _3 i0 B                                "%d\n", ret);3 s7 w: e* {$ |5 i4 K+ X& N
#endif* f5 N) u. b: T/ g9 k
        ret = platform_device_register(&da850_evm_tl_leds_device);3 E' y0 g( h! |% ~! j# p
        if (ret)7 T  D$ {) L+ M- P6 N
                pr_warning("Could not register som GPIO expander LEDS");: Q# O, a* x  V( A# E
        else5 J: W* _' N7 M! U/ k
                printk(KERN_INFO "LED register sucessful!\n");
3 Z; t0 J* j  }/ f
; }  a0 P1 w" o        return ret;
1 Y$ d/ ^/ X3 T; C' H* E! E/ d5 i}
- n, B9 P8 \6 |: U
( o9 a4 d: }7 k- o# Lstatic void __exit led_platform_exit(void)
% {2 a8 r: O  @{8 S% w$ s5 H* D
        platform_device_unregister(&da850_evm_tl_leds_device);  J* \, a; H; M  P; W3 k

  B& t4 _0 u2 d9 k, T8 u* B4 t        printk(KERN_INFO "LED unregister!\n");
, {5 R4 W! R5 h) W) t3 B# l, g4 M}
# `" e% n1 Y& @; i
! S' c' p) ]3 h$ P( Nmodule_init(led_platform_init);
. `9 {% }$ }; u$ amodule_exit(led_platform_exit);
0 ]$ p; P  ~+ F$ j9 K
9 i; m# w3 L" M6 J' mMODULE_DESCRIPTION("Led platform driver");
+ V- w8 C( m. W- K9 Q; H0 ]MODULE_AUTHOR("Tronlong");
$ |/ [0 P  t# E5 d7 p: }2 JMODULE_LICENSE("GPL");0 L# b) E" Y. z8 Y8 u* @

. ^1 N# b. l3 ~7 A, }- y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-9 09:20 , Processed in 0.041125 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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