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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) H  ^$ ?( y1 l; E+ ?3 c' J#include <linux/init.h>: o" c6 T9 x' }+ i% f5 P
#include <linux/module.h>
/ Z+ e6 Z2 }5 A# q#include <linux/kernel.h>: ]% `, v- t- ^3 H: M- F/ e
#include <linux/types.h>
! y4 {& @! p' |& w4 Q; N6 m/ W#include <linux/gpio.h>
7 ]* o- P2 i) ?7 `  C0 K#include <linux/leds.h>
* B/ _  O) m6 \#include <linux/platform_device.h>
' C, A& y0 w6 q1 J$ n% a- [, c8 t4 l; b9 g
#include <asm/mach-types.h># i5 d; o8 C* N4 w' _; V) I
#include <asm/mach/arch.h>; d7 ~( e) M9 u8 G3 s8 i
#include <mach/da8xx.h>
# {$ o0 q0 \6 }9 F) `" M+ o$ F#include <mach/mux.h>
6 B0 j. F5 h1 z: a& F) r- N+ Q( o- J2 [0 O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): G5 d: {. T( K2 [% v7 {) k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 t/ R  s- q1 `
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& q3 Y2 F. M  m5 f0 \+ C
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): w4 k' T# e& c0 X3 I" H( M; c9 v

9 ]$ n2 W, }. z4 Y/* assign the tl som board LED-GPIOs*/! T0 v) V; T: `2 T0 x. R  d; }9 T1 {
static const short da850_evm_tl_user_led_pins[] = {! [9 q* y) |; b0 G1 Q5 Q
        /* These pins are definition at <mach/mux.h> file */; A( ]' g6 r0 Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 e$ f% ]" k% T2 j        -1
1 @& z6 p7 X5 m$ v) {* H. k};
* B' P# C+ U5 w6 T  z5 @, [. S7 a. P8 p: a  a! F
static struct gpio_led da850_evm_tl_leds[] = {
0 _2 C3 [  v7 c# A  O# c4 y0 R& w        {3 U! H/ y& C$ G7 S7 j# i- Q
                .active_low = 0,
% l9 H% @+ u0 w, \* |* ^! Z                .gpio = DA850_USER_LED0,3 Z7 N. M0 t3 n
                .name = "user_led0",
0 W8 K5 a# b* d9 _& D3 t# b* {                .default_trigger = "default-on",
: T6 R: _# {7 h0 [/ q  q        },% C' ?* b8 A5 j& x5 o# K
        {$ P- m: p1 e- J" }7 K
                .active_low = 0,
9 o  t5 O& @3 z+ O% |2 x. P                .gpio = DA850_USER_LED1,' Z. {1 G$ _6 Y4 n. h; d
                .name = "user_led1",; v: D: g- H5 Z5 P+ B+ X7 b
                .default_trigger = "default-on",9 S: A- U5 ]( r( {& M: _' E8 O
        },* j! r# _: C; d. {
        {
  S7 Q# g, h0 w7 ]                .active_low = 0,, o" ]8 F7 Y8 R6 z! s
                .gpio = DA850_USER_LED2,
7 ]& B* |1 Z+ R; k                .name = "user_led2",8 `( O0 w5 E2 @% `7 N! Y- Q, ]. U" q
                .default_trigger = "default-on",8 _! ?$ R& W; `0 A
        },
7 R7 j( L4 q2 k0 [4 L( i        {- K2 {' e/ l9 D6 `6 r. r8 I
                .active_low = 0,% z8 u& t  I- E, {3 P
                .gpio = DA850_USER_LED3,
1 ]6 Z) L& i% x5 [                .name = "user_led3",8 s; F3 T7 U$ B( K0 |+ w4 s% d
                .default_trigger = "default-on",; a$ x9 z+ c. n- v0 K" Y3 ]
        },
; q1 g) E9 c" E; o};$ p# x5 U# I; u' b' k$ D
) L" Z' u5 J" Q& z* g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 f: i5 D& s* z% Z# C' l        .leds = da850_evm_tl_leds,$ T- [$ `1 ?+ v0 y3 b( X3 M( R( {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! }% t! H( v2 \: V3 K' F' k};) b7 R  n4 v5 M2 r
! M+ y7 o8 ^2 C5 |
static void led_dev_release(struct device *dev)3 ?0 E3 ^4 F# K6 ~* `. n1 t- [: L9 K
{
9 g1 w+ P0 M0 A6 W8 t};) {- p8 C; Q8 d$ x9 f7 ^8 {
% o+ ~5 K3 d/ K! ?" _* E! E  b$ H2 W
static struct platform_device da850_evm_tl_leds_device = {( c: z; N' f& t4 T
        .name                = "leds-gpio",
* h3 |7 h" Y4 x+ Z0 L6 D        .id                = 1,) n1 m$ y6 [# N7 s" ]1 U
        .dev = {
" U% B0 w- I4 J8 J. c$ d, }- T                .platform_data = &da850_evm_tl_leds_pdata,# q$ r" ~. e% L5 T8 r, M
                .release = led_dev_release,
" D9 |; g! }" e        }  c4 C3 q0 A! K; H; E
};# |! t  I* f0 N, B9 P
. h* {% B* T, l9 j
static int __init led_platform_init(void)  _- u  P) y( H- i
{
4 p- n# \4 y( k        int ret;8 M' x! q* ]& O9 S( P2 a% c9 n
#if 05 y" W/ W  S5 i; N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  w- Q8 s8 F# [3 k        if (ret)
  v- A+ g, c( t2 W5 W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": I3 }/ y' r3 e" `( T. T
                                "%d\n", ret);
$ `! ^6 V9 U! K+ r3 p#endif
$ u5 J1 J3 C7 f8 j        ret = platform_device_register(&da850_evm_tl_leds_device);
" f' K8 w6 z& K  s5 i, i        if (ret)
5 ~# X" o0 o6 B' ^' o' B                pr_warning("Could not register som GPIO expander LEDS");
5 M8 R3 |0 L) h7 p* z1 J  j1 Q        else$ p# B9 y: D9 [: x
                printk(KERN_INFO "LED register sucessful!\n");  d: @0 B4 l' p9 j
# F  f6 ?5 R8 R% Q1 \
        return ret;
7 z' ]4 n& ~% l" x, w}4 N. w8 n2 J' n" p
. V/ G9 N+ d3 U
static void __exit led_platform_exit(void)
. a4 n0 p" f2 j7 H3 Z{
; B. Q4 |7 M9 h: m) b( |9 ^9 A        platform_device_unregister(&da850_evm_tl_leds_device);5 S* j, B4 p; _, `! K

' e" B- y3 P: ^/ ?. i2 e        printk(KERN_INFO "LED unregister!\n");8 \6 Y5 j4 Y' O2 Y  A
}
& @6 y0 c- J  w9 t9 A, D' N" N/ B8 n& R3 d* }0 J0 ?, w, Y. d
module_init(led_platform_init);
' I/ U- D& u3 V2 D' _1 }  ]module_exit(led_platform_exit);% ~/ b; k5 h  L8 ~, o6 n" @
& n! E$ ?& r( V, g* ?6 k4 Z& u
MODULE_DESCRIPTION("Led platform driver");# d+ d' v& t+ L
MODULE_AUTHOR("Tronlong");
, a4 a. a5 j$ j, Y, e" JMODULE_LICENSE("GPL");
# s( j, i& r3 G( q7 f4 [4 b+ v% F3 c2 d9 Q$ j# p2 Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 12:00 , Processed in 0.039392 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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