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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ g, T$ G0 l% U1 l9 H#include <linux/init.h>" O; @' E3 l# N) v
#include <linux/module.h>
, R  A9 n( }2 u0 O' K, k( V#include <linux/kernel.h>4 @( d2 F# O! t4 a4 X6 u; G8 O) Y
#include <linux/types.h>
& x9 {  y  n( O6 ^) `, p; A#include <linux/gpio.h>+ i. A/ |0 L* C8 ~$ c
#include <linux/leds.h>
$ N0 B: ^  n5 T% z#include <linux/platform_device.h>
" Z. U8 u$ a% _% t; C. H9 {: j  v* l" i$ k- E- C5 E
#include <asm/mach-types.h>2 f/ I2 @& e8 ?& a7 k+ \
#include <asm/mach/arch.h>) K* t; Q" q0 U- w# h1 t) H/ @
#include <mach/da8xx.h># w9 R- b8 t$ |! {$ I
#include <mach/mux.h>- F4 k8 o. ^5 a: P4 \5 s) S) A
6 E, m5 z8 K8 E6 p2 t8 B) e
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% G. y& @  q8 M1 H( s
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) U+ b- a2 G4 l" A4 s% A4 A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 n) X* |+ U. ?* w! ^
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. R7 B* n, e3 E% N; |, ?) i6 P  _7 t. _
/* assign the tl som board LED-GPIOs*/: T$ z( w; d3 r9 o4 E8 G
static const short da850_evm_tl_user_led_pins[] = {3 _5 a/ w9 p% i% P1 w, ^6 R* V
        /* These pins are definition at <mach/mux.h> file */
' X1 _: K$ v/ a& e6 ^% Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) f" Y. R& N4 P0 Y. R3 k        -1  o4 \: j  ^  w5 j4 l1 K! \+ U4 h( h/ P
};8 J! ~! H0 e. |# Z$ g

) |8 R( z1 u- y9 z0 ]static struct gpio_led da850_evm_tl_leds[] = {9 j3 F9 J& t+ s
        {  h  P7 C: p9 S2 c
                .active_low = 0,+ u' N$ F& ~- E
                .gpio = DA850_USER_LED0,
7 G4 _+ Q$ L8 {+ ^8 n                .name = "user_led0",
! ~& U4 E0 n  j6 u                .default_trigger = "default-on",# A, P6 K* L8 N( {# @3 Q0 Z
        },
$ ~1 r4 I& t+ r  l        {6 P$ R; [8 H6 M- h" a4 @
                .active_low = 0,* X, i' G8 k. L, _
                .gpio = DA850_USER_LED1,+ h. @! o2 Q; g/ d
                .name = "user_led1",
! T, Q+ s* m0 W, B! P# g                .default_trigger = "default-on",  }1 ~, ^: b/ ?$ }
        },4 C6 A" F/ G0 {5 Z! q6 g1 ^, D
        {
9 o1 I7 m) {4 {, E! K& k                .active_low = 0,1 H" u  y3 J9 e# L5 u% Q
                .gpio = DA850_USER_LED2,
/ R# x" m8 i- W' d                .name = "user_led2",
" Z9 ?4 ]2 w! Z  G                .default_trigger = "default-on",
. A1 O' K  a( k        },9 d5 o/ R8 Z9 O
        {+ x8 F8 f3 I0 @9 Z" u4 H# o
                .active_low = 0,
. I1 u4 O8 i5 z5 S- Z: L+ k8 M                .gpio = DA850_USER_LED3,
; a" Q8 q2 W# h& w, A                .name = "user_led3",& J' @, i, K( G0 a! ]4 W4 b+ p
                .default_trigger = "default-on",$ \. ^4 d4 |! d0 F& S# q8 p) r. Y+ g0 p
        },
" }9 T' n  \; I+ ~};
& C, [$ c9 m! I5 v8 C$ L  F+ b9 Q" b( s: L( N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. A! d; C& D4 `2 W- {5 `2 ~        .leds = da850_evm_tl_leds,
2 `0 i* o$ P& O  g& B( T# _; q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 V; p- L1 ~+ V; P4 ^
};
# U5 o2 V# T- t$ _2 w4 C- A- d
$ l% u9 g9 v1 K+ V% A) M1 F& bstatic void led_dev_release(struct device *dev)+ V" `5 V0 v( e4 @' e# O
{
! ?) M8 b3 J/ }* a! M};
. c0 S! T' Z6 q  d- [8 g4 d: ?+ a4 s) `: G
static struct platform_device da850_evm_tl_leds_device = {; Y: U2 _0 X; Q6 @# p
        .name                = "leds-gpio",) L  r: g' V! O- J6 t  `
        .id                = 1,
7 i, L6 Y* M4 n* x        .dev = {
& l0 S2 Q% ~. R5 @+ }3 X& m7 c                .platform_data = &da850_evm_tl_leds_pdata,
4 R8 s: O! c- k3 n" V* R7 t                .release = led_dev_release,
, [8 Z4 k$ j- w7 V% ]; _" {7 m0 v        }# \) T0 I. k* b8 k, q+ q( M
};' k0 e5 j$ s/ f- D

5 N/ k1 H$ T: ~& v8 Lstatic int __init led_platform_init(void)
, k5 D. @2 A- ~! b& z4 V( v{
" |; x9 W# U) A6 r& M0 L        int ret;, d8 ?2 F5 j8 a
#if 0
' H/ _, X: f6 a, z+ R% O1 h" x/ ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) H9 G& K$ z9 y; Q) q8 W7 O9 m
        if (ret)
! L! o) {9 e  O- n/ j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 d6 R3 O7 p# y8 E" t                                "%d\n", ret);
. x1 T  j) i& h! }! L#endif# s% g" l3 _. [: ]- G
        ret = platform_device_register(&da850_evm_tl_leds_device);* Q9 D/ ^9 [( {0 J
        if (ret), v, i, P: m3 g) i5 `* E' H
                pr_warning("Could not register som GPIO expander LEDS");
4 \$ Y1 k0 o/ u* |        else" s+ y$ p  Y, m- B; s/ N/ h1 ~$ U
                printk(KERN_INFO "LED register sucessful!\n");/ c' W' \' A  g* w# T! B. J: s
. W$ k8 G2 s2 g) X
        return ret;
. v3 x0 q. X2 O- W2 a0 x* G}
# r$ I3 S" M: @. L( a4 p. F0 e5 v: R3 b" l0 D9 J1 w/ G
static void __exit led_platform_exit(void)) j  [( `$ G% d; R, F
{& X* c3 P" L5 b, Z3 W3 R1 q2 z  {
        platform_device_unregister(&da850_evm_tl_leds_device);
9 R3 j$ A( `1 i  Q0 j  J& \
& Q5 Z. L( H+ A' W        printk(KERN_INFO "LED unregister!\n");
0 ^! I! T: _) s0 W/ E+ `}3 Q1 z( v3 ^: G/ V' j: K3 X0 O( L
  Q; z: c* G' K1 g: V
module_init(led_platform_init);5 L/ X3 Y, k; r0 Y/ y; u+ J
module_exit(led_platform_exit);& G) u) N6 h; S9 b1 e( Y* M" ?
6 z9 {$ T: I5 |! A) [
MODULE_DESCRIPTION("Led platform driver");1 `4 ^3 W# T- m4 e
MODULE_AUTHOR("Tronlong");
1 f7 ~  ~* F6 t: N, fMODULE_LICENSE("GPL");
5 g7 `( c  f8 J4 L, m2 b2 _2 S, ?) Q4 b% T( l5 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 09:40 , Processed in 0.038949 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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