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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* Q0 s' e0 z$ r: {
#include <linux/init.h>
2 }, f) `" C/ S% r. {2 X/ v- f#include <linux/module.h>
1 \: e: X) ^! v; M% Q1 r; r#include <linux/kernel.h>% ^- H) }$ W' t$ s4 W
#include <linux/types.h>
: T6 v* ?5 v! N* s#include <linux/gpio.h>- D3 b; G4 W' I; g, K9 n/ c  x# r+ ~
#include <linux/leds.h>
2 s& I/ n6 f5 [! M  ^#include <linux/platform_device.h>
9 R% l) z; m8 S# w0 a4 \& {3 D. v8 J1 @$ \# t/ `) e) B
#include <asm/mach-types.h>
3 P2 o. E8 N. \9 N) T#include <asm/mach/arch.h>
" C6 d1 |3 E* R" j1 ^  U7 `#include <mach/da8xx.h>  \4 B) |; o/ i9 {  k
#include <mach/mux.h>% c7 V7 C4 @  s, j

/ s8 }" A( O! D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ R: D' n8 x. t$ w6 J' D3 Q  I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- |" f# e; c& m5 Q$ @2 ^#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ Z/ g+ X7 Z  I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 g: w, i5 G! @% W7 S
' h0 p+ A8 {, M' C/* assign the tl som board LED-GPIOs*/
' J5 U, S; U; Istatic const short da850_evm_tl_user_led_pins[] = {
- }* _* T& K' K6 O" Z: @! W( y        /* These pins are definition at <mach/mux.h> file */
! Q$ n* g" ~. j$ @) P$ u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( ?% _& I7 F. l9 R( d, h1 S
        -1/ ^7 z# r4 P# q( X; v7 ]# L
};
- M- D( _% z+ j
/ w+ n* J$ D1 w$ C: I, }  Pstatic struct gpio_led da850_evm_tl_leds[] = {3 d' e/ u. `7 G" b7 s' ^+ P2 F; b2 T
        {+ u, p: N' b' N. N
                .active_low = 0,
. i, r( j4 `% R. S9 j. n" P  @! [                .gpio = DA850_USER_LED0,
5 L1 a! N8 [- {* @3 c8 D& A- s                .name = "user_led0",
, e! L, @, W$ i* Z5 `# ]2 g8 ~                .default_trigger = "default-on",
: @0 d$ G6 b! w+ i) f# N        },
" I8 c* i) ?1 ]2 D7 Y        {
7 y/ r2 L* t+ U# D. ?6 d7 E$ T% V$ ~                .active_low = 0,
  k% h4 d* |- ^/ E& R3 h                .gpio = DA850_USER_LED1,
; B3 y  E. X( z# S1 g                .name = "user_led1",# a% v: `+ G9 M
                .default_trigger = "default-on",
& J9 t+ L8 p# n! T: h        },
% U9 X% ]) ~' ~! W0 U' K        {
5 W6 _; A% w; f. P! O0 E7 F0 t, k                .active_low = 0,- b/ t, \1 Q4 P) x( a1 _0 ]# {  P
                .gpio = DA850_USER_LED2,$ |; l1 J! m) M+ h- i
                .name = "user_led2",
8 }( c) }* J) ?! t/ r/ Z                .default_trigger = "default-on",# M; T( ?% m! f: z' W( V' _
        },
2 G" B3 K. t. w4 u' ~4 @% c- H1 J3 l        {
/ ?' Z7 u5 ~) v/ y5 G7 O: d                .active_low = 0,
1 G9 `% a3 @6 n0 ?                .gpio = DA850_USER_LED3,4 y+ c# _2 g0 _4 a0 E( X
                .name = "user_led3",- d6 j8 S! A4 _2 M) h4 H
                .default_trigger = "default-on",  c+ S6 I8 s, u! u* m7 ?
        },- g: ^) q' v6 ]" e
};
. T# M& ^( ?: l$ n& _
7 G* p6 v1 }; M( Q* q: V: E2 qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 Q3 L  x' I( Q, |( b
        .leds = da850_evm_tl_leds,
9 l! W1 l( m' ?! W, f! ?" h6 p2 p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! g+ Y6 b/ e# S* \+ H  I$ @};8 d$ o  c4 Z* V# {; g
" M( A' P) x3 ]: i
static void led_dev_release(struct device *dev)# n. i9 `) i% j. d' |- q
{
/ _8 \: t; F& p' u) j7 ?};
, [# `! l! {& H: i' X$ N0 i3 [! S7 P: g, ^
static struct platform_device da850_evm_tl_leds_device = {
7 U: Z3 k. S+ m        .name                = "leds-gpio",: Z# d" w4 ]( Z2 D2 v4 X
        .id                = 1,& i% f* D; [. ?. N  t3 V
        .dev = {
/ ~8 t  T" u, P( Q6 H7 u4 R& s9 ?                .platform_data = &da850_evm_tl_leds_pdata,! d* M+ M0 F9 @1 {! g' M5 e3 s% q
                .release = led_dev_release,
. h0 ~0 A* Y3 i/ {% u  e        }' s4 f: m4 U! W. v
};8 ^1 a1 p( i; J) I- y- k

9 z" t: E, F, d! Rstatic int __init led_platform_init(void)6 ]+ P. I4 j. r+ i& F, P) H( g
{: v9 ^( V( }& a& S2 `" f& x/ J- [! X
        int ret;' g. u4 J$ Q; r3 S+ `
#if 0  ]( Y! g, Q% W/ G6 r! N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ c2 [. i8 H1 V9 J) A% K        if (ret)& T$ V" _' ?7 e/ S
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 q) F, Y5 r( |; ^1 d
                                "%d\n", ret);
/ f3 n4 [/ {8 @1 A) ^#endif
) g3 q+ f9 p' L0 k* K* o        ret = platform_device_register(&da850_evm_tl_leds_device);) @0 a9 U% i- {- v0 P# m
        if (ret)' m8 x, [0 |9 p0 i
                pr_warning("Could not register som GPIO expander LEDS");8 }" g4 u1 T$ `+ G8 j* r
        else1 [% K& C  F5 K6 J
                printk(KERN_INFO "LED register sucessful!\n");
* `$ D  ~# H' e* ]( Z! Y
- o" h1 u5 j' [( R& T6 N$ K, [        return ret;/ X( {, v9 g# b$ Y; P7 T3 b
}
8 s0 m' V, ^8 L9 k- j
0 @+ W) z8 b, A# L/ ]4 c+ wstatic void __exit led_platform_exit(void)8 B/ ?; G) s8 [; X0 J
{  Q( O6 F) v* l. |( D
        platform_device_unregister(&da850_evm_tl_leds_device);
6 W( d7 Y2 E, t
7 ]3 ~$ w- n6 s1 C4 i5 u" i        printk(KERN_INFO "LED unregister!\n");
" k: n+ F, R1 v$ W. B7 {$ C}* t! U+ P, H% z% Y* l
. j# z8 M0 G; l- g
module_init(led_platform_init);
8 w# I3 V9 g0 g; wmodule_exit(led_platform_exit);
* B% [8 O9 p0 j9 ~2 ~5 m' c( I6 O8 i+ Q' J0 n& p
MODULE_DESCRIPTION("Led platform driver");& Y2 A8 B/ V% l2 t
MODULE_AUTHOR("Tronlong");1 R- [& \, \6 c% f+ ?* W" q
MODULE_LICENSE("GPL");5 w" P! }% B! E. n8 V+ T1 S2 x  L

, P, G1 R/ D) J  Q" U) `* j& B9 H2 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 04:06 , Processed in 0.040713 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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