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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 y7 v& T5 {: |  f8 N+ y0 Q; ?#include <linux/init.h>
5 q: `  N" o" V7 I+ k% x" O3 R#include <linux/module.h>
; H0 f4 ^. k) z9 X: S#include <linux/kernel.h>% `: U  S: k8 ]+ [  Z. x7 c. Q
#include <linux/types.h>
7 o: T5 X' U' ?9 P#include <linux/gpio.h>  o/ S3 W: P& r- o6 s+ Q
#include <linux/leds.h>' J+ K6 P% u8 }/ ^$ p
#include <linux/platform_device.h>  ?2 V& [9 P* P# g7 v

4 z! L* S/ X+ u5 T#include <asm/mach-types.h>
6 e5 w$ J' {! {  @: o$ w* A3 o+ \6 F#include <asm/mach/arch.h>; [: x* k1 X! u) o9 U  E4 H& k
#include <mach/da8xx.h>
6 f7 I0 n1 u# e) `- l: N4 A. H#include <mach/mux.h>/ y% l$ @, e  r* Y6 C& ^1 j

8 m1 f/ L' e7 }  z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 D' t( u! A- {6 h
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 D( [: j4 b2 A) P#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ S6 U. c( |: K5 B, \" H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). s- _) s5 b) V7 m

+ O4 A! B! m0 A2 x/* assign the tl som board LED-GPIOs*/
) W3 ]+ V5 Q- N! B4 N: estatic const short da850_evm_tl_user_led_pins[] = {
9 V- ?  ^4 n' ?        /* These pins are definition at <mach/mux.h> file */
' K% ^9 ]9 z8 t% U' ~        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 j. O7 w* B0 F( S) d        -10 t; Q6 @, D, S' k' \. {* j) z
};
, D) }1 U- H) u$ f" Q& N: [
7 J0 J9 a6 \3 \3 R7 Y/ astatic struct gpio_led da850_evm_tl_leds[] = {
. ]( A1 r1 F! n2 x; E# v        {
/ L7 X" I7 m( ^$ g0 V                .active_low = 0,
/ a6 b9 H( o8 H! z2 k- g                .gpio = DA850_USER_LED0,! a( u; I  ^0 E) k3 g1 Y
                .name = "user_led0",3 ?3 @9 ]# ]0 d* [0 ?
                .default_trigger = "default-on",. y5 C) N$ m. E2 N2 ^  a% M* c
        },
) }% K7 W0 W& t& l5 I  S9 S: b        {
& `; W8 i2 r  N% ~8 \: l                .active_low = 0,
: _! N) G# M4 g' I; [' i                .gpio = DA850_USER_LED1,# i% A; C- |) K1 b2 u% n2 t
                .name = "user_led1",
) D! }- ?* v8 C+ ]- T: T. ^                .default_trigger = "default-on",( C# j* q/ B+ y2 V& ^
        },3 |6 }# R+ |+ B$ e! p: }: W
        {. q  X( z3 u8 @
                .active_low = 0,1 d1 j- g' Z* g0 V: c. \
                .gpio = DA850_USER_LED2,8 A" A7 z* i/ _- k6 Q' j5 S
                .name = "user_led2",: a' i7 c9 c- M
                .default_trigger = "default-on",
" l$ ]0 }7 `" p  T        },
4 ]5 z  J0 ?+ c        {
9 i2 d% d+ S( ?: T1 h/ u) B/ R2 v- b                .active_low = 0,- j) x% e3 l. y; \1 x" l& p
                .gpio = DA850_USER_LED3,
# `; O0 L% c. P% w8 I                .name = "user_led3",
3 X, S" `7 M( ~                .default_trigger = "default-on",+ o+ O  V$ T8 z+ ^* M1 Z% }
        },' \' J0 f/ z9 j6 k, E; d
};
+ G6 q, R) }: D" T
# L0 M+ H) ~% `& X2 _/ Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' i0 E3 j$ L- R
        .leds = da850_evm_tl_leds,
0 y- e& u' D' L/ Y: v        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 V+ P1 G9 g, M+ e) C' q
};
  F/ [3 e6 s+ l% Q+ G6 @! O, r2 i/ D! E: W
static void led_dev_release(struct device *dev)
/ @& |6 h" i& d+ u" J/ k{, t+ v: P$ F0 S% j! W1 e* Y
};9 G- E# D' ^& z/ o' t& p) m

1 [* W( J9 o7 lstatic struct platform_device da850_evm_tl_leds_device = {
1 K6 ^) S( W% H$ q! R8 }  ?, z$ @4 r- _        .name                = "leds-gpio",
( _5 u- j/ A0 C( k- ~2 n        .id                = 1,5 t- Q2 h2 w8 I- T, x
        .dev = {0 U1 ?) X! _( m$ W4 {
                .platform_data = &da850_evm_tl_leds_pdata,
4 r# s. G# D* |' R2 F) E4 w                .release = led_dev_release,
, U! J/ `# v7 P# ]7 x; g        }
( R: |5 P1 T; c% p* q};7 P5 W4 _% R+ m6 f+ T

% K- \( B5 u  D! {8 Z# Z0 z5 mstatic int __init led_platform_init(void)9 e" T; t2 u! C' H+ F% s
{
  M; O3 y8 x& o4 ?        int ret;
) |" W. e3 H. `4 W; E#if 0
7 s) U7 P* H( l( _5 m4 a" f        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 h# z+ Z- ~( V7 a7 C
        if (ret)
' s# f4 L( a5 E( J  F9 k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' F/ r( K( `6 c7 S                                "%d\n", ret);2 j* u1 K+ g" A# a
#endif9 h4 g' k% o. y1 Z
        ret = platform_device_register(&da850_evm_tl_leds_device);
( n; ?# r4 \# m/ @        if (ret)
* e& M' l4 G) a, N5 a; E                pr_warning("Could not register som GPIO expander LEDS");6 o) _5 I# _  \1 Z! E! o
        else$ U3 [" l; n# G0 p/ `
                printk(KERN_INFO "LED register sucessful!\n");
7 x' y! t8 W" p$ D/ f/ X* n! l& f1 G7 L9 p7 U2 B
        return ret;
9 g; r- `& Q# V- o}
3 Z9 g: w0 E/ I# ~5 E+ s: g; t7 e# s% [# T8 O9 I9 w
static void __exit led_platform_exit(void)4 [& U% m" R/ F. o# K% D
{
9 O. F% K; B- z- c) @- P6 @6 b8 x        platform_device_unregister(&da850_evm_tl_leds_device);
( _2 ~' n( `" {1 b( v1 k- g8 X" V9 R( Y& P# c5 X
        printk(KERN_INFO "LED unregister!\n");
8 E/ Q7 C# L3 u! J5 T+ `/ l}
3 G9 C1 a" X, v& K% j
# L  o3 ]6 X9 v. Y/ H7 ?, _; Pmodule_init(led_platform_init);
5 ]* ]+ N& S, D/ wmodule_exit(led_platform_exit);' M( l  s( \) v3 g
5 K1 r* W2 M) W- }
MODULE_DESCRIPTION("Led platform driver");
; i7 K* a# F, T; e5 `9 E. xMODULE_AUTHOR("Tronlong");9 w! D- A" s5 `# k( l
MODULE_LICENSE("GPL");
4 _. q& M& P: R, Z! a0 G3 @2 e$ [& }8 Q) N( e, i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-8 05:17 , Processed in 0.039268 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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