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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 d& C9 K% p& O2 _7 H4 u#include <linux/init.h>4 e; d- w  [9 O& @/ m
#include <linux/module.h>9 `% ~$ ]! K- L: Z
#include <linux/kernel.h>$ V+ U$ ^4 P# m. q0 ~6 G; \
#include <linux/types.h>
' q2 j. j, J; \, L" n0 ?#include <linux/gpio.h>2 Q# T9 V+ P8 ]0 i
#include <linux/leds.h>  i* Y5 m- U& ]# ^' v9 n
#include <linux/platform_device.h>" v  P6 R8 b' f) q# y2 l9 ]
& n9 @! t2 R' K: T/ \8 O: ?
#include <asm/mach-types.h>
" P- k: {3 c' z#include <asm/mach/arch.h>8 X# T6 n6 F( [% u- o
#include <mach/da8xx.h>
7 N2 b/ Q5 A: Z7 m% x7 r#include <mach/mux.h>7 J% M9 q, R( l' a" `, q6 }6 }
) z% Z( S4 M$ D7 m" r. F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) Z% S$ M0 s- ~/ L' b- x" Z! G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% O8 G# O1 |, z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; Y; h6 d) N* L' R# b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), X6 H) a, H# r' F( o
* F. p  l4 q0 B2 [; a+ _
/* assign the tl som board LED-GPIOs*/2 P4 v  O  }7 G  d2 @" O
static const short da850_evm_tl_user_led_pins[] = {' X8 ^# p8 {; w% v5 N" Z
        /* These pins are definition at <mach/mux.h> file *// I0 @  d( {, O" |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," P, o3 K' e6 z
        -1
3 Z/ k& H# g6 h; u+ B' B% O};8 s; G7 W& s! F0 J& m3 {6 }1 b1 r5 c

& m# g4 D) t3 T$ D" I9 t% d, Bstatic struct gpio_led da850_evm_tl_leds[] = {
- _! p) D5 e0 m% s# ]# y( b. }        {
1 }+ e& y! K) a; U                .active_low = 0,
* U2 M0 r# Q6 i2 z0 ~                .gpio = DA850_USER_LED0,8 f& S; i( y# B! k
                .name = "user_led0",* Z' R" x4 _$ W8 F5 N
                .default_trigger = "default-on",
: C. l& r' V$ s3 v        },
  Q: A- p0 T( E6 Y" r4 c/ ~0 \) N        {1 ?. U* x% b: |+ R1 L( \
                .active_low = 0,
5 e. c+ V! {: s% U8 R$ G                .gpio = DA850_USER_LED1,
8 W8 L1 e) e/ X, k                .name = "user_led1",! j2 ~3 P% F9 |
                .default_trigger = "default-on",+ u, H) I* x! T# Y! ~+ I' z
        },
' A* i% }3 Q5 f4 [! B% A        {( V! \! l, C* P$ ~7 r; y) B  F! d
                .active_low = 0," B, G) z* A7 E0 ^4 ^5 t. q
                .gpio = DA850_USER_LED2,
4 Z# J7 H$ M+ C" a( f) E& v                .name = "user_led2",
% F! U& ^. ]& u                .default_trigger = "default-on",
' e# E9 S$ W- `( @% n; S: L. M. C        },' V1 Y& C8 |" y; _" q
        {
. J) }% T+ t0 g0 H                .active_low = 0,
6 m" f2 s3 _! A                .gpio = DA850_USER_LED3,' {4 c& o/ K0 i; P
                .name = "user_led3",7 ~5 L$ R/ z8 M! I, R* a, u; {: P, r1 ^
                .default_trigger = "default-on",
2 p# n, \) N3 }0 I        },
; f7 |5 }% P( G8 `};
' |' R% c, Q" J! a
  |9 c, l, f  p1 j% wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 b+ \, d( s  Y
        .leds = da850_evm_tl_leds,
0 A. J0 P% Y( }: B# S) i* |, z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; o$ V2 A3 ?) S. k$ q& r, G1 ?};
5 l5 J) g/ V7 l# B" P6 H, a4 X. v! h( K- e; F! q, {$ E% Y
static void led_dev_release(struct device *dev)
1 m% U; k5 k# b) R/ F9 R" A{
  z* a# _4 ~" H( f};
2 v  s/ Y. k+ W6 A. V- [' S5 [/ p) d, x* M- Z
static struct platform_device da850_evm_tl_leds_device = {
4 N5 ]. ?0 I" O2 z4 ]        .name                = "leds-gpio",6 \6 @% a8 N7 M
        .id                = 1,
8 {9 B" y" r, O        .dev = {
/ h1 H9 F& R9 G! S5 U                .platform_data = &da850_evm_tl_leds_pdata,8 B* _3 q! y& J3 b. m6 @$ J
                .release = led_dev_release,. g! F' m4 N6 l' R8 P$ a
        }, q: R9 _4 ?! ~  `4 K3 f
};
& z. j1 z5 l3 l! T( \5 o8 ^) J. F
static int __init led_platform_init(void)
+ @+ |( y2 H) t$ _' e: ^! ~+ a{# ?& @/ Y0 [$ r; n" c: t1 i& a
        int ret;
) a& x& `) c3 O$ U4 r! P/ s#if 0
! x' n' t: T. L; _1 N        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) H5 r! A( H& G- b6 o$ R) U& e: v
        if (ret)3 D4 x. y( C5 R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 [/ }$ K5 i; x$ y                                "%d\n", ret);
7 U2 }, v8 t, `# H" [# L- a+ C2 U6 I4 d8 a#endif
2 X/ |- D6 \  {3 T& p        ret = platform_device_register(&da850_evm_tl_leds_device);
3 T4 Z( C9 i4 z1 ?        if (ret)
. S# L5 M; W  c2 x. n3 j                pr_warning("Could not register som GPIO expander LEDS");5 j3 n. J# L: F0 T# s$ Y* w
        else
! m/ F% L9 n1 a( p  [. `4 \                printk(KERN_INFO "LED register sucessful!\n");
5 x* \5 y2 v* a- s! X4 i5 n( h; Q! D; A* s+ \3 s
        return ret;, u9 F+ e' _+ d1 S2 t1 A
}7 Y) S  _. x+ p  j3 Q

( ~4 Y9 {4 t; w! zstatic void __exit led_platform_exit(void). t' p* B9 A# ]  g4 e8 o+ [
{
+ K) k% v" C) B1 n  r" Y# C7 r        platform_device_unregister(&da850_evm_tl_leds_device);
& n" g2 u- t0 g5 r7 `, z; d1 r6 @4 N4 D) J7 D
        printk(KERN_INFO "LED unregister!\n");
  s, i  }; c' d$ I- E}" l! A: S8 ]9 n& c
$ T: c$ P6 W7 X3 I6 o
module_init(led_platform_init);) ~3 a% b% r8 x
module_exit(led_platform_exit);
5 m8 Z1 T! |8 E* G' Q% W9 T
% O( b1 v. J/ T3 {MODULE_DESCRIPTION("Led platform driver");
1 `, e# o; m1 e5 S" E( m; YMODULE_AUTHOR("Tronlong");/ o# e7 U( v+ h% G* K! }: n. a" g4 L
MODULE_LICENSE("GPL");
& y8 S/ I' o+ }$ Z) y' V+ B2 L* f! _( A6 [/ S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 01:41 , Processed in 0.056807 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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