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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- L# F+ t% j( U+ ~: u3 V+ c#include <linux/init.h>: B. v% y# d- k" L( X
#include <linux/module.h>$ w4 y% m# a5 _  w( u
#include <linux/kernel.h>
$ ]2 c) n. O8 S#include <linux/types.h>) G% ]1 W0 a' g- n
#include <linux/gpio.h>
6 X, @- V# M1 }6 b! }#include <linux/leds.h>) [4 t+ X' A# q
#include <linux/platform_device.h>
! ?5 `# D9 P& }; W2 U4 q) b! ^6 w( ?& R; D: v4 J+ g0 d. L. e
#include <asm/mach-types.h>
1 H) R: v1 D) d+ {0 j#include <asm/mach/arch.h>- j" U( s0 q6 G7 \
#include <mach/da8xx.h>8 A  r: z% E  M1 C1 P+ q
#include <mach/mux.h>; ~% E3 y* ~! {

' r, a  V. P& d5 K2 Z3 L9 }  A( v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ I, c: m: Y# {! p" _" e- Q7 H
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 _8 _" \; M; e) H0 O" x& E; R4 z% W/ R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; }  A9 s: Q  s. t4 Q5 t9 q' s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* j" H7 i, |, t3 D: G/ `" T

" c3 z1 K3 f. b( B* e- Z% ~/* assign the tl som board LED-GPIOs*/9 A+ B0 j8 Z5 b" b
static const short da850_evm_tl_user_led_pins[] = {9 ?/ q4 n- @* g% d
        /* These pins are definition at <mach/mux.h> file */. ?2 I4 C/ D% P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; c+ C/ k) a+ P% M) W  q1 _
        -1. b8 l2 ]6 Q& e- ?: Y
};: m" P: b. g& O/ v3 p2 v1 V

, Y' O! m' |5 Z3 ?7 Kstatic struct gpio_led da850_evm_tl_leds[] = {
! j2 L$ g: i# C) H; k        {- a7 G% N% ~! U' q
                .active_low = 0,
  @9 O* |" P! \9 q; t                .gpio = DA850_USER_LED0,, ?0 J$ F5 {2 Q& Q. u4 {7 ]
                .name = "user_led0",1 e! z4 k; h, F5 O, {. U
                .default_trigger = "default-on",: ^  A0 w# x7 u% d( N1 a
        },
# p! W, b) R2 q2 `9 Y        {" @: Z. D$ u7 L: i, T1 G
                .active_low = 0,
9 u3 x6 G5 B' z                .gpio = DA850_USER_LED1,
3 U) j& z% B+ K                .name = "user_led1",* k6 N/ y; F+ f- X
                .default_trigger = "default-on",% A6 Y  {* c* I" [
        },
2 F9 K# Q7 T& R, \: C" s        {" q, a. M5 i$ i! {. v
                .active_low = 0,
! _& c  W  J  [) \3 k                .gpio = DA850_USER_LED2,
+ X: T# L; X6 h( \1 n                .name = "user_led2",
) u: U8 J% ~: d. [4 d9 u                .default_trigger = "default-on",8 {6 h: ^, U  I. L
        },
3 E6 c6 \! F  g$ H4 p! a9 _        {
0 l; R. X6 E# z. w7 J2 i' ?                .active_low = 0,
9 Y9 D3 x7 ]. K, I0 P( x                .gpio = DA850_USER_LED3,
2 @# g' ^- j6 u0 \                .name = "user_led3",; d1 P6 u# X! x# q) t' _1 J, W+ A
                .default_trigger = "default-on",& k7 N! `$ O2 r+ R2 P$ e) D/ y& c7 i
        },
+ c* e  W1 u# G7 M};
% f& p9 g; Z& s9 I
8 j2 a* W$ L/ ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 P/ e6 z; g- F( q$ Y( P
        .leds = da850_evm_tl_leds,
; T: }% k. {/ G. b" ?5 b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# }; S, F" Y, C0 y/ g. E};; |8 Q% ?" s1 N
" X" M3 e) Y, i& v3 L3 ~
static void led_dev_release(struct device *dev)! Z2 \$ W4 ~3 ~2 L+ k' ~6 g
{
- m6 p+ ~4 y. g: H1 I};( G5 j, z" ?% ~* _8 }
$ a) w/ H" q5 d
static struct platform_device da850_evm_tl_leds_device = {
1 d' m+ k" \9 A" C        .name                = "leds-gpio",( C5 S1 p( C2 y% k
        .id                = 1,3 j% K9 Q1 a# T5 v, @; @
        .dev = {
1 ^. c8 F) P+ t( d8 f. b                .platform_data = &da850_evm_tl_leds_pdata,, L# X9 r" B) q7 X( K
                .release = led_dev_release,
- ~2 j' V2 W. ^- |& F& E3 i. G        }
9 `; K# c7 ]9 i% U};
9 p( V1 J) E; Y9 ?5 k( |( c" N$ g5 X6 r% x
static int __init led_platform_init(void)
. O: R( j+ w6 K& P- W{" ^  w% H9 |/ [' q7 W% B# m
        int ret;- L  w2 R- M2 I# y. M- u
#if 0
+ i3 Y+ \: L4 b; m! r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' a: d; I/ z/ V+ W. ~        if (ret)
; `; H: h, N. E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' @4 U! o. Y+ H7 I- j% J4 l& _                                "%d\n", ret);
& ^+ P, y% p& S. e/ Z#endif+ }8 I. p' i) {
        ret = platform_device_register(&da850_evm_tl_leds_device);5 O0 h! `4 y- Q' i, f& m! w
        if (ret)  b1 d" P( E! z0 T; Y* O
                pr_warning("Could not register som GPIO expander LEDS");
- E4 L. t$ V, y" p        else# \1 @  d+ y) I+ \# ?# s4 m
                printk(KERN_INFO "LED register sucessful!\n");
$ K  k3 K, t7 _+ S- H3 h  \  @) \4 p+ G  X
        return ret;1 b' ]& {' s' {0 C
}
+ d& @0 H; n& w* Z* v4 p" {! d. \/ j4 R$ d
static void __exit led_platform_exit(void)
5 e- y; S0 _, s- o3 y( Z4 t( g{
1 F/ B5 P3 Y- n- Q# J, e9 W        platform_device_unregister(&da850_evm_tl_leds_device);; C; O- \: p# H  i) h2 t
/ Z/ J* P$ H6 R/ r" p! z
        printk(KERN_INFO "LED unregister!\n");3 Q4 s* H. J4 B2 S" c
}1 O1 s$ Q( `% b# s4 r, _

4 p5 }: _0 B+ g/ v0 ~% wmodule_init(led_platform_init);
3 N$ ]9 U. d9 m& P- A4 ~! q0 I4 amodule_exit(led_platform_exit);" |9 {9 j* _8 c1 k- G
1 ?$ ^. @0 N. e' ?
MODULE_DESCRIPTION("Led platform driver");7 z+ ]% F6 x) d
MODULE_AUTHOR("Tronlong");; G& `9 d5 H3 k3 f8 ^1 e5 V$ A
MODULE_LICENSE("GPL");$ [8 u2 G1 ^' }# b% M; R' p, f( p- r

* \) C0 V9 T& ^$ [+ r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-27 03:48 , Processed in 0.051016 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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